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

Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke1 Formes Normales Chapitre 19 (Note: les accents manquent)

Présentations similaires


Présentation au sujet: "Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke1 Formes Normales Chapitre 19 (Note: les accents manquent)"— Transcription de la présentation:

1 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke1 Formes Normales Chapitre 19 (Note: les accents manquent)

2 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke2 Les problemes de la Redondance  La redondance est a la base de beaucoup de problemes accociees avec les schemas relationnels:  Stockage redondant, anomalies d’insertion, d’effacement et de changement  Les contraintes d’integrite, en particulier les dependances fonctionnelles, peuvent etre utilisees pour identifier les à problemes et suggerer des solutions.  Solution : decomposition (remplacement d’une relation par des relations plus petites: p.ex. ABCD par AB et BCD, ou par ACD et ABD).  La decomposition devrait etre utilise judicieusement:  Y-a-til une raison valable pour decomposer?  Quels problemes sont causes par la decomposition?

3 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke3 Dependances Fonctionnelles (DFs)  Une dependance fonctionnelle X Y est valide sur une relation R si pour chaque instance permise r de R:  t1 r, t2 r, ( t1 ) = ( t2 ) implique ( t1 ) = ( t2 )  i.e., etant donne deux tuples dans r, si les valeurs X sont les memes, alors les valeurs Y vdoivent aussi etre les memes. (X et Y sont des ensembles d’attributs.)  Une DF est une affirmation sur toutes les instances permises de la relation.  Une DF est identifiee sur base de la semantique de l’application.  Pour une instance permise r1 de R, nous pouvons verifier si elle viole une DF f, mais nous ne pouvons pas dire si f est valide sur R.  K est une candidate cle pour R si K  R  Cependant K  R ne requiert pas que K soit minimal !

4 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke4 Exemple  Considerez la relation suivante:  Hourly_Emps ( ssn, name, lot, rating, hrly_wages, hrs_worked )  Notation : Cette relation sera notee en donnant la liste de ses attributs: SNLRWH  En realité, il s’agit de l’ ensemble d’attributs {S,N,L,R,W,H}.  Parfois, nous nous refererons à tous les attributs d’une relation en utilisant le nom de la relation (p.ex. Hourly_Emps au lieu de SNLRWH)  Quelques DFs sur Hourly_Emps:  ssn est la cle: S SNLRWH  rating determine hrly_wages : R W

5 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke5 Exemple (Suite)  Problemes causes par R W:  Anomalie de modification : Peut-on changer W juste dans le 1er tuple de SNLRWH?  Anomalie d’insertion : Toute insertion d’employe dont on ne connait pas le salaire horaire est problematique.  Anomalie d’effacement : Tout effacement de tous les employes ayant un niveau 5 entraine la perte de l’info sur le salaire associe avec ce niveau 5. Hourly_Emps2 Wages 2 plus petites tables ?

6 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke6 Raisonnement avec les DFs  Etant donnees des DFs, on peut inferer d’autres DFs:  ssn did, did lot implique ssn lot  Une DF f est impliquee par un ensemble de DFs F si f est valide chaque fois que holds toutes les DFs dans F sont valides.  = fermeture (“closure”) de F: ensemble de toutes les DFs impliquees par F.  Axiomes d’Armstrong (X, Y, Z sont des ensembles d’attributs):  Reflexivite : X Y  Y X  Augmentation : X Y  XZ YZ pour tout Z  Transitivite : If X Y et Y Z  X Z  Ces axiomes sont des regles d’inference correctes et completes.

7 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke7 Raisonnement avec DFs (Suite)  Regles additionnelles (impliquees par les axiomes):  Union : X Y et X Z  X YZ  Decomposition : X YZ  X Y et X Z  Exemple: Contracts( cid,sid,jid,did,pid,qty,value ):  C est la cle: C CSJDPQV  Un project achete chaque piece en usant d’un seul contrat: JP C  Un dept achete au plus 1 piece d’un fournisseur: SD P  JP C, C CSJDPQV  JP CSJDPQV  SD P  SDJ JP  SDJ JP, JP CSJDPQV  SDJ CSJDPQV

