Normalisation d’une base de données r elationnel le (Chapitre 5)

60
Normalisation d’une base de données relationnelle (Chapitre 5) Bases de Données Relationnelles

description

Bases de Données Relationnelles. Normalisation d’une base de données r elationnel le (Chapitre 5). Qu’est-ce qu’une BD relationnelle ‘correcte’ ?. Un ensemble de relations tel que : chaque relation décrit un fait élémentaire avec les seuls attributs qui lui sont directement liés - PowerPoint PPT Presentation

Transcript of Normalisation d’une base de données r elationnel le (Chapitre 5)

Page 1: Normalisation d’une base de données r elationnel le (Chapitre 5)

Normalisation d’une base de

données relationnelle

(Chapitre 5)

Bases de Données Relationnelles

Page 2: Normalisation d’une base de données r elationnel le (Chapitre 5)

Qu’est-ce qu’une BD relationnelle ‘correcte’ ?

Un ensemble de relations tel que: chaque relation décrit un fait élémentaire

avec les seuls attributs qui lui sont directement liés

il n'y a pas de redondance d’information, génératrices de problèmes lors des MAJ

il n'y a pas de perte d ’information Personne (nom, prénom), Adresse (no, rue,

ville) Qui habite oú ? Impossible de répondre !

Page 3: Normalisation d’une base de données r elationnel le (Chapitre 5)

Qu’est-ce qu’une BD relationnelle ‘incorrecte’ ?

Une relation n’est pas correcte si: elle implique des répétitions au niveau de

sa population

elle pose des problèmes lors des MAJ insertions / modifications / suppressions

Les conditions pour qu'une relation soit correcte peuvent être définies formellement:

=> règles de normalisation

Page 4: Normalisation d’une base de données r elationnel le (Chapitre 5)

Normalisation

Processus de transformation d'une relation posant des problèmes lors des MAJ en relations ne posant pas de problèmes

On mesure la qualité d'une relation par son degré de normalisation

1NF, 2NF, 3NF, BCNF, 4NF, etc.

Page 5: Normalisation d’une base de données r elationnel le (Chapitre 5)

Formes normales: 1FN

Une relation est en 1FN si chaque valeur de chaque attribut de chaque tuple est une valeur simple (tous les attributs sont simples et monovalués).

Exemple:

Livraison (N°fourn, adr.f, N°prod, prix.p, qté)

Page 6: Normalisation d’une base de données r elationnel le (Chapitre 5)

Exemple de mauvaise relation en 1FNLivraison (N°fourn, adr.f, N°prod, prix-p, qté)

3 Lausanne 52 65 1022 Bienne 10 15 522 Bienne 25 10 12

3 Lausanne 25 10 5 3 Lausanne 10 15 20

L’adresse du fournisseur ne dépend pas du produit. Le prix du produit ne dépend pas du fournisseur

REDONDANCES Anomalies de mise à jour

Page 7: Normalisation d’une base de données r elationnel le (Chapitre 5)

Exemple de mauvaise relation en 1FNLivraison (N°fourn, adr.f, N°prod, prix-p, qté)

3 Lausanne 52 65 1022 Bienne 10 15 522 Bienne 25 10 12

3 Lausanne 25 10 5 3 Lausanne 10 15 20

Si un fournisseur change d’adresse et qu’un seul tuple (une seule ligne) est mis à jour: incohérence

Si une nouvelle ligne est insérée pour un fournisseur connu, mais avec une adresse différente:

incohérence

Page 8: Normalisation d’une base de données r elationnel le (Chapitre 5)

Exemple de mauvaise relation en 1FNLivraison (N°fourn, adr.f, N°prod, prix-p, qté)

3 Geneve 52 65 1022 Bienne 10 15 522 Bienne 25 10 12

3 Lausanne 25 10 5 3 Lausanne 10 15 20

Si un fournisseur change d’adresse et qu’un seul tuple (une seule ligne) est mis à jour: incohérence

Si une nouvelle ligne est insérée pour un fournisseur connu, mais avec une adresse différente:

incohérence

Page 9: Normalisation d’une base de données r elationnel le (Chapitre 5)

