SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
1
Théorie de la Normalisation
Talel.Abdessalem@enst.fr
Supports de cours : (1) Database Management Systems, R. Ramakrishnan and J. Gehrke, ed. McGrawHill, 2000.
(2) Bases de Données, G. Gardarin, ed. Eyrolles, 2001.
2
Théorie de la normalisation
? Objectif et principes
? Dépendances fonctionnelles
? Décomposition de schéma
? Formes normales
? Automatisation de la normalisation
? Conclusion
3
Objectif et principes
? Objectif : Minimiser les redondances pour améliorer les
performance de la BD.
?requêtes d’interrogation et de mise à jour plus rapides
?moins de valeurs NULL
?Gestion de l’intégrité des données simplifiée
? Principe : + PUIS
+ NOM
+ NSS
+ PRIX
+ COULEUR
+ NVH + TYPE
+ DATE
+ PRENOM
+ MARQUE NORMALISATION
RELATION UNIVERSELLE
R1 ( ............. )
R2 ( ............. )
.
.
.
4
Dépendances fonctionnelles
? Définition :
X --> Y, X détermine Y, ou Y dépend fonctionnellement de X,
X et Y éléments de R
est une assertion sur toutes les instances de la relation R telle que si deux tuples quelconques
de R possèdent la même valeur sur X, alors ils doivent avoir la même valeur sur Y.
Formellement :
X --> Y ssi quel que soit l’instance r de R, pour tout tuple t1 et t2 de r on a ? X(t1) = ? X(t2)
==> ? Y(t1) = ? Y(t2)
Utilité
Contrainte sur les données que peut contenir la relation.
Outil de contrôle d’intégrité des données (niveau schéma).
Outil mathématique permettant d’expliquer le processus de la « normalisation »
Vital lorsqu’on veut ré-étudier le schéma d’une BD qui pose problème.
5
Axiomes d'Armstrong
? Propriétés de base
Réflexivité
Y inclus dans X => X -> Y
Augmentation
X -> Y => XZ -> YZ
Transitivité
X -> Y et Y -> Z => X -> Z
? Propriétés déduites
Union
X -> Y
=> X -> YZ
X -> Z
Pseudo-transitivité
X -> Y
=> XW -> Z
YW -> Z
Décomposition
X -> Y
=> X -> Z
Z inclus dans Y
6
F+ et Couverture minimale
? Fermeture transitive d’un ensemble F de DF
– F+ = F ? {DF déduites de celles contenues dans F}
? Couverture minimale d’un ensemble F de DF
– Sous-ensemble minimum de DF élémentaires permettant de générer toutes
les autres.
– Théorème : tout ensemble de DF possède une couverture minimale, en
général non unique.
– Formellement, F est une CM ssi :
? Tout f dans F est élémentaire.
? Il n’existe pas de f dans F telle que F - {f} soit « équivalent » à F.
? DF élémentaires (les seules utiles)
– Une DF élémentaire est une DF de la forme X -->A, où :
? A est un attribut, X un ensemble d’attributs, A n'est pas inclus dans X
? il n'existe pas X' inclus dans X tel que X' -> A
? Equivalence
– On dit que deux ensembles de DF sont équivalents s’ils possèdent la même
fermeture transitive.
7
Clé d’une relation
? Définition :
Ensemble minimum d’attributs qui détermine tous les autres.
? Formellement :
Soient : R (A1, A2, ..., An) un schéma de relation, F+ l'ensemble
des DF associés et X un sous-ensemble de A1, A2, ... , An.
X est une clé de R ssi :
? X -> A1 A2 ... An est dans F+
? il n'existe pas de sous-ensemble X’inclus dans X tel que X’-> A1 A2
... An
? Non unicité :
? Il peut y avoir plusieurs clés pour une relation (clés candidates)
? Une est choisie comme clé primaire
? Sur-clé :
? Sur-clé : X est sur-clé ssi X->R dans F+
8
N° VEH
COULEUR
TYPE MARQUE
PUISSANCE
Graphe des DF
VOITURE (N°VEH, TYPE, COULEUR, MARQUE, PUISSANCE)
9
CRU --> TYPE
TYPE, CLIENT --> REMISE
TYPE CLIENT REMISE
A
A
B
C1
C2
C1
3%
5%
4%
TYPE CLIENT REMISE
A
A
B
C1
C2
C1
3%
5%
4%
CRU
CHENAS
MEDOC
JULIENAS
Autre Exemple
CRU
TYPE
CLIENT
REMISE
10
Décomposition de schéma
Définition :
La décomposition d'un schéma de relation R(A1, … , An) consiste en
son remplacement par une collection de relation (R1,… Rm) tel que
SCHEM (R) = SCHEM (R1) U SCHEM (R2) U ... U SCHEM (Rm)
But de la décomposition :
Casser R en de plus petites relations afin d'éviter :
les redondances
les anomalies en mises à jour
11
Décomposition Sans Perte
d’Information
Définition
Une décomposition d'une relation R en m relation (R1, … Rm) est SPI
par rapport à un ensemble de DF si et seulement si, quelle que soit I
une instance de R, alors
I = I1 x I2 x ... x Im
où Ij = ? Rj (I)
Théorème
Une décomposition de R en R1 et R2 est SPI si R1 ? R2 est sur-clé de
R1 et/ou R2.
12
VOITURE NVH MARQ UE TYPE PUIS COULEUR
872RH75 RENAULT R21 7 BLEUE
975AB80 RENAULT R21 7 BEIGE
R'1 X R'2 X R'3
872RH75 R21 7 BLEUE RENAULT
872RH75 R21 7 BEIGE RENAULT
975AB80 R21 7 BLEUE RENAULT
975AB80 R21 7 BEIGE RENAULT
R1 R2
8H75 R21 BLEUE R21 RENAULT 7
97AB80 R21 BEIGE
VOITURE = R1 X R2
R'1 R2 R'3
872RH75 R21 R21 7 BLEUE R21 RENAULT
975AB80 R21 R21 7 BEIGE
VOITURE <> R'1 X R'2 X R'3
Exemple
N° VEH
COULEUR
TYPE MARQUE
PUISSANCE
13
Décomposition sans perte de DF
Définition
Une décomposition (R1, … Rm) de R préserve les DFs (SPD) si la fermeture
transitive des DFs de R est la même que la fermeture transitive de l'union des
Dfs des R1, … Rm
Exemple
1) R1 (NVH, TYPE, COULEUR) =>F1 = { NVH -> TYPE, NVH -> COULEUR }
R2 (TYPE, MARQUE, PUIS) => F2 = { TYPE -> MARQUE, TYPE -> PUIS }
==> OK
2) R'1 (NVH, TYPE) => F'1 = { NVH -> TYPE }
R'2(TYPE, PUIS, COULEUR) =>F'2 = {TYPE -> PUIS}
R'3(TYPE, MARQUE) => F'3 = {TYPE -> MARQUE}
==> ON A PERDU LA DF : NVH ->COULEUR
14
Exemple
VOITURE NVH MARQUE TYPE PUIS COULEUR
872RH75 RENAULT R21 7 BLEUE
975AB80 RENAULT R21 7 BEIGE
VOITURE (NVH, MARQUE, TYPE, PUIS, COULEUR)
R1 (NVH, TYPE, COULEUR)
R2 (TYPE, MARQUE, PUIS)
R'1 (NVH, TYPE)
R'2 (TYPE, PUIS, COULEUR)
R'3 (TYPE, MARQUE)
N° VEH
COULEUR
TYPE MARQUE
PUISSANCE
Décomposition
15
Une telle relation doit être décomposée en répétant les noms
pour chaque profession
PERSONNE NOM PROFESSION
DUPONT Ingénieur, Professeur
MARTIN Géomètre
Formes normales
? Définition 1NF
Une relation est en 1ère forme normale si tout
attribut contient une valeur atomique (unique)
? Exemple
16
R K1 K2 X Y
Une telle relation doit être décomposée en
R1(K1,K2,X) et R2(K2,Y)
2NF
? Définition
une relation est en 2e forme normale ssi :
? elle est en 1ère forme
? tout attribut non clé ne dépend pas d'une partie de clé
? Schéma
17
Exemple 2NF
? Exemple 1 :
– Fournisseur (nom,adresse, article, prix)
– La clé est (nom, article)
– Mais nom --> adresse : pas en 2e forme
? Exemple 2 :
– R (cru,type,client,remise)
– La clé est (cru, client)
– Mais cru --> type : pas en 2e forme
18
R K X Y Z
Une telle relation doit être décomposée en
R1(K, X, Y) et R2(X,Z)
3NF
? Définition
– une relation est en 3e forme normale ssi :
? elle est en 2e forme
? tout attribut n'appartenant pas a une clé ne dépend pas
d'un autre attribut non clé
? Schéma
19
Exemple 3ème Forme
? Exemple
– Voiture (nvh, marque, type,puissance, couleur)
– Type --> marque
– Type --> puissance
Pas en 3eme forme !
? Caractéristiques de la 3NF :
– redondance limitée
– On arrive toujours à une décomposition en 3NF SPI et SPD
20
Exemples de Décomposition
? Voiture (nvh, marque, type, puissance,
couleur)
véhicule (nvh, type, couleur)
Modèle (type, marque, puissance)
? Réduction (cru, type, client, remise)
Remise (cru,client,remise)
Type (cru,type)
CRU
TYPE
CLIENT
REMISE
21
Automatisation de la décomposition
AUTOMATISATION DU
PROCESSUS DE DECOMPOSITION
EN 3NF, A PARTIR DE L'ENSEMBLE
DES ATTRIBUTS ET DES DFs
ALGORIHME
DE
DECOMPOSITION
RELATIONS
EN 3FN
RELATION
UNIVERSELLE
DFs
22
Algorithme de décomposition
1. A partir du graphe G des DF, calculer une couverture minimale C
2. Editer l'ensemble des attributs isolés dans une même relation (tous les attributs sont clés)
3. Rechercher le plus grand ensemble X d'attibuts qui détermine d'autres attributs A1, … An
4. Editer la relation (X, A1, … , An) qui est en 3FN
5. Supprimer les DFs (X->A1, … X->An) du graphe de couverture minimale C
6. Supprimer les attributs isolés de C (i.e. les attributs non-cible ni source de DF)
7. Répéter l'opération de réduction du graphe C à partir de l'étape 3, jusqu'à ce que C soit
vide.
8. Ajouter une relation dont les attributs forment une clé de la relation universelle
NVH
NPRO
PRENOM NOM
DATE
PRIX
COULEUR
TYPE
MARQUE PUIS
23
R K1 K2 X Y
Une telle relation peut être décomposée en
R1(K1, K2, X) et R2(Y,K1)
Encore moins de redondances : la forme
BCNF
? Définition
une relation est en BCNF (Boyce-Codd Normal Form) ssi :
les seules dépendances fonctionnelles sont du type clé détermine
attribut non clé
Plus simple que 3NF, un peu plus fort, mais ne peut pas toujours
être obtenue SPD !
24
CRU, PAYS --> REGION
REGION--> PAYS
Exemple
CRU
PAYS
REGION
R (CRU, PAYS, REGION)
Décomposition BCNF :
R1(REGION, PAYS)
R2(CRU, REGION)
25
Conclusion
? Normalisation utile
– pour obtenir une représentation canonique des
entités du monde réel
– pour améliorer la performance de la BD
? Normalisation automatisable
– Algos 3NF
– outils du commerce (Power Designer, ER-Win,
etc.)

