normalisation - nfe113nfe113.2bl.fr/documents/3_normalisation.pdf · normalisation permet de...
TRANSCRIPT
1
NormalisationInventé et théorisé par Ted Codd (1923-2003)
Eric Boniface
NFE113 Administration et configuration des bases de données - 2010
2
Sommaire
� Objectifs
� Dépendance fonctionnelle
� 1FN, 2FN, etc.
3
Normalisation
� Permet de définir une méthode de conception de "bonnes" tables, c'est-à-dire sans redondances et sans perte d'information
� Redondances et erreurs
titre année nomMES prénomMES AgeAlien 1979 Scott Ridley 66
Vertigo 1958 Hitchcock Alfred 110Psychose 1960 Hitchcock Alfred 110
Kagemusha 1980 Kurosawa Akira 99Volte-face 1997 Woo John 63
Pulp Fiction 1995 Tarantino Quentin 46Titanic 1997 Cameron James 55
Sacrifice 1986 Tarkovski Andrei 77
4
Normalisation : pourquoi ?
� Pour éliminer les redondances
� Pour mieux comprendre les relations sémantiques entre les données
� Pour éviter les incohérences de mise à jour
� Pour éviter, autant que possible, les valeurs nulles
5
Normalisation : comment ?
� Approche par décomposition� A partir d’une table contenant tous les attributs� Décomposer jusqu’à ce qu’il n’y ait plus de redondances
� Approche par synthèse� A partir de l’ensemble des attributs� Et des dépendances fonctionnelles� Constituer les tables
� Processus itératif (1FN, puis 2FN, etc.)
6
Normalisation : rappel
� Soient R (A1, A2, …, An) et S (B1, B2, …, Bp) deux relations; la jointure de R et S est la relation T qui a pour attributs l'union des attributs de R et S, et pour tuples l'ensemble des tuples construits à partir de R et S sur les valeurs identiques des attributs communs
� Notation :
7
Normalisation
Décomposition sans perte� La décomposition de R en R1, R2, …, Rn est sans
perte si, pour toute extension de R :
8
Sommaire
� Objectifs
� Dépendance fonctionnelle
� 1FN, 2FN, etc.
9
Définition : les attributs A1,…,An déterminent fonctionnellement l'attribut B si à un n-uplet (a1,…, an) de valeurs de A1,…,An correspond au plus une valeur b de B� Notation : A1 … An -> B� Exemple
code -> libellé car un cours a toujours le même libellécode -> professeur si un cours est toujours donné par le même professeurcode, trimestre -> professeur si un cours un trimestre donné est donné par un professeurcode -> trimestre si un cours est donné un trimestre maximum
Dépendance fonctionnelle
10
� La notion de dépendance fonctionnelle (df) est liée àla sémantique des données
� Pour déterminer si une dépendance fonctionnelle est vraie, il faut raisonner sur la sémantique de la table et non sur son contenu à l’instant t
� Le contenu de la table peut permettre d’invalider certaines df
Dépendance fonctionnelle
11
Axiomes d’Armstrong� Propriétés des dépendances fonctionnelles
� Réflexivité X -> Y� Augmentation X ->Y => XZ -> Y� Transitivité X -> Y et Y -> Z => X -> Z
� Conséquences� Union X -> Y et X -> Z => X -> YZ� Pseudo-transitivité X -> Y et WY -> Z => WX -> Z� Décomposition X -> Y et Z ⊆ Y => X -> Z
Dépendance fonctionnelle
12
Dépendance fonctionnelle élémentaire
� X -> A telle que1. A est un attribut unique2. A ∉ X3. Il n'existe pas X' ⊆ X tel que X' -> A
� Dans la recherche des dfs, se limiter sans restriction aux dfs élémentaires
Dépendance fonctionnelle
13
ExempleCOURS (NOMPROF, VILLE, DEPARTEMENT, NOMETUDIANT,
AGE, COURS, NOTE)
Dépendance fonctionnelle
Dépendances fonctionnelles validesNOMPROF → VILLENOMPROF NOMETUDIANT → VILLENOMETUDIANT → AGE
Dépendances fonctionnelles invalidesAGE → NOMETUD
Dépendances fonctionnelles élémentairesNOMPROF → VILLEVILLE → DEPARTEMENTNOMPROF → DEPARTEMENTNOMETUD → AGENOMETUD NOMCOURS → NOTENOMCOURS → NOMPROF
14
� Fermeture transitive d'un ensemble de dépendances fonctionnelles� Ensemble des dfs enrichi de toutes les dfs
déduites par transitivité ou pseudo-transitivité� Limitation, sans perte de généralité, aux dfs
élémentaires
� Notation : F+ la fermeture transitive de F
Dépendance fonctionnelle
15
Exemple : NOMPROF VILLE DEPARTEMENT NOMETUD AGE
NOMCOURS NOTE
La fermeture transitive de : NOMPROF → VILLEVILLE → DEPARTEMENTNOMETUDIANT → AGENOMETUDIANT COURS → NOTECOURS → NOMPROF
contient en plus :NOMPROF → DEPARTEMENTNOMCOURS → VILLENOMCOURS → DEPARTEMENT
Dépendance fonctionnelle
16
Équivalence de deux ensembles de df élémentaires� Deux ensembles de DF élémentaires sont
équivalents s'ils ont la même fermeture transitive
� Couverture minimale d'un ensemble de DFs� Ensemble C de DF élémentaires tels que
� C+ contient toutes les DF élémentaires de l'ensemble d'attributs considéré
� ∀ f ∈ C, C - {f} n'est pas équivalent à C
Dépendance fonctionnelle
17
Exemple : relation COURS(NOMPROF, VILLE, DEPARTEMENT,
NOMETUDIANT, AGE, COURS, NOTE)
{1, 2, 4, 5, 6} est une couverture minimale{1, 3, 4, 5} n'est pas une couverture
Dépendance fonctionnelle
18
� Nouvelle définition : une clé est un sous-ensemble minimum d'attributs qui détermine tous les autres
X clé de R(A1, A2, …, An) tel que :1. X → A1A2 …An2. Il n'existe pas Y ⊆ X tel que Y → A1A2 …An
� Exemple : relation COURS (NOMETUD, NOMCOURS)
� Remarques : il peut y avoir plusieurs clés
Clé de relation
19
Sommaire
� Objectifs
� Dépendance fonctionnelle
� 1FN, 2FN, etc.
20
Définitions (T. Codd) : « une relation est en première forme normale si aucun de ses domaines ne peut contenir des éléments qui soient eux-mêmes des ensembles. Une relation qui n’est pas en première forme normale est dite non normalisée. »
Contre-exemples� PERSONNE (NOM, PRENOMS)
� En 1FN : PERSONNE (NOM, PRENOM1, PRENOM2)
� PERSONNE (NOM, PRENOM, ADRESSE)� En 1FN : PERSONNE (NOM, PRENOM, N°RUE, RUE,
CODEPOSTAL, VILLE)
Première forme normale 1FN
21
Exemple domaine = table
Première forme normale 1FN
Pas 1FN
En 1FN
22
Définition : une relation est en 2ème Forme Normale (2FN) si
� Elle est en 1FN� Tout attribut non clé dépend de la clé entière et non
d’une partie seulement
ExempleCOURS (NOMPROF, VILLE, DEPARTEMENT, NOMETUD,
AGE, NOMCOURS, NOTE)
Deuxième forme normale 2FN
23
� 1 seule clé (NOMETUD, NOMCOURS)� Les DF
� NOMPROF → VILLE � NOMETUD, NOMCOURS → NOTE
� VILLE → DEPARTEMENT� NOMCOURS → NOMPROF� NOMETUD → AGE
Problème pour les attributs NOMPROF, VILLE, DEPARTEMENT et AGE
Deuxième forme normale 2FN
24
� Une relation est en troisième forme normale (3FN) si :� Elle est en 2 FN� Aucune df entre deux attributs non clé
� Exemple : COURS (NOMETUD NOMCOURS NOTE)
R1 (NOMCOURS NOMPROF VILLE DEPARTEMENT)R2 (NOMETUD AGE)
� R1 n'est pas en 3 FN car NOMPROF → VILLE et VILLE →DEPARTEMENT
� R1 (NOMCOURS NOMPROF)
� R3 (NOMPROF VILLE DEPARTEMENT)
� R3 n'est pas en 3 FN car VILLE → DEPARTEMENT� R3 (NOMPROF VILLE)� R4 (VILLE DEPARTEMENT)
Troisième forme normale 3FN
25
Algorithme de mise sous 3 FN� 0FN → 1FN : mise sous forme atomique des attributs� 1FN → 2FN : pour chaque partie X de clé déterminant des
attributs non clés Y1, …, Yn� Création d’une relation supplémentaire avec X pour clé et Y1,
…, Yn comme attributs non clés� Retrait de Y1, …, Yn de la relation initiale
� 2FN → 3FN : pour chaque attribut non clé Y déterminant des attributs non clés Z1, …, Zn
� Création d’une relation R' supplémentaire avec Y comme cléet Z1, …, Zn comme attributs non clés
� Retrait de Z1, …, Zn de la relation initiale
� Si R' n'est pas en 3 FN, réitérer le processus sur R'
Troisième forme normale 3FN
26
� Dans une décomposition d'une relation en plusieurs autres, on dit que la décomposition préserve une dépendance fonctionnelle s'il reste, après décomposition, une relation contenant tous les attributs de la DF
� Propriété : toute relation a au moins une décomposition en 3 FN qui
� préserve une couverture minimale de DF� est sans perte
Troisième forme normale 3FN
27
� Théorème de Heath : R (X, Y, Z) est décomposable sans perte d’information en
R1 = �[X,Y]RR2 = �[X,Z]R
si la DF X→Y existe� R1 est alors nécessairement normalisée (en 3FN).
Elle décrit le fait élémentaire X→Y
� Les requêtes posées sur R et celles posées surR1*R2 donnent le même résultat
Troisième forme normale 3FN
28
� R (NomEmp, adresse, poste, age)
� R1 (NomEmp, adresse, poste) R2 (NomEmp, age)
� R = R1 R2
Troisième forme normale 3FN
directeur
secrétaire
secrétaire
Poste
38BienneMarie
32GenèveArmand
27LausanneZoé
AgeAdresseNomEmp
directeur
secrétaire
secrétaire
Poste
BienneMarie
GenèveArmand
LausanneZoé
AdresseNomEmp
38Marie
32Armand
27Zoé
AgeNomEmp
29
� R1’ (NomEmp, adresse, poste) R2’ (Poste, age)
� R1’ R2’
� Cette décomposition ne suit pas Heath
Troisième forme normale 3FN
directeur
secrétaire
secrétaire
Poste
BienneMarie
GenèveArmand
LausanneZoé
AdresseNomEmp
directeur
secrétaire
secrétaire
Poste
38
32
27
Age
32secrétaireLausanneZoé
27secrétaireGenèveArmand
directeur
secrétaire
secrétaire
Poste
38BienneMarie
32GenèveArmand
27LausanneZoé
AgeAdresseNomEmp
≠ R
30
� Une relation en 3FN peut encore rencontrer des redondances
� Exemple : R(VILLE, DEPARTEMENT, CODE POSTAL)
� avec les DF : � VILLE, DEPARTEMENT → CODE
� CODE → DEPARTEMENT
� et la clé : VILLE, DEPARTEMENT� les redondances : pour toutes les villes ayant le
même code postal, répétition du département.
� Problème : une DF d'un attribut non clé vers une partie de la clé
Troisième forme normale 3FN
31
Définition : les seules DF autorisées sont celles dans lesquelles une clé détermine un attribut
Exemple :R (VILLE, DEPARTEMENT, CODE POSTAL) n'est pas en BCNF� R peut être décomposée en
� R1 (VILLE, CODE POSTAL)� R2 (DEPARTEMENT, CODE POSTAL)
� Décomposition sans perte� Ne garde pas la DF : VILLE, DEPARTEMENT → CODE.� R1 et R2 sont en BCNF.
Forme Normale de BOYCE-CODD
32
Problème résolu ? Non, encore des redondances…Exemple« L'étudiant de numéro NUMETUD pratique le sport SPORT et
suit le COURS »� Pas de DF� CLE = {NUMETUD, SPORT, COURS}� R est en 3FN et en BCNF� Cependant R contient des redondances :
Forme Normale de BOYCE-CODD
33
� La notion de dépendance fonctionnelle ne suffit pas àdéfinir toutes les dépendances entre les données
� Dépendance multivaluée (DM)R (A1, A2, …, An)X et Y sous-ensembles de {A1, A2, …, An}
X ->> Y : « X multidétermine Y » si, soit Z = R - X - Y, {(xyz) et (xy'z') ∈ R => (xy'z) et (xyz') ∈ R }
� "A chaque valeur de X, il y a un ensemble de valeurs de Y associées et cet ensemble est indépendant des autres attributs »
� Propriété : s'il y a la DM X-->>Y alors il y a aussi X-->>ZOn note : X-->>Y|Z
Dépendance multivaluée
34
� Exemple : R (NUMETUD, SPORT, COURS)NUMETUD->>SPORT et NUMETUD->>COURS
� Pas de lien entre les cours suivis et les sports pratiqués
� Contre-exemple : R (NUMEMP, LANGUE, PRODUIT)"L'employé NUMEMP parle LANGUE et vend PRODUIT"
� Si pour vendre un produit, il faut parler la langue du pays où il est distribué, il n'y a pas de dm (dépend. multiv.)
� Un DF est un cas particulier de DM
Dépendance multivaluée
35
� Une relation est en 4FN si les seules DM sont celles dans lesquelles une clé multidétermine un attribut
� Autrement dit, la 4FN permet de séparer des faits multivalués indépendants qui auraient été réunis dans une même relation
� 4FN => 3FN et BCNF
� En fait, on ne considère que les DM élémentaires (parties gauche et droite minimale)
Quatrième forme normale : 4FN
36
� Exemple : VINS (BUVEUR, CRU, PRODUCTEUR)
� VINS est en 4FN (aucune DM)� BUVEUR ->> CRU Pierre n'achète pas de Volnay
chez Claude� CRU ->> PRODUCTEUR� PRODUCTEUR ->> BUVEUR
Quatrième forme normale : 4FN
NicolasChablisPaul
NicolasVolnayPierre
NicolasChablisPierre
ClaudeChablisPierre
PRODUCTEURCRUBUVEUR
37
Décomposition VINS en 2 relations à 2 attributs chacune, perte de la relation initiale, et ce quelle que soit la décomposition choisie
Quatrième forme normale : 4FN
NicolasChablisPaul
NicolasVolnayPierre
NicolasChablisPierre
ClaudeChablisPierre
PRODUCTEURCRUBUVEUR
ChablisPaul
VolnayPierre
ChablisPierre
CRUBUVEUR
R1
NicolasPaul
NicolasPierre
ClaudePierre
PRODUCTEUR
BUVEUR
R2
NicolasVolnay
NicolasChablis
ClaudeChablis
PRODUCTEURCRU
R3
VINS = R1 �� R2VINS = R2 �� R3VINS = R1 �� R3
Il existe des relations non décomposables en 2 relations, mais en 3 ou plus
38
� Permet de décomposer une relation contenant 3 ou plus liens indépendants
� Définition : R (A1, A2, …An) et X1, X2, …, Xm sous-ensembles de {A1, A2, …, An}. Il existe une dépendance de jointure *{X1, X2, …, Xm} si
R = ΠX1(R) ΠX2 (R) … ΠXm (R)
Dépendance de jointure
39
� Exemple : relation VINS� *{BUVEUR CRU, BUVEUR PRODUCTEUR, CRU
PRODUCTEUR}� R1 (buveur, cru)� R2 (buveur, producteur)� R3 (cru, producteur)
� S'il existe une telle dépendance de jointure, alors R est décomposable en m relations X1, X2, …, Xm
� * Exemple : VINS = R1 R2 R3
Dépendance de jointure
40
Remarques� Une DM est un cas particulier de DJ (dépend. de
jointure)� (X ->> Y => X ->> Z) => *{XY, XZ}
� si R (A1, A2, A3, A4) a 2 clés A1 et A2, alors les DJ� *{A1A2, A1A3, A1A4}� *{A1A2, A2A3, A2A4}
Dépendance de jointure
41
Cinquième forme normale : 5FN
Définition : une relation est en cinquième forme normale si toute dépendance de jointure est impliquée par des clés
� Problème : trouver les DJ, elles n'ont pas d'interprétation sémantique simple
� Certaines tables n’ont pas de décomposition en 5FN
42
Cinquième forme normale : 5FN
Exemple : Vin' (nomVin, année, couleur, goût, parfum)peut être décomposé en :Vin1 (nomVin, année, couleur)Vin2 (nomVin, année, goût)Vin3 (nomVin, année, parfum)car Vin’ = Vin1 Vin2 Vin3� Mais inutile, car Vin' ne contient pas de redondance� Vin' déjà en 5FN� La décomposition de Vin' : aucun gain de forme
normale
43
Formes normales
Pratiquement� Les DJ sont rares et pas faciles à détecter� On normalise en général en 4FN (si possible)
Cependant� Une relation en 4FN peut contenir encore des
redondances et poser des problèmes lors des m.a.j.� D'autres FN ont encore été proposées
44
Formes normales
Niveau externe� Les relations d’une vue (schéma externe)� Application automatique par un outil
Niveau conceptuel� Normalisation des relations fusionnées
Niveau interne� Obtention des dépendances
� Clés� Références� Dépendances de jointures� Contrôle automatique
45
Conclusion
� La normalisation reste d'un usage très difficile sans outil pour une application de grande envergure
� ObjectifEliminer les redondances d'informations et les risques d'anomalies en mise à jour
� SolutionDécomposition des relations en suivant les règles de normalisation
46
Conclusion
� Relation irréductible� Pas de df autre que : cle -> a� Pas de dm autre que : cle ->> a
� Redondances restantes� Sont dues aux contraintes d'integrité
47
Exercices : graphe de dépendance
� Pour chaque relation il faut recenser toutes ses DF élémentaires et non déduites
� Représentation sous forme d'un graphe orientégraphe minimum des DF de la relation
� Une relation peut avoir plusieurs graphes minimumIls sont alors équivalents
Exemple de graphe minimum :R (A, B, C, D, E)E → A, E → B, E → C, C → D
E
A B C D
48
Exercice 1
Pour chaque relation ci-dessous� identifier les redondances éventuelles dans sa population,� établir le (un) graphe minimum de ses dépendances,
� définir son (ses) identifiant(s),� définir sa forme normale et la justifier,� si nécessaire, proposer une décomposition optimale.
Pièce: description des pièces utilisées dans un atelier de montage� Pièce (N°pièce, prix-unit, TVA, libellé, catégorie)
� avec les dépendances fonctionnelles suivantes:� N°pièce → prix-unit, TVA, libellé, catégorie
� catégorie → TVA
49
Exercice 1
Employé1: description d'un employé travaillant sur un projet d'un laboratoire
� Employé ( N°Emp, N°Lab, N°Proj, NomEmp, NomProj, adresse)
� avec les dépendances fonctionnelles suivantes� (N°Emp, N°Lab) → N°Proj, NomProj, NomEmp
� N°Emp → NomEmp� N°Emp → adresse
� N°Proj → NomProj
50
Exercice 2
Soit R la relation suivante, avec les dépendances :R (A, B, C, D, E, F, G)
AB → C, AB → D, AB → E, AB → F, B → C, D → E, D → F, G → A
� Etablir le (un) graphe minimum de dépendances� Quel(s) est (sont) l'identifiant(s) de R ?� Quelle est la forme normale de R? Justifier votre réponse� Proposer une décomposition optimale de R
51
Et après…
Le monde
Le concepteur Schéma conceptuel
Schéma logiquerelationnel
BD
Utilisateurs
Table FilmsTable Cinéma…
Normalisation
SQL