Normalisation ou traduction EA

Schéma relationnel normalisé

VALIDATION

Règles

TRADUCTIONEA - R

Niveau conceptuel (EA)

Niveau logique (Relationnel)

NORMALISATION

Schéma EA

Schéma EA valide

Schéma Relationnel

Page 10: Normalisation d’une base de données r elationnel le (Chapitre 5)

Exemple

Produit (NP, Nom, Couleur)

Fournisseur (NF, Nom, Adr, Tél)

Livraison (NP, NF, Date, Qté)

Produit0-n 0-n

Fournisseur

Nom Adr. Nom Coul.QtéDate TelTel

Fournisseur ProduitLivraison0-n 0-n

Nom Adr. Nom Coul.Qté DateTelTel

VALIDATION

Règles

TRADUCTION

Fournisseur (NF, Nom, Adr)Produit (NP, Nom, Couleur) Livraison (NP, NF, Date, Qté, Tél)

Décomposition des relations

non satisfaisantes NORMALISATION

Livraison

Page 11: Normalisation d’une base de données r elationnel le (Chapitre 5)

Formalisation du problème

L’adresse d’un fournisseur ne dépend que du fournisseur, ..…

DÉPENDANCE FONCTIONNELLE (DF)

soit une table T (x, y, z)

il existe une DF: x y si et seulement si dans T à une même valeur de x correspond toujours une même valeur de y

Page 12: Normalisation d’une base de données r elationnel le (Chapitre 5)

Formalisation

T : X Y Z x1 y1 z1 ..........................

x1 y1 z2..........................

X Y : X détermine Y Y dépend de X X: source de la DF, Y: cible de la DF la source peut être un ensemble d’attributs:

(nom, prénom) adresse

Page 13: Normalisation d’une base de données r elationnel le (Chapitre 5)

