• Aucun résultat trouvé

Normalisation relationnelle Normalisation relationnelle

N/A
N/A
Protected

Academic year: 2022

Partager "Normalisation relationnelle Normalisation relationnelle"

Copied!
107
0
0

Texte intégral

(1)

1

Normalisation relationnelle Normalisation relationnelle

Witold Litwin

http://ceria.dauphine.fr/witold.html

(2)

2

Modélisation du monde réel Modé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

(3)

3

Base S-P

(Exemple canon)

S# SNAME STATUS CITY

S1 Smith 20 London

S2 Jones 10 Paris S3 Blake 30 Paris

S4 Clark 20 London

S5 Adams 30 Athens

P# PNAME COLOR WEIGHT CITY

P1 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# QTY S1 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

(4)

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,WEIG HT,PCITY)

Autres intermédiaires

SP’ (S#, SNAME, STATUS, CITY, P#, QTY ), P (P#…)

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

(5)

5

Normalisation Normalisation

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 fonctionnellesdépendances multivaluées

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

(6)

6

Normalisation Normalisation

Attributs

(rel. universelle)

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

Base

(7)

7

Normalisation Normalisation

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

Base

table en 1 NF

Base en 1-O NF

(8)

8

Normalisation Normalisation

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

Base

(9)

9

Normalisation Normalisation

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

Base

etc jusqu'à n  7 fois (5NF)

(10)

10

Normalisation Normalisation

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

(11)

11

Outils Outils

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

(12)

12

Formes normales connues Formes 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).

(13)

13

Dépendances Fonctionnelles Dé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

