Normalisation des relations

La théorie de la normalisation est liée au modèle de données relationnel créé par Codd en 1970. Ce model est basé sur la notion de relation.

Le modèle de données relationnel
  • Notion de relation

Une relation est un tableau à 2 dimensions, dont les colonnes représentent les propriétés de la relation (les attributs ou champs), et dont les lignes correspondent aux différentes valeurs (occurrences) de ces attributs. Toutes les valeurs d'un attribut ne peuvent appartenir qu'à un seul domaine : entier, réel, chaîne de caractères..., et toutes les lignes doivent être différentes, d'où la notion de clé d'une relation.

  • Clé d'une relation

La clé d'une relation est le sous-ensemble minimum des attributs qui permet d'identifier chaque ligne de manière unique. Toute relation doit obligatoirement avoir une clé.

  • Schéma d'une relation

Il correspond à la définition en "intention" de la relation et se compose du nom de la relation suivie de la liste des attributs qui composent cette relation, les attributs clés étant soulignés. Soit, par exemple la relation R composée des attributs A1, A2 et A3 dont le schéma est : R(A1,A2,A3).

Le tableau ci-dessous correspond à une "extension" possible de la relation :

A1 A2 A3
1 Libellé 1 50
2 Libellé 2 60
3 Libellé 3 50
...    

La notion de relation est donc simple et intuitive, mais conduit à de nombreuses anomalies si on l'applique telle quelle. Les anomalies les plus importantes sont les suivantes :

  • absence de liaisons sémantiques entre les données.
  • redondance des données.
  • comportements "anormaux" des relations lors de mises à jour : modifications, suppressions.

Nous utiliserons, pour illustrer les notions présentées, les attributs suivants qui interviennent dans la gestion d'enseignements :

Mnemonique Libellé Domaine
Coefficient Coefficient de la matière Entier
Nomat Nom de la matière Chaîne(30)
Nomens Nom de l'enseignant Chaîne(30)
Numat N° de la matière Entier
Numens N° de l'enseignant Entier

Nous supposerons qu'un enseignant n'enseigne que dans une matière, mais qu'une matière est enseignée par plusieurs enseignants. Il y a 5 enseignants par matière et il y a 10 matières dans le cursus. Nous définissons, sur ces attributs, la relation ENSEIGNEMENTS.

ENSEIGNEMENTS(Numens, Nomens, Numat, Nomat, Coefficient)

"Problèmes" de la relation ENSEIGNEMENTS

Nous remarquons tout d'abord que cette relation satisfait complètement la définition de base et peut donc être implantée et utilisée telle quelle dans un SGBD relationnel. En effet, les valeurs des attributs n'appartiennent qu'à un seul domaine et la clé de la relation (Numens) permet de distinguer de manière unique chaque ligne.
Cette relation obtenue, sans structuration des informations, présente toutefois de nombreuses anomalies.

  • Au niveau sémantique

La clé de cette relation est le numéro de l'enseignant (Numens). Cela veut dire que cet attribut identifie, caractérise, la relation et donc que tous les autres attributs de cette relation sont des propriétés liées sémantiquement à cet attribut. Cela implique, entre autres, que le coefficient d'une matière, ou son nom, sont des caractéristiques directes d'un enseignant, ce qui est, bien évidemment, inexact.
Ce problème de modélisation provient du fait que la relation ENSEIGNEMENTS ne représente pas un objet, une entité, du monde réel mais un amalgame de plusieurs entités.

  • Au niveau de la redondance d'informations

Dans la relation ENSEIGNEMENTS, les caractéristiques d'une matière (son nom et son coefficient) devront être répétées autant de fois qu'il y a d'enseignants dans la matière. Dans notre exemple 5 fois. Cette répétition, qui peut être évitée, va entraîner des risques de mise à jour partielle des données donc des possibilités d'incohérence.

La taille, en caractères, nécessaire pour stocker cette relation est la suivante : 5*10*(2+30+2+30+2)= 3300

Nous avons considéré qu'un entier était représenté sur 2 octets.

  • Au niveau des mises à jour

-Il n'est pas possible de saisir les caractéristiques d'une matière si elle n'est pas rattachée à au moins un enseignant. En effet, cela voudrait dire que la clé de la relation (Numens) aurait la valeur NULL ce qui est interdit par la contrainte sur l'unicité de la clé.

-S'il ni a qu'un seul enseignant pour une matière, le départ de cet enseignant implique la suppression de toutes les informations de la relation pour cet enseignant et donc, dans ce cas, de celles qui sont relatives à la matière.

Toutes ces anomalies proviennent du fait que la relation ENSEIGNEMENTS n'est pas sous une forme "normale".

Normalisation des relations

La mise sous une forme "normale" des relations, ou normalisation, vise à supprimer tous les comportements anormaux décrits ci-dessus, et repose sur la notion de dépendance fonctionnelle dont nous donnons à nouveau la définition :

  • Dépendance fonctionnelle (DF)

On dit qu'il existe une dépendance fonctionnelle entre un attribut A1 et un attribut A2, on note A1 -> A2, si connaissant une valeur de A1 on ne peut lui associer qu'une seule valeur de A2. On dit aussi que A1 détermine A2. A1 est la source de la dépendance fonctionnelle et A2 le but.

Dans notre exemple, nous avons les DF suivantes :

Numens -> Nomens, Numat, Nomat, Coefficient
Numat -> Nomat, Coefficient

  • Dépendance fonctionnelle élémentaire

