Modèle Relationnel 2013 - 14

201
Modèle Relationnel 2013 - 14 Witold Litwin

description

Modèle Relationnel 2013 - 14. Witold Litwin. BD Relationnelle. Le Rapport de Recherche qui a lancé les SGBDs Relationnels (publié uniquement en interne à IBM Almaden Research Center (CA). BD Relationnelle. Le Rapport de Recherche qui a lancé les SGBDs Relationnels (Résumé). - PowerPoint PPT Presentation

Transcript of Modèle Relationnel 2013 - 14

Bases de donnes relationnelles SQL (1)

Modle Relationnel2013 - 14Witold Litwin

N2

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

Le Rapport de Recherche qui a lanc les SGBDs Relationnels(Rsum)N4BD RelationnelleLe Rapport de Recherche qui a lanc les SGBDs Relationnels(Table des Matires)

NBase de donnes relationnelleFichier = table ou relationDonne = ligne ou attribut atomique Oprations = transformations de tables en une tableOprationrelationnelleN6

SQL: Select S#, SNAME, STATUS FROM S WHERE CITY = ParisAlgbre relationnelle :(S WHERE CITY = 'Paris') [S#, SNAME, STATUS]

SExempleNBase de donnes relationnelleUne collection d'objets :Relations relles (tables de base)Liens rferentielsContraintes d'intgrit (surtout rfrentielle)intra-relationnellesMono-attribut et multi-attribut inter-relationnellesIntgrit rfrentielle surtout Dclencheurs (ang. triggers)notamment pour maintenir l'intgritAutres (procdures stockes) Schma conceptuel = Dfinition de la collectionNEmpl (E#, Nom, Prnom, N, Rue, CodePost, Ville, Dep#) ;E# Counter ; Nom Text ; N Date ; Dep# Int...:Syst-date - N < 65* Contrainte de validationDep# Not Null ; * Contrainte d'existenceTaches (T#, Description) ;Planning (E#, T#, Date-fin, Avancement) ;Dep (Dep#, Name) ;Trigger on EmplOn Insert Check-Ref-Int (Dep, Empl.Dep#) ;Autres Dclencheurs utiles ?Ce schma est possible sous MsAccess, bien que exprim diffremmentSchma de BD EntrepriseclNSchmas ExternesSchma (vue) externe = Collection de vues relationnels (tables virtuelles drives de relations relles)Un usager ne voit pas de diffrence entre une vue relationnelle et une table relleEn principe ! Une vue relationnelle n'est pas une vue externe au sens ANSI-SPARC Celle-ci serait une base virtuelleN

PN

P

P1Create View P1 asselect P#, PNAME, COLORfrom P;N

P

P1Create View P1 asselect P#, PNAME, COLORfrom P;

P2Create View P2 asselect P#, PNAME, COLORfrom P where CITY = 'London';N

PN

P

P1

P2NBase relationnelleTables rellesNBase relationnelleTables relles et vuesNRelationsDi ; i = 1,2..n des ensembles dits domainesUne relation R est un sous-ensemble de produit cartsien:R Di,1 x Di,2 ... x ... Di,kk = 1,2...Les Di,j sont les attributs de R ; les rles de domaines (Codd) Les lments de R sont dit tuples ou n-uplets Il ny a pas de tuples gaux dans une relation

NRelationsDans une BD relationnelle, on na que des relations finies En nombre dattributs et en nombre de tuplesToute valeur dun d Di est atomiquePas un ensemble donc mono-valeur donc indcomposable sans perte de la smantique De telles relations sont dites normales Autrement dit en 1 NF au moinsNP1P2P3P4S1S2P1P2P3P1P2P3P4P1P2P3S1S1S1S1S2S2S21 NFRelations0 NFAttribut multi-valeurAttribut atomiqueNS1S2P1P2S1S2P1P2P3P4P1P2P3S1S1S1S1S2S2S21 NFRelations0 NFAttribut multi-valeurAttribut atomiqueP3S1S2P4S1La mme 1NF !N Les noms R et Di,j constituent le schma de la relationCe schma et l'ensemble des lments possibles de R constituent une intention de R.Les lments de R y prsent un moment donne constituent une extension de R.Une mise jour modifie une extension et change l'tat de la baseSchma d'une relationN

Un tat de la base S-PSPSPIntention de SUne extensionde SNDeux relations R et R' sont gales si elles diffrent seulement par ordre :d'attributs (colonnes) de tuples (lignes)Egalit de relationsN

Une mme relation S

NUne mise jour est correcte si la nouvelle extension est dans l'intention de RC'est le rle des contraintes d'intgrit de ne permettre que les mises jour correctes Un changement de schma de R est une restructuration MAJ / RestructurationN Emp (E#, Nom, Prnom, Age, Rue, CodePost, Ville, Dep#) ;Age < 65* Contrainte de validation Dep# Not Null ; * Contrainte d'existenceUpdate Emp Set Age = 35 Where E# = '123' ;Update Emp Set Age = 75 Where E# = '456' ;Alter Emp Add Tel Integer ;SQL : MAJ / Restructuration ?NOprations relationnellesUne relation est un fichier qui supporte les oprations relationnelles Une opration relationnelle transforme des relations arguments dans une relation rsultat :une relation temporaire n'appartenant pas au schma de la base.une relation de la base (mise jour)une vueNOprations relationnellesPour une BD relationnelle, les oprations sont dfinies sur les relations normalesCelles basiques forment lalgbre relationnelle Dfinie par E. Codd En pratique, il y a aussi des oprations additionnellesArithmtiques, agrgations NOprations relationnellesSlection :ProjectionRestrictionJointure naturelle ou DivisionAgrgationOpration suppl.Mise jourCration dune vue

Voir le cours sur lalgbre relationnelleOp. ensemblistes: UNION, INTER, DIFF, TIMESN

Base S-PS

S [S#,SNAME]S [CITY]S WHERE CITY = ParisVilles de fournisseursIds et noms de fournisseurs NJointure naturelleLa 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 Bpas dautres tuplesX, Y, Z peuvent tre compossNJointure naturelleEst-ce que la jointure naturelle est commutative et/ou associative ? Notamment \ une slection ou une projection ? A JOIN B =? B JOIN AA JOIN B JOIN C = ? A JOIN (B JOIN C) A JOIN A JOIN A = ?N

CS

SC

CS JOIN SCS S [STATUS, CITY] S [S#, CITY]NS#SNameStatusCitys1smith20Londons2Jones10Pariss3Blake30Pariss4Clark20londons5Adams30Athenss#P#qtys1p1300s1p2200s1p3400s1p4200s1p5100s1p6100s2p1300s2p2400s3p2200s4p2200s4p4300s4p5400S JOIN SPS#SNameStatusCityP#qtys1smith20Londonp2200s1smith20Londonp3400s1smith20Londonp4200s1smith20Londonp5100s1smith20Londonp6100s1smith20Londonp1300s2Jones10Parisp1300s2Jones10Parisp2400s3Blake30Parisp2200s4Clark20londonp2200s4Clark20londonp4300s4Clark20londonp5400SSPFournisseurs avec les fournituresN-jointureTable C gale : C = ( A TIMES B ) WHERE X Yest la jointure de tables A(X,...) et B (Y,...).TIMES est un produit cartesienX et Y sont non-composites , , , , La jointure est note :C = A JOIN B ON X Y.N-jointure / Equi-jointureC = A JOIN B ON X =Y est une equi-jointure.A ne pas confondre avec la jointure naturelleO lattribut Y de jointure peut tre de plus composite Est-ce que la - jointure est commutative et/ou associative ?

NDivisionTable C ( X ) note:A DIVIDEBY Best 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 P1S1 P2S2 P1S2 P3P#P1P2S#S1Tout fournisseur de pices P1 et P2. DIVIDEBY est associatif ou commutatif ?NR1 UNION R2 R1 INTER R2R1 DIFF R2 Elles sont union-compatibles Mme nombre dattribut Types dattributs compatibles Permettant dvaluer = sur les attributs La dfinition de compatibilit dpend du SGBD Mme de sa version Op. ensemblistes UNION, INTER, DIFFNProduit cartsien R1 TIMES R2 Pas de contraintes sur les types dattributsNi sur leur nombre Opration trs chre que lon vite tout prixOp. ensemblistes TIMESNRequtes algbriques la base S-P(( S JOIN SP ) WHERE P# = 'P2' ) [ SNAME](( S JOIN SP ) WHERE P# = 'P2' ) WHERE STATUS > 100 ) [ SNAME](((P WHERE COLOR 'Red' ) [P#] JOIN SP ) [S#] JOIN S [SNAME](((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#]))NRequtes algbriques la base S-P[SCITY] UNION [PCITY]( S JOIN SP ) WHERE P# = 'P2' INTER ( S JOIN SP ) WHERE P# = 'P3' [ SNAME](S DIFF (( S JOIN SP ) WHERE P# = 'P2' )) [ SNAME]((S TIMES SP ) WHERE P# = 'P2' ) WHERE STATUS > 100 ) [ SNAME]NUtilit de l'algbrePuissance expressive:8 oprateurs de Codd permettent d'exprimer toute expression logique de prdicat de 1-er ordrenote: seulement 5 sont primitives (lesquels ?)La puissance expressive de l'algbre dite compltude relationnelle constitue la mesure de la puissance minimale de tout LMD assertionnel digne de ce nomNUtilit de l'algbre Technique de choix pour l'implmentationIl n'y a que 8 oprateursCes oprateurs sont faciles implmenterLeur proprits permettent de transformer les expressions en +efficaces valuer, en gnralAmliorations algbriques Moins de valeurs lire ou crire Moins de mmoire ncessaire pour ces valeurs Voir mon cours sur lalgbre

NUtilit de l'algbreExemple (( S JOIN SP ) WHERE P# = 'P2' ) [SNAME] = ( S JOIN ( SP WHERE P# = 'P2' )) [SNAME] La 2me expression semble plus efficace ?Rgle Gnrale dAmlioration ?(A JOIN B WHERE A.a = C) (A WHERE a = C) JOIN BNOprations relationnelles (SQL) Voit (Im#, Pref, Mod, Couleur) Amende (A#, I#, Nom, Addr, Pay) Select * From Voit Where Couleur = 'rose'; Select Mod From Voit Select * From Voit, Amende Select Nom, Addr From Amende, Voit Where Pay Is Null and Mod = 'Ferrari' and I# = Im# ;NOprations relationnelles (SQL) Voit (Im#, Pref, Mod, Couleur) Amende (A#, I#, Nom, Addr, Pay)Update Amende Set Pay = '10-01-96' where A# = '123' ; Create View En-instance AsSelect * From Amende, Voit WherePay Is Null and Amende.I# = Voit.Im# ;NCompltude relationnelle de SQLexpression algbrique, une expression quivalente de SQL et de QBESchma de preuve: oprateur algbrique, une expression quivalente de SQL composition d'oprateurs algbriques, une composition quivalente de SQL NUne relation relle est dfinie partir des valeurs de ses attributsUne relation virtuelle (vue) est drive (hrite) par une opration relationnelle partir de relations relles ou de vuesRelations

NEn gnral, une valeur dun domaine et donc dun attribut peut tre un ensembleXML , Access 2007Pour les oprations relationnelles dans les SGBD actuels, ils ne sont nanmoins en principe que des valeurs atomiquesToute dcomposition fait perdre la smantique de la valeurDe telles relations sont dites normalesRelations

NP1P2P3P4S1S2P1P2P3P1P2P3P4P1P2P3S1S1S1S1S2S2S2Norm.O NF1 NFToute valeur de S# et toute de P# Une ligneS#P#S#P#Contrainte trs importante !NP1P2P3P4IBMHPP1P2P3IBMIBMIBNIMBHPHPHPS1S1S1S1S2S2S2Norm.O NF1 NFToute valeur de S# et toute de P# Une ligneNameP#S#NameRedondances & ErreursPeu acceptables en gnralS1S2S#P1P2P3P4P1P2P3P#NP1P2

S1S2P4P5P6P7P1P1P1P2P2P2P4P4P4S1S1S1S1S1S1S2S2S2Norm.O NF1 NFToute valeur de (S#, P#, L#) Une ligneS#P#S#P#L1L2L3

L4L5L6

L#L1L2L3L1L2L3L4L5L6

L#N Au lieu de 6 valeurs pour S1 on insre 18, puis au lieu de 8 pour S2 on insre 24! Donc 3 fois + de travail et de mmoire. Normalization en 1-NFExplosion combinatoire de la taille de la table !Etud (E#, Tel, Hobby, Dipl, Enfants, Voit)Etudiant Dupont:3 tel, 5 hobbies, 3 diplmes, 3 enfants, 2 voituresUn tuple due relation en 0-NF suffitIl faut 3*5*3*3*2 = 270 tuples pour une relation en 1-NF ! Un tuple pour toute combinaison dun tl, un hobby, un dipl. sous peine de perte dinfoInacceptable en gnralNSolutions pour la ConceptionEmpirisme et Exprience UML Thorie Mathmatique Normalisation en i-NF ; i > 1 et BCNF Surtout BCNF et 4-NF Comme on verra + loin Dtails dans le cours Normalisation relationnelleNEt la Manipulation ? Le problme reste ouvert dans le relationnel de base SELECT E#, Tel, Hobby, Dipl, Enfants, Voit FROM R1, R2Rn WHERE Produit une relation virtuelle en 1-NF Fera revenir les 270 tuples discuts Une sortie: la Fonction LIST SQL Anywhere & votre prof. Le cours sur SQL avanc

NDans toute relation R il existe une combinaison C d'attributs dite cl telle que Dans tout tuple t d'intention de R, la valeur C(t) identifie t, Il n'y a pas de sous-combinaison de C avec cette propritDmontrez cette assertion !Exemples: N SS, N tudiant, Nom de pays, (Nom, Prnom, Tel), Oid,... Cls

NLe choix de C est dict par l'intention de RSoit R = Pers (Nom, Prnom, SS#, Tel) Dans une famille Pers (Nom, Prnom, SS#, Tel) /* Tout membreA la SS Pers (Nom, Prnom, SS#, Tel) /* Assur seuelement A l'tat civil Pers (Nom, Prnom, SS#, Tel) /* Toute personneLes valeurs d'un attribut d'une extension peuvent un moment donn tre toutes diffrentes sans qu'il s'agisse d'une cl !Cls

NC atomique consiste dun attributC composite en contient plusieursTout attribut dune cl est dit attribut-clTout autre attribut est un attribut non-cl Cest une fonction de toute cl de la table Cette proprit est la base dune dfinition du concept de la clCls

NIl ne faut pas confondre le concept de la cl avec celui dun attribut-clCe dernier nest pas la cl ds que la cl est composite Dans Pers (Nom, Prnom, SS#, Tel) SS# est la cl et lattribut-cl Dans Pers (Nom, Prnom, SS#, Tel) Nom nest que lattribut-cl

Cls

NSi C est cl de R, alors tout ensemble dattributs de R strictement incluant C est appel sur-cl ou super-clDans 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 mme pas une sur-clRelationsNR peut avoir plusieurs cls. Dans ce cas:Une cl est arbitrairement choisie est dite primaireLes autres deviennent cls candidates seulementUne seule cl existante dans une table est formellement une cl candidate aussi Pour certains, nanmoins, la cl primaire nest plus une cl candidate RelationsNR peut avoir plusieurs cls de cardinalits diffrentes. La cl avec le plus petit nombre dattributs est dite alors minimale A choisir de prfrence

RelationsNUne cl C d'une relation R peut tre des attributs F d'une autre relation R' F deviennent une cl trangre dans RF n'est pas en gnral une cl de R'RelationsNL'galit C = F constitue le lien rfrentiel entre les relations correspondantsEntre C et F il peut exister la contrainte d'intgrit rfrentiellePas de F sans CPas de participant qui ne serait pas un tudiant connuDans un SGBD de 2-me gnration ces liens taient les rfrences implicites (pointeurs) Dans UML aussi en principe

RelationsNVoit (Chssis#, Moteur#, Plaque#, Mod, Poids, Coul )Cl primaireCl candidateCl candidateEtud (E#, Nom, Prnom, Tel, Adresse )Participants (C#, E#, Note) Cl trangreCl candidatecomposeNLes SGBD majeurs grent dsormais des contraintes IR ainsi que les liens rferentiels MSAccess :IR 1:1 et 1:N entre deux tables Sur un ou plusieurs attributs la foisQuelques bugs pour 1:1 Voir la suite du cours Jointures implicites ou automatiques partir de liens smantiques Voir la suite du cours

RelationsNIntgrit rfrentielleMariM#11MariM#FemmesF#1NAmieA#MNPP#, PS# Produit Compos ProduitP#FemmeF#11NNAmiA#Comment faire ?N Les cls C et F peuvent aussi tre dans une mme relation:

Emp ( E#, Enom, Tel, Chef# )

Personne ( SS#, Nom, Mre#, Pre#)

De tels liens gnrent les rcurrences exigeant le calcul de fermetures transitivesLes oprations relationnelles ne permettent pas de calculer les fermetures transitives Les SGBD en gnral ne grent pas de tels liens smantiquesIntgrit Rfrentielle

NNanmoins MsAccess le fait Dune manire limite Par la dclaration adquate de relations Pour lintgrit rfrentielle Par la dfinition correcte de sous-feuille (sous-table) On dclare la table elle-mme comme sa propre sous-feuille (sous-table) Pour voir en un clic les employs dun chef etc.Intgrit Rfrentielle

N Une valeur nulle est un abus de langage pour designer une absence de valeur dun attributOn dit aussi un nul ou un null (ang. null)Valeurs nulles

N Valeur inconnue Ville de fournisseur inconnueValeur inapplicableFournisseur connu pour tre sans statut Nom de jeune fille pour un monsieur Cette distinction est rarement applique en pratiqueTypes de nulsN Comment faire alors sil le faut ? Pour lattribut #TEL faut distinguer entre:# tel portable inconnu on relancera la personne pour connatre son numro Personne sans tlphone portableTypes de nuls

N Ce type de nul peut indiquer alors lexistence dune sous-classe Personnes sans portable Personnes Dauphine qui sont des tudiants, ayant alors aussi lID E# etc. Personnes Dauphine qui sont des salaris ayant alors aussi lID S# etc. On reverra ce problme + tardTypes de nuls

NPourquoi ?Une proprit qui peut sembler anodine En fait elle est dune importance capitale pour une base relationnelle conduit la dmarche dite de modlisation relationnelle notamment aux formes normales

Le nul et la cl primaireUn attribut-cl de la cl primaire ne peut tre nul NFin cours 1 Utilisation BDs 07-08 On peut interdire la prsence dun nul pour un attribut Dans la dfinition de lextension de la relationNotamment dans MsAccess La thorie initiale du modle relationnel ne prvoyait pas de nulsLes nuls en perspective

N Lintroduction de nuls a t faite par les praticiens Elle a cre de nombreux problmes thoriques et pratiquebeaucoup restent non-rsolus voir les cours sur SQLLes nuls en perspective

N Ex. MsAccessDeux nuls sont gaux pour Distinct et Group ByIls sont diffrents pour lequi-jointure Un nul est plus grand que tout a non-nulSomme (nul , a) = a mais nul + a = nulUne requte peut gnrer une table avec tous les tuples entirement nuls Vous avez dit bizarre ? Les nuls en pratique

NModlisation relationnellePassage du monde rel vers une base relationnelle Le schma conceptuel Schmas de tables Liens smantiques & contraintes IR Oprations permises Les schmas externesNModlisation relationnelle Souvent fort simpleLattrait de bases relationnellesExemples typiques comments en cours Fournisseurs et Pices (Supplier Part DB) Conseillers en assurances et Produits dAssurances Etudiants et Cours NModlisation relationnelleBDRNModlisation relationnelleMthodes grand-public semi-formellesER ERGMerise UML Le rsultat peut tre optimal Mthode formelleUn rsultat optimal garanti

NModlisation relationnelle semi-formelleTrois phases Modlisation conceptuelle par spcifications fonctionnellesPas particulire au relationnel Ni aux BDs mmeConceptuel RelationnelTransformation du modle conceptuel en CS et ESs dune BDNormalisationAmlioration du CS par suppression des anomaliesNModlisation relationnelle formelleDeux phases Modlisation conceptuelle par spcifications fonctionnelles +- InformellesUne pice un nom, une couleur Conceptuel > Relationnel Normalis a partir de la relation universelleSans sous-classes caches Dtails + tard

NUne base relationnelle n'est correctement dfinie que si son le graphe de rfrences est un graphe connectUne BD relationnelle en gnral comporte plusieurs relationsUn graphe de rfrences reprsente sa structureLes nuds sont des relationsLes arcs orients sont les contraintes d'intgrit rfrentielle C -> F1:N ou 1:1Les autres arcs sont les liens rfrentielsModlisation RelationnelleGraphe de rfrencesNGraphe des rfrences nombre minimal de nudsSous contraintes :Dabsence danomaliesDinsertion, suppression, MAJ De minimisation de redondance globale de donnes Par rapport 0NF surtout Les deux contraintes sont duales Rsultat Attendu:Graphe de rfrences optimalN Graphe des rfrences nombre minimal de nudsSous contraintes : Prservation de dpendances fonctionnelles (DFs) Absence de dp. multivalues (DMs) Pas ou peu de valeurs nulles Cette contrainte peut contredire celle sur les anomalies & redondances Il faut alors exercer le bon sensRsultat Attendu:Graphe de rfrences optimalNAnomalie dinsertion On ne peut pas insrer de valeurs quil faudrait Soit la tableS = (S#, Sname, Status, City, P#, Qty) Fournisseur S1 ne fournit encore aucune piceOn ne peut pas insrer ses donnes: Fournisseur S1 est Smith, a le statut 20 et est Londres

Modlisation relationnelle : AnomaliesNAnomalie dinsertion Il faut insrer une mme donne plus de fois que ncessaire En idal : une donne nest insre quune fois dans la base Ex. 1 Revoir notre exemple illustrant 1NF La conception en une table prsente lanomalie

Modlisation relationnelle : AnomaliesNEx. 2 Dans S, si S1 fournit 5 pices, alors on insre aussi Sname, City, Status 5 fois Soit maintenant la conception en deux tables S = (S#, Sname, City, Statuts)SP (S#, P#, Qty)Modlisation relationnelle : AnomaliesNLa conception est libre de deux aspects discuts de lanomalie On peut insrer les donnes sur S1 mme sil ne fournit rien actuellement La base peut contenir davantage de donnes On ninsre aussi Sname, City, Status quune fois

Modlisation relationnelle : AnomaliesNEn supposant quen gnral un fournisseur fournit plusieurs pices, on diminue la redondance globale Bien que lon laugmente ncessairement localement pour S#

Modlisation relationnelle : AnomaliesNEx. 3 Soit la tableS' = (S#, Sname, Status, ZIP, City) Pour chaque ZIP il ny a quune ville Il faut rpter la ville inutilement quand plusieurs fournisseurs partagent un mme code postal La solution ? Problme dit de 3NF Modlisation relationnelle : AnomaliesNEx. 4 Soit notre table SS = (S#, Sname, Status, City, P#, Qty) Supposons que S# et Sname sont deux cls candidates dans S (S#, Sname, Status, City) S prsente la mme anomalie quavant Une autre solution en plus de celle de la dcomposition en tables S et SP dj discutes? Problme dit de BCNF Modlisation relationnelle : AnomaliesNEx. 5 Revoir le diapo 52. Soit SPL (S#, P#, L#) la table en 1NF sur ce diapo . Avec sa cl. SPL prsente une anomalie dinsertion . P.ex. linsertion de la localisation L7 pour S2 implique la cration de 4 tuples Problme dit de BCNF Solution intuitive et sa motivation ?Modlisation relationnelle : AnomaliesNEx. 5 Revoir la table Etud du diapo 53. Etud (E#, Tel, Hobby, Dipl, Enfants, Voit) Daccord / pas daccord avec la cl choisie ?Etud prsente une anomalie dinsertion insupportable en pratique .Problme de BCNF aussi Dans toute sa splendeur cette fois-ci Votre solution intuitive ? Sa motivation ?Modlisation relationnelle : AnomaliesNEx. 6 Soit la tableP = (P#, Pname, E#, Sal, S#, Dipl, V#, Lab) Une personne est en gnral soit un employ, soit un tudiant, soit un visiteur Une insertion gnre un gnral beaucoup de nuls Une anomalie non considre par le relationnel classiqueOn y reviendra + tard Modlisation relationnelle : AnomaliesNEnfin, supposons que lon conoit au lieu de S trois tablesS1 (S#, Sname), S2 (S#, City), S3 (S#, Status)On insre S1 trois fois de trop, par rapport S Trop de tables conduit lanomalie aussi Modlisation relationnelle : AnomaliesNAnomalie de MAJ On MAJ plusieurs valeurs au lieu dune seule Pour une bonne conception Dans S, si S1 fournit 5 pices et dmnage Paris, alors il faut mettre jour 5 valeurs Dans S, il suffit dune seule

Modlisation relationnelle : AnomaliesNAnomalie de suppression On supprime les valeurs quil ne faudrait pasDans S, si S1 fournit 5 pices Si lon supprime 4 fournitures, les donnes de S1 restent dans la base Si lon supprime la dernire fourniture, on les perd Pas si lon a la conception en S et SP

Modlisation relationnelle : AnomaliesNPlusieurs relationsChaque relation consistantdune clde max dattributs identifis chacun comme fonctions de la clOn respecte aisment la condition ncessairePas celle suffisanteModlisation relationnelle : Rsultat gnral NAssure la condition suffisante aussi En gnral, mais pas toujours 5 NF nest pas considre Apps particulires peuvent conduire des adaptations spcifiques Dtails dans les exercices et exemplesModlisation relationnelle : Dmarche formelleN On traduit les spcifications fonctionnelles en une seule relation Dite relation universelleSouvent note U Un fourre-tout Sans nuls Selon le relationnel classique

Modlisation relationnelle : Dmarche formelleN Si U est sans anomalie et en 4NF on a fini Cas trs rare Pour rappel U est en 4NF ssi pas de DM et en BCNF U est en BCNF ssi il ny pas de dterminant fonctionnel qui ne serait pas une cl de UModlisation relationnelle : Dmarche formelleNSinon on procde en deux tapes Dabord pour U Puis pour toute table rsultant la dmarche Elimination dune anomalie due une DM ventuelle Par Th. de Fagin ou dautres et rgles dinfrence de DMsModlisation relationnelle : Dmarche formelleN2. Quand une table na plus de DM, alors on limine une DF ventuelle qui feraient que la table ne soit pas en BCNF Par Th. de Heath Maintenant + de dtails Modlisation relationnelle : Dmarche formelleN Le Thorme de Fagin dcompose sans pertes une table En commenant par UChaque dcomposition Liquide une DM Remplace une table R par deux projections R1 et R2 telles que R = R1 Join R2La recomposition passe donc par la jointure naturelleModlisation relationnelle : Dmarche formelleNOn continue rcursivement pour toute table rsultante Jusquaux tables sans DMs Ncessairement

Modlisation relationnelle : Dmarche formelleN Une table R sans une DM peut prsenter encore des anomalies En prsence de DFs sur des attributs que ne seraient pas des cls Dterminants (mono-valeur) On passe alors a Etape 2 Y compris peut-tre pour U dembleModlisation relationnelle : Dmarche formelleN On applique rcursivement le Th. de Heath A chaque fois on remplace une table sans pertes de donnes par deux projections En liquidant une DF maximale Avec le max dattributs cibles sur le dterminant Pour le schma avec le minimum de tablesModlisation relationnelle : Dmarche formelleNLa dcomposition doit chercher des projections indpendantes Pour ne pas perdre de DFs Ce nest pas toujours possible Voir la discussion de la BCNF dans le cours sur la normalisation On sarrte quand il ny a plus de table avec une anomalie due une DF

Modlisation relationnelle : Dmarche formelleNSi les nuls sont permis, alors on passe ltape 3 On suppose quune table R dans le rsultat peut contenir de nuls Contrairement aux relationnel classiques Donc a la Thorie des NFs

Modlisation relationnelle : Dmarche formelleN On regarde si R na pas alors trop de nuls Seul le bon sens dit si trop de nuls cest vraiment trop Ces nuls peuvent indiquer des sous-classes Sous-typesModlisation relationnelle : Dmarche formelleNIl faut alors encore dcomposerMais comment et sur quel base thorique ?On ne peut plus employer de jointures naturelles (internes) Le principe de la dcomposition sans perte classique Notamment des Etapes 1 et 2

Modlisation relationnelle : Dmarche formelleNOn peut nanmoins dcomposer sans perte R alors en utilisant les jointures externes Thorme de votre prof. Suivant les travaux dautres, S. Jajodia & al notamment dans les annes 90 Dtails dans les exercices

Modlisation relationnelle : Dmarche formelleN Ensuite, on cre rcursivement entre les relations obtenuesLes liens rfrentiels Les contraintes dintgrit rfrentielle Le tout selon lapplication Entre les cls primaires ou candidates et les cls trangres Modlisation relationnelle : Toute DmarcheN Enfin, on choisi pour chaque contrainte rfrentielle et chaque lien rfrentiel sa jointure implicite Une jointure ajoute automatiquement la requte en mode QBE

Modlisation relationnelle : Toute DmarcheN Requtes courantes deviennent + simples - procdurales, + assertionnelles Cette possibilit dans les SGBDs commerciaux vient de MsAccess Suivi par quelques autres SGBDs SQL Server, DB2, Sybase (?)

Modlisation relationnelle : Toute DmarcheNEn fait, les jointures implicite ont t proposes dans les 80Par votre prof. et son Thsard A. Abdellatif (INRIA) Prof. Tunis

Modlisation relationnelle : Toute DmarcheNDveloppes avec Prof. G. Wiederhold Ont donn lieu au Ph.D. de son tudiant B. Lee (Stanford) Papiers sur la page Web de votre prof.

Modlisation relationnelle : Toute DmarcheNType de jointure implicite pour le lien rfrntiel ou la contrainte dintgrit rf. (MsAccess, DB2) Interne (dfaut) Produit seulement les tuples de deux tables ou les valeurs jointes sont gales

Modlisation relationnelle : Toute DmarcheNExterne Prserve toutes les tuples dune de deux tables Au choix sous MsAccess Mais pas les deux tables la fois Pas de jointure externe complte sous MsAccess

Modlisation relationnelle : Toute DmarcheNOn peut demander N, nom, NomJF, tel, ville, email en QBE Sans spcifier les jointuresLa rponse serait OK Elle serait errone pour les jointures internesPourquoi ?

300300Modlisation relationnelle : Toute DmarcheNCommenter que cette rponse serait correcte mais loin dtre utile (il faut LIST) Jointures externes sont mal supportes par MsAccess Absence de la thorie cohrente Bugs Voir + dans le cours sur SQL A nutiliser comme implicites que quand cest vraiment utile et test

Modlisation relationnelle : Toute DmarcheNExprience dapplication Les exercices Voir ceux du cours La pratique Voir la vie autour Dauphine, Votre entreprise, Facebook, Ecole de Conduite, vos CDs Modlisation relationnelle : Dmarche formelleNSpcifications fonctionnellesUne entreprise a des fournisseurs SUn fournisseur f a un ID, un nom, un statut, et est dans une villeUn f fournit des fournitures SP de pices PChaque fourniture fp comporte une certaine quantit d'une pice pChaque p a un ID, un nom, un poids, une couleurUne pice p peut tre l'objet de plusieurs fournitures fp Exemple canonNSchma ConceptuelSS#SnameStatusCityPP#PnameColorWeightCitySPP#S#Qty1**1NJointure Implicite (S SP)

Choix de jointure interne (dfaut)NRsultat pour une requte QBE

SQLN

Exemple canonSPSPNCas particulier Tout employ E# a un et un seul poste tl et nom Les postes (et les noms bien sr) peuvent tre partags Mais, il y a aussi des postes non-assigns Dans la base cre par la dmarche gnrale on aurait que la table : Empl (E#, PosteTel, Nom)

Modlisation relationnelle : Dmarche gnraleNOn a une anomalie dinsertion Laquelle ? On ajoute la table Postes (PosteTel) Avec une contrainte dintgrit Laquelle ? En fait cette table simule le domaine de PosteTel

Modlisation relationnelle : Dmarche gnraleNCas particulierPers (P#, Nom, Pnom, DNaiss, CP,)CV (CP, Ville) Que faire si lon sait que P1 est Paris, mais lon ne connat pas CP ? Pas de problme par contre avec la conception dnormalise Pers (P#, Nom, Pnom, DNaiss, CP, Ville)

Modlisation relationnelle : Toute DmarcheNCas particulierVRP (P#, Nom, Pnom,)Planning (P#, Ville, JourSem) Un VRP fait plusieurs villes avec des jours spcifiques pour chaque Les deux attributs Ville et JourSem seraient en DM avec P# ? Il sont pourtant dans la mme table

Modlisation relationnelle : Dmarche gnraleN Il sagit dune association ternaire Les valeurs de ces attributs ne sont pas indpendantes VRP X visite Ville Y le JourSem Z Le mme principe sapplique toute association de dgre + lev RaresModlisation relationnelle : Dmarche gnraleNCas particulierPers (P#, Nom, Pnom, Sex, Clib,)PJf (P#, NJf) NJf existe seulement pour les dames maries Si les Jeunes Filles sont rares, la conception normalise est fortement redondante sur P# Modlisation relationnelle : Dmarche gnraleNEn + il faut une jointure systmatique pour voir NJf avec le reste du dossierLa conception dnormalise na pas ceux problmes Pers (P#, Nom, Pnom, Sex, Clib, NJf)Elle est alors prfrable en pratiqueModlisation relationnelle : Dmarche gnraleNEn pratique Un attribut seul avec nuls frquents tel que NomJF reste en gnral dans sa table, p.ex., Pers Attribut quelques valeurs, p.ex. NTels, donne lieu un nombre fixe dattributs atomiques dans sa table Tel_M, Tel_B, Tel_P Email1, Email2, Email3 Modlisation relationnelle : Dmarche gnraleNEn pratique On complte ventuellement la table par une extension pour les autres valeurs si besoin Pers (P#, Tel_M, Tel_B, Tel_P..) AutresTels (P#, Tel) Quel type de jointures implicite serait appropri alors ?Modlisation relationnelle : Dmarche gnraleNEn pratique On scarte de la dmarche gnrale pour pas mal de raisons hors de celle-ci, internes surtout Cot de traitement de jointures Cot mmoire des indexes pour rendre les jointures rapides Problmes thoriques avec jointures externes . Modlisation relationnelle : Dmarche gnraleNConclusion Il y a ceux et dautres cas spciaux Il faut commencer par la dmarche gnrale Aprs il faut exercer son bon sens Selon les contraintes spcifiques de la base Dnormaliser si utile

Modlisation relationnelle : Dmarche gnraleNModle ConceptuelAn mille sept cent quatre-vingt-dix-neuf?MDCCXCIX?1799Votre modle / standard prfr ?MDCCLXXXXVXXXXModlisation Relationnelle AvanceNModlisation ConceptuelleUnivers Objets Entits Proprits Associations entre les objets Fonctions Ensembles spcifiques dobjetsTypes Classes...

NModlisation ConceptuelleUniversal Modeling LanguageStandard Intl. de OMGUne variante de EER Extended Entity Relationship ModelER avait t propos par Peter ChenProf. U. de Baton Rouge (LU) Il y a une trentaine dannes Trs populaire dans le tempsUn peu tort peut-treNPassage UML - Relationnel Entits et Associations doivent devenirTables du CS ou des ESLiens smantiquesContraintes dIROprations sur les tablesNUMLDes diagrammes standard proposes par OMG Donnes, Oprations, Messages Notamment pour les BDs Une adaptation dans de dernier but du modle ERUne autre prsentation de certains diagrammesLes concepts OOComposition, Agrgation

NUML Objet = Entit (Entity) ou Occurrence dentitEntit faibleIdentifiable seulement dans une autre entit (forte) Type dobjets = Type ou classe Proprit = Association (Relationship)

NUML : Type dEntitNomAttributs cl et non-clOprationsNUML : Type dEntit Pour le relationnel Attributs atomiques ou drivs seulement Tout attribut atomique est fonctionnellement dpendants sur la cl On note une dpendance fonctionnelle (FD) de B sur A comme A -> B Pas dattributs multivalus ou composs Attributs drivs sont pour les schmas externes et les sous-tables (Access) Les spcifs des oprations sont raresNUML : Type dEntitPersonne P#Nom Prnom Nom de familleHobbies 0..10Amis 0..10Restaurants 0..10 Valide pour XML Pas pour le relationnel Il faut mettre tout composite ou multivalu en type dentit spar (en principe)NUML : Type dEntitPersonne P# Nom Prnom Nom de famille Hobbies Hobby Amies Ami Restaurants Restaurant 1..*11..*0..100..10

1..*0..101..*NUMLAssur Client# Produit dass.#PrixPrix/Prix total per client

Valide pour le relationnel Mais ralisable seulement comme une table et une vueAttribut drivPrix total = Prix de tous les produits du clientNUMLAssociations

Modle dune auto-colebas sur lex. de M. ManouvrierLcole peut envoyer entre 0 et 8 tudiants un examDiagramme de noteen UMLAppartient Rle de lassocion (directionnelle)Nom de lassociationAbrviation de 0..* Exactement6 sries / CDNUML : Association n-aireLes patients P sont soigns par des mdecins M, dans des services SUn mdecin peut tre partag entre plusieurs patients et services1PS11..41001..51SoinMQue disent les chiffres ?NUML : Association 1-airePersonne P#NomPrnom PreMreAnctreNUML Concept de composition Les entits composantes nont pas dexistence propre Ex. Les salles dun btiment La suppression de la composition supprime aussi les composantesContrainte dintgrit rfrentielle Symbolise par losange noirLes entits composes peuvent tre agrges par ailleursLosange transparentBatimentSalleConf10..*1..41..7Les cardinalits x..y sont des exemplesNUML : Classe / Sous-classeConcept de sous-classesSpcialisation/gnralisationSymbolises par la flcheMandatory/OptionalTout membre de la classe est obligatoirement dans une sous-classeAnd/OrIl peut tre dans plusieurs sous-classes ou pas AssuranceAss-maisonAss-voitureAss-maladie A#MontantVal-maisonBonusComplmentOptional / OR1110..10..10..1NUML / RelationnelClient C#PrnomNom de familleVilleCP Acceptable pour le relationnel Mais une mauvaise conception Si statut, comme son nom lindique ne dpend que de C# Si CP implique la villeAssurance A# C#Statut du clientPrime 1*NStatut du client comme son nom lindique ne dpend que de C#. UML / Relationnel Acceptable pour le relationnel Mais une trs mauvaise conceptionPersonne P# Hobby Ami Restaurant PrnomNom de familleNUn tuple identifie une personne avec un de ses hobbies, un de ses amis et un de ses restaurants. Pour chaque combinaison de ces valeurs il y un tuple. Outre le nombre prohibitif de tuples (1000 dans notre cas) il y a la redondance de Prnom et Nom (999 fois de trop). Passage UML - RelationnelEntits et associations doivent devenir Tables Liens smantiques et contraintes IR Oprations sur les tablesDans le modle UML la reprsentation des associations nest pas spcifiePourrait tre les listes de pointeurs (rfrences)Manipules alors diffremment dans un langage de programmation que les valeurs directes de donnesPrincipe rejet par le modle relationnel

NPassage UML - RelationnelLes associations sont les tables comme les autres ou existent entre les valeurs des attributs comme les autres (Codd)Entre les cls primaire et trangre en gnralAssociations triviales : une mme valeur dattribut cl trangre dune table que celle dune cl dune autre table indique un mme objet relDo lintroduction et limportance capitale du concept de la cl dans le modle relationnel NPassage UML - RelationnelEgalement important est le principe que la table est un ensemble donc tout tuple a ncessairement une clConstitue peut-tre par tous les attributs, mais quand mmePas une bonne ide Rsultat global: une mme expression de manipulations de toutes les donnes dans la base (Codd)Un norme avantage pour le but de non-proceduralitNRification (Etape 1)Outil Fondamental de passage UML Relationnel : On rifie : Toute classe dassociations en une classe dentits Toute classe dentits deviendra plus tard une table relationnelleNRification (Etape 1)Une classe dassociations est peut-tre rifie en celle dentits avec ses classes dentits aux extrmits Si lassociation est une bijection notamment Autrement, on transforme une association en celle triviale entre les attributs des entits Tout attribut structur ou multivalu est rifi en une entit (spare et associe par des cls trangres)NRification (Etape 2) Toute entit rifie devient une table relationnelle Les associations triviales deviennent Les liens smantiques Les contraintes dintgrit rferentielleNRificationLe concept de rification est rarement explicitLa rification est en gnral manuelle A lheure actuelleCest la principale limitation de lemploi dune BD relationnelle par un usager Tout-le-MondeNRification : Principe GnralA A#A1.B B#B1.CC1.A A#A1.B B#B1.C A# B#C1.Association triviale:les deux B# identifient la mme entit.

Cest une rification adapte au relationnel pour viter les anomalies Dautres rifications sont possible (ex. A et B et C en une entit commune) Relation universelleNRification : Principe GnralA 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 smantiques explicites dans une BD Rel.Les associations triviales devenaient des liens implicites : lgalit du nom de la cl primaire et celle trangre NRification : Principe GnralA A#A1.B B#B1.C RoleA# RoleB#C1.Aprs, oui, notamment pour lintgrit rfrentielle en utilisant le nom de rle (nom de lassociation, uni ou bidirectionnelle : ex. Prop._de_la_voiture_)A A#A1.B B#B1.C A# B#C1.NRification & Pointeurs dans les Langages de ProgrammationUne association triviale reprsente dune manire explicite un pointeur dune table vers une autre La valeur dun pointeur est explicite Contrairement en principe aux langages de programmation Dans le modle relationnel elle est celle dune attribut comme dautresPresque, car il y a en gnral les contraintes rfrentielles grer Un pointeur peut tre alors manipule comme toute autre donneUne des ides fondamentales de E.Codd En fait le concept de la cl est une consquence de cette ideUne reprsentation la fois compacte et explicite dun pointeurNRification : Association n-aire1PS11..41001..51SoinM1PS11..41001..51M S# P# M#SoinNRification : Attribut composPersonne P#PrnomNom de familleHobbiesAmisRestaurants Nom Tel Personne P#PrnomNom de familleHobbies P# HobbyAmis P# AmiRestaurant P#Nom TelLes cardinalits des associations ?Le processus est transitif pour une valeurcompose dans un attribut NRification : Attribut composPersonne P#PrnomNom de familleHobbiesAmisRestaurants Nom Tel Personne P#PrnomNom de familleP_H P# H#Amis P# AmiRestaurant P#Nom TelApproche utile pour un entrept de donnesPeut faire gagner de la place en mmoire de stockage (encombrement de H# est souvent bien plus petit que celui du texte de Hobby)Hobbies H#HobbyNRification : Entit Faible C#ClientCl#ConseillerCl#Nom10..1Cl# nest pas la cl C#ClientConseiller Cl# C#Nom1*NRification : Entit Faible C#ClientCl#ConseillerCl#Nom10..1Cl# nest pas la clLa cl de Clientsi Conseiller est une entit faible aussi ? C#ClientConseiller ?.Nom1*NRification : Cas SpcifiquesBijectionMari M#A1.Femme F#B1.MarisDate.11Mariage M# ou F#F# ou M#DateA1.B1..On rifie en une entit(laquelle ?). Changement du modle conceptuel. On gagne en en gnral en efficacit en liminant une jointureIl nest plus possible dintroduire uneFemme dont on neconnat pas la Mari ou vice versa(pourquoi ?) Unique (un seul mariage, pas de personnes remaris ensemble) NRification : Cas SpcifiquesBijectionClient C#A1.Voiture V#B1.AccidentDate.11On mmorise tous les accidents dun client avec sa voiture Peut-on en gnral rifier comme auparavant ? Sinon pourquoi pas ?NIci un mme couple client voiture peut avoir plusieurs accidents des dates diffrentes. Donc la date devient lattribut cl ou lattribut multivalu. Rification : Cas SpcifiquesInjectionMari M#A1.Femme F#B1.MarisDate.0..11Femme Marie ou pas F#M#DateA1.B1..Changement dumodle conceptuelOn gagne en souvent en efficacit en liminant une jointure / lapproche de baseUnique (un seulmariage de personnesremaris ensemble) NNul ne peut pas pas tre un att. clNul ne peut pas pas tre un att. clRification :Cas SpcifiquesMari M#A1.Femme F#B1.MarisDate.0..10..1Mari M#A1.Femme F#B1.Maris M# F#C1.NNul ne peut pas pas tre un att. clRification : HirarchieMari M#A1.Femme F#B1.MarisDate.10..4Mari M#A1.Femme-m F#M#DateB1.On na queles femmes maries (changement dumodle conceptuel)

On limine une jointure et une redondance/ lapprochegnraleNRification : Les Veuves ?Mari M#A1.Femme F#B1.MarisDate.0..10..4VotrePropositionici

NRification : Classe / Sous-classeAssuranceAss-maisonAss-voitureAss-maladie A#Montant A#Val-maison A#Bonus A#ComplmentAssuranceAss-maisonAss-voitureAss-maladie A#MontantVal-maisonBonusComplmentOptional / ORLes tables sont comme les entits rifies. Comment faire pour lIR ? 0..10..10..1111NIR veut dire Integrit Rfrentielle. Il faut sassurer quune mme assurance A# nest pas dans deux sous-classes. Dclencheur est ncessaire.Rification : Classe / Sous-classeClientHommeFemme C#NomMandatory/ ORNom_JFClient C#NomNom_JFSinon votre propositionici

OK ?

NRification en une, ou deux ou trois entits. A justifier les avantages et inconvnients. Notamment pour les oprations (prsence de nuls, jointure, count de personnes) Rification : Classe / Sous-classeSchma MsAccess

NRification : Classe / Sous-classeSchma MsAccessLe schma permet daisment formuler les requtes:Toute donne de personne P1 dans Pers et, sil y a lieu, ses donnesEn tant quun employ En tant quun tudiantMsAccess gnre alors les jointures implicites externesCours SQL NRification : Autres CasLe jeu de cls en gnral facile voir de diagrammes UMLAgrgation Composition Associations 1-res Sauf celle dite Anctre Calcul de la fermeture transitive Peu performant dans les BDs RelationnellesNRification : Cardinalits1 * ou 1 1 prsent avant ou aprs la rification, se rifie en contrainte dintgrit rfrentielle cl primaire cl trangre0 * ou 0 1 se rifie en un lien smantiqueAutre cardinalits, p.ex. 1 6 ncessitent en gnral des dclencheursPas une sincure pour Mme/M Tout le Monde NRification : Autres CasLexemple dune Personne avec les Amies, Hobbies? Attributs drives ? Il faut les mettre dans les vues Select Sum (Prix) as PrixTotal from ClientGroup By Client#NAprs la RificationLe rsultat peut tre OKExercice : Modle relationnel de lauto-cole Mais il peut tre pas bon du tout pour une BD relationnelleA cause danomalies et de redondances Do la phase de normalisation Peut-tre applique partir de la relation universelle directement Par lanalyse des DFs et des DMsNSpcifications fonctionnelles:Une entreprise a des fournisseurs SUn fournisseur f a un ID, un nom, un statut, et est dans une villeUn f fournit des fournitures SP de pices PChaque fourniture fp comporte une certaine quantit d'une pice pChaque p a un ID, un nom, un poids, une couleurUne pice p peut tre l'objet de plusieurs fournitures fp Exemple canonNExemple canonSS#SnameStatusCityPP#PnameColorWeightCitySPQty**NExemple canonSS#SnameStatusCityPP#PnameColorWeightCitySPP#S#Qty1**1Association trivialeN

Exemple canonSPSPNPourquoi S-P est comme a ?Avantages :Pas de duplicata de valeurs d'attributs entre les tables S, SP, et Psauf le strict minimum (les cls) Pas danomalies.On verra cette notion dans le cours suivant.Efficacit de stockage.Pas dattribut-cl unique pour SPCompare la conception en une seule relationProblmes :Comment trouver le Nom du fournisseur de pices rouges ?etc..NSolution Opration relationnelle de jointure entre les relations en SQL :

SELECT SNAME FROM S, SP, PWHERE S.S# = SP.S# AND SP.P# = P.P#AND COLOR = 'RED' ;NExemple Projet BD Assurance 07

N UML -> XML

123 Jean Dupont Ski, Tennis, Voile Jean, Paul Sinbade, Caf Court, Gargote

Personne P#Nom Prnom Nom de familleHobbies 0..10Amis 0..10Restaurants 0..10 Plusieurs SGBD relationnels offrent les interfaces XMLType dentit UMLUne entit XML (dite document)NExercices (adaptez svp au programme de votre cours spcifique, voir aussi ceux des TDs)Proposer les schmas relationnels pour les exemples en coursModliser en UML et en relationnel un livre typiqueModliser en UML et en relationnel laffectation de salles de cours Dauphine. Justifiez le choix si plusieurs solutions sont possibles. Indiquez les cls primaires et candidates.Modle 1: Une rservation se dfinit par le n de la salle, le nom du cours, la date, lheure dbut et lheure fin.Un cours nest quune fois par jour dans la mme salle. Alternativement, une rptition est possible. Modle 2 : On ajoute le type de la salle, si cest: lamphi, une salle quipe vido ou une salle TP Modle 3 : On ajoute le nom du prof enseignant le cours(i) Un enseignant par cours. (ii) Plusieurs. NExercicesModliser une bibliothque possdant un ou plusieurs exemplaires dun livre sur des rayons, en prt ou en retour dun prt mais pas encore sur les rayons. Proposez une modlisation usuelle en UML dune personne ayant un ID, un nom, une mre et un pre. Proposez ensuite un schma relationnel.Ce schma satisfait-t-il:Un DBA soucieux de lespace de stockage de la base. Sinon, que lui conseillez-vous ?Un DBA voulant minimisant le temps de requtes donnant pour certains chefs identifis par leurs IDs, les IDs de tous leurs employs Modliser un certificat de naissance dun bb en sachant que les parents peuvent ou pas tre marisModliser les assurances proposes par une compagnie pour une personne : voiture, maison, resp. civile Voir les livres en BDs pour 1 millier dautres exercices du type :Spcifs fonctionnelles -> UML -> rif. -> Schma Rel. NExercicesOn cre le modle pour la base des enfants. Pour chaque enfant on a le pre et la mre. Proposez le modle UML. Lenfant doit tre modlis comme une entit ou une association ? On constitue une base de produits. Chaque produit a un ID et nom, une photo et appartient plusieurs catgories de produits identifies par leur noms. Plusieurs produits peuvent appartenir une mme catgorie. La photo comporte plusieurs produits agencs dune manire typique pour leur application. Plusieurs produits partagent une mme photo.Proposez la modlisation typique UML, puis la rification, enfin le schma relationnel. Le DBA sait en plus quil a en moyenne 100 produits par catgorie et autant par photo. Il y a 100 catgories et photos en tout. Le nom dune catgorie est un champ fixe de 50 octets. Une photo ncessite 1 MOctets. Le DBA sait quil y a 10 000 produits. Il souhaiterait minimiser lencombrement de la base. Est-ce que la modlisation typique minimise le satisfait ? Sinon, proposez en UML et en relationnel une autre qui serait plus optimale. Evaluez le gain. Un autre DBA a comme proccupation principale de minimiser le temps dune requte demandant des noms de produits avec leurs catgories et les photos. Il veut minimiser le nombre de jointures. Quelle modlisation lui conseillez vous? NFINMerci de votre attention

W. Litwin

NNP#PNAMECOLORWEIGHTCITY

P1NutRed12London

P2BoltGreen17Paris

P3ScrewBlue14Rome

P4ScrewRed12London

P5CamBlue19Paris

P6CogRed19London

P#PNAMECOLORWEIGHTCITY

P1NutRed12London

P2BoltGreen17Paris

P3ScrewBlue14Rome

P4ScrewRed12London

P5CamBlue19Paris

P6CogRed19London

P#PNAMECOLOR

P1NutRed

P2BoltGreen

P3ScrewBlue

P4ScrewRed

P5CamBlue

P6CogRed

P#PNAMECOLORWEIGHTCITY

P1NutRed12London

P2BoltGreen17Paris

P3ScrewBlue14Rome

P4ScrewRed12London

P5CamBlue19Paris

P6CogRed19London

P#PNAMECOLOR

P1NutRed

P2BoltGreen

P3ScrewBlue

P4ScrewRed

P5CamBlue

P6CogRed

P#PNAMECOLOR

P1NutRed

P4ScrewRed

P6CogRed

P#PNAMECOLORWEIGHTCITY

P1NutBLUE12London

P2BoltGreen17Paris

P3ScrewBlue14Rome

P4ScrewRed12London

P5CamBlue19Paris

P6CogRed19London

P#PNAMECOLORWEIGHTCITY

P1NutBLUE12London

P2BoltGreen17Paris

P3ScrewBlue14Rome

P4ScrewRed12London

P5CamBlue19Paris

P6CogRed19London

P#PNAMECOLOR

P1NutBLUE

P2BoltGreen

P3ScrewBlue

P4ScrewRed

P5CamBlue

P6CogRed

P#PNAMECOLOR

P1NutBLUE

P4ScrewRed

P6CogRed

S#SNAMESTATUSCITY

S1Smith20London

S2Jones10Paris

S3Blake30Paris

S4Clark20London

S5Adams30Athens

P#PNAMECOLORWEIGHTCITY

P1NutRed12London

P2BoltGreen17Paris

P3ScrewBlue14Rome

P4ScrewRed12London

P5CamBlue19Paris

P6CogRed19London

S#P#QTY

S1P1300

S1P2200

S1P3400

S1P4200

S1P5100

S1P6100

S2P1300

S2P2400

S3P2200

S4P2200

S4P4300

S4P5400

CITYSNAMESTATUSS#

ParisBlake30S3

LondonClark20S4

LondonSmith20S1

ParisJones10S2

AthensAdams30S5

S#SNAMESTATUSCITY

S1Smith20London

S2Jones10Paris

S3Blake30Paris

S4Clark20London

S5Adams30Athens

SNAMES#STATUSCITY

SmithS120London

JonesS210Paris

BlakeS330Paris

ClarkS420London

AdamsS530Athens

S#SNAMESTATUSCITY

S3Blake30Paris

S4Clark20London

S1Smith20London

S2Jones10Paris

S5Adams30Athens

S#SNAMESTATUSCITY

S2Jones10Paris

S3Blake30Paris

S#SNAMESTATUSCITY

S1Smith20London

S2Jones10Paris

S3Blake30Paris

S4Clark20London

S5Adams30Athens

S#SNAME

S1Smith

S2Jones

S3Blake

S4Clark

S5Adams

CITY

London

Paris

Athens

S#STATUSCITYS120LondonS210ParisS310ParisS420London

S#CITYS1LondonS2ParisS3ParisS4London

STATUSCITY20London10Paris

S#STATUSCITY

S120London

S420London

S310Paris

S210Paris

S#SNAMESTATUSCITY

S120London

S2Jones10

S3Blake30Paris

S4ClarkLondon

S5Adams30Athens

S#SNAMESTATUSCITY

S1Smith20London

S2Jones10Paris

S3Blake30Paris

S4Clark20London

S5Adams30Athens

P#PNAMECOLORWEIGHTCITY

P1NutRed12London

P2BoltGreen17Paris

P3ScrewBlue14Rome

P4ScrewRed12London

P5CamBlue19Paris

P6CogRed19London

S#P#QTY

S1P1300

S1P2200

S1P3400

S1P4200

S1P5100

S1P6100

S2P1300

S2P2400

S3P2200

S4P2200

S4P4300

S4P5400

S#SNAMESTATUSCITY

S1Smith20London

S2Jones10Paris

S3Blake30Paris

S4Clark20London

S5Adams30Athens

P#PNAMECOLORWEIGHTCITY

P1NutRed12London

P2BoltGreen17Paris

P3ScrewBlue14Rome

P4ScrewRed12London

P5CamBlue19Paris

P6CogRed19London

S#P#QTY

S1P1300

S1P2200

S1P3400

S1P4200

S1P5100

S1P6100

S2P1300

S2P2400

S3P2200

S4P2200

S4P4300

S4P5400