Normalisation de données
Introduction
La normalisation de données est le processus qui permet d’optimiser les bases de données afin qu’elles soient plus faciles à utiliser et que l’on puisse plus facilement disposer de ses données en cas de besoin.
Dans ce chapitre, nous verrons ce qu’est la normalisation de données, et pour cela nous commencerons par définir les concepts techniques qui nous aideront à mieux comprendre le reste des sujets à traiter.
Ensuite, nous expliquerons quelles sont les phases à réaliser pour normaliser une base de données.
Nous verrons quelles sont les formes normales de Boyce-Codd, considérées comme un standard quand on parle de normalisation.
Nous verrons également quelles sont les 12 règles de Codd, qui déterminent la fidélité d’un système de bases de données avec le modèle relationnel.
Finalement, nous recommanderons une série d’outils pour effectuer la normalisation de la base de données, avec quelques exemples pratiques.
Qu’est-ce que la normalisation de données ?
La normalisation de données est un processus de conception de bases de données relationnelles qui vise à réduire la redondance des données, ainsi qu’à réduire le nombre d’anomalies que les utilisateurs finaux peuvent rencontrer. Ces améliorations cherchent à augmenter l’efficacité et l’intégrité et à améliorer la maintenance des bases de données.
Le processus de normalisation consiste à organiser les données dans des tables, en utilisant des règles spécifiques pour répartir les attributs de manière logique et réduire les duplications.
L’objectif principal de la normalisation est de minimiser les anomalies de données, notamment les problèmes de mise à jour, d’insertion et de suppression, qui peuvent survenir lorsque les données sont mal structurées. Nous allons aborder le concept d’anomalie en détail dans ce chapitre.
La normalisation consiste à rendre la base de données plus efficace, afin que l’ensemble des utilisateurs puisse trouver et utiliser les informations de manière rapide et efficiente.
Pour mettre en place un système de normalisation, nous nous appuyons généralement sur une série de formes normales. Ces formes normales...
Définition des concepts techniques : types de clés, dépendances...
Définissons quelques concepts utiles lorsque nous parlons de normalisation.
1. Types de clés
Dans le chapitre Modélisation de données, nous avons pu voir en détail les différents types de clés d’un point de vue modélisation.
Nous allons maintenant aborder le sujet, mais cette fois dans une optique de normalisation, ce qui nous permet d’appliquer un optimum un peu différent pour les mêmes objets.
a. Clés primaires
Les clés primaires doivent exister dans chaque table, et c’est ainsi que nous devons pouvoir identifier de manière unique un enregistrement dans cette table.
Si, lorsque nous avons parlé de modélisation de base de données, nous avons vu que la création de clés primaires était facultative, mais recommandée, dans le cas d’une normalisation, nous sommes obligés de créer des clés primaires pour pouvoir considérer une base de données comme normalisée.
Ces clés primaires doivent pouvoir identifier clairement et de manière unique un enregistrement, assurer le contrôle de l’intégrité ainsi que faciliter l’ordre des informations.
b. Clés étrangères
Comme c’était le cas avec les clés primaires, dans un processus de normalisation, nous sommes obligés de créer des clés étrangères afin d’établir des relations entre les différentes tables ou entités de notre base...
Les phases de normalisation de la base de données
La normalisation dans une base de données peut être effectuée à différents stades de maturité. Il est possible que, dans le processus même de conception d’une base de données, nous nous soyons fixé l’objectif d’avoir une base de données normalisée, ce qui serait plus simple au niveau du traitement des données puisque cela nous permettrait de créer la base de données telle qu’au moment de sa conception.
Une autre possibilité, plus courante en pratique, est que l’on veuille normaliser une base de données qui est en production et qui contient donc des données dans ses tables.
Un processus de normalisation de données peut être divisé en plusieurs phases :
-
Le choix de notre objectif. C’est la phase la plus importante. Avant de commencer le processus de normalisation, nous devons déterminer l’objectif que nous voulons atteindre. Pour cela, il est important de comprendre les différentes formes normales dont nous disposons afin de définir les lignes directrices à suivre pour atteindre notre objectif.
-
L’analyse des données. Dans cette phase, nous procédons à une analyse exhaustive de notre base de données, qui nous permet de comprendre quelles actions entreprendre pour atteindre...
Les formes normales
Nous allons définir quelles sont les différentes formes normales et comment nous pouvons appliquer des exemples pratiques pour pouvoir les identifier et transformer notre base de données à la forme normale souhaitée.
En règle générale, nous pouvons définir les formes normales comme un moyen de standardiser nos bases de données, afin que nous puissions accéder à nos informations de manière plus optimale en fonction de nos objectifs.
Une base de données est généralement considérée comme normalisée si elle suit la troisième forme normale (3NF). Cependant, les exigences de normalisation de la base de données peuvent varier en fonction de nos besoins.
1. Base de données non normalisée
Avant d’introduire les différentes formes normales, nous considérons la possibilité que notre base de données dans son état actuel ne corresponde à aucune forme normale, c’est ce qu’on appelle une base de données non normalisée.
Nous pouvons considérer, avant de procéder à l’analyse nécessaire, que notre base de données, ou notre ensemble de tables à analyser, appartient à ce groupe de bases de données non normalisées.
Du moment que notre base de données respecte au moins la première forme normale (1NF), que nous décrirons ci-après, nous pouvons déjà considérer que notre base de données est normalisée et n’appartient donc plus à cette catégorie.
Une base de données qui n’a pas encore été analysée est considérée comme une base de données non normalisée, car nous ne pouvons pas déterminer son niveau de normalisation avant son analyse.
2. La première forme normale (1NF)
Les étapes pour normaliser, autrement dit pour s’assurer qu’une table est en première forme normale, sont les suivantes :
1. Nous devons nous assurer qu’il n’y a pas de groupes répétitifs dans les tables individuelles. Chaque donnée doit être considérée comme atomique, en évitant les répétitions.
2. La deuxième étape nous...
Règles de Codd
Nous définissons ici quelles sont les règles de Codd. Edgar F. Codd a défini une série de douze règles, appelées règles de Codd, qui servent de base pour définir les normes qu’une base de données doit respecter pour être considérée comme une base de données relationnelle.
Nous rappelons qu’une base de données est tout simplement un ensemble de données structurées, mais la définition de la base de données ne détermine pas comment ces données doivent être structurées ni quelle relation elles doivent avoir entre elles.
Codd s’est rendu compte qu’il n’y avait pas de consensus concernant la normalisation des bases de données, et c’est pourquoi il a défini ces règles qui sont utilisées aujourd’hui comme une norme en matière de normalisation.
Un système pourrait être considéré comme plus ou moins relationnel en fonction de la quantité de règles de Codd qu’il respecte.
1. Règle 0 : règle fondamentale
La première règle, ou plutôt la règle 0, est connue sous le nom de règle fondamentale. Cette règle définit que pour qu’une base de données soit considérée comme une base de données relationnelle, elle doit être capable de gérer des données uniquement en utilisant ses capacités relationnelles.
En d’autres termes, on ne peut pas normaliser une base de données en utilisant les règles de Codd et donc la considérer comme relationnelle si le système de gestion de base de données ne dispose pas des mécanismes nécessaires pour réaliser ce type de relation.
Par exemple, si notre système de gestion de base de données a la capacité de créer des clés primaires, des clés étrangères et des relations entre les tables, c’est une bonne indication que nous nous conformons à la règle fondamentale de Codd.
Dans le cas contraire, à moins qu’il existe un autre mécanisme pour établir des relations entre les tables, on parlera de base de données mais pas de base de données relationnelle.
2. Règle...
Outils pour effectuer la normalisation de la base de données
Voici quelques outils qui peuvent être utilisés pour effectuer la normalisation d’une base de données. Certains nous donnent une série de recommandations à suivre pour aboutir au processus de normalisation, tandis que d’autres servent simplement de support pour disposer des informations nécessaires à ce processus.
1. Normalization Tool
Créé par la Griffith University, cet outil gratuit aide les étudiants à comprendre les différentes formes normales, les dépendances fonctionnelles et les étapes à suivre lors de la normalisation d’une base de données.
Cet outil a été créé à des fins académiques, il peut donc être utile non seulement pour normaliser une base de données de production, mais aussi pour comprendre le fonctionnement du processus de normalisation de manière plus pratique qu’à travers un manuel.
L’outil est disponible via le lien suivant : http://www.ict.griffith.edu.au/normalization_tools/normalization/index.html
2. Table Analyzer
Table Analyzer est un outil spécifique de Microsoft SQL Server qui permet d’effectuer automatiquement une analyse sur la normalisation des données.
Cet outil est disponible dans le client fourni par Microsoft SQL Server pour se connecter à...