Académique Documents
Professionnel Documents
Culture Documents
P: Bouden
1
Base S-P
(Exemple canon)
S# S1 S2 S3 S4 S5
STATUS 20 10 30 20 30
SP
P# P1 P2 P3 P4 P5 P6
WEIGHT 12 17 14 12 19 19
S# S1 S1 S1 S1 S1 S1 S2 S2 S3 S4 S4 S4
P# P1 P2 P3 P4 P5 P6 P1 P2 P2 P2 P4 P5
QTY 300 200 400 200 100 100 300 400 200 200 300 400
Autres intermdiaires
SP (S#, SNAME, STATUS, CITY, P#, QTY ), P (P#)
Normalisation
Processus de cration formelle d'une base relationnelle (Codd) Un remplacement de relations avec des anomalies par une ou plusieurs relations "meilleures" Traditionnellement, le remplacement appel aussi dcomposition sans perte est bas en gnral sur la notion de dpendances fonctionnelles
Normalisation
Base
Attributs (rel. universelle)
Normalisation
Base
table en 1 NF 6
Normalisation
Base
Dpendances Fonctionnelles
Un attribut B d'une table R est fonctionnellement dpendant de A ds R ; A -> B ; ssi, pour tout tuple t de toute extension de R: t [a1] = t [a2 ] t [ b 1] = t [ b 2 ] A et B peuvent tre composites Pour tout B non-cl et tout A cl, on a: A -> B
` 9
S# S1 S2 S3 S4 S5
SN A M E S m it h Jones B la k e C la r k A dam s
STA TU S 20 10 30 20 30
C IT Y London P a r is P a r is London A th en s
SP
P# P1 P2 P3 P4 P5 P6
COLOR R ed G reen B lu e R ed B lu e R ed
W E IG H T 12 17 14 12 19 19
S# S1 S1 S1 S1 S1 S1 S2 S2 S3 S4 S4 S4
P# P1 P2 P3 P4 P5 P6 P1 P2 P2 P2 P4 P5
QTY 300 200 400 200 100 100 300 400 200 200 300 400
S: S# -> SNAME ; S# -> STATUS ; S# -> CITY S: S# -> {SNAME, CITY} ; {S#, CITY} -> {STATUS, CITY} Combien y a-t-il de DFs dans S ? ? SP : S# -> P# ; P# -> QTY 10
F: {S# -> SNAME ; S# -> STATUS ; S# -> CITY} S# -> {SNAME, CITY} ; {S#, CITY} -> {STATUS, CITY}
11
Rgles additionnelles
XYZ
* Composition
* Augmentation gauche
12
1 NF
O NF P1 P2 P3 P4 P1 P2 P3
1 NF S1 S1 S1 S1 S2 S2 S2 P1 P2 P3 P4 P1 P2 P3 13
S1
Norm.
S2
2 NF
R est en 2 NF si R est en 1 NF et tout attribut A non-cl est pleinement (fonctionnellement) dpendant de la cl primaire
S (S#, STATUS, CITY) est en 2 NF SP (S#, STATUS, CITY, P#, QTY ) n'est pas en 2 NF
STATUS
S# QTY P#
CITY
14
Base S-P
(Exemple canon)
S# S1 S2 S3 S4 S5
STATUS 20 10 30 20 30
SP
P# P1 P2 P3 P4 P5 P6
WEIGHT 12 17 14 12 19 19
S# S1 S1 S1 S1 S1 S1 S2 S2 S3 S4 S4 S4
P# P1 P2 P3 P4 P5 P6 P1 P2 P2 P2 P4 P5
QTY 300 200 400 200 100 100 300 400 200 200 300 400
15
Pourquoi 2NF ?
Considre que la base S-P contient la table P et, au lieu de S et SP, la table SP dj mentionne: SP (S#, STATUS, CITY, P#, QTY ) = S JOIN SP Pour simplifier, on oublie SNAME dans S
S# QTY P#
STATUS
CITY
16
S#
STATUS
QTY
P#
CITY
# S1 S1 S1 S1 S1 S1 S2 S2 S3 S4 S4 S4
STATUS 20 20 20 20 20 20 10 10 10 20 20 20
CITY London London London London London London Paris Paris Paris London London London
P# P1 P2 P3 P4 P5 P6 P1 P2 P2 P2 P4 P5
QTY 300 200 400 200 100 100 300 400 200 200 300 400
17
1 NF
Anomalies d'insertion
pas
de suppression
suppression
de mise jour
faut mettre jour des valeurs inutilement dupliques Rdondances !! les donnes d'un fournisseur sont dupliques plusieurs fois
il
18
Table SP
S# S1 S1 S1 S1 S1 S1 S2 S2 S3 S4 S4 S4 STATUS 20 20 20 20 20 20 10 10 10 20 20 20 CITY London London London London London London Paris Paris Paris London London London P# P1 P2 P3 P4 P5 P6 P1 P2 P2 P2 P4 P5 QTY 300 200 400 200 100 100 300 400 200 200 300 400
19
Solution
Dcomposition sans perte
On remplace une relation R par ses projections Ri i=1,2.. telles que la jointure naturelle R' des Ri est gale R, c. d. pour toute extension de R : il n'y a pas de tuples de R qui manquent dans R' il n'y a pas de tuples en plus dans R' par rapport R
R1
R
R2
R'
20
Rgle pratique
Toute relation R avec A, B, C attr. atomiques ou composs une DF A -> B peut tre dcompose sans perte en R1 (A, B) et R2 (A, C)
Normalisation en 2-NF
Dcomposition correspondante de SP
A = S# ; B = (STATUS, CITY)
S est la patate blanche, SP la rouge
S#
STATUS
QTY
P#
CITY
22
Normalisation en 2-NF
Dcomposition correspondante de SP
A = S# ; B = (STATUS, CITY)
Aprs la sparation de patates Avec la contrainte d'intgrit rfrentielle gnre ainsi
SP (S#, P#, QTY) S (S#, STATUS, CITY) STATUS
S# QTY P#
S#
CITY
23
CITY
Vrifie que cette dcomposition est sans perte ! Sans la DF suppl.,on retrouverait notre schma initial de S-P
S# S1 S1 S1 S1 S1 S1 S2 S2 S3 S4 S4 S4
P# P1 P2 P3 P4 P5 P6 P1 P2 P2 P2 P4 P5
QTY 300 200 400 200 100 100 300 400 200 200 300 400
24
Avec P, on retrouve notre schma habituel Est-ce que les DFs de SP1 sont prserves ?
25
Exercices
Exemples courants
27
3-NF
Considre la table SP dj mentionne: SP (S#, STATUS, CITY, P#, QTY ) Avec une DF supplmentaire
STATUS Contrainte additionnelle
S# QTY P#
CITY
28
3-NF
R est en 3 NF si: R est en 2 NF Tout attribut non-cl est nontransitivement dpendant de la cl primaire
La table SP' sans DF suppl. est elle en 3-NF
29
Dcomposition 2 NF -> 3 NF
prfrence
En projections dpendantes
30
On isole les attributs non-cl en DFs dans des projections telles que
la dcomposition est sans perte aucune MAJ d'une projection ne peut violer une DF originelle
31
S#
32
Les MAJ de SC ou de CS peuvent tre faites sans violer une FD de S1 Ce n'est pas le cas de toute autre dcomposition dite ds lors en projections dpendantes bien qu'une telle dcomposition peut tre aussi sans perte Comme on verra
33
STATUS
CITY
CS (STATUS, CITY)
STATUS 20 10 CITY London Paris
S# S1 S2 S3 S4 STATUS 20 10 10 20 CITY London Paris Paris London
S1
S# S1 S2 S3 S4 CITY London Paris Paris London
CS Join SC
S# S1 S2 S3 S4
STATUS 20 10 10 20
34
STATUS
CITY
CS (STATUS, CITY)
MAJ de CS
STATUS 20 10
S# S1 S2 S3 S4
CS Join SC
S# S1 S2 S3 S4
STATUS 20 10 10 20
35
STATUS
CITY
CS (STATUS, CITY)
MAJ de CS
STATUS 200 10
S# S1 S2 S3 S4
CS Join SC
S# S1 S2 S3 S4
36
S#
STATUS
SS (S#, STATUS)
S# S1 S2 S3 S4 STATUS 20 10 10 20
S# S1 S2 S3 S4 STATUS 20 10 10 20 CITY London Paris Paris London
S1
S# S1 S2 S3 S4 CITY London Paris Paris London
S# S1 S2 S3 S4
STATUS 20 10 10 20
SC Join SS 37
S#
STATUS
MAJ de SS
SS (S#, STATUS)
S# S1 S2 S3 S4 STATUS 20 10 10 200
S# S1 S2 S3 S4
SC Join SS 38
3me dcomposition sans perte, de S seul S (S#, SNAME, SCITY) CS (SCITY, STATUS)
39
Dcomposition 2 NF -> 3 NF
Un autre exemple trs courant
CV (CP, Ville) Ville Pers (SS#, Ville, CP) Ville CP SS# CP PC (SS#, CP) CP
SS#
40
Thorme de Rissanen
Projections
R1 et R2 de R sont indpendantes ssi : toute FD de R peut tre logiquement dduite de celles dans R1 et R2 les attributs communs de R1 et R2 forment une cl candidate pour au moins une de ces relations
Ex.
FD : S# --> STATUS peut tre logiquement dduite de S# --> CITY et de CITY --> STATUS
Transitivit
Les projections indpendantes de SP': (S#, CITY) et (CITY, STATUS) La dpendance S# --> STATUS peut tre dduite Les projections dpendantes de SP': (S#, CITY) et (S#, STATUS) La dpendance CITY --> STATUS ne peut tre dduite
41
BCNF
Problme avec 3 NF :
un attribut faisant partie d'une cl (candidate) peut-tre non-pleinement dpendant de la cl primaire Suppose :
SNAME une cl candidate dans S
et considre la table
SSP (S#, SNAME, P# , QTY) = S [S#, SNAME] JOIN SP Avec donc S# <--> SNAME On oublie S.CITY, S.STATUS pour simplifier 42
SSP
S# S1 S1 S1 S1 S1 S1 S2 S2 S3 S4 S4 S4 SNAME Smith Smith Smith Smith Smith Smith Jones Jones Blake Clark Clark Clark P# P1 P2 P3 P4 P5 P6 P1 P2 P2 P2 P4 P5 QTY 300 200 400 200 100 100 300 400 200 200 300 400
BCNF
On appelle dterminant tout attribut duquel un autre attribut est pleinement FD dpendant R est en BCNF ssi tout dterminant est une cl candidate
Cette dfinition ne fais pas de rfrence 3 NF ! Pourtant on peut dmontrer que toute relation en BCNF et en 3 NF
44
BCNF
SSP (S#, SNAME, P# , QTY) n'est pas en BCNF
S# QTY
SNAME
P#
Et si SNAME ntait pas une cl candidate dans S, alors quelle serait la forme normale de SSP ?
45
BCNF
SP rsulte de la dpendance SNAME -> S# Cette dcomposition galement rsulte du Th. de Heath SP et SP' sont-elles en BCNF ? Et les tables S et P de S-P ?
46
SS
SNAME
P#
SS N 1
S# SNAME
48
SP
S# S1 S1 S1 S1 S1 S1 S2 S2 S3 S4 S4 S4 P# P1 P2 P3 P4 P5 P6 P1 P2 P2 P2 P4 P5 QTY 300 200 400 200 100 100 300 400 200 200 300 400
SS
S# S1 S2 S3 S4 SNAME Smith Jones Blake Clark
49
SS
SNAME
P#
SS N 1
SNAME S#
51
SP'
P# P1 P2 P3 P4 P5 P6 P1 P2 P2 P2 P4 P5 QTY 300 200 400 200 100 100 300 400 200 200 300 400
SS
S# S1 S2 S3 S4 SNAME Smith Jones Blake Clark
52
Autres exemples
Etud (E#, SS#, C#, Note) ; Etud (E#, SS#) et EC (E#, C#, Note) Pers (Tel, Nom, SS#, Visa#, Cpte, Etat) Pers (Tel, Nom, SS#), SC (SS#, Cpte, Etat), SV (SS#, Visa#) ; Livre (ISBN#, Loc#, Enr#, D-pret, Nom, Duree) vous de jouer
Fin 53