La normalisation permet de construire des schémas optimaux en terme d’intégrité et de cohérence des données stockées.
Première forme normale
Une relation est en première forme normale si chaque n-uplet contient une seule valeur par attribut.
En d’autres termes, au niveau de l’extension d’une relation, à l’intersection d’une ligne et d’une colonne, on ne doit trouver qu’une et une seule valeur (qui peut être diverse : nombre, chaîne de caractères, date, image, etc.)
1. Notez que la jointure entre deux relations permet de constituer une troisième relation sur la base d’une expression (le plus souvent l’égalité) entre attributs des relations à mettre en jointure.
2. Remarquez que la projection d’une relation R sur un attribut a consiste à ne garder que la colonne a dans la relation résultat.
Figure 2-8 Schéma relationnel
PC[cpu, prixMoyen, delaiMoyen]
Etudiant[codetu, nomEtu, cpu#]
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
Deuxième forme normale
Une relation est en deuxième forme normale si elle est en première forme normale, d’une part, et si tout attribut n’appartenant pas à la clé primaire est en dépendance fonctionnelle élémentaire avec la clé, d’autre part.
Cette définition n’est exacte que si la relation ne possède qu’une clé candidate. En effet, consi-dérons la relation R[a,b,c,d,e] pour laquelle deux clés sont candidates (a,b et c,d) avec la DF aÆe. Si on choisit a,b comme clé primaire, la relation R[a,b,c,d,e]
n’est pas en deuxième forme normale, car dans la DF aÆe, l’attribut e, n’appartenant pas à la clé primaire, n’est pas en dépendance fonctionnelle élémentaire avec la clé. En revanche si on choisit c,d comme clé primaire, la relation R[c,d,a,b,e] est en deuxième forme normale mais ne sera pas en troisième forme normale (voir plus loin).
La relation Avions2 n’est pas en deuxième forme normale, car la dépendance immat Æ nomConst n’est pas une DF directe. Il suffit en effet de connaître le type de l’aéronef pour en déduire le constructeur. Les DF immatÆ typeAvion et typeAvion Æ nomConst sont directes.
Bidal F B727 F-CSTU 2500
Soutou G B747 F-PAUL 750
A340 F-ABDL 2500
Troisième forme normale
Une relation est en troisième forme normale si elle respecte la deuxième forme normale et si les dépendances fonctionnelles entre la clé primaire et les autres attributs sont directes.
Le seul inconvénient d’un schéma relationnel en troisième forme normale, c’est qu’il fait intervenir un nombre plus important de relations du fait de la décomposition. Cette inflation entraîne de nombreuses jointures coûteuses lors des interrogations de la base. En contrepartie, il n’existe plus de redondances d’informations, sources d’erreurs lors de manipulations sous SQL (ajout, modification ou suppression d’enregistrements).
Reprenons à présent l’exemple précédent de la relation R[c,d,a,b,e] avec la DF aÆe. Cette relation n’est pas en troisième forme normale, car il existe un graphe de transitivité avec les DF suivantes : c,dÆa ; c,dÆe et aÆ e. La DF c,dÆ e n’est pas directe. Le schéma en troisième forme normale est donc composé des deux relations R1[c,d,a#,b] et R2[a,e].
Considérons à présent l’exemple des vols. Le schéma relationnel en troisième forme normale fait apparaître six relations à partir d’une seule (Vols1). La relation Avions2 a été décompo-sée en Avions3 et Constructeurs3 de manière à éliminer la DF indirecte immat Æ nomConst.
Les colonnes compagnie, sexe et typeAvion ont disparu de la relation Vols3 car les DF :
● ncomp,nomPilote,immatÆcompagnie
● ncomp,nomPilote,immatÆsexe
● ncomp,nomPilote,immatÆtypeAvion
n’étaient pas minimales en partie gauche. Pour la première DF, par exemple, il suffit de connaître le numéro de compagnie pour avoir le nom de cette dernière. Cette DF se simplifie ainsi en ncompÆcompagnie (qui donne lieu à la définition de la relation Compagnie3).
Figure 2-11 Relation n’étant pas en deuxième forme normale Avions2
immat typeAvion nomConst
F-CLAR CRJ Canadian Regional Jet
F-ROMA A320 Airbus
F-GLDX A320 Airbus
F-CSTU B727 Boeing
F-STEF A330 Airbus
F-PAUL B747 Boeing
F-ABDL A340 Airbus
Forme normale de Boyce-Codd
Une relation est en forme normale de Boyce-Codd [COD 74] si elle est en troisième forme normale et que le seul déterminant (membre gauche des dépendances fonctionnelles) existant dans la relation est la clé primaire.
Au niveau conceptuel, cette forme est illustrée aux figures 1-72 et 1-73. L’exemple suivant décrit en extension la relation ProductionRegion. Les DF existantes sont :
● typeAvion,paysÆ region
Figure 2-12 Relations en troisième forme normale Compagnie3
● regionÆ pays
L’existence de la dernière DF permet de statuer que cette relation n’est pas en forme normale de Boyce-Codd.
La décomposition de cette relation en forme normale de Boyce-Codd entraîne la définition d’une relation additionnelle, car la DF à préserver est regionÆpays
Toute relation a une décomposition sans perte en forme normale de Boyce-Codd. Par contre, une telle décomposition ne préserve pas toutes les DF. Dans notre exemple, la DF typeA-vion,paysÆregion a été supprimée mais sans perte, car il est possible de la retrouver en réalisant une jointure entre les deux relations résultantes.
Quatrième forme normale
Une relation est en quatrième forme normale si elle respecte la forme normale de Boyce-Codd.
S’il n’existe pas de dépendances multivaluées ou si x ÆÆ y | z existe, alors tous les autres attributs a, b, c… de la relation sont en DF avec x (x Æ a, b, c…).
Une autre définition [TEO 94] précise qu’une relation est en quatrième forme normale si elle respecte la forme normale de Boyce-Codd. S’il existe une DM x ÆÆ y, elle est soit triviale (voir la section Dépendances multivaluées), soit x est clé pour la relation.
Figure 2-13 Relation n’étant pas en forme normale de Boyce-Codd ProductionRegion
typeAvion pays region
A320 France Blagnac
ATR-42 France Blagnac
A319 France Blagnac
A320 Allemagne Hambourg
A340 Allemagne Francfort
Figure 2-14 Relations en forme normale de Boyce-Codd AvionRegionBC
typeAvion region
A320 Blagnac
ATR-42 Blagnac
A319 Blagnac
A320 Hambourg
A340 Francfort
RegionPaysBC
region pays
Blagnac France
Hambourg Allemagne Francfort Allemagne
Nous avons donné un exemple de relations en quatrième forme normale dans la section Dépendances multivaluées (figure 2-5).
Puisqu’il existe la DM typeAvion ÆÆ qualif | nomPilote dans la relation QualifsAvions1, cette relation n’est pas en quatrième forme normale. La décomposition en deux relations, en quatrième forme normale, est détaillée figure 2-15.
Cinquième forme normale
Une relation est en cinquième forme normale (aussi appelée « forme normale de projection-jointure ») si chaque dépendance de projection-jointure respecte la deuxième forme normale et si les dépendances fonctionnelles entre la clé primaire et les autres attributs sont directes.