Contenu connexe

Tendances

Transmission de puissance
Transmission de puissanceTransmission de puissance
Transmission de puissanceBinsaf1
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMajid CHADAD
 
Modélisation de données pour MongoDB
Modélisation de données pour MongoDBModélisation de données pour MongoDB
Modélisation de données pour MongoDBMongoDB
 
Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesLilia Sfaxi
 
Cours système d'exploitation
Cours système d'exploitationCours système d'exploitation
Cours système d'exploitationAmel Morchdi
 
Chp3 - Fonctionnement des ERP
Chp3 - Fonctionnement des ERPChp3 - Fonctionnement des ERP
Chp3 - Fonctionnement des ERPLilia Sfaxi
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UMLAmir Souissi
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)rezgui mohamed
 
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...Mehdi Hamime
 
Gestion d’une agence de voyage routière (Blondel Seumo)
Gestion d’une  agence  de  voyage  routière (Blondel Seumo)Gestion d’une  agence  de  voyage  routière (Blondel Seumo)
Gestion d’une agence de voyage routière (Blondel Seumo)Gantner Technologies
 
Présentation PPT CARSELFCARE
 Présentation PPT  CARSELFCARE Présentation PPT  CARSELFCARE
Présentation PPT CARSELFCAREBILEL TLILI
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de triSana Aroussi
 
