Top Banner
1 Conception d’une BD INT Management
78

Conception d’une BD

Feb 25, 2016

Download

Documents

mahola

Conception d’une BD. INT Management. Plan du document. Introductionslide 182 Modèle Entité/Associationslide 187 Traduction E/A  relationnelslide 194 Rétro-conception slide 206 Généralisation/Spécialisation slide 211 Théorie des dépendancesslide 221 - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Conception d’une BD

1

Conception d’une BD

INT Management

Page 2: Conception d’une BD

2

Plan du document

Introduction slide 182 Modèle Entité/Association slide 187

Traduction E/A relationnel slide 194 Rétro-conception slide 206 Généralisation/Spécialisation slide 211

Théorie des dépendances slide 221 Dépendances fonctionnelles slide 227 Décomposition des relations slide 239 Formes normales slide 248

Page 3: Conception d’une BD

3

Conception indépendante d’un modèle de données

Réalité

Schéma conceptuel

Schémarelationnel

Schémaréseau Fichiers….

transformation

Introduction

Page 4: Conception d’une BD

4

Conception relationnelle

Relation universelle

Dépendances fonctionnelles

décomposition

SchémaRelationnelnormalisé

Introduction

Page 5: Conception d’une BD

5

Conception centraliséeSchéma

conceptuel global

Schémalocal

Schémalocal …. Schéma

local

ProgrammeUtilisateur …

Introduction

Page 6: Conception d’une BD

6

Conception décentralisée (à partir d’un existant)

intégration

Schémaglobal

Schéma local Schéma local Schéma local

Hétérogène/homogène

Introduction

Page 7: Conception d’une BD

7

Conception d’une BD Introduction

Réalité

Recueil des besoins et analyse

Besoin de la BD

Conception logique

Schéma conceptuel (haut niveau)

Transformation du modèle

Schéma conceptuel (spécifique SGBD)

Conception physique

Schéma physique (spécifique SGBD)

Indépendant du SGB

DSpécifique à un SG

BD

Page 8: Conception d’une BD

8

Modèle Entité/Association

Proposé en 1976 (Chen) Nombreuses extensions depuis Avantages :

Utilisé dans la plupart des méthodes de conception (MCD Merise, …)

Simple Graphique Facilite le dialogue avec les utilisateurs

Modèle E/A

Page 9: Conception d’une BD

9

Concepts Modèle E/A

Graphisme 1 Graphisme 2

Ens. entité

Attribut

Attribut composite

Attribut multivalué

Clé d’un type d’entité

Type d’association

Rôle

Contraintes de cardinalité

Nom Type Entité T

A

A

AssAss

RôleRôle

0,n1,n

Page 10: Conception d’une BD

10

Concepts (2) Modèle E/A

Graphisme 1 Graphisme 2

Type d’entité faible

Type d’association identifiante

Attribut calculé

Ass (1,1)

Page 11: Conception d’une BD

11

Modèle E/A Entreprise Modèle E/A

Employé

nomadresseNoSS

nomf prenom

Personne-à-charge Projet

Département

Nb_heures

No_dept libelle

Numéro Descriptionprénom

localisations

Avoir à charge

diriger

Travailler pour

Travailler surgérer

date

0,n 1,n

0,10,n

1,1

1,1

1,11,n

1,1

0,n

Nb_emp

superviser

Supervise0,n

Est supervisé1,1

DateNaissanceParente

Page 12: Conception d’une BD

12

Modèle E/A EntrepriseGraphisme 2

Modèle E/A

1,n

1,n

1,1

Est supervisé

0,nsupervise

(1,1)

0,n

1,1

1,n

1,10,1

1,n1,1Employe

NoSSAdresseNomfPrenom

DépartementNo_deptlibelleNb_Emp

ProjetNuméroDescription

PersonneAChargeprénomDateNaissanceParenté

TravaillerPour

Diriger

Date

GérerAvoir a charge

Superviser

TravaillerSurNb_heures

localisations

Page 13: Conception d’une BD

13

UML Entreprise UML

Page 14: Conception d’une BD

14

Entité-Association / Diagramme de classe UML

Entité-Association Diagramme de Classe

SI – BD Génie logiciel – langages

Entité Classe

Entité faible Composition ? Clé ?

Association sans attribut Association / Composition

Association avec attribut Association + Classe d’association

(Héritage) - Association Héritage

Attribut / Propriété Attribut

Clé

Attribut calculé Méthode

(Attributs multivalués) – Entité + Association Attributs multivalués