`

(14)

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 # S N A M E S T A T U S C I T Y S 1 S m ith 2 0 L o n d o n S 2 J o n e s 1 0 P a r is S 3 B la k e 3 0 P a r is S 4 C la r k 2 0 L o n d o n S 5 A d a m s 3 0 A t h e n s

P# PNAME COLOR WEIGHT CITY

P1 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# QTY

S1 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

(15)

15

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

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

(ii) XY ÞXZ -> YZ * Augmentation (iii) XY, YZ Þ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

(16)

16

F+

Règles d'inférence de DFs Rè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

(17)

17

Règles additionnelles Règles additionnelles

XYZ ÞX -> Y * Projection

XY, XZ ÞX -> YZ * Union (addition)

XY, WYZ ÞWX -> Z * Pseudo-transitivité

XYZ ÞX -> Y, X -> Z * Décomposition

XX * Auto-détermination

X -> Y, V -> Z Þ XV -> YZ * Composition

XY ÞXW -> Y * Augmentation à gauche

....

Prouver ces règles

(18)

18

1 NF 1 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 P2 P3 P4 S1

S2 P1 P2 P3

P1 P2 P3 P4 P1 P2 P3 S1

S1 S1 S1 S2 S2 S2 Norm.

O NF 1 NF

(19)

19

1 NF 1 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, 200 P3, 400 P4, 200 S1

S2 P1, 300 P2, 400

P1 P2 P3 P4 P1 P2 S1

S1 S1 S1 S2 S2 Norm.

O NF 1 NF

300 200 400 200 300 400

(20)

20

1 NF 1 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

P1 P2 P3 P4 P1 P2 P3 S1

S1 S1 S1 S2 S2 S2 Norm.

O NF 1 NF

300 200 400 200 300 400 100 P1

S1, 200 S2, 400 P3

S1, 200 P4

(21)

21

1 NF 1 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 P2 P3 P4 S1

S2 P1 P2 P3

P1 P1 P2 P2

P1 P1 P2

S1

S1 S1 S1

S2 S2 S2

Norm.

O NF 1 NF

T1 T2

T1 T3

T1 T2 T1 T2

T1 T3 T1

(22)

22

S# STATUS CITY P# QTY

S1 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 NF 1 NF

(23)

23

1 NF 1 NF

Anomaliesd'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

(24)

24

S# STATUS CITY P# QTY

S1 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 info sur S3

(25)

25

Solution Solution

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

R1 R'

(26)

26

Décomposition sans perte Dé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

(27)

27

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

Toute relation R avec

A, B, C attr. atomiques ou composésune 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 »

(28)

28

BCNF BCNF

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

(29)

29

Conception de la base S-P Conception 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 relations

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 d’info possible ?

(30)

30

Conception de la base S-P Conception de la base S-P

SP2 (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

(31)

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

(32)

32

Exercices Exercices

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)

(33)

33

Décomposition préservant les DF Dé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

(34)

34

Décomposition en projections indépendantes

(sans perte de DFs)

Décomposition en projections indépendantes

(sans perte de DFs)

S#

CITY SC (S#, CITY)

STATUS

CITY CS (CITY, STATUS)

S# STATUS

CITY S1 (S#, STATUS, CITY)

(35)

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

(36)

36

S# CITY S1 London S2 Paris S3 Paris S4 London

STATUS CITY

20 London

10 Paris

CITY

STATUS

CS (STATUS, CITY)

S# CITY

SC (S#, CITY)

S# STATUS CITY

S1 20 London

S2 10 Paris

S3 10 Paris

S4 20 London

S# STATUS CITY

S1 20 London

S2 10 Paris

S3 10 Paris

S4 20 London

CS Join SC

S1

(37)

37

S# CITY S1 London S2 Paris S3 Paris S4 London

STATUS CITY

20 London

10 Paris

CITY

STATUS

CS (STATUS, CITY)

S# CITY

SC (S#, CITY)

S# STATUS CITY

S1 20 London

S2 10 Paris

S3 10 Paris

S4 20 London

MAJ de CS

CS Join SC

(38)

38

S# CITY S1 London S2 Paris S3 Paris S4 London

STATUS CITY 200 London

10 Paris

CITY

STATUS

CS (STATUS, CITY)

S# CITY

SC (S#, CITY)

S# STATUS CITY S1 200 London

S2 10 Paris

S3 10 Paris

S4 200 London

MAJ de CS

CS Join SC

(39)

39

S# CITY S1 London S2 Paris S3 Paris S4 London

STATUS S#

SS (S#, STATUS)

S# CITY

SC (S#, CITY)

S# STATUS S1 20

S2 10 S3 10 S4 20

S# STATUS CITY

S1 20 London

S2 10 Paris

S3 10 Paris

S4 20 London

S1

Décomposition en projections dépendantes

S# STATUS CITY

S1 20 London

S2 10 Paris

S3 10 Paris

S4 20 London

SC Join SS Perte de DFs

CITY -> STATUS

(40)

40

S# CITY S1 London S2 Paris S3 Paris S4 London

STATUS S#

SS (S#, STATUS)

S# CITY

SC (S#, CITY)

S# STATUS S1 20

S2 10 S3 10 S4 200

S# STATUS CITY

S1 20 London

S2 10 Paris

S3 10 Paris

S4 200 London

CITY -|-> STATUS

MAJ de SS

SC Join SS

(41)

41

Conception de la base S-P

(avec CITY -> STATUS)

Conception de la base S-P

(avec CITY -> STATUS)

Relation universelle initiale

SP1 (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 SP2

SP (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)

(42)

42

Décomposition Décomposition

Un autre exemple très courant

SS#

CP PC (SS#, CP)

Ville

CP CV (CP, Ville)

SS# Ville

CP

Pers (SS#, Ville, CP)

(43)

43

Théorème de Rissanen Thé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

(44)

44

Théorème de Rissanen Thé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

(45)

45

Décompositions BCNF Equivalentes

Décompositions BCNF Equivalentes

Suppose :

SNAME une clé candidate dans S

et considère la table

SSP (S#, SNAME, P# , QTY) = S [S#, SNAME] JOIN SPAvec donc S# <--> SNAME

On oublie S.CITY, S.STATUS pour simplifier

(46)

46

S# SNAME P# QTY S1 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 ?

(47)

47

BCNF BCNF

SSP (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 ?

(48)

48

BCNF BCNF

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 ?

(49)

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

QTY

S# SNAME

P#

SP SS

Décomposition BCNF de SSP Décomposition BCNF de SSP

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

(50)

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

QTY

S# SNAME

P#

SP SS

Décomposition BCNF de SSP Décomposition BCNF de SSP

1 S#

N

(51)

51

S# SNAME S1 Smith S2 Jones S3 Blake S4 Clark

S# P# QTY

S1 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# QTY S1 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

(52)

52

BCNF BCNF

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

QTY

S# SNAME

P#

SP' SS

Décomposition BCNF Alternative de SSP

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

(53)

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

QTY

SNAME SNAME

P#

SP SS

Décomposition BCNF de SSP Décomposition BCNF de SSP

1 S#

N

(54)

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# QTY S1 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

(55)

55

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

(56)

56

COURSE TEACHER TEXT

Physics Prof. Green Basic Mechanics Prof. Brown Principles of Optics

Math Prof. Green Basic Mechanics Vector Analysis

Trigonometry

4 NF 4 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

(57)

57

4-NF 4-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 Mechanics Physics Prof. Green Principles of Optics Physics Prof. Brown Basic Mechanics Physics Prof. Brown Principles of Optics Math Prof. Green Basic Mechanics Math Prof. Green Vector Analysis Math Prof. Green Trigonometry

CTX

(58)

58

4 NF 4 NF

Décomposition:

COURSE TEACHER Physics Prof. Green Physics Prof. Brown Math Prof. Green

CT

COURSE TEXT

Physics Basic Mechanics Physics Principles of Optics Math Basic Mechanics Math Vector Analysis Math Trigonometry

CX

(59)

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)

Relation Troublion

(60)

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

(61)

61

DMs dans CTX DMs dans CTX

COURSE TEACHER TEXT

Physics Prof. Green Basic Mechanics Physics Prof. Green Principles of Optics Physics Prof. Brown Basic Mechanics Physics Prof. Brown Principles of Optics Math Prof. Green Basic Mechanics Math Prof. Green Vector Analysis Math Prof. Green Trigonometry

CTX

COURSE --> TEACHER | TEXT

CTX n'est pas en 4 NF

(62)

62

DMs dans CTX DMs dans CTX

COURSE TEACHER TEXT

Physics Prof. Green Basic Mechanics Physics Prof. Green Principles of Optics Physics Prof. Brown Basic Mechanics Physics Prof. Brown Principles of Optics Math Prof. Green Basic Mechanics Math Prof. Green Vector Analysis Math Prof. Green Trigonometry

CTX

COURSE --> TEXT | TEACHER

A --> B | C A --> C | B

(63)

63

Décomposition en 4 NF Dé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

(64)

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

(65)

65

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

COURSE TEACHER Physics Prof. Green Physics Prof. Brown Math Prof. Green

CT

COURSE TEXT

Physics Basic Mechanics Physics Principles of Optics Math Basic Mechanics Math Vector Analysis Math Trigonometry

CX

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

(66)

66

Interaction 4NF et 2NF Interaction 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ée

TT (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

(67)

67

Interaction 4NF et 2NF Interaction 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

(68)

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

plusOu 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. connus S (S#) avec tous les fournisseurs

(69)

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

(70)

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.

(71)

71

Sous-Classes & Nuls Sous-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…

(72)

72

Sous-Classes & Nuls Sous-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)

(73)

73

Sous-Classes & Nuls Sous-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 ?

(74)

74

Sous-Classes & Nuls Sous-Classes & Nuls

Schéma MsAccess 2007

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

(75)

75

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

(76)

76

Autres Cas Autres Cas

D’une manière générale

Les jointures externes: gauche, droite ou pleine sont souvent utiles pour décomposer sans perte

On 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

(77)

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...)

(78)

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

Références

Documents relatifs

It also re- quires the lake modelers to adapt the model results required by the regional climate model, specifically the heat, mass and momentum exchanges at the air-water

The increase of the winter cyclone activity in future climate scenarios over western Europe is responsible for the larger precipitation at the northern coast of the basin, though

New branching instabilities have been observed in the complete model includ- ing a mother colony, supporter cells and swarmers which has been devised based on former

This suggests that similar strategies (e.g. decomposition) are used by bilin- guals and monolingual adults when processing sequentially presented two-digit numbers. Sixty-four

As we deal only with order of magnitude cal- culations, we propose then, using this con- ventional unity and keeping only a power of ten expression, that 3 deep under- ground

IV ( ﺕﺎﻴﻝﺁ ﻡﺎﺠﺴﻨﻻﺍ : ﺕﺎﻴﻝﺁ ﻥﻋ ﻡﻼﻜﻝﺍ ﻥﺇ ﻡﺎﺠﺴﻨﻻﺍ ﺉﺭﺎﻘﻝﺍ ﺭﻭﺩ ﻥﻋ ﺙﻴﺩﺤﻝﺍ ﻰﻝﺇ ﺎﻨﺩﻭﻘﻴ ﺔﻴﻨﺒ ﻲﻓ ﺝﺭﺩﺘﻝﺎﺒ ﻙﻝﺫﻭ ،ﺎﻴﻝﻻﺩ ﺹﻨﻝﺍ ﺀﺍﺯﺠﺃ ﻁﺒﺭﻝ ﻪﻝﺫﺒﻴ ﻱﺫﹼﻝﺍ ﻲﻠﻴﻭﺄﺘﻝﺍ ﻩﺩﻬﺠﻭ

Finalement, il apparaît que les propriétaires amateurs poursuivent un objectif d’efficience. Nous supposons que le premier critère qu’ils prennent en compte serait

La méthode Best-Worst pose enfin le problème d’un choix forcé sur deux items (le plus et le moins important) dans le cas où le répondant ne perçoit aucune différence