Embarqués temps réel
Embarqués temps réelEmbarqués temps réel
Embarqués temps réelmikhailether
 
Chp6 - De UML vers C++
Chp6 - De UML vers C++Chp6 - De UML vers C++
Chp6 - De UML vers C++Lilia Sfaxi
 
Diaporamas-Réseaux Informatiques.pdf
Diaporamas-Réseaux Informatiques.pdfDiaporamas-Réseaux Informatiques.pdf
Diaporamas-Réseaux Informatiques.pdfEST-UMI de Meknès
 
Rapport PFE Application Web Mobiles belwafi bilel
Rapport PFE Application Web Mobiles belwafi bilelRapport PFE Application Web Mobiles belwafi bilel
Rapport PFE Application Web Mobiles belwafi bilelBelwafi Bilel
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite completChahrawoods Dmz
 

Tendances (20)

Programmation en C
Programmation en CProgrammation en C
Programmation en C
 
Transmission de puissance
Transmission de puissanceTransmission de puissance
Transmission de puissance
 
Merise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigésMerise+ +exercices+mcd+-+corrigés
Merise+ +exercices+mcd+-+corrigés
 
Modélisation de données pour MongoDB
Modélisation de données pour MongoDBModélisation de données pour MongoDB
Modélisation de données pour MongoDB
 