8 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke8 Raisonnement avec les DFs (Suite)  Calculer la fermeture d’un ensemble DFs peut couter cher. (La taille de la fermeture est exponentielle)  Typiquement, ce que nous voulons souvent faire, c’est de verifier si une DF donnee X Y est dans la fermeture d’une ensemble de DFs F. Une verification efficiente est la suivante:  Calculer la fermeture des attributs de X (denoted ) par rapport à F: Ensemble de tous les attributs A tels que X A est dans Il existe un algorithme lineaire pour faire ce calcul  Verifier si Y est dans  F = {A B, B C, C D E } impliquent A E?  i.e, A E est-elle dans la fermeture de ? Ce qui veut dire: E est- elle dans ?

9 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke9 Formes Normales  Rappel: La premiere question a poser afin d’enlever des anomalies est celle de savoir quelle solution preconiser pour quelle anomalie.  Si une relation est dans une certaine forme normale (BCNF, 3NF etc.), il est connu que certaines formes d’anomalies sont eliminees ou diminuees. Ceci peut etre utilise pour decider la de composition d’une relation ou pas.  Role des DFs dans la detection des redondances:  Considerez une relation R avec 3 attributs: ABC. Si aucune DF n’est valide: aucune redondance n’est possible. Si A B: plusieurs tuples peuvent avoir la meme valeur de A et ces dernieres auront la meme valeur de B.

10 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke10 Forme Normale de Boyce-Codd (BCNF)  Une relation R avec les DFs F est en BCNF si pour tous les X A dans  A X (DF trivial ), ou  X contient une cle pour R.  En d’autres termes, R est en BCNF si les seules DFs non-triviales qui sont valides sur R sont les contraintes de cle primaire.  Aucune dependance de R ne peut etre predite sur base des seules DFs.  Si deux tuple s’accordent sur leurs valeurs de X nous ne pourrons point inferer la valeur de A de l’un sur la base de la valeur de A de l’autre.  Si l’example ci-contre est BCNF, les 2 tuples doivent etre identiques (puisque X est la cle).

11 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke11 Troisieme Forme Normale (3NF)  Une relation R avec les DFs F est en BCNF si pour tous les X A dans  A X (DF trivial ), ou  X contient une cle pour R, ou  A fait partie d’une cle.  La contrainte de minimalite de la cle est cruciale dans la 3eme condition ci-dessus!  Si R est en BCNF, elle est aussi en 3NF.  Si R est en 3NF, des redondances sont toujours possibles. Cependant 3NF est vue comme un compromis a utiliser lorsque l’on ne peut atteindre BCNF(p.ex. a cause d’inexistence de ``bonne’’ decomposition ou des considerations de performance).

12 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke12 Qu’Atteint-on avec 3NF?  Si 3NF est violatee par X A, cela peut etre due a l’une des raisons suivantes:  X est un sousensemble d’une cle K Nous devrons stocker des valeurs (X, A) redondantes.  X n’est pas un sousensemble propre d’une cle. Il y a une chaine de DFs K X A qui signifie que nous ne pouvons pas associer une valeur de X avec une valeur de K sans en meme temps associer une valeur de A avec X.  Cependant meme si R est 3NF, des problemes surviennent.  P.ex., Reserves SBDC, S C, C S est en 3NF, mais la meme paire (S,C) est stockee pour toute reservation du navigateur S.  Ainsi donc 3NF est un compromis par rapport a BCNF.

13 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke13 Decomposition d’un Schema Relationnel  Supposez que la relation R contient les attributs A1... An. Une decomposition de R consiste en un remplacement de R par 2 ou plusieurs relations telles que:  Chaque nouvelle relation contient un souensemble des attributs de R (et ne conytient aucun attibuts n’apparaissant pas dans R).  Chaque attribut de R apparait comme un attribut de l’une des nouvelles relations.  Intuitivement, decomposer R signifie stocker des instances des relations produites par la decomposition en lieu et place de l’instance de R.  Example: SNLRWH --------> SNLRH et RW.

