Licence de Sciences et Techniques Unité d’enseignement BASES DE DONNEES Modélisation d’une
description
Transcript of Licence de Sciences et Techniques Unité d’enseignement BASES DE DONNEES Modélisation d’une
Licence de Sciences et TechniquesUnité d’enseignement BASES DE DONNEES
Modélisation d’unebase de données
François JacquenetProfesseur d'InformatiqueFaculté des SciencesLaboratoire Hubert Curien – UMR CNRS 551618 rue Benoit Lauras42023 Saint-Etienne cedex 2Tél : 04 77 91 58 07e-mail : [email protected] : http://eurise.univ-st-etienne.fr/~fj
Mais avant :
Qu’avons nous appris la
semaine dernière ?
3
Aujourd’hui nous verrons
Cycle de vie d’une Base de Données
Modèle conceptuel
Modèle entité-association
et plus particulièrement les notions de type d’entités type d’associations Attributs cardinalité identifiant contraintes d’intégrité
4
Cycle de vie d’une base de données
LMDUtilisateurs
Personne Voiture
Monde réel
Concepteur
Personne Voitureconduit
Schéma conceptuel
PersonneDupontDurantRochat…
Table Personne Table Voiture Table Conduit…
Schéma logique
BD
VoitureFord KAPeugeot 106Toyota yaris…
5
Ce qui nous intéresse aujourd’hui
Personne Voiture
Monde réel
Concepteur
Personne Voitureconduit
Schéma conceptuel
La modélisation conceptuelle
C’est-à-dire : la définition du schéma conceptuel de labase de données
6
Culture générale
Cycle de vie du logiciel (modèle en cascade)
Spécification
Conceptiongénérale
Conceptiondétaillée
Codage
Analysedes besoins
Tests
Distribution
Maintenance
7
Modéliser les données
Modèle de données = ensemble de concepts permettant la description et la manipulation des données du monde réel règles d’utilisation de ces concepts
Ces concepts décrivent les aspects Statiques : structure des données Dynamiques : opérations sur les données + contraintes explicites
Schéma = description de la BD obtenue en utilisant un modèle de données
8
Pourquoi la modélisation conceptuelle ?
Objectif: représenter la réalité telle qu'elle est perçue par les utilisateurs
Contrairement aux modèles logiques qui décrivent la réalité en fonction du modèle du SGBD
Représentation à l’aide de la trilogie de base objets liens propriétés
9
Avantages de la modélisation conceptuelle
L’attention est portée sur les applications
Indépendante des technologies Portabilité Longévité
Orientée utilisateur Compréhensibilité Support du dialogue concepteurs / utilisateurs Permet la collaboration et la validation par les utilisateurs
10
Avantages de la modélisation conceptuelle
Spécifications formelles, non ambiguës,
Puissance des concepts
Support d’interfaces visuelles (lisibilité) Diagrammes de définition de données
Manipulation de données
Facilite les échanges d’informations entre SGBD différents
11
TRES IMPORTANT
La qualité
de la conception
de la BD
est un facteur critique
de réussite
12
Culture générale
Importance des premières étapes dans le cycle de vie du logiciel
Spécification
Conceptiongénérale
Conceptiondétaillée
Codage
Analysedes besoins
Tests
Distribution
Maintenance
13
Elaboration d’un schéma conceptuel
Analyse du monde réel Identification des phénomènes à représenter dans la BD
délimitation de l’univers du discours
Représentation à l’aide des concepts du modèle contenu structure règles dynamique
Représentation Partielle Infidèle et Subjective
14
Abstraction
De la réalité perçue à la représentation:
Faire abstraction des particularités permet de passer des objets aux types ou classes d'objets
Marielle FabienClaire ...Camille
Type d’objet: Personne
propriétés: - nom, - âge,
...
15
Définition d’un schéma
Un schéma est une collection de types d’entité <-> objets d’association <-> liens
La bases de données contiendra les valeurs représentant les instances de ces types
Personne VoiturePossède
Est-marié-avec
16
Divers types de modèles conceptuels
Entité-Association (EA) - (ER: Entity-Relationship)
UML (Unified Modelling Language - cf Master 1)
MERISE (cf cours de Systèmes d’Information en L2)
...
17
Vocabulaire
Ensemble d’objets perçus
comme similaires
étudiants
Instances ou occurrences
Type d'objet Étudiant: -nom -prénoms -date de naissance -section -année
Base de données
Population
Etudiant
Schema
Le monde réel Abstraction / Description
Diagramme
18
ET MAINTENANT
Le modèle
Entité
Association(entity-relationship)
19
Généralités
C’est un modèle conceptuel Conçu par Chen en 1976
20
A quoi ressemble un schéma conceptuel ?
Rayon ArticleVend
Affecté Livré par
Employé FournisseurChef de
chef
subord.
NomR étage quantité NomA type
quantité
nom salaire NomF adresse
21
On y voit des rectangles
Rayon ArticleVend
Affecté Livré par
Employé FournisseurChef de
chef
subord.
NomR étage quantité NomA type
quantité
nom salaire NomF adresse
22
On y voit des losanges
Rayon ArticleVend
Affecté Livré par
Employé FournisseurChef de
chef
subord.
NomR étage quantité NomA type
quantité
nom salaire NomF adresse
23
On y voit des traits étranges
Rayon ArticleVend
Affecté Livré par
Employé FournisseurChef de
chef
subord.
NomR étage quantité NomA type
quantité
nom salaire NomF adresse
24
On y voit des mots reliés aux rectangles par des traits
Rayon ArticleVend
Affecté Livré par
Employé FournisseurChef de
chef
subord.
NomR étage quantité NomA type
quantité
nom salaire NomF adresse
25
On y voit des mots reliés aux losanges par des traits
Rayon ArticleVend
Affecté Livré par
Employé FournisseurChef de
chef
subord.
NomR étage quantité NomA type
quantité
nom salaire NomF adresse
26
Modèle de type conceptuel
But : permettre la description conceptuelle des structures de données d'une application
Les concepts de base (qui correspondent aux concepts d’abstraction de la réalité):
objet <=> entité lien <=> association (relationship) propriété <=> attribut
en plus : la représentation multiple
27
Entité et Type d’entités
Entité :représentation d’un objetdu monde réel ayantune existence propre
Type d'entités (TE) :représentation d'un ensembled'entités perçues commesimilaires et ayant lesmêmes caractéristiques
Marielle FabienClaire ...Camille
Personne
28
Association et type d’associations
Association : représentation d'un lien non orienté entre
plusieurs entités (qui jouent un rôle déterminé)
Type d'associations (TA) : représentation d'un ensemble
d'associations ayant la même sémantique et décrites par les
mêmes caractéristiques
achète est une association entre une personne et une maison
Personne Maisonachète
29
Rôles d’une association
Dans une association, chaque entité joue un rôle déterminé
Association binaire deux rôles
Personne Maisonachète
ACHETEUR ACHETÉ
30
Association cyclique
Une association est cyclique lorsque deux rôles (au moins) lient le même type d’entité
marié à est une association entre une personne et une
autre personne
problème : comment savoir, dans un couple, qui est le mari et qui est la femme ?
exemple : <Dupont Dominique, Dupont Dominique>
Personne marié à
31
Association cyclique, rôles nommés
Solution : spécifier le rôle de chaque entité
marié à est une association entre une personne qui est une femme et une autre personne qui est son mari
exemple :
<Dupont Dominique / femme, Dupont Dominique / mari>
Personne marié àfemme
mari
32
Association ternaire
Client Produitachète
Fournisseur
achète est une association (ternaire) entre un client,un fournisseur et un produit
33
Association ternaire cyclique
Emprunteur
Personne Emprunt BanqueGarant
34
Population d’un TE et TA
Personne Maisonachète
35
Cardinalité des rôles
Combien de voitures minimum une personne peut-elle possèder ?
Combien de voitures maximum une personne peut-elle possèder ?
Personne VoiturePossède
min:maxPersonne Possède
36
Contraintes de cardinalités
Une personne peut ne pas avoir de voiture, en avoir une, deux, ..., n
Une voiture à un et un seul propriétaire
0:nPersonne Possède
0:n 1:1Personne VoiturePossède
37
Population d’un TE et TA
Personne Maisonachète0:n 1:1
38
Valeurs et notations des cardinalités
Minimum Maximum
0 1
1 1
0 n
1 n
n m
Personne VoiturePossède
39
Autres notations possibles
Pour les liens
0:1
1:1
0:n
1:n
m:n
40
Association ternaire, cardinalité
Plus difficiles à lire sur le schéma Nombre min et max d’occurrences du TA qui peuvent
lier une occurrence donnée du TE
N°secu N°imm.
Personne VoitureAssure
CompagnieAssurance
Nom
41
Les attributs
Ils décrivent les propriétés associées à: un type d’entité un type d’association un autre attribut
nom prénom salaireDate_mariage
jour mois
Domaine [1,31]
mari
femme
Personne Marié à
année
42
Attributs simples
simple (atomique) : non décomposable Exemples : jour, prénom
Le domaine de valeurs est constitué de valeurs atomiques Exemple :
jour domaine de valeurs = {1, 2, …., 31}
Domaines prédéfinis standard, intervalles, énumérés
43
Attributs complexes
Complexe : décomposé en d'autres attributs Exemples
date qui se décompose en jour, mois, année adresse qui se décompose en rue, ville, code postal
Un attribut complexe ne porte pas de valeur propre (pas de domaine directement associé)
La valeur d'un attribut complexe est la composition des valeurs de ses attributs composants.
Un composant d'attribut complexe peut être lui-même un attribut complexe.
44
Attributs obligatoires ou facultatifs
Obligatoire : une valeur au moins par occurrence (cardinalité min1).
Exemples : nom, prénoms
Facultatif : peut ne pas prendre de valeur (cardinalité min=0).
Exemples : salaire, téléphones
45
Attributs mono ou multi-valués
monovalué : une seule valeur par occurrence (cardinalité max=1)
Exemples: date de naissance, numéro sécu
multivalué : plusieurs valeurs par occurence (cardinalité max>1).
Exemples: prénoms, téléphones Une valeur d'attribut multivalué est un ensemble ou une liste ou un multi-
ensemble de valeurs, prises chacune dans le domaine de valeurs associé à l'attribut.
46
Attributs, cardinalité
min : caractère facultatif ou obligatoire de l’attribut max : caractère mono-valué ou multi-valué de l’attribut Même notation pour les attributs que pour les
cardinalités des rôles Exemples
nom d’une personne prenoms téléphone fixe téléphone mobile
1:11:n
0:10:n
47
Attributs, exemple
simple
obligatoire
monovalué
complexe, facultatif, multivalué de type ensemble
Employé
No-emp nom prénoms CV postes
diplôme année intitulé salaires date-début date-fin
montant date
année mois
liste
simple, obligatoire, multivalué de type liste
1:1
0:1
1:n
0:n m:nRappel :
48
Attributs, exemple
postes
intitulé salaires date-début date-fin
montant date
année mois
( technicien, (1500, 1997, 10) (1600, 1999, 10) (1700, 2000, 10) ’01/01/1997’, ’31/12/2001’ ),(analyste, (2500, 2000, 06) (2800, 2001, 06) ’01/01/2000’, ’31/12/2002’ ),(chef_de_projet, (3500, 2002, 10) ’01/01/2002’, ’31/12/2003’ )
/* intitulé
/* salaires
/* date début/* date fin
49
Autres notations existantes
Employé
Employé
Pour les entités et leurs attributs
nom
salaire
nom salaire
Employé
nom
salaire
50
Identifiants de TE et TA
Nécessité de pouvoir désigner une entité (une association) de façon univoque
Identifiant: Ensemble minimal d'attributs tel qu'il n'existe pas deux instances du TE (TA) où ces attributs aient la même valeur
51
Exemple : Identifiants du TE employé
Employé
CV postes
diplôme année intitulé salaires date-début date-fin
montant date
année mois
liste
Deux identifiants possible :
N°emp prénoms
Il n’y a pas deux employés qui ont le même numéro
N°emp ou
Il n’y a pas deux employés qui ont à la fois le même nom et les mêmes prénoms
nom
nom+prénoms
52
Identifiant d’un TA
N°client nom N°commande date quantité N°produit nom
Client ProduitCommande
Identifiant du type d’associations commande = N°commande
1ère possibilité : attribut(s) propre(s)
53
Identifiant d’un TA
2ème possibilité : des identifiants de TE liés
Etudiant CoursInscrit
N°carte nom note N°cours intitulé
Identifiant du type d ’association Inscrit = Etudiant.N°carte + Cours.N°cours
54
Identifiant d’un TA
3ème possibilité :
des identifiants de TE liés + attribut(s) propre(s)
Client ProduitCommande
N°client nom date quantité N°produit nom
(Un client peut commander le même produit plusieurs fois à des dates différentes)
Identifiant du type d’association Commande = Client.N°client + Produit.N°produit + Commande.date
55
Identifiant d’un TA
4ème possibilité :
Tout rôle monovalué induit un identifiant du TA (l’identifiant du TE lié est aussi identifiant du TA)
N°secu N°imm
Personne VoitureAssure
CompagnieAssurance
Nom
Identifiant du TA Assure = Voiture.N°imm
56
Identifiant d’un TA cyclique
Comme pour les autres Type d’Associations
nom prénom salairedate_mariage
jour mois année
mari
femme
Personne marié à
Deux rôles monovalués deux identifiants pour le TA marié à
1) Personne/femme.nom 2) Personne/mari.nom
57
Identifiant de TE faible
Un TE qui ne peut être identifié par ses seuls attributs propres est appelé TE faible
Livre ExemplaireExiste
N°ISBN titre date-achat N°exemp état
Identifiant du TE Exemplaire = Livre.N°ISBN + N°exemp
Identifiant du TA Existe = Livre.N°ISBN + N°exemp
58
Exemple de conception
Un client qui s'inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution il aura le droit d'effectuer en même temps 10 emprunts au maximum.
Les emprunts durent au maximum 15 jours Un livre est caractérisé par son numéro dans la bibliothèque
(identifiant), son titre, son éditeur et son (ses) auteur(s). On veut pouvoir obtenir, pour chaque client les emprunts qu'il a
effectués (nombre, numéro et titre du livre, date de l'emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard
: nom et adresse du client, date de l'emprunt, numéro(s) et titre du (des) livre(s) concerné(s).
On veut enfin pouvoir connaître pour chaque livre sa date d'achat et son état.
59
Idée générale de la démarche
Dans le texte, identifier les objets ayant une existence propre
Parmi eux, trouver ceux ayant un intérêt pour au moins un traitement de l’application. Ce sont alors les types d’entités
D’après le texte, trouver les attributs des types d’entités
Découvrir les types d’associations permettant de lier les types d’entités
60
Objets ayant une existence propre
Un client qui s'inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution il aura le droit d'effectuer en même temps 10 emprunts au maximum.
Les emprunts durent au maximum 15 jours Un livre est caractérisé par son numéro dans la bibliothèque
(identifiant), son titre, son éditeur et son (ses) auteur(s). On veut pouvoir obtenir, pour chaque client les emprunts qu'il a
effectués (nombre, numéro et titre du livre, date de l'emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard
: nom et adresse du client, date de l'emprunt, numéro(s) et titre du (des) livre(s) concerné(s).
On veut enfin pouvoir connaître pour chaque livre sa date d'achat et son état.
61
Les types d’entités
Objets ayant une existence propre et ayant un intérêt pour au moins un traitement de l’application
Auteur
Livre
EditeurClient
Bibliothèque
?
62
Objets ayant une existence propre
Un client qui s'inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution il aura le droit d'effectuer en même temps 10 emprunts au maximum.
Les emprunts durent au maximum 15 jours Un livre est caractérisé par son numéro dans la bibliothèque
(identifiant), son titre, son éditeur et son (ses) auteur(s). On veut pouvoir obtenir, pour chaque client les emprunts qu'il a
effectués (nombre, numéro et titre du livre, date de l'emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard
: nom et adresse du client, date de l'emprunt, numéro(s) et titre du (des) livre(s) concerné(s).
On veut enfin pouvoir connaître pour chaque livre sa date d'achat et son état.
63
Les types d’entités
Objets ayant une existence propre et ayant un intérêt pour au moins un traitement de l’application
Auteur
Livre
EditeurClient
Bibliothèque?
64
Objets ayant une existence propre
Un client qui s'inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution il aura le droit d'effectuer en même temps 10 emprunts au maximum.
Les emprunts durent au maximum 15 jours Un livre est caractérisé par son numéro dans la bibliothèque
(identifiant), son titre, son éditeur et son (ses) auteur(s). On veut pouvoir obtenir, pour chaque client les emprunts qu'il a
effectués (nombre, numéro et titre du livre, date de l'emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard
: nom et adresse du client, date de l'emprunt, numéro(s) et titre du (des) livre(s) concerné(s).
On veut enfin pouvoir connaître pour chaque livre sa date d'achat et son état.
65
Les types d’entités
Objets ayant une existence propre et ayant un intérêt pour au moins un traitement de l’application
Auteur
Livre
EditeurClient
Bibliothèque
?
66
Objets ayant une existence propre
Un client qui s'inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution il aura le droit d'effectuer en même temps 10 emprunts au maximum.
Les emprunts durent au maximum 15 jours Un livre est caractérisé par son numéro dans la bibliothèque
(identifiant), son titre, son éditeur et son (ses) auteur(s). On veut pouvoir obtenir, pour chaque client les emprunts qu'il a
effectués (nombre, numéro et titre du livre, date de l'emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard
: nom et adresse du client, date de l'emprunt, numéro(s) et titre du (des) livre(s) concerné(s).
On veut enfin pouvoir connaître pour chaque livre sa date d'achat et son état.
67
Les types d’entités
Objets ayant une existence propre et ayant un intérêt pour au moins un traitement de l’application
Auteur
Livre
EditeurClient
Bibliothèque
?
68
Objets ayant une existence propre
Un client qui s'inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution il aura le droit d'effectuer en même temps 10 emprunts au maximum.
Les emprunts durent au maximum 15 jours Un livre est caractérisé par son numéro dans la bibliothèque
(identifiant), son titre, son éditeur et son (ses) auteur(s). On veut pouvoir obtenir, pour chaque client les emprunts qu'il a
effectués (nombre, numéro et titre du livre, date de l'emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard
: nom et adresse du client, date de l'emprunt, numéro(s) et titre du (des) livre(s) concerné(s).
On veut enfin pouvoir connaître pour chaque livre sa date d'achat et son état.
69
Les types d’entités
Objets ayant une existence propre et ayant un intérêt pour au moins un traitement de l’application
Auteur
Livre
EditeurClient
Bibliothèque
?
70
Objets ayant une existence propre
Un client qui s'inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution il aura le droit d'effectuer en même temps 10 emprunts au maximum.
Les emprunts durent au maximum 15 jours Un livre est caractérisé par son numéro dans la bibliothèque
(identifiant), son titre, son éditeur et son (ses) auteur(s). On veut pouvoir obtenir, pour chaque client les emprunts qu'il a
effectués (nombre, numéro et titre du livre, date de l'emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard
: nom et adresse du client, date de l'emprunt, numéro(s) et titre du (des) livre(s) concerné(s).
On veut enfin pouvoir connaître pour chaque livre sa date d'achat et son état.
71
Les types d’entités
Objets ayant une existence propre et ayant un intérêt pour au moins un traitement de l’application
Auteur
Livre
EditeurClient
Bibliothèque
72
Les attributs du TE livre
Un client qui s'inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution il aura le droit d'effectuer en même temps 10 emprunts au maximum.
Les emprunts durent au maximum 15 jours Un livre est caractérisé par son numéro dans la bibliothèque
(identifiant), son titre, son éditeur et son (ses) auteur(s). On veut pouvoir obtenir, pour chaque client les emprunts qu'il a
effectués (nombre, numéro et titre du livre, date de l'emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard
: nom et adresse du client, date de l'emprunt, numéro(s) et titre du (des) livre(s) concerné(s).
On veut enfin pouvoir connaître pour chaque livre sa date d'achat et son état.
73
TE livre et ses attributs
Livretitre
numéro
auteurs
éditeurétat date-achat
1:1
1:n
liste
74
Les attributs du TE client
Un client qui s'inscrit à la bibliothèque verse une caution. Suivant le montant de cette caution il aura le droit d'effectuer en même temps 10 emprunts au maximum.
Les emprunts durent au maximum 15 jours Un livre est caractérisé par son numéro dans la bibliothèque
(identifiant), son titre, son éditeur et son (ses) auteur(s). On veut pouvoir obtenir, pour chaque client les emprunts qu'il a
effectués (nombre, numéro et titre du livre, date de l'emprunt). Toutes les semaines, on édite la liste des emprunteurs en retard
: nom et adresse du client, date de l'emprunt, numéro(s) et titre du (des) livre(s) concerné(s).
On veut enfin pouvoir connaître pour chaque livre sa date d'achat et son état.
75
Le TE client et ses attributs
Clientnuméro
nom
caution
adresse
n° rue ville
76
Les TE du schéma conceptuel
Livretitre
numéro
auteurs
éditeurétat date-achat
1:1
1:n
list
Clientnuméro
nom
caution
adresse
n° rue ville
77
Les types d’association
ClientLivre
date-emprunt date-retour
emprunté emprunteurEmprunte
78
Schéma conceptuel bibliothèque
numéro Clientnuméronomcaution
adresse
n° rue ville
titre
auteurs
Livre
éditeurdate-achatétat
date-empruntdate-retour
emprunté emprunteur
Emprunte
79
Contraintes d’intégrité
Règles définissant les états (CI statiques) et les
transitions d'état (CI dynamiques) possibles de la BD
Doivent être décrites explicitement (avec un langage
approprié) si elles ne peuvent pas être décrites avec
les concepts du modèle de données
Une BD est cohérente si toutes les CI définies sont
respectées par les valeurs de la BD.
80
Exemple de CI sur des attributs
Pour chaque occurrence d’Emprunte si la date-retour existe, alors elle doit être supérieure à la date-emprunt.
Pour chaque occurrence de Livre, la date-achat doit être inférieure à la date-emprunt de toutes les occurrences d’Emprunt qui lui sont liées.
numéro Clientnuméronomcaution
adresse
n° rueville
titre
auteursLivre
éditeurdate-achatétat date-empruntdate-retour
emprunté emprunteurEmprunte
81
Représentation multiple
Un objet peut avoir plusieurs représentations
Plusieurs points de vues:• un article• un article alimentaire• un produit laitier
Articles
Alimentaire
Habillement
Hi-Fi
Produit laitiers
Viandes
FruitsLégumes
82
Liens de généralisation/spécialisation
Article
Articlehabillement
Lien IS_A
ArticleHi-Fi
Produitlaitier
Fruits et legumes
Viande
Articlealimentaire
Un article alimentaireEst un article
Raffinement de classification
83
Hiérarchie de généralisation/spécialisation
Lien IS_A
TE générique
TE spécifiques
Spécialisation Généralisation
Article
Articlealimentaire
ArticleHi-Fi
Articlehabillement
X Est un Y X sous-type de Y Y sur-type de X
Y
Inclusion de populations: tout X est un Y
X
84
Contraintes d’intégrité sur is-a
Disjonction : les articles alimentaires et les articles d'habillement n'ont pas d'instances communes
Couverture : tout article appartient à l'un des sous-types (alimentaires, d'habillement ou Hi-Fi)
Partition : disjonction + couverture
Lien IS_A
Article
Articlealimentaire
ArticleHi-Fi
Articlehabillement
85
Clusters de spécialisation
Etudiant
Etudiantgarçon
Etudiantfille
Etudiantinfo
Etudiantchimie
Etudiantannée 2
Etudiantannée 3
critère: sexe critère: section critère: année
86
Généralisation multiple
Etudiant AllocataireSalarié
Personne Employé
…….
Etudiant salarié
salarié
étudiants
Étudiants salariés
problèmes liés à l'héritage!
87
Héritage
Article
Articlealimentaire
ArticleHi-Fi
Articlehabillement
Ventenommarquetype
Date_limite tailles couleurs puissance
Reparation
Service après vente
La description des sous-types ne porte que sur les informations additionnelles propres au sous-type
88
Héritage et inclusion
Carré a Rectangleab
Carré
bRectanglea
CI: a=bRectangle b
Carré a
BD LPOO
mauvais
89
Description d’un schéma EA
Types d’entités
Types d’association
Attributs
Liens is-a
Types d’identifiant
Domaines d’attribut
Contraintes d'intégrité
schéma conceptuel
EA = ( {TE}, {TA}, {CI} )
90
Description d’un TE
nom du type d'entité;
nom du (ou des) type(s) d'entité sur-type de ce type d'entité, s'il en existe;
une définition libre (commentaire) précisant la sémantique du TE
caractérisation exacte de la population du type d'entité
description des attributs du TE
composition des identifiants du TE, s'il en existe
contraintes d'intégrité propres au TE
91
Les entités dans le temps
TE Client: qu'est qu'un client ??? Toute personne qui a une commande en cours
Toute personne qui a fait une commande dans les six derniers mois
Toute personne qui a fait une commande dans le passé ou qui est susceptible de faire une commande dans le futur
………
92
Description d’un TA
nom du type d'association une définition libre (commentaire) précisant la
sémantique du TA noms des TE participant au TA, avec le nom du rôle
les associant au TA pour chaque rôle, sa cardinalité description des attributs du TA , s'il en existe composition des identifiants du TA, s'il en existe contraintes d'intégrité propres au TA
93
Les associations dans le temps
TA Personne – Emprunte – Livre
Quels emprunts veut-on dans la BD?
Seulement les emprunts en cours
Les emprunts des trois derniers mois
Aussi les emprunts à venir (réservations)
….
94
Revenons à notre premier exemple
Rayon ArticleVend
Affecté Livré par
Employé FournisseurChef de
chef
subord.
NomR étage quantité NomA type
quantité
nom salaire NomF adresse
95
Exemple : Le TA affecté
Nom : affecté
définition : "lie un employé au rayon dans lequel cet employé travaille aujourd'hui”
TE participants: <Employé, > , <Rayon, >
cardinalités: Employé : min=0, max=1
Rayon : min=0, max=n
attributs: aucun
identifiant: Employé.nom
contraintes d'intégrité: aucune
96
Description d’un attribut
nom de l'attribut
définition libre de sa sémantique
cardinalités
si attribut simple: domaine de valeurs
si attribut complexe: description des attributs composants
97
Domaine de valeurs d’un attribut simple
Le domaine de valeurs d’un attribut définit l'ensemble des valeurs permises pour cet attribut.
Le domaine d’un attribut simple peut être un domaine de base: entiers, réels, string, booléen, date, … un domaine de base avec restriction:
Entier [>=1,<=12] pour l'attribut mois un domaine énuméré:
{janvier, février, …, décembre} un domaine de type défini par l’utilisateur
98
Contraintes d’intégrité sur les attributs
Restrictions de domaine fixes : âge [0 : 130 ]
Restrictions selon le contexte : SI mois {4, 6, 9, 11} ALORS jour [1:30] ,
SINON SI mois=2 ALORS jour [1:29], SINON jour [1:31]
x,y Personne, <x,y> Mariage => x.état-civil = "marié" & y.état-civil = "marié”
x Personne, y Voiture, <x,y> Conduit => x.âge >=18 x Personne, (x.sexe=F OR x.age<18) => x.statut_milit.=NUL
99
Attributs dérivés
nombre d'enfants =
nombre d'occurrences du TA “Parent” qui lient cette Personne
nomPersonne EnfantParent
nom prénoms nombre d'enfants nom prénoms
2:2
Comme promis
RECAPITULONS
101
Revenons à notre premier exemple
Rayon ArticleVend
Affecté Livré par
Employé FournisseurChef de
chef
subord.
NomR étage quantité NomA type
quantité
nom salaire NomF adresse
102
On y voit des entités
Rayon ArticleVend
Affecté Livré par
Employé FournisseurChef de
chef
subord.
NomR étage quantité NomA type
quantité
nom salaire NomF adresse
103
On y voit des associations
Rayon ArticleVend
Affecté Livré par
Employé FournisseurChef de
chef
subord.
NomR étage quantité NomA type
quantité
nom salaire NomF adresse
104
On y voit des cardinalités
Rayon ArticleVend
Affecté Livré par
Employé FournisseurChef de
chef
subord.
NomR étage quantité NomA type
quantité
nom salaire NomF adresse
105
On y voit des attributs d’entités
Rayon ArticleVend
Affecté Livré par
Employé FournisseurChef de
chef
subord.
NomR étage quantité NomA type
quantité
nom salaire NomF adresse
106
On y voit des attributs d’association
Rayon ArticleVend
Affecté Livré par
Employé FournisseurChef de
chef
subord.
NomR étage quantité NomA type
quantité
nom salaire NomF adresse
107
Voilà pour aujourd’hui
Il reste à :
mettre au propre les notes de cours
apprendre le cours en le relisant plusieurs fois
faire encore des exercices
implanter des BD (cf TP)