Chp3 - Diagramme de Classes
Chp3 - Diagramme de ClassesChp3 - Diagramme de Classes
Chp3 - Diagramme de Classes
 
Cours système d'exploitation
Cours système d'exploitationCours système d'exploitation
Cours système d'exploitation
 
Systeme embarque
Systeme embarqueSysteme embarque
Systeme embarque
 
Chp3 - Fonctionnement des ERP
Chp3 - Fonctionnement des ERPChp3 - Fonctionnement des ERP
Chp3 - Fonctionnement des ERP
 
diagramme de séquence UML
diagramme de séquence UMLdiagramme de séquence UML
diagramme de séquence UML
 
Cours structures des données (langage c)
Cours structures des données (langage c)Cours structures des données (langage c)
Cours structures des données (langage c)
 
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
Ecole ESMA : Projet Fin de semestre - Application de gestion d'une école - Di...
 
Gestion d’une agence de voyage routière (Blondel Seumo)
Gestion d’une  agence  de  voyage  routière (Blondel Seumo)Gestion d’une  agence  de  voyage  routière (Blondel Seumo)
Gestion d’une agence de voyage routière (Blondel Seumo)
 
Présentation PPT CARSELFCARE
 Présentation PPT  CARSELFCARE Présentation PPT  CARSELFCARE
Présentation PPT CARSELFCARE
 
Chapitre iv algorithmes de tri
Chapitre iv algorithmes de triChapitre iv algorithmes de tri
Chapitre iv algorithmes de tri
 
Embarqués temps réel
Embarqués temps réelEmbarqués temps réel
Embarqués temps réel
 
Chp6 - De UML vers C++
Chp6 - De UML vers C++Chp6 - De UML vers C++
Chp6 - De UML vers C++
 
Diaporamas-Réseaux Informatiques.pdf
Diaporamas-Réseaux Informatiques.pdfDiaporamas-Réseaux Informatiques.pdf
Diaporamas-Réseaux Informatiques.pdf
 
Rapport PFE Application Web Mobiles belwafi bilel
Rapport PFE Application Web Mobiles belwafi bilelRapport PFE Application Web Mobiles belwafi bilel
Rapport PFE Application Web Mobiles belwafi bilel
 
Cours algorithmique et complexite complet
Cours algorithmique et complexite completCours algorithmique et complexite complet
Cours algorithmique et complexite complet
 
QCM Sécurité Informatique
QCM Sécurité InformatiqueQCM Sécurité Informatique
QCM Sécurité Informatique
 

En vedette

exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql Yassine Badri
 
exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du meriseYassine Badri
 
exercices gestion de stock
exercices gestion de stock exercices gestion de stock
exercices gestion de stock Yassine Badri
 
cours j2ee -présentation
cours  j2ee -présentationcours  j2ee -présentation
cours j2ee -présentationYassine Badri
 
