Vous êtes sur la page 1sur 26

Normalisation d’une base de données

Abdou Salam BASSAM


23 avril 2021

1
Plan

1. Normalisation

2. Dépendance fonctionnelle

3. Les formes normales

2
Normalisation
Objectifs de la normalisation

Exemple : Soit la relation COMMANDE_PRODUIT(Code, Quantite,


Fournisseur, Adresse).

Code Quantite Fournisseur Adresse


101 300 901 Zilimadjou
104 1000 902 Oasis
112 78 904 Hadoudja
103 250 901 Zilimadjou

Problèmes :
• Si l’on souhaite mettre à jour l’adresse d’un fournisseur, il faut le
faire pour tous les tuples concernés.
• Pour ajouter un nouveau fournisseur, il faut obligatoirement fournir
des valeurs pour "Code" et "Quantite".
• La suppression du produit 104 fait perdre toutes les informations
concernant le fournisseur 902.
→ Pour faire face à ce genre de problèmes, on a recours à la normalisation. 3
Dépendance fonctionnelle
Définition

Dépendance fonctionnelle
Soit R(X, Y, Z) une relation où X, Y, et Z sont des ensembles
d’attributs. Z peut être vide. On dit que Y dépend fonctionnellement de
X ou X détermine Y noté (X→Y) si étant donné une valeur de X, il lui
correspond une valeur unique de Y (quelque soit l’instant considéré).
Exemple : Soit la relation PRODUIT(Code, Designation, PU)
Code→Designation ; Designation→PU ; Code→PU

4
Propriétés des dépendances fonctionnelles

5
Propriétés des dépendances fonctionnelles

• Réflexivité : Y ⊆ X ⇒ X → Y (DF triviale) Tout ensemble


d’attributs détermine lui-même ou une partie de lui même.

5
Propriétés des dépendances fonctionnelles

• Réflexivité : Y ⊆ X ⇒ X → Y (DF triviale) Tout ensemble


d’attributs détermine lui-même ou une partie de lui même.
• Augmentation : X → Y ⇒ X ∪ Z → Y ∪ Z Si X détermine Y , les
deux ensembles peuvent être augmentés par un même troisième.

5
Propriétés des dépendances fonctionnelles

• Réflexivité : Y ⊆ X ⇒ X → Y (DF triviale) Tout ensemble


d’attributs détermine lui-même ou une partie de lui même.
• Augmentation : X → Y ⇒ X ∪ Z → Y ∪ Z Si X détermine Y , les
deux ensembles peuvent être augmentés par un même troisième.
• Transitivité : X → Y et Y → Z ⇒ X → Z ; Si X détermine Y et Y
détermine Z alors X détermine Z.

5
Propriétés des dépendances fonctionnelles

• Réflexivité : Y ⊆ X ⇒ X → Y (DF triviale) Tout ensemble


d’attributs détermine lui-même ou une partie de lui même.
• Augmentation : X → Y ⇒ X ∪ Z → Y ∪ Z Si X détermine Y , les
deux ensembles peuvent être augmentés par un même troisième.
• Transitivité : X → Y et Y → Z ⇒ X → Z ; Si X détermine Y et Y
détermine Z alors X détermine Z.
• L’union : X → Y et X → Z ⇒ X → Y ∪ Z

5
Propriétés des dépendances fonctionnelles

• Réflexivité : Y ⊆ X ⇒ X → Y (DF triviale) Tout ensemble


d’attributs détermine lui-même ou une partie de lui même.
• Augmentation : X → Y ⇒ X ∪ Z → Y ∪ Z Si X détermine Y , les
deux ensembles peuvent être augmentés par un même troisième.
• Transitivité : X → Y et Y → Z ⇒ X → Z ; Si X détermine Y et Y
détermine Z alors X détermine Z.
• L’union : X → Y et X → Z ⇒ X → Y ∪ Z
• Décomposition : X → Y et Z ⊆ Y ⇒ X → Z

5
Propriétés des dépendances fonctionnelles

• Réflexivité : Y ⊆ X ⇒ X → Y (DF triviale) Tout ensemble


d’attributs détermine lui-même ou une partie de lui même.
• Augmentation : X → Y ⇒ X ∪ Z → Y ∪ Z Si X détermine Y , les
deux ensembles peuvent être augmentés par un même troisième.
• Transitivité : X → Y et Y → Z ⇒ X → Z ; Si X détermine Y et Y
détermine Z alors X détermine Z.
• L’union : X → Y et X → Z ⇒ X → Y ∪ Z
• Décomposition : X → Y et Z ⊆ Y ⇒ X → Z
• Pseudo-transitivité : X → Y et W ∪ Y → Z ⇒ W ∪ X → Z

5
DF élémentaire

Définition
Une DF de la forme X , Y → Z est élémentaire si ni X → Z ni Y → Z ne
sont des DF. Autrement dit, tous les attributs à gauche sont nécessaires
pour déterminer l’attribut à droite de la flèche.

Exemple
• La dépendance fonctionnelle CIN, NV → dateAchat est élémentaire.
• La dépendance fonctionnelle CIN, NV → marque n’est pas
élémentaire car le numéro voiture (NV) seul suffit pour déterminer la
marque (NV → marque est une DF).

6
DF directe

Définition
Une dépendance fonctionnelle X → Z est directe si elle n’est pas déduite
par transitivité, c’est-à-dire qu’il n’existe pas un attribut Y tel que
X → Y et Y → Z .

