Documente Academic
Documente Profesional
Documente Cultură
Chapitre 4 : La Normalisation
Objectifs :
Eléments de contenu
I. Introduction
II. Dépendance fonctionnelle
1. Définition
2. Propriétés des dépendances fonctionnelles
3. Dépendance fonctionnelle élémentaire
4. Dépendance fonctionnelle transitive
5. Clé d’une relation
III. Les formes normales
1. Première Forme Normale (1FN)
2. Deuxième Forme Normale (2FN)
3. Troisième Forme Normale (3FN)
4. Forme Normale de Boyce-codd (BCNF)
IV. Conclusion
Chapitre 4 : La Normalisation
I- Introduction
Un schéma de relation est décrit par la liste de ses attributs et de leurs contraintes d’intégrité
éventuelles. La constitution de la liste d’attributs du schéma ne peut pas se faire n’importe
comment pour ne pas occasionner de redondance, avec toutes ses implications (perte de place,
risques d’incohérence et de perte d’informations). Les formes normales des relations et les
mécanismes pour les construire permettent d’obtenir des relations non redondantes. Ces
mécanismes sont fondés sur les notions de clés de relations et de dépendances entre données.
Ces dernières fournissent les conditions d’application d’un processus dit de normalisation qui
mène à des formes « correctes » de relations qui sont les formes normales.
PRODUIT (Refproduit, LibelleProduit, PU, Quantité, NumService, Adresse, Capacité) qui est
visiblement redondante.
Redondance : un produit apparaît autant de fois qu’il sera livré par un service
Mise à jour : faute de redondance, les mises à jour conduiront à des risques d’incohérence
et de non intégrité.
Insertion et suppression : l’insertion, la suppression ou le transfert d’attributs pourra faire
apparaître des valeurs nulles
Chaque relation décrit une information élémentaire avec les seuls attributs qui lui sont
directement liés
Il n'y a pas de redondance d’information qui peuvent produire des problèmes de mise à
jour
Exemple
Propriété 1 : Réflexivité
Y⊆X ⇒ X→ Y
Tout ensemble d’attributs détermine lui-même ou une partie de lui-même.
Propriété 2 : Augmentation
X→ Y ⇒ X,Z→ Y,Z
Si X détermine Y, les deux ensembles d’attributs peuvent être enrichis par un même troisième.
Propriété 3 : Transitivité
X → Y et Y → Z ⇒ X → Z.
Propriété 4 : Union
X → Y et X → Z ⇒ X → Y, Z
Propriété 5 : Pseudo-transitivité
X → Y et W, Y → Z ⇒ W,X → Z
Propriété 6 : Décomposition
X → Y et Z ⊆ Y ⇒ X→ Z
Exemple : RefProduit, LibelleProduit → PU n’est pas élémentaire car il suffit d’avoir la référence
du produit pour déterminer son prix unitaire.
X→Y est une dépendance fonctionnelle transitive s’il existe un attribut Z tel que X→Z et Z→Y
Transitivité
X →Y
Formellement :
Un attribut ou une liste d’attributs X est une clé pour la relation R(X,Y,Z) si
Une relation peut avoir plusieurs clés. Une clé sera choisie et désignée comme clé primaire.
Un attribut d’une relation R est appelé attribut clé s’il appartient au moins à une clé de R.
Un attribut est dit attribut non clé s’il n’appartient pas à une clé de R.
Cette définition permet d’exclure les relations ayant des attributs dont les valeurs seraient des
ensembles ou des listes de valeurs.
Exemple :
C18 Ali Ap4 12, rue de la gare 01.07.09 31.08.11 350 P40 Anis
C26 Salah Ap4 12, rue de la gare 01.08.08 10.06.09 350 P40 Anis
Cette relation n’est pas en première forme normale parce que l’attribut NumApp n’est pas
atomique.
NumCL→NomCl
NumProp → NomProp
Pour transformer cette relation en 1FN, il faut l’aplatir en considérant comme clé le couple
(NumCl, NumApp).
C18 Ap4 Ali 12, rue de la gare 01.07.09 31.08.11 350 P40 Anis
7, av de la
C18 Ap16 Ali 01.09.10 01.09.11 450 P23 Sana
république
C26 Ap4 Salah 12, rue de la gare 01.08.08 10.06.09 350 P40 Anis
3, av de
C26 Ap36 Salah 01.04.11 31.05.12 380 P23 Sana
l’environnement
7, av de la
C26 Ap16 Salah 01.01.10 31.07.10 450 P23 Sana
république
Exemple :
Supposons qu’on veuille modifier ou corriger l’adresse d’un appartement apparaissant plusieurs
fois dans la table (différents locataires à différentes périodes), il faut modifier plusieurs n-uplets.
Ceci est dû au fait que certains attributs ne dépendent pas pleinement de la clé, et qu’il existe donc
des dépendances partielles.
(1) et (4) donnent (1) n’est pas une dépendance fonctionnelle élémentaire.
De même, (2) et (5) montrent que (2) n’est pas une dépendance fonctionnelle élémentaire.
Pour aboutir à un schéma relationnel en 2FN, il faut éliminer les dépendances fonctionnelles non
élémentaires puis regrouper les dépendances fonctionnelles qui ont la même origine pour former
une relation.
La troisième forme normale permettra d’éliminer les redondances dues aux dépendances
transitives.
Exemple :
Les relations Client et Location sont en 3FN, puisqu’elles sont déjà en 2ème forme normale et qu’il
n’existe aucun attribut non clé qui dépend d’un autre attribut non clé.
On s’intéresse maintenant à la relation Appartement. Elle est en 2FN et présente les dépendances
suivantes :
NumApp → NomProp
NumProp
Ici, nous avons une transitivité, donc il faut éliminer la dépendance fonctionnelle transitive,
regrouper les dépendances ayant la même racine et reconstruire les relations.
D’où
En d’autres termes une relation est en BCNF, si elle est en 3FN et qu’aucun attribut membre de la
clé ne dépend fonctionnellement d’un attribut non membre de la clé.
Exemple 1:
CodePostal → Ville
Elle est en 3FN (car elle est en deuxième forme normale, et tout attribut n’appartenant pas à une
clé ne dépendra pas d’un attribut non clé).
Cette relation n’est pas en BCNF car l’attribut ‘’Ville’’ (qui fait partie de la clé) dépend
fonctionnellement de CodePostal (qui est un attribut non membre de la clé).
Exemple 2:
Dans ces relations, nous n’avons aucun attribut clé qui dépend d’un attribut non clé. Donc elles
sont en BCNF.
IV- Conclusion
Ce chapitre a été consacré à l’étude du processus de normalisation et à la présentation des
différents types de dépendances fonctionnelles et de leurs types. Ces dépendances fonctionnelles
sont vues comme des contraintes d’intégrité. Elles servent à réduire la redondance des données et à
éviter des risques d’anomalies à travers des schémas relationnels « corrects ».
Généralement, la démarche de la mise en place d’une base de données relationnelle est la suivante:
Dans le chapitre suivant nous allons étudier les possibilités d’interrogation et de création de
schémas relationnels normalisés à travers le langage SQL.