Conception de bases de données relationnelles Niveau conceptuel : modélisation de BD relationnelles Marie Szafranski 2015-2016 ensiie 1 2015-2016 ensiie 1 Modélisation d une BD Modélisation d une BD Étape fondatrice du processus de conception. C est une abstraction du problème réel, une reformulation qui permettra ensuite de transcrire la BD dans un cadre technologique. Modèle E-A (Entité-Association) Niveau conceptuel de la méthode MERISE Orienté bases de données relationnelles Modèle UML (Unified Modeling Language) Modélisation orientée objet d applications Focus sur le diagramme de classes Limité aux aspects liées à la modélisation de BD Modélisation statique qui met en exergue une structure 2015-2016 ensiie 2 2015-2016 ensiie 2
Notion de classe Notion de classe Élément caractérisé par des attributs (aussi appelés propriétés) et des méthodes communes à un ensemble d objets, permettant de créer des instances de ces objets. Disclaimer : pas d accent dans les schémas ou les codes Instance Nom de classe Attributs [: type] [Méthodes] Nom : varchar Prenom[1..3] : varchar Adresse :... Date d n. : date Age(Date d n) (Holmes, Sherlock Arthur Conan, 221b Baker Street Londres, 06/01/1854) 2015-2016 ensiie 3 2015-2016 ensiie 3 Notion d attribut Notion d attribut Information élémentaire qui caractérise une classe. Propriétés d un attribut Typé Domaine de valeur fixé a priori attribut: type nom: varchar Holmes Multivalué Plusieurs valeurs Composé Groupe d attributs attribut multivalue[min..max]: type prenom[1..3]: varchar Sherlock, Arthur, Conan attribut compose adresse sous attribut 1 numero: varchar 221b sous attribut 2 rue: varchar Baker Street sous attribut 3 ville: varchar Londres Dérivé Age(Date d n) Utilisation de méthodes 2015-2016 ensiie 4 2015-2016 ensiie 4
Notion d association Notion d association Relation entre deux (ou plusieurs) classes qui définit l ensemble et la nature des liens entre les objets de ces classes. On parle d association binaire (ou n-aire). En pratique, on se limitera aux associations binaires, voire ternaires. Classe 1 Resoudre Classe 2 Enquete 2015-2016 ensiie 5 2015-2016 ensiie 5 Notion de classe d association Notion de classe d association La classe d association est utilisée pour ajouter des propriétés (qui prennent la forme d attributs) aux associations. Classe 1 Classe 2 Enquete Att 1 [: type] Att n [: type] [Méthodes] Resoudre Annee : int(4) 2015-2016 ensiie 6 2015-2016 ensiie 6
Notion de cardinalité (UML MERISE) Notion de cardinalité (UML MERISE) Élément d une association permettant de représenter le nombre minimum et maximum d instances impliquées dans la relation. Une cardinalité est définie pour chaque sens de la relation. Notations 0..1 De 0 à 1 1..1 ou 1 0..n ou 0.. ou 1..n ou 1.. Lecture 1 seul Plusieurs De 1 à plusieurs Resoudre 1.. 0.. Enquete Un détective peut résoudre plusieurs enquêtes Une enquête est résolue par au moins un détective (voire plusieurs) 2015-2016 ensiie 7 2015-2016 ensiie 7 Familles de cardinalités (Cardinalité n : m) Familles de cardinalités (Cardinalité n : m) Cardinalités dites de type n : m n (resp. m) N, n (resp. m) > 1 C1 b.. a.. C2 À un élément de C1, on peut associer de a à plusieurs (m) éléments de C2 a N, a m À un élément de C2, on peut associer de b à plusieurs (n) éléments de C1 b N, b n 2015-2016 ensiie 8 2015-2016 ensiie 8
Familles de cardinalités (Cardinalité 1 : n) Familles de cardinalités (Cardinalité 1 : n) Cardinalités dites de type 1 : n n N, n > 1 C1 b..1 a.. C2 À un élément de C1, on peut associer de a à plusieurs (n) éléments de C2 a N, a n À un élément de C2, on peut associer au plus un élément de C1 b {0, 1} 2015-2016 ensiie 9 2015-2016 ensiie 9 Familles de cardinalités (Cardinalité 1 : 1) Familles de cardinalités (Cardinalité 1 : 1) Cardinalités dites de type 1 : 1 C1 b..1 a..1 C2 À un élément de C1, on peut associer au plus un élément de C2 À un élément de C2, on peut associer au plus un élément de C1 a {0, 1} b {0, 1} Remarque : une association de type 1..1 : 1..1 entre deux classes revient à considérer une seule classe. 2015-2016 ensiie 10 2015-2016 ensiie 10
Notion d héritage Notion d héritage Association entre deux classes qui permet d exprimer une relation de généralisation (ou de spécialisation) d une classe sur l autre. Propriétés Factorisation de propriétés identiques entre deux classes Transmission automatique des propriétés de la classe mère à la classe fille Personne Nom : varchar Prenom[1..3] : varchar Date d n : date Age(Date d n) Licence : integer 2015-2016 ensiie 11 2015-2016 ensiie 11 Notion de clé Notion de clé Attribut qui identifie de façon unique une instance dans la base de données. Différents types de clés #Primaire : clé choisie Candidate : clé potentielle Artificielle : clé générée Personne #Num ss : integer(13) Nom : varchar Prenom[1..3] : varchar Date d n : date Age(Date d n) Licence : integer 2015-2016 ensiie 12 2015-2016 ensiie 12
simple simple Personne Arme a feu? #Num ss : integer(13) Nom : varchar Prenom[1..3] : varchar Date d n : date Suspect? Age(Date d n) Licence : integer 1.. Enquete #N dossier : integer Resoudre Annee : int(4) 2015-2016 ensiie 13 2015-2016 ensiie 13 Association : sens de lecture et rôle Association : sens de lecture et rôle Il est possible d ajouter un sens de lecture caractérisant l association et de préciser le rôle joué par une ou plusieurs classes pour préciser le modèle. Classe 1 role 1 Classe 2 role 2 Client employeur 1.. Enqueter 2015-2016 ensiie 14 2015-2016 ensiie 14
Association : composition Association : composition Dans une composition, la classe dépendante n a de sens ou d existence qu associée à sa classe composite. Classe composite 1 Classe dépendante Livre 1 Contenir 1.. Chapitre 2015-2016 ensiie 15 2015-2016 ensiie 15 Association : composition Association : composition Dans une composition, la classe dépendante n a de sens ou d existence qu associée à sa classe composite. Propriétés La composition associe une classe composite et des classes dépendantes et tout objet dépendant appartient à un objet composite Asso. 1 : n La composition n est pas partageable : un objet dépendant ne peut appartenir qu à un seul objet composite à la fois Le cycle de vie des objets dépendants est lié à celui des objets composites Livre 1 Contenir 1.. Chapitre 2015-2016 ensiie 16 2015-2016 ensiie 16
Association : agrégation Association : agrégation L agrégation est utilisée pour préciser une relation de type tout / partie ou ensemble / élément. Pas de contrainte sur les familles de cardinalités. Classe ensemble Classe element Bibliothèque Contenir Livre 2015-2016 ensiie 17 2015-2016 ensiie 17 Association n-aire Association n-aire Relation qui associe n classes par le biais de cardinalités de type l : m. Les associations ternaires sont parfois récrites avec trois associations binaires et en transformant l association en classe mais... Classe 3 Annee 1.. Classe 1 Classe 2 Cours 1.. 1.. Eleve Inscription Note : real 2015-2016 ensiie 18 2015-2016 ensiie 18
Contrainte dynamique Contrainte dynamique Les contraintes dynamiques peuvent s exprimer par le biais d annotations sur les attributs, les classes et les associations. contrainte d asso. {contrainte d attribut} Classe 2 Classe 1 Attribut : type Les clients commandent avant de payer Client #N client : int payer Produit { 1000} #N produit : int Prix : int commander 2015-2016 ensiie 19 2015-2016 ensiie 19 Contrainte d association Contrainte d association Différentes contraintes Inclusion {IN}, {SUBSET}, {1} Si l asso. incluse est instanciée, l autre doit l être également ET, égalité ou simultanéité {ET}, {=}, {S} Si une asso. est instanciée, l autre doit l être également Exclusion {X} Les deux asso. ne peuvent être instanciées simultanément OU inclusif, couverture ou totalité {OR}, {T} Au moins une des deux asso. doit être instanciée OU exclusif ou partition {XOR}, {XT}, {+} Une seule des deux asso. doit être instanciée Classe 1 {IN} Classe 2 2015-2016 ensiie 20 2015-2016 ensiie 20
Héritage : classe abstraite Héritage : classe abstraite Une classe abstraite n est pas instanciable et n existe qu à travers les classes filles qui en héritent. Chaque objet de la classe mère est membre d une classe fille (au moins) Elle exprime une généralisation et ne correspond à aucun objet existant dans le contexte. Classe mere abstraite Mammifère Classe fille Humain... Félin Homme Femme... 2015-2016 ensiie 21 2015-2016 ensiie 21 Héritage exclusif Héritage exclusif Un héritage est exclusif si les objets d une classe fille ne peuvent appartenir aussi à une autre classe fille. Classe mère Humain {XOR} {XOR} Classe fille 1 Classe fille 2 Homme Femme 2015-2016 ensiie 22 2015-2016 ensiie 22
Héritage sans spécificité Héritage sans spécificité Un héritage est sans spécificité si ses classes filles n ont aucune caractéristiques propres (attributs, méthodes, associations). Classe mère Personne Nom : varchar Prenom : varchar Date de n : date... Classe fille 1 Classe fille 2 Homme {XOR} Femme 2015-2016 ensiie 23 2015-2016 ensiie 23 Packages (Tableau) Packages (Tableau) 2015-2016 ensiie 24 2015-2016 ensiie 24