Si vous travaillez avec des bases de données depuis un certain temps, il est probable que vous ayez entendu parler de normalisation. Peut-être que quelqu'un vous a demandé "Cette base de données est-elle normalisée?" ou "Est-ce que c'est en BCNF?" La normalisation est souvent considérée comme un luxe pour lequel seuls les universitaires ont le temps. Cependant, connaître les principes de la normalisation et les appliquer à vos tâches quotidiennes de conception de base de données n'est pas si compliqué que cela et cela pourrait considérablement améliorer les performances de votre SGBD.
Dans cet article, nous allons présenter le concept de normalisation et examiner brièvement les formes normales les plus courantes.
Qu'est-ce que la normalisation?
La normalisation consiste à organiser efficacement les données dans une base de données. Le processus de normalisation a deux objectifs: éliminer les données redondantes (par exemple, stocker les mêmes données dans plusieurs tableaux) et garantir que les dépendances de données sont pertinentes (stocker uniquement les données associées dans un tableau). Ces deux objectifs constituent des objectifs louables, car ils réduisent l’espace occupé par une base de données et garantissent que les données sont stockées de manière logique.
Les formes normales
La communauté des bases de données a développé une série de directives pour assurer la normalisation des bases de données. Celles-ci sont appelées formes normales et sont numérotées de un (la forme la plus basse de normalisation, appelée première forme normale ou 1NF) à cinq (cinquième forme normale ou 5NF). Dans les applications pratiques, vous verrez souvent 1NF, 2NF et 3NF avec occasionnellement 4NF. La cinquième forme normale est très rarement vue et ne sera pas discutée dans cet article.
Avant de commencer notre discussion sur les formulaires normaux, il est important de souligner que ce ne sont que des directives et des directives. Occasionnellement, il devient nécessaire de s’éloigner d’eux pour répondre aux besoins pratiques de l’entreprise. Toutefois, lorsque des variations se produisent, il est extrêmement important d’évaluer les éventuelles ramifications qu’elles pourraient avoir sur votre système et de prendre en compte les éventuelles incohérences. Cela dit, explorons les formes normales.
Première forme normale (1NF)
Première forme normale (1NF) définit les règles de base pour une base de données organisée:
- Éliminez les colonnes en double de la même table.
- Créez des tables distinctes pour chaque groupe de données liées et identifiez chaque ligne avec une colonne unique ou un ensemble de colonnes (clé primaire).
Deuxième forme normale (2NF)
La deuxième forme normale (2NF) aborde en outre le concept de suppression des données en double:
- Répondre à toutes les exigences de la première forme normale.
- Supprimez les sous-ensembles de données qui s'appliquent à plusieurs lignes d'une table et placez-les dans des tables séparées.
- Créez des relations entre ces nouvelles tables et leurs prédécesseurs grâce à l'utilisation de clés étrangères.
Troisième forme normale (3NF)
La troisième forme normale (3NF) va encore plus loin:
- Répondre à toutes les exigences de la deuxième forme normale.
- Supprimez les colonnes qui ne dépendent pas de la clé primaire.
Forme normale de Boyce-Codd (BCNF ou 3.5NF)
La forme normale de Boyce-Codd, également appelée «troisième et demi-forme normale (3.5)», ajoute une exigence supplémentaire:
- Répondre à toutes les exigences de la troisième forme normale.
- Chaque déterminant doit être une clé candidate.
Quatrième forme normale (4NF)
Enfin, la quatrième forme normale (4NF) comporte une exigence supplémentaire:
- Répondre à toutes les exigences de la troisième forme normale.
- Une relation est en 4NF si elle n'a pas de dépendances à valeurs multiples.
N'oubliez pas que ces instructions de normalisation sont cumulatives. Pour qu'une base de données soit en 2NF, elle doit d'abord remplir tous les critères d'une base de données 1NF.
Devrais-je normaliser?
Bien que la normalisation des bases de données soit souvent une bonne idée, ce n'est pas une exigence absolue. En fait, dans certains cas, le fait de violer délibérément les règles de la normalisation est une bonne pratique. Pour plus d'informations sur ce sujet, lisez Devrais-je normaliser ma base de données?
Si vous souhaitez vous assurer que votre base de données est normalisée, commencez par apprendre à mettre votre base de données sous la forme First Normal.