Vous êtes sur la page 1sur 6

Transparents de Jeffrey Ullman (Stanford University)

Traduits/adaptés par C. Retoré (U. Bordeaux 1)

Formes Formes Normalisation Normalisation Normales Normales et et

Anomalies 3 e Boyce-Codd Forme Normale BCNF 3NF 1
Anomalies
3 e Boyce-Codd Forme Normale BCNF 3NF
1
Exemple de schéma mal conçu Drinkers(name, addr, beersLiked, manf, favBeer) name addr beersLiked manf favBeer
Exemple de schéma mal conçu
Drinkers(name, addr, beersLiked, manf, favBeer)
name
addr
beersLiked
manf
favBeer
Voyager
WickedAle ???
Janeway Janeway Spock
WickedAle Bud Bud
Pete’s A.B. ???
Enterprise ???
Bud
les name Les Dépendances données -> addr sont favBeer Fonctionnelles redontantes:
beersLiked déterminent -> les manf. ???
4
Forme Normale BCNF de Boyce-Codd ! Une relation R est dite en BCNF ssi non
Forme Normale BCNF de Boyce-Codd
! Une relation R est dite en BCNF ssi
non X pour ->A triviale toute sur les Dépendance (c.-à-d. attributs X ne de Fonctionnelle contient R pas A)
X est une clé (pas forcément minimale)
7

AnomaliesAnomalies etet RedondanceRedondance

Exemple Types d’erreurs d’anomalies de conception 2
Exemple Types d’erreurs d’anomalies de conception
2
Erreurs et Anomalies de conception name addr beersLiked manf favBeer Voyager Janeway Janeway Spock WickedAle
Erreurs et Anomalies de conception
name
addr
beersLiked
manf
favBeer
Voyager
Janeway Janeway Spock
WickedAle Bud Bud
Pete’s A.B. A.B.
WickedAle WickedAle Bud
Enterprise Voyager
• pensera-t-on Anomalie de Mise à changer à jour: tous si Janeway les n-uplets? part pour l’Intrepid,
on • Anomalie perd le faut de Descruction: que son fabricant si personne Anheuser-Busch. n’aime Bud,
5
Exemple Drinkers(name, FD’s: name->addr addr, favBeer, beersLiked, beersLiked->manf manf, favBeer) ! ! la Pour
Exemple
Drinkers(name, FD’s: name->addr addr, favBeer, beersLiked, beersLiked->manf manf, favBeer)
! ! la Pour {name, Une seule chacune beersLiked}. clé minimale DF:
partie droite n’est pas une clé
(prendre ! Drinkers l’une n’est des pas deux en BCNF DF Au choix)
8
Anomalies ! Bon schéma relationnel: " pas de redondance • (c.-à-d. plusieurs fois la même
Anomalies
! Bon schéma relationnel:
" pas de redondance
• (c.-à-d. plusieurs fois la même information)
" pas d’anomalies.
• Anomalie de mise à jour : une occurrence
• Anomalie de suppression : une information
d’une information est modifiée et pas les autres
pertinente est perdue en détruisant un n-uplet.
3

Forme Forme Normale Normale BCNF BCNF de de Boyce Boyce Codd Codd

