Principes de base de la normalisation de base de données
Si vous travaillez avec des bases de données depuis un certain temps, il y a de fortes chances que vous ayez entendu le terme normalisation. On peut vous demander : « Cette base de données est-elle normalisée ? » ou « Est-ce dans BCNF ? » La normalisation est souvent considérée comme un luxe pour lequel seuls les universitaires ont le temps. Cependant, comprendre les principes de normalisation et les appliquer à vos tâches quotidiennes de conception de base de données n’est pas si compliqué et cela peut grandement améliorer les performances de votre SGBD.
Dans cet article, nous allons introduire le concept de normalisation et introduire brièvement les paradigmes les plus courants.
Qu’est-ce que la standardisation ?
La normalisation est le processus d’organisation efficace des 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 tables) et garantir que les dépendances de données sont significatives (stocker uniquement les données liées dans des tables). Ces deux objectifs sont précieux car ils réduisent la quantité d’espace consommée par la base de données et garantissent un stockage logique des données.
Paradigme
La communauté des bases de données a développé un ensemble de lignes directrices pour assurer la standardisation des bases de données. Celles-ci sont appelées formes normales et sont numérotées de un (la forme normalisée la plus basse, appelée première forme normale ou 1NF) à cinq (cinquième forme normale ou 5NF). En pratique, vous verrez souvent 1NF, 2NF, 3NF et occasionnellement 4NF. La cinquième forme normale est rare et ne sera pas abordée dans cet article.
Avant de commencer à parler de paradigmes, il est important de souligner qu’il ne s’agit que de lignes directrices et de lignes directrices. Parfois, il est nécessaire de s’en écarter pour répondre aux besoins réels de l’entreprise. Cependant, lorsque des changements se produisent, tout impact éventuel qu’ils peuvent avoir sur votre système doit être évalué et les incohérences potentielles prises en compte. Cela dit, explorons la forme normale.
Première forme normale (1NF)
La première forme normale (1NF) définit les règles de base d’une base de données organisée :
- Éliminer les colonnes en double dans la même table.
- Créez des tables distinctes pour chaque ensemble de données associées et identifiez chaque ligne avec une colonne ou un ensemble de colonnes unique (clé primaire).
Deuxième forme normale (2NF)
La deuxième forme normale (2NF) aborde en outre le concept de déduplication :
- Toutes les exigences de la première forme normale sont remplies.
- Supprimez les sous-ensembles de données qui s’appliquent à plusieurs lignes d’un tableau et placez-les dans des tableaux distincts.
- Créez des relations entre ces nouvelles tables et leurs prédécesseurs à l’aide de clés étrangères.
Troisième forme normale (3NF)
La troisième forme normale (3NF) va encore plus loin :
- Toutes les exigences de la deuxième forme normale sont remplies.
- Supprimez les colonnes qui ne dépendent pas de la clé primaire.
Forme normale de Boyce-Codd (BCNF ou 3.5NF)
Le paradigme de Boyce-Codd, également connu sous le nom de « paradigme du tiers et demi (3.5) », ajoute une exigence :
- Satisfait à 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) a une exigence supplémentaire :
N’oubliez pas que ces directives de normalisation sont cumulatives. Pour qu’une base de données soit en 2NF, elle doit d’abord répondre à tous les critères d’une base de données 1NF.
Dois-je normaliser ?
Bien que la normalisation de la base de données soit généralement une bonne idée, ce n’est pas une exigence absolue. Dans certains cas, il est recommandé de violer intentionnellement les règles de normalisation.
Si vous voulez vous assurer que votre base de données est normalisée, commencez par apprendre à mettre votre base de données sous sa première forme normale.
Merci de nous en informer!
Dites-nous pourquoi !
D’autres détails ne sont pas assez difficiles à comprendre