Les formes normales
Introduction aux formes normales
Pour être parfaites, les relations doivent respecter certaines règles. Cet ensemble de règles se nomme les formes normales.
Cette théorie a été élaborée par Edgard Frank. Codd en 1970. Son objectif est d’éviter les anomalies dans les bases de données relationnelles :
-
les problèmes de mise à jour ;
-
la suppression des redondances d’informations ;
-
la simplification de certaines contraintes d’intégrité.
Pour parfaire une base de données relationnelle, il est nécessaire de connaître les trois premières formes normales et la forme normale dite Boyce-Codd ; les suivantes ne sont que des extensions peu usitées.
1. 1FN - Première forme normale
Une relation est en première forme normale si :
-
tous les attributs ne contiennent qu’une seule valeur atomique (non divisible) ;
-
les attributs ne contiennent pas de valeurs répétitives.
Exemple
Clients (NumCli, Nom, Prénom, Adresse, Téléphone)
Cette relation n’est pas en première forme normale, car Adresse n’est pas atomique. En effet, voici une représentation d’un fichier ainsi décrit :
NumCli |
Nom |
Prénom |
Adresse |
Téléphone |
1 |
Baptiste |
Jean-Luc |
25, rue de la forêt 12000 Rodez |
0565420000 |
2 |
Auguy |
Jean |
Impasse des lys 15000 Aurillac |
0471670000 |
3 |
Martin |
André |
2, rue droite 12000 Rodez |
0565450000 |
Cette représentation, si elle était mise en pratique, générerait un accès aux données plus lent. Pour extraire les habitants d’une ville précise, il faudrait mettre en œuvre des procédures d’extraction de sous-chaînes, sans garantie quant au résultat retourné.
Voici une représentation 1FN correcte :
Clients (NumCli, Nom, Prénom, Adresse, Code Postal, Ville, Téléphone)
NumCli |
Nom |
Prénom |
Adresse |
Code Postal |
Ville |
Téléphone |
1 |
Baptiste |
Jean-Luc |
25, rue de la forêt |
12000 |
Rodez |
0565420000 |
2 |
Auguy |
Jean |
Impasse des lys |
15000 |
Aurillac |
0471670000 |
3 |
Martin |
André |
2, rue droite |
12000 |
Rodez |
0565450000 |
Maintenant, récupérer les habitants d’une ville précise ne pose plus aucun problème, une simple requête...
Conclusion
L’étude des formes normales permet d’éviter certains pièges de conception risquant d’impacter la future base de données. Il est donc important, durant le processus de modélisation, de prendre le temps de vérifier qu’il n’y a pas d’incohérences fonctionnelles.