Propriétés des DF (Armstrong's Axioms)

Transitivité:si X Y et Y Z alors X Z (DF déduite)

Augmentation:si X Y alors (A, X) Y quelque soit A (DF non élémentaire)

Reflexivité: si Y X alors X Y (DF triviale)

On ne s’intéresse qu’aux DF élémentaires non déduites et non triviale.

Page 14: Normalisation d’une base de données r elationnel le (Chapitre 5)

Graphe des DF

Pour chaque table il faut connaître les DF intéressantes. Il est facile alors de les représenter sous forme de graphe:

graphe minimum des DF (orienté)

Exemple: T (A, B, C, D, E)

E A E B E C (E A, B, C) C D

E

A B C

D

Page 15: Normalisation d’une base de données r elationnel le (Chapitre 5)

Exemple de graphe des DFLivraison (N°fourn, adr-f, N°prod, prix-p, qté) N°fourn adr-f

l ’adresse d ’un fournisseur ne dépend que du fournisseur

N°prod prix-p le prix d ’un produit ne dépend que du produit

(N°fourn, N°prod) qté la quantité livrée dépend du produit et du

fournisseur

[faux: N°fourn qté , N°prod qté ]N°fourn N°prod

adr-f qté prix-p

Page 16: Normalisation d’une base de données r elationnel le (Chapitre 5)

DFs et identifiants Le graphe minimum des DF permet de trouver les

identifiants de la table L’identifiant d ’une table est l ’ensemble (minimal)

des nœuds du graphe minimum à partir desquels on peut atteindre tous les autres nœuds (via les DF)

Pour que ce soit faux il faudrait qu’il y ait deux lignes avec la même valeur de l’« identifiant » et des valeurs différentes pour les autres attributs, ce qui est en contradiction avec les DF.

Exemple: T1 (A, B, C, D, E)E

A B C D

Page 17: Normalisation d’une base de données r elationnel le (Chapitre 5)

X Y

DFs et identifiants

Autre exemple: T2 (A, B, C, D, E, X, Y) 

A B C E

D

T2 (A, B, C, D, E, X, Y) 

Page 18: Normalisation d’une base de données r elationnel le (Chapitre 5)

DFs et identifiants

Autre exemple: T3 (X, Y, Z)

DF: X  YZ, YZ X

Y Z

X

Page 19: Normalisation d’une base de données r elationnel le (Chapitre 5)

Normalisation

Que faire si une table n ’est pas « normalisée » ?

DECOMPOSITION

La table doit être remplacée par un ensemble de tables (plus petites: moins d’attributs)

Page 20: Normalisation d’une base de données r elationnel le (Chapitre 5)

Décomposition d'une relation

Soit une relation non satisfaisante, trouver un ensemble de relations satisfaisantes qui décrive les mêmes informations

Pour vérifier qu’une relation est décomposable sans perte d’information:

Nombreux algorithmes de décomposition

Mais attention: les relations sont normalisées, mais peuvent être sémantiquement non significatives.

RelationEnsemble de sous-relations obtenues par projection

* (jointure)

Page 21: Normalisation d’une base de données r elationnel le (Chapitre 5)

Projection

Opération unaire la syntaxe : A1,A2,…An(R) (avec A1, … An des attributs

de R) la sémantique : tous les n-uplets de R, mais avec

seulement les attributs A1, … An le schéma : schéma(A1,A2,…An(R)) = A1, … An

d’éventuelles remarques : |A1,A2,…An(R)| <= |R| un exemple :

S B C Db c da a ba a c

B,D(S) B Db da ba c

Page 22: Normalisation d’une base de données r elationnel le (Chapitre 5)

Jointure

Opération binaire la syntaxe : R S la sémantique :

Si schéma(R) schéma(S) = A1, …, An,Si t1R et t2S sont égaux sur A1, .. An, on

les « recolle » (avec t1 et t2 des n-uplets)Si schéma(R) schéma(S) = , c’est le produit cartésien

le schéma : schéma(R S) = schéma(R) schéma(S)

Page 23: Normalisation d’une base de données r elationnel le (Chapitre 5)

Exemple

R A Ba ba cb b

S B C Db c da a ba a c

Aab

B C Db c db c d

R S

Page 24: Normalisation d’une base de données r elationnel le (Chapitre 5)

Méthode formelle de décomposition

Théorème de Heath

T (x, y, z) est décomposable sans perte d’information en

T1 (x, y) et T2 (x, z)

si x y

Page 25: Normalisation d’une base de données r elationnel le (Chapitre 5)

Application de Heath

N°fourn adr.f. (N°fourn, adr.f.) ok (N°fourn, N°prod, prix.p.,

qté)

N°prod prix.p (N°prod, prix.p) ok (N°prod, N°fourn, qté)

N°prod, N° fourn qté ok

N°fourn N°prod

Adr.f . qté prix.p

Livraison (N°fourn, adr.f, N°prod, prix.p, qté)

Page 26: Normalisation d’une base de données r elationnel le (Chapitre 5)

Qualité d’une décomposition

Une « bonne » décomposition est une décomposition

1) sans perte d ’information

2) sans perte de DF

Sans perte de DF:

toute DF doit être dans l’une des tables obtenues par décomposition

Page 27: Normalisation d’une base de données r elationnel le (Chapitre 5)

Sans perte d ’information

La « recomposition » de la table à partir des « morceaux » doit redonner la table initiale

soit T (x, y, z) décomposée en T1 ( x, y ) T2 (x, z )

tel que: T1 = PROJECTION [x, y] T

T2 = PROJECTION [x, z ] T

la décomposition est sans perte d ’informations

si et seulement si : T = JOINTURE (T1, T2)

Page 28: Normalisation d’une base de données r elationnel le (Chapitre 5)

Exemple: bonne décomposition T (NomEmp, adresse, poste, age)

Zoé

Armand

Marie

Lausanne

Genève

Bienne

secrétaire

secrétaire

directeur

27

32

38

T1 (NomEmp, adresse, poste) T2 (NomEmp, age)

Zoé

Armand

Marie

Lausanne

Genève

Bienne

secrétaire

secrétaire

directeur

Zoé

Armand

Marie

27

32

38

T = JOINTURE (T1, T2)

Page 29: Normalisation d’une base de données r elationnel le (Chapitre 5)

Exemple: mauvaise décomposition

T12 (NomEmp, adresse, poste) T22 (poste, age)