14 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke14 Example de Decomposition  N’utiliser les decompositions qu’en cas de necessite.  SNLRWH avec les DFs S SNLRWH et R W  La 2eme DF cause une violation de la 3NF; les valeurs de W sont associees avec R de maniere repetee. Solution: creer une nouvelle relation RW pour stocker ces associations et enlever W du schema principal: i.e. decomposer SNLRWH en SNLRH et RW  L’information originale a stocker consiste en des tuples de SNLRWH. Si nous ne stockons maintenant que des projections de ces tuples sur SNLRH et RW, quelles nouveaux problemes apparaissent ?

15 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke15 Problemes Causes par les Decompositions  Trois problemes potentiels sont a considerer:  (1) Certaines requetes deviennent trop cheres. P.ex.: Combien d’argent le navigateur Joe a-t-il gagne? (salary = W*H)  (2) Etant donne des instances des relations decomposees, nous pourrions ne pas etre en mesure de reconstruire les instances correspondantes originales de la relation! L’example SNLRWH n’a pas ce probleme.  (3) Verifier certaines DFs pourrait requerir de faire un join des instances des relations decomposees. L’example SNLRWH n’a pas ce probleme.  Tradeoff : Considerer ces problemes en rapport avec la redondance.

16 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke16 Decomposition dites “Lossless Join”  Une decomposition de R en X et Y est dite sans perte vis-à-vis du join ( lossless-join) par rapport a un ensemble F de DFs si pour toute instance r qui satisfait F:  ( r ) ( r ) = r  Il est toujours vrai que r ( r ) ( r )  En general, l’autre direction n’est pas toujours satisfaite! Si elle l’est, alors la decomposition est dite lossless-join.  Il est essentiel que toutes les decompositions utilisees pour traiter la redondance aient cette propriete! (L’on evite ainsi le probleme (2) au transparent precedent.)

17 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke17 Decomposition “Lossless Join” (Suite)  La decomposition de R en X et Y est lossless-join par rapport a F ssi la fermeture de F contient:  X Y X, ou  X Y Y  I.e. l’intersection contien une cle de l’une des 2 relation X et Y.  En particulier, la decomposition de R en UV et R - V est lossless-join si U V est valide sur R.

18 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke18 Decomposition Preservant les Dependances  Ex.: CSJDPQV, C est une cle, JP C et SD P.  Decomposition en BCNF: CSJDQV et SDP  Probleme: JP C requiert un join!  Decomposition preservant les dependances ( Intuition ):  Si R est decomposee en X, Y et Z, et nous devons nous assurer que les DFs qui sont valident sur X, Y et Z separement fassent en sorte que toutes les DFs qui etaient valides sur R le soient toujours. (L’on evite ainsi le Probleme (3).)  Projection des DFs de F sur X : Si R est decomposee en X,... la projection de F sur X (denotee F X ) est l’ensemble des DFs U V dans F + telles que U, V sont X.

19 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke19 Decomposition Preservant les Dependances (Suite)  La decomposition de R en X et Y preserve les dependances si (F X union F Y ) + = F +  i.e., si nous ne considerons que les dependances dans la fermeture de F + qui peuvent etre verifiees dans X sans considerer Y et dans Y sans considerer X, ces dernieres implique toutes les dependances dans F +.  Ci-haut, il est important de considerer F +, pas F:  ABC, A B, B C, C A, decomposee en AB et BC.  Preserve-t-on les dependances ici? C A est-elle preservee ?????  La preservation de la dependance n’implique pas la propriete de lossless join: Voir example ci-haut.  Et vice-versa!

20 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke20 Decomposition en BCNF  Considerer la relation R avec les DFs F. Si X Y viole BCNF, decomposer R en R - Y et XY.  Repeter l’application de cette idee jusqu’a l’obtention d’une collection de relations qui sont en BCNF;  Guarantie de decomposition lossless join et de terminaison.  Ex.: CSJDPQV, cle C, JP C, SD P, J S  Pour traiter SD P, decomposer en SDP, CSJDQV.  Pour tariter J S, decomposer CSJDQV en JS et CJDQV  En general, plusieurs dependances peuvent causer des violations de BCNF. L’ordre de traitement conduit a des resulats differents.

