. Objectifs et principes Modélisation E/R des Données 2. Le modèle Entité-Association (E/R) 3. Passage au relationnel 4. Conclusion. Objectifs de la Modélisation Permettre une meilleure compréhension Le monde réel est complexe Concentration sur les aspects cruciaux du problème Réduire la distance sémantique entre le langage des utilisateurs et le langage des concepteurs abstraction du réel perçu en termes compréhensibles et visibles Permettre une conception progressive Abstractions et raffinements successifs, prototypage rapide Automatisation de la construction du schéma de la BD Élaborer un modèle conceptuel Dériver le schéma de la BD Isoler les concepts fondamentaux Que vont représenter les données de la BD? Découvrir les concepts élémentaires du monde réel Décrire les concepts agrégés et les sous-concepts Découvrir les relations entre ces concepts Faciliter la visualisation du système Diagrammes avec notations simples et précises Compréhension visuelle et non seulement intellectuelle Schéma Définition de tous les types de données de la base et de leurs liens Agrégation de données Type élémentaire (de base): Entier, Réel, String,... Type complexe (composé): Collection de types élémentaires Tuple : Exemple: Type (nom: String, Prenom: String, age: Réel) Instance ou occurrence ("Dupont", "Jules", 20) Set : Exemple : s {id:string}; s {"75AB75", "200VV94"} Bag, List,... Possibilité d'intégrer des relations entre données (liens) Exemple : s; "Dupont" "75AB75"
Réel Modélisation à plusieurs niveaux Modèle conceptuel Indépendant du modèle de données Indépendant du SGBD Médecin effectue Visite 2. Le Modèle Entité Association (E/R Model) Ensemble de concepts pour modéliser les données d'une application (d'une entreprise) Ensemble de symboles graphiques associés Modèle logique Dépendant du modèle de données Indépendant du SGBD Codasyl Relationnel Objet XML Formalisé en 976 par P. Chen Etendu vers E/R généralisé puis vers l'objet Modèle Physique Dépendant du modèle de données Dépendant du SGBD Organisation physique des données Structures de stockage des données Structures accélératrices (index) Exemple de modèle E/R Entité NP NF Nom Type PRODUITS Couleur (0,N) (,N) VEND (0,N) FOURNISEURS Prix Remise Nom Région ACHETE NSS Nom Prénom (0,N) CLIENTS Un objet du monde réel qui peut être identifié et que l'on souhaite représenter La classe d'entité correspond à une collection d'entités décrites La classe d'entité correspond à une collection d'entités décrites par leur type commun (le format) L'instance d'entité correspond à un élément particulier de la classe d'entité (un objet) Attention: on dit entité pour les deux! Comprendre selon le contexte. Il existe généralement plusieurs entités dans une classe
Représentation d une entité Exemple d'instance d entité Rectangle avec attributs (UML) s Nveh: Int Type: String Marque: String Vitesse: Int Km : Int Nom Rectangle avec attributs accrochés (E/R) s Nveh Type Marque Vitesse Km Attribut : Type s Nveh: Int Type: String Marque: String Vitesse: Int Km : Int Nveh: 75AB75 Type: Mégane Marque: Renault Vitesse: 20 Km : 54000 Nveh: 850VV94 Type: 407 Marque: Peugeot Vitesse: 0 Km : 4000 Attribut Identifiant ou Clé Description des propriétés des entités Toutes les instances d'une entité ont les mêmes attributs Attribut simple: attribut ayant une valeur d'un type de base Attribut composé: attribut constitué d'un groupe d'attributs Attribut multi-valué: attribut pouvant avoir plus d'une valeur Avec le modèle E/R de base tout attribut est simple Avec le modèle E/R étendu, les attributs peuvent être complexes Composés et multi-valués Un identifiant aussi appelé clé est un (groupe d ) attribut qui permet de retrouver une instance d'entité unique à tout instant parmi celles de la classe. Exemple: NVeh dans s, NSS dans s Un identifiant peut être constitué de plusieurs attributs (clé composée) Exemple: [N, Rue, CodePostal] pour Maisons [CodeProduit, Id_Fournisseur] pour Produit
Association Association: quelques définitions Les entités sont reliées ensemble par des associations Entre instances: exemple véhicule est associé à personne Entre classes: abstraction des associations entre instances Une association peut avoir des attributs (propriétés) Ex: la date de l achat Association (Association) Une relation entre des instances de deux (ou plusieurs) classes Lien (Link) Multiplicité Une instance d'association Rôle (Role) Une extrémité d'une association Entreprise..* emploie 0..* Attribut de lien (Link attribute) employeur Un attribut de l'association instancié pour chaque lien Cardinalité (Multiplicity) Rôle Le nombre d'instance d'une entité pour chaque instance de l'autre Degré Nombre de classes reliées par l association employé Représentation E/R Degré d'une association Possède Propriétaire Possédée Pièces Composant Composé Salle Prix Professeur Cours 3..* Elève Composée_de Buveurs Abus Consommateur Estbu Vins Heure_deb Quantité La plupart des associations sont de degré 2 (binaires)
Cardinalités min et max Représentation UML Cardinalité maximum Indique le nombre maximum d'instances d'une classe d'entité participant à une association Cardinalité minimum Indique le nombre minimum d'instances d'une classe d'entité participant à une association Propriétaire Possède > Prix Possédée Se lit Etudiant [0,7] Un étudiant passe entre 0 et 7 examens Passe [,N] Examen Un examen est passé par au moins un étudiant, sans limite supérieure de nombre Buveurs Consommateur Abus > Quantité Estbu Vins Cardinalités: notations UML Exemple en UML * plusieurs (0 à N) 0.. optionnel (0 ou )..* 0..* {ord} obligatoire ( ou plus) ordonné (0 à N) 3..5 limité (de 3 à 5) nv marque type puissance couleur 0..* Possède date prix nss nom prenom datenais Se lit: Une voiture est possédée par une seule personne Une personne peut posséder un nombre quelconque de voitures ATTENTION : les cardinalités sont indiquées sur l extrémité inverse du lien par rapport à E/R
Associations... Agrégation et Composition Attribut d association = propriété du lien entre deux objets 0.. Loue 0..* N contrat Classe d association = élément ayant à la fois les propriétés d une classe et d une association 0..* 0.. Société Agrégation association particulière spécifiant une relation «tout-partie» entre l agrégat et un composant. Notée Composition forme forte d agrégation avec cycle de vie des parties lié à celui du composite (la destruction du composite entraîne celle des composants) Notée Distinction utile pour exprimer des contraintes d intégrité Contrat de Travail salaire résilier 0..n respecte 0.. Convention Collective Exemples Hiérarchies de classes Flotte d entreprise Enfants ** Parent * 0..2..n Véhicule homme Gérer la complexité Arborescences de classes d abstraction croissante Généralisation Super-classes Spécialisation Sous-classes Super-classe {abstract} Classe plus générale <S'occupe de 0..2 Bras 0..2 Jambe Tête Tronc Sous-classe Classe plus spécialisée
Généralisation Généralisation Généralisation = relation taxonomique entre un élément plus général et un élément plus spécifique qui est entièrement conforme avec le premier élément, et qui ajoute de l information supplémentaire Héritage = mécanisme par lequel des éléments plus spécifiques incorporent la structure et le comportement d éléments plus généraux Factoriser les éléments communs attributs, opérations et contraintes Abstraction plus gˇnˇrales Vˇhicule Vˇhicule terrestre Vˇhicule aˇrien Camion Avion Hˇlicopt re Spécialisation Domaines Extension cohérente d'un ensemble de classes Transmission Continue Discr te Variateur Dˇrailleur Bo te de vitesses Ensemble nommé de valeurs Un attribut peut prendre sa valeur dans un domaine Généralisation des types élémentaires Exemples Liste de valeurs (,2,3) Type contraint (0< val <00) Permettent de préciser les valeurs possibles des attributs Utile pour déclarer des contraintes d intégrité Extension par spˇcialisation
La pratique de la conception 3. Passage au relationnel Bien comprendre le problème à résoudre Essayer de conserver le modèle simple Bien choisir les noms Ne pas cacher les associations sous forme d'attributs utiliser les associations Faire revoir le modèle par d'autres définir en commun les objets de l entreprise Documenter les significations et conventions élaborer le dictionnaire Implémentations des entités et associations sous forme de tables mémorisent les états des entités et liens Les attributs correspondent aux colonnes des tables nom attribut nom colonne Ensemble de valeurs domaine Exemple Etudiant (Ne: integer, Nom: string, Prénom: string, Age: integer) Traduction des associations Exemple Règle de base Une association est représentée par une table dont le schéma est le nom de l'association et la liste des clés des entités participantes suivie des attributs de l'association Exemples : POSSEDE (N SS, N VEH,, Prix ) ABUS (Nv, Nb,, Quantité) Amélioration possible Regrouper les associations --> n avec la classe cible Exemple : VOITURE (N VEH, MARQUE, TYPE, PUISSANCE, COULEUR) POSSEDE (N SS, N VEH, DATE, PRIX ) regroupés si toute voiture a un et un seul propriétaire Buveurs nb nom type * Boire..* Abus Estbu Abus Quantité Vins nv cru millésime degré À cause de la cardinalité min de. BUVEURS (NB REF ABUS.NB, NOM, TYPE) VINS (NV, CRU, MILLESIME, DEGRE) ABUS(NB REF BUVEURS.NB, NV REF VINS.NV, DATE, QUANTITE) À cause de l'association (obligatoire).
6. Conclusion Intérêt de l utilisation d une méthode de conception proche du monde réel démarche sémantique claire diagrammes standards Passage au relationnel semi-automatique outils du commerce utilisables (Objecteering, Rose, etc.) supporteront les extensions objet-relationnel à venir Extensions à venir avec la conception objet