Méthode

Cardinalité Multiplicité

UML

Page 15: Conception d’une BD

15

Traduction EA relationnel La sémantique n’est pas complètement

préservée (il faut ajouter des contraintes d’intégrité)

Règles sont automatisables (de nombreux outils existent sur le marché, AMCDesignor par exemple)

Transformation se fait en 7 étapes Comparaison des concepts des deux modèles :

à faire par l’étudiant

Traduction

Page 16: Conception d’une BD

16

Étape 1 : transformation des entités non faibles Type d'entité relation Attribut atomique constituant (attribut) Attributs composites n constituants Attribut(s) clé(s) clé candidate

Traduction

ECA

E(C, A)

Page 17: Conception d’une BD

17

Exemples d’étape 1 Traduction

Employé Attributs atomiques Employe(noss, adresse)

Attributs composites Employe(noss, adresse, nomf, prenom)

Aplatissement de la structure (suite d’attributs atomiques) perte de la sémantique

Département Attributs atomiques Département(no_dept, libelle)

Attributs multivalués Etape 6 : local

Attributs calculés Etape 7 : nb_emp

Projet Attributs atomiques Projet(numero, description)

Page 18: Conception d’une BD

18

Étape 2 : transformation des entités faibles Type d'entité faible relation Attribut atomique constituant (attribut) Attributs composites n constituants Attribut(s) clé(s) partie de clé candidate Attributs clés de l’entité identifiante partie

de clé

Traduction

ECA

E2C2A2

(1,1)E2(C, C2, A2)

Page 19: Conception d’une BD

19

Exemple d’étape 2 Traduction

Entité PersonneACharge

Attributs atomiques PersonneACharge(nom, DateNaissance, parenté)

+Clé de l’entité identifiante

PersonneACharge(nom, DateNaissance, parenté, noss)

Noss : clé étrangère sur Employé

+Partie de la clé de PersonneACharge

Page 20: Conception d’une BD

20

Étape 3 : transformation des associations binaires monovaluées Clé associée à E1 attribut de E2 Attributs de Ass attributs de E2

Traduction

E1C1A1

E2C2A2

?,1E2(C2, A2, C1, A3)

?,? AssA3

Clé étrangère, pas clé dans E2

Page 21: Conception d’une BD

21

Exemples d’étape 3 Traduction

TravaillePour Employe(noss, adresse, nomf, prenom, no_dept)

Dirige Département(no_dept, libelle, nosschef, dateDebut)

Dirige monovaluée dans les 2 sens on aurait pu créer Employe(noss, adresse, nomf, prenom, nodept, nodeptDirigé, dateDebut)Cardinalités (0,1), association partielle valeurs nulles

Controle Projet(numero, description, numdept)

Supervision Employe(noss, adresse, nomf, prenom, nodept, noSSSuperviseur)noSSSuperrviseur clé étrangère de Employé sur elle-même

PersonneACharge Cf. étape 2

Page 22: Conception d’une BD

22

Étape 4 : transformation des associations binaires multivaluées dans les 2 sens Création d'une nouvelle relation Ass Clé de E1 + Clé de E2 clé de Ass Attributs de Ass Attributs de Ass

Traduction

E1C1A1

E2C2A2

?,nAss(C1, C2, A3)

?,n AssA3

TravailleDans TravailleDans(noss, numeroProjet, nb_heures)

Page 23: Conception d’une BD

23

Étape 5 : Transformation des associations n-aires (n > 2) Idem étape 4 :

Création d'une nouvelle relation Ass Clé de E1 + Clé de E2 + … clé de En clé de

Ass Attributs de Ass Attributs de Ass

Traduction

E1C1A1

E2C2A2

Ass(C1, C2, C3, A4)AssA4

E3C3A3

Page 24: Conception d’une BD

24

Étape 6 : transformation des attributs multivalués Création d'une nouvelle relation R Attribut multivalué -> constituant Clé du type d'entité associé -> constituant Clé de la relation : tout le schéma

Traduction

DépartementA C R(A, C)

Localisations dans Département LocalisationDept(localisation, num_dept)

Page 25: Conception d’une BD

25

Étape 7 : transformation des attributs calculés Attribut calculé Requête associée

Traduction

Nb_emp dans Département

Département(no_dept, libelle, nosschef, dateDebut)

SELECT no_dept, COUNT(*)FROM EmployeGROUP BY no_dept

Couples no département – effectif du départementAssociée à une vue relationnelle

Page 26: Conception d’une BD