Mise en Exemple forme normale 6
Mise en Exemple forme normale
6
Autre Exemple ! FD’s: Beers(name, Une name->manf, seule clé manf, minimale manfAddr) manf->manfAddr {name} .
Autre Exemple
! FD’s: Beers(name, Une name->manf, seule clé manf, minimale manfAddr) manf->manfAddr {name} .
! mais à name->manf cause par de: contre manf->manfAddr ne la contredit relation pas n’est . BCNF, pas BCNF
9
Décomposition en BCNF ! ! Donnée: Chercher une les DF relation X ->B R avec
Décomposition en BCNF
! ! Donnée: Chercher une les DF relation X ->B R avec des DF F.
telles que X ne soit pas une clé
" Si R pas BCNF, il y en a au moins une.
! Calculer
X + .
" Qui X serait ne contient une clé. pas tous les attributs, sinon
10
Exemple Drinkers(name, F = name->addr, addr, beersLiked, manf, favBeer) ! name beersLiked->manf Trouver en BCNF:
Exemple
Drinkers(name, F = name->addr, addr, beersLiked, manf, favBeer)
! name beersLiked->manf Trouver en BCNF: -> une favBeer, name->addr. DF qui fait que Drinkers n’est pas
! Clôture {name} + des = {name, attributs addr, de gauche: favBeer}.
! On obtient deux relations:
1. 2. Drinkers2(name, Drinkers1(name, beersLiked, addr, favBeer) manf)
13
Exemple, fin ! Décomposition de Drinkers : 1. Drinkers1(name, addr, favBeer) 2. 3. Drinkers4(name,
Exemple, fin
! Décomposition de Drinkers :
1. Drinkers1(name, addr, favBeer)
2. 3. Drinkers4(name, Drinkers3(beersLiked, beersLiked) manf)
! Remarque:
" Drinkers1 parle des personnes,
" " Drinkers4 Drinkers3 relation parle des entre bières, personnes et bières
16
en Décomposer suivant X -> R B ! Remplacer dont les attributs R par sont:
en Décomposer suivant X -> R B
! Remplacer dont les attributs R par sont: deux relations
1. R 1 = X + .
2. R 2 = R – (X + – X ).
! Cl(F), (attention! Projeter qu’on les c’est projette DF sur la clôture ces sur schémas R 1 de et F, R 2
11
Exemple, suite ! Il faut maintenant voir si Drinkers1 et ! Projection particulier Drinkers2 sont
Exemple, suite
! Il faut maintenant voir si Drinkers1 et
! Projection particulier Drinkers2 sont -- des calcul en DF BCNF assez de la clôture facile pour Cl(F) ce cas
! Pour les DF Drinkers1(name, pertinentes sont addr, name->addr favBeer),
et name->favBeer.
" {name} est la seule clé et Drinkers1 est en BCNF.
14

3e3e FormeForme NormaleNormale 3NF3NF

Décomposition Motivation 17
Décomposition Motivation
17
Schéma de la Décomposition R 1 R-X + X X + - X R 2
Schéma de la Décomposition
R 1
R-X +
X
X + - X
R 2
R
12
Exemple, suite ! Pour seule Drinkers2(name, DF est beersLiked->manf, beersLiked, manf), la et la seule
Exemple, suite
! Pour seule Drinkers2(name, DF est beersLiked->manf, beersLiked, manf), la
et la seule clé est {name, beersLiked}.
" Pas BCNF, on recommence.
! beersLiked on décompose + = {beersLiked, Drinkers2 en: manf},
2. 1. Drinkers3(beersLiked, Drinkers4(name, beersLiked) manf)
15
3 e Forme Normale - Motivation ! Il décompose y a des DF qui posent
3 e Forme Normale - Motivation
! Il décompose y a des DF qui posent problème quand on
C ->B.
AB ->C
" Exemple = = ville, adresse, (Paris, Marseille, Lyon, Rennes, …)
A
B
C = code postal.
! ! IL C ->B y a deux contredit clés, {A,B BCNF, } et {A,C }.
il faudrait décomposer en AC, BC.
18
On ne peut pas garder les DF ! on partir Si décomposition ne des peut
On ne peut pas garder les DF
! on partir Si décomposition ne des peut DF pas projetées. retrouver AC et BC AB ->C à
! Exemple = adresse, avec
sur = = le ville, code transparent postal suivant.
A
B
C
19
Exemple ! AB Dans ->C notre et C exemple ->B, avec les DF ! !
Exemple
! AB Dans ->C notre et C exemple ->B, avec les DF
! ! Chaque Bien les clés que minimales attribut C ->B A, contredise sont B, ou AB C et est BCNF, AC. premier.
le schéma A, B,C est en 3NF.
22
Décomposition SPI Quelques 1. µ(R)=R propriétés: 1 |X|……|X| R k # R 3. 2. "
Décomposition SPI
Quelques 1. µ(R)=R propriétés: 1 |X|……|X| R k # R
3. 2. " µ(µ(R))=µ(R) Xi (µ(R))=R i
Démonstration au tableau de 1.
25
Une DF non préservée Ville Code postal Adresse Code postal Paris 75005 80, Bd St-Germain
Une DF non préservée
Ville
Code postal
Adresse
Code postal
Paris
75005 80, Bd St-Germain
75005
Paris
75006 80, Bd St-Germain
75006
Adresse
Ville
Code postal
80, Bd St-Germain
Paris
75005
80, Bd St-Germain
Paris
75006
Bien que toutes les DF soient vérifiées
la dans DF chacune adresse ville des tables, -> code_postal n’est pas respectée.
20

DécompositionDécomposition SPISPI

Théorème Test pour de SPI Heath 23
Théorème Test pour de SPI Heath
23
Décomposition SPI ! R(A,B,C,D,E) ! Décomposition: ! fonctionnelles: Dépendances ! ! X2=AB X1=AD ! !
Décomposition SPI
! R(A,B,C,D,E)
! Décomposition:
! fonctionnelles: Dépendances
! ! X2=AB X1=AD
!
! ! ! !
A B->C C->D DE->C CE->A -> C
! ! ! X4=CDE X5=AE X3=BE
26
3NF: évite ce problème ! 3 de e Forme BCNF pour Normale ne pas (3NF)
3NF: évite ce problème
! 3 de e Forme BCNF pour Normale ne pas (3NF) décomposer assouplit dans la condition ce cas.
! ! Un s’il Une fait attribut relation partie est n’est d’une dit pas premier clé en minimale. 3NF
ssi telle on que peut X n’est trouver pas une une DF clé X ->A
et A ne fait pas partie d’une clé minimale.
21
Sans Décomposition Perte d’Information SPI R(A 1 ,……,A n ) Décomposition R i = X
Sans Décomposition Perte d’Information SPI
R(A 1 ,……,A n )
Décomposition R i = X " Xi 1 ,…,X (R) k pour ensembles de 1 ! R i suivant ! k d’attributs ! {A 1 ,……,A n }
µ(R)=R Jointure 1 notée |X|……|X| |X|, R k
a-t-on: R=µ(R)
?
24
Décomposition SPI A B C D E X1 A B B A B 1 12
Décomposition SPI
A
B
C
D
E
X1
A
B
B
A
B
1
12
13
4
15
X2
A
A
B
B
B
1
2
23
24
25
X3
B
A
B
B
B
31
2
23
24
25
X4
B
A
B
B
A
41
2
33
34
5
X5
A
B
B
B
A
1
52
53
54
5
27
Décomposition SPI • • • Remplir Si Forcer une ligne les la égalités table est
Décomposition SPI
• • • Remplir Si Forcer une ligne les la égalités table est A 1 A …… jusqu’à n décomposition ce que les DF soient SPI vraies
• Sinon, il y a perte d’information, c.-à-d. µ(R) % R
28

Décomposition Décomposition et et sans sans perte perte de de 3NF 3NF DF DF SPI SPI

Algo Raffinement de base 31
Algo Raffinement de base
31
Décomposition 3NF ! C->P ! ! HE->S HP->S ! ! ! CE->N HS->C HC->P 34
Décomposition 3NF
! C->P
! ! HE->S HP->S
!
! ! CE->N HS->C HC->P
34
Décomposition SPI • on Si a la une ligne A relation A 1 …… qui
Décomposition SPI
on Si a la une ligne A relation A 1 …… qui A n satisfait n’apparaît les DFs pas,
et A 1 ……
n est dans la jointure des projections
c.-à-d. mais • Sinon, pas µ(R) il dans n’y = a R R pas de perte d’information,
(explication au tableau)
29
Décomposition 3NF ! ! Créer Calculer une une table couverture par DF + minimale une
Décomposition 3NF
! ! Créer Calculer une une table couverture par DF + minimale une par attribut isolé
" Le résultat est 3NF
! Si on veut une décomposition SPI ajouter il faut
une table avec les attributs d’une clé minimale
" Découle du test SPI
32

Décomposition Décomposition BCNF BCNF SPI SPI efficace efficace en en

impose Le et donc premier de leur calculer algo clôture donné les ce projections qui
impose Le et donc premier de leur calculer algo clôture donné les ce projections qui est coûteux. des DFs,
On peut faire mieux…
35
Décomposition SPI ! une ssi Théorème décomposition de Heath: en X 1 et X 2
Décomposition SPI
! une ssi Théorème décomposition de Heath: en X 1 et X 2 est SPI
"
(X 1 $X 2 )->X 1 -X
2
ou (X 1 $X 2 )->X 2 -X
"
! Application du test précédent
1
30
Décomposition 3NF ! Correction de la décomposition: ! ! Si DF pb préservées, avec X->A
Décomposition 3NF
! Correction de la décomposition:
! ! Si DF pb préservées, avec X->A OK dans YB (de Y->B)
"
A=B
X->A pas peut clé donc remplacer X strictement Y->B inclus Y
X
couverture pas minimale
"
A"B
soit Z clé minimale de YB incluse dans Y
Z->B couverture A pas et dans Z strictement pas Z car minimale A premier inclus et dans Z clé Y de YB
33
Quelques propriétés Prop. 1 et Si alors S 1 S on si 2 R on
Quelques propriétés
Prop. 1
et Si alors S 1 S on si 2 R on la décompose 2 ….R décomposition décompose k est SPI R en R 1 en R de 1 R S R 2 1 ….R en et S k 2 SPI SPI
Raison: la jointure est associative.
36
Quelques propriétés Prop. 2 Toute schéma à deux attributs est BCNF Si R il (R-AB)
Quelques propriétés
Prop. 2
Toute schéma à deux attributs est BCNF
Si R il (R-AB) n’est existe pas -> des BCNF A attributs alors A et B tels que
Réciproque R(A,B,C) fausse:
C->A C->B ABC-AB->A et pourtant R est BCNF
37
Algo décomposition BCNF SPI Z:le schéma à décomposer Pour Init: Y:=Z chaque si Y-AB->A paire
Algo décomposition BCNF SPI
Z:le schéma à décomposer
Pour Init: Y:=Z chaque si Y-AB->A paire d’attributs A B
Si
Y
est aucune BCNF faire paire Y:=Y-B ne marche et C:=A ou si |Y|=2
Décomposer Z en Y et Z-C.
Recommencer avec Z-C.
40
Algo décomposition BCNF SPI Peut décomposer un schéma déjà en BCNF Identifiant Salaire Départment Nom
Algo décomposition BCNF SPI
Peut décomposer un schéma déjà en BCNF
Identifiant
Salaire Départment Nom
I->N
I->S I->D
Décomposé en IN, ID, IS mais déjà BCNF!
43
Quelques propriétés Explication Prop. 2 pas BCNF à cause de X-> A Si pas d’autres
Quelques propriétés
Explication Prop. 2
pas BCNF à cause de X-> A
Si pas d’autres attributs que X et A, X clé.
Donc R-AB->X X->A il existe (réflexivité) B tq
et donc (R-AB)->X
38
Algo décomposition BCNF SPI ! Cours ! C->P ! ! Salle Heure ! ! !
Algo décomposition BCNF SPI
! Cours
! C->P
! ! Salle Heure
! ! ! Etudiant Note Prof
! ! ! !
HP->S HE->S HS->C CE->N
Attention les DFs ne sont pas conservées
41

ComparaisonComparaison 3NF3NF BCNFBCNF

•avec • sans Décompositions préservation perte d’information des DF 44
•avec • sans Décompositions préservation perte d’information des DF
44
Quelques propriétés Prop. 3 SI ! on projette un ensemble de DF F (sa clôture)
Quelques propriétés
Prop. 3
SI
!
on projette un ensemble de DF F (sa clôture)
!
et sur si R on 1 ! R projette et qu’on G (sa obtient clôture) G sur R 2 ! R 1
On ALORS obtient clôture) la sur même R 2 chose que si on projette F (sa
39
Algo décomposition BCNF SPI Correction de l’algo: Le schéma extrait est BCNF (Prop. 2) (pas
Algo décomposition BCNF SPI
Correction de l’algo:
Le schéma extrait est BCNF (Prop. 2)
(pas On décompose de perte par Z en jointure, XA et Z-A th; de avec Heath) X->A
La combinaison (Prop. 1) des décomposition SPI est SPI
Les X + sont calculés avec F (Prop. 3)
42
Propriétés de 3NF et de BCNF ! Il décompositions: y a deux propriétés importantes des
Propriétés de 3NF et de BCNF
! Il décompositions: y a deux propriétés importantes des
1. Décomposition SPI: Sans perte d’information : on
2. composantes peut projeter la et relation reconstruire de départ la relation sur chacine de départ. des
on dépendances peut vérifier originales dans les sont relations préservées. projetées que les
Préservation des dépendances fonctionnelles :
45
3NF et BCNF, fin ! On peut toujours mettre en BCNF sans perte ! On
3NF et BCNF, fin
! On peut toujours mettre en BCNF sans perte
! On d’information. peut toujours mettre en 3NF
! Par sans dépendance contre perte il d’information n’y fonctionnelle a pas toujours et sans de perte forme de BCNF
"
Sans perte d’information
"
En préservant les Dépendances Fonctionnelles
" Adresse rue ville est un exemple.
46