Vous êtes sur la page 1sur 16

Normalisation d’un schéma

relationnel
Introduction
Le schéma d’une relation est décrit par un ensemble d’attributs et un ensemble
de contraintes d’intégrité

La constitution de la liste d’attributs du schéma ne peut pas se faire n’importe


comment pour ne pas avoir des redondances
Redondances ⇔ perte de place, risques d’incohérence, perte d’informations

La normalisation du schéma relationnel permet d’obtenir des relations non


redondantes

La normalisation est fondée sur les notions de clés de relations et de


dépendances entre données

Le processus de normalisation mène à des formes « correctes » de relations qui


sont les formes normales
2
Exemple motivant
PRODUIT(Refproduit, LibelleProduit, PU, Quantité, NumService,Adresse, Capacité)

Cette relation présente certaines anomalies :


Redondance : un produit apparaît autant de fois qu’il sera livré par un service
Risques d’incohérences lors de :
 Modification : si l’on s’aperçoit que le libelle de P1 n’est pas CH7 mais CH1 il faut mettre à
jour tous les tuples contenant P1
 Insertion : Il est nécessaire d’autoriser la présence de valeurs nulles dans une telle relation
afin de pouvoir insérer des services sans produit.
 Suppression : si nous supprimons un produit qui est le seul livré à un service donné, nous
supprimons avec lui toute trace de ce service
3
Exemple motivant
La relation Produit peut être décomposée en trois relations non redondantes

PRODUIT(RefProduit, LibelleProduit, PU, Quantité, NumService, Adresse, Capacité)

Décomposition 1
PRODUIT1(RefProduit, Libelle, PU)