26

Récapitulatif de l’exemple

Employe(noss, adresse, nomf, prenom, nodept, noSSSuperviseur)Département(no_dept, libelle, nosschef, dateDebut)Projet(numero, description, numdept)PersonneACharge(nom, noss, DateNaissance, parenté)TravailleDans(noss, numeroProjet, nb_heures)LocalisationDept(localisation, num_dept)

CREATE VIEW Effectifs(no_dept, nb_emp) ASSELECT nodept, COUNT(*)FROM EmployeGROUP BY nodept

CREATE VIEW DepartementComplet ASSELECT D.*, EF.nb_empFROM Département D, Effectifs EFWHERE D.no_dept=EF.no_dept

Traduction

Page 27: Conception d’une BD

27

Rétro-conception

But : Passer d’un schéma relationnel à un schéma Entité-

Association équivalent Pourquoi ?

Analyse n’a pas été faite ou a été perdue Comment ?

Appliquer les étapes de transformation « à l’envers » Remarque 

Ne fournit pas une solution unique (perte d’information sur le schéma relationnel par rapport au schéma E/A)

Rétro-conception

Page 28: Conception d’une BD

28

Principes de rétro-conception

Relation ne possédant pas de clé étrangère : ensemble d'entité

Relation possédant une clé étrangère à l'extérieur de sa clé : ensemble d'entité plus association monovaluée vers l'ensemble d'entité correspondant à la clé étrangère

Page 29: Conception d’une BD

29

Principes de rétroconception (2) Relation dont la clé est intégralement

composée de clés étrangères : association multivaluée entre les ensembles d'entités correspondant aux clés étrangères

Relation dont la clé comprend une clé étrangère et une clé "locale" : ensemble d'entité faible par rapport à l'ensemble d'entité correspondant à la clé étrangère

Page 30: Conception d’une BD

30

Schéma relationnel BD vinsVins(num, cru, annee, degre)Recoltes(nvin, nprod, quantite)Producteurs(num, nom, prenom, region)Buveurs(num, nom, prenom, ville)Commandes(ncde, date, nb, nvin, qte)Livraisons(ncde, no_ordre, qteLivree)

Exemples

Page 31: Conception d’une BD

31

Rétro-conception de la BD des vins

Rétro-conception

0,n

1,1

(1,1)0,n

1,1

0,n

0,n

0,n

Vinsnumcrudegréannee

Producteursnumnomprenomregion

recoltes

LivraisonsNo_ordreqteLivréedate

concerne

Buveursnumnomprenomville

Commandesncdeqtédate

Passer

Donner_lieu

quantite

?

?

1 ?

1 ?

1 ?

1 ?

Page 32: Conception d’une BD

32

Généralisation / spécialisation Introduire dans le modèle E/A un concept

objet "classique" Permet de définir un ensemble d'entité

relativement à un autre (attention ressemble à entité faible mais est très différent)

Page 33: Conception d’une BD

33

Sémantique de la généralisation / spécialisation Sous ensemble d'entité hérite des attributs

de son super ensemble d'entité A priori pas d'héritage multiple Spécialisation peut être :

totale (toute instance est spécialisée dans au moins un sous-ensemble) ou partielle

une partition (une instance ne peut être spécialisée dans plusieurs sous-ensembles) ou un recouvrement

Page 34: Conception d’une BD

34

Exemple de généralisation / spécialisationEnsemble

d'entité AA1A2

Ensembled'entité BB1

Ensembled'entité CC1

Ensembled'entité DD1D2

Super ensemble d'entité

A1A2B1

A1A2C1

A1A2D1D2

T/PA = B C D B C = C D =

Page 35: Conception d’une BD

35

Exemple de généralisation / spécialisation

PERSONNEnomprénomadresse

ETUDIANTnoétudcycle

SALARIEsalaire

T/RP = E S E S

PRIVEprime

PUBLICindice

T/PS = PR PU PR PU =

Page 36: Conception d’une BD

36

Transformation G / S vers modèle relationnel (1) Approche par généralisation

feuille : relation de base dont le schéma est l'union des attributs de la feuille jusqu'à la racine

non feuille : vue définie comme union des fils (avec projection sur les attributs communs)

Page 37: Conception d’une BD

37

Conséquences

Pas de création d'instances sur les non feuilles Accès aux feuilles peu coûteux Accès aux non feuilles par union-projection Une même instance peut être spécialisée dans

