27/02/22 © Robert Godin. Tous droits réservés .
1
II.1 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
Exemple de mauvaise conception
Redondance de données
– problèmes de mise à jour et d ’incohérence
Table VentenoCommande dateCommande noClient nomClient noTéléphone noArticle description prixUnitaire quantité
1 01/06/2000 10 Hugh Paycheck (999)999-9999 10 Cèdre en boule 10.99 10 1 01/06/2000 10 Hugh Paycheck (999)999-9999 70 Herbe à puce 10.99 5
1 01/06/2000 10 Hugh Paycheck (999)999-9999 90 Pommier 25.99 1
2 02/06/2000 20 Dollard Cash (888)888-8888 40 Epinette bleue 25.99 2
2 02/06/2000 20 Dollard Cash (888)888-8888 95 Génévrier 15.99 3
3 02/06/2000 10 Hugh Paycheck (999)999-9999 20 Sapin 12.99 1
4 05/06/2000 10 Hugh Paycheck (999)999-9999 40 Epinette bleue 25.99 1
4 05/06/2000 10 Hugh Paycheck (999)999-9999 50 Chêne 22.99 1
5 09/07/2000 30 Ye San Le Sou (777)777-7777 70 Herbe à puce 10.99 3 5 09/07/2000 30 Ye San Le Sou (777)777-7777 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
6 09/07/2000 20 Dollard Cash (888)888-8888 10 Cèdre en boule 10.99 5 6 09/07/2000 20 Dollard Cash (888)888-8888 40 Epinette bleue 25.99 1
27/02/22 © Robert Godin. Tous droits réservés .
3
Solution : décomposition
Table Client
noClient nomClient noTéléphone 10 Hugh Paycheck (999)999-9999 20 Dollard Cash (888)888-8888 30 Ye San Le Sou (777)777-7777 40 Le Comte Hasek (666)666-6666 50 Hafedh Lajoie (555)555-5555 60 Comtesse Hasek (666)666-6666 70 Coco McPoulet (444)444-4419 80 Dollard Cash (333)333-3333
Table VenteReste
noCommande dateCommande noClient noArticle description prixUnitaire 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
6 09/ 07/ 2000 20 10 Cèdre en boule 10.99 5
6 09/ 07/ 2000 20 40 Epinette bleue 25.99 1
7 15/ 07/ 2000 40 50 Chêne 22.99 1
7 15/ 07/ 2000 40 95 Génévrier 15.99 2
8 15/ 07/ 2000 40 20 Sapin 12.99 3
Table Vente
noCommande dateCommande noClient nomClient noTéléphone noArticle description prixUnitaire quantité 1 01/ 06/ 2000 10 Hugh Paycheck (999)999-9999 10 Cèdre en boule 10.99 10 1 01/ 06/ 2000 10 Hugh Paycheck (999)999-9999 70 Herbe à puce 10.99 5
1 01/ 06/ 2000 10 Hugh Paycheck (999)999-9999 90 Pommier 25.99 1
2 02/ 06/ 2000 20 Dollard Cash (888)888-8888 40 Epinette bleue 25.99 2
2 02/ 06/ 2000 20 Dollard Cash (888)888-8888 95 Génévrier 15.99 3
3 02/ 06/ 2000 10 Hugh Paycheck (999)999-9999 20 Sapin 12.99 1
4 05/ 06/ 2000 10 Hugh Paycheck (999)999-9999 40 Epinette bleue 25.99 1
4 05/ 06/ 2000 10 Hugh Paycheck (999)999-9999 50 Chêne 22.99 1
5 09/ 07/ 2000 30 Ye San Le Sou (777)777-7777 70 Herbe à puce 10.99 3 5 09/ 07/ 2000 30 Ye San Le Sou (777)777-7777 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
6 09/ 07/ 2000 20 Dollard Cash (888)888-8888 10 Cèdre en boule 10.99 5 6 09/ 07/ 2000 20 Dollard Cash (888)888-8888 40 Epinette bleue 25.99 1
7 15/ 07/ 2000 40 Le Comte Hasek (666)666-6666 50 Chêne 22.99 1
7 15/ 07/ 2000 40 Le Comte Hasek (666)666-6666 95 Génévrier 15.99 2
8 15/ 07/ 2000 40 Le Comte Hasek (666)666-6666 20 Sapin 12.99 3
II.1.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 VenteMalFoutue
Table ClientnoClient nomClient noTéléphone 10 Hugh Paycheck (999)999-9999 20 Dollard Cash (888)888-8888 30 Ye San Le Sou (777)777-7777 40 Le Comte Hasek (666)666-6666 50 Hafedh Lajoie (555)555-5555 60 Comtesse Hasek (666)666-6666 70 Coco McPoulet (444)444-4419 80 Dollard Cash (333)333-3333
Table VenteMalFoutue
noCommande dateCommande noArticle description prixUnitaire quantité
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
6 09/ 07/ 2000 40 Epinette bleue 25.99 1
7 15/ 07/ 2000 50 Chêne 22.99 1
7 15/ 07/ 2000 95 Génévrier 15.99 2
8 15/ 07/ 2000 20 Sapin 12.99 3
II.1.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
Table Vente
noCommande dateCommande noClient nomClient noTéléphone noArticle description prixUnitaire quantité
1 01/06/2000 10 Hugh Paycheck (999)999-9999 10 Cèdre en boule 10.99 10 1 01/06/2000 10 Hugh Paycheck (999)999-9999 70 Herbe à puce 10.99 5
1 01/06/2000 10 Hugh Paycheck (999)999-9999 90 Pommier 25.99 1
2 02/06/2000 20 Dollard Cash (888)888-8888 40 Epinette bleue 25.99 2
2 02/06/2000 20 Dollard Cash (888)888-8888 95 Génévrier 15.99 3
3 02/06/2000 10 Hugh Paycheck (999)999-9999 20 Sapin 12.99 1
4 05/06/2000 10 Hugh Paycheck (999)999-9999 40 Epinette bleue 25.99 1
4 05/06/2000 10 Hugh Paycheck (999)999-9999 50 Chêne 22.99 1
5 09/07/2000 30 Ye San Le Sou (777)777-7777 70 Herbe à puce 10.99 3 5 09/07/2000 30 Ye San Le Sou (777)777-7777 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
6 09/07/2000 20 Dollard Cash (888)888-8888 10 Cèdre en boule 10.99 5 6 09/07/2000 20 Dollard Cash (888)888-8888 40 Epinette bleue 25.99 1
7 15/07/2000 40 Le Comte Hasek (666)666-6666 50 Chêne 22.99 1
7 15/07/2000 40 Le Comte Hasek (666)666-6666 95 Génévrier 15.99 2
8 15/07/2000 40 Le Comte Hasek (666)666-6666 20 Sapin 12.99 3
noClient nomClient, noTéléphone
noCommande noClient, dateCommande
noCommande, noArticle quantité
noArticle description,
prixUnitaire
II.1.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é
27/02/22 © Robert Godin. Tous droits réservés .
9
Dépendance élémentaire
Dépendance fonctionnelle complètement non triviale
Dépendance fonctionnelle pleine (« full »)
É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é
27/02/22 © Robert Godin. Tous droits réservés .
11
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
rII.1.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
27/02/22 © Robert Godin. Tous droits réservés .
13
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
27/02/22 © Robert Godin. Tous droits réservés .
15
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
27/02/22 © Robert Godin. Tous droits réservés .
17
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
II.1.2.4 Couverture minimale
Une couverture minimale, notée min(D), satisfait :
– 1) Min(D) équivalent à D
– 2) Dépendances élémentaires et non superflues
– 3) Pas deux dépendances avec même
déterminant
27/02/22 © Robert Godin. Tous droits réservés .
19
Fonction Min(D)
Eliminer colonnes de droites superflues D = {
noClient noClient, nomClient, noTéléphone ;
noCommande noClient ;
noCommande dateCommande ;
noCommande, noArticle, noClient quantité ;
noArticle description, prixUnitaire ;
noCommande nomClient }
Fonction Min(D)...
Réduire les déterminants (utiliser Dérivable) D = {
noClient nomClient, noTéléphone ; noCommande noClient ;
noCommande dateCommande ;
noCommande, noArticle, noClient quantité ;
noArticle description,
27/02/22 © Robert Godin. Tous droits réservés .
21
Fonction Min(D)...
Eliminer les dépendances superflues (utiliser Dérivable)
D = {
noClient nomClient, noTéléphone ;
noCommande noClient ;
noCommande
dateCommande ;
noCommande, noArticle quantité ;
noArticle description, prixUnitaire ;
noCommande nomClient
}
27/02/22 © Robert Godin. Tous droits réservés .
22
Fonction Min(D)...
Union des dépendances de même déterminant
D = {
noClient nomClient, noTéléphone ;
noCommande noClient ;
noCommande
dateCommande ;
noCommande, noArticle
quantité ;
27/02/22 © Robert Godin. Tous droits réservés .
23
Fonction Min(D)...
Résultat final Min(D) = {
noClient nomClient, noTéléphone ;
noCommande noClient , dateCommande ;
noCommande, noArticle quantité ;
noArticle description,
prixUnitaire }
II.1.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
27/02/22 © Robert Godin. Tous droits réservés .
25
II.1.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 é lé m e n t a ir 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 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 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 2 Y
D é p e n d a n c e é lé m e n t a i r e q u i c a u s e d e la r e d o n d a n c e
T a b l e T
T a b l e T 1 T a b l e T 2
X = c l é é t r a n g è r e
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
27/02/22 © Robert Godin. Tous droits réservés .
27
II.1.3.1 Forme normale Boyce-Codd (FNBC)
Table en FNBC
–
Pour toute dépendance fonctionnelle élémentaire, 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
II.1.3.1.1 Algorithme de décomposition en FNBC
Procédure DécompositionFNBC (T, S) Entrée:
T : une table avec ses dépendances fonctionnelles élémentaires Sortie
S : un schéma relationnel pour T en FNBC DÉBUT
Ajouter T à S
TANT QU'il y a une table T dans S qui n'est pas en FNBC
Décomposer T selon une dépendance élémentaire X T Y qui ne respecte pas la condition de FNBC
et remplacer T par T1(U-Y) et T2(X Y) dans S FIN TANT QUE
FIN
27/02/22 © Robert Godin. Tous droits réservés .
29
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 é l é m e n t a i r 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 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 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 = {VenteReste, Client}
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 é l é m e n t a i r 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 p r i x U n i t a i r e n o C l i e n t d a t e C o m m a n d e
S = {VenteReste,
Client}
27/02/22 © Robert Godin. Tous droits réservés .
31
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 é l é m e n t a i r 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 q u a n t i t é
S = {Client, Commande, Article, LigneCommande}
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
27/02/22 © Robert Godin. Tous droits réservés .
33
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>>
II.1.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 é l é m e n t a i r 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
27/02/22 © Robert Godin. Tous droits réservés .
35
Troisième forme normale (3FN, third normal form)
Pour toute dépendance fonctionnelle élémentaire, X T Y, le déterminant X est une clé candidate de T ou Y fait partie d ’une clé candidate
Colonne première
– 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 é l é m e n t a i r e q u i
A d r e s s e
27/02/22 © Robert Godin. Tous droits réservés .
37
3 FN
Proposition. Il y a toujours une décomposition en 3FN qui préserve les dépendances.
Proposition. FNBC 3FN
II.1.3.2.1 Algorithme de synthèse pour la 3FN
Procédure Synthèse3FN (T, S) Entrée:
T : une table avec ses dépendances fonctionnelles D Sortie
S : un schéma relationnel pour T en 3FN qui préservent les dépendances DÉBUT
Calculer min(D);
S := Ø;
POUR chaque dépendance X Y dans min(D)
Ajouter une table T(X Y) à S; X devient une clé candidate de T FIN POUR;
Eliminer les tables dont le schéma est inclus dans une autre table de S;
SI aucune table de S ne contient une clé candidate de T
Ajouter une table avec les colonnes d'une clé candidate FIN SI;
Fusionner les tables dont les clés candidates se déterminent mutuellement
FIN T a b l e T
27/02/22 © Robert Godin. Tous droits réservés .
39
Exemple avec Ventes
D = {
noClient noClient, nomClient, noTéléphone ;
noCommande noClient ;
noCommande
dateCommande ;
noCommande, noArticle, noClient quantité ;
noArticle description, prixUnitaire ;
noCommande nomClient } Min(D) = {
noClient nomClient, noTéléphone ;
noCommande noClient , dateCommande ;
noCommande, noArticle quantité ;
noArticle description,
prixUnitaire }
Exemple (suite)
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 )
27/02/22 © Robert Godin. Tous droits réservés .
41
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 )
Résultat en 3FN mais pas en FNBC
II.1.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 é l é m e n t a i r 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 é l é m e n t a i r 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 } )
27/02/22 © Robert Godin. Tous droits réservés .
43
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
95 Génévrier 15.99 2
noArticle description prixUnitaire quantité
8 15/07/2000 40 Le Comte Hasek (666)666-6666
20 Sapin 12.99 3
Modèle relationnel étendu ou NF 2 (Non First Normal Form)
Colonnes à valeurs complexes
Table enchâssée
–
valeur = une table
–
Oracle8 : NESTED TABLE
Collection de valeurs
–
Oracle8 : VARRAY (Varying Array)
Valeur composée
–
Oracle8 : CREATE TYPE nomType AS...
27/02/22 © Robert Godin. Tous droits réservés .
45
Extensions objet
Table d ’objets
– Oracle8 : CREATE TABLE nom OF nomType
Colonne qui réfère à un objet
– Oracle8 : opérateur 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
27/02/22 © Robert Godin. Tous droits réservés .
47
II.1.3.4 Quatrième forme normale et dépendances multi-valué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 Patch Adams Marvin Minof Robin Williams Patch Adams Marvin Minof 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
27/02/22 © Robert Godin. Tous droits réservés .
49
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
m27/02/22 © Robert Godin. Tous droits réservés .
51
Généralisation directe du patron de décomposition
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 Y
D é p e n d a n c e m u l t i v a l u é e é l é m e n t a i r 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 1 T a b l e T 2
X 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
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 é l é m e n t a i r 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
27/02/22 © Robert Godin. Tous droits réservés .
53
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 Patch Adams Michael Farrell Patch Adams Marvin Minof Table ActeurFilm
titre nomActeur
La vie est belle Roberto Benigni La vie est belle Giorgio Cantarini La vie est belle Nicoletta Braschi Patch Adams Robin Williams Patch Adams Monica Potter
Dépendance multivaluée élémentaire
Une dépendance multivaluée A 1 , A 2 , …, A n T B 1 , B 2 , …, B m est élémentaire si :
il y a d'autres colonnes dans la table
{A
1, A
2, …, A
n} { B
1, B
2, …, B
m} = Ø
complètement non triviale
la partie gauche est minimale
dépendance pleine
27/02/22 © Robert Godin. Tous droits réservés .
55
Quatrième forme normale (4FN)
Pour toute dépendance multivaluée élémentaire, X T Y, le déterminant X est une clé candidate de T
Proposition
– 4FN FNBC
II.1.3.4.2 Algorithme de décomposition en 4FN
Procédure Décomposition4FN (T, S) Entrée:
T : une table avec ses dépendances multivaluées élémentaires Sortie
S : un schéma relationnel pour T en FNBC DÉBUT
Ajouter T à S
TANT QU'il y a une table T dans S qui n'est pas en 4FN
Décomposer T selon une dépendance élémentaire X T Y qui ne respecte pas la condition de FNBC
et remplacer T par T1(U-Y) et T2(X Y) dans S FIN TANT QUE
FIN
27/02/22 © Robert Godin. Tous droits réservés .
57
II.1.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
2 p2 1
Table Cours2
sigleCours idEtudiant codeProf
INF5180 1 p1
INF5180 2 p1
INF5180 1 p2
INF5180 2 p2
…
idEtudiant, codeProf
nbCours
II.1.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
27/02/22 © Robert Godin. Tous droits réservés .
59
Dépendance de jointure ou dépendance produit (join dependancy)
* {X
1,X
2,...,X
n} dans T si
– T =
X1(T)
X2(T) …
Xn(T)
Dépendance de jointure triviale
– si une des parties, X
i, est l'ensemble de toutes les colonnes de T
Proposition (DMV cas particulier d ’une DJ)
– X
TY *{(X Y), (X, U-X-Y)}
Cinquième forme normale (5FN)
Pour toute dépendance de jointure non triviale *{X 1 ,X 2 ,...,X n } dans T , chacun des X i contient une clé candidate de T
Proposition
– 5FN 4FN
27/02/22 © Robert Godin. Tous droits réservés .
61
II.1.3.6 Dépendance généralisée
Sous forme de tableau :
noFournisseur noArticle noOrganisme
f
1a
2o
1f
1a
1o
2f
2a
1o
1f
1a
1o
1II.1.3.7 Formale normale domaine-clé (FNDC)
Toutes les contraintes déductibles de
– domaines
– clés candidates
Considère aussi fragmentation
horizontale
27/02/22 © Robert Godin. Tous droits réservés .
63
II.1.3.8 Remarques au
sujet de la normalisation
Normalisé : pas toujours satisfaisant
Autres considérations de conception
– valeurs nulles
– colonnes dérivées
– choix des colonnes
– codage
– performance en lecture