Conception des bases de données relationelles
Conception des bases de données relationellesConception des bases de données relationelles
Conception des bases de données relationellesYassine Badri
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence Yassine Badri
 
.logistique gestion des stock
.logistique gestion des stock .logistique gestion des stock
.logistique gestion des stock Yassine Badri
 
base de données -note de cours
base de données -note de cours base de données -note de cours
base de données -note de cours Yassine Badri
 
les servlets-java EE
les  servlets-java EEles  servlets-java EE
les servlets-java EEYassine Badri
 
les métiers d'informatique
les métiers d'informatiqueles métiers d'informatique
les métiers d'informatiqueYassine Badri
 
les métiers d'informatique
les métiers d'informatiqueles métiers d'informatique
les métiers d'informatiqueYassine Badri
 
script site e-commerce -php
script site e-commerce -php script site e-commerce -php
script site e-commerce -php Yassine Badri
 
cours base de données
cours base de donnéescours base de données
cours base de donnéesYassine Badri
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision Yassine Badri
 
Exercicescorrigs 130111070052-phpapp01
Exercicescorrigs 130111070052-phpapp01Exercicescorrigs 130111070052-phpapp01
Exercicescorrigs 130111070052-phpapp01moussking
 
Gestion des-stocks-et-des-approvisionnements
Gestion des-stocks-et-des-approvisionnementsGestion des-stocks-et-des-approvisionnements
Gestion des-stocks-et-des-approvisionnementsmoulai
 
Exercices corrigés
Exercices corrigésExercices corrigés
Exercices corrigéshadhoum
 
Le langage plsql
Le langage plsqlLe langage plsql
Le langage plsqlkati_f87
 

En vedette (20)

exercices base de données - sql
exercices  base de données - sql exercices  base de données - sql
exercices base de données - sql
 
exercices Corrigées du merise
exercices Corrigées du  meriseexercices Corrigées du  merise
exercices Corrigées du merise
 
exercices gestion de stock
exercices gestion de stock exercices gestion de stock
exercices gestion de stock
 
cours j2ee -présentation
cours  j2ee -présentationcours  j2ee -présentation
cours j2ee -présentation
 
Conception des bases de données relationelles
Conception des bases de données relationellesConception des bases de données relationelles
Conception des bases de données relationelles
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence
 
.logistique gestion des stock
.logistique gestion des stock .logistique gestion des stock
.logistique gestion des stock
 
base de données -note de cours
base de données -note de cours base de données -note de cours
base de données -note de cours
 
les servlets-java EE
les  servlets-java EEles  servlets-java EE
les servlets-java EE
 
les métiers d'informatique
les métiers d'informatiqueles métiers d'informatique
les métiers d'informatique
 
Cours php
Cours php Cours php
Cours php
 
les métiers d'informatique
les métiers d'informatiqueles métiers d'informatique
les métiers d'informatique
 
script site e-commerce -php
script site e-commerce -php script site e-commerce -php
script site e-commerce -php
 
cours base de données
cours base de donnéescours base de données
cours base de données
 
Exercice arbre de décision
Exercice arbre de décision Exercice arbre de décision
Exercice arbre de décision
 
Exercicescorrigs 130111070052-phpapp01
Exercicescorrigs 130111070052-phpapp01Exercicescorrigs 130111070052-phpapp01
Exercicescorrigs 130111070052-phpapp01
 
Gestion des-stocks-et-des-approvisionnements
Gestion des-stocks-et-des-approvisionnementsGestion des-stocks-et-des-approvisionnements
Gestion des-stocks-et-des-approvisionnements
 
Exercices corrigés
Exercices corrigésExercices corrigés
Exercices corrigés
 
Chap 02 poo en java
Chap 02 poo en javaChap 02 poo en java
Chap 02 poo en java
 
Le langage plsql
Le langage plsqlLe langage plsql
Le langage plsql
 

Plus de Yassine Badri

La theorie des dependances et la normalisation des relations-base de données
La theorie des dependances et la normalisation des relations-base de donnéesLa theorie des dependances et la normalisation des relations-base de données
La theorie des dependances et la normalisation des relations-base de donnéesYassine Badri
 
