11 Théorie de la normalisation
Résolution de problèmes de redondance de données
Par décomposition
Caractérisation des problèmes
– dépendances fonctionnelles, multivaluées,...
Contexte relationnel
Transposable à d ’autres contextes
27/02/22 © Robert Godin. Tous droits réservés 2
Exemple de mauvaise conception
Table Vente
noComman
de dateComma
nde noClie
nt nomClient noTélépho
ne noArti
cle description prixUnita
ire quant
ité 1 01/06/2000 10 Luc Sansom (999)999-
9999 10 Cèdre en
boule 10.99 10
1 01/06/2000 10 Luc Sansom (999)999-
9999 70 Herbe à
puce 10.99 5
1 01/06/2000 10 Luc Sansom (999)999-
9999 90 Pommier 25.99 1
2 02/06/2000 20 Dollard
Tremblay (888)888-
8888 40 Epinette
bleue 25.99 2
2 02/06/2000 20 Dollard
Tremblay (888)888-
8888 95 Génévrier 15.99 3
3 02/06/2000 10 Luc Sansom (999)999-
9999 20 Sapin 12.99 1
4 05/06/2000 10 Luc Sansom (999)999-
9999 40 Epinette
bleue 25.99 1
4 05/06/2000 10 Luc Sansom (999)999-
9999 50 Chêne 22.99 1
5 09/07/2000 30 Lin Bô (777)777-
7777 70 Herbe à
puce 10.99 3
5 09/07/2000 30 Lin Bô (777)777-
7777 10 Cèdre en
boule 10.99 5
5 09/07/2000 30 Lin Bô (777)777-
7777 20 Sapin 12.99 5
6 09/07/2000 20 Dollard
Tremblay (888)888-
8888 10 Cèdre en
boule 10.99 5
6 09/07/2000 20 Dollard
Tremblay (888)888-
8888 40 Epinette
bleue 25.99 1
Redondance de données
Solution : décomposition
Table Vente
noComma
nde dateComma
nde noClient nomCli
ent noTéléphon
e noArti
cle descripti
on prixUnita
ire quantité
1 01/06/2000 10 Luc
Sanso m
(999)999-
9999 10 Cèdre
en boule
10.99 10
1 01/06/2000 10 Luc
Sanso m
(999)999-
9999 70 Herbe
à puce 10.99 5
1 01/06/2000 10 Luc
Sanso m
(999)999-
9999 90 Pommi
er 25.99 1
…
Table VenteReste
noComman
de dateComma
nde noClie
nt noArticl
e description prixUnita
ire quantit é
1 01/06/2000 10 10 Cèdre en
boule 10.99 10
1 01/06/2000 10 70 Herbe à puce 10.99 5
1 01/06/2000 10 90 Pommier 25.99 1
2 02/06/2000 20 40 Epinette
bleue 25.99 2
2 02/06/2000 20 95 Génévrier 15.99 3
3 02/06/2000 10 20 Sapin 12.99 1
4 05/06/2000 10 40 Epinette
bleue 25.99 1
4 05/06/2000 10 50 Chêne 22.99 1
5 09/07/2000 30 70 Herbe à puce 10.99 3
5 09/07/2000 30 10 Cèdre en
boule 10.99 5
5 09/07/2000 30 20 Sapin 12.99 5
Table Client noClie
nt nomClient noTélépho ne
10 Luc Sansom (999)999- 9999 20 Dollard
Tremblay (888)888- 8888
30 Lin Bô (777)777-
7777 40 Jean Leconte (666)666-
6666 50 Hafedh Lajoie (555)555-
5555 60 Comtesse
Hasek (666)666- 6666 70 Coco McPoulet (444)444-
11.1 Décomposition sans perte
Une décomposition binaire d'une table T en deux tables T 1 et T 2 est sans perte si :
– T = T 1 T 2
Exemple :
– Vente = Client VenteReste
27/02/22 © Robert Godin. Tous droits réservés .
5
Exemple de décomposition avec perte
Vente Client VenteMalFoutu e
Table Client
noClient nomClient noTéléphone
10 Luc Sansom (999)999-9999
20 Dollard Tremblay (888)888-8888
30 Lin Bô (777)777-7777
40 Jean Leconte (666)666-6666 50 Hafedh Lajoie (555)555-5555 60 Comtesse Hasek (666)666-6666 70 Coco McPoulet (444)444-4419 80 Dollard Tremblay (333)333-3333 Table VenteMalFoutue
noComman
de dateComma
nde noArtic
le description prixUnita
ire quanti té
1 01/06/2000 10 Cèdre en
boule 10.99 10
1 01/06/2000 70 Herbe à
puce 10.99 5
1 01/06/2000 90 Pommier 25.99 1
2 02/06/2000 40 Epinette
bleue 25.99 2
2 02/06/2000 95 Génévrier 15.99 3
3 02/06/2000 20 Sapin 12.99 1
4 05/06/2000 40 Epinette
bleue 25.99 1
4 05/06/2000 50 Chêne 22.99 1
5 09/07/2000 70 Herbe à
puce 10.99 3
5 09/07/2000 10 Cèdre en
boule 10.99 5
5 09/07/2000 20 Sapin 12.99 5
6 09/07/2000 10 Cèdre en
boule 10.99 5
11.2 Dépendance fonctionnelle
A 1 , A 2 , …, A n T B 1 , B 2 , …, B m
– pour toute instance de T
– mêmes valeurs pour les colonnes A
1, A
2, …, A
nmêmes valeurs pour les colonnes B
1, B
2, …, B
m Déterminant : partie gauche A 1 , A 2 , …, A n
Notation… Signifie réellement :
– {A
1, A
2, …, A
n}
T{B
1, B
2, …, B
m}
27/02/22 © Robert Godin. Tous droits réservés .
7
Exemples pour Vente
noClient nomClient, noTéléphone
noCommande noClient, dateCommande
noCommande, noArticle quantité
noArticle description, prixUnitaire
Table Vente
noComman
de dateComma
nde noClie
nt nomClient noTélépho
ne noArti
cle description prixUnita
ire quant
ité 1 01/06/2000 10 Luc Sansom (999)999-
9999 10 Cèdre en
boule 10.99 10
1 01/06/2000 10 Luc Sansom (999)999-
9999 70 Herbe à
puce 10.99 5
1 01/06/2000 10 Luc Sansom (999)999-
9999 90 Pommier 25.99 1
2 02/06/2000 20 Dollard
Tremblay (888)888-
8888 40 Epinette
bleue 25.99 2
2 02/06/2000 20 Dollard
Tremblay (888)888-
8888 95 Génévrier 15.99 3
3 02/06/2000 10 Luc Sansom (999)999-
9999 20 Sapin 12.99 1
4 05/06/2000 10 Luc Sansom (999)999-
9999 40 Epinette
bleue 25.99 1
4 05/06/2000 10 Luc Sansom (999)999-
9999 50 Chêne 22.99 1
5 09/07/2000 30 Lin Bô (777)777-
7777 70 Herbe à
puce 10.99 3
5 09/07/2000 30 Lin Bô (777)777-
7777 10 Cèdre en
boule 10.99 5
5 09/07/2000 30 Lin Bô (777)777-
7777 20 Sapin 12.99 5
6 09/07/2000 20 Dollard
Tremblay (888)888-
8888 10 Cèdre en
boule 10.99 5
6 09/07/2000 20 Dollard
Tremblay (888)888-
8888 40 Epinette
bleue 25.99 1
11.2.1 Inférence et choix des dépendances fonctionnelles
Considérer toutes les dépendances ?
Sinon lesquelles ?
Équivalences logiques
noClient nomClient, noTéléphone
noClient nomClient
noClient noTéléphone
éclatement
union
noCommande, noArticle
quantité
noCommande
quantité
Dépendance élémentaire
Dépendance fonctionnelle complètement non triviale
Dépendance fonctionnelle pleine (« full »)
Dépendance fonctionnelle X a élémentaire :
–
complètement non triviale &
–
pleine
noClient noClient, nomClient
noClient, noCommande
nomClient
Dépendances superflues (redondantes)
noClient nomClient, noTéléphone
noCommande noClient, dateCommande
noCommande nomClient Par transitivité
II.1.2.2 Axiomes d'Armstrong
A
1. Réflexivité
–
Si {B
1, B
2, …, B
m} {A
1, A
2, …, A
n} alors
–
A
1, A
2, …, A
nB
1, B
2, …, B
m A
2. Augmentation
–
Si A
1, A
2, …, A
nB
1, B
2, …, B
met
–
{D
1, D
2, …, D
p} {C
1, C
2, …, C
r} alors
–
A
1, A
2, …, A
n, C
1, C
2, …, C
r B
1, B
2, …, B
m, D
1, D
2, …, D
p A
3. Transitivité
–
Si A
1, A
2, …, A
nB
1, B
2, …, B
met
–
B
1, B
2, …, B
m C
1, C
2, …, C
ralors
–
A
1, A
2, …, A
n C
1, C
2, …, C
r11.2.3 Représentation par un diagramme à bulles
D = {noClient nomClient, noTéléphone ; noCommande noClient, dateCommande ; noCommande, noArticle quantité ; noArticle description, prixUnitaire}
n o C l i e n t
n o m C l i e n t n o T é l é p h o n e n o C o m m a n d e
n o A r t i c l e
d e s c r i p t i o n
p r i x U n i t a i r e
d a t e C o m m a n d e
Fermeture de X (X + )
X + = {x | X x}
Exemples
–
{noClient}
+= {noClient, nomClient, noTéléphone}
–
{noArticle}
+= {noArticle, description, prixUnitaire}
–
{prixUnitaire}
+= {prixUnitaire}
–
{ noCommande }
+= {noCommande, noClient, dateCommande, nomClient, noTéléphone}
–
{noCommande, noArticle}
+= {noClient, nomClient,
noTéléphone, noCommande, dateCommande, noArticle,
description, prixUnitaire, quantité}
Fonction Fermeture sur diagramme à bulles
Exemple : Fermeture(B, noCommande)
n o C l i e n t
n o m C l i e n t n o T é l é p h o n e n o C o m m a n d e
n o A r t i c l e
d e s c r i p t i o n
p r i x U n i t a i r e
d a t e C o m m a n d e
Fonction Fermeture ...
n o C l i e n t
n o m C l i e n t n o T é l é p h o n e n o C o m m a n d e
n o A r t i c l e
d e s c r i p t i o n p r i x U n i t a i r e
q u a n t i t é
d a t e C o m m a n d e
Fonction Fermeture...
{ noCommande }
+= {noCommande, noClient, dateCommande, nomClient, noTéléphone}
n o C l i e n t
n o m C l i e n t n o T é l é p h o n e n o C o m m a n d e
n o A r t i c l e
d e s c r i p t i o n p r i x U n i t a i r e
q u a n t i t é
d a t e C o m m a n d e
Fonction Dérivable
D |= XY si et seulement si Y X +
D |= noCommande nomClient ?
–
{ noCommande }
+= {noCommande, noClient, dateCommande, nomClient, noTéléphone}
–
{nomClient} {noCommande, noClient, dateCommande, nomClient, noTéléphone}
Fonction Dérivable(B, d) Entrée:
B: le diagramme à bulle de D d : XY
Sortie
Vrai si D |= d , faux sinon DÉBUT
X
+= Fermeture ( B , X );
Dérivable := Y X
+FIN
11.2.4 Couverture minimale (canonique)
Une couverture minimale, notée min(D), satisfait :
– 1) min(D) équivalent à D
– 2) Dépendances élémentaires
– 3) Aucune dépendance de min(D)
n'est déductible des autres
Fonction min(D) : étape 1 Éclater les parties droites
D = {noClient noClient, nomClient, noTéléphone ; noCommande noClient, noTéléphone ;
noCommande dateCommande ;
noCommande, noArticle, noClient quantité, noArticle;
noArticle description, prixUnitaire ;
noCommande nomClient } D
1= { noClient noClient;
noClient nomClient;
noClient noTéléphone ; noCommande noClient;
noCommande noTéléphone ; noCommande dateCommande ; noCommande, noArticle, noClient quantité ;
noCommande, noArticle, noClient
noArticle;
Fonction min(D) : étape 2
Éliminer les dépendances triviales
D
2= {noClient noClient;
noClient nomClient;
noClient noTéléphone ; noCommande noClient;
noCommande noTéléphone ; noCommande dateCommande ;
noCommande, noArticle, noClient quantité ; noCommande, noArticle, noClient noArticle;
noArticle description;
noArticle prixUnitaire ;
noCommande nomClient}.
Fonction min(D) : étape 3
Rendre les dépendances pleines
D 3 = {noClient nomClient;
noClient noTéléphone ; noCommande noClient;
noCommande noTéléphone ; noCommande dateCommande ;
noCommande, noArticle, noClient quantité ; noArticle description;
noArticle prixUnitaire ;
noCommande nomClient}.
Fonction min(D) : étape 4
Éliminer les dépendances déductibles des autres
Min(D) = {noClient nomClient;
noClient noTéléphone ; noCommande noClient;
noCommande noTéléphone ;
noCommande dateCommande ;
noCommande, noArticle quantité ; noArticle description;
noArticle prixUnitaire ;
11.2.5 Dépendances fonctionnelles et clés candidates
X est une clé candidate de T (U)
– U = X + et il n'y a pas de Y X tel que U = Y +
Pas d ’algorithmes efficaces (Maier, 83)
Heuristique
– partir des déterminants
Visualiser par diagramme à bulles
11.3 Normalisation
V e n t e R e s t e C l i e n t
n o C l i e n t
n o m C l i e n t n o T é l é p h o n e n o C o m m a n d e
n o A r t i c l e
d e s c r i p t i o n p r i x U n i t a i r e q u a n t i t é
d a t e C o m m a n d e
D é p e n d a n c e p l e i n e q u i c a u s e d e l a r e d o n d a n c e
n o C l i e n t
n o m C l i e n t n o T é l é p h o n e n o C o m m a n d e
n o A r t i c l e
d a t e C o m m a n d e n o C l i e n t
n o m C l i e n t n o T é l é p h o n e V e n t e
Patron général
d é t e r m i n a n t ( X )
c l é c a n d i d a t e Y
U : l 'e n s e m b l e d e t o u s l e s a t t r i b u t s d e T
X = c l é p r i m a i r e d e
T
2Y
D é p e n d a n c e p l e i n e q u i c a u s e d e l a r e d o n d a n c e
T a b l e T
T a b l e T
1T a b l e T
2X = c l é é t r a n g è r e
d a n s T Y
U : l 'e n s e m b l e d e t o u s l e s a t t r i b u t s d e T
11.3.1 Forme normale Boyce-Codd (FNBC)
Table en FNBC
–
Pour toute dépendance fonctionnelle non triviale et pleine, X
TY, le déterminant X est une clé candidate de T
–
Pour toute dépendance fonctionnelle non triviale, X
TY, le déterminant X est une superclé de T
Rappel : clé unique (unique key)ou superclé (superkey)
–
X est une clé unique (ou superclé) de T si deux lignes de T ne peuvent avoir les mêmes valeurs pour toutes les colonnes de X
Schéma relationnel est en FNBC
–
toutes les tables du schéma sont en FNBC
11.3.1.1 Algorithme de
décomposition en FNBC
Exemple avec Vente
V e n t e R e s t e C l i e n t
n o C l i e n t
n o m C l i e n t n o T é l é p h o n e n o C o m m a n d e
n o A r t i c l e
d e s c r i p t i o n p r i x U n i t a i r e q u a n t i t é
d a t e C o m m a n d e
D é p e n d a n c e p l e i n e q u i v i o l e F N B C
n o C l i e n t
n o m C l i e n t n o T é l é p h o n e n o C o m m a n d e
n o A r t i c l e d e s c r i p t i o n
d a t e C o m m a n d e n o C l i e n t
n o m C l i e n t n o T é l é p h o n e V e n t e
S = {Vente}
Suite
V e n t e R e s t e
C o m m a n d e n o C o m m a n d e
n o A r t i c l e
d e s c r i p t i o n p r i x U n i t a i r e q u a n t i t é
D é p e n d a n c e p l e i n e q u i v i o l e F N B C
V e n t e R e s t e 2
n o C l i e n t d a t e C o m m a n d e
n o C o m m a n d e
n o C l i e n t d a t e C o m m a n d e n o C o m m a n d e
n o A r t i c l e
d e s c r i p t i o n n o C l i e n t d a t e C o m m a n d e
S = {VenteReste,
Client}
Suite
A r t i c l e n o C o m m a n d e
n o A r t i c l e
d e s c r i p t i o n p r i x U n i t a i r e q u a n t i t é
D é p e n d a n c e p l e i n e q u i v i o l e F N B C
L i g n e C o m m a n d e
V e n t e R e s t e 2
n o A r t i c l e
d e s c r i p t i o n p r i x U n i t a i r e n o C o m m a n d e
n o A r t i c l e
d e s c r i p t i o n p r i x U n i t a i r e
S = {Client,
Commande,
VenteReste2}
Schéma final (S)
Client (noClient, nomClient, noTéléphone)
Commande(noCommande, dateCommande, noClient)
LigneCommande(noCommande, noArticle, quantité)
Article(noArticle, description, prixUnitaire)
V e n t e R e s t e C l i e n t V e n t e
V e n t e R e s t e 2 C o m m a n d e
A r t i c l e L i g n e C o m m a n d e
Résultat en UML
Commande
{Clé primaire : noCommande}
noCommande dateCommande noClient
<<Table>>
Client
{Clé primaire : noClient}
noClient nomClient noTéléphone
<<Table>>
LigneCommande
{Clé primaire : noCommande, noArticle}
noCommande noArticle
quantité
<<Table>>
Article
{Clé primaire : noArticle}
noArticle description prixUnitaire
<<Table>>
11.3.2 Troisième forme normale
FNBC ne préserve pas toujours DF
Table Adresse
rue ville codePostal Chambly Longueuil J4G 2L7 Chambly St-Hubert J3S 2R4 Taschereau Longueuil J4G 2L7 Taschereau St-Hubert J3S 4T8
Table CodeVille codePostal ville J4G 2L7 Longueuil Table CodeRue
codePostal rue J4G 2L7 Chambly
C o d e V i l l e r u e
v i l l e
c o d e P o s t a l
D é p e n d a n c e p l e i n e q u i v i o l e F N B C
C o d e R u e
A d r e s s e
v i l l e
c o d e P o s t a l r u e
v i l l e
c o d e P o s t a l D é p e n d a n c e n o n p r é s e r v é e
Troisième forme normale (3FN, third normal form)
Pour toute dépendance
fonctionnelle non triviale
et pleine, X T Y, le
déterminant X est une clé
candidate de T ou Y fait
partie d ’une clé candidate
Adresse est en 3FN
ville est première
– fait partie de la clé candidate {rue, ville}
r u e
v i l l e
c o d e P o s t a l
D é p e n d a n c e n o n t r i v i a l e e t
A d r e s s e
3 FN
Proposition. Il y a toujours une décomposition en 3FN qui préserve les dépendances.
Proposition. FNBC 3FN
11.3.2.1 Algorithme de
synthèse pour la 3FN
Exemple avec Ventes
D = {noClient noClient, nomClient, noTéléphone ; noCommande noClient, noTéléphone ;
noCommande dateCommande ;
noCommande, noArticle, noClient quantité, noArticle;
noArticle description, prixUnitaire ; noCommande nomClient }
min(D) = {noClient nomClient;
noClient noTéléphone ; noCommande noClient;
noCommande dateCommande ; noCommande, noArticle quantité ; noArticle description;
noArticle prixUnitaire }.
{noClient nomClient, noTéléphone ; noCommande noClient,
dateCommande ;
noCommande, noArticle, quantité ;
Regroupement des dépendances
de même déterminant
Par le diagramme à bulles
n o C l i e n t
n o m C l i e n t n o T é l é p h o n e n o C o m m a n d e
n o A r t i c l e
d e s c r i p t i o n p r i x U n i t a i r e
q u a n t i t é
d a t e C o m m a n d e
C l ie n t (n o C l ie n t, n o m C l ie n t, n o T é l é p h o n e ) C o m m a n d e ( n o C o m m a n d e , d a t e C o m m a n d e , n o C l ie n t )
L ig n e C o m m a n d e ( n o C o m m a n d e , n o A r t ic l e , q u a n t it é )
A r t ic l e ( n o A r t i c l e , d e s c r ip t io n , p r ix U n it a ir e )
Exemple avec Adresse
r u e v i l l e
c o d e P o s t a l
A d r e s s e ( r u e , v il l e , c o d e P o s t a l )
C o d e V il l e ( c o d e P o s t a l , v il l e )
11.3.3 Vue d'ensemble des formes normales
2FN : interdit dépendance partielles d ’une clé
n o C l i e n t
n o m C l i e n t n o T é l é p h o n e n o C o m m a n d e
n o A r t i c l e
d e s c r i p t i o n p r i x U n i t a i r e d a t e C o m m a n d e
D é p e n d a n c e q u i v i o l e 3 F N m a i s p a s 2 F N
V e n t e
D é p e n d a n c e q u i v i o l e 2 F N : d é p e n d a n c e p a r t i e l l e d e l a c l é { n o C o m m a n d e , n o A r t i c l e } )
1FN : valeurs atomiques
Table Vente avec table enchâssée (non en 1FN)
noCommande dateCommande noClient nomClient noTéléphone lignesDeLaCommande (table enchâssée)
noArticle description prixUnitaire quantité
10 Cèdre en boule 10.99 10 70 Herbe à puce 10.99 5 1 01/06/2000 10 Hugh Paycheck (999)999-9999
90 Pommier 25.99 1
noArticle description prixUnitaire quantité
40 Epinette bleue 25.99 2 2 02/06/2000 20 Dollard Cash (888)888-8888
95 Génévrier 15.99 3
noArticle description prixUnitaire quantité
3 02/06/2000 10 Hugh Paycheck (999)999-9999
20 Sapin 12.99 1
noArticle description prixUnitaire quantité
40 Epinette bleue 25.99 1 4 05/06/2000 10 Hugh Paycheck (999)999-9999
50 Chêne 22.99 1
noArticle description prixUnitaire quantité
70 Herbe à puce 10.99 3 10 Cèdre en boule 10.99 5 5 09/07/2000 30 Ye San Le Sou (777)777-7777
20 Sapin 12.99 5
noArticle description prixUnitaire quantité
10 Cèdre en boule 10.99 5 6 09/07/2000 20 Dollard Cash (888)888-8888
40 Epinette bleue 25.99 1
noArticle description prixUnitaire quantité
50 Chêne 22.99 1
7 15/07/2000 40 Le Comte Hasek (666)666-6666
Modèle relationnel étendu ou NF 2 (Non First Normal Form)
Colonnes à valeurs complexes
Table enchâssée
– Oracle8
NESTED TABLE
Valeur composée
– Oracle8/SQL:1999
CREATE TYPE nomType AS...
Extensions objet
Table d ’objets
– Oracle8/SQL:1999
CREATE TABLE nom OF nomType
Colonne qui réfère à un objet
– Oracle8/SQL:1999
REF
Restrictions de plus en plus fortes
5 F N 5 F N 5 F N 5 F N 5 F N 5 F N 4 F N F N B C
3 F N
2 F N
1 F N
11.3.4 Quatrième forme normale et dépendances multivaluées
Film est en FNBC mais pas en 4FN
Redondance due à dépendance multivaluée
– titre nomProducteur
– titre nomActeur
Table Film
titre nomProducteur nomActeur
La vie est belle Elda Ferri Roberto Benigni
La vie est belle Elda Ferri Nicoletta Braschi
La vie est belle Elda Ferri Giorgio Cantarini
La vie est belle Gianluigi Braschi Roberto Benigni
La vie est belle Gianluigi Braschi Nicoletta Braschi
La vie est belle Gianluigi Braschi Giorgio Cantarini
Patch Adams Barry Kemp Robin Williams
Patch Adams Barry Kemp Monica Potter
Patch Adams Michael Farrell Robin Williams
Patch Adams Michael Farrell Monica Potter
Dépendance multivaluée (multivalued dependency)
A 1 , A 2 , …, A n T B 1 , B 2 , …, B m
– à chacune de valeurs de A 1 , A 2 , …, A n
est associé un ensemble de valeurs
de B 1 , B 2 , …, B m sans relation directe
avec les autres colonnes C 1 , C 2 , …, C p
de la table
Définition formelle
(a 1 , a 2 , …, a n , b 1 , b 2 , …, b m , c 1 , c 2 , …, c p ) et (a 1 , a 2 , …, a n , b' 1 , b' 2 , …, b' m , c' 1 , c' 2 , …, c' p ) T (a 1 , a 2 , …, a n , b 1 , b 2 , …, b m , c' 1 , c' 2 , …, c' p ) T
('La vie est belle', 'EldaFerri', 'Robert Benigni') et ('La vie est belle', 'Gianluigi Braschi',
'Nicoletta Braschi') Film ('La vie est
belle', 'EldaFerri', 'Nicoletta Braschi') Film
Dépendances multivaluées
Proposition (règle du complément)
– A
1, A
2, …, A
n
TB
1, B
2, …, B
m A
1, A
2, …, A
n
TC
1, C
2, …, C
p C
1, C
2, …, C
pcorrespond aux autres colonnes de T
Proposition (DF cas particulier de DMV)
– A
1, A
2, …, A
n
TB
1, B
2, …, B
m A
1, A
2,
…, A
n
TB
1, B
2, …, B
mGénéralisation directe du patron de décomposition
déterm inant (X )
superclé Y
U : l'ensem ble de tous les attributs de T
X Y
D épendance m ultivaluée non triviale qui cause de la redondance
Table T
Table T1 T able T2
X Y
U : l'ensem ble de tous les attributs de T
Exemple : Film
t i t r e n o m P r o d u c t e u r
D é p e n d a n c e m u l t i v a l u é e n o n t r i v i a l e q u i v i o l e 4 F N
F i l m
n o m A c t e u r
t i t r e n o m P r o d u c t e u r
P r o d u c t e u r F i l m
t i t r e n o m P r o d u c t e u r
A c t e u r F i l m
Exemple (suite)
Table Film
titre nomProducteur nomActeur La vie est belle Elda Ferri Roberto Benigni La vie est belle Elda Ferri Nicoletta Braschi La vie est belle Elda Ferri Giorgio Cantarini La vie est belle Gianluigi Braschi Roberto Benigni La vie est belle Gianluigi Braschi Nicoletta Braschi La vie est belle Gianluigi Braschi Giorgio Cantarini Patch Adams Barry Kemp Robin Williams Patch Adams Barry Kemp Monica Potter Patch Adams Michael Farrell Robin Williams Patch Adams Michael Farrell Monica Potter Patch Adams Marvin Minof Robin Williams Patch Adams Marvin Minof Monica Potter
Table ProducteurFilm titre nomProducteur La vie est belle Elda Ferri
La vie est belle Gianluigi Braschi Patch Adams Barry Kemp Table ActeurFilm
titre nomActeur La vie est belle Roberto Benigni La vie est belle Giorgio Cantarini La vie est belle Nicoletta Braschi
Dépendance multivaluée triviale
A 1 , A 2 , …, A n T B 1 , B 2 , …, B m est triviale si :
Schéma(T) = {A
1, A
2, …, A
n} { B
1, B
2, …, B
m} ou
{ B
1, B
2, …, B
m} {A
1, A
2, …, A
n}
Quatrième forme normale (4FN)
Pour toute dépendance multivaluée non triviale, X T Y, le déterminant X est une superclé de T
Proposition
– 4FN FNBC
11.3.4.2 Algorithme de
décomposition en 4FN
11.3.4.3 Dépendances multivaluées emboîtées
sigleCours idEtudiant ne tient pas dans Cours mais « surgit » dans Cours2
!
Table CourssigleCours idEtudiant codeProf nbCours
INF5180 1 p1 2
INF5180 2 p1 3
INF5180 1 p2 4
INF5180 2 p2 1
…
Table NombreCours idEtudiant codeProf nbCours
1 p1 2
2 p1 3
1 p2 4
Table Cours2
sigleCours idEtudiant codeProf
INF5180 1 p1
INF5180 2 p1
INF5180 1 p2
idEtudiant, codeProf
nbCours
11.3.5 Cinquième forme normale
Décomposition n-aire (n > 2)
Table Fournisseur
noFournisseur noArticle noOrganisme
f
1a
2o
1f
1a
1o
2f
2a
1o
1f
1a
1o
1Table FournisseurArticle noFournisseur noArticle
f1 a2
f1 a1
f2 a1
Table FournisseurOrganisme noFournisseur noOrganisme
f1 o1
f1 o2
f2 o1
Table ArticleOrganisme noArticle noOrganisme
a2 o1
a1 o2
a1 o1