Part 4
NORMALISATION
Problématique
Mélanger dans une même relation des informations relatives à
plusieurs entités entraîne, en général des redondances
d’information qui provoquent les anomalies suivantes:
anomalies d’insertion,
anomalies de mise à jour,
anomalies de suppression.
Prof. Asmaa El Hannani 2ITE-S1 327
1
Exemple
Cette relation qui décrit des livres et leurs éditeurs, contient des
redondances provoquant les anomalies suivantes :
insertion : il n’est pas possible d’insérer un livre sans connaître son éditeur.
Attribuer une valeur nulle aux attributs éditeur et pays violerait l’intégrité
d’entité : un attribut appartenant à la clé, ne doit pas avoir de valeur nulle.
mise à jour : si un éditeur change de pays, il faut modifier ce pays pour chacun
des livres qu’il a édités.
suppression : si l’unique livre publié par un éditeur est supprimé, l’information
sur cet éditeur est perdue. Attribuer une valeur nulle aux attributs isbn et titre,
violerait l’intégrité d’entité.
Prof. Asmaa El Hannani 2ITE-S1 328
Normalisation
La solution à ces problèmes consiste à normaliser la relation
en cause.
Un schéma relationnel normalisé doit répondre aux
exigences minimales suivantes :
Non redondance: un attribut n’appartient qu’à une seule
relation, donc à une seule table, à moins qu’il n’agisse comme clé
étrangère pour assurer l’association avec une autre table ;
Cohérence: les attributs qui décrivent le même objet
appartiennent à la même table et dépendent chacun
fonctionnellement et totalement de la clé primaire de la table.
Prof. Asmaa El Hannani 2ITE-S1 329
2
La normalisation
La normalisation consiste en des méthodes de décomposition
des relations.
Cette décomposition repose sur l'analyse de dépendances entre
attributs qui sont à l'origine de phénomènes de redondance.
Par exemple, la dépendance entre l’ISBN d’un livre et son titre
ou bien entre le nom d’un éditeur et son pays.
Prof. Asmaa El Hannani 2ITE-S1 330
Dépendances fonctionnelles
Un attribut b dépend fonctionnellement d’un attribut a si à une
valeur de a correspond au plus une valeur de b. La
dépendance fonctionnelle est notée a b.
Le membre droit de l’écriture s’appelle le dépendant, le
membre gauche s’appelle le déterminant.
Prof. Asmaa El Hannani 2ITE-S1 331
3
Exemples
Supposons les exemples suivants, qui concernent des pilotes ayant
un numéro, un nom, une fonction (copilote, commandant,
instructeur…) :
numPilote,journbHeuresVol est une DF, car à un couple
(numPilote, jour) correspond au plus un nombre d’heures de vol ;
numPilote nomPilote,fonction est équivalente aux écritures
numPilote nomPilote et numPilote fonction qui sont deux DF.
En conséquence numPilote nomPilote, fonction est une DF ;
nomPilote fonction est une DF s’il n’y a pas d’homonymes dans la
population des pilotes enregistrés dans la base de données. Dans le cas
contraire, ce n’est pas une DF, car à un nom de pilote peuvent
correspondre plusieurs fonctions ;
fonction nomPilote n’est pas une DF, car à une fonction donnée
correspondent éventuellement plusieurs pilotes.
Prof. Asmaa El Hannani 2ITE-S1 332
DF élémentaire
Une DF a,b c est élémentaire si ni a c, ni b c ne sont
des DF.
Considérons les exemples suivants :
la dépendance fonctionnelle numPilote,jour nbHeuresVol est
élémentaire, car numPilote nbHeuresVol n’est pas une DF (un pilote
vole différents jours, donc pour un pilote donné, il existe plusieurs
nombres d’heures de vol), pas plus que jour nbHeuresVol (à un jour
donné, plusieurs vols sont programmés) ;
la dépendance fonctionnelle numPilote,nomPilote fonction n’est pas
élémentaire, car le numéro du pilote suffit pour retrouver sa fonction
(numPilote fonction est une DF).
Prof. Asmaa El Hannani 2ITE-S1 333
4
DF directe
Une DF a c est directe si elle n’est pas déduite par
transitivité, c’est-à-dire s’il n’existe pas de DF a b et b c.
Considérons l’exemple qui fait intervenir les attributs suivants :
(immat : numéro d’immatriculation d’un avion ; typeAvion : type de
l’avion; nomConst : nom du constructeur de l’avion).
La dépendance immat nomConst n’est pas une DF directe.
La dépendance immat typeAvion est une DF directe.
La dépendance typeAvion nomConst est une DF directe.
Prof. Asmaa El Hannani 2ITE-S1 334
Propriétés de DF
Les propriétés suivantes sont appelées «axiomes d’Armstrong ».
Réflexivité : si b est un sous-ensemble de a alors a b est une DF.
Augmentation : si a b est une DF, alors a,c b,c est une DF.
Transitivité : si a b et b c sont des DF, alors a c est une
DF.
Union : si a b et a c sont des DF, alors a b,c est une DF.
Pseudo-transitivité : si a b et b,c d sont des DF, alors a,c
d est une DF.
Décomposition : si a b,c est une DF, alors a b et a c sont
des DF.
Prof. Asmaa El Hannani 2ITE-S1 335
5
Normalisation
Les classifications formelles utilisées pour décrire le niveau de
normalisation d'une base de données relationnelle sont
appelées les formes normales (FN)
Il existe huit formes normales. Les quatre premières sont les
plus pratiques et sont à connaître:
la 1ère forme normale (1FN),
la 2ème forme normale (2FN),
la 3ème forme normale (3FN),
la forme normale de Boyce-Codd qui est la plus aboutie (FNBC).
Prof. Asmaa El Hannani 2ITE-S1 336
1FN
Une relation est en 1FN si tous ses attributs ont une valeur
atomique.
Prof. Asmaa El Hannani 2ITE-S1 337
6
2FN
Une relation est en 2FN si elle est en 1FN et si chaque
attribut non clé dépend totalement et non partiellement de la
clé primaire (c-à-d que la dépendance est élémentaire).
Prof. Asmaa El Hannani 2ITE-S1 338
2FN
Comment normaliser en 2FN:
Isoler la DF partielle dans une nouvelle relation
Eliminer l’attribut cible (le dépendant) de DF de la relation initiale
Remarque: Une relation en 1FN dont la clef est mono-attribut
est forcément en 2FN
Prof. Asmaa El Hannani 2ITE-S1 339
7
3FN
Une relation est en 3FN si elle respecte la 2FN et si les
dépendances fonctionnelles entre la clé primaire et les autres
attributs sont directes.
Prof. Asmaa El Hannani 2ITE-S1 340
3FN
Comment normaliser en 3FN:
Isoler la DF transitive dans une nouvelle relation
Eliminer la cible de DF transitive de la relation initiale
A A C
B C D B C D
DF transitive
Prof. Asmaa El Hannani 2ITE-S1 341
8
FNBC
Une relation est en forme normale de Boyce-Codd si elle est
en 3FN et que le seul déterminant (membre gauche des DF)
existant dans la relation est la clé primaire.
Prof. Asmaa El Hannani 2ITE-S1 342
FNBC
Comment normaliser en FNBC:
Isoler la DF problématique dans une nouvelle relation
Eliminer la cible de DF problématique et la remplacer par sa
source dans la relation initiale.
Prof. Asmaa El Hannani 2ITE-S1 343
9
Exemple
Considérons l’exemple des assurances de véhicules. Décomposer
cette relation de manière à obtenir un schéma normalisé.
Prof. Asmaa El Hannani 2ITE-S1 344
1FN
En partant de l’hypothèse qu’un assuré puisse vendre puis
racheter sa voiture, la clé de cette relation sera la concaténation
des attributs num, nimm et dateAchat.
Prof. Asmaa El Hannani 2ITE-S1 345
10
2FN
La question à se poser: « De quoi dépend élémentairement chaque
attribut de la relation ? ».
Considérons tous les attributs :
num, nimm, dateAchat prixAchat (prixAchat dépend de la clé) ;
nimm ncons,type, nomCons;
num nom.
Les relations déduites de ces DF sont par définition en 2FN
Prof. Asmaa El Hannani 2ITE-S1 346
2FN
Prof. Asmaa El Hannani 2ITE-S1 347
11
3FN
Il faut à présent répondre à la question : « De quoi dépend
directement chaque attribut de la relation ? ».
Cherchons les DF indirectes. On trouve la DF nimm nomCons
qui est indirecte car issue d’une transitivité.
nimm ncons
ncons nomCons
Prof. Asmaa El Hannani 2ITE-S1 348
3FN
Prof. Asmaa El Hannani 2ITE-S1 349
12
FNBC
Les relations sont déjà en FNBC !
Prof. Asmaa El Hannani 2ITE-S1 350
Exercice
On considère la relation suivante comme la base de données initiale d’une
agence immobilière. Décomposer cette relation de manière à obtenir un
schéma normalisé.
Num- Nom- NumApp AdrApp DateDLoc DateFLoc Montant NumProp NomProp
Client Client
12, rue de
PG4 01.07.2003 31.08.2005 3500 CX40 Farid Assri
Jamal la Gare
CR76
Khiyati 7, av.
PG16 01.09.2005 01.09.2010 4500 CX93 Ayoub Badr
République
12, rue de
PG4 01.09.2002 10.06.2003 3500 CX40 Farid Assri
la Gare
Ahmed 3, Grande
CR56 PG36 10.10.2003 01.12.2004 3800 CX93 Ayoub Badr
Zitouni Rue
7, av.
PG16 01.01.2005 10.08.2005 4500 CX93 Ayoub Badr
République
Remarque : On suppose qu’une personne peut louer plusieurs
appartements en même temps mais elle ne peut pas relouer le même
appartement une fois qu’elle le quitte.
Prof. Asmaa El Hannani 2ITE-S1 351
13