81
1 Normalisation relationnelle Witold Litwin http://ceria.dauphine.fr/witold.html

1 Normalisation relationnelle Witold Litwin

Embed Size (px)

Citation preview

Page 1: 1 Normalisation relationnelle Witold Litwin

1

Normalisation relationnelleNormalisation relationnelle

Witold Litwinhttp://ceria.dauphine.fr/witold.html

Page 2: 1 Normalisation relationnelle Witold Litwin

2

Modélisation du monde réelModélisation du monde réel

Une base est un modèle d'une entreprise (ANSI-SPARC)

Innombrable méthodes d'aide à la conception (intégré) d'une base:– empiriques– semi-empiriques (E-R)– formelles

normalisation relationnelle– OO

Page 3: 1 Normalisation relationnelle Witold Litwin

3

Base S-P (Exemple canon)

S# SNAME STATUS CITYS1 Smith 20 London

S2 Jones 10 Paris

S3 Blake 30 Paris

S4 Clark 20 London

S5 Adams 30 Athens

P# PNAME COLOR WEIGHT CITYP1 Nut Red 12 London

P2 Bolt Green 17 Paris

P3 Screw Blue 14 Rome

P4 Screw Red 12 London

P5 Cam Blue 19 Paris

P6 Cog Red 19 London

S# P# QTYS1 P1 300

S1 P2 200

S1 P3 400

S1 P4 200

S1 P5 100

S1 P6 100

S2 P1 300

S2 P2 400

S3 P2 200

S4 P2 200

S4 P4 300

S4 P5 400

S

P

SP

Page 4: 1 Normalisation relationnelle Witold Litwin

4

Pourquoi ce schéma pour S-P ?Pourquoi ce schéma pour S-P ?

Autres schémas sont possibles Une table par fournisseur

