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 2011 - 12 Witold Litwin 2 2 Le Rapport de Recherche qui a lancé les SGBDs Relationnels (publié uniquement en interne à IBM Almaden.

Présentations similaires


Présentation au sujet: "1 Modèle Relationnel 2011 - 12 Witold Litwin 2 2 Le Rapport de Recherche qui a lancé les SGBDs Relationnels (publié uniquement en interne à IBM Almaden."— Transcription de la présentation:

1

2 1 Modèle Relationnel 2011 - 12 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 Mono-attribut et multi-attribut 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 donc mono-valeur u donc indécomposable u sans perte de la sémantique u De telles relations sont dites normales u Autrement dit 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 S1 S2 P1 P2 S1 S2 P1 P2 P3 P4 P1 P2 P3 S1 S2 1 NF Relations 0 NF Attribut multi-valeur Attribut atomique P3 S1 S2 P4S1 La même 1NF !

22 21 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

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

24 23 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

25 24 Une même relation S

26 25 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

27 26 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 ?

28 27 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

29 28 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…

30 29 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

31 30 u R1 UNION R2 u R1 INTER R2 u R1 DIFF R2 u Elles sont union-compatibles u Même nombre dattribut u Types dattributs compatibles u Permettant dévaluer « = « sur les attributs u La définition de compatibilité dépend du SGBD u Même de sa version Op. ensemblistes UNION, INTER, DIFF

32 31 u Produit cartésien u R1 TIMES R2 u Pas de contraintes sur les types dattributs u Ni sur leur nombre u Opération très chère que lon évite à tout prix Op. ensemblistes TIMES

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

34 33 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

35 34 Jointure naturelle Est-ce que la jointure naturelle est commutative et/ou associative ? Notamment \ une sélection ou une projection ? A JOIN B =? B JOIN A A JOIN B JOIN C = ? A JOIN (B JOIN C) A JOIN A JOIN A = ?

36 35 CS SC CS JOIN SC S S [STATUS, CITY] S [S#, CITY]

37 36 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 Fournisseurs avec les fournitures

38 37 -jointure u Table C égale à : C = ( A TIMES B ) WHERE X Y est la jointure de tables A(X,...) et B (Y,...). TIMES est un produit cartesien X et Y sont non-composites La jointure est notée : C = A JOIN B ON X Y.

39 38 - 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 ?

40 39 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 ?

41 40 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#])

42 41 Requêtes algébriques à la base S-P u [SCITY] UNION [PCITY] u S JOIN (SP WHERE P# = 'P2) INTER ( S JOIN SP ) WHERE P# = 'P3' [ SNAME] u S DIFF (S JOIN (SP WHERE P# = 'P2' [S#])) [ SNAME] u S TIMES SP WHERE P# = 'P2' WHERE STATUS > 100 [ SNAME]

43 42 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

44 43 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

45 44 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

46 45 Opérations relationnelles (SQL) Voit (Im#, Pref, Mod, Couleur) Amende (A#, I#, Nom, Addr, Payé) u Select * From Voit Where Couleur = 'rose'; u Select Mod From Voit u Select * From Voit, Amende u Select Nom, Addr From Amende, Voit Where Payé Is Null and Mod = 'Ferrari' and I# = Im# ;

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

48 47 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

49 48 u Une relation réelle est définie à partir des valeurs 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

50 49 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

51 50 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 ! 9 valeurs14 valeurs

52 51 P1 P2 P3 P4 IBM HP P1 P2 P3 IBM IBN IMB HP S1 S2 Norm. O NF1 NF Toute valeur de S#, Name et toute valeur de P# Une ligne NameP#S#Name Redondances & Erreurs Peu acceptables en général S1 S2 S# P1 P2 P3 P4 P1 P2 P3 P# DF: S# -> Name 11 valeurs21 valeurs

53 52 P1 P2 S1 S2 P4 P5 P6 P7 P1 P2 P4 … S1 S2 … Norm. O NF 1 NF Toute valeur de (S#, P#, L#)Une ligne S#P# S#P# L1 L2 L3 L4 L5 L6 L# L1 L2 L3 L1 L2 L3 L4 L5 L6 … L# DM: S# ->> P# | L# Redondances multiples Inacceptables en général 14 valeurs54 valeurs

54 53 Normalization en 1-NF u Explosion combinatoire de la taille de la table ! 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 u Un tuple pour toute combinaison dun tél, un hobby, un dipl…. u Pour une relation en 1-NF avec 1 tuple seulement !

55 54 Normalization en 1-NF u Il faut 1620 valeurs en 1NF u Pour 17 valeurs seulement en 0NF u Sous peine de perte dinfo u Une requête pourrait alors donner le résultat faux u L tout est inacceptable en général u Et si on a aussi le nom pour chaque étudiant ?

56 55 Solutions pour la Conception u Alors comment faire ? u Décomposition sans perte de données en plusieurs tables sans anomalies ET (E#, Tel), EH (E#, Hobby) ED (E#, Dipl), EE (E#, Enfants) EV (E#, Voit) u Seulement 16 tuples au lieu de 270 u Seulement 32 valeurs au lieu de 1620

57 56 Solutions pour la Conception u Peut-on généraliser cette idée ? u Oui, mais ce nest pas simple u Deux voies principales 1. Empirisme et Expérience u Entity – Relationship u Merise u … u UML

58 57 Solutions pour la Conception 2. Démarche Formelle u Par les Maths u Normalisation en i-NF i 5 u Voir mon cours sur la normalisation pour + u En général 4 NF suffit u On fait la décomposition sans perte de données u Quand on peut, sans pertes de DFs aussi

59 58 Solutions pour la Conception u On élimine dabord les DMs u Génératrices danomalies les plus graves u Quand passe une table de 0 NF à 1 NF u Comme on a vu u La décomposition conduit aux plusieurs tables sans DMs

60 59 Solutions pour la Conception u Certaines tables peuvent avoir encore des DFs « anormales » u A lorigine danomalies aussi u Comme on a vu u Moins graves que celles de DMs u On décompose ces tables aussi u En se débarrassant des anomalies crées par ces DFs

61 60 Solutions pour la Conception u Lest tables résultantes sont alors en toutes en BCNF u A fortiori en 4NF u Le résultat est en général optimal pour le relationnel classique u Pas danomalies ou de redondances u Toute table est en 5NF u Voir le cours sur la normalisation

62 61 Solutions pour la Conception u Restent la présence de valeurs nulles u Elle peut créer des anomalies aussi u On y remédie par une décomposition sans perte aussi u Mais, avec la recomposition par jointures externes u On verra + tard

63 62 Solutions pour la Conception u Dans lensemble, pour progresser il nous faut un petit rappel sur: u Les clés u Les liens sémantiques u Les valeurs nulles u Ce que lon va faire très bientôt dans ce qui suit

64 63 Et la Manipulation ? u Le problème reste ouvert dans le relationnel classique: u SELECT E#, Tel, Hobby, Dipl., Enfants, Voit FROM ET, EH, ED, EE, EV WHERE ET. E# = ET. E# AND ET. E# = ED. E# … u Produit une relation virtuelle en 1-NF u Fera revenir les 270 tuples discutés u Une solution: la fonction agrégat LIST u Votre prof. & SQL Anywhere u Le cours sur SQL avancé

65 64 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

66 65 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

67 66 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

68 67 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

69 68 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

70 69 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 seulement u Une seule clé existante dans une table est formellement une clé candidate aussi u Pour certains, néanmoins, la clé primaire nest plus une clé candidate Relations

71 70 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

72 71 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

73 72 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

74 73 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

75 74 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

76 75 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 ?

77 76 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

78 77 u Néanmoins MsAccess le fait u Dune manière limitée u Par la déclaration adéquate de relations u Pour lintégrité référentielle u Par la définition correcte de sous- feuille (sous-table) u On déclare la table elle-même comme sa propre sous-feuille (sous-table) u Pour voir en un clic les employés dun chef etc. Intégrité Référentielle

79 78 u Une valeur nulle est un abus de langage pour designer une absence de valeur dun attribut u On dit aussi un nul ou un null (ang. null) Valeurs nulles

80 79 u Valeur inconnue u Ville de fournisseur inconnue u Valeur inapplicable u Fournisseur connu pour être sans statut u Nom de jeune fille pour un monsieur u Cette distinction est rarement appliquée en pratique Types de nuls

81 80 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 Types de nuls

82 81 u Ce type de nul peut indiquer alors lexistence dune sous-classe u Etudiants dans Etud qui nont pas denfants u Il est souvent utile davoir une ou des tables dédiées à la sous-classe u Sous peine danomalies graves u On reverra ce problème Types de nuls

83 82 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

84 83 u Cette propriété est à lorigine de lanomalie dinsertion u Il s`agit de limpossibilité de linsertion dun tuple à cause dun attribut clé nul u Dans Etud en 1NF il pourrait sagir de tout attribut Etud (E#, Tel, Hobby, Dipl, Enfants, Voit) Le nul et la clé primaire

85 84 u P. ex. impossible dinsérer une donnée quelconque dun étudiant sans enfants u La décomposition sans perte peut être la solution u Voir Etud décomposé u Mais pas toujours Le nul et la clé primaire

86 85 u On peut interdire la présence dun nul pour un attribut Dans la définition de lextension de la relation Notamment dans MsAccess La théorie initiale du modèle relationnel ne prévoyait pas de tables avec des nuls Les nuls en perspective

87 86 Lintroduction de nuls a été faite par les « praticiens » Elle a crée de nombreux problèmes théoriques et pratique Beaucoup restent non-résolus Voir + dans le cours sur le site et dans le cours sur SQL Les nuls en perspective

88 87 Ex. MsAccess Deux nuls sont égaux pour Distinct et Group By Ils sont différents pour lequi-jointure Un nul est plus grand que tout non-nul Somme (nul, a) = a mais nul + a = nul Une requête peut générer une table avec tous les tuples entièrement nuls Vous avez dit bizarre ? Les nuls en pratique

89 88 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

90 89 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

91 90 Modélisation relationnelle BDR

92 91 Modélisation relationnelle u Méthodes « grand-public » semi-formelles u ER u ERG u Merise… u UML u Le résultat peut être optimal u Méthode formelle u Le résultat optimal garanti

93 92 Démarche semi-formelle u Trois phases 1. Modélisation conceptuelle par spécifications fonctionnelles u Pas particulière 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 par suppression des anomalies

94 93 Démarche formelle u Deux phases 1. Modélisation conceptuelle par spécifications fonctionnelles 2. Conceptuel –> Relationnel 1. Normalisé 2. Sans sous-classes cachées

95 94 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 Modélisation Relationnelle Graphe de références

96 95 u Graphe des références à nombre minimal de nœuds 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 duales Résultat Attendu: Graphe de références optimal

97 96 u Graphe des références à nombre minimal de nœuds u Sous contraintes : u Préservation du max. de dépendances fonctionnelles (FDs) u Absence de dép. multivaluées (DMs) u Pas ou peu de valeurs nulles u Cette contrainte peut contredire celle sur les anomalies & redondances u Il faut alors exercer le bon sens Résultat Attendu: Graphe de références optimal

98 97 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 : Anomalies

99 98 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 Ex. 1 Revoir notre exemple illustrant 1NF u La conception en une table présente lanomalie Modélisation relationnelle : Anomalies

100 99 u Ex. 2 Dans S, si S1 fournit 5 pièces, alors on insère aussi Sname, City, Status 5 fois u Soit maintenant la conception en deux tables S = (S#, Sname, City, Statuts) SP (S#, P#, Qty) Modélisation relationnelle : Anomalies

101 100 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 La base peut contenir davantage de données u On ninsère aussi Sname, City, Status quune fois Modélisation relationnelle : Anomalies

102 101 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 : Anomalies

103 102 u Ex. 3 Soit la table S' = (S#, Sname, Status, ZIP, City) u Pour chaque ZIP il ny a quune ville u Il faut répéter la ville inutilement quand plusieurs fournisseurs partagent un même code postal u La solution ? u Problème dit de 3NF Modélisation relationnelle : Anomalies

104 103 u Ex. 4 Soit notre table S S = (S#, Sname, Status, City, P#, Qty) u Supposons que S# et Sname sont deux clés candidates dans S (S#, Sname, Status, City) u S présente la même anomalie quavant u Une autre solution en plus de celle de la décomposition en tables S et SP déjà discutées? u Problème dit de BCNF Modélisation relationnelle : Anomalies

105 104 u Ex. 4 Soit la table P = (P#, Pname, E#, Sal, S#, Dipl, V#, Lab) u Une personne est en général soit un employé, soit un étudiant, soit un visiteur u Une insertion génère un général beaucoup de nuls u Une anomalie non considérée par le relationnel classique u On y reviendra + tard Modélisation relationnelle : Anomalies

106 105 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 trois fois de trop, par rapport à S u Trop de tables conduit à lanomalie aussi Modélisation relationnelle : Anomalies

107 106 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 : Anomalies

108 107 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 : Anomalies

109 108 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éral

110 109 u Détails dans les exercices vus en classe u Pas sur le Web u Dabord, on traduit les spécifications fonctionnelles en une seule relation u Relation universelle Démarche formelle

111 110 u Relation universelle est souvent notée U u U est un fourre-tout u Sans nuls u Selon le relationnel classique u Si U est sans anomalie et en 5NF on a fini u Cas très rare Démarche formelle

112 111 u Sinon on procède en deux étapes u On élimine les DMs u Par Th. de Fagin u On élimine des anomalies dues aux certaines DFs u Par Th. de Heath Démarche formelle

113 112 u Le Théorème de Fagin décompose sans pertes une table u En commençant par U u Chaque décomposition u Liquide une DM u Remplace une table R par deux projections R1 et R2 telles que R = R1 Join R2 Démarche formelle

114 113 u On continue récursivement pour toute table résultante u Jusquaux tables sans DMs u Nécessairement Démarche formelle

115 114 u Une table R sans une DM peut présenter encore des anomalies u En présence de DFs sur des attributs que ne seraient pas des clés u Déterminants (mono-valeur) u On passe alors a Etape 2 u Y compris peut-être pour U demblée Démarche formelle

116 115 u On applique récursivement le Th. de Heath u A chaque fois, on décompose une table sans pertes de données en deux projections u Lune contient seulement la DF max. pour un déterminant qui nest pas une clé u Avec tous les attributs cibles sur ce déterminant Démarche formelle

117 116 u On liquide à chaque décomp. une anomalie u Due à la DF max. mise dans sa table dédiée u Comme dans notre ex. de passage 0NF -> 1NF u Revoir aussi la def. de la BCNF u Il en résulte le schéma avec le minimum de tables sans anomalies dues à de telles DFs u En 4NF, vu lélimination des DM déjà Démarche formelle

118 117 u La décomposition doit chercher des projections indépendantes u Pour ne pas perdre de DFs u Ce nest pas toujours possible u Voir la discussion de la BCNF dans le cours sur la normalisation u On sarrête quand il ny a plus de table avec une anomalie due à une DF Démarche formelle

119 118 u Si les nuls sont permis, alors on passe à létape 3 u On suppose quune table R dans le résultat peut contenir de nuls non-clé u Contrairement aux relationnel classiques u Donc a la Théorie des NFs Démarche formelle

120 119 u On regarde si R na pas alors « trop » de nuls u Seul le bon sens dit si trop de nuls cest vraiment trop u Ces nuls peuvent indiquer des sous- classes u Sous-types Démarche formelle

121 120 u Il faut alors encore décomposer u Mais comment et sur quel base théorique ? u On ne peut plus employer de jointures naturelles (internes) u Le principe de la décomposition sans perte classique u Notamment des Etapes 1 et 2 Démarche formelle

122 121 u On peut néanmoins décomposer sans perte R alors en utilisant les jointures externes u Théorème de votre prof. u Détails dans les exercices Démarche formelle

123 122 u Ensuite, 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 clés primaires ou candidates et les clés étrangères Modélisation relationnelle : Toute Démarche

124 123 u Enfin, on choisi pour chaque contrainte référentielle et chaque lien sémantique sa jointure implicite u Une jointure ajoutée automatiquement à la requête en mode QBE Modélisation relationnelle : Toute Démarche

125 124 u Requêtes courantes deviennent + simples u - procédurales, u + assertionnelles… u Cette possibilité dans les SGBDs commerciaux vient de MsAccess u Suivi par quelques autres SGBDs u SQL Server, DB2, Sybase (?)… Modélisation relationnelle : Toute Démarche

126 125 u En fait, les jointures implicite ont été proposées dans les 80 u Par votre prof. et son Thésard A. Abdellatif (INRIA) u Prof. à Tunis Modélisation relationnelle : Toute Démarche

127 126 u Développées avec Prof. G. Wiederhold u Ont donné lieu au Ph.D. de son étudiant B. Lee (Stanford) u Papiers sur la page Web de votre prof. Modélisation relationnelle : Toute Démarche

128 127 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 égales Modélisation relationnelle : Toute Démarche

129 128 u Externe u Préserve toutes les tuples dune de deux tables u Au choix sous MsAccess u Mais pas les deux tables à la fois u Pas de jointure externe complète sous MsAccess Modélisation relationnelle : Toute Démarche

130 129 u On peut demander N°, nom, NomJF, tel, ville, email en QBE u Sans spécifier les jointures u La réponse serait OK u Elle serait erronée pour les jointures internes u Pourquoi ? 300 Modélisation relationnelle : Toute Démarche

131 130 u Jointures externes sont mal supportées par MsAccess u Absence de la théorie cohérente u Bugs u Voir + dans le cours sur SQL u A nutiliser comme implicites que quand cest vraiment utile et testé Modélisation relationnelle : Toute Démarche

132 131 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 formelle

133 132 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

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

135 134 Jointure Implicite (S – SP) Choix de jointure interne (défaut)

136 135 Résultat pour une requête QBE SQL

137 136 Exemple canon S P SP

138 137 u Cas particulier u Tout employé a un et un seul poste tél, u Il y a aussi des postes non-assignés u Dans la base créée par la démarche générale on aurait que : Empl (E#, Nom, PosteTel,…) Modélisation relationnelle : Démarche générale

139 138 u On a une anomalie dinsertion u Laquelle ? u On ajoute la table Postes (PosteTel) u Avec une contrainte dintégrité u Laquelle ? Modélisation relationnelle : Démarche générale

140 139 u Cas particulier 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 : Toute Démarche

141 140 u Cas particulier VRP (P#, Nom, Pnom,…) Planning (P#, Ville, JourSem) u Un VRP fait plusieurs villes avec des jours spécifiques pour chaque u Les deux attributs Ville et JourSem seraient multi-valeur par rapport à P# u On les met néanmoins dans la même table Modélisation relationnelle : Démarche générale

142 141 u La raison est quil sagit dune (plus rare) association ternaire u les valeurs de ces attributs ne sont pas indépendantes u VRP X visite Ville Y le JourSem Z u Le même principe sapplique à toute association de dégrée + élevé u Rares Modélisation relationnelle : Démarche générale

143 142 u Cas particulier Pers (P#, Nom, Pnom, Sex, Célib,…) PJf (P#, NJf) u NJf existe seulement pour les dames mariées u Si les Jeunes Filles sont rares, la conception normalisée est fortement redondante sur P# Modélisation relationnelle : Démarche générale

144 143 u En + il faut une jointure systématique pour voir NJf avec le reste du dossier u La conception dénormalisée na pas ceux problèmes Pers (P#, Nom, Pnom, Sex, Célib, NJf…) u Elle est alors préférable en pratique Modélisation relationnelle : Démarche générale

145 144 u En pratique u Un attribut seul avec nuls fréquents tel que NomJF reste en général dans « sa » table, p.ex., Pers u Attribut à quelques de valeurs, p.ex. N°Tels, donne lieu à un nombre fixe dattributs atomiques dans « sa » table u Tel_M, Tel_B, Tel_P u Email1, Email2, Email3 Modélisation relationnelle : Démarche générale

146 145 u En pratique u On complète éventuellement la table par une « extension » pour les autres valeurs si besoin u Pers (P#, Tel_M, Tel_B, Tel_P…..) u AutresTels (P#, Tel) u Quel type de jointures implicite serait approprié alors ? Modélisation relationnelle : Démarche générale

147 146 u En pratique u On sécarte de la démarche générale par pas mal de raisons hors celle-ci, internes surtout u Coût de traitement de jointures u Coût mémoire des indexes pour rendre les jointures rapides u Problèmes théoriques avec jointures externes u …. Modélisation relationnelle : Démarche générale

148 147 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

149 148 Modèle Conceptuel An mille sept cent quatre-vingt-dix-neuf ? MDCCXCIX ? 1799 Votre modèle / standard préféré ? MDCCLXXXXVXXXX Modélisation Relationnelle Avancée

150 149 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...

151 150 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

152 151 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

153 152 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

154 153 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)

155 154 UML : Type dEntité Nom Attributs clé et non-clé Opérations

156 155 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

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

158 157 UML : Type dEntité Personne P# Nom Prénom Nom de famille Hobbies Hobby Amies Ami Restaurants Restaurant 1..* 1 0..10 1..* 0..10 1..*

159 158 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

160 159 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

161 160 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 1 1..4 100 1..5 1 Soin M Que disent les chiffres ?

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

163 162 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..* 1..4 1..7 Les cardinalités x..y sont des exemples

164 163 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 1 11 0..1

165 164 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 *

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

167 166 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

168 167 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

169 168 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é

170 169 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

171 170 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)

172 171 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

173 172 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

174 173 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

175 174 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

176 175 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 ….

177 176 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

178 177 Réification : Association n-aire 1 P S 1 1..4 100 1..5 1 Soin M 1 P S 1 1..4 100 1..5 1 M S# P# M# Soin

179 178 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

180 179 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

181 180 Réification : Entité Faible C# Client Cl# Conseiller Cl# Nom 1 0..1 Cl# nest pas la clé C# Client Conseiller Cl# C# Nom 1 *

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

183 182 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)

184 183 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 ?

185 184 Réification : Cas Spécifiques Injection Mari M# A1 …. Femme F# B1 …. Mariés Date …. 0..1 1 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)

186 185 Réification :Cas Spécifiques Mari M# A1 …. Femme F# B1 …. Mariés Date …. 0..1 Mari M# A1 …. Femme F# B1 …. Mariés M# F# C1 ….

187 186 Réification : Hiérarchie Mari M# A1 …. Femme F# B1 …. Mariés Date …. 1 0..4 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

188 187 Réification : Les Veuves ? Mari M# A1 …. Femme F# B1 …. Mariés Date …. 0..1 0..4 Votre Proposition ici

189 188 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 ? 0..1 1 1 1

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

191 190 Réification : Classe / Sous-classe Schéma MsAccess

192 191 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

193 192 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

194 193 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

195 194 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#

196 195 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

197 196 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

198 197 Exemple canon S S# Sname Status City P P# Pname Color Weight City SP Qty * *

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

200 199 Exemple canon S P SP

201 200 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..

202 201 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' ;

203 202 Exemple Projet BD Assurance 07

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

205 204 Exercices (adaptez svp au programme de votre cours spécifique, voir aussi ceux des TDs) 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.

206 205 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.

207 206 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 10 000 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?

208 207 FIN Merci de votre attention W. Litwin

209 208


Télécharger ppt "1 Modèle Relationnel 2011 - 12 Witold Litwin 2 2 Le Rapport de Recherche qui a lancé les SGBDs Relationnels (publié uniquement en interne à IBM Almaden."

Présentations similaires


Annonces Google