III.6.2. Normalisation des relations
En pointant la normalisation des relatons que sous-tendent ces
différentes relations, il s'agissait de mettre en exergue les anomalies
de mutation. Pour ce faire, pour éliminer les divers types de
dépendances, et donc éviter les anomalies de mutation, on
applique un processus de normalisation sur les différentes relations de
la base. Les étapes successives de ce processus imposent des
critères de plus en plus restrictifs aux tables normalisées:
? Une relation est en première forme normale
(notée 1NF) si les domaines de tous ses attributs sont des valeurs
atomiques (et non des ensembles, types énumérés ou
listes). De ce fait, tout attribut d'une relation 1NF doit donc être
monovalué. Bien attendu, la 1NF permet d'éliminer les domaines
composés. En sus, pour normaliser une table à la 1NF, il suffit
de créer un tuple distinct pour chaque valeur de l'attribut
multivalué. Cela introduit des redondances, mais la deuxième
forme normale permet d'y remédier.
? Plus précisément, une relation est en
deuxième forme normale (2NF) si elle est 1NF et si, de plus, tout
attribut non-clé dépend fonctionnellement de toute la clé
(et pas seulement d'une partie de celle-ci). Pour qu'une table soit 2NF, il
faut donc, si sa clé est composée (sous-entendu, de plusieurs
attributs), que tout autre attribut soit fonctionnellement dépendant de
la clé entière (on dit parfois qu'il y a dépendance
fonctionnelle totale). La 2NF garantit qu'aucun attribut n'est
déterminé seulement par
59
une partie de la clé. En somme, pour normaliser
à la 2NF une table possédant une clé composée, il
faut décomposer celle-ci en :
? une table formée des attributs dépendants
d'une partie de la clé, et de cette partie même.
? une seconde table formée de la clé
composée et des attributs restants :
Figure III.2 : Cas pratique de normalisation de la
2FN
? En suite, une relation est en troisième forme normale
(3NF) si elle est 2NF et si, de plus, tout attribut non-clé ne
dépend pas transitivement de la clé (ou, autrement dit, si tout
attribut non-clé ne dépend pas fonctionnellement d'un attribut
non-clé).
Dans ce cas, la 3NF permet d'éliminer les redondances
dues aux dépendances transitives. C'est-à-dire, pour normaliser
à la 3NF une table possédant une dépendance transitive, il
faut décomposer celle-ci en :
? une table formée de l'attribut redondant et de
l'attribut dont il dépend (nommé ici X); ce dernier devient la
clé de la nouvelle table,
? une seconde table formée de la clé, de
l'attribut X comme clé étrangère, et des autres attributs
:
Figure III.3 : Cas pratique de normalisation de la
3FN
Enfin et surtout, les formes normales 2NF et 3NF assurent
l'élimination des redondances parmi les attributs non-clé, mais
pas les redondances potentielles au sein d'attributs formant une clé
composite. Finalement, Boyce et Codd ont proposé une extension de la
3NF, il s'agit là d'une forme normale dite Boyce-Codd (BCNF).
De ce fait, une relation est en forme normale de Boyce-Codd
(BCNF) si, et seulement si, les seules dépendances fonctionnelles
élémentaires sont celles dans lesquelles une clé
détermine un attribut non-clé.
60
Plus simple que la 3NF, un peu plus restrictive, cette forme
est utile lorsqu'une table possède plusieurs clés candidates.
Plus précisément, lorsque les clés se chevauchent dans une
table, celle-ci risque de transgresser la forme normale de Boyce-Codd,
même si elle est en 3NF. Il faut alors la décomposer
d'après les clés candidates :
Figure III.4. Cas pratique de normalisation de la
BCFN
Cela étant, toute relation admet au moins une
décomposition en BCNF qui est sans perte; cependant, ne telle
décomposition ne préserve généralement pas les
dépendances fonctionnelles.
Retenons alors qu'il existe deux autres formes normales,
encore plus restrictives, mais qui se rencontrent bien moins
fréquemment. La quatrième (4NF), par exemple, est basée
sur les dépendances multivaluées.
|