Escolar Documentos
Profissional Documentos
Cultura Documentos
1 2 3
Erreurs de conception
Exemple de schma mal conu Forme Normale de Boyce Codd
et Anomalies
BCNF
Drinkers(name, addr, beersLiked, manf, favBeer)
name addr beersLiked manf favBeer name addr beersLiked manf favBeer
Janeway Voyager Bud A.B. WickedAle Janeway Voyager Bud A.B. WickedAle
Janeway ??? WickedAle Petes ??? Janeway Voyager WickedAle Petes WickedAle
Spock Enterprise Bud ??? Bud Spock Enterprise Bud A.B. Bud Exemple
Mise en forme normale
Les donnes sont redontantes: Anomalie de Mise jour: si Janeway part pour lIntrepid,
les Dpendances Fonctionnelles pensera-t-on changer tous les n-uplets?
name -> addr favBeer Anomalie de Descruction: si personne naime Bud,
beersLiked -> manf. on perd le faut que son fabricant Anheuser-Busch.
dterminent les ??? 4 5 6
Exemple
Exemple, suite Exemple, suite
Drinkers(name, addr, beersLiked, manf, favBeer)
F = name->addr, ! Il faut maintenant voir si Drinkers1 et ! Pour Drinkers2(name, beersLiked, manf), la
name -> favBeer, Drinkers2 sont en BCNF seule DF est beersLiked->manf,
beersLiked->manf ! Projection des DF assez facile pour ce cas et la seule cl est {name, beersLiked}.
! Trouver une DF qui fait que Drinkers nest pas particulier -- calcul de la clture Cl(F) " Pas BCNF, on recommence.
en BCNF: name->addr. ! Pour Drinkers1(name, addr, favBeer), ! beersLiked+ = {beersLiked, manf},
! Clture des attributs de gauche: les DF pertinentes sont name->addr on dcompose Drinkers2 en:
{name}+ = {name, addr, favBeer}. et name->favBeer. 1. Drinkers3(beersLiked, manf)
! On obtient deux relations: " {name} est la seule cl et Drinkers1 est en BCNF. 2. Drinkers4(name, beersLiked)
1. Drinkers1(name, addr, favBeer)
2. Drinkers2(name, beersLiked, manf) 13 14 15
!Si dcomposition AC et BC Paris 75005 80, Bd St-Germain 75005 ! 3e Forme Normale (3NF) assouplit la condition
on ne peut pas retrouver AB ->C Paris 75006 80, Bd St-Germain 75006 de BCNF pour ne pas dcomposer dans ce cas.
partir des DF projetes. ! Un attribut est dit premier
Adresse Ville Code postal
sil fait partie dune cl minimale.
!Exemple avec 80, Bd St-Germain Paris 75005
! Une relation nest pas en 3NF
A = adresse, 80, Bd St-Germain Paris 75006
ssi on peut trouver une DF X ->A
B = ville, telle que X nest pas une cl
C = code postal Bien que toutes les DF soient vrifies et A ne fait pas partie dune cl minimale.
sur le transparent suivant. dans chacune des tables,
la DF adresse ville -> code_postal nest pas respecte.
19 20 21
Dcomposition SPI
Exemple
Dcomposition SPI Sans Perte dInformation
!Dans notre exemple avec les DF R(A1,,An)
Dcomposition de R suivant
AB ->C et C ->B, X1,,Xk ensembles dattributs ! {A1,,An}
les cls minimales sont AB et AC. Ri = "Xi (R) pour 1! i ! k
!Chaque attribut A, B, ou C est premier. (R)=R1 |X||X| Rk
Test pour SPI Jointure note |X|,
!Bien que C ->B contredise BCNF,
le schma A, B,C est en 3NF. Thorme de Heath
a-t-on: R=(R) ?
22 23 24
28 29 30
31 32 33
Dcomposition efficace en
Dcomposition 3NF BCNF SPI Quelques proprits
Le premier algo donn
! C->P impose de calculer les projections des DFs,
Prop. 1
34 35 36
Quelques proprits Quelques proprits Quelques proprits
Prop. 2 Explication Prop. 2 Prop. 3
Toute schma deux attributs est BCNF pas BCNF cause de X-> A SI
Si R nest pas BCNF alors ! on projette un ensemble de DF F (sa clture)
il existe des attributs A et B tels que Si pas dautres attributs que X et A, X cl. sur R1!R et quon obtient G
(R-AB) -> A
Donc il existe B tq
! et si on projette G (sa clture) sur R2!R1
Rciproque fausse: R-AB->X (rflexivit)
R(A,B,C) X->A ALORS
C->A et donc (R-AB)->X On obtient la mme chose que si on projette F (sa
C->B clture) sur R2
ABC-AB->A et pourtant R est BCNF 37 38 39
Algo dcomposition BCNF SPI Algo dcomposition BCNF SPI Algo dcomposition BCNF SPI
Correction de lalgo:
Z:le schma dcomposer ! Cours ! C->P
! Heure ! HP->S Le schma extrait est BCNF (Prop. 2)
Init: Y:=Z
Pour chaque paire dattributs A B ! Salle ! HE->S
si Y-AB->A ! Prof ! HS->C On dcompose Z en XA et Z-A avec X->A
faire Y:=Y-B et C:=A ! Etudiant ! CE->N (pas de perte par jointure, th; de Heath)
Si aucune paire ne marche ou si |Y|=2 ! Note
Y est BCNF La combinaison des dcomposition SPI est SPI
Dcomposer Z en Y et Z-C. (Prop. 1)
Attention les DFs ne sont pas conserves
Recommencer avec Z-C. 40 41
Les X+ sont calculs avec F (Prop. 3) 42
46