|
Normalisation
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 avec les lignes 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
au sens strict. 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 différentes
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 est impossible 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 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
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).
Retour Structuration des données
|