Modélisation Conceptuelle Partie 2: Le modèle Entité-Association
Modèle de type conceptuel But: permettre la description conceptuelle des structures de données d'une application Les concepts de base (correspondent aux concepts d abstraction de la réalité): objet <=> entité lien <=> association (relationship) propriété <=> attribut + la représentation multiple => lien is-a 2
Entités et types d entités Entité: représentation d un objet du monde réel ayant une existence propre Type d'entité (TE): représentation d'un ensemble d'entités perçues comme similaires et ayant les mêmes caractéristiques Lisa Zoë Philippe... Fred Personne 3
Associations et types d associations Association: représentation d'un lien non orienté entre plusieurs entités (qui jouent chacune un rôle déterminé) 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 Personne Achète Maison 1 "achète" = < 1 personne, 1 maison > 4
Population d'un TA Personne Achète Maison 5
Rôles 1 "achète" = < 1 personne, 1 maison > Personne Achète Maison ACHETEUR ACHETÉ Association binaire: deux rôles 6
Associations Ternaires 3 rôles Client achète Produit Fournisseur 1 "achète" = < 1 client, 1 produit, 1 fournisseur > 7
Associations Cycliques 2 rôles (au moins) lient le même type d'entité Personne Marié à 1 "marié à" = < 1 personne, 1 personne > Problème: comment savoir dans un couple qui est le mari et qui est la femme? < Dupont Dominique, Dupont Dominique >? 8
Associations cycliques : rôles nommés? Solution: spécifier le rôle de chaque entité pour supprimer les ambiguïtés Personne FEMME MARI Marié à 1 "marié à" = < 1 personne/femme, 1 personne/mari > < Dupont Dominique / femme, Dupont Dominique / mari > 9
Association cyclique : population Personne FEMME MARI Marié à Diagramme Jean Annie Philippe Zoé Kathia Eric. mari femme femme mari Marié à 1 Marié à 2 Population 10
Associations cycliques Ternaires (ou n-aires) : Emprunteur Personne Emprunt Banque Garant Symétriques : A faire dans l application Personne L'UN L AUTRE Ami de <Phil/l'un, Jean/l'autre> <Jean/l'un, Phil/l'autre> 11
Associations cycliques (suite) Transitives : A faire dans l application Personne ASCENDANT DESCENDANT ancêtre < Jean / ascendant, Paul / descendant > < Paul / ascendant, Anne / descendant > < Jean / ascendant, Anne / descendant > 12
Cardinalité des rôles Personne Possède Voiture Combien de voitures (minimum) une personne peut-elle avoir? Combien de voitures (maximum) une personne peut-elle avoir? Personne Min : Max Possède Si maximum > 1 : les rôles liant l'entité peuvent constituer un ensemble (par défaut) ou une liste 13
Contraintes de cardinalité Une personne peut ne pas avoir de voiture, en avoir 1, 2, n Personne 0 : n Possède Une voiture a un et un seul propriétaire Personne 0 : n 1 : 1 Possède Voiture 0:n pas de contrainte i:j contrainte sur le TE lié 14
Population d'un TA Personne 0:n 1:1 Achète Maison 15
TA : notations alternatives Personne 0:n 1:1 Achète Maison Personne 0:n 1:1 Achète Maison Personne 0:n 1:1 Achète Maison 16
Cardinalités : notations alternatives Minimum Maximum 0 1 1 1 0 n 1 n n m Personne Possède 0 : n 1 : 1 Voiture 17
Attributs Décrivent l information (les propriétés) à conserver sur: un objet une association un attribut Personne FEMME MARI Marié à nom prénom salaire Domaine [1,31] Date_mariage jour mois année 18
Attributs simples simple (atomique): non décomposable Exemples: jour, prénom Feuilles de l arbre des attributs: seuls les attributs simples portent des valeurs Le domaine de valeurs est constitué de valeurs atomiques Ex.: jour - domaine de valeurs: {1, 2,., 31} Domaines prédéfinis standard, intervalles, énumérés 19
Attributs complexes complexe: décomposé en d'autres attributs Exemples: date (jour, mois, année) adresse (rue, n, ville, NPA) 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. 20
Attributs mono- ou multivalués monovalué: une seule valeur par occurrence (cardinalité max=1) Exemples: date de naissance, numéro AVS multivalué: plusieurs valeurs par occurrence (cardinalité max>1). Exemples: prénoms, téléphones Une valeur d'attribut multivalué est un ensemble (ou liste ou multi-ensemble) de valeurs, prises chacune dans le domaine de valeurs associé à l'attribut. 21
Attributs obligatoires ou facultatifs obligatoire: une valeur au moins par occurrence (cardinalité min>=1). Exemples: nom, prénoms facultatif: peut ne pas prendre de valeur (cardinalité min=0). Exemples: salaire, téléphones Le caractère obligatoire ou facultatif est déterminé par les besoins de l'application: 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 22
Attributs : exemple liste Employé No-emp nom prénoms CV postes diplôme année simple complexe obligatoire facultatif monovalué multivalué de type ensemble simple, obligatoire multivalué de type liste intitulé salaires date-début date-fin montant date année mois 23
Attributs : notation alternative Employé No-emp nom prénoms 1:n liste CV 0:n diplôme année postes 1:n intitulé salaires 1:n montant date année mois date-début date-fin 24
Identifiants de TE et TA Permet de désigner une entité (ou une association) de façon univoque Identifiant: Ensemble minimal d'attributs tel qu'il n'existe pas deux instances du TE (TA) où tous ces attributs aient la même valeur 25
Identifiants du TE Employé Deux identifiants de Employé : No-emp, nom+prénoms Employé No-emp nom prénoms CV postes diplôme année intitulé salaires date-début date-fin 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 montant date année mois 26
Identifiant d'un TA: rôles multivalués Cas fréquent : id.ta = ensemble des identifiants des TE liés Etudiant Obtenu Cours No-carte nom année note No-cours intitulé Identifiant de Obtenu : Etudiant.No-carte + Cours.No-cours 27
Identifiant d'un TA: attribut propre id.ta = attribut du TA Client Commande Produit No-client nom No-commande date quantité No-produit nom Deux identifiants pour Commande: 1) No-commande 2) Client.No-client + Produit.No-produit (il n existe qu une seule commande d un client donné pour un produit donné) 28
Identifiant d'un TA: id.te +attribut propre Un client peut commander le même produit plusieurs fois à des dates différentes Client Commande Produit No-client nom date quantité No-produit nom Identifiant de Commande: Client.No-client + Produit.No-produit + Commande.date 29
Identifiant d'un TA: rôle monovalué Règle: Tout rôle monovalué induit un identifiant du TA (l identifiant du TE lié est aussi identifiant du TA) Personne Assure Voiture No-AVS Compagnie Ass. No-imm. Nom Identifiant de Assure: Voiture.No-imm. 30
Identifiant d'un TA cyclique Comme pour les autres TA Personne FEMME MARI Marié à nom prénom salaire Date_mariage jour mois année Deux rôles monovalués: deux identifiants pour Marié à: 1) Personne/Femme.nom 2) Personne/Mari.nom 31
Identifiant de TE faible 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" Livre Existe Exemplaire No-ISBN titre date-achat No-exemp. état Identifiant de Exemplaire: (Livre.No-ISBN + No-exemp.) Identifiant de Existe: (Livre.No-ISBN + No-exemp.) 32
TE sans identifiant Location de bicyclettes Vélo Location Personne type date-achat date caution nom prénom 33
Exemple de schéma EA Gestion d'un hypermarché Employé chef subord. Chef de Fournisseur nom salaire NomF adresse Affecté Livré par Rayon Vend quantité Article NomR étage quantité NomA type 34
Représentation multiple Un objet peut avoir plusieurs représentations Hi-Fi Articles Habillement Alimentaire Produit laitiers Viandes Fruits Légumes Plusieurs points de vue : un article un article alimentaire un produit laitier 35
Lien de Généralisation / Spécialisation Un article alimentaire Est un article Lien IS-A Article alimentaire Article Article habillement Article Hi-Fi Produit laitier Viande Fruits et legumes Raffinement de classification 36
Hiérarchie de Généralisation/Spécialisation Spécialisation TE générique Généralisation Article Lien IS-A TE spécifiques Article alimentaire Article habillement Article Hi-Fi X Est un Y X sous-type de Y Y sur-type de X Inclusion de populations : tout X est un Y X Y 37
Héritage Vente Article nom marque type Article alimentaire Article habillement Article Hi-Fi date limite tailles couleurs puissance La description des sous-types ne porte que sur les informations additionnelles propres au soustype Reparation Service après vente 38
Héritage et inclusion Carré a Rectangle a b Rectangle a b Carré a mauvais Carré CI: a=b Rectangle b BD LPOO 39
Généralisation multiple Personne Etudiant Enseignant Doctorant Assistant Assistant-Doctorant Professeur assistants assistants-doctorants Populations doctorants 40
Contraintes d'intégrité sur IS-A disjonction Article statique Article alimentaire Article habillement Article Hi-Fi 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 41
Plusieurs groupes de is-a (clusters) Etudiant partition statique disjoint disjoint Et.garçon Et.fille Et.info Et. managt Et.3ème Et.4ème critère: sexe critère: section critère: année Des classifications différentes selon des critères différents 42
Groupes de is-a : notation alternative Article Article alimentaire Article habillement Article Hi-Fi 43
DESCRIPTION D UN SCHÉMA EA Types d entités Liens is-a Types d association Attributs Identifiants Domaines des attributs simples Contraintes d'intégrité 44
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 45
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 46
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 47
Les associations dans le temps 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). 48
Exemple: TA "Affecté" (BD hypermarché) nom: Affecté définition: "lie un employé au rayon dans lequel cet employé travaille aujourd'hui TE participants: Employé, Rayon cardinalités: attributs: / Employé : min=0, max=1 Rayon : min=0, max=n identifiant: Employé.nom contraintes d'intégrité: / 49
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 50
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 51
Contraintes d'intégrité (CI) 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. 52
CI sur les attributs Restrictions de domaine fixes : âge [0 : 130 ] état-civil : célibataire > marié > divorcé veuf Restrictions selon le contexte : 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é 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" 53
Attributs dérivés nom Personne Parent 2:2 Enfant nom prénoms nombre d'enfants nom prénoms nombre d'enfants = nombre d'occurrences du TA Parent qui lient cette Personne 54
Exemple : Institut de formation Personne nom prénoms (liste) adr. Etudiant 0:n liste 0:n couverture Enseignant 0:n Obtenu Inscrit Assure notes année (multi-ensemble) 0:n 0:n 1:1 nomc Cours cycle est-un 0:n Prérequis a-pour 0:n 55
Institut de formation (suite) Etudiant n E daten liste études jour mois année diplôme année Enseignant tel. statut rens.banc. banque agence compte 56
Schéma de FormaPerm (1) 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. Schéma : Type d'entité : Personne Attributs : nom : 1:1, simple: Dnom prénoms : 1:n liste, simple: Dnom adr : 1:1, simple: Dch100 Identifiant : (nom + prénoms) 57
Schéma de FormaPerm (2) Type d'entité : Etudiant sous-type de Personne Attributs : n E: 1:1, simple: Entier daten: 1:1, complexe: (jour: 1:1, simple: Djour mois: 1:1, simple: Dmois) année: 1:1, simple: Dannée) études: 0:n liste, complexe: (année: 1:1, simple: Dannée diplôme: 1:1, simple: Dnom ) Identifiant : (n E) 58
Schéma de FormaPerm (3) Type d'association : Obtenu Rôles : Etudiant (0:n) liste Cours (0:n) Attributs : notes: 1:n multi-ensemble, simple: Dnote année: 1:1, simple: Dannée Identifiant : (Etudiant + Cours) 59