ENSIT
Chapitre IV
La Normalisation
2ème Année Génie Industrielle
1
Introduction
Exemple d’une relation ayant des anomalies:
DVD-Emprunteur (N°DVD, Nom, prénom, N°tel, date-emprunt)
1- Anomalie de mise à jour:
• Un emprunteur change son numéro de téléphone génère une mise à
jour dans tous les tuples concernés.
2- Anomalie d’insertion
• Un nouveau DVD est acheté, je ne peux l’insérer que s’il est
emprunté par une certaine personne.
3- Anomalie de suppression
• Un DVD est perdu. Si je le supprime de la base, je perds toutes les
informations sur l’emprunteur
2
Définition
• Normaliser une relation consiste à décomposer une relation
ayant des anomalies (de mise à jour, insertion, etc.) en
plusieurs sous-relations sans anomalies.
• La normalisation permet d’éviter la redondance, les pertes et
les incohérences au sein des données.
• Elle repose sur les dépendances qui existent entre les
attributs des relations.
3
Dépendandace Fonctionnelle
• Un attribut Y dépend fonctionnellement d’un attribut X si et
seulement si une valeur de X induit une unique valeur de Y. On le
note : X → Y.
• Par exemple, si X le numéro du client et Y son nom alors
X → Y.
• Transitivité: si X → Y et Y → Z alors X → Z
• Par exemple, le numéro de commande → numéro de client →no
du client donc numéro de commande → nom du client.
Cette dépendance est dite transitive
et la dépendance numéro client →nom du client est dite directe
4
Les formes normales
1- Première Forme Normale
• Une relation est en première forme normale si, et seulement si, tout
attribut contient une valeur atomique (non multiples, non composée).
Exemple
Personne (NCIN, nom, prénom, Numérostel)
• Cette relation n’est pas en première forme normale car Numérostel
peut avoir plusieurs valeurs.
• Il faut la décomposer en deux relations: personne et téléphone
5
Les formes normales
2- Deuxième Forme Normale
• Une relation est en deuxième forme normale si, et seulement si:
- Elle est en première forme normale
- Chaque attribut non clé dépend totalement et non partiellement de la
clé primaire.
Exemple
• Fournisseur-produit (N°fournisseur, N°produit, adresseF, prix, qtitv)
• Cette relation n’est pas en deuxième forme normale car:
N°fournisseur → adresseF
N°produit → prix
• On doit la décomposer en:
Fournisseur (N°fournisseur, adresseF)
Produit (N°produit, prix)
Fournisseur-produit (#N°fournisseur, #N°produit, qtitv) 6
Les formes normales
3- Troisième Forme Normale
• Une relation est en troisième forme normale si:
- Elle est en deuxième forme normale
- Il n’existe pas de dépendance entre des attributs non-clé.
Exemple
• Pièce(N°pièce, prixunit, TVA, libelle, catégorie)
• Cette relation n’est pas en troisième forme normale car:
catégorie → TVA
• On doit la décomposer en deux relations:
Pièce(N°pièce, prixunit, libelle, #catégorie)
catégorie (catégorie, TVA)
7
Les formes normales
4- Forme Normale de Boyce-Codd
• Une relation est en FNBC si, et seulement si:
- Elle est en troisième forme normale
- Toute source de dépendance fonctionnelle est une clé.
Exemple
• Note (N°étudiant, matière, N°enseignant, note)
On suppose que chaque enseignant enseigne une seule matière.
Dans ce cas, la relation n’est pas en FNBC car:
N°enseignant → matière
• On la décompose en:
Enseignant (N°enseignant, matière)
Note(N°etudiant,#N°enseignant, note)
8
Exercice 3
Pour une table R (A, B, C, D, E) avec les dépendances fonctionnelles suivantes :
A, B C, D, E
A D, E
D E
1. Selon la définition de la deuxième forme normale, expliquer pourquoi cette table n’est pas
en 2FN
2. Décomposer R pour régler le problème de la 2FN. Assurez-vous de préserver les
dépendances.
3. Avec les tables et les dépendances fonctionnelles produites dans la question précédente,
a- Vérifier si chacune des tables décomposées est en 3FN
b- Décomposer les tables pour obtenir la 3FN
12