Zoé

Armand

Marie

Lausanne

Genève

Bienne

secrétaire

secrétaire

directeur

secrétaire

secrétaire

directeur

27

32

38

JOINTURE (T12, T22) =

Zoé

Zoé

Armand

Lausanne

Lausanne

Genève

secrétaire

secrétaire

secrétaire

27

32

27

32secrétaireGenèveArmand

38directeurBienneMarie

T

Page 30: Normalisation d’une base de données r elationnel le (Chapitre 5)

Exemple: perte de DF

T (NomEmp, adresse, CP)

Zoé

Armand

Marie

Lausanne

Genève

Bienne

1016

1020

1030

NomEmp

adresse

CP

Zoé

Armand

Marie

1016

1020

1030

Zoé

Armand

Marie

Lausanne

Genève

Bienne

T1 (NomEmp, CP) T2 (NomEmp, adresse)

Page 31: Normalisation d’une base de données r elationnel le (Chapitre 5)

Exemple: perte de DF

JOINTURE (T1, T2) =T sans perte d ’information

MAJ de adresse en T2 DF CP adresse incohérence entre T1 et T2 si pas

de contrôle par application

Page 32: Normalisation d’une base de données r elationnel le (Chapitre 5)

Formes normales: 1FN

Une relation est en 1FN si chaque valeur de chaque attribut de chaque tuple est une valeur simple (tous les attributs sont simples et monovalués).

Exemple:

Livraison (N°fourn, adr.f, N°prod, prix.p, qté)

Page 33: Normalisation d’une base de données r elationnel le (Chapitre 5)

2ème forme normale: 2FN

mélange la description:

- de la livraison ( ≠fourn., ≠produit, quantité-livrée)

- du fournisseur ( ≠fourn., adr.-fourn)

- du produit (≠produit, prix)

N°fourn N°prod

Adr.f . qté prix.p

Livraison (N°fourn, adr.f, N°prod, prix.p, qté)

Permet d ’éliminer les attributs qui ne décrivent pas l ’« objet » traduit par la relation

Page 34: Normalisation d’une base de données r elationnel le (Chapitre 5)

Exemple de mauvaise relation en 1FNLivraison (N°fourn, adr.f, N°prod, prix-p,

qté) 3 Lausanne 52 65 10

22 Bienne 10 15 522 Bienne 25 10 12

3 Lausanne 25 10 5 3 Lausanne 10 15 20

Page 35: Normalisation d’une base de données r elationnel le (Chapitre 5)

2ème forme normale: définition

des DF partent de composants de l ’identifiant: Livraison n’est pas en 2FN

une table est en 2FN si - elle est en 1FN, et - chaque attribut qui ne fait pas partie de l’identifiant dépend d’un identifiant

entier

Livraison (N°fourn, adr.f, N°prod, prix.p, qté)

N°fourn N°prod

adr.f qté prix.p

Page 36: Normalisation d’une base de données r elationnel le (Chapitre 5)

Application de Heath

N°fourn adr.f. (N°fourn, adr.f.) ok (N°fourn, N°prod, prix.p.,

qté)

N°prod prix.p (N°prod, prix.p) ok (N°prod, N°fourn, qté)

N°prod, N° fourn qté ok

N°fourn N°prod

Adr.f . qté prix.p

Livraison (N°fourn, adr.f, N°prod, prix.p, qté)

Page 37: Normalisation d’une base de données r elationnel le (Chapitre 5)

3FN: 3ème forme normale

doit être décomposée en

F (N° fourn, ville)G (ville, pays)

Permet d’éliminer des sous-relations incluses dans une relation Exemple: Fournisseur (N°fourn, ville, pays)

N°fourn

ville pays

Page 38: Normalisation d’une base de données r elationnel le (Chapitre 5)

Exemple

Fournisseur (N°fourn., ville, pays) 3 Lausanne Suisse

21 Paris France22 Paris France

4 Lausanne Suisse 5 Lausanne Suisse

Page 39: Normalisation d’une base de données r elationnel le (Chapitre 5)

3ème forme normale: définition

Profondeur de l ’arbre des DF > 1 : pas en 3FN