plusieurs entités Pas vraiment de notion "d'identité d'objet" (donc pas

de partage de structure) Evolution de schéma difficile

Page 38: Conception d’une BD

38

Exemple de transformationCREATE TABLE ETUDIANT(nom, prénom, adresse, noétud, cycle)CREATE TABLE PRIVE(nom, prénom, adresse, salaire, prime)CREATE TABLE PUBLIC(nom, prénom, adresse, salaire, indice)CREATE VIEW SALARIE AS

SELECT nom, prénom, adresse, salaire FROM PRIVE UNIONSELECT nom, prénom, adresse, salaire FROM PUBLIC

CREATE VIEW PERSONNE ASSELECT nom, prénom, adresseFROM ETUDIANT UNIONSELECT nom, prénom, adresseFROM SALARIE

Page 39: Conception d’une BD

39

Transformation G / S vers modèle relationnel (2) Approche par spécialisation

chaque noeud : relation dont le schéma est constitué des attributs "locaux"

chaque instance : on rajoute un oid (ou surrogate) héritage : on ajoute l'oid de l'instance mère

comme clé étrangère dans l'instance fille

Page 40: Conception d’une BD

40

Conséquences Création d'instance à n'importe quel niveau dans

l'arbre d'héritage Accès coûteux aux instances "loin" de la racine

(reconstruction par jointures) Héritage multiple difficile Notion d'oid est offerte (partage de structure

possible) Multi-instanciation possible Evolution de schéma plus facile

Page 41: Conception d’une BD

41

Exemple de transformationCREATE TABLE PERSONNE(idfP, nom, prénom, adresse)CREATE TABLE ETUDIANT(idfE, noétud, cycle, idfP)CREATE TABLE SALARIE(idfS, salaire, idfP)CREATE TABLE PUBLIC(idfPU, indice, idfS)CREATE TABLE PRIVE(idfPR, prime, idfS)CREATE VIEW PERSONNE AS

SELECT nom, prénom, adresse FROM PERSONNECREATE VIEW ETUDIANT AS

SELECT P.nom, P.prénom, P.adresse, E.noétud, E.cycleFROM PERSONNE P, ETUDIANT EWHERE P.idfP = E.idfP

...

Page 42: Conception d’une BD

42

Théorie des dépendances

Normalisation des schémas relationnels

Page 43: Conception d’une BD

43

Objectifs Mauvaise conception => Redondance des

