Upload
others
View
12
Download
0
Embed Size (px)
Citation preview
Modélisation Conceptuelle
Partie 2: Le modèle Entité-Association
2
Modèle de type conceptuel
n But: permettre la description conceptuelle des structures de données d'une application
n Les concepts de base (correspondent aux concepts d’abstraction de la réalité):u objet <=> entité u lien <=> association (relationship)u propriété <=> attribut
n + la représentation multiple => lien is-a
3
Entités et types d’entités
n Entité: représentation d’un objet du monde réel ayant une existence propre
n Type d'entité (TE): représentation d'un ensemble d'entités perçues comme similaires et ayant les mêmes caractéristiques
Lisa FredPhilippe ...Zoë
Personne
4
Associations et types d’associations
n Association: représentation d'un lien non orienté entre plusieurs entités (qui jouent chacune un rôle déterminé)
n Type d'association (TA): représentation d'un ensemble d'associations ayant la même sémantique et décrites par les mêmes caractéristiques
1 "achète" = < 1 personne, 1 maison >
Personne MaisonAchète
5
Population d'un TA
Personne MaisonAchète
6
Rôles
1 "achète" = < 1 personne, 1 maison >
ACHETEUR ACHETÉ
Personne MaisonAchète
Association binaire: deux rôles
7
Associations Ternaires
1 "achète" = < 1 client, 1 produit, 1 fournisseur >
3 rôles
Client Produitachète
Fournisseur
8
Associations Cycliques
1 "marié à" = < 1 personne, 1 personne >
?
Personne Marié à
2 rôles (au moins) lient le même type d'entité
Problème: comment savoir dans un couple qui est le mari et qui est la femme ?
< Dupont Dominique, Dupont Dominique >
9
Associations cycliques : rôles nommés
1 "marié à" = < 1 personne/FEMME, 1 personne/MARI >
Solution: spécifier le rôle de chaque entité pour supprimer les ambiguïtés?
MARI
FEMME
Personne Marié à
< Dupont Dominique / femme, Dupont Dominique / mari >
10
Association cyclique : population
MARI
FEMME
Personne Marié à
JeanAnniePhilippeZoéKathiaEric….
Marié à1
Marié à2
femme
femme
mari
mari
Diagramme
Population
11
Associations cycliques
n Ternaires (ou n-aires) :Emprunteur
Personne Emprunt BanqueGarant
L’AUTRE
L'UN
Personne Ami de
n Symétriques : A faire dans l’application
<Phil/l'un , Jean/l'autre> <Jean/l'un , Phil/l'autre>
12
Associations cycliques (suite)
n Transitives : A faire dans l’application
DESCENDANT
ASCENDANT
Personne ancêtre
< Jean / ascendant , Paul / descendant >< Paul / ascendant , Anne / descendant >
< Jean / ascendant , Anne / descendant >
13
Cardinalité des rôles
n Combien de voitures (minimum) une personne peut-elle avoir ?
n Combien de voitures (maximum) une personne peut-elle avoir ?
Personne VoiturePossède
Min : MaxPersonne Possède
Si maximum > 1 : les rôles liant l'entité peuvent constituer un ensemble (par défaut) ou une liste
14
Contraintes de cardinalité
n Une personne peut ne pas avoir de voiture, en avoir 1, 2, … n
0 : nPersonne Possède
0 : n 1 : 1Personne VoiturePossède
n Une voiture a un et un seul propriétaire
n 0:n pas de contrainten i:j contrainte sur le TE lié
15
Population d'un TA
Personne MaisonAchète0:n 1:1
16
TA : notations alternatives
Personne MaisonAchète0:n 1:1
Personne Maison0:n 1:1
Achète
Personne Maison0:n 1:1
Achète
17
Cardinalités : notations alternatives
Minimum Maximum
0 1
1 1
0 n
1 n
n m
0 : n 1 : 1Personne VoiturePossède
18
Attributs
n Décrivent l’information (les propriétés) à conserver sur:u un objetu une associationu un attribut
nom prénom salaireDate_mariage
jour mois annéeDomaine [1,31]
MARI
FEMME
Personne Marié à
19
Attributs simples
n simple (atomique): non décomposableu Exemples: jour, prénom
n Feuilles de l’arbre des attributs: seuls les attributs simples portent des valeurs
n Le domaine de valeurs est constitué de valeurs atomiquesu Ex.: jour - domaine de valeurs: {1, 2, …., 31}u Domaines prédéfinis standard, intervalles, énumérés
20
Attributs complexes
n complexe: décomposé en d'autres attributsu Exemples: date (jour, mois, année)
adresse (rue, n°, ville, NPA)
n Un attribut complexe ne porte pas de valeur propre (pas de domaine directement associé)
n La valeur d'un attribut complexe est la composition des valeurs de ses attributs composants.
n Un composant d'attribut complexe peut être lui-même un attribut complexe.
21
Attributs mono- ou multivalués
nmonovalué: une seule valeur par occurrence (cardinalité max=1)
Exemples: date de naissance, numéro AVS
nmultivalué: plusieurs valeurs par occurrence (cardinalité max>1).
Exemples: prénoms, téléphonesUne valeur d'attribut multivalué est un ensemble (ou
liste ou multi-ensemble) de valeurs, prises chacune dans le domaine de valeurs associé à l'attribut.
22
Attributs obligatoires ou facultatifs
n obligatoire: une valeur au moins par occurrence (cardinalité min>=1).u Exemples: nom, prénoms
n facultatif: peut ne pas prendre de valeur (cardinalitémin=0).u Exemples: salaire, téléphones
n Le caractère obligatoire ou facultatif est déterminé par les besoins de l'application: u Si l'on accepte d'enregistrer une personne sans connaître sa
date de naissance, alors l'attribut date-de-naissance sera facultatif; sinon, il sera obligatoire
23
Attributs : exemple
simpleobligatoiremonovalué
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, obligatoiremultivalué de type liste
24
Attributs : notation alternative
EmployéNo-empnomprénoms 1:n listeCV 0:n
diplômeannée
postes 1:nintitulésalaires 1:n
montantdate
annéemois
date-débutdate-fin
25
Identifiants de TE et TA
n Permet de désigner une entité (ou une association) de façon univoque
n Identifiant:uEnsemble minimal d'attributs tel qu'il n'existe pas
deux instances du TE (TA) où tous ces attributs aient la même valeur
26
Identifiants du TE Employé
Employé
No-emp nom prénoms CV postes
diplôme année intitulé salaires date-début date-fin
montant date
année mois
Il n'a a pas deux employés qui ont le même numéro Il n'y a pas deux employés qui
ont à la fois le même nom et les mêmes prénoms
Deux identifiants de Employé : No-emp, nom+prénoms
27
Identifiant d'un TA: rôles multivalués
n Cas fréquent :
id.TA = ensemble des identifiants des TE liés
Etudiant CoursObtenu
No-carte nom année note No-cours intitulé
Identifiant de Obtenu : Etudiant.No-carte + Cours.No-cours
28
Identifiant d'un TA: attribut propre
n id.TA = attribut du TA
No-client nom No-commande date quantité No-produit nom
Deux identifiants pour Commande: 1) No-commande2) Client.No-client + Produit.No-produit
(il n’existe qu’une seule commande d’un client donné pour un produit donné)
Client ProduitCommande
29
Identifiant d'un TA: id.TE +attribut propre
n Un client peut commander le même produit plusieurs fois à des dates différentes
Client ProduitCommande
No-client nom date quantité No-produit nom
Identifiant de Commande: Client.No-client + Produit.No-produit + Commande.date
30
Identifiant d'un TA: rôle monovaluén Règle:
Tout rôle monovalué induit un identifiant du TA (l’identifiant du TE lié est aussi identifiant du TA)
Identifiant de Assure: Voiture.No-imm.
No-AVS No-imm.
Personne VoitureAssure
Compagnie Ass.
Nom
31
Identifiant d'un TA cyclique
n Comme pour les autres TA
Deux rôles monovalués:deux identifiants pour Marié à:
1) Personne/Femme.nom 2) Personne/Mari.nom
nom prénom salaireDate_mariage
jour mois année
MARI
FEMME
Personne Marié à
32
Identifiant de TE faible
n Un TE qui ne peut être identifié par ses seuls attributs propres, mais qui l'est par ses attributs plus une occurrence d'un autre TE, occurrence à la quelle il est lié, est appelé "TE faible"
Identifiant de Exemplaire: (Livre.No-ISBN + No-exemp.)
Identifiant de Existe: (Livre.No-ISBN + No-exemp.)
Livre ExemplaireExiste
No-ISBN titre date-achat No-exemp. état
33
TE sans identifiant
n Location de bicyclettes
Vélo PersonneLocation
type date-achat date caution nom prénom
34
Exemple de schéma EA
Gestion d'un hypermarché
Rayon ArticleVend
Affecté Livré par
Employé FournisseurChef dechef
subord.
NomR étage quantité NomA type
nom salaire NomF adresse
quantité
35
Représentation multiple
n Un objet peut avoir plusieurs représentations
Plusieurs points de vue :• un article• un article alimentaire• un produit laitier
Articles
Alimentaire
HabillementHi-Fi
Produit laitiers
Viandes
FruitsLégumes
36
Lien de Généralisation / Spécialisation
Lien IS-AUn article alimentaire
Est un article
Raffinement de classification
Article
Articlehabillement
ArticleHi-Fi
Produitlaitier
Fruits et legumesViande
Articlealimentaire
37
Hiérarchie de Généralisation/Spécialisation
X Est un YX sous-type de YY sur-type de X
Y
Inclusion de populations :tout X est un Y
X
TE générique
TE spécifiques
SpécialisationGénéralisation
Article
Articlehabillement
Lien IS-A
ArticleHi-Fi
Articlealimentaire
38
Héritage
La description des sous-types ne porte que sur les informations additionnelles propres au sous-type
Article
Articlealimentaire
ArticleHi-Fi
Articlehabillement
Ventenommarquetype
date limite tailles couleurs puissance
Reparation
Service après vente
39
Héritage et inclusion
Carré a Rectangleab
Carré
bRectanglea
CI: a=bRectangle b
Carré a
BD LPOO
mauvais
40
Généralisation multiple
assistants
doctorants
assistants-doctorants
PopulationsDoctorant ProfesseurAssistant
Etudiant Enseignant
Assistant-Doctorant
Personne
41
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 (alimentaire, d'habillement ou Hi-Fi)
Partition : disjonction + couverture
Statique : un article ne peut pas changer de classification
Article
Articlehabillement
disjonction
ArticleHi-Fi
Articlealimentaire
statique
42
Plusieurs groupes de is-a (clusters)
Des classifications différentes selon des critères différents
critère: sexe critère: section critère: année
Etudiant
Et.garçon Et.fille Et.info Et.managt Et.3ème Et.4ème
partition statique disjoint disjoint
43
Groupes de is-a : notation alternative
Article
Articlehabillement
ArticleHi-Fi
Articlealimentaire
44
DESCRIPTION D’UN SCHÉMA EA
n Types d’entités
n Liens is-a
n Types d’association
n Attributs
n Identifiants
n Domaines des attributs simples
n Contraintes d'intégrité
45
Description d'un TE
n nom du type d'entité
n nom du (ou des) type(s) d'entité sur-type de ce type d'entité, s'il en existe
n une définition libre (commentaire) précisant la sémantique du TEu caractérisation exacte de la population du type d'entité
n description des attributs du TE
n composition des identifiants du TE, s'il en existe
n contraintes d'intégrité propres au TE
46
Les entités dans le temps
TE Client : qu'est qu'un client ???
n Toute personne qui a une commande en cours
n Toute personne qui a fait une commande dans les six derniers mois
n Toute personne qui a fait une commande dans le passé ou qui est susceptible de faire une commande dans le futur
n………
47
n nom du type d'association
n une définition libre (commentaire) précisant la sémantique du TA
n noms des TE participant au TA, avec le nom du rôle les associant au TA
n pour chaque rôle, sa cardinalité
n description des attributs du TA , s'il en existe
n composition des identifiants du TA, s'il en existe
n contraintes d'intégrité propres au TA
Description d'un TA
48
Les associations dans le temps
Quels emprunts veut-on dans la BD?
n Seulement les emprunts en cours
n Les emprunts des trois derniers mois
n Aussi les emprunts à venir (réservations)
n ….
Personne LivreEmprunte
49
Exemple: TA "Affecté" (BD hypermarché)
n nom: Affecté
n définition: "lie un employé au rayon dans lequel cet employé travaille aujourd'hui”
n TE participants: Employé , Rayon
n cardinalités: Employé : min=0, max=1 Rayon : min=0, max=n
n attributs: /
n identifiant: Employé.nom
n contraintes d'intégrité: /
50
Description d'un attribut
n nom de l'attribut
n définition libre de sa sémantique
n cardinalités
n si attribut simple: domaine de valeurs
n si attribut complexe: description des attributs composants
51
Domaine de valeurs d’un attribut simple
n Le domaine de valeurs d’un attribut définit l'ensemble des valeurs permises pour cet attribut
n Le domaine d’un attribut simple peut être u un domaine de base: entiers, réels, string, booléen, date …u un domaine de base avec restriction:
Entier [>=1,<=12] pour l'attribut moisu un domaine énuméré:
{janvier, février, …, décembre}u un domaine de type défini par l’utilisateur
52
Contraintes d'intégrité (CI)
n règles définissant les états (CI statiques) et les
transitions d'état (CI dynamiques) possibles de la BD
n 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
n une BD est cohérente si toutes les CI définies sont
respectées par les valeurs de la BD.
53
CI sur les attributs
n Restrictions selon le contexte :u Pour toute personne liée à Mariage, son attribut état-civil a
pour valeur "marié"
∀ x,y ∈ Personne, <x,y> ∈ Mariage => x.état-civil = "marié" & y.état-civil = "marié”
u Pour toute personne liée à Mariage par le rôle mari, son attribut sexe a pour valeur "M"
∀ x,y ∈ Personne, <x/mari, y/femme> ∈ Mariage => x.sexe = "M" & y.sexe = "F"
n Restrictions de domaine fixes :u âge ∈ [0 : 130 ]u état-civil : célibataire –> marié –> divorcé
veuf
54
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
55
Exemple : Institut de formation
Personne
EnseignantEtudiant
nomprénoms (liste)adr.
Obtenu Inscrit Assure
Cours
Prérequis
nomCcycle
notes année
a-pour0:n
est-un0:n
couverture
0:n 1:1
0:n
0:n
0:n liste
0:n
(multi-ensemble)
56
Institut de formation (suite)
Etudiant
n°EdateN
jourmois année
diplôme année
étudesliste
Enseignant
tel.statut banque
agencecompte
rens.banc.
57
Schéma de FormaPerm (1)
n Définitions : Etudiant : tout individu qui est actuellement inscrit à l'institut, ou qui a
déjà passé avec succès l'un des cours de l'institut.Enseignant : tout individu assurant actuellement un ou plusieurs cours
à l'institut.
n Schéma :
Type d'entité : PersonneAttributs : nom : 1:1, simple: Dnom
prénoms : 1:n liste, simple: Dnomadr : 1:1 , simple: Dch100
Identifiant : (nom + prénoms)
58
Schéma de FormaPerm (2)
Type d'entité : Etudiant sous-type de PersonneAttributs : n°E: 1:1, simple: Entier
dateN: 1:1, complexe:(jour: 1:1, simple: Djourmois: 1:1, simple: Dmois)année: 1:1, simple: Dannée)
études: 0:n liste, complexe: (année: 1:1, simple: Dannéediplôme: 1:1, simple: Dnom )
Identifiant : (n°E)
59
Schéma de FormaPerm (3)
Type d'association : Obtenu
Rôles : Etudiant (0:n) listeCours (0:n)
Attributs : notes: 1:n multi-ensemble, simple: Dnoteannée: 1:1, simple: Dannée
Identifiant : (Etudiant + Cours)