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 E.F. Codd en 1970. Son objectif est d’éviter les anomalies dans les bases de données relationnelles :
-
Problèmes de mise à jour.
-
Suppression des redondances d’informations.
-
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 |
Rascalou |
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. Le simple fait de vouloir extraire les habitants d’une ville précise devra mettre en œuvre des procédures d’extraction de sous-chaînes sans fournir de garantie quant au résultat retourné.
Voici une représentation 1FN correcte :
Clients (NumCli, Nom, Prénom, Adresse, CodeP, 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 |
Rascalou |
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 SQL y parviendra...
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 que durant le processus de modélisation, un instant soit pris pour vérifier qu’il n’y a pas d’incohérences fonctionnelles.