Вы находитесь на странице: 1из 53

Normalisation relationnelle

P: Bouden
1

Base S-P
(Exemple canon)

S# S1 S2 S3 S4 S5

SNAME Smith Jones Blake Clark Adams

STATUS 20 10 30 20 30

CITY London Paris Paris London Athens

SP

P# P1 P2 P3 P4 P5 P6

PNAME Nut Bolt Screw Screw Cam Cog

COLOR Red Green Blue Red Blue Red

WEIGHT 12 17 14 12 19 19

CITY London Paris Rome London Paris London

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

Pourquoi ce schma pour S-P ?


Autres schmas sont possibles Une seule table (universelle)


S-P (S#, SNAME,STATUS,CITY,P#,QTY,PNAME,COLOR,WEIGHT,PCITY)

Autres intermdiaires
SP (S#, SNAME, STATUS, CITY, P#, QTY ), P (P#)

Alors pourquoi le schma S,SP,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)

Couverture de Dpendances FDs

Normalisation
Base

Cuverture minimale FDs Base en 1-O NF

table en 1 NF 6

Normalisation
Base

Cuverture minimale FDs

Formes normales connues

1-O NF (Ketabchi, Krishnamourthy, Litwin, 1991) 1 NF (Codd, 1971) 2 NF (Codd, 1971)


3 NF (Codd, 1971)

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

PNAM E N ut B o lt Screw Screw C am C og

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

C IT Y London P a r is R om e London P a r is London

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

Rgles d'infrence de DFs

F: {S# -> SNAME ; S# -> STATUS ; S# -> CITY} S# -> {SNAME, CITY} ; {S#, CITY} -> {STATUS, CITY}

Rgles d'infrence des DFs (Armstrong ,1974)


X, Y, Z sont des attributs de R

(i) XY X -> Y (ii) XY XZ -> YZ (iii) XY, YZ X -> Z

* Rflexivit * Augmentation * Transitivit

11

Rgles additionnelles
XYZ

X -> Y XY, XZ X -> YZ XY, WYZ WX -> Z XYZ X -> Y, X -> Z


XX X -> Y, V -> Z XV -> YZ XY XW -> Y
....

* Projection * Union (addition) * Pseudo-transitivit * Dcomposition * Auto-dtermination

* Composition
* Augmentation gauche

12

1 NF

Relation R est en 1 NF si toute valeur d'attribut est atomique


cette normallisation cre des redondances !

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

SNAME Smith Jones Blake Clark Adams

STATUS 20 10 30 20 30

CITY London Paris Paris London Athens

SP

P# P1 P2 P3 P4 P5 P6

PNAME Nut Bolt Screw Screw Cam Cog

COLOR Red Green Blue Red Blue Red

WEIGHT 12 17 14 12 19 19

CITY London Paris Rome London Paris London

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 nouveau fournisseur sans aucune pice

de suppression
suppression

de la dernire pice supprime toute info sur le fournisseur

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

Dernire info sur S3

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)

Thorme de Heath (1971) Conduit la rgle de patates


21

Normalisation en 2-NF

Dcomposition correspondante de SP
A = S# ; B = (STATUS, CITY)
S est la patate blanche, SP la rouge

SP (S#, P#, QTY)

S (S#, STATUS, CITY)

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

SP (S#, P#, QTY) S# QTY P# S (S#, STATUS, CITY) STATUS S#


S# S1 S2 S3 S4 STATUS 20 10 10 20 CITY London Paris Paris London

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

Conception de la base S-P

Relation universelle initiale


SP1 (S#, SNAME, SCITY, STATUS, P#, PNAME, COLOR, WEIGHT, PCITY, QTY) Les DFs ?

1re dcomposition sans perte


P (P#, PNAME, COLOR, WEIGHT, PCITY) SP2 (S#, SNAME, SCITY, STATUS, P#, QTY)

On retrouve SP augment par SNAME


Est-ce que c'est la seule 1re dcomposition sans perte possible ?

2me dcomposition sans perte, de SP2 seul


SP (S#, P#, QTY) S (S#, SNAME, SCITY, STATUS)

Avec P, on retrouve notre schma habituel Est-ce que les DFs de SP1 sont prserves ?

25

Exercices

Etud (E#, Nom, Cours, Note)


F = { E# -> Nom ; {E# , Cours } -> Note }}

Dcompositions sans perte ?


EN (E#, Nom), EC (E#, Cours, Note) ENC (E#, Nom, Cours), CN (Cours, Note)

Et les DFs, sont-elles prserves ?


26

Exemples courants

Pers (SS#, Nom, Ville, CP, Voit#, Type)


Pers (SS#, ...) et PV (SS#, Voit#,..)

Empl (E#, Nom, Dep, Loc, Tache, Def, Perf)


dcomposer en combien d'tapes ? La modlisation naturelle souvent vite ces cas "naturellement"

27

3-NF

Problme avec 2-NF


DFs transitives conduisent des anomalies

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

Plusieurs dcompositions sans perte sont souvent possibles


En projections indpendantes
De

prfrence

En projections dpendantes

30

Dcomposition 2 NF -> 3 NF en projections indpendantes

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

Dcomposition 2 NF -> 3 NF en projections indpendantes


CS (CITY, STATUS) S1 (S#, STATUS, CITY) STATUS CITY CITY S# SC (S#, CITY) CITY STATUS

S#

32

Dcomposition 2 NF -> 3 NF en projections indpendantes

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

SC (S#, CITY) S# CITY

S# S1 S2 S3 S4

STATUS 20 10 10 20

CITY London Paris Paris London

34

STATUS

CITY

CS (STATUS, CITY)

MAJ de CS

STATUS 20 10

CITY London Paris

S# S1 S2 S3 S4

CITY London Paris Paris London

CS Join SC

SC (S#, CITY) S# CITY

S# S1 S2 S3 S4

STATUS 20 10 10 20

CITY London Paris Paris London

35

STATUS

CITY

CS (STATUS, CITY)

MAJ de CS

STATUS 200 10

CITY London Paris

S# S1 S2 S3 S4

CITY London Paris Paris London

CS Join SC

SC (S#, CITY) S# CITY

S# S1 S2 S3 S4

STATUS 200 10 10 200

CITY London Paris Paris London

36

Dcomposition en projections dpendantes

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

SC (S#, CITY) S# CITY

S# S1 S2 S3 S4

STATUS 20 10 10 20

CITY London Paris Paris London

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

CITY London Paris Paris London

CITY -|-> STATUS


S# S1 S2 S3 S4 STATUS 20 10 10 200 CITY London Paris Paris London

SC (S#, CITY) S# CITY

SC Join SS 38

Conception de la base S-P

Relation universelle initiale


SP1 (S#, SNAME, SCITY, STATUS, P#, PNAME, COLOR, WEIGHT, PCITY, QTY) Les DFs ?

1re dcomposition sans perte


P (P#, PNAME, COLOR, WEIGHT, PCITY) SP2 (S#, SNAME, SCITY, STATUS, P#, QTY)

On retrouve SP augment par SNAME


Est-ce que c'est la seule 1re dcomposition sans perte possible ?

2me dcomposition sans perte, de SP2 seul


SP (S#, P#, QTY) S (S#, SNAME, SCITY, STATUS)

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

SNAME nest pas pleinement FD de la cl primaire de SSP 43

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

Dcompositions (sans perte) par Th. De Heath


Et les patates donc

SS (S#, SNAME) ou: SS (S#, SNAME)


SP (S#, P#, QTY)

SP' (SNAME, P#, QTY)

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

Dcomposition BCNF de SSP


SSP (S#, SNAME, P# , QTY) SP
S# QTY

SS
SNAME

P#

Plus de DF (P#, SNAME) -> QTY 47

Dcomposition BCNF de SSP


SSP (S#, SNAME, P# , QTY) SP
S# QTY P#

SS N 1
S# SNAME

48

Dcomposition BCNF de SSP 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

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

BCNF Dcomposition BCNF Alternative de SSP


SSP (S#, SNAME, P# , QTY) SP'
S# QTY

SS
SNAME

P#

Plus de DF (P#, S#) -> QTY 50

Dcomposition BCNF de SSP


SSP (S#, SNAME, P# , QTY) SP
SNAME QTY P#

SS N 1
SNAME S#

51

Dcomposition BCNF alternative 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
SNAME Smith Smith Smith Smith Smith Smith Jones Jones Blake Clark Clark Clark

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

Вам также может понравиться