Forme normale

Les formes normales (ou database normalization en anglais) sont un ensemble de bonnes pratiques permettant de concevoir des modèles de bases de données sans redondance et en même temps robustes.

Les formes normales permettent de décomposer et d’organiser logiquement les données à informatiser afin de manipuler des données « atomiques » (c’est à dire qu’on ne peut plus subdiviser) et des relations entre les différentes données. Concrètement, les formes normales sont un ensemble de règles qui permettent de créer des bases de données avec des tables contenant uniquement les colonnes nécessaires et des relations correctement modélisées.

La normalisation permet de réduire voir même d’éliminer les doublons, de minimiser les incohérences lors des mises à jour, de simplifier les requêtes.

Il existe plusieurs niveaux de normalisation. Un peu à la manière des poupées russes, chaque forme normale hérite des contraintes de sa forme normale précédente et chaque niveau est plus exigeant que le précédent.

Les différentes formes normales vont de 1FN (première forme normale) à 6FN (sixième forme normale) mais ce sont surtout les 3 premières qui sont utilisées pour les « petites » bases de données. Les bases de données relationnelles sont de troisième forme normale, elles respectent les formes normales 1FN, 2FN et 3FN.

Les autres formes normales peuvent être intéressantes au cas par cas mais plus la normalisation augmente, plus l’impact sur les performances se fait ressentir.

La normalisation permet donc d’avancer dans la conception de bases de données avec un garde-fou. Ceci-dit, pour des raisons de performances, après avoir imaginé la structure de sa base de données, il arrive que l’on doive dénormaliser afin de gagner en performance ou en facilité de maintenance.