3FN: si T est en 2FN et chaque attribut qui ne fait pas partie de l’identifiant dépend directement d’un identifiant entier

Fournisseur (N°fourn., ville, pays)N°fourn

ville pays

Page 40: Normalisation d’une base de données r elationnel le (Chapitre 5)

3ème forme normale: définition

Plusiers identifiants:

3FN: chaque attribut qui ne fait pas partie de un des plusiers identifiants dépend directement du identifiant entier

N°fourn nom-fourn

N°produitprix

Fournisseur (N°fourn, nom-fourn, N°produit, prix)

Page 41: Normalisation d’une base de données r elationnel le (Chapitre 5)

FNBC Forme normale de Boyce-Codd

Généralise la 3FN aux relations avec plusieurs identifiants

Fournisseur (N°fourn, nom-fourn, N°produit, prix)

(BCNF)

Une table est en FNBC si elle est en 3FN et si toute source complète de DF (élémentaire) est un identifiant entier

Page 42: Normalisation d’une base de données r elationnel le (Chapitre 5)

le passage en FNBC n’est pas toujours possible sans perte de dépendances

FNBC: example Fournisseur Fournisseur (N°fourn, nom-fourn, N°produit, prix)

N°fourn nom-fourn

N°produitprix

est en 3FN mais pas en FNBC

Page 43: Normalisation d’une base de données r elationnel le (Chapitre 5)

Décomposition Fournisseur Fournisseur (N°fourn, nom-fourn, N°produit, prix)

N°fourn nom-fourn

N°produitprix

F1 (N°fourn, nom-fourn)

F2 (N°fourn, N°produit, prix) ou

F2’ (nom-fourn, N°produit, prix)

Page 44: Normalisation d’une base de données r elationnel le (Chapitre 5)

FNBC: example Place

Place (N°Etud, Matière, Rang)

N°Etud Matière

Rang

Identifiants : 1) N°Etud + Matière

2) Rang + Matière Place est en 3FN et est en FNBC

Page 45: Normalisation d’une base de données r elationnel le (Chapitre 5)

FNBC contre-example

Enseignement (NomEtud, Matière, Prof)

NomEtud Matière

Prof

Identifiants : 1) NomEtud + Matière

2) NomEtud + Prof Enseignement est en 3FN mais n’est pas en

FNBC

Page 46: Normalisation d’une base de données r elationnel le (Chapitre 5)

Exemple

Problème avec suppression Perte d'information

Rossier

Rossier

Blanc

RDB

Programm.

RDB

Aberer

Odersky

Spaccapietra

Blanc Programm.Guerraoui

Perret RDB Guerraoui

Page 47: Normalisation d’une base de données r elationnel le (Chapitre 5)

Décomposition Enseignement

Enseignement (NomEtud, Matière, Prof) Soit la décomposition:

T1 (Prof, Matière) T2 (NomEtud, Prof) T1 + T2 : sans perte d ’information

mais avec perte de la DF: (NomEtud, Matière) Prof

il faut ajouter la C.I.: un étudiant suit une matière donnée

avec un seul professeur

Page 48: Normalisation d’une base de données r elationnel le (Chapitre 5)

Exemple

mauvais !

RDB

Programm.

RDB

Aberer

Odersky

Spaccapietra

Programm.Guerraoui

Rossier

Rossier

Blanc

Aberer

Odersky

Spaccapietra

Blanc Guerraoui

Blanc Aberer

Page 49: Normalisation d’une base de données r elationnel le (Chapitre 5)

3FN: définition plus general

Plusiers identifiants et DF elementaire A->B Cond1: A est un identifiant Cond2: B fait part d'un identifiant

FNBC si Cond1

3NF (plusiers identifiants) si Cond1 OR Cond2

N°fourn nom-fourn

N°produitprix

Fournisseur (N°fourn, nom-fourn, N°produit, prix)

Page 50: Normalisation d’une base de données r elationnel le (Chapitre 5)

Quatrième Forme Normale (4FN)

Dépendance multivaluée (DM)

A B

a { b1, … b1+x} x = 1 : A B

A CB A B

A B

B A

A B

A C

