Chapitre 5 : Théorie de Normalisation
Compétences visées : l’étudiant sera capable d’utiliser les trois premières formes normales pour
décomposer une relation sans perdre d’informations, à partir de la notion de dépendance fonctionnelle.
SITUATION PROBLEME : Gestion Des Projets
On considère le schéma relationnel et les DF ci-dessous (les attributs sont supposées élémentaires),
concernant la gestion des locations des matériels.
Gest_LOC (numloc, dateLoc, idMat, nomMat, numSalle, nomSalle, qteLoue)
DF1 : numLoc numSalle DF4 : numSalle nomSalle
DF2 : (numLoc, idMat) nomEmployé, adresse DF5 : idMat nomMat
DF3 : numLoc dateLoc DF6 : numLoc nomSalle
Consigne :
1. Déterminer la clé de cette relation
2. Identifier une redondance éventuelle ou une anomalie dans cette relation 1pts
3. La relation est-elle en 2FN ? justifier
4. La relation est-elle en 3FN ? justifier
5. Décomposer cette relation en 3ème FN, si possible sans perte d'information ni perte de dépendances
fonctionnelles.
I. PRESENTATION DES CONCEPTS
La conception du schéma relationnel (ou conceptuel) est un processus itératif. Une fois le premier jet
effectué, il faut contrôler le travail effectué à l’aide de 3 règles de bonne conception que l’on appelle « forme
normale ». Autrement dit, la normalisation d’un schéma relationnel suggère une autre méthode pour
obtenir un ensemble de relations. On part d’une relation unique qui contient tous les champs, que l’on
appelle la relation universelle. À l’aide des décompositions proposées par la mise en forme normale et du
graphe des dépendances fonctionnelles des champs de ce e relation, on parvient par raffinements
successifs à un ensemble de relations normalisées. Ce e méthode de la relation universelle est toutefois
assez difficile à manipuler dès que l’on dépasse une taille critique du nombre de champs. En effet, Les
trois premières formes normales et la forme normale dite Boyce Codd ont pour objectif de perme re la
décomposition de relations sans perdre d’informations, à partir de la notion de dépendance fonctionnelle.
L’objectif de ce e décomposition est d’éviter les anomalies dans les bases de données relationnelles à
savoir :
Problèmes de mise à jour.
Suppression des redondances d’informations.
Simplification de certaines contraintes d’intégrité.
Ce qui perme ra d’aboutir à un schéma conceptuel représentant les entités et les associations canoniques
du monde réel.
1) Première Forme Normale (1FN)
a) Rôle
La première forme normale permet simplement d’obtenir des tables rectangulaires sans a ributs
multivalués irréguliers et décomposables.
© Jean Bernard BAKONGA Page 1 sur 7
b)Définition
Une relation est en première forme normale si tout a ribut contient une valeur atomique (non
divisible).
Les a ributs ne contiennent pas de valeurs répétitives (mono valué).
c) Exemple : Clients (NumCli, Nom, Prénom, Adresse, Téléphone)
Ce e relation n’est pas en première forme normale, car Adresse n’est pas atomique. En effet de la
représentation de sa table :
On constate un problème d’extraction des sous-chaines, si l’on souhaite extraire les habitants d’une ville
précise. L’a ribut Adresse est décomposable en trois métadonnées : Adresse, code postal et ville. Une
représentation 1FN correcte :
Clients (NumCli, Nom, Prénom, Adresse, CodeP, Ville, Téléphone)
Maintenant, récupérer les habitants d’une ville précise ne pose plus aucun problème, une simple requête
SQL y parviendra de façon rapide et fiable.
2) Deuxième forme normale (2FN)
a) Rôle
La deuxième forme normale permet d’assurer l’élimination de certaines redondances en garantissant
qu’aucun a ribut n’est déterminé seulement par une partie de la clé.
b) Définition
Une relation est en deuxième forme normale si :
Elle est en première forme normale.
Si tous les a ributs non-clés ne dépendent pas d’une partie de la clé primaire.
Autrement dit, toute propriété de la relation doit dépendre intégralement de toute la clé.
c) Exemple
Commande (Numcli, CodeArticle, Date, Qté_commandée, Désignation).
Ce e relation est-elle en première forme normale ? Oui.
© Jean Bernard BAKONGA Page 2 sur 7
Est-elle en deuxième forme normale ? Non, car la propriété « Désignation » ne dépend pas intégralement
de la clé (Numcli, CodeArticle, Date).
Soit la représentation du fichier commande suivant :
Commandes :
On constate que l’a ribut « Désignation » ne dépend pas intégralement de la clé, mais plutôt d’une
partie de la clé à savoir « CodeArticle ».
Corriger :
Commandes (Numcli, CodeArticle, date, Qté_commandée)
Articles (CodeArticle, Désignation)
3) Troisième forme normale (3FN)
a) Rôle
La troisième forme normale permet d’assurer l’élimination des redondances dues aux dépendances
transitives.
b) Définition
Une relation R est en troisième forme normale si et seulement si :
Elle est en deuxième forme.
Tout a ribut n’appartenant pas à une clé ne dépend pas d’un autre a ribut non clé.
Autrement dit, Si toutes les dépendances fonctionnelles par rapport à la clé sont directes (s’il n’y a pas de
DF transitives entre les a ributs non clé).
c) Exemple : dire si la relation Commande ci-dessous est en 3FN
Commande (NuméroCommande, #CodeClient, NomClient, #RefArticle).
Est-elle en première forme normale ? Oui
Est-elle en deuxième forme normale ? Oui
Est-elle en troisième forme normale ? Non !
En effet « Nomclient » dépend d’une propriété non clé : CodeClient. En d’autres termes, dans la relation
Commande, l’a ribut « NomClient » dépend transitivement de la clé primaire ainsi que la propriété
« CodeClient » :
NuméroCommande CodeClient NomClient.
© Jean Bernard BAKONGA Page 3 sur 7
Correction de la relation « commande » :
On la décompose en deux nouvelles relations :
Commande (NuméroCommande, #CodeClient, #RefArticle)
Clients (CodeClient, Nom client).
Remarque : une relation en 3ème forme normale peut présenter certaines anomalies, en particulier
lorsqu’un a ribut non clé de la relation est source d’une DF ayant pour cible une partie (un sous-ensemble)
de la clé. Et pour pallier à ceci il faut utiliser la forme normale de Boyce Codd
4) Forme normale de Boyce Codd (BCNF)
a) Rôle
Dans la pratique, un schéma relationnel dont toutes les tables sont en 3FN est dit normalisé. Mais dans
certains cas, R. Boyce et E. Frank. Codd ont repéré des faiblesses dans la 3FN. En effet, la 3FN élimine les
redondances liées à la transitivité des DF par rapport à la clé primaire ; mais il peut subsister des
dépendances transitives par rapport à un élément de la clé de la relation si celle-ci est multi-a ribut. Ils
ont donc défini une 3FN, plus restrictive, appelée la Forme Normale de BoyceCodd (FNBC).
Ainsi, rappelons que : La 2e forme normale élimine les anomalies créées par des dépendances entre parties
de clé et a ributs non clé. La 3e forme normale élimine les anomalies créées par des dépendances entre les
a ributs non clés. Et la forme normale de Boyce Codd élimine les redondances crées par des dépendances
entre parties de clés et celles déjà éliminées par la 3e FN.
b) Définition
Une relation est en BCNF si et seulement si :
Elle est en troisième forme normale.
Aucun a ribut faisant partie de la clé ne dépend d’un a ribut ne faisant pas partie de la clé
primaire.
En d’autres termes, les seules dépendances fonctionnelles élémentaires sont celles dans lesquelles une clé
entière détermine un a ribut.
c) Transformation d’une relation de la 3FN en FNBC
Pour passer de la 3FN à la FNBC, il faut diviser chaque relation ne satisfaisant pas aux critères de la
NBC en deux relations.
Une nouvelle relation sera créée, celle qui répond à la DF nouvelle. Ce e nouvelle relation aura comme
:
Clé primaire : l’a ribut dont provient la dépendance,
A ribut(s) : la partie de la clé qui en dépend.
Et Dans la relation de base, il faudra remplacer la partie de la clé concernée par l’a ribut dont provient
la dépendance (qui est devenu la clé de l’autre relation).
NB : La décomposition se fera ainsi, sans pertes, puisque par jointure, nous retrouverons l’intégralité des
tuples. Par contre, la décomposition en FNBC, bien que normalisée, fait disparaître certaines DF.
La figure 1 suivante illustre le cas typique où un a ribut non clé détermine une partie de clé, et indique
le schéma de décomposition associé.
© Jean Bernard BAKONGA Page 4 sur 7
Figure 1 : Schéma de relation en 3e forme normale mais non en BCNF.
Une telle relation doit être décomposée en R1(K1, K2, X) et R2(Y, K1)
d) Exemple : Considérons la relation :
VACHES (Race, Pays, Région), avec les dépendances fonctionnelles ci-dessous provenant des règles de
gestion du système d’information.
(Race, Pays) → Région
Région → Pays.
Ce e relation est bien en troisième forme normale car aucun a ribut non clé ne dépend d’une partie de la
clé ou d’un a ribut non clé. Cependant, on y trouve de nombreuses redondances, par exemple les deux
premières lignes possèdent des pays et des régions identiques.
Afin d’éliminer ces redondances, Boyce et Codd ont introduit une forme normale qui porte leur nom
(Boyce Codd Normal Form/BCNF) : Une relation est en BCNF si et seulement si les seules dépendances
fonctionnelles élémentaires sont celles dans lesquelles une clé détermine un a ribut.
Ainsi, La relation Vaches pourra être décomposée en deux relations :
RACES (Race, Région)
RÉGIONS (Région, Pays)
La dépendance fonctionnelle (Race, Pays) → Région est perdue, mais elle peut être recomposée par
jointure. Ce e normalisation est très importante dans la pratique si l’on veut éviter de stocker des
informations redondantes.
NB : On considère, en général, que la troisième forme normale est suffisante dans les cas courants.
Application :
Considérons par exemple la relation : LOCALISATION (CRU, PAYS, REGION, QUALITE), avec les
dépendances :
CRU, PAYS → REGION
CRU, PAYS → QUALITE
REGION → PAYS.
© Jean Bernard BAKONGA Page 5 sur 7
Consigne :
1) Ce e relation est-elle en 3FN ? Justifier
2) Identifier une anomalie ou redondance dans ce e relation
3) Proposer une décomposition de ce e relation
Synthèse
II. RESOLUTION DE LA SITUATION PROBLEME (à faire)
III. ACTIVITES DE CONSOLIDATION :
Situation problème
La base de données suivante accompagnée des dépendances fonctionnelles, décrivent des pièces
employées dans un atelier de montage.
PIÈCE (numPièce, prix, TVA, libellé, catégorie)
Consigne
1) Identifier les redondances éventuelles ainsi que les anomalies
2) Déterminer la ou les clés primaires
3) Déterminer la forme normale
4) Proposer une décomposition en BCNF si possible sans perte d'information ni perte de
dépendances fonctionnelles. Sinon, justifier.
© Jean Bernard BAKONGA Page 6 sur 7
Etudes de cas : Pour chacun des exercices, répondre aux questions suivantes :
- identifier les redondances éventuelles ainsi que les anomalies
- déterminer la ou les clés
- déterminer la forme normale
- proposer une décomposition en BCNF si possible sans perte d'information ni perte de dépendances
fonctionnelles. Sinon, justifier.
Exercice 1 : Commandes
Ensemble de commandes de produits par des clients.
Commande (numCommande, numClient, nomClient, date, numProduit, nomProduit)
Exercice 2 : Employés
Liste d'employés travaillant sur des projets d'un laboratoire.
Employé (numEmployé, numLaboratoire, numProjet, nomEmployé, nomProjet, adresse)
Exercice 3 : Cinéma
Liste de films projetés dans des salles de cinéma.
Cinéma (film, ville, salle, distributeur, délégué)
© Jean Bernard BAKONGA Page 7 sur 7