La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Modèle Relationnel & UML 09 - 10 Witold Litwin.

Présentations similaires


Présentation au sujet: "1 Modèle Relationnel & UML 09 - 10 Witold Litwin."— Transcription de la présentation:

1

2 1 Modèle Relationnel & UML Witold Litwin

3 2 2 Le Rapport de Recherche qui a lancé les SGBDs Relationnels (publié uniquement en interne à IBM Almaden Research Center (CA) BD Relationnelle

4 3 3 Le Rapport de Recherche qui a lancé les SGBDs Relationnels (Résumé)

5 4 4 BD Relationnelle Le Rapport de Recherche qui a lancé les SGBDs Relationnels (Table des Matières)

6 5 Base de données relationnelle Fichier =tableourelation Donnée =ligneouattributatomique Opérations = transformations de tables en unetable Opération relationnelle

7 6 6 SQL: Select S#, SNAME, STATUS FROM S WHERE CITY = Paris Algèbre relationnelle : (S WHERE CITY = 'Paris') [S#, SNAME, STATUS] S Exemple

8 7 Base de données relationnelle u Une collection d'objets : u Relations réelles (tables de base) u Liens sémantiques u Contraintes d'intégrité (surtout référentielle) u intra-relationnelles u monoattribut et multiattribut u inter-relationnelles u Intégrité référentielle surtout u Déclencheurs (ang. triggers) notamment pour maintenir l'intégrité u Autres (procédures stockées…) u Schéma conceptuel = Définition de la collection

9 8 Empl (E#, Nom, Prénom, Né, Rue, CodePost, Ville, Dep#) ; E# Counter ; Nom Text ; Né Date ; Dep# Int... :Syst-date - Né < 65* Contrainte de validation Dep# Not Null ; * Contrainte d'existence Taches (T#, Description) ; Planning (E#, T#, Date-fin, Avancement) ; Dep (Dep#, Name) ; Trigger on Empl On Insert Check-Ref-Int (Dep, Empl.Dep#) ; u Autres Déclencheurs utiles ? u Ce schéma est possible sous MsAccess, bien que exprimé différemment Schéma de BD Entreprise clé

10 9 Schémas Externes u Schéma (vue) externe = Collection de vues relationnels (tables virtuelles dérivées de relations réelles) u Un usager ne voit pas de différence entre une vue relationnelle et une table réelle u En principe ! Une vue relationnelle n'est pas une vue externe au sens ANSI-SPARC Celle-ci serait une base virtuelle

11 10 P

12 11 P P1 Create View P1 as select P#, PNAME, COLOR from P;

13 12 P P1 Create View P1 as select P#, PNAME, COLOR from P; P2 Create View P2 as select P#, PNAME, COLOR from P where CITY = 'London';

14 13 P

15 14 P P1 P2

16 15 Base relationnelle Tables réelles

17 16 Base relationnelle Tables réelles et vues

18 17 Relations u D i ; i = 1,2..n des ensembles dits domaines u Une relation R est un sous-ensemble de produit cartésien: R D i,1 x D i,2... x... D i,k k u Les D i,j sont les attributs de R ; les rôles de domaines (Codd) u Les éléments de R sont dit tuples u Il ny a pas de tuples égaux dans une relation

19 18 Relations u Dans une BD relationnelle, on na que des relations finies u En nombre dattributs et en nombre de tuples u Toute valeur dun d D i est atomique u Pas un ensemble u De telles relations sont dites normales u Aussi en 1 NF au moins

20 19 P1 P2 P3 P4 S1 S2 P1 P2 P3 P1 P2 P3 P4 P1 P2 P3 S1 S2 1 NF Relations 0 NF Attribut multi-valeur Attribut atomique

21 20 u Les noms R et D i,j constituent le schéma de la relation u Ce schéma et l'ensemble des éléments possibles de R constituent une intention de R. u Les éléments de R y présent à un moment donnée constituent une extension de R. u Une mise à jour modifie une extension et change l'état de la base Schéma d'une relation

22 21 Un état de la base S-P S P SP Intention de S Une extension de S

23 22 u Deux relations R et R' sont égales si elles diffèrent seulement par ordre : u d'attributs (colonnes) u de tuples (lignes) Egalité de relations

24 23 Une même relation S

25 24 u Une mise à jour est correcte si la nouvelle extension est dans l'intention de R u C'est le rôle des contraintes d'intégrité de ne permettre que les mises à jour correctes u Un changement de schéma de R est une restructuration MAJ / Restructuration

26 25 Emp (E#, Nom, Prénom, Age, Rue, CodePost, Ville, Dep#) ; Age < 65* Contrainte de validation Dep# Not Null ; * Contrainte d'existence Update Emp Set Age = 35 Where E# = '123' ; Update Emp Set Age = 75 Where E# = '456' ; Alter Emp Add Tel Integer ; SQL : MAJ / Restructuration ?

27 26 Opérations relationnelles u Une relation est un fichier qui supporte les opérations relationnelles u Une opération relationnelle transforme des relations arguments dans une relation résultat : u une relation temporaire n'appartenant pas au schéma de la base. u une relation de la base (mise à jour) u une vue

28 27 Opérations relationnelles u Pour une BD relationnelle, les opérations sont définies sur les relations normales u Celles basiques forment lalgèbre relationnelle u Définie par E. Codd u En pratique, il y a aussi des opérations additionnelles u Arithmétiques, agrégations…

29 28 Opérations relationnelles u Sélection : u Projection u Restriction u Jointure naturelle ou u Division u Agrégation u Opération suppl. u Mise à jour u Création d une vue Voir le cours sur lalgèbre relationnelle Op. ensemblistes: UNION, INTER, DIFF, TIMES

30 29 Base S-P S S [S#,SNAME] S [CITY] S WHERE CITY = Paris Villes de fournisseurs Ids et noms de fournisseurs

31 30 Jointure naturelle u La jointure A JOIN B de deux tables A (X, Y) et B (Z, Y) est la table C avec les attributs : C (X, Y, Z) et avec tous les tuples (X:x, Y:y, Z:z ) tels que (x, y) est dans A et (y, z) est dans B u pas dautres tuples u X, Y, Z peuvent être composés Est-ce que la jointure naturelle est commutative et/ou associative ? A JOIN B =? B JOIN A A JOIN B JOIN C = ? A JOIN (B JOIN C)

32 31 CS SC CS JOIN SC S S [STATUS, CITY] S [S#, CITY]

33 32 S#SNameStatusCity s1smith20London s2Jones10Paris s3Blake30Paris s4Clark20london s5Adams30Athens s#P#qty s1p1300 s1p2200 s1p3400 s1p4200 s1p5100 s1p6100 s2p1300 s2p2400 s3p2200 s4p2200 s4p4300 s4p5400 S JOIN SP S#SNameStatusCityP#qty s1smith20Londonp2200 s1smith20Londonp3400 s1smith20Londonp4200 s1smith20Londonp5100 s1smith20Londonp6100 s1smith20Londonp1300 s2Jones10Parisp1300 s2Jones10Parisp2400 s3Blake30Parisp2200 s4Clark20londonp2200 s4Clark20londonp4300 s4Clark20londonp5400 S SP Fournisseur avec les fournitures

34 33 -jointure u Table C égale à : C = ( A TIMES B ) WHERE X Y est la jointure de tables A(X,...) et B (Y,...). X et Y ne sont pas ici composites et La jointure est notée : C = A JOIN B ON X Y.

35 34 - jointure / Equi-jointure C = A JOIN B ON X Y est une equi-jointure. u A ne pas confondre avec la jointure naturelle u Où lattribut Y de jointure peut être de plus composite Est-ce que la jointure est commutative et/ou associative ?

36 35 Division u Table C ( X ) notée: A DIVIDEBY B est une division de tables A (X, Y) et B (Y) ssi C contient tous les tuples ( x ) tels que ( y ) B, ( x, y ) A S# P# S1 P1 S1 P2 S2 P1 S2 P3 P# P1 P2 S# S1 Tout fournisseur de pièces P1 et P2. DIVIDEBY est associatif ou commutatif ?

37 36 Requêtes algébriques à la base S-P u (( S JOIN SP ) WHERE P# = 'P2' ) [ SNAME] u (( S JOIN SP ) WHERE P# = 'P2' ) WHERE STATUS > 100 ) [ SNAME] u (((P WHERE COLOR <> 'Red' ) [P#] JOIN SP ) [S#] JOIN S [SNAME] u (((P WHERE COLOR <> 'Red' ) [P#, PNAME] JOIN SP ) [S#, PNAME] JOIN S [SNAME] (( SP [S#, P#] DIVIDEBY P [P#] ) JOIN S ) [SNAME] SP [S#, P#] DIVIDEBY (( SP WHERE S# = 'S2') [P#])

38 37 Utilité de l'algèbre u Puissance expressive: u 8 opérateurs de Codd permettent d'exprimer toute expression logique de prédicat de 1-er ordre u note: seulement 5 sont primitives (lesquels ?) u La puissance expressive de l'algèbre dite complétude relationnelle constitue la mesure de la puissance minimale de tout LMD assertionnel digne de ce nom

39 38 Utilité de l'algèbre Technique de choix pour l'implémentation Il n'y a que 8 opérateurs Ces opérateurs sont faciles à implémenter Leur propriétés permettent de transformer les expressions en +efficaces à évaluer, en général Améliorations algébriques Moins de valeurs à lire ou écrire Moins de mémoire nécessaire pour ces valeurs Voir mon cours sur lalgèbre

40 39 Utilité de l'algèbre u Exemple (( S JOIN SP ) WHERE P# = 'P2' ) [SNAME] = ( S JOIN ( SP WHERE P# = 'P2' )) [SNAME] u La 2-ème expression semble plus efficace ? u Règle Générale dAmélioration ? (A JOIN B WHERE A.a = C) (A WHERE a = C) JOIN B

41 40 Opérations relationnelles (SQL) Voit (Im#, Pref, Mod, Couleur) Amende (A#, I#, Nom, Addr, Payé) u Select * From Voit ; u Select Mod From Voit Where Couleur = 'rose' ; u Select Nom, Addr From Amende, Voit Where Payé Is Null and Mod = 'Ferrari' and I# = Im# ; u Update Amende Set Payé = ' ' where A# = '123' ; u Create View En-instance As Select * From Amende, Voit Where Payé Is Null and Amende.I# = Voit.Im# ;

42 41 Complétude relationnelle de SQL expression algébrique, une expression équivalente de SQL et de QBE Schéma de preuve: opérateur algébrique, une expression équivalente de SQL composition d'opérateurs algébriques, une composition équivalente de SQL

43 42 u Une relation réelle est définie à partir de ses attributs u Une relation virtuelle (vue) est dérivée (héritée) par une opération relationnelle à partir de relations réelles ou de vues Relations

44 43 u En général, une valeur dun domaine et donc dun attribut peut être un ensemble u XML, Access 2007 u Pour les opérations relationnelles dans les SGBD actuels, ils ne sont néanmoins en principe que des valeurs atomiques u Toute décomposition fait perdre la sémantique de la valeur u De telles relations sont dites normales Relations

45 44 P1 P2 P3 P4 S1 S2 P1 P2 P3 P1 P2 P3 P4 P1 P2 P3 S1 S2 Norm. O NF1 NF Toute valeur de S# et toute de P#Une ligne S#P#S#P# Contrainte très importante !

46 45 Normalization en 1-NF u Contrainte très importante ! u Etud (E#, Tel, Hobby, Dipl, Enfants, Voit) u Etudiant Dupont: u 3 tel, 5 hobbies, 3 diplômes, 3 enfants, 2 voitures u Un tuple due relation en 0-NF suffit u Il faut 3*5*3*3*2 = 270 tuples pour une relation en 1-NF ! u Un tuple pour toute combinaison dun tél, un hobby, un dipl…. u sous peine de perte dinfo u Inacceptable en général

47 46 Solutions pour la Conception u Empirisme et Expérience u UML u Théorie Mathématique u Normalisation en i-NF ; i > 1 et BCNF u Surtout BCNF et 4-NF u Cours sur la normalisation relationnelle

48 47 Et la Manipulation ? u Le problème reste ouvert dans le relationnel de base u SELECT E#, Tel, Hobby, Dipl, Enfants, Voit FROM R1, R2…Rn WHERE… u Produit une relation virtuelle en 1-NF u Fera revenir les 270 tuples discutés u Une sortie: la Fonction LIST u SQL Anywhere & votre prof. u Voir le cours sur SQL avancé

49 48 u Dans toute relation R il existe une combinaison C d'attributs dite clé telle que u dans tout tuple t d'intention de R, la valeur C(t) identifie t, u il n'y a pas de sous-combinaison de C avec cette propriété u Démontrez cette assertion ! u Exemples: N° SS, N° Étudiant, Nom de pays, (Nom, Prénom, Tel), Oid,... Clés

50 49 u Le choix de C est dicté par l'intention de R u Soit R = Pers (Nom, Prénom, SS#, Tel) u Dans une famille Pers (Nom, Prénom, SS#, Tel) /* Tout membre u A la SS Pers (Nom, Prénom, SS#, Tel) /* Assuré seuelement u A l'état civil Pers (Nom, Prénom, SS#, Tel) /* Toute personne u Les valeurs d'un attribut d'une extension peuvent à un moment donné être toutes différentes sans qu'il s'agisse d'une clé ! Clés

51 50 u C atomique consiste dun attribut u C composite en contient plusieurs u Tout attribut dune clé est dit attribut- clé u Tout autre attribut est un attribut non- clé u Cest une fonction de toute clé de la table u Cette propriété est la base dune définition du concept de la clé Clés

52 51 u Il ne faut pas confondre le concept de la clé avec celui dun attribut-clé u Ce dernier ne pas la clé dès que la clé est composite u Dans Pers (Nom, Prénom, SS#, Tel) u SS# est la clé et lattribut-clé u Dans Pers (Nom, Prénom, SS#, Tel) u Nom nest que lattribut-clé Clés

53 52 u Si C est clé de R, alors tout ensemble dattributs de R strictement incluant C est appelé sur-clé ou super-clé Dans notre base S-P, S# est une clé de S, donc (S#, SNAME) est une sur-clé de S. Et les attributs (SNAME, STATUS) ne sont même pas une sur-clé Relations

54 53 u R peut avoir plusieurs clés. Dans ce cas: u Une clé est arbitrairement choisie est dite primaire u Les autres deviennent clés candidates u R peut avoir plusieurs clés de cardinalités différentes. u La clé avec le plus petit nombre dattributs est dite alors minimale u A choisir de préférence Relations

55 54 u Une clé C d'une relation R peut être des attributs F d'une autre relation R' u F deviennent une clé étrangère dans R u F n'est pas en général une clé de R' Relations

56 55 Voit (Châssis#, Moteur#, Plaque#, Mod, Poids, Coul ) Clé primaire Clé candidate Etud (E#, Nom, Prénom, Tel, Adresse ) Participants (C#, E#, Note) Clé étrangère Clé candidate composée

57 56 u L'égalité C = F constitue le lien sémantique entre les relations correspondants u Entre C et F il peut exister la contrainte d'intégrité référentielle u Pas de F sans C u Pas de participant qui ne serait pas un étudiant connu u Dans un SGBD de 2-ème génération ces liens étaient les références implicites (pointeurs) u Dans UML aussi en principe Relations

58 57 u Les SGBD majeurs gèrent désormais des contraintes IR ainsi que les liens sémantiques u MSAccess : u IR 1:1 et 1:N entre deux tables u Sur un ou plusieurs attributs à la fois u Quelques bugs pour 1:1 u Voir la suite du cours u Jointures implicites ou automatiques à partir de liens sémantiques u Voir la suite du cours Relations

59 58 Intégrité référentielle Mari M# 1 1 Mari M# Femmes F# 1 N Amie A# M N PP#, PS# Produit Composé Produit P# Femme F# 11 N N Ami A# Comment faire ?

60 59 u Les clés C et F peuvent aussi être dans une même relation: Emp ( E#, Enom, Tel, Chef# ) Personne ( SS#, Nom, Mère#, Père#) u De tels liens génèrent les récurrences exigeant le calcul de fermetures transitives u Les opérations relationnelles ne permettent pas de calculer les fermetures transitives u Les SGBD en général ne gèrent pas de tels liens sémantiques Intégrité Référentielle

61 60 u Une valeur nulle est un abus de langage pour designer une absence de valeur dun attribut u On dit aussi un nul Valeurs nulles

62 61 u Valeur inconnue u Ville de fournisseur inconnue u Valeur inapplicable u Fournisseur connu pour être sans statut u Cette distinction est rarement appliquée en pratique Types de nuls

63 62 Comment faire alors sil le faut ? Pour lattribut # TEL faut distinguer entre: # tel portable inconnu on relancera la personne pour connaître son numéro Personne sans téléphone portable Lutilisation dun nul pour un attribut peut être interdite Types de nuls

64 63 Pourquoi ? Une propriété qui peut sembler anodine En fait elle est dune importance capitale pour une base relationnelle conduit à la démarche dite de modélisation relationnelle notamment aux formes normales Le nul et la clé primaire Un attribut-clé de la clé primaire ne peut être nul

65 64 On peut interdire en pratique la présence dun nul pour un attribut Dans la définition de lextension de la relation La théorie initiale du modèle relationnel ne prévoyait pas de nuls Leur introduction (par les praticiens) a crée de nombreux problèmes beaucoup restent non-résolus voir les cours sur SQL Les nuls en perspective

66 65 Modélisation relationnelle u Passage du monde réel vers une base relationnelle u Le schéma conceptuel u Schémas de tables u Liens sémantiques & contraintes IR u Opérations permises u Les schémas externes

67 66 Modélisation relationnelle u Souvent fort simple u Lattrait de bases relationnelles u Exemples typiques commentés en cours u Fournisseurs et Pièces (Supplier Part DB) u Conseillers en assurances et Produits dAssurances u Etudiants et Cours

68 67 Modélisation relationnelle BDR

69 68 Modélisation relationnelle u On procède le plus souvent en trois étapes 1. Modélisation conceptuelle u Pas spécifique au relationnel u Ni aux BDs même 2. Conceptuel – Relationnel u Transformation du modèle conceptuel en CS et ESs dune BD 3. Normalisation u Amélioration du CS u Spécifique au relationnel plat

70 69 Une base relationnelle n'est correctement définie que si son le graphe de références est un graphe connecté u Une BD relationnelle en général comporte plusieurs relations u Un graphe de références représente sa structure u Les nœuds sont des relations u Les arcs orientés sont les contraintes d'intégrité référentielle C -> F u 1:N ou 1:1 u Les autres sont les liens sémantiques Résultat Attendu: Graphe de références

71 70 u Il faut minimiser le nombre de nœuds du graphe de références u Sous contraintes : u Dabsence danomalies u Dinsertion, suppression, MAJ u De minimisation de redondance globale de données u Par rapport à 0NF surtout u Les deux contraintes sont en fait duales Modélisation relationnelle : Conception dune BD relationnelle

72 71 u Il faut minimiser le nombre de nœuds du graphe de références u Sous contraintes : u Préservation de dépendances fonctionnelles (FDs) u Pas ou peu de valeurs nulles u Cette contrainte peut contredire celle sur les anomalies & redondances u Il faut alors exercer son bon sens Modélisation relationnelle : Conception dune BD relationnelle

73 72 u Anomalie dinsertion u On ne peut pas insérer de valeurs quil faudrait u Soit la table S = (S#, Sname, Status, City, P#, Qty) u Fournisseur S1 ne fournit encore aucune pièce u On ne peut pas insérer ses données: u Fournisseur S1 est Smith, a le statut 20 et est à Londres Modélisation relationnelle : Conception dune BD relationnelle

74 73 u Anomalie dinsertion u Il faut insérer une même donnée plus de fois que nécessaire u En idéal : une donnée nest insérée quune fois dans la base u Revoir notre exemple illustrant 1NF u La conception en une table présente lanomalie Modélisation relationnelle : Conception dune BD relationnelle

75 74 u Dans S, si S1 fournit 5 pièces, alors on insère Sname, City, Status 5 fois u Soit la conception en deux tables S = (S#, Sname, City, Statuts) SP (S#, P#, Qty) u On ninsère ces valeurs quune fois Modélisation relationnelle : Conception dune BD relationnelle

76 75 u La conception est libre de deux aspects discutés de lanomalie u On peut insérer les données sur S1 même sil ne fournit rien actuellement u En supposant quen général un fournisseur fournit plusieurs pièces, on diminue la redondance globale u Bien que lon laugmente nécessairement localement pour S# Modélisation relationnelle : Conception dune BD relationnelle

77 76 u Enfin, supposons que lon conçoit au lieu de S trois tables S1 (S#, Sname), S2 (S#, City), S3 (S#, Status) u On insère S1 deux fois de trop, par rapport à S u Trop de tables conduit à lanomalie aussi Modélisation relationnelle : Conception dune BD relationnelle

78 77 u Anomalie de MAJ u On MAJ plusieurs valeurs au lieu dune seule u Pour une bonne conception u Dans S, si S1 fournit 5 pièces et déménage à Paris, alors il faut mettre à jour 5 valeurs u Dans S, il suffit dune seule Modélisation relationnelle : Conception dune BD relationnelle

79 78 u Anomalie de suppression u On supprime les valeurs quil ne faudrait pas u Dans S, si S1 fournit 5 pièces u Si lon supprime 4 fournitures, les données de S1 restent dans la base u Si lon supprime la dernière fourniture, on les perd u Pas si lon a la conception en S et SP Modélisation relationnelle : Conception dune BD relationnelle

80 79 u Plusieurs relations u Chaque relation consistant u dune clé u de max dattributs identifiés chacun comme fonctions de la clé u On respecte aisément la condition nécessaire u Pas celle suffisante Modélisation relationnelle : Résultat générale

81 80 u On commence par modélisation dun ensemble dobjets réels par une relation dite souvent universelle, soit R1 u Les personnes u Les fournisseurs u Les produits u On dit que toute BD modélise une entreprise (ANSI – SPARC) Modélisation relationnelle : Démarche générale

82 81 u On cherche surtout des OIDs et, plus généralement, des déterminants u Attributs (peut-être composés) sur lesquels dautres attributs sont fonctionnellement dépendants u Autrement dit, ces attributs sont une fonction du déterminant ou dOID en particulier Modélisation relationnelle : Démarche générale

83 82 u On trouve, ou on crée, un OID dun objet u P# identifiant une personne u On trouve un ou des attribut(s), dits aussi attribut composé, que OID détermine u Pers (P#, Nom, Pnom, DNaiss,…) u Statut dun fournisseur u Poids, couleur dune pièce commandée dans P Modélisation relationnelle : Démarche générale

84 83 u On crée une nouvelle relation, soit R2, chaque fois que lon rencontre: u Un attribut (composé) à une liste de valeurs u Les #Tel dune personne, ses émails, diplômes… u On répète dans R2 le OID ou le ou un déterminant de R1 Modélisation relationnelle : Démarche générale

85 84 u Dans notre exemple, on aurait u PT (P#, Tél) u PE (P#, ) u PD ((P#, Dipl) u Il y aurait un tuple par élément de liste u La décomposition sans perte dinfo en 4NF par le Théorème Heath -Fagin Modélisation relationnelle : Démarche générale

86 85 u On crée une nouvelle relation, soit R2, chaque fois que lon rencontre: u Un attribut (composé) D qui nest pas une clé candidate, mais DF un autre u Code postale (CP) -> Ville u En supposant une seule ville par CP u Indice -> Salaire de base u On répète D dans R2 Modélisation relationnelle : Démarche générale

87 86 u Dans notre exemple, on aurait R1 = Pers (P#, Nom, Pnom, DNaiss, CP,…) R2 = CV (CP, Ville) u Le tout est la décomposition sans perte dinfo u Par Théorème de Heath u Dite en BCNF, 3NF… u Voir mon cours sur la normalisation Modélisation relationnelle : Démarche générale

88 87 u On crée une nouvelle relation, soit R2, chaque fois que lon rencontre: u Un attribut (composé) qui aurait crée souvent une valeur (composée) nulle u Nom de jeune fille u Personnes à Dauphine : u Etudiants avec leur Form. NoteG… u Employées avec #Emp, Sal… u Visiteurs Modélisation relationnelle : Démarche générale

89 88 u On répète dans R2 le déterminant de R1 u Pers (P#, Nom, Sex, Célib… ) et PJf (P#, NJf) u Cest lextraction de sous-classes u Méthodologie hors la normalisation relationnelle (FNs) u Autres exemples plus loin Modélisation relationnelle : Démarche générale

90 89 u On crée pour R2 sa clé selon le cas u Union des déterminants de R1 et de R2 u P#, Tel ; P#, ; u Comme dans notre exemple u Mais, il peut y avoir plusieurs choix u Quand on a plusieurs clés et déterminants Modélisation relationnelle : Démarche générale

91 90 u Le déterminant de la DF u CP ; Indice… u Comme dans notre exemple u Notre démarche réalise en fait la décomposition en projections indépendantes u Meilleure que celle dite en projections dépendantes u Perdant les DFs Modélisation relationnelle : Démarche générale

92 91 u Le déterminant de R1 ou, peut-être, de R2 u Pour les personnes qui sont les étudiants R2 = Et (P#, Form, NoteGlob…) u Ou, peut-être, on crée E# attribué aux étudiants seulement R2 = Et (P#, E#, Form, NoteGlob…) u On continue le processus de décomposition pour R1 et R2 etc. Modélisation relationnelle : Démarche générale

93 92 u On crée récursivement entre les relations obtenues u Les liens sémantiques u Les contraintes dintégrité référentielle u Le tout selon lapplication u Entre les déterminants u Entre les clés et les clés étrangères Modélisation relationnelle : Démarche générale

94 93 u Jointure implicite pour le lien sémantique u MsAccess dabord, suivi par quelques autres SGBDs u Une jointure ajoutée automatiquement à la requête en mode QBE u On ne spécifie que les attributs et agrégats u Requêtes + simples u - procédurales, + assertionnelles… Modélisation relationnelle : Démarche générale

95 94 u Jointures implicite ont été proposées dans les 80 u Par votre prof. et son Thésard A. Abdellatif (INRIA) u Développées avec Prof. G. Wiederhold & son Thésard B. Lee (Stanford) u Papiers sur la page Web de votre prof (CERIA) Modélisation relationnelle : Démarche générale

96 95 u Type de jointure implicite pour le lien sémantique (MsAccess) u Interne (défaut) u Produit seulement les tuples de deux tables ou les valeurs jointes sont égale u Signification des attributs en conséquence u Attr. Nom dans Pers est le nom détudiant pour le lien Pers Et u Cest le nom demployé pour P Emp Modélisation relationnelle : Démarche générale

97 96 u Type de jointure implicite pour le lien sémantique (MsAccess) u Externe u Préserve toutes les tuples dune de deux tables, au choix u Signification des attributs en conséquence u Si lon préserve P, alors Nom est le nom dune personne pour tout lien u P Et, P Emp, P Vst,… Modélisation relationnelle : Démarche générale

98 97 u Expérience dapplication u Les exercices u Voir ceux du cours u La pratique u Voir la vie autour u Dauphine, Votre entreprise, Facebook, Ecole de Conduite, vos CDs… Modélisation relationnelle : Démarche générale

99 98 Spécifications fonctionnelles: u Une entreprise a des fournisseurs S u Un fournisseur f a un ID, un nom, un statut, et est dans une ville u Un f fournit des fournitures SP de pièces P u Chaque fourniture fp comporte une certaine quantité d'une pièce p u Chaque p a un ID, un nom, un poids, une couleur u Une pièce p peut être l'objet de plusieurs fournitures fp Exemple canon

100 99 Schéma Conceptuel S S# Sname Status City P P# Pname Color Weight City SP P# S# Qty 1 * * 1

101 100 Jointure Implicite (S – SP) Choix de jointure interne

102 101 Résultat pour une requête QBE SQL

103 102 Exemple canon S P SP

104 103 u Cas spéciaux Pers (P#, Nom, Pnom, DNaiss, CP,…) CV (CP, Ville) u Que faire si lon sait que P1 est à Paris, mais lon ne connaît pas CP ? u Pas de problème par contre avec la conception dénormalisée Pers (P#, Nom, Pnom, DNaiss, CP, Ville) Modélisation relationnelle : Démarche générale

105 104 u Cas spéciaux Pers (P#, Nom, Pnom, Sex, Célib,…) PJf (P#, NJf) u Si les Jeunes Filles sont rares, la conception dénormalisée peut présenter – danomalies et redondance (sur P#) en moyenne Pers (P#, Nom, Pnom, Sex, Célib, NJf…) u Etant donc globalement + avantageuse Modélisation relationnelle : Démarche générale

106 105 u Conclusion u Il y a ceux et dautres cas spéciaux u Il faut commencer par la démarche générale u Après il faut exercer son bon sens u Selon les contraintes spécifiques de la base u Dénormaliser si utile Modélisation relationnelle : Démarche générale

107 106 Modèle Conceptuel An mille sept cent quatre-vingt-dix-neuf ? MDCCXCIX ? 1799 Votre modèle / standard préféré ? MDCCLXXXXVXXXX Modélisation Relationnelle Approfondie

108 107 Modélisation Conceptuelle u Univers u Objets u Entités u Propriétés u Associations entre les objets u Fonctions… u Ensembles spécifiques dobjets u Types u Classes...

109 108 Modélisation Conceptuelle u Universal Modeling Language u Standard Intl. de OMG u Une variante de EER u Extended Entity Relationship Model u ER avait été proposé par Peter Chen u Prof. à U. de Baton Rouge (LU) u Il y a une trentaine dannées u Très populaire dans le temps u Un peu à tort peut-être

110 109 Passage UML - Relationnel u Entités et Associations doivent devenir u Tables du CS ou des ES u Liens sémantiques u Contraintes dIR u Opérations sur les tables

111 110 UML u Des diagrammes standard proposées par OMG u Données, Opérations, Messages… u Notamment pour les BDs u Une adaptation dans de dernier but du modèle ER u Une autre présentation de certains diagrammes u Les concepts OO u Composition, Agrégation

112 111 UML u Objet = Entité (Entity) ou Occurrence dentité u Entité faible u Identifiable seulement dans une autre entité (forte) u Type dobjets = Type ou classe u Propriété = Association (Relationship)

113 112 UML : Type dEntité Nom Attributs clé et non-clé Opérations

114 113 UML : Type dEntité Pour le relationnel Attributs atomiques ou dérivés seulement Tout attribut atomique est fonctionnellement dépendants sur la clé On note une dépendance fonctionnelle (FD) de B sur A comme A -> B Pas dattributs multivalués ou composés Attributs dérivés sont pour les schémas externes et les sous-tables (Access) Les spécifs des opérations sont rares

115 114 UML : Type dEntité Personne P# Nom Prénom Nom de famille Hobbies Amis Restaurants Valide pour XML Pas pour le relationnel Il faut mettre tout composite ou multivalué en type dentité séparé (en principe)

116 115 UML : Type dEntité Personne P# Nom Prénom Nom de famille Hobbies Hobby Amies Ami Restaurants Restaurant 1..* * *

117 116 UML Assuré Client# Produit dass.# Prix Prix/Prix total per client Valide pour le relationnel Mais réalisable seulement comme une table et une vue Attribut dérivé Prix total = Prix de tous les produits du client

118 117 UML Associations Modèle dune auto-école basé sur lex. de M. Manouvrier Lécole peut envoyer entre 0 et 8 étudiants à un exam Diagramme de note en UML Appartient à Rôle de lassocion (directionnelle) Nom de lassociation Abréviation de 0..* Exactement 6 séries / CD

119 118 UML : Association n-aire u Les patients P sont soignés par des médecins M, dans des services S u Un médecin peut être partagé entre plusieurs patients et services 1 P S Soin M Que disent les chiffres ?

120 119 UML : Association 1-aire Personne P# Nom Prénom Père Mère Ancêtre

121 120 UML u Concept de composition u Les entités composantes nont pas dexistence propre u Ex. Les salles dun bâtiment u La suppression de la composition supprime aussi les composantes u Contrainte dintégrité référentielle u Symbolisée par losange noir u Les entités composées peuvent être agrégées par ailleurs u Losange transparent Batiment Salle Conf 1 0..* Les cardinalités x..y sont des exemples

122 121 UML : Classe / Sous-classe u Concept de sous-classes u Spécialisation/généralisation u Symbolisées par la flèche u Mandatory/Optional u Tout membre de la classe est obligatoirement dans une sous-classe u And/Or u Il peut être dans plusieurs sous-classes ou pas Assurance Ass-maisonAss-voitureAss-maladie A# Montant Val-maison Bonus Complément Optional / OR

123 122 UML / Relationnel Client C# Prénom Nom de famille Ville CP … Acceptable pour le relationnel Mais une mauvaise conception Si statut, comme son nom lindique ne dépend que de C# Si CP implique la ville Assurance A# C# Statut du client Prime … 1 *

124 123 UML / Relationnel Acceptable pour le relationnel Mais une très mauvaise conception Personne P# Hobby Ami Restaurant Prénom Nom de famille

125 124 Passage UML - Relationnel u Entités et associations doivent devenir u Tables u Liens sémantiques et contraintes IR u Opérations sur les tables u Dans le modèle UML la représentation des associations nest pas spécifiée u Pourrait être les listes de pointeurs (références) u Manipulées alors différemment dans un langage de programmation que les valeurs directes de données u Principe rejeté par le modèle relationnel

126 125 Passage UML - Relationnel u Les associations sont les tables comme les autres ou existent entre les valeurs des attributs comme les autres (Codd) u Entre les clés primaire et étrangère en général u Associations triviales : une même valeur dattribut clé étrangère dune table que celle dune clé dune autre table indique un même objet réel u Doù lintroduction et limportance capitale du concept de la clé dans le modèle relationnel

127 126 Passage UML - Relationnel u Egalement important est le principe que la table est un ensemble donc tout tuple a nécessairement une clé u Constituée peut-être par tous les attributs, mais quand même u Pas une bonne idée u Résultat global: une même expression de manipulations de toutes les données dans la base (Codd) u Un énorme avantage pour le but de non- proceduralité

128 127 Réification (Etape 1) u Outil Fondamental de passage UML – Relationnel : u On réifie : u Toute classe dassociations en une classe dentités u Toute classe dentités deviendra plus tard une table relationnelle

129 128 Réification (Etape 1) u Une classe dassociations est peut-être réifiée en celle dentités avec ses classes dentités aux extrémités u Si lassociation est une bijection notamment u Autrement, on transforme une association en celle triviale entre les attributs des entités u Tout attribut structuré ou multivalué est réifié en une entité (séparée et associée par des clés étrangères)

130 129 Réification (Etape 2) u Toute entité réifiée devient une table relationnelle u Les associations triviales deviennent u Les liens sémantiques u Les contraintes dintégrité réferentielle

131 130 Réification u Le concept de réification est rarement explicité u La réification est en général manuelle u A lheure actuelle u Cest la principale limitation de lemploi dune BD relationnelle par un usager Tout-le-Monde

132 131 Réification : Principe Général A A# A1 …. B B# B1 …. C C1 …. A A# A1 …. B B# B1 …. C A# B# C1 …. Association triviale: les deux B# identifient la même entité. Cest une réification adaptée au relationnel pour éviter les anomalies Dautres réifications sont possible (ex. A et B et C en une entité commune) Relation universelle

133 132 Réification : Principe Général A A# A1 …. B B# B1 …. C A# B# C1 …. A A# A1 …. B B# B1 …. C A# B# C1 …. A lorigine, il ny avait pas de liens sémantiques explicites dans une BD Rel. Les associations triviales devenaient des liens implicites : légalité du nom de la clé primaire et celle étrangère

134 133 Réification : Principe Général A A# A1 …. B B# B1 …. C RoleA# RoleB# C1 …. Après, oui, notamment pour lintégrité référentielle en utilisant le nom de rôle (nom de lassociation, uni ou bidirectionnelle : ex. Prop._de_la_voiture_) A A# A1 …. B B# B1 …. C A# B# C1 ….

135 134 Réification & Pointeurs dans les Langages de Programmation u Une association triviale représente dune manière explicite un pointeur dune table vers une autre u La valeur dun pointeur est explicite u Contrairement en principe aux langages de programmation u Dans le modèle relationnel elle est celle dune attribut comme dautres u Presque, car il y a en général les contraintes référentielles à gérer u Un pointeur peut être alors manipulée comme toute autre donnée u Une des idées fondamentales de E.Codd u En fait le concept de la clé est une conséquence de cette idée u Une représentation à la fois compacte et explicite dun pointeur

136 135 Réification : Association n-aire 1 P S Soin M 1 P S M S# P# M# Soin

137 136 Réification : Attribut composé Personne P# Prénom Nom de famille Hobbies Amis Restaurants Nom Tel Personne P# Prénom Nom de famille Hobbies P# Hobby Amis P# Ami Restaurant P# Nom Tel Les cardinalités des associations ? Le processus est transitif pour une valeur composée dans un attribut

138 137 Réification : Attribut composé Personne P# Prénom Nom de famille Hobbies Amis Restaurants Nom Tel Personne P# Prénom Nom de famille P_H P# H# Amis P# Ami Restaurant P# Nom Tel Approche utile pour un entrepôt de données Peut faire gagner de la place en mémoire de stockage (encombrement de H# est souvent bien plus petit que celui du texte de Hobby) Hobbies H# Hobby

139 138 Réification : Entité Faible C# Client Cl# Conseiller Cl# Nom Cl# nest pas la clé C# Client Conseiller Cl# C# Nom 1 *

140 139 Réification : Entité Faible C# Client Cl# Conseiller Cl# Nom Cl# nest pas la clé La clé de Client si Conseiller est une entité faible aussi ? C# Client Conseiller ? …. Nom 1 *

141 140 Réification : Cas Spécifiques Bijection Mari M# A1 …. Femme F# B1 …. Mariés Date …. 1 1 Mariage M# ou F# F# ou M# Date A1 …. B1 ….. On réifie en une entité ( laquelle ?). Changement du modèle conceptuel. On gagne en en général en efficacité en éliminant une jointure Il nest plus possible dintroduire une Femme dont on ne connaît pas la Mari ou vice versa (pourquoi ?) Unique (un seul mariage, pas de personnes remariés ensemble)

142 141 Réification : Cas Spécifiques Bijection Client C# A1 …. Voiture V# B1 …. Accident Date …. 1 1 On mémorise tous les accidents dun client avec sa voiture Peut-on en général réifier comme auparavant ? Sinon pourquoi pas ?

143 142 Réification : Cas Spécifiques Injection Mari M# A1 …. Femme F# B1 …. Mariés Date … Femme Mariée ou pas F# M# Date A1 …. B1 ….. Changement du modèle conceptuel On gagne en souvent en efficacité en éliminant une jointure / à lapproche de base Unique (un seul mariage de personnes remariés ensemble)

144 143 Réification :Cas Spécifiques Mari M# A1 …. Femme F# B1 …. Mariés Date … Mari M# A1 …. Femme F# B1 …. Mariés M# F# C1 ….

145 144 Réification : Hiérarchie Mari M# A1 …. Femme F# B1 …. Mariés Date … Mari M# A1 …. Femme-m F# M# Date B1 …. On na que les femmes mariées (changement du modèle conceptuel) On élimine une jointure et une redondance/ à lapproche générale

146 145 Réification : Les Veuves ? Mari M# A1 …. Femme F# B1 …. Mariés Date … Votre Proposition ici

147 146 Réification : Classe / Sous-classe Assurance Ass-maison Ass-voitureAss-maladie A# Montant A# Val-maison A# Bonus A# Complément Assurance Ass-maisonAss-voitureAss-maladie A# Montant Val-maison Bonus Complément Optional / OR Les tables sont comme les entités réifiées. Comment faire pour lIR ?

148 147 Réification : Classe / Sous-classe Client HommeFemme C# Nom Mandatory/ OR Nom_JF Client C# Nom Nom_JF Sinon votre proposition ici OK ?

149 148 Réification : Classe / Sous-classe Schéma MsAccess

150 149 Réification : Classe / Sous-classe Schéma MsAccess u Le schéma permet daisément formuler les requêtes: u Toute donnée de personne P1 dans Pers et, sil y a lieu, ses données En tant quun employé En tant quun étudiant u MsAccess génère alors les jointures implicites externes u Cours SQL

151 150 Réification : Autres Cas u Le « jeu de clés » en général facile à voir de diagrammes UML u Agrégation u Composition u Associations 1-ères u Sauf celle dite Ancêtre u Calcul de la fermeture transitive u Peu performant dans les BDs Relationnelles

152 151 Réification : Cardinalités u 1 * ou 1 1 présent avant ou après la réification, se réifie en contrainte dintégrité référentielle clé primaire – clé étrangère u 0 * ou 0 1 se réifie en un lien sémantique u Autre cardinalités, p.ex. 1 6 nécessitent en général des déclencheurs u Pas une sinécure pour Mme/M Tout le Monde

153 152 Réification : Autres Cas u Lexemple dune Personne avec les Amies, Hobbies…? u Attributs dérivées ? u Il faut les mettre dans les vues Select Sum (Prix) as PrixTotal from Client Group By Client#

154 153 Après la Réification u Le résultat peut être OK u Exercice : Modèle relationnel de lauto- école u Mais il peut être pas bon du tout pour une BD relationnelle u A cause danomalies et de redondances u Doù la phase de normalisation u Peut-être appliquée à partir de la relation universelle directement u Par lanalyse des DFs et des DMs

155 154 Spécifications fonctionnelles: u Une entreprise a des fournisseurs S u Un fournisseur f a un ID, un nom, un statut, et est dans une ville u Un f fournit des fournitures SP de pièces P u Chaque fourniture fp comporte une certaine quantité d'une pièce p u Chaque p a un ID, un nom, un poids, une couleur u Une pièce p peut être l'objet de plusieurs fournitures fp Exemple canon

156 155 Exemple canon S S# Sname Status City P P# Pname Color Weight City SP Qty * *

157 156 Exemple canon S S# Sname Status City P P# Pname Color Weight City SP P# S# Qty 1 * * 1 Association triviale

158 157 Exemple canon S P SP

159 158 Pourquoi S-P est comme ça ? u Avantages : u Pas de duplicata de valeurs d'attributs entre les tables S, SP, et P u sauf le strict minimum (les clés) u Pas danomalies. u On verra cette notion dans le cours suivant. u Efficacité de stockage. u Pas dattribut-clé unique pour SP u Compare à la conception en une seule relation u Problèmes : u Comment trouver le Nom du fournisseur de pièces rouges ? u etc..

160 159 Solution u Opération relationnelle de jointure entre les relations u en SQL : SELECT SNAME FROM S, SP, P WHERE S.S# = SP.S# AND SP.P# = P.P# AND COLOR = 'RED' ;

161 160 Exemple Projet BD Assurance 07

162 161 UML -> XML 123 Jean Dupont Ski, Tennis, Voile Jean, Paul Sinbade, Café Court, Gargote Personne P# Nom Prénom Nom de famille Hobbies Amis Restaurants Plusieurs SGBD relationnels offrent les interfaces XML Type dentité UML Une entité XML (dite document)

163 162 Exercices u Proposer les schémas relationnels pour les exemples en cours u Modéliser en UML et en relationnel un livre typique u Modéliser en UML et en relationnel laffectation de salles de cours à Dauphine. Justifiez le choix si plusieurs solutions sont possibles. Indiquez les clés primaires et candidates. u Modèle 1: Une réservation se définit par le n° de la salle, le nom du cours, la date, lheure début et lheure fin. (i) Un cours nest quune fois par jour dans la même salle. (ii) Alternativement, une répétition est possible. u Modèle 2 : On ajoute le type de la salle, si cest: lamphi, une salle équipée vidéo ou une salle TP u Modèle 3 : On ajoute le nom du prof enseignant le cours (i) Un enseignant par cours. (ii) Plusieurs.

164 163 Exercices u Modéliser une bibliothèque possédant un ou plusieurs exemplaires dun livre sur des rayons, en prêt ou en retour dun prêt mais pas encore sur les rayons. u Proposez une modélisation usuelle en UML dune personne ayant un ID, un nom, une mère et un père. Proposez ensuite un schéma relationnel. u Ce schéma satisfait-t-il: u Un DBA soucieux de lespace de stockage de la base. Sinon, que lui conseillez-vous ? u Un DBA voulant minimisant le temps de requêtes donnant pour certains chefs identifiés par leurs IDs, les IDs de tous leurs employés u Modéliser un certificat de naissance dun bébé en sachant que les parents peuvent ou pas être mariés u Modéliser les assurances proposées par une compagnie pour une personne : voiture, maison, resp. civile… u Voir les livres en BDs pour 1 millier dautres exercices du type : u Spécifs fonctionnelles -> UML -> réif. -> Schéma Rel.

165 164 Exercices u On crée le modèle pour la base des enfants. Pour chaque enfant on a le père et la mère. Proposez le modèle UML. Lenfant doit être modélisé comme une entité ou une association ? u On constitue une base de produits. Chaque produit a un ID et nom, une photo et appartient à plusieurs catégories de produits identifiées par leur noms. Plusieurs produits peuvent appartenir à une même catégorie. La photo comporte plusieurs produits agencés dune manière typique pour leur application. Plusieurs produits partagent une même photo. u Proposez la modélisation typique UML, puis la réification, enfin le schéma relationnel. u Le DBA sait en plus quil a en moyenne 100 produits par catégorie et autant par photo. Il y a 100 catégories et photos en tout. Le nom dune catégorie est un champ fixe de 50 octets. Une photo nécessite 1 MOctets. u Le DBA sait quil y a produits. Il souhaiterait minimiser lencombrement de la base. Est-ce que la modélisation typique minimise le satisfait ? u Sinon, proposez en UML et en relationnel une autre qui serait plus optimale. Evaluez le gain. u Un autre DBA a comme préoccupation principale de minimiser le temps dune requête demandant des noms de produits avec leurs catégories et les photos. Il veut minimiser le nombre de jointures. Quelle modélisation lui conseillez vous?

166 165 Exercices suppl. Clic hors diaporama

167 166 FIN Merci de votre attention W. Litwin

168 167


Télécharger ppt "1 Modèle Relationnel & UML 09 - 10 Witold Litwin."

Présentations similaires


Annonces Google