Introduction à la Normalisation des Bases de Données
Introduction à la Normalisation des Bases de Données
Dépendances fonctionnelles
Décomposition des relations
Formes normales
Algorithmes de normalisation
Cours normalisation
Support théorique d’une “bonne” conception d’un schéma relationnel
ENSIIE
2018
1/49
Motivation
Dépendances fonctionnelles
Décomposition des relations
Formes normales
Algorithmes de normalisation
2/49
Motivation
Dépendances fonctionnelles
Décomposition des relations
Formes normales
Algorithmes de normalisation
3/49
Motivation
Dépendances fonctionnelles
Décomposition des relations
Formes normales
Algorithmes de normalisation
Intérêt de la normalisation
Besoin
Éviter d’avoir une relation hétérogène sémantiquement
⇒ Décomposition en relations plus petites, limitant la redondance et
les anomalies de mise à jour
Démarche
Décomposer les relations sans perte d’informations ni mauvaises
recompositions
⇒ Décomposition des relations en formes normales
4/49
Motivation
Dépendances fonctionnelles
Décomposition des relations
Formes normales
Algorithmes de normalisation
n°prop
nom
n°voiture sémantique des
données
date−achat
personne(...)
voiture(...)
...
5/49
Motivation Définition
Dépendances fonctionnelles Axiomes d’Armstrong
Décomposition des relations Sélection des DF
Formes normales Représentation des DF
Algorithmes de normalisation Notion de clé
Définition
Soit R(A1,A2,...,An) un schéma de relation et X et Y deux
sous-ensembles d’attributs de R
On dit que X → Y (X détermine fonctionnellement Y, ou Y
dépend fonctionnellement de X) si quelle que soit l’extension de
R, pour tous tuples t1 et t2 de R :
t1[X] = t2[X] =⇒ t1[Y] = t2[Y]
≡ à chaque valeur de X correspond toujours une et une seule valeur
de Y
6/49
Motivation Définition
Dépendances fonctionnelles Axiomes d’Armstrong
Décomposition des relations Sélection des DF
Formes normales Représentation des DF
Algorithmes de normalisation Notion de clé
Exemples
Personne
n carte-id → nom
nom 9 n carte-id
Voiture
(marque,type) → puissance
marque 9 puissance
puissance 9 type
Propriétaire
n voiture → n prop
n prop 9 n voiture
(n voiture,n prop) → date-achat
7/49
Motivation Définition
Dépendances fonctionnelles Axiomes d’Armstrong
Décomposition des relations Sélection des DF
Formes normales Représentation des DF
Algorithmes de normalisation Notion de clé
Remarques
8/49
Motivation Définition
Dépendances fonctionnelles Axiomes d’Armstrong
Décomposition des relations Sélection des DF
Formes normales Représentation des DF
Algorithmes de normalisation Notion de clé
Axiomes d’Armstrong
9/49
Motivation Définition
Dépendances fonctionnelles Axiomes d’Armstrong
Décomposition des relations Sélection des DF
Formes normales Représentation des DF
Algorithmes de normalisation Notion de clé
Sélection des DF
DF non triviales
Élimination des DF déduites par réflexivité ou par augmentation
⇒ sélection des DF de la forme X → A avec :
- A 6⊂ X
- il n’existe pas X 0 ⊂ X tel que X 0 → A
DF élémentaires
X → A, où A est un seul attribut
10/49
Motivation Définition
Dépendances fonctionnelles Axiomes d’Armstrong
Décomposition des relations Sélection des DF
Formes normales Représentation des DF
Algorithmes de normalisation Notion de clé
Représentations
Graphe des dépendances fonctionnelles
Fermeture transitive (F+ )
Ensemble des DF élémentaires augmenté de celles obtenues par
transitivité
Couverture minimale
Sous-ensemble minimum de DF élémentaires permettant de générer
toutes les autres
11/49
Motivation Définition
Dépendances fonctionnelles Axiomes d’Armstrong
Décomposition des relations Sélection des DF
Formes normales Représentation des DF
Algorithmes de normalisation Notion de clé
n°véhicule n°véhicule
couleur couleur
type type
marque puissance marque
puissance
12/49
Motivation Définition
Dépendances fonctionnelles Axiomes d’Armstrong
Décomposition des relations Sélection des DF
Formes normales Représentation des DF
Algorithmes de normalisation Notion de clé
Dépendances fonctionnelles
F = {produit → type; type,client → remise}
produit
type client
remise
Graphe des DF
13/49
Motivation Définition
Dépendances fonctionnelles Axiomes d’Armstrong
Décomposition des relations Sélection des DF
Formes normales Représentation des DF
Algorithmes de normalisation Notion de clé
Notion de clé
Définition
Soit R(A1,A2,...,An) un schéma de relation avec l’ensemble des DF
F+ et X un sous-ensemble de A1,A2,...,An.
X est clé de R ssi :
X → A1, A2, ..., An
il n’existe pas de sous-ensemble Y ⊂ X tel que Y → A1, A2, ..., An
14/49
Motivation
Dépendances fonctionnelles Définition
Décomposition des relations Décomposition sans perte d’information
Formes normales Décomposition préservant les DF
Algorithmes de normalisation
But
Remplacer une relation R par de plus petites relations pour éliminer les
problèmes de redondance et les anomalies de màj et clés incomplètes
Définition
La décomposition d’un schéma de relation R(A1,A2,...,An) est son
remplacement par une collection de schémas de relations R1,R2,...,Rp
telle que R = R1 ∪ R2 ∪ ... ∪ Rp
15/49
Motivation
Dépendances fonctionnelles Définition
Décomposition des relations Décomposition sans perte d’information
Formes normales Décomposition préservant les DF
Algorithmes de normalisation
Exemples
voiture(n véhicule,marque,type,puisance,couleur)
R1(n véhicule,type,couleur)
R2(type,marque,puissance)
R’1(n véhicule,type)
R’2(type,puissance,couleur)
R’3(type,marque)
prod pharma(produit,type,client,remise)
R1(produit,type)
R2(type,client,remise)
R’1(type,client,remise)
R’2(type,client,produit)
16/49
Motivation
Dépendances fonctionnelles Définition
Décomposition des relations Décomposition sans perte d’information
Formes normales Décomposition préservant les DF
Algorithmes de normalisation
Critères de décomposition
Condition suffisante
La décomposition d’une relation R en R1 et R2 est sans perte si l’attribut
de jointure entre R1 et R2 est clé de R1 ou R2
17/49
Motivation
Dépendances fonctionnelles Définition
Décomposition des relations Décomposition sans perte d’information
Formes normales Décomposition préservant les DF
Algorithmes de normalisation
Exemples
18/49
Motivation
Dépendances fonctionnelles Définition
Décomposition des relations Décomposition sans perte d’information
Formes normales Décomposition préservant les DF
Algorithmes de normalisation
R 0 1 >< R 0 2 >< R 0 3
872VXD75 clio 6 bleue renault
872VXD75 clio 6 rouge renault
975SWT80 clio 6 bleue renault
975SWT80 clio 6 rouge renault
19/49
Motivation
Dépendances fonctionnelles Définition
Décomposition des relations Décomposition sans perte d’information
Formes normales Décomposition préservant les DF
Algorithmes de normalisation
20/49
Motivation
Dépendances fonctionnelles Définition
Décomposition des relations Décomposition sans perte d’information
Formes normales Décomposition préservant les DF
Algorithmes de normalisation
Définition
Une décomposition (R1,R2,...,Rp) de R préserve les DF de R si la
fermeture des DF de R est la même que celle de l’union des DF de
(R1,R2,...,Rp)
21/49
Motivation
Dépendances fonctionnelles Définition
Décomposition des relations Décomposition sans perte d’information
Formes normales Décomposition préservant les DF
Algorithmes de normalisation
R1(produit,type) produit
R2(type,client,remise) type client
⇒ préserve les DF (mais n’est
pas sans perte) remise
22/49
Introduction
Motivation 1FN
Dépendances fonctionnelles 2FN
Décomposition des relations 3FN
Formes normales BCK FN
Algorithmes de normalisation Dépendances multivaluées et 4FN
Dépendances de jointure et 5FN
Formes normales
Objectif
Définir des règles concernant le schéma des relations pour mieux
représenter le monde réel (sans redondance, sans anomalies de màj et
clés incomplètes)
23/49
Introduction
Motivation 1FN
Dépendances fonctionnelles 2FN
Décomposition des relations 3FN
Formes normales BCK FN
Algorithmes de normalisation Dépendances multivaluées et 4FN
Dépendances de jointure et 5FN
Axiome
Une relation est en première forme normale si tout attribut contient
une valeur monovaluée et non composée.
24/49
Introduction
Motivation 1FN
Dépendances fonctionnelles 2FN
Décomposition des relations 3FN
Formes normales BCK FN
Algorithmes de normalisation Dépendances multivaluées et 4FN
Dépendances de jointure et 5FN
Définition
Une relation est en deuxième forme normale si
elle est en 1FN
tout attribut non clé dépend de la totalité de la clé
(pas de dépendance partielle)
ou il n’existe pas de DF MG → MD telle que MG ⊂ clé
25/49
Introduction
Motivation 1FN
Dépendances fonctionnelles 2FN
Décomposition des relations 3FN
Formes normales BCK FN
Algorithmes de normalisation Dépendances multivaluées et 4FN
Dépendances de jointure et 5FN
Exemples
fournisseur(nom,adresse,article,prix)
DF : {nom,article → prix; nom → adresse }
clé = nom,article
nom → adresse
⇒ pas en 2FN
prod pharma(produit,type,client,remise)
DF : { produit → type; type,client → remise }
clé = produit,client
produit → type ⇒ pas en 2FN
26/49
Introduction
Motivation 1FN
Dépendances fonctionnelles 2FN
Décomposition des relations 3FN
Formes normales BCK FN
Algorithmes de normalisation Dépendances multivaluées et 4FN
Dépendances de jointure et 5FN
Principe de la décomposition
Sortir la(les) DF qui empêche(nt) que la relation soit en 2FN :
REL ( A, B, C, D, E )
R1(B,C)
Reste(A,B,D,E)
27/49
Introduction
Motivation 1FN
Dépendances fonctionnelles 2FN
Décomposition des relations 3FN
Formes normales BCK FN
Algorithmes de normalisation Dépendances multivaluées et 4FN
Dépendances de jointure et 5FN
Principe de la décomposition
REL ( A, B, C, D, E )
R1(C,D)
Reste(A,B,C,E)
29/49
Introduction
Motivation 1FN
Dépendances fonctionnelles 2FN
Décomposition des relations 3FN
Formes normales BCK FN
Algorithmes de normalisation Dépendances multivaluées et 4FN
Dépendances de jointure et 5FN
Décomposition en 3FN
Théorème
Toute relation R a une (ou plusieurs) décomposition(s) (R1,R2,...,Rp) en
troisième forme normale telle(s) que
la décomposition préserve les DF
la décomposition est sans perte d’information
30/49
Introduction
Motivation 1FN
Dépendances fonctionnelles 2FN
Décomposition des relations 3FN
Formes normales BCK FN
Algorithmes de normalisation Dépendances multivaluées et 4FN
Dépendances de jointure et 5FN
[Link](ville,département,code postal)
ville
grenoble isère 38000
code−postal
st-martin isère 38400
département
st-martin loir-et-cher 41200
31/49
Introduction
Motivation 1FN
Dépendances fonctionnelles 2FN
Décomposition des relations 3FN
Formes normales BCK FN
Algorithmes de normalisation Dépendances multivaluées et 4FN
Dépendances de jointure et 5FN
Définition
Une relation est en forme normale de Boyce-Codd-Kent ssi les seules
dépendances non triviales sont celles dans lesquelles une clé détermine un
ou plusieurs attributs
ou il n’existe pas de DF MG → MD telle que MG 6= clé
BCK FN et 3FN
Une telle relation est en 3FN.
Décomposition de [Link]
cp-ville(ville,code-postal)
cp-dépt(code-postal,département)
⇒ perte de la DF (ville,département) → code-postal
32/49
Introduction
Motivation 1FN
Dépendances fonctionnelles 2FN
Décomposition des relations 3FN
Formes normales BCK FN
Algorithmes de normalisation Dépendances multivaluées et 4FN
Dépendances de jointure et 5FN
Pas de DF :
n étudiant 9 cours
n étudiant 9 sport
L’ensemble des attributs est clé ⇒ relation en 3FN
33/49
Introduction
Motivation 1FN
Dépendances fonctionnelles 2FN
Décomposition des relations 3FN
Formes normales BCK FN
Algorithmes de normalisation Dépendances multivaluées et 4FN
Dépendances de jointure et 5FN
Dépendance multivaluée
Définition
Soit R(A1,A2,...,An) et X et Y deux sous-ensembles de A1,A2,...,An.
On dit que X →→ Y (X multidétermine Y, ou il y a une
dépendance multivaluée de Y sur X) si, étant donné une valeur de
X, il y a un ensemble de valeurs de Y associées et cet ensemble est
indépendant de Z = R - (X,Y).
y
y’
Y
x
z
z’
X
z’’
34/49
Introduction
Motivation 1FN
Dépendances fonctionnelles 2FN
Décomposition des relations 3FN
Formes normales BCK FN
Algorithmes de normalisation Dépendances multivaluées et 4FN
Dépendances de jointure et 5FN
35/49
Introduction
Motivation 1FN
Dépendances fonctionnelles 2FN
Décomposition des relations 3FN
Formes normales BCK FN
Algorithmes de normalisation Dépendances multivaluées et 4FN
Dépendances de jointure et 5FN
Remarques
Notation : X →→ Y k Z ou X →→ Z k Y (symétrie)
Différent d’un ensemble d’attributs multivalués
DM triviale X →→ Y dans R :
X ∪ Y = R (il n’y a pas deux DM indépendantes)
=⇒ n vol →→ (n avion,pilote)
36/49
Introduction
Motivation 1FN
Dépendances fonctionnelles 2FN
Décomposition des relations 3FN
Formes normales BCK FN
Algorithmes de normalisation Dépendances multivaluées et 4FN
Dépendances de jointure et 5FN
Définition
Une relation R est en 4FN ssi pour toute DM X →→ Y avec X ⊂ R et
Y ⊂ R, l’un au moins des faits suivants est vérifié
X →→ Y est triviale
X est clé de R
Une relation 4FN ne contient que des DF (où la clé détermine un attribut
non clé) ou une DM triviale.
37/49
Introduction
Motivation 1FN
Dépendances fonctionnelles 2FN
Décomposition des relations 3FN
Formes normales BCK FN
Algorithmes de normalisation Dépendances multivaluées et 4FN
Dépendances de jointure et 5FN
Décomposition en 4FN
Théorème
Toute relation a une décomposition (ou plusieurs) en quatrième forme
normale qui est sans perte d’information.
Exemples
(n étudiant,cours,sport)
=⇒ (n étudiant,cours) et (n étudiant,sport)
(n vol,n avion,pilote)
=⇒ (n vol,n avion) et (n vol,pilote)
38/49
Introduction
Motivation 1FN
Dépendances fonctionnelles 2FN
Décomposition des relations 3FN
Formes normales BCK FN
Algorithmes de normalisation Dépendances multivaluées et 4FN
Dépendances de jointure et 5FN
Exemple
revendeur marque produit
Dupont Renault voiture
Dupont Renault camion
Dupont Volvo voiture
Dupont Volvo camion
Durand Renault voiture
Dépendance de jointure :
si un revendeur vend un certain type de produit et qu’il représente la
marque qui fabrique ce produit, alors il vend le produit fabriqué par la
marque
39/49
Introduction
Motivation 1FN
Dépendances fonctionnelles 2FN
Décomposition des relations 3FN
Formes normales BCK FN
Algorithmes de normalisation Dépendances multivaluées et 4FN
Dépendances de jointure et 5FN
Décomposition en 5FN
marque produit
revendeur marque revendeur produit
Renault voiture
Dupont Renault Dupont voiture
Renault camion
Dupont Volvo Dupont camion
Volvo voiture
Durand Renault Durand voiture
Volvo camion
marque
revendeur x
produit
40/49
Introduction
Motivation 1FN
Dépendances fonctionnelles 2FN
Décomposition des relations 3FN
Formes normales BCK FN
Algorithmes de normalisation Dépendances multivaluées et 4FN
Dépendances de jointure et 5FN
1FN
2FN
DF 3FN
11111111111
00000000000
00000000000
11111111111
00000000000
11111111111
4FN
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111 DF
00000000000
11111111111
5FN
00000000000
11111111111
00000000000
11111111111 00000
11111
11111
00000
00000000000
11111111111
00000000000
11111111111 DM
00000
11111
00000000000
11111111111 00000
11111
00000
11111
00000000000
11111111111
00000000000
11111111111
00000000000
11111111111 DJ
00000000000
11111111111
00000000000
11111111111
DM
DJ
41/49
Motivation
Définitions
Dépendances fonctionnelles
Algorithme de synthèse
Décomposition des relations
Exemple
Formes normales
Limite
Algorithmes de normalisation
Algorithmes de synthèse
préservent les DF
conduisent à des relations 3FN
prise en compte uniquement des DF
Algorithmes de décomposition
préservent le contenu
conduisent à des relations 3FN, 4FN ou 5FN
prise en compte des DF, DM, DJ
42/49
Motivation
Définitions
Dépendances fonctionnelles
Algorithme de synthèse
Décomposition des relations
Exemple
Formes normales
Limite
Algorithmes de normalisation
Algorithme de synthèse
couverture
relation
minimale
universelle
de DF
élémentaires
non triviales
algorithme
de synthèse
{ relations en 3FN }
43/49
Motivation
Définitions
Dépendances fonctionnelles
Algorithme de synthèse
Décomposition des relations
Exemple
Formes normales
Limite
Algorithmes de normalisation
Algo récursif
RÉDUIRE(G)
TANT QUE une DF n’inclut pas tous les attributs FAIRE
SI A1,A2,...,Ak isolés FAIRE
ÉDITER (A1,A2,...,Ak)
ÉLIMINER (A1,A2,...,Ak)
FSI
RECHERCHER le plus grand X tel que
n >= 1
et X − > Ai, X − > Aj, ..., X − > An
ÉDITER (X,Ai,Aj,...,An)
ÉLIMINER LES DF UTILISÉES
ÉLIMINER LES SOMMETS ISOLÉS
RÉDUIRE(G)
FTQ
44/49
Motivation
Définitions
Dépendances fonctionnelles
Algorithme de synthèse
Décomposition des relations
Exemple
Formes normales
Limite
Algorithmes de normalisation
Exemple
Graphe G de départ (couverture minimale de DF)
date
montant
n°comm nom
n°client
adresse
n°produit montant−lc
qtté_comm
prix−unit libellé
Première itération
X = (n comm,n produit)
X → qtté-comm, X → montant-lc
=⇒ rel1(n comm,n produit,qtté-comm,montant-lc)
45/49
Motivation
Définitions
Dépendances fonctionnelles
Algorithme de synthèse
Décomposition des relations
Exemple
Formes normales
Limite
Algorithmes de normalisation
date
montant
n°comm nom
n°client
adresse
n°produit
prix−unit libellé
Deuxième itération
X = (n comm)
X → date, X → montant, X → n client
=⇒ rel2(n comm,date,montant,n client)
46/49
Motivation
Définitions
Dépendances fonctionnelles
Algorithme de synthèse
Décomposition des relations
Exemple
Formes normales
Limite
Algorithmes de normalisation
n°client nom
adresse
n°produit
prix−unit libellé
Troisième itération
X = n produit n°client nom
X → prix-unit, X → libellé adresse
=⇒ rel3(n produit,prix-unit,libellé)
Quatrième itération :
X = n client
X → nom, X → adresse
=⇒ rel4(n client,nom,adresse)
47/49
Motivation
Définitions
Dépendances fonctionnelles
Algorithme de synthèse
Décomposition des relations
Exemple
Formes normales
Limite
Algorithmes de normalisation
Limite
Il ne doit y avoir que des DF (graphe connexe)
Palliatif
Une DM triviale (ou ensemble de DM) doit être extraite sous forme d’une
relation
Exemple
produits fournis(n P,n F,libellé,nomF,adrF)
n°F n°P
=⇒ R1(n P,n F)
puis traiter chaque partie du graphe
48/49
Motivation
Définitions
Dépendances fonctionnelles
Algorithme de synthèse
Décomposition des relations
Exemple
Formes normales
Limite
Algorithmes de normalisation
Récapitulatif
49/49