Exemple
• La dépendance fonctionnelle NV→modèle est une DF directe.
• La dépendance fonctionnelle modèle→marque est une DF directe.
• La dépendance fonctionnelle NV→ marque est une DF indirecte (elle
peut être déduite à partir des deux DF précédentes)

7
Graphe de DF

Pour chaque relation, il faut connaître les DF. Il est facile alors de les
représenter sous forme de graphe : Graphe des DF.
Dans ce graphe, les sommets sont des attributs et un arc relie l’attribut A
à l’attribut B si et seulement si A → B.
Exemple 1 :
T(A,B,C,D, E) avec DF= {E → A, E → B, E → C, C → D }
E
Z
 Z

= ~
Z
A ? C
B Z
Z
~
Z
D

8
Graphe de DF

Exemple 1 :
Soit la relation «Commande» ayant le schéma suivant :
Commande(numcde, datecde, montant, numC, nomC, adresseC)
Il est évident que l’attribut «numcde» permet d’identifier la date
«datecde», le montant total d’une commande ainsi le numéro du client
qui a passé la commande. A partir de ce numéro, on peut connaitre les
autres informations relatives au client à savoir son nom et son adresse.
• Notons F, l’ensemble des dépendances fonctionnelles entre les attributs
de la relation «Commande» :
F={numcde → datecde ; numcde → montant ; numcde → numC ; numC
→ nomC ; numC → adresseC}
numcde
Z
 Z
=
 ~
Z
datecde ? numC
montant Z
Z
~
Z
? adresseC
nomC 9
Fermeture transitive

On appelle fermeture transitive d’un ensemble de dépendance


fonctionnelle F , l’ensemble F + qui est l’union de F et de l’ensemble des
dépendances fonctionnelles déduites par transitivité.
Exemple :
Soit l’ensemble de DF :
F={numcde → datecde ; numcde → montant ; numcde → numC ; numC
→ nomC ; numC → adresseC}

⇒On obtient la fermeture transitive suivante :


F + = F ∪ {numcde → nomC ; numcde → adresseC }

10
Fermeture transitive

Le schéma suivant illustre le graphe de DF obtenues à partir de F + :


numcde
PP
Z
 JJZ PPPP
=
 ~
Z
datecde ? J numC
PP
PP
montant J XXX z adresseC
q
J
^
J?
nomC

A partir de la notion de fermeture transitive, il est possible de définir


l’équivalence de deux ensembles de DF élémentaires.
Définition
Deux ensembles de dépendances fonctionnelles F et F 0 sont équivalents
s’ils ont la même fermeture transitive.
Par la suite, il sera intéressant de déterminer un ensemble minimal de DF
permettant de générer toutes les autres, c’est la couverture minimale.
11
Couverture minimale

Définition
La couverture minimale associée à un ensemble d’attributs est un
ensemble F de dépendances fonctionnelles vérifiant les deux propriétés
suivantes :

1. Aucune dépendance dans F n’est redondante, ce qui signifie que


pour toute dépendance fonctionnelle f de F , F − {f } n’est pas
équivalent à F .
2. Toute dépendance fonctionnelle élémentaire des attributs est dans la
fermeture transitive de F (notée F + ).

Exemple
Soit l’ensemble F définit comme suit : F = {numcde → datecde; numcde →
montant; numcde → numC ; numC → nomC ; numC → adresseC }
F est une couverture minimale pour l’ensemble des attributs de la relation «
Commande » définie ci-dessus. La couverture minimale va constituer un élément
essentiel pour composer des relations sans pertes d’information directement à partir
des attributs.
12
Clé d’une relation

Pour une relation R(A1 , A2 , . . . , An ), un sous-ensemble d’attributs X est


une clé si et seulement si :

• X → A1 , A2 , . . . , An
• Il n’existe pas de sous-ensemble Y de X tel que Y → A1 , A2 , . . . , An

Une clé est donc un ensemble minimal d’attributs qui détermine tous les
autres.

13
Les formes normales
Première forme normale (1FN)

Définition
Une relation est en première forme normale (1FN) si chaque valeur de
chaque attribut de chaque tuple d’une relation R est une valeur simple
(tous les attributs sont simple et monovalués). C.à.d. si tout attribut est
atomique.

Exemple
Soit la relation Fournisseur ayant le schéma suivant :
Fournisseur (numF , nomF , adresse)
Cette relation n’est pas en 1FN si l’attribut adresse est elle-même
composée de la manière suivante (rue, ville, codePostal).
Dans ce cas, le principe de passage en 1FN consiste à créer autant de
champs que ceux composant l’adresse, ce qui donne le schéma suivant :
Fournisseur (numF , nomF , rue, ville, codePostal)

14
Deuxième forme normale (2FN)

Définition
Une relation est en deuxième forme normale (2FN) si :

• elle est en 1FN ;


• tout attribut n’appartenant pas à la clé ne dépend pas d’une partie
de la clé ;

Exemple :

15
Troisième forme normale (3FN)

Définition
Une relation est en troisième forme normale (3FN) si :

• Elle est en 2FN ;


• Tout attribut n’appartenant pas à la clé ne dépend pas d’un autre
attribut non clé ; c.-à-d. qu’il n’existe aucune DF transitive entre la
clé et les autres attributs.

Exemple :

16
Forme normale de Boyce-Codd (BCFN)

Définition
Une relation est en forme normale de Boyce-Codd (BCFN) si :

• Elle est en 3FN ;


• Le seul déterminant (membre gauche d’une DF) existant dans la
relation est la clé primaire. Autrement dit, il n’existe aucune DF
entre des parties de la clé ou entre un attribut et une partie de la clé.

17

Vous aimerez peut-être aussi