PRODUIT2 (#RefProduit, NumService, Quantité, Adresse, Capacité)

Décomposition 2

PRODUIT22 (NumService, Adresse, Capacité)


PRODUIT 21 (#RefProduit, #NumService, Quantité)

4
DÉPENDANCE FONCTIONNELLE (DF)

Définition
Soit une relation R […, A, B, …], on dit qu’il existe une DF entre les 2 attributs A et B
de la relation R, si à toute valeur de A correspond une seule valeur de B.

On note :A  B (A détermine B ou B dépend fonctionnellement de A)

Exemple
PRODUIT (RefProduit
RefProduit,, LibelleProduit
LibelleProduit,, PU, Quantité, NumService,
NumService, Adresse, Capacité)

Pour cette relation, les dépendances fonctionnelles suivantes sont vérifiées :


RefProduit  LibelleProduit
NumService  Adresse, Capacité
RefProduit  PU
RefProduit, NumService  Quantité

5
DÉPENDANCE FONCTIONNELLE (DF)
Propriétés des DF

Propriété 1 : Réflexivité
A A
si ∃ B ⊂ A alors A  B
d’Armstrong

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


Axiomes

Propriété 2 :Augmentation
Augmentation
A  B alors A,C  B,C
Si A détermine B, les deux ensembles d’attributs peuvent être enrichis par un même
troisième.
Propriété 3 :Transitivité
Transitivité
A  B et B  C alors A  C

Propriété 4 : Union
A  B et A  C alors A  B,C

Propriété 5 : Pseudo-transitivité
A B et C,B  D alors C,A  D

Propriété 6 : Décomposition 6
A B et C ⊂ B alors A C
DÉPENDANCE FONCTIONNELLE (DF)

DF élémentaire
Une Dépendance fonctionnelle A B est élémentaire si pour tout A’ ∈
A la dépendance fonctionnelle A’ B n’est pas vraie.

En d’autres termes, B ne dépend pas fonctionnellement d’une


partie de A (A est la plus petite quantité d’information donnant B).

Exemple :
RefProduit, LibelleProduit  PU : n’est pas élémentaire car
RefProduit  PU

7
DÉPENDANCE FONCTIONNELLE (DF)
Clé de relation
La clé d’une relation est l’ensemble d’attributs dont les valeurs permettent
de caractériser les n-uplets de la relation de manière unique
Formellement :
Un attribut ou une liste d’attributs A est une clé pour la relation R(A, B, C) si B et
C dépendent fonctionnellement de A dans R :
 A  B, C
 A  B, C est élémentaire

Une relation peut avoir plusieurs clés. Une clé sera choisie et désignée
comme clé primaire. Les autres seront appelées clés candidates

8
DÉPENDANCE FONCTIONNELLE (DF)

Graphe de Dépendances Fonctionnelles (GDF)


Les DF peuvent être représentées à l’aide d’un graphe dont les nœuds sont les
attributs et les arcs sont les dépendances elles-mêmes

Les arcs sont orientés de la partie gauche de la DF vers sa partie droite

L’origine d’un arc peut être multiple mais sa cible doit être un nœud unique

Clé de relation et GDF :


Le graphe des DF d’une relation R permet de trouver la clé de R, qui est
l’ensemble (minimal) des nœuds du graphe à partir desquels on peut atteindre
tous les autres nœuds (via les DF)

9
DÉPENDANCE FONCTIONNELLE (DF)

Exemple de Graphe de Dépendances Fonctionnelles GDF :


 F1 : RefProduit  LibelleProduit

 F2 : RefProduit  PU

 F3 : NumService  Adresse, Capacité

 F4 : RefProduit, NumService  Quantité

La DF F3 n’est pas canonique (un seul attribut à droite de la DF), il faut donc la décomposer :
 F31 : NumService  Adresse

 F32 : NumService  Capacité


Adresse
LibelléProduit
F1 F31
F2
RefProduit PU NumService
F32
Capacité
F4 10
Quantité
PROCESSUS DE NORMALISATION

C’est la décomposition des relations sans perte d’informations en utilisant la


notion de DF
La normalisation est un processus de décomposition réversible des relations.
Décomposition :
Remplacer une relation R non suffisamment normalisée par une collection
équivalente de relations mieux normalisées en isolant certains liens nuisibles
intra-relation (entre attributs).
Réversible :
La réversibilité garantie que toute extension de R peut être régénérée
(retrouvée) à partir des relations équivalentes notamment par jointure : SANS
PERTE d’information.

11
PROCESSUS DE NORMALISATION
Première forme normale (1FN)

Une relation R est en 1ère FN si


- Elle possède une clé
- Tous ses attributs sont atomiques (non décomposables)

Exemples :
 LIVRE (No-ISBN,Titre,Auteurs, Editeur)
 Cette relation n’est pas en 1FN car l’attribut ‘’Auteurs’’ est multivalué. Elle
peut être transformée comme suit :
LIVRE (No-ISBN, Titre, Auteur1, Auteur2, Auteur 3, Editeur)

o ETUDIANT (Num, Nom, Prénom,Adresse(Rue,Ville))


 Cette relation n'est pas en 1FN car l’attribut Adresse n’est pas atomique.
Elle peut être transformée comme suit :
ETUDIANT (Num, Nom, Prénom, Rue,Ville)

12
PROCESSUS DE NORMALISATION
Deuxième forme normale (2FN)

Une relation R est en 2FN si et seulement si :


elle est en 1FN,
toutes les DF entre la clé et les autres attributs sont élémentaires,
aucun attribut ne dépend d’une partie de la clé

Exemple
Soit la relation R avec ses DF :
R (NumCl, AdrCl, RefProduit, PU)
F1 : NumCl, RefProduit  PU
F2 : NumCl  AdrCl
 La clé de la relation est (NumCl, RefProduit)
 Selon F2, une partie de la clé (NumCl) détermine un attribut n'appartenant pas
à la clé  R n'est donc pas en 2FN.
 Elle pourra être décomposée en :
CLIENT (NumCl, AdrCl)
PRODUIT (RefProduit, #NumCl,, PU)
13
PROCESSUS DE NORMALISATION
Troisième forme normale (3FN)
Une relation R est en troisième forme normale (3FN) si et seulement si :
Elle est en 2FN,
Tout attribut n’appartenant pas à la clé ne dépend pas d’un attribut non
clé : (Toutes les DF : sont directes pas de transitivité).
Exemple :
R (NumCl, Chiffre Affaire,Ville, Pays) avec les DF suivantes :

F1 : NumCl  ChiffreAffaire

F2 : NumCl  Ville

F3 :Ville  Pays

La relation CLIENT n’est pas en 3FN à cause de la DF F3.

Cette relation doit être décomposée en deux relations :

CLIENT (NumCl, ChiffreAffaire, #Ville) et ADRESSE (Ville, Pays)


14
PROCESSUS DE NORMALISATION
Forme normale de BOYCE-CODD (BCNF)
Une relation R est en BCNF si et seulement si :
elle est en 3FN
aucun attribut membre de la clé ne dépend fonctionnellement d’un attribut
non membre de la clé.

Exemple : ADRESSE (Ville, Rue, CodePostal)

Cette relation présente les DF suivantes :


Ville, Rue  CodePostal CodePostal  Ville
Cette relation est en 3FN

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é).
Décomposition :
ADRESSE (Ville, Rue)
POSTAL (CodePostal,Ville)
15
PROCESSUS DE NORMALISATION
Exercice
Etant donnée la relation R :
R(ref, désignation, code_client, nom_client, adr_client, code_four, nom_four, adr_four,
date_vente, qte_vente, prix_vente, date_achat, qte_achetée, prix_achat)

On donne les hypothèses suivantes :


Un article est identifié par une référence et a une désignation.
Un client est identifié par un code et a un nom et une adresse.
Un fournisseur est identifié par un code et a un nom et une adresse.
Un article est vendu à un client avec une quantité et un prix à une date
particulière.
Un article est acheté auprès d’un fournisseur avec une quantité et un prix à une
date donnée.

 Questions :
1. Donner l’ensemble des DF élémentaires
2. Dessiner le graphe de dépendances fonctionnelles
3. Est-ce que cette relation est en 3FN ? Si non procéder à sa décomposition

16

Vous aimerez peut-être aussi