Java chap 04 surcharge des méthodes [mode de compatibilité]
Java chap 04 surcharge des méthodes [mode de compatibilité]Java chap 04 surcharge des méthodes [mode de compatibilité]
Java chap 04 surcharge des méthodes [mode de compatibilité]Yassine Badri
 
Chap 03 poo en java partie2
Chap 03 poo en java partie2Chap 03 poo en java partie2
Chap 03 poo en java partie2Yassine Badri
 
Chap 03 poo en java partie1
Chap 03 poo en java partie1Chap 03 poo en java partie1
Chap 03 poo en java partie1Yassine Badri
 

Plus de Yassine Badri (6)

La theorie des dependances et la normalisation des relations-base de données
La theorie des dependances et la normalisation des relations-base de donnéesLa theorie des dependances et la normalisation des relations-base de données
La theorie des dependances et la normalisation des relations-base de données
 
Arbre de décision
Arbre de décisionArbre de décision
Arbre de décision
 
Java chap 04 surcharge des méthodes [mode de compatibilité]
Java chap 04 surcharge des méthodes [mode de compatibilité]Java chap 04 surcharge des méthodes [mode de compatibilité]
Java chap 04 surcharge des méthodes [mode de compatibilité]
 
Chap 03 poo en java partie2
Chap 03 poo en java partie2Chap 03 poo en java partie2
Chap 03 poo en java partie2
 
Chap 03 poo en java partie1
Chap 03 poo en java partie1Chap 03 poo en java partie1
Chap 03 poo en java partie1
 
Ch 01 poo
Ch 01 pooCh 01 poo
Ch 01 poo
 