IBM (S#, STATUT, CITY, P#, PNAME; QTY)HP (S#; STATUT, CONTACT, CITY, P#, PNAME, QTY)….

Une seule table (universelle)S-P (S#,

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

Autres intermédiairesSP’ (S#, SNAME, STATUS, CITY, P#, QTY ), P (P#…)

Alors pourquoi le schéma S,SP,P ?

Page 5: 1 Normalisation relationnelle Witold Litwin

5

NormalisationNormalisation Processus de création formelle d'une base

relationnelle (Codd) Un remplacement de relations avec des

anomalies par une ou plusieurs relations "meilleures"

Traditionnellement, le remplacement appelé aussi décomposition sans perte est basé en général sur la notion de – dépendances fonctionnelles– dépendances multivaluées

Pour 1-O NF, le remplacement est un regroupement au lieu de la décomposition

Page 6: 1 Normalisation relationnelle Witold Litwin

6

NormalisationNormalisation

Attributs(rel. universelle)

Couverture de Dépendances(FDs, MDs, IDs...)

Base

Page 7: 1 Normalisation relationnelle Witold Litwin

7

NormalisationNormalisation

Cuverture minimale(FDs, MDs, IDs...)

Base

table en 1 NF

Base en 1-O NF

Page 8: 1 Normalisation relationnelle Witold Litwin

8

NormalisationNormalisation

Cuverture minimale(FDs, MDs, IDs...)

Base

Page 9: 1 Normalisation relationnelle Witold Litwin

9

NormalisationNormalisation

Cuverture minimale(FDs, MDs, IDs...)

Base

etc jusqu'à n 7 fois (5NF)

Page 10: 1 Normalisation relationnelle Witold Litwin

10

NormalisationNormalisation

Une de plus belles pièces de la théorie des BDs L'idée première: séparation de torchons et de

serviettes mélangées dans une même relation R– en deux ou plus relations- projections, séparant les torchons

de serviettes et telles que – si besoin, la jointure de ces projections donne de nouveau R

Très à la mode il y a 20 ans Peu de nouveautés depuis sauf:

– 1-O NF (1991)– Théorème de Date & Fagin sur l'équivalence de 3 NF et n NF

n > 3 (1993) Injustement négligée

Peut-être parce que souvent enseignée partiellement seulement

Page 11: 1 Normalisation relationnelle Witold Litwin

11

OutilsOutils

Formes Normales Dépendances Fonctionnelles Règles d’Armstrong Décompositions sans pertes par projections &

jointures internes– Théorème de Heath

Dépendances Multivaluées Théorème de Fagin

Dénormalisation Décomposition sans pertes par projections et

jointures externes

Page 12: 1 Normalisation relationnelle Witold Litwin

12

Formes normales connuesFormes normales connues 1-O NF (Ketabchi, Krishnamourthy, Litwin, 1991)

1 NF (Codd, 1971)

2 NF (Codd, 1971)

3 NF (Codd, 1971)BCNF (Boyce, Codd, 1971)

4 NF (Fagin, 1977) 5 NF (Fagin, 1979)

1-O NF est une forme d'une base, toute autre est une forme d'une relation

Une relation en n > 1 NF ou en BCNF est toujours en n-1 NF ou BCNF.

Relation en 5 NF est en 4 NF et en BCNF et en 3NF… Une relation à clé atomique et en 3 NF est en BCNF et en 4

et 5 NF (Théoreme Date-Fagin).

Page 13: 1 Normalisation relationnelle Witold Litwin

13

Dépendances FonctionnellesDépendances Fonctionnelles

Un attribut B d'une table R est fonctionnellement dépendant sur A de R ; A -> B ; ssi, pour tout tuple t de toute extension de R:

t [a1] = t [a2 ] t [b1] = t [b2 ]

A et B peuvent être composites DFs sont des propriétés sémantiques (du schéma de

R), donc s'appliquent à toute extension (légale) de R Une DF d'une extension de R n'est pas nécessairement

une DF de R Pour tout B non-clé et tout A clé, on a: A -> B

`

Page 14: 1 Normalisation relationnelle Witold Litwin

14

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

Combien y a-t-il de DFs dans S ? Et en général dans une R n-aire avec une clé atomique ?

? SP : S# -> P# ; P# -> QTY

S# SNAME STATUS CITYS1 Smith 20 London

S2 Jones 10 Paris

S3 Blake 30 Paris

S4 Clark 20 London

S5 Adams 30 Athens

P# PNAME COLOR WEIGHT CITYP1 Nut Red 12 London

P2 Bolt Green 17 Paris

P3 Screw Blue 14 Rome

P4 Screw Red 12 London

P5 Cam Blue 19 Paris

P6 Cog Red 19 London

S# P# QTYS1 P1 300

S1 P2 200

S1 P3 400

S1 P4 200

S1 P5 100

S1 P6 100

S2 P1 300

S2 P2 400

S3 P2 200

S4 P2 200

S4 P4 300

S4 P5 400

S

P

SP

Page 15: 1 Normalisation relationnelle Witold Litwin

15

Règles d'inférence de DFsRègles d'inférence de DFs

(i) XY ÞX -> Y * Réflexivité

(ii) XY ÞXZ -> YZ * Augmentation

(iii) XY, YZ ÞX -> Z * Transitivité

Si F est un ensemble de DFs sur R, (couverture fonctionnelle de R), une DF X -> Y est inférée (déduite) de F si X -> Y est valide pour tout tuple d'une extension légale de R (donc respectant F).

On note F Þ X -> Y F: {S# -> SNAME ; S# -> STATUS ; S# -> CITY} Þ

S# -> {SNAME, CITY} ; {S#, CITY} -> {STATUS, CITY} Règles d'inférence des DFs (Armstrong ,1974)

– X, Y, Z sont des attributs de R

Page 16: 1 Normalisation relationnelle Witold Litwin

16

F+

Règles d'inférence de DFsRègles d'inférence de DFs

Il est prouvé que les règles d'Armstrong sont fondées (sound) et complètes– Toute DF inférée en utilisant (i) à (iii) est une DF

inférée – Toute DF qui peut être inférée de F, peut être

inférée en utilisant seulement (i) à (iii)

Fermeture F+ de F: l'ensemble des DFs qui peuvent être inférées de F

F

Page 17: 1 Normalisation relationnelle Witold Litwin

17

Règles additionnellesRègles additionnelles XYZ ÞX -> Y * Projection XY, XZ ÞX -> YZ * Union (addition) XY, WYZ ÞWX -> Z * Pseudo-transitivité XYZ ÞX -> Y, X -> Z * Décomposition XX * Auto-détermination X -> Y, V -> Z Þ XV -> YZ * Composition XY ÞXW -> Y * Augmentation à gauche ....

Prouver ces règles

Page 18: 1 Normalisation relationnelle Witold Litwin

18

1 NF1 NF Relation R est en 1 NF si toute valeur

d'attribut est atomique– 1NF simplifié le modèle– Mais crée des redondances !

P1P2P3P4

S1

S2P1P2P3

P1P2P3P4

P1P2P3

S1S1S1S1

S2S2S2

Norm.

O NF 1 NF

Page 19: 1 Normalisation relationnelle Witold Litwin

19

1 NF1 NF Relation R est en 1 NF si toute valeur

d'attribut est atomique– 1NF simplifié le modèle– Mais crée des redondances !

P1, 300 P2, 200P3, 400P4, 200

S1

S2P1, 300 P2, 400

P1P2P3P4

P1P2

S1S1S1S1

S2S2

Norm.

O NF 1 NF

300200400200

300400

Page 20: 1 Normalisation relationnelle Witold Litwin

20

1 NF1 NF Relation R est en 1 NF si toute valeur

d'attribut est atomique– 1NF simplifié le modèle– Mais crée des redondances !

S1, 300 S2, 300

P2

S1, 400

P1P2P3P4

P1P2P3

S1S1S1S1

S2S2S2

Norm.

O NF 1 NF

300200400200

300400100

P1

S1, 200 S2, 400

P3

S1, 200 P4

Page 21: 1 Normalisation relationnelle Witold Litwin

21

1 NF1 NF Relation R est en 1 NF si toute valeur

d'attribut est atomique– 1NF simplifié le modèle– Mais crée des redondances !

P1P2P3P4

S1

S2P1P2P3

P1P1P2P2

…P1P1P2…

S1S1S1S1

…S2S2S2…

Norm.

O NF 1 NF

T1T2

T1T3

T1T2T1T2

…T1T3T1…

Page 22: 1 Normalisation relationnelle Witold Litwin

22

S# STATUS CITY P# QTYS1 20 London P1 300

S1 20 London P2 200

S1 20 London P3 400

S1 20 London P4 200

S1 20 London P5 100

S1 20 London P6 100

S2 10 Paris P1 300

S2 10 Paris P2 400

S3 10 Paris P2 200

S4 20 London P2 200

S4 20 London P4 300

S4 20 London P5 400

QTY

S#

P#

STATUS

CITY

1 NF1 NF

Page 23: 1 Normalisation relationnelle Witold Litwin

23

1 NF1 NF Anomalies

– d'insertion pas de nouveau fournisseur sans aucune pièce

– de suppression suppression de la dernière pièce supprime toute info sur le

fournisseur

– de mise à jour il faut mettre à jour des valeurs inutilement dupliquées

– consistance peut être détruite S'agit-t-il vraiment d'anomalies ?? Rédondances !!

les données d'un fournisseur sont dupliquées plusieurs fois

Page 24: 1 Normalisation relationnelle Witold Litwin

24

S# STATUS CITY P# QTYS1 20 London P1 300

S1 20 London P2 200

S1 20 London P3 400

S1 20 London P4 200

S1 20 London P5 100

S1 20 London P6 100

S2 10 Paris P1 300

S2 10 Paris P2 400

S3 10 Paris P2 200

S4 20 London P2 200

S4 20 London P4 300

S4 20 London P5 400

Table SP’

Dernière infosur S3

Page 25: 1 Normalisation relationnelle Witold Litwin

25

SolutionSolution

• Décomposition sans perte d’info– 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

R

R2

R1R'

Page 26: 1 Normalisation relationnelle Witold Litwin

26

Décomposition sans perteDécomposition sans perte

En général, il existe une décomposition sans perte en deux projections R1 et R2– mais il y a en des cas où la seule décomposion

sans perte est en i > 2 projections on verra l'ex. en discutant la 5 NF

Souvent R1 ou R2 est décomposable à son tour – en conduisant aussi à une décomposition sans

perte de R en i > 2 relations

Page 27: 1 Normalisation relationnelle Witold Litwin

27

Théorème de Heath (1971)Théorème de Heath (1971)

Toute relation R avec –A, B, C attr. atomiques ou composés–une DF A -> B

peut être décomposée sans perte d’info en R1 (A, B) et R2 (A, C)

Conduit à la « règle de patates »

Page 28: 1 Normalisation relationnelle Witold Litwin

28

BCNFBCNF

Relation R est en BCNF ssi tout déterminant dans R est une clé candidate

On appelle déterminant tout attribut A, peut-être composé, duquel un autre attribut B est pleinement dépendant– B n’est pas dépendent d’un sous-ensemble stricte

des attributs composant A

Ici, la clé primaire est aussi une clé candidate

On peut démontrer que toute relation en BCNF est en 3 NF et donc en 2NF

Page 29: 1 Normalisation relationnelle Witold Litwin

29

Conception de la base S-PConception de la base S-P Relation universelle initiale

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

Les DFs ?

1ère décomposition sans perte en minimum de relationsP (P#, PNAME, COLOR, WEIGHT, PCITY)SP2 (S#, SNAME, SCITY, STATUS, P#, QTY)

On retrouve SP’ augmenté par SNAMEEst-ce que c'est la seule 1ère décomposition sans

perte d’info possible ?

Page 30: 1 Normalisation relationnelle Witold Litwin

30

Conception de la base S-PConception de la base S-PSP2 (S#, SNAME, SCITY, STATUS, P#, QTY)

2ème décomposition sans perte, de SP2 seul– Toujours en minimum de relations

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

Avec P, on retrouve notre schéma habituel Prouver que cette décomposition est sans perte pour

l’extension montrée de notre base du cours

Page 31: 1 Normalisation relationnelle Witold Litwin

31

Décomposition en BCNF et Anomalies

Décomposition en BCNF et Anomalies

Les anomalies discutées résultent de la présence de déterminants qui ne seraient pas de clés candidats– S# et P# dans SP1 – S# dans SP2

Cas fréquent BCNF par sa définition même élimine cette

cause D’où son importance pratique

Page 32: 1 Normalisation relationnelle Witold Litwin

32

ExercicesExercices

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

Décompositions sans perte ?– EN (E#, Nom), EC (E#, Cours, Note)

– ENC (E#, Nom, Cours), CN (Cours, Note)

Page 33: 1 Normalisation relationnelle Witold Litwin

33

Décomposition préservant les DFDécomposition préservant les DF

L'union des couvertures fonctionnelles des projections de R est équivalente à la couverture fonctionnelles de R– La couverture : un ensemble de DFs complet au sens

des axiomes d'Armstrong Une décomposition sans perte d’info

– peut préserver les DFs décompositions en 3NF

– peut ne pas préserver les DFs décompositions en BCNF

Est-ce que les DFs de SP1 sont préservées ? Perte d’une DF en général crée une anomalie

Page 34: 1 Normalisation relationnelle Witold Litwin

34

Décomposition en projections indépendantes

(sans perte de DFs)

Décomposition en projections indépendantes

(sans perte de DFs)

S#

CITYSC (S#, CITY)

STATUS

CITY

CS (CITY, STATUS)

S#STATUS

CITY

S1 (S#, STATUS, CITY)

Page 35: 1 Normalisation relationnelle Witold Litwin

35

Décomposition en projections indépendantes

Décomposition en projections indépendantes

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 décomposition dite dès lors en projections dépendantes– bien qu'une telle décomposition peut être aussi sans

perte d’info– Comme on verra

Page 36: 1 Normalisation relationnelle Witold Litwin

36

S# CITYS1 London

S2 Paris

S3 Paris

S4 London

STATUS CITY20 London

10 Paris

CITYSTATUS

CS (STATUS, CITY)

S# CITY

SC (S#, CITY)

S# STATUS CITYS1 20 London

S2 10 Paris

S3 10 Paris

S4 20 London

S# STATUS CITYS1 20 London

S2 10 Paris

S3 10 Paris

S4 20 London

CS Join SC

S1

Page 37: 1 Normalisation relationnelle Witold Litwin

37

S# CITYS1 London

S2 Paris

S3 Paris

S4 London

STATUS CITY20 London

10 Paris

CITYSTATUS

CS (STATUS, CITY)

S# CITY

SC (S#, CITY)

S# STATUS CITYS1 20 London

S2 10 Paris

S3 10 Paris

S4 20 London

MAJ de CS

CS Join SC

Page 38: 1 Normalisation relationnelle Witold Litwin

38

S# CITYS1 London

S2 Paris

S3 Paris

S4 London

STATUS CITY200 London

10 Paris

CITYSTATUS

CS (STATUS, CITY)

S# CITY

SC (S#, CITY)

S# STATUS CITYS1 200 London

S2 10 Paris

S3 10 Paris

S4 200 London

MAJ de CS

CS Join SC

Page 39: 1 Normalisation relationnelle Witold Litwin

39

S# CITYS1 London

S2 Paris

S3 Paris

S4 London

STATUSS#

SS (S#, STATUS)

S# CITY

SC (S#, CITY)

S# STATUSS1 20

S2 10

S3 10

S4 20

S# STATUS CITYS1 20 London

S2 10 Paris

S3 10 Paris

S4 20 London

S1

Décompositionen projectionsdépendantes

S# STATUS CITYS1 20 London

S2 10 Paris

S3 10 Paris

S4 20 London

SC Join SS

Perte de DFs

• CITY -> STATUS

Page 40: 1 Normalisation relationnelle Witold Litwin

40

S# CITYS1 London

S2 Paris

S3 Paris

S4 London

STATUSS#

SS (S#, STATUS)

S# CITY

SC (S#, CITY)

S# STATUSS1 20

S2 10

S3 10

S4 200

S# STATUS CITYS1 20 London

S2 10 Paris

S3 10 Paris

S4 200 London

CITY -|-> STATUS

MAJ de SS

SC Join SS

Page 41: 1 Normalisation relationnelle Witold Litwin

41

Conception de la base S-P(avec CITY -> STATUS)

Conception de la base S-P(avec CITY -> STATUS)

Relation universelle initialeSP1 (S#, SNAME, SCITY, STATUS, P#, PNAME, COLOR, WEIGHT,

PCITY, QTY) Les DFs autres que CITY -> STATUS ?

1ère décomposition sans perte d’info

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 1ère décomposition sans perte possible ?

2ème décomposition sans perte d’info, de SP2SP (S#, P#, QTY)S (S#, SNAME, SCITY, STATUS)

3ème décomposition sans perte d’info en proj. ind, de S S (S#, SNAME, SCITY) CS (SCITY, STATUS)

Page 42: 1 Normalisation relationnelle Witold Litwin

42

DécompositionDécomposition

Un autre exemple très courant

SS#

CPPC (SS#, CP)

Ville

CP

CV (CP, Ville)

SS#Ville

CP

Pers (SS#, Ville, CP)

Page 43: 1 Normalisation relationnelle Witold Litwin

43

Théorème de RissanenThéorème de Rissanen

Projections R1 et R2 de R sont indépendantes ssi :– toute FD de R peut être logiquement déduite 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 déduite de

S# --> CITY et de CITY --> STATUS– Transitivité

Les projections indépendantes de SP':(S#, CITY) et (CITY, STATUS)

La dépendance S# --> STATUS peut être déduite Les projections dépendantes de SP':

(S#, CITY) et (S#, STATUS) La dépendance CITY --> STATUS ne peut être déduite

Page 44: 1 Normalisation relationnelle Witold Litwin

44

Théorème de RissanenThéorème de Rissanen

Ce théorème permet seulement de vérifier le si la décomposition est en projections indépendantes

Il ne permet pas de trouver une telle décomposition Il y a des algorithmes correspondants plus loin dans

ce cours

Page 45: 1 Normalisation relationnelle Witold Litwin

45

Décompositions BCNF Equivalentes

Décompositions BCNF Equivalentes

Suppose :– SNAME une clé candidate dans S

et considère la tableSSP (S#, SNAME, P# , QTY) = S [S#, SNAME] JOIN SP

– Avec donc S# <--> SNAME– On oublie S.CITY, S.STATUS pour simplifier

Page 46: 1 Normalisation relationnelle Witold Litwin

46

S# SNAME P# QTYS1 Smith P1 300

S1 Smith P2 200

S1 Smith P3 400

S1 Smith P4 200

S1 Smith P5 100

S1 Smith P6 100

S2 Jones P1 300

S2 Jones P2 400

S3 Blake P2 200

S4 Clark P2 200

S4 Clark P4 300

S4 Clark P5 400

SSP

Anomalies ?

Page 47: 1 Normalisation relationnelle Witold Litwin

47

BCNFBCNFSSP (S#, SNAME, P# , QTY) n'est pas en BCNF

QTY

S# SNAME

P#

Et si SNAME n’était pas une clé candidate dans S, alors quelle serait la forme normale de SSP ?

Page 48: 1 Normalisation relationnelle Witold Litwin

48

BCNFBCNF Décompositions (sans perte) par Th. De Heath

– Et les patates donc

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

ou:

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

SP’ résulte de la dépendance SNAME -> S# Cette décomposition également résulte du Th. de Heath SP et SP' sont-elles en BCNF ? Et les tables S et P de S-P ?

Page 49: 1 Normalisation relationnelle Witold Litwin

49

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

QTY

S# SNAME

P#

SSSP

Décomposition BCNF de SSPDécomposition BCNF de SSP

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

Page 50: 1 Normalisation relationnelle Witold Litwin

50

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

QTYS# SNAME

P#

SSSP

Décomposition BCNF de SSPDécomposition BCNF de SSP

S#1N

Page 51: 1 Normalisation relationnelle Witold Litwin

51

S# SNAMES1 Smith

S2 Jones

S3 Blake

S4 Clark

S# P# QTYS1 P1 300

S1 P2 200

S1 P3 400

S1 P4 200

S1 P5 100

S1 P6 100

S2 P1 300

S2 P2 400

S3 P2 200

S4 P2 200

S4 P4 300

S4 P5 400

SS

SP

Décomposition BCNF de SSP

S# SNAME P# QTYS1 Smith P1 300

S1 Smith P2 200

S1 Smith P3 400

S1 Smith P4 200

S1 Smith P5 100

S1 Smith P6 100

S2 Jones P1 300

S2 Jones P2 400

S3 Blake P2 200

S4 Clark P2 200

S4 Clark P4 300

S4 Clark P5 400

SSP

Page 52: 1 Normalisation relationnelle Witold Litwin

52

BCNFBCNF

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

QTY

S# SNAME

P#

SSSP'

Décomposition BCNF Alternative de SSP

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

Page 53: 1 Normalisation relationnelle Witold Litwin

53

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

QTY

SNAME SNAME

P#

SSSP

Décomposition BCNF de SSPDécomposition BCNF de SSP

S#1N

Page 54: 1 Normalisation relationnelle Witold Litwin

54

S# SNAME S1 Smith

S2 Jones

S3 Blake

S4 Clark

SS

SP'

SNAME P# QTY Smith P1 300

Smith P2 200

Smith P3 400

Smith P4 200

Smith P5 100

Smith P6 100

Jones P1 300

Jones P2 400

Blake P2 200

Clark P2 200

Clark P4 300

Clark P5 400

Décomposition BCNF alternative

S# SNAME P# QTYS1 Smith P1 300

S1 Smith P2 200

S1 Smith P3 400

S1 Smith P4 200

S1 Smith P5 100

S1 Smith P6 100

S2 Jones P1 300

S2 Jones P2 400

S3 Blake P2 200

S4 Clark P2 200

S4 Clark P4 300

S4 Clark P5 400

SSP

Page 55: 1 Normalisation relationnelle Witold Litwin

55

Autres exemplesAutres 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

Page 56: 1 Normalisation relationnelle Witold Litwin

56

COURSE TEACHER TEXT

Physics Prof. Green Basic MechanicsProf. Brown Principles of Optics

Math Prof. Green Basic MechanicsVector AnalysisTrigonometry

4 NF4 NF R en BCNF peut mélanger les faits indépendants

en dépendance multivaluée

CTX

A ne pas confondre avec l’association 3-aire

Page 57: 1 Normalisation relationnelle Witold Litwin

57

4-NF4-NF

Anomalies : ex. insertion d'un nouveau Prof de Math., Prof. Jaune 3 tuples ; suppression d'un seul tuple de Prof. Green inconsistance dans

la base.

COURSE TEACHER TEXT

Physics Prof. Green Basic MechanicsPhysics Prof. Green Principles of OpticsPhysics Prof. Brown Basic MechanicsPhysics Prof. Brown Principles of OpticsMath Prof. Green Basic MechanicsMath Prof. Green Vector AnalysisMath Prof. Green Trigonometry

CTX

Page 58: 1 Normalisation relationnelle Witold Litwin

58

4 NF4 NF

Décomposition:

COURSE TEACHER

Physics Prof. GreenPhysics Prof. BrownMath Prof. Green

CT

COURSE TEXT

Physics Basic MechanicsPhysics Principles of OpticsMath Basic MechanicsMath Vector AnalysisMath Trigonometry

CX

Page 59: 1 Normalisation relationnelle Witold Litwin

59

Autre exemple(très courant)

Autre exemple(très courant)

Pers (SS#, PNom, Ville, CP, Dipl#, DNom, Hobby)

Pers (SS#, PNom, Ville, CP), X (SS#, .....) Pers (SS#, PNom, CP), VC (Ville, CP),

X (SS#, .....) Pers (SS#, PNom, CP), VC (Ville, CP),

D (Dipl#, DNom), PDH (SS#, Dipl#, Hobby)

RelationTroublion

Page 60: 1 Normalisation relationnelle Witold Litwin

60

Solution formelle:Dépendances multivaluées

Solution formelle:Dépendances multivaluées

Soit R (A, B, C) une relation. Il y a une D M :A -->> B | C

dans R ssi, quelque soit C, à une valeur de A correspond toujours le même ensemble de valeur de B.

Les attributs A, B, C peuvent être composés R a au moins 3 attributs

R est en 4 NF ssi R est en BCNF et toutes les DMs sont des DFs

Page 61: 1 Normalisation relationnelle Witold Litwin

61

DMs dans CTXDMs dans CTXCOURSE TEACHER TEXT

Physics Prof. Green Basic MechanicsPhysics Prof. Green Principles of OpticsPhysics Prof. Brown Basic MechanicsPhysics Prof. Brown Principles of OpticsMath Prof. Green Basic MechanicsMath Prof. Green Vector AnalysisMath Prof. Green Trigonometry

CTX

COURSE --> TEACHER | TEXT

CTX n'est pas en 4 NF

Page 62: 1 Normalisation relationnelle Witold Litwin

62

DMs dans CTXDMs dans CTXCOURSE TEACHER TEXT

Physics Prof. Green Basic MechanicsPhysics Prof. Green Principles of OpticsPhysics Prof. Brown Basic MechanicsPhysics Prof. Brown Principles of OpticsMath Prof. Green Basic MechanicsMath Prof. Green Vector AnalysisMath Prof. Green Trigonometry

CTX

COURSE --> TEXT | TEACHER

A --> B | C A --> C | B

Page 63: 1 Normalisation relationnelle Witold Litwin

63

Décomposition en 4 NFDécomposition en 4 NF

R peut être décomposé sans perte en projections (indépendantes) R(A, B) et R(A, C) ssi les DMs

A -->> B | C sont présentes dans R.– Th. de Fagin généralisant aux DMs celui de Heath

Fagin a montré aussi que certaines règles d'Amstrong se généralisent également

Tout R peut être décomposé en collections de relations en 4 NF

CT et CX sont en 4 NF

Page 64: 1 Normalisation relationnelle Witold Litwin

64

Dr. Ronald Fagin après avoir reçu le Doctorat Honoris

Causa de l’Université Paris 9

Dauphine le 14 Nov. 2001

Notamment pour ses travaux en BDs

Dr. Ronald Fagin après avoir reçu le Doctorat Honoris

Causa de l’Université Paris 9

Dauphine le 14 Nov. 2001

Notamment pour ses travaux en BDs

Page 65: 1 Normalisation relationnelle Witold Litwin

65

Décomposition de CTX en 4 NFDécomposition de CTX en 4 NF

COURSE TEACHER

Physics Prof. GreenPhysics Prof. BrownMath Prof. Green

CT

COURSE TEXT

Physics Basic MechanicsPhysics Principles of OpticsMath Basic MechanicsMath Vector AnalysisMath Trigonometry

CX

R est en 4 NF ssi R est en BCNF et toutes les DMs sont des DFs

Page 66: 1 Normalisation relationnelle Witold Litwin

66

Interaction 4NF et 2NFInteraction 4NF et 2NF Considère en plus de la DM discutée dans CTX qu'un Prof

ne donne qu'un cours– FD (Teacher -> Course)

Alors on a CT (Course, Teacher, Texte)

La décomposition en 2NF aurait donnéeTT (Teacher, Texte) et CT (Teacher, Course)

TT n'est pas terrible, n'est ce pas ?– Anomalies (lequelles ?)

Cette décomposition est moins bonne que celle en tables CT et CX

Pourtant elle serait définitive selon la théorie de normalisation en cours– Les tables TT et CT sont dans 3NF, BCNF, 4NF et 5NF

Page 67: 1 Normalisation relationnelle Witold Litwin

67

Interaction 4NF et 2NFInteraction 4NF et 2NF Solution:

– Il faut analyser les DMs avant les DFs– S'il y en a, alors il faut décomposer selon les DMs d'abord– Résultat OK dans notre exemple:

Les tables CT et CX

Problème apparemment découvert en 2001 et donc encore inconnu de livres sur les BDs relationnels– Beaucoup évite la 4 NF et les MDs

À tort comme on le voit

Autre exemple courant :P# (SS#, email, tel#)

– Les adresses email sont en général personnels, mais les # de téléphone sont souvent partagés

Page 68: 1 Normalisation relationnelle Witold Litwin

68

Est-ce que toute cette théorie est: pratique ?

Est-ce que toute cette théorie est: pratique ?

Les valeurs nulles peuvent affecter la démarche On peut les négliger jusqu’à la

décomposition finale Puis la maintenir si les nuls ne gênent

plus Ou ajuster le schéma Notamment si un attribut clé peut

s’avérer nul Si un fournisseur peut avoir plusieurs tels., la table

S (S#, Tel#) est OK Si Tel# peut être inconnu, alors on peut la remplacer

par deux tables et une contrainte référentielle S (S#, Tel#) avec les tels. connusS (S#) avec tous les fournisseurs

Page 69: 1 Normalisation relationnelle Witold Litwin

69

Est-ce que toute cette théorie est: pratique ?

Est-ce que toute cette théorie est: pratique ?

Les valeurs nulles peuvent affecter la démarche De nuls nombreux d’une même colonne

peuvent indiquer l’existence d’une sous-classe Dans la table Univ-Vigi-Pirate (P#, Etud#...) la

présence de nombreux nuls sur Etud# peut signifier que l’on y a aussi d’autres classes de personnes Les employés, les visiteurs…

On peut alors encore décomposer la table en plusieurs spécifiques aux sous-classes Voir + loin

Page 70: 1 Normalisation relationnelle Witold Litwin

70

Est-ce que toute cette théorie est: pratique ?

Est-ce que toute cette théorie est: pratique ?

On peut avoir besoin d’une nouvelle clé :

SP (S#, P#, QTY)

Si la valeur P# ou S# peut en pratique être nulle, alors il faut changer pour:

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

Les attributs concernés ne font plus partie de la clé donc peuvent être contenir des nuls si

besoin était.

Page 71: 1 Normalisation relationnelle Witold Litwin

71

Sous-Classes & NulsSous-Classes & Nuls Soit la table:

Univ (Pers#, Nom, Et#, Dipl, Emp#, Sal)

On suppose Univ en 4NF– Notamment Et# -> Dipl

Néanmoins, on peut savoir que l’on aura des colonnes corrélées de nuls :

(Et#, Dipl) ou (Emp#, Sal)

– A cause de la présence de sous-classes

Une table pleine de nuls en général n’est pas commode à gérer

– Encombrement notamment

– Requêtes simples : Select * From…

Page 72: 1 Normalisation relationnelle Witold Litwin

72

Sous-Classes & NulsSous-Classes & Nuls

Théorème de Heath n’aide plus– Pourquoi ?

On peut néanmoins décomposer Univ sans perte d’info en:

Pers (Pers#, Nom)

Etud (Pers#, Et#, Dipl)

Empl (Pers#, Emp#, Sal)

Page 73: 1 Normalisation relationnelle Witold Litwin

73

Sous-Classes & NulsSous-Classes & Nuls

Pers (Pers#, Nom)

Etud (Pers#, Et#, Dipl)

Empl (Pers#, Emp#, Sal)

La recomposition passe par les jointures externes

Univ (Pers#, Nom, Et#, Dipl, Emp#, Sal) =

(Pers (Pers#, Nom) LEFT JOIN Etud ON Pers.Pers# = Etud.Pers#) LEFT JOIN Empl ON Pers.Pers# = Empl.Pers# ;

Vrai ?

Page 74: 1 Normalisation relationnelle Witold Litwin

74

Sous-Classes & NulsSous-Classes & Nuls Schéma MsAccess 2007

– Avec l’intégrité référentielle

Page 75: 1 Normalisation relationnelle Witold Litwin

75

Autres CasAutres Cas

Il y en a 5 NF

On peut imaginer les tables sans cléTout attribut candidat aura peut-être un nul

dans un tuple Pers (P#, Nom, Etud#, Cours, Empl#, Sal)

On suppose qu’il y a des personnes qui sont seulement des étudiants, d’autres seulement des employés d’autres ni l’un ni l’autre

Page 76: 1 Normalisation relationnelle Witold Litwin

76

Autres CasAutres Cas

D’une manière générale Les jointures externes: gauche, droite ou pleine

sont souvent utiles pour décomposer sans perteOn peut aussi commencer la conception avec

plusieurs tables Il n’y a encore aucune théorie formelle globale de

décomposition sans perte pour les tables avec les nuls

A notre meilleure connaissance

Page 77: 1 Normalisation relationnelle Witold Litwin

77

Est-ce toute cette théorie pratique ?Est-ce toute cette théorie pratique ?

Il est possible d'insérer dans table S avec la FD CITY ->STATUS l'info sur le status de IBM :

(S5, IBM, nul, 400) /* dans (S#, SNAME, CITY, STATUS)

Ceci n'est plus possible après la décomposition très OK sans valeurs nulles:

(S#, SNAME, CITY) (CITY, STATUS)

Un désavantage souvent

Une dénormalisation peut être utile

En général, un article sur une décomposition n'est plus accepté pour les princip. confs de recherche en BDs (SIGMOD, VLDB...)

Page 78: 1 Normalisation relationnelle Witold Litwin

78

Et pour en savoir plus:Et pour en savoir plus:

Voir les exercices qui suivent Lire + et s'exercer en TDs Voir mon cours + complet sur le

Web

Page 79: 1 Normalisation relationnelle Witold Litwin

79

ExercicesExercices

• Définir 2 ex. de bases. Commencez par la relation universelle. Puis, normaliser, jusqu’à toute table en 4NF.

• Modéliser les étudiants, les profs et les cours à Dauphine en utilisant l'approche formelle avec les FDs et MDs

• Prouver que toute relation en BCNF est en 3NF.• Prouver que l'inverse n'est pas vrai.• Proposer un schéma simplifié mais réaliste d'une banque ou les

clients ont des comptes courants et des comptes d’épargne dont les chargés de clientèle s'occupent

• Modéliser les étudiants, les profs et les cours à Dauphine par un schéma à relations à attributs hérités

Adobe Acrobat Document

Exercices suppl.Clic hors diaporama

Page 80: 1 Normalisation relationnelle Witold Litwin

80

Fin

Page 81: 1 Normalisation relationnelle Witold Litwin

81