"trivial"necessary

Page 51: Normalisation d’une base de données r elationnel le (Chapitre 5)

4FN: exemple et décomposition

Catalogue (N°Article, Couleur, Taille)

A C1 T1

A C2 T2

A C2 T1

A C1 T2

N°Article Couleur

N°Article Taille

Décomposition : R1 (N°Article, Couleur)

R2 (N°Article, Taille)

(stronger version of Heath)

Page 52: Normalisation d’une base de données r elationnel le (Chapitre 5)

Méthode formelle de décomposition

Théorème de Heath (stronger)

T (x, y, z) est décomposable sans perte d’information en

T1 (x, y) et T2 (x, z)

si x y

(and therefore also x z)

Page 53: Normalisation d’une base de données r elationnel le (Chapitre 5)

4 FN: sémantique permet de séparer des fait indépendants qui auraient

été réunis dans une même relation exemple:

- il existe plusieurs cours - tout cours peut être assuré par plusieurs professeurs - tout cours possède un ensemble de livres de référence

alors

cours (intitulé, nom-prof., titre-livre) donne une représentation très redondante, qu ’il

convient de remplacer par décomposition

Page 54: Normalisation d’une base de données r elationnel le (Chapitre 5)

RDB

4FN: exemple

Cours

intitulé nom-prof titre-livre

cours (intitulé, nom-prof., titre-livre)

RDB {Aberer, Spaccapietra} {Ullman, Date}

RDB

RDB

Ullman

Date

Ullman

RDB

Aberer

Aberer

Spaccapietra

Spaccapietra Date

Page 55: Normalisation d’une base de données r elationnel le (Chapitre 5)

4 FN: définition cours (intitulé, nom-prof., titre-livre)

décomposition: cours-p (intitulé, nom-prof.) cours-1 (intitulé, titre-livre)

Formalisation: dans cours (intitulé, nom-prof., titre-livre) il existe une dépendance multivaluée

intitulé nom-prof, titre-livre Une relation est en 4FN s ’il n ’existe pas de

dépendance multivaluée qui ne soit pas une dépendance fonctionnelle

Page 56: Normalisation d’une base de données r elationnel le (Chapitre 5)

4FN: définition formelle

Soit une relation R (x,y,z) z pouvant être vide Il y a Dépendance multivaluée (DM)

x ---->> y si à toute valeur de x correspond un ensemble de

valeurs de y qui est totalement indépendant de z Remarque: DF est un cas particulier de DM

R est en 4 FN si elle est en 1ère FN et si toute DF ou DM de R a pour source un identifiant entier de R Remarque: 4 FN implique BCNF (FNBC)

Page 57: Normalisation d’une base de données r elationnel le (Chapitre 5)

Cinquième Forme Normale (5FN) Permet de décomposer une relation en faits

élémentaires exemple: Vins (buveur, cru, producteur) Peut être décomposable en

V1 (buveur, cru) V2 (buveur, producteur) V3 (cru, producteur)

Avec Vins = V1 |X| V2 |X| V3 On dit qu’il y a dépendance de jointure

Page 58: Normalisation d’une base de données r elationnel le (Chapitre 5)

Conception d’une BD relationnelle

(niveau conceptuel)

Méthode "classique"

Objectif: arriver à un ensemble de relations tel que

- chaque relation décrit un type d’ « objet » avec les seuls attributs qui lui sont directement liés

- les redondances d ’information (génératrices de problèmes lors des mises à jour) sont éliminées

Page 59: Normalisation d’une base de données r elationnel le (Chapitre 5)

Conception d’une BD relationnelle Méthode: Décomposition par projections

sans perte d ’information et sans perte de dépendances

Outils:- dépendances

(fonctionnelles, multivaluées, de jointure)- règles de normalisation

Limites:- ne garantit pas que le schéma soit celui qu’il faut - ne garantit pas que le schéma soit efficace

(« overnormalization »)

Page 60: Normalisation d’une base de données r elationnel le (Chapitre 5)

Conception d’une BD relationnelle

Méthode "moderne"

Conception d’un schéma entité-association, puis traduction de celui-ci en schéma relationnel