Normalisation - NFE113nfe113.2bl.fr/documents/3_Normalisation.pdf · Normalisation Permet de...

Post on 10-Sep-2018

235 views 0 download

Transcript of Normalisation - NFE113nfe113.2bl.fr/documents/3_Normalisation.pdf · Normalisation Permet de...

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