UML 2 pour les bases de données
114
© Éditions Eyrolles
La relation Vols1 respecte la règle de la première forme normale. À l’intersection de chaque
ligne et pour chaque colonne il n’existe qu’une seule valeur. Il y a cependant des redondances
(nom de la compagnie, sexe du pilote et type de l’aéronef). Dans cet exemple, des pilotes
peuvent voler pour le compte de différentes compagnies.
Si on devait définir une clé pour la relation Vols1, ce serait la concaténation de ncomp,
nomPilote, immat. Cette combinaison permet en effet d’identifier chaque ligne. Le nombre
d’heures de vol dépend au minimum des valeurs de ces trois attributs.
Les tables relationnelles sont nativement toutes en première forme normale, car les attributs de
type tableau ne sont pas autorisés au niveau de la base de données.
Les modèles de données ne respectant pas la première forme normale sont appelés modèles
NF2 (Non First Normal Form) [MAK 77]. Le modèle objet-relationnel permet de s’affranchir
de la première forme normale.
La figure 2-10 présente une relation NF2 équivalente à Vols1 (il en existe d’autres [SOU 99]).
Il existe ici une double imbrication : la collection Avions est imbriquée dans la collection
Pilotes. À l’intersection d’une ligne et d’une colonne, il y a plusieurs valeurs (à l’intersection
de la deuxième ligne et de la troisième colonne, il y a SanFilippo, Bidal et Soutou).
Figure 2-9 Relations en première forme normale
Vols1
ncomp
compagnie
nomPilote
sexe
typeAvion
immat
nbHeuresVol
1
Air-France
Bidal
F
CRJ
F-CLAR
600
1
Air France
Bidal
F
A320
F-ROMA
345
1
Air France
Bidal
F
A320
F-GLDX
120
1
Air France
Bidal
F
B727
F-CSTU
150
1
Air France
Labat
F
A320
F-GLDX
70
1
Air France
Labat
F
A320
F-ROMA
340
1
Air France
Labat
F
B727
F-CSTU
900
2
Quantas
SanFilippo
G
A330
F-STEF
7500
2
Quantas
SanFilippo
G
A320
F-GLDX
250
2
Quantas
Bidal
F
B727
F-CSTU
2500
2
Quantas
Soutou
G
B747
F-PAUL
750
2
Quantas
Soutou
G
A340
F-ABDL
2500
114
© Éditions Eyrolles
La relation Vols1 respecte la règle de la première forme normale. À l’intersection de chaque
ligne et pour chaque colonne il n’existe qu’une seule valeur. Il y a cependant des redondances
(nom de la compagnie, sexe du pilote et type de l’aéronef). Dans cet exemple, des pilotes
peuvent voler pour le compte de différentes compagnies.
Si on devait définir une clé pour la relation Vols1, ce serait la concaténation de ncomp,
nomPilote, immat. Cette combinaison permet en effet d’identifier chaque ligne. Le nombre
d’heures de vol dépend au minimum des valeurs de ces trois attributs.
Les tables relationnelles sont nativement toutes en première forme normale, car les attributs de
type tableau ne sont pas autorisés au niveau de la base de données.
Les modèles de données ne respectant pas la première forme normale sont appelés modèles
NF2 (Non First Normal Form) [MAK 77]. Le modèle objet-relationnel permet de s’affranchir
de la première forme normale.
La figure 2-10 présente une relation NF2 équivalente à Vols1 (il en existe d’autres [SOU 99]).
Il existe ici une double imbrication : la collection Avions est imbriquée dans la collection
Pilotes. À l’intersection d’une ligne et d’une colonne, il y a plusieurs valeurs (à l’intersection
de la deuxième ligne et de la troisième colonne, il y a SanFilippo, Bidal et Soutou).
Figure 2-9 Relations en première forme normale
Vols1
ncomp
compagnie
nomPilote
sexe
typeAvion
immat
nbHeuresVol
1
Air-France
Bidal
F
CRJ
F-CLAR
600
1
Air France
Bidal
F
A320
F-ROMA
345
1
Air France
Bidal
F
A320
F-GLDX
120
1
Air France
Bidal
F
B727
F-CSTU
150
1
Air France
Labat
F
A320
F-GLDX
70
1
Air France
Labat
F
A320
F-ROMA
340
1
Air France
Labat
F
B727
F-CSTU
900
2
Quantas
SanFilippo
G
A330
F-STEF
7500
2
Quantas
SanFilippo
G
A320
F-GLDX
250
2
Quantas
Bidal
F
B727
F-CSTU
2500
2
Quantas
Soutou
G
B747
F-PAUL
750
2
Quantas
Soutou
G
A340
F-ABDL
2500