données anomalies de maj (valeurs dupliquées) anomalies d’insertion (valeurs nulles, incohérences) anomalies de suppression (pertes d'information non

désirées) Introduire une notion de "bon" schéma (sans

redondance d'informations) permet de comparer deux schémas

Page 44: Conception d’une BD

44

Exemple de mauvaise conceptionRelation APPROVISIONNEMENTPRODUIT QUANTITE COULEUR FOURNISSEUR ADRESSEparapluie 110 rouge Labaleine ParisChapeau 50 vert Lemelon Lyonsac à main 65 noir Toutcuir Lyonparasol 15 jaune Labaleine Parisombrelle 5 rouge Labaleine Parisceinture 25 vert Letour Nantessac à main 65 noir Legrand Paris

Page 45: Conception d’une BD

45

Outils proposés Étudier les propriétés des données

dépendances fonctionnelles dépendances multi-valuées dépendances produits, ...

Formes normales ordre partiel sur les schémas

Algorithmes de décomposition / synthèse pour obtenir des schémas en 3ème forme normale

Page 46: Conception d’une BD

46

Décomposition d’une relation

Relation universelle DF

nom nc nb

ville nv

dateexp datec Normalisation

prénom qtéexp qtéc R1(.....)

R2(....)

......

Page 47: Conception d’une BD

47

Les dépendances fonctionnelles

Page 48: Conception d’une BD

48

Dépendance fonctionnelle (DF) Propriété définie sur le schéma

cas particulier de contrainte d'intégrité définie sur l'intension (donc valide qq soit

l'extension) Définition

B dépend fonctionnellement de A si, étant donné une valeur de A, il lui correspond une unique valeur de B (quel que soit l'extension)

A et B sont des ensembles d'attributs Notation A B

Page 49: Conception d’une BD

49

Exemple

BUVEURS(nb, nom, prénom, ville) COMMANDES(nc, datec, nv, qtéc, nb) EXPEDITIONS(nc, dateexp, qtéexp)

Page 50: Conception d’une BD

50

Exemples de DF

NB NOMNB PRENOMNB VILLENC DATECNC NBNC NVNC QTECNC, DATEEXP

QTEEXP

NOM VILLE ?NB NV ?QTEC QTEEXP ?

Page 51: Conception d’une BD

51

Axiomes d’Armstrong

Réflexivité Y X X Y

Augmentation X Y XZ YZ

Transitivité X Y et Y Z X Z

Page 52: Conception d’une BD

52

Propriétés déduites

Union X Y et X Z X YZ

Pseudo-transitivité X Y et YW Z XW Z

Décomposition X Y et Z Y X Z

Page 53: Conception d’une BD

53

Fermeture transitive

Fermeture transitive d'un ensemble F de DF est notée F+

F+ = F U DF obtenues via les axiomes Par exemple

NC NB et NB NOM donc NC NOM NB NOM donc NB, NV NOM, NV essentiellement transitivité et pseudo-transitivité

Page 54: Conception d’une BD

54

Graphe de dépendances fonctionnelles Noeuds = attributs Arcs = DF

nc nb

datec nv qtéc nom prénom ville dateexp

qtéexp

Page 55: Conception d’une BD

55

Graphe de fermeture transitive

nc nb

datec nv qtéc nom prénom ville dateexp

qtéexp

Page 56: Conception d’une BD

56

Dépendance fonctionnelle élémentaire Une dépendance fonctionnelle X A est dite

élémentaire si A n’est pas inclus dans X il n’existe pas X’ inclus dans X tel que X’ A

Permet de simplifier la fermeture transitive (sinon on peut toujours créer de nouvelles DF par augmentation)

Exemple : NB NOM NB, NV NOM non DFE

Page 57: Conception d’une BD

57

Couverture minimale Définition

sous ensemble minimum de DF élémentaires permettant de générer toutes les autres

Exemple(nb nom; nb prénom; nb ville; nc datec; nc nb; nc nv; nc qtéc;nc, dateexp qtéexp)

ThéorèmeTout ensemble de DF admet une couverture minimale, en général non unique

Page 58: Conception d’une BD

58

Clé d’une relation Définition

ensemble minimum d’attributs permettant de déterminer tous les autres

Soit R(A1, A2, ..., An) un schéma de relation. Soit F+ l’ensemble des DF associées à R. X (sous-ensemble d'attributs de R) est une clé de R ssi : X A1, A2, ..., An

il n’existe pas de sous-ensemble Y de X tel que Y A1, A2, ..., An

Page 59: Conception d’une BD

59

Clé d’une relation (2)

Exemple nc, dateexp est une clé du schéma coopérative

Remarques une même relation peut avoir plusieurs clés il existe toujours au moins une clé (au pire on

prend tout le schéma)

Page 60: Conception d’une BD

60

Décomposition des relations

Page 61: Conception d’une BD

61

Décomposition d’une relation Décomposition d’un schéma de relation

La décomposition d’un schéma de relation R(A1, A2, ..., An) est sa substitution par un ensemble de schéma de relations R1, R2, ..., Rp telles que : schéma(R) schéma(R1) schéma(R2) ...

schéma(Rp)

Critères de bonne décomposition Décomposition sans perte d'informations Décomposition préservant les DF

Page 62: Conception d’une BD

62

Décomposition sans perte d'informations La décomposition d’un schéma de relation

R(A1, A2, ..., An) par un ensemble de schéma de relations R1, R2, ..., Rp est sans perte d'informations ssi : R R1 R2 ... Rp

Page 63: Conception d’une BD

63

Décomposition préservant les DF Soit R(A1, A2, ..., An) et DFR (ens. de DF

associé) la décomposition de R en R1, R2, ..., Rp (avec

DFR1, ...DFRn resp. ens. de DF de R1, ..., Rn) préserve les DF ssi :DFR

+ = DFR1+ U ... U DFRn

+

Page 64: Conception d’une BD

64

Exemples de décomposition Commandes(nc, datec, nv, qtéc, nb, nom,

prénom, ville) C(nc, datec, nv, qtéc, nb) et B(nom, prénom,

ville) : perte d'info C(nc, datec, nv, qtéc, nb) et B(nb, nom, prénom,

ville) : pas de perte d'info et préservation DF C(nc, nb) et B(nc, datec, nv, qtéc, nom, prénom,

ville) : pas de perte d'info et perte de DF (nb nom par exemple)

Page 65: Conception d’une BD

65

Principe de décomposition binaireR(X,Y,Z) et X Y R(X,Y,Z)=R1(X,Y) R2(X,Z)

on peut toujours décomposer une relation suivant une DF

on ne peut pas décomposer une relation s'il n'y a pas de DF

la décomposition selon une DF préserve l'information

Page 66: Conception d’une BD

66

Algorithme de décomposition

Commandes(nc, datec, nv, qtéc, nb, nom, prénom, ville)nb nom; nb prénom; nb ville;nc datec; nc nb; nc nv; nc qtéc;nc, dateexp qtéexp

Commandes(nc, datec, nv, qtéc, nb, nom, prénom, ville)

C1(nc, datec, nv, qtéc)

C2(nc, nb)

C(nc, nb, nom, prénom, ville)

C3(nb, nom, prénom, ville)

nc datec, nv, qtéc

nb nom, prénom, ville

Page 67: Conception d’une BD

67

Algorithme de décomposition

Garantie que la décomposition soit sans perte (puiqu'on suit le principe de décomposition binaire)

Pas de garantie que la décomposition préserve les DF

Décomposition n'est pas unique (dépend de l'ordre du choix des DF dans la décomposition)

Page 68: Conception d’une BD

68

Autre décomposition

Commandes(nc, datec, nv, qtéc, nb, nom, prénom, ville)

C2(nc, datec, nv, qtéc, nb)C1(nb, nom, prénom, ville)

nb nom, prénom, ville

Page 69: Conception d’une BD

69

Formes normales

Page 70: Conception d’une BD

70

Formes normales

Première forme normale Deuxième forme normale Troisième forme normale ...

Page 71: Conception d’une BD

71

1ère forme normale

Définition Une relation est en première forme normale si

tous ses attributs sont atomiques (inhérent au modèle relationnel)

Un attribut atomique n’est pas : multivalué (liste de valeurs) composé (structuré en sous-attributs)

Page 72: Conception d’une BD

72

Deuxième forme normale Définition

Une relation est en deuxième forme normale ssi : elle est en première forme normale tout attribut non clé dépend de la totalité de toutes les

clés

Exemple C(nc, dateexp, qtéexp, nb) pas en 2FN car nc,

dateexp clé et nc nb

Page 73: Conception d’une BD

73

Troisième forme normale Objectif : élimination des redondances dues

aux dépendances fonctionnelles déduites par transitivité

Définition Une relation est en troisième forme normale ssi :

elle est en deuxième forme normale il n’existe aucune DF entre attributs non clé

Page 74: Conception d’une BD

74

Comment calculer une forme normaleSoit R(A1, ..., An) et DFR ens. de DF associé calculer DFR

+

déterminer la (les) clé (s) de R partitionner les attributs en attributs clés (ils

appartiennent à au moins une clé) et attributs non clés

appliquer les définitions de forme normale (depuis la 1ère)

Page 75: Conception d’une BD

75

Propriétés Toute relation R admet au moins une

décomposition en 3FN qui préserve l'information et les DF

Deux approches pour la calculer : décomposition : on s'arrête dès que les

relations dérivées sont en 3FN (mais pas de garantie sur les DF)

synthèse à partir de la couverture minimale

Page 76: Conception d’une BD

76

Algorithme de synthèse en troisième forme normale

Pré : connaissance du contenu de la relation universelle + DF Principe de l’algorithme :

A partir du graphe G des DF, calculer une couverture minimale C Editer l’ensemble des attributs isolés dans une même relation (tous sont

clés) Recherche le plus grand ensemble X d’attributs qui détermine d’autres

attributs Editer la relation R(X, A1, ..., An) Supprimer les DF X A1, .., X An du graphe de couverture minimale C Supprimer les attributs isolés de C Reprendre l’opération à partir de l’étape 3 jusqu’à ce que C soit vide

Page 77: Conception d’une BD

77

Insuffisance de la 3FNRelation VINS(CRU, PAYS, REGION)Chenas, France, BeaujolaisJuliénas, France, BeaujolaisChablis, France, BourgogneChablis, USA, Californie

avec les DF suivantes :région pays; cru, pays régionVINS est en 3FN, pourtant il y a des

redondances (ici on peut régler cela avec la 3FN Boyce Codd Kent)

Page 78: Conception d’une BD

78

Conclusion sur la normalisation Permet d'affiner une conception de schéma

Peut se coupler avec une démarche de conception "à la Merise"

Inconvénient majeur : on suppose qu'on possède une couverture minimale des DF (si on a oublié une DF tout est faux)

Autres formes normales avec d'autres types de dépendance

Peut être remis en cause au niveau physique (dénormalisation)