21 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke21 BCNF et Preservation des Dependances  En general, une decomposition en BCNF qui preserve les dependances n’est pas toujours possible.  Ex.: SBD, SB D, D B  SBD n’est pas en BCNF car D n’est pas une cle; Une decomposition eventuelle ne preserverait pas SB  D.  De meme, la decomposition de CSJDQV en SDP, JS et CJDQV ne preserve pas les dependances (Avec les DFs JP C, SD P and J S). Cependant, elle est lossless join.  Dans ce cas, ajouter JPC a la collection des relations nous donnera une decomposition qui preserve la dependance.

22 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke22 Decomposition en 3NF  En principe, l’algorithme pour la decomposition en BCNF vu plus haut pourrait etre utilise pour obtenir une decomposition en 3NF guarantissant la propriete de lossless join (On stopera souvent plutot de toute evidence).  Pour assurer la preservation de la dependance, une idee cruciale est utilisee:  Si X Y n’est pas preservee, ajouter la relation XY.  Cependant XY pourrait violer 3NF! P.ex. On pourrait ajouter CJP pour `preserver’ JP C. What if we also have J C ?  Solution: Utiliser la couverture minimale de F au lieu de F.

23 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke23 Couverture Minimale d’un Ensemble de Dfs  G est une Couverture Minimale de l’ensemble F de DFs ssi  Fermeture de F = Fermeture de G.  Toute DF de G est de la forme X  A (A est un attribut).  Tout effacement d’une DF de G change la fermeture de G.  Intuitivement, chaque DF dans G est necessaire et est `` aussi petit que possible ’’ pour obtenir la meme fermeture que F.  Ex.: A B, ABCD E, EF GH, ACDF EG has the following minimal cover:  A B, ACD E, EF G and EF H  Couverture minimale  Lossless-Join, Preservation des dependances.

24 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke24 Algorithme de transformation en 3NF  Algorithme:  Input: une relation R, un ensemble F de DFs  Transformer F en une Couverture Minimale G en utilisant l’algorithme en page 626 du livre R&G.  Utiliser l’algorithme donne au transparent 20 avec G et R comme input pour obtenir une decomposition lossless join de R en une collection de relations R1, …, Rn qui sont toutes en 3NF.  Pour chaque FD X  A qui n’est pas preservee, creer une relation XA et l‘ajouter a la collection des relations R1, …, Rn.

25 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke25 Example de transformation en 3NF  Relation: CSJDPQV; DFs: JP  C, SD  P, J  S  (0) L’ensemble des DFs est deja une couverture minimale.  (1) Puisque SD  P viole 3NF, decomposer CSJDPQV en CSJDQV et SDP en utilisant SD  P.  (2) Puisque CSJDQV n’est pas en 3NF et que cela est due a J  S, decomposer CSJDQV en CJDQV et JS en utilisant J  S.  (3) Remplacer CSJDPQV par SDP, JS et CJDQV qui sont toutes en 3NF et sont toutes lossless join.  (4) SDP, JS et CJDQV ne preservent cependant pas la DF JP  C. On ajoute JPC a notre collection obtenue a l’etape (3) ci-dessus.  (5) Le resultat final est: SDP, JS, CJDQV, JPC.

26 Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke26 Resumé  Une relation qui est BCNF est exempte de toute redondance detectable via les DFs. D’ou il est desirable de transformer toutes les relations en BCNF.  Si une relation n’est pas en BCNF, nous pouvons essayer de la decomposer en une collection de relations en BCNF.  On doit s’assurer que toutes les DFs sont preservees. Si une decomposition en BCNF qui est lossless-join et qui preserve les dependances n’est pas possible (ou n’est pas souhaitable a cause des requetes typiques existantes), l’on devrait considerer une decomposition en 3NF.  Les decompositions devraient etre faites en ayant les exigences de performance (des requetes) a l’esprit.


Télécharger ppt "Database Management Systems, 3ed, R. Ramakrishnan and J. Gehrke1 Formes Normales Chapitre 19 (Note: les accents manquent)"

Présentations similaires


Annonces Google