Théorie de normalisation-base de données

  • 1. 1 Théorie de la Normalisation Talel.Abdessalem@enst.fr Supports de cours : (1) Database Management Systems, R. Ramakrishnan and J. Gehrke, ed. McGrawHill, 2000. (2) Bases de Données, G. Gardarin, ed. Eyrolles, 2001. 2 Théorie de la normalisation ? Objectif et principes ? Dépendances fonctionnelles ? Décomposition de schéma ? Formes normales ? Automatisation de la normalisation ? Conclusion
  • 2. 3 Objectif et principes ? Objectif : Minimiser les redondances pour améliorer les performance de la BD. ?requêtes d’interrogation et de mise à jour plus rapides ?moins de valeurs NULL ?Gestion de l’intégrité des données simplifiée ? Principe : + PUIS + NOM + NSS + PRIX + COULEUR + NVH + TYPE + DATE + PRENOM + MARQUE NORMALISATION RELATION UNIVERSELLE R1 ( ............. ) R2 ( ............. ) . . . 4 Dépendances fonctionnelles ? Définition : X --> Y, X détermine Y, ou Y dépend fonctionnellement de X, X et Y éléments de R est une assertion sur toutes les instances de la relation R telle que si deux tuples quelconques de R possèdent la même valeur sur X, alors ils doivent avoir la même valeur sur Y. Formellement : X --> Y ssi quel que soit l’instance r de R, pour tout tuple t1 et t2 de r on a ? X(t1) = ? X(t2) ==> ? Y(t1) = ? Y(t2) Utilité Contrainte sur les données que peut contenir la relation. Outil de contrôle d’intégrité des données (niveau schéma). Outil mathématique permettant d’expliquer le processus de la « normalisation » Vital lorsqu’on veut ré-étudier le schéma d’une BD qui pose problème.
  • 3. 5 Axiomes d'Armstrong ? Propriétés de base Réflexivité Y inclus dans X => X -> Y Augmentation X -> Y => XZ -> YZ Transitivité X -> Y et Y -> Z => X -> Z ? Propriétés déduites Union X -> Y => X -> YZ X -> Z Pseudo-transitivité X -> Y => XW -> Z YW -> Z Décomposition X -> Y => X -> Z Z inclus dans Y 6 F+ et Couverture minimale ? Fermeture transitive d’un ensemble F de DF – F+ = F ? {DF déduites de celles contenues dans F} ? Couverture minimale d’un ensemble F de DF – Sous-ensemble minimum de DF élémentaires permettant de générer toutes les autres. – Théorème : tout ensemble de DF possède une couverture minimale, en général non unique. – Formellement, F est une CM ssi : ? Tout f dans F est élémentaire. ? Il n’existe pas de f dans F telle que F - {f} soit « équivalent » à F. ? DF élémentaires (les seules utiles) – Une DF élémentaire est une DF de la forme X -->A, où : ? A est un attribut, X un ensemble d’attributs, A n'est pas inclus dans X ? il n'existe pas X' inclus dans X tel que X' -> A ? Equivalence – On dit que deux ensembles de DF sont équivalents s’ils possèdent la même fermeture transitive.
  • 4. 7 Clé d’une relation ? Définition : Ensemble minimum d’attributs qui détermine tous les autres. ? Formellement : Soient : R (A1, A2, ..., An) un schéma de relation, F+ l'ensemble des DF associés et X un sous-ensemble de A1, A2, ... , An. X est une clé de R ssi : ? X -> A1 A2 ... An est dans F+ ? il n'existe pas de sous-ensemble X’inclus dans X tel que X’-> A1 A2 ... An ? Non unicité : ? Il peut y avoir plusieurs clés pour une relation (clés candidates) ? Une est choisie comme clé primaire ? Sur-clé : ? Sur-clé : X est sur-clé ssi X->R dans F+ 8 N° VEH COULEUR TYPE MARQUE PUISSANCE Graphe des DF VOITURE (N°VEH, TYPE, COULEUR, MARQUE, PUISSANCE)
  • 5. 9 CRU --> TYPE TYPE, CLIENT --> REMISE TYPE CLIENT REMISE A A B C1 C2 C1 3% 5% 4% TYPE CLIENT REMISE A A B C1 C2 C1 3% 5% 4% CRU CHENAS MEDOC JULIENAS Autre Exemple CRU TYPE CLIENT REMISE 10 Décomposition de schéma Définition : La décomposition d'un schéma de relation R(A1, … , An) consiste en son remplacement par une collection de relation (R1,… Rm) tel que SCHEM (R) = SCHEM (R1) U SCHEM (R2) U ... U SCHEM (Rm) But de la décomposition : Casser R en de plus petites relations afin d'éviter : les redondances les anomalies en mises à jour
  • 6. 11 Décomposition Sans Perte d’Information Définition Une décomposition d'une relation R en m relation (R1, … Rm) est SPI par rapport à un ensemble de DF si et seulement si, quelle que soit I une instance de R, alors I = I1 x I2 x ... x Im où Ij = ? Rj (I) Théorème Une décomposition de R en R1 et R2 est SPI si R1 ? R2 est sur-clé de R1 et/ou R2. 12 VOITURE NVH MARQ UE TYPE PUIS COULEUR 872RH75 RENAULT R21 7 BLEUE 975AB80 RENAULT R21 7 BEIGE R'1 X R'2 X R'3 872RH75 R21 7 BLEUE RENAULT 872RH75 R21 7 BEIGE RENAULT 975AB80 R21 7 BLEUE RENAULT 975AB80 R21 7 BEIGE RENAULT R1 R2 8H75 R21 BLEUE R21 RENAULT 7 97AB80 R21 BEIGE VOITURE = R1 X R2 R'1 R2 R'3 872RH75 R21 R21 7 BLEUE R21 RENAULT 975AB80 R21 R21 7 BEIGE VOITURE <> R'1 X R'2 X R'3 Exemple N° VEH COULEUR TYPE MARQUE PUISSANCE
  • 7. 13 Décomposition sans perte de DF Définition Une décomposition (R1, … Rm) de R préserve les DFs (SPD) si la fermeture transitive des DFs de R est la même que la fermeture transitive de l'union des Dfs des R1, … Rm Exemple 1) R1 (NVH, TYPE, COULEUR) =>F1 = { NVH -> TYPE, NVH -> COULEUR } R2 (TYPE, MARQUE, PUIS) => F2 = { TYPE -> MARQUE, TYPE -> PUIS } ==> OK 2) R'1 (NVH, TYPE) => F'1 = { NVH -> TYPE } R'2(TYPE, PUIS, COULEUR) =>F'2 = {TYPE -> PUIS} R'3(TYPE, MARQUE) => F'3 = {TYPE -> MARQUE} ==> ON A PERDU LA DF : NVH ->COULEUR 14 Exemple VOITURE NVH MARQUE TYPE PUIS COULEUR 872RH75 RENAULT R21 7 BLEUE 975AB80 RENAULT R21 7 BEIGE VOITURE (NVH, MARQUE, TYPE, PUIS, COULEUR) R1 (NVH, TYPE, COULEUR) R2 (TYPE, MARQUE, PUIS) R'1 (NVH, TYPE) R'2 (TYPE, PUIS, COULEUR) R'3 (TYPE, MARQUE) N° VEH COULEUR TYPE MARQUE PUISSANCE Décomposition
  • 8. 15 Une telle relation doit être décomposée en répétant les noms pour chaque profession PERSONNE NOM PROFESSION DUPONT Ingénieur, Professeur MARTIN Géomètre Formes normales ? Définition 1NF Une relation est en 1ère forme normale si tout attribut contient une valeur atomique (unique) ? Exemple 16 R K1 K2 X Y Une telle relation doit être décomposée en R1(K1,K2,X) et R2(K2,Y) 2NF ? Définition une relation est en 2e forme normale ssi : ? elle est en 1ère forme ? tout attribut non clé ne dépend pas d'une partie de clé ? Schéma
  • 9. 17 Exemple 2NF ? Exemple 1 : – Fournisseur (nom,adresse, article, prix) – La clé est (nom, article) – Mais nom --> adresse : pas en 2e forme ? Exemple 2 : – R (cru,type,client,remise) – La clé est (cru, client) – Mais cru --> type : pas en 2e forme 18 R K X Y Z Une telle relation doit être décomposée en R1(K, X, Y) et R2(X,Z) 3NF ? Définition – une relation est en 3e forme normale ssi : ? elle est en 2e forme ? tout attribut n'appartenant pas a une clé ne dépend pas d'un autre attribut non clé ? Schéma
  • 10. 19 Exemple 3ème Forme ? Exemple – Voiture (nvh, marque, type,puissance, couleur) – Type --> marque – Type --> puissance Pas en 3eme forme ! ? Caractéristiques de la 3NF : – redondance limitée – On arrive toujours à une décomposition en 3NF SPI et SPD 20 Exemples de Décomposition ? Voiture (nvh, marque, type, puissance, couleur) véhicule (nvh, type, couleur) Modèle (type, marque, puissance) ? Réduction (cru, type, client, remise) Remise (cru,client,remise) Type (cru,type) CRU TYPE CLIENT REMISE
  • 11. 21 Automatisation de la décomposition AUTOMATISATION DU PROCESSUS DE DECOMPOSITION EN 3NF, A PARTIR DE L'ENSEMBLE DES ATTRIBUTS ET DES DFs ALGORIHME DE DECOMPOSITION RELATIONS EN 3FN RELATION UNIVERSELLE DFs 22 Algorithme de décomposition 1. A partir du graphe G des DF, calculer une couverture minimale C 2. Editer l'ensemble des attributs isolés dans une même relation (tous les attributs sont clés) 3. Rechercher le plus grand ensemble X d'attibuts qui détermine d'autres attributs A1, … An 4. Editer la relation (X, A1, … , An) qui est en 3FN 5. Supprimer les DFs (X->A1, … X->An) du graphe de couverture minimale C 6. Supprimer les attributs isolés de C (i.e. les attributs non-cible ni source de DF) 7. Répéter l'opération de réduction du graphe C à partir de l'étape 3, jusqu'à ce que C soit vide. 8. Ajouter une relation dont les attributs forment une clé de la relation universelle NVH NPRO PRENOM NOM DATE PRIX COULEUR TYPE MARQUE PUIS
  • 12. 23 R K1 K2 X Y Une telle relation peut être décomposée en R1(K1, K2, X) et R2(Y,K1) Encore moins de redondances : la forme BCNF ? Définition une relation est en BCNF (Boyce-Codd Normal Form) ssi : les seules dépendances fonctionnelles sont du type clé détermine attribut non clé Plus simple que 3NF, un peu plus fort, mais ne peut pas toujours être obtenue SPD ! 24 CRU, PAYS --> REGION REGION--> PAYS Exemple CRU PAYS REGION R (CRU, PAYS, REGION) Décomposition BCNF : R1(REGION, PAYS) R2(CRU, REGION)
  • 13. 25 Conclusion ? Normalisation utile – pour obtenir une représentation canonique des entités du monde réel – pour améliorer la performance de la BD ? Normalisation automatisable – Algos 3NF – outils du commerce (Power Designer, ER-Win, etc.)