On dit qu'une dépendance fonctionnelle est élémentaire si la source de la DF ne comporte pas d'attributs superflus. La question sur l'élémentarité d'une DF ne doit donc se poser que lorsque la partie gauche de la DF comporte plusieurs attributs.

Dans notre exemple, toutes les DF sont élémentaires. Par contre, si nous avons les DF suivantes :

A, B -> C
A -> C

La dépendance fonctionnelle A, B -> C n'est pas élémentaire puisque B est superflu.

  • Dépendance fonctionnelle directe

On dit que la dépendance fonctionnelle A -> B est directe s'il n'existe aucun attribut C tel que l'on puisse avoir A -> C et C -> B. En d'autres termes, cela signifie que la dépendance entre A et B ne peut pas être obtenue par transitivité.

Dans notre exemple, la DF : Numat -> Nomat, Coefficient est directe. Par contre la DF
Numens -> Nomat n'est pas directe.

Nous avons en effet : Numens -> Numat et Numat -> Nomat.

Les formes normales
  • Première forme normale (1FN)

On dit qu'une relation est en 1FN si tous les attributs qui la compose sont non décomposables.
La relation ENSEIGNEMENTS est en 1FN.

  • Deuxième forme normale (2FN)

On dit qu'une relation est en 2FN si elle est en 1FN et si toutes les DFs entre la clé et les autres attributs sont élémentaires.
La relation ENSEIGNEMENTS est en 2FN.

  • Troisième forme normale (3FN)

On dit qu'une relation est en 3FN si elle est en 2FN et si toutes les DFs entre la clé et les autres attributs sont élémentaires et directes.
La relation ENSEIGNEMENTS n'est pas en 3FN.

  • Forme normale Boyce-Codd (FNBC)

On dit qu'une relation est en FNBC si elle est en 3FN et si les seules DFs qui existent sont celles qui relient la clé aux autres attributs non-clé.
La relation ENSEIGNEMENTS n'est pas en FNBC.

Relations en 3FN de notre exemple

Les problèmes de la relation ENSEIGNEMENTS proviennent du fait que cette relation est en 2FN. Pour élimer les comportements anormaux, il est nécessaire de structurer les attributs de cette relation de manière à la décomposer en plusieurs relations en 3FN.
Pour construire les relations en 3FN relatives à notre exemple, nous partons de l'ensemble des DFs :

Numens -> Nomens, Numat, Nomat, Coefficient
Numat -> Nomat, Coefficient

Après éliminations des transitivités, nous obtenons :

Numens -> Nomens, Numat
Numat -> Nomat, Coefficient

Ce qui nous donne les relations suivantes :

ENSEIGNANT(Numens, Nomens, Numat)
MATIERE(Numat, Nomat, Coefficient)

Ces deux relations sont en FNBC.

Pour des informations détaillées sur le processus de conception, se référer, dans ces pages, à la rubrique Conception BD.

Avantages des relations en 3FN (FNBC)
  • Au niveau sémantique

Les 2 relations précédentes correspondent à de véritables objets, entités, du monde réel. Les attributs propriétés de chaque relation sont bien des caractéristiques directes de la clé de la relation associée.

  • Au niveau de la redondance d'informations

Les informations caractéristiques d'une matière (son nom et son coefficient) ne seront présentes qu'une seule fois et non 5 fois comme dans la relation ENSEIGNEMENTS.
La redondance d'information est donc réduite au strict minimum, sans perte d'information, ce qui limite les risques d'incohérence.

De plus, la taille des données est la suivante :

La taille de la relation ENSEIGNANT : 5*10*(2+30+2)= 1700
La taille de la relation MATIERE : 10*(2+30+2)= 340

La taille de la base de données est donc de 2040 caractères, soit une diminution de l'ordre de 40% par rapport à la base de données ENSEIGNEMENTS (3300 caractères) , sans perte d'informations.

  • Au niveau des mises à jour

-Il est tout à fait possible de saisir les caractéristiques d'une matière même si elle n'est pas rattachée à un enseignant. La saisie est réalisée uniquement dans la relation MATIERE.

-S'il ni a qu'un seul enseignant pour une matière, le départ de cet enseignant implique la suppression des informations relatives à cet enseignant (une ligne de la relation ENSEIGNANT) et non de celles qui sont relatives à la matière.

Les 2 relations en 3FN, ENSEIGNANT et MATIERE, constituent donc la meilleure représentation possible pour les données de notre exemple.

La construction d'une structure de données "optimale" passe donc par la détermination des relations en 3FN (FNBC) , construites à partir de l'ensemble des données de base.

La démarche de conception de bases de données (Conception BD) présentées dans ces pages, permet d'obtenir directement des relations en 3FN (FNBC).

------------------------------------
Il existe 4 autres formes normales : 4 FN, 5 FN, FNDC, 6 FN qui permettent d'éviter certains types de redondance.
Concevoir des bases de données qui devront être utilisées dans un environnement réel (des centaines d'accès concurrents, des dizaines de tables composées de milliers de lignes...) implique très fréquemment de faire des "ajustements" entre la structure idéale, issue d'une approche purement théorique, et la structure qui sera implémentée. 
La conception de bases de données en 3 FN (FNBC) représente un compromis tout à fait acceptable qui permet de construire des bases de données cohérentes pouvant être utilisées telles quelles en milieu réel.
-------------------------------------


Retour Structuration des données