Vous êtes sur la page 1sur 34

Bases de donnes relationnelles

Universit du Maine Yannick Estve


yannick.esteve@lium.univ-lemans.fr

Introduction

Dnition : Base de Donnes

Dnition : Systme de Gestion de Bases de Donnes

Ensemble de procdures permettant : la description des donnes et des relations les concernant Ensemble de donnes modlisant les objets dune partie du monde rel et servant de support une application informatique (Gardarin 2001) linterrogation de la base la mise jour le partage des donnes la protection des donnes
3 4

Historique (1/3)

Historique (2/3)

Les SGBD existent depuis 40 ans (1960) IBM est alors le principal dveloppeur Premire gnration : base sur la navigation dans des structures de types graphes (modles rseau ou hirarchique) pour lobtention, un par un, des chiers contenant les informations ex. :TOTAL, IDMS, IDS 2, IMS 2

Deuxime gnration : dveloppement dans les annes 70. Bass sur le modle relationnel. Utilisation de langages non procduraux : facilite laccs et la mise jour des donnes ex. : ORACLE, INGRES, SYBASE, INFORMIX, DB2, ...

Historique (3/3)

Notion 1 : Conception dune BD


Description des donnes du monde rel (entreprise) devant tre stockes, mises jour et accessibles par ordinateur

Troisime gnration : dveloppe dans les annes 80. Base sur les modles objets Na pas (encore ?) supplant les SGBD relationnels purs ex. : ORACLE, INGRES (devenu PostgreSQL), SQL Server

La description des donnes est formalise par un modle de description des donnes (MDD) Un MDD efcace doit permettre llaboration dune base de donnes soumises au moins aux contraintes suivantes : pas de perte dinformation non redondance des donnes intgrit (cohrence) des donnes
7 8

Notion 2 : Manipulation des donnes


Les donnes, dcrites aprs tude du monde rel laide dun MDD, doivent pouvoir : tre insres dans une base tre consultes tre modies tre supprimes Les SGBD relationnels utilisent le langage SQL apparu la n des annes 70 et normalis pour la premire fois en 1989
9

Contenu du cours

Conception dune base de donnes Modles de conception historiques Modle relationnel Modle entit-association Manipulation des donnes Langage SQL SGBD par la pratique : PostgreSQL
10

Niveaux de modles

Premire Partie : Conception dune base de donnes

Trois niveaux dabstractions : Niveau physique : spcication des structures et des mthodes de stockage sur disques. Niveau conceptuel : description des donnes (MDD). Niveau externe : arrangement de certaines donnes correspondant la vision dun programme ou dun utilisateur

Schma externe 1 Schma externe i

Schma externe n

Schma conceptuel

Schma physique

12

Modle conceptuel
Le concepteur doit rechercher et considrer 3 sortes de phnomnes : Des groupes de donnes attaches autour dune mme notion. Ces groupes sont appels objets ou entits selon les conventions utilises. Des associations entre ces objets qui traduisent une contrainte de l'entreprise (liens). Des contraintes dintgrit auxquelles sont soumis objets et associations dobjets pour garantir la vraisemblance avec le monde rel.
13

Trois types de liens

Liens de type 1:1. Associent une instance de la classe dobjet A une instance de la classe dobjet B et une instance de la classe B une instance de la classe A. Liens de type 1:N. Associent une instance de la classe dobjet A N instances de la classe dobjet B et une instance de la classe B une instance de la classe A. Liens de type N:M. Associent une instance de la classe A M instances de la classe B et associent une instance de la classe B N instances de la classe A.
14

Modle hirarchique

Les modles conceptuels historiques


Partie I : Conception dune base de donnes

Donnes reprsentes sous formes de structures arborescentes. Donnes regroupes en type denregistrements (segments). Un segment peut tre pre de plusieurs segments. Un segment ne peut tre ls de plusieurs segments.
Segment racine A Segment B Segment D Segment C Segment racine F Segment G

Segment E

16

Modle hirarchique
Avion N:M Pilote 1:N Vol Avion N:M Vol-Pilote N:M Avion 1:N

Modle hirarchique : Avantages

Pilote

Vol

Adquation du modle avec les entreprises (parties du monde rel modliser) structure arborescente.
Pilote N:M 1:N

Pilote N:M Avion 1:N Vol

Pilote N:M Vol-Avion

Simplicit du modle
Vol

Avion

Implmentation facile.

17

18

Modle hirarchique : Inconvnients


Impossibilit de reprsenter directement les liens N:M (redondances). Anomalies pour les oprations de stockage : la suppression d'un noeud entrane la disparition des descendants. L'insertion d'une information impose la cration d'un segment parent. Le remplacement d'une information doit s'effectuer pour toutes ses occurrences dans des arbres distincts. Chemin d'accs unique aux donnes. Indpendance logique trs rduite.
19

Modle rseau
Donnes regroupes sous formes denregistrements logiques (record). Les types denregistrements sont relis entre eux par des chemins. Semblable au modle hirarchique, MAIS : un type denregistrements ls (membre) peut dpendre de plusieurs types denregistrement pre (propritaires).
Record A Record Record D B Record Record C E Record F Record I

Record G 20

Modle Rseau
1 JEAN PARIS 2 PIERRE NICE

Modle rseau : Avantages

IT100

17 18

Mmes avantages que le modle hirarchique, avec en plus :


1 IT100 N P 13 14

Reprsentation naturelle des liens de type N:M


21 22

IT120

Elimination des redondances de donnes


10 11

IT101

Cration de chemin daccs multiples pour une mme donne


15 16

IT109

2 B707

150

PARIS

4 CARA

100

PARIS

21

22

Modle rseau : Inconvnients

Le modle relationnel
Indpendance logique trs rduite : pas dindpendance vis--vis des stratgies daccs Partie I : Conception dune base de donnes

23

Modle relationnel
Introduit par E.F. Codd en 1970 (centre de recherche IBM San-Jos) la base de la grande majorit des SGBD actuels Apports : Indpendance entre les applications et la reprsentation interne des donnes Base solide pour le traitement des problmes de cohrence et redondance des donnes Dveloppement de langages de manipulation de donnes non procduraux Standard de description et de manipulation des donnes
25

Dnition : DOMAINE

Ensemble de valeurs caractris par un nom les donnes prennent leurs valeurs dans un domaine Exemples : Domaine des dates : 23 mai 2003, 14 septembre 2004, ... Domaines des villes : Londres, Turin, Le Mans, ...

26

Dnition : RELATION
Sous-ensemble du produit cartsien dune liste de domaines caractris par un nom Quelquefois appel TABLE Exemple : soient D1={Cathy, Paul, Xavier, Graldine} et D2={Le Mans, Marseille, Nantes} Relation Est N Est N D1 Cathy Paul Xavier Graldine D2 Le Mans Le Mans Le Mans Nantes

Dnition : ATTRIBUT
Colonne dune relation caractrise par un nom Le nom associ un attribut est gnralement porteur de sens : il diffre donc du nom du domaine qui supporte lattribut Exemple : Est N Relation Est N
27

Prnom Cathy Paul Xavier Graldine

Ville natale Le Mans Le Mans Le Mans Nantes

28

Dnition : TUPLE
Ligne dune relation correspondant un enregistrement Exemple : Relation Est N Est N Prnom Cathy Paul Xavier Graldine Ville natale Le Mans Le Mans Le Mans Nantes
29

Dnition : SCHMA DE RELATION


Nom de la relation suivi de la liste des attributs et de la dnition de leurs domaines. Reprsente lINTENTION de la relation : le schma de relation reprsente les proprits communes et invariantes des tuples quelle est susceptible de contenir. Exemple : EST_N(Prnom:CHARVAR, VilleNatale:CHARVAR) Une table reprsente une EXTENSION de la relation : elle propose une vue des tuples quelle contient un instant donn. Exemple :
Est N Prnom Cathy Paul Graldine Ville natale Le Mans Le Mans Nantes

30

Dnition : BASE DE DONNES RELATIONNELLE


Une base de donnes relationnelle est un ensemble de schmas de relation La conception dune base de donnes relationnelle revient donc construire un ensemble de schmas de relation qui modlise au mieux le monde rel. Contraintes de conception : viter la redondance des donnes. Garantir la cohrence des donnes.
31

Algbre relationnelle

Invente par E.F. Codd. Fondement du modle relationnel Oprations de base classes en 2 types : Oprations ensemblistes (une relation est un ensemble de tuples) : oprations binaires (union, diffrence, produit cartsien) Oprations spciques : oprations unaires de projection et de restriction
32

CONCEPTION DE SCHEMAS RELATIONNELS

CONCEPTION DE SCHEMAS RELATIONNELS

Dans un SGBD relationnel, les entits et les liens sont reprsents par des relations.
Exemple 1 :
L'entit relation : AVION est reprsente par la

Exemple 2 :
Le lien existant entre les entits PILOTE et AVION apparat dans une relation dans laquelle sont impliques ces entits :

AVION(NUM-AV, NOM-AV, CAP-AV, LOC-AV)

VOL(PILOTE,AVION, V-D, V-A, H-D, H-A)

33

34

CONCEPTION DE SCHEMAS RELATIONNELS

APPROCHE PAR DECOMPOSITION

PROBLEMES DE REPRESENTATION DU REEL


VOL : Numro, Pilote, Avion,Villes dpart et arrive, Heures dpart et arrive IT12! IT14! IT15! Pil01! Paul! Nice ! Pil01! Paul! Nice ! Pil02! Yves! Pau! Av05! Av05! Av12! B747! B747! A300! 500! 500! 300! Nice! Nice! Nice! Paris! Paris! Pau! 12! 17! 7! 13 18 8

La relation universelle compose de tous les attributs est dcompose en sous relations n'ayant pas les anomalies signales prcdemment.

35

36

APPROCHE PAR DECOMPOSITION

APPROCHE PAR DECOMPOSITION

PROJECTION La projection consiste supprimer des attributs d'une relation et liminer les tuples en double qui peuvent apparatre dans la nouvelle relation.

PROJECTION La projection de R(A1, A2, ..., An) sur les attributs Ai1, Ai2, Ai3, ..., Aip avec ij ! ik est la relation R'(Ai1, Ai2, Ai3, ..., Aip) note :

" Ai1, Ai2, Ai3, ..., Aip

(R)

37

38

APPROCHE PAR DECOMPOSITION

APPROCHE PAR DECOMPOSITION

PROJECTION Exemple :

JOINTURE NATURELLE
(VOL)

" NUM-AV, NOM-AV, CAP-AV, LOC-AV


AVION:

La jointure naturelle de relations R(A1, ..., An) et S(B1, ..., Bp) est une relation T ayant pour attributs l'union des attributs de R et de S et pour tuples tous ceux obtenus par concatnation des tuples de R et de S ayant mme valeur pour les attributs de mme nom.

Av05 B747 500 Paris Av12 A300 300 Nice

39

40

APPROCHE PAR DECOMPOSITION

APPROCHE PAR DECOMPOSITION

JOINTURE NATURELLE De plus on a : # # " A1, A2, ...., An (T) = R ! !et

JOINTURE NATURELLE : Exemple


! ! ! ! ! R! Av01! Av02! Av12! Av13! ! B747! B747! A300! A300 S B747! B747! A300! 500! 500! 300! Nice Paris Paris

T=R >< S
Av01 Av01 Av02 Av02 Av12 Av13 B747 B747 B747 B747 A300 A300 500 500 500 500 300 300 Nice Paris Nice Paris Paris Paris

# # " B1, B2, ...., Bp (T) = S

41

42

APPROCHE PAR DECOMPOSITION

APPROCHE PAR DECOMPOSITION

PROPRIETES DES JOINTURES NATURELLES associative (R >< S ) >< U = R >< (S >< U)

PROPRIETES DES JOINTURES NATURELLES commutative (R >< S ) = (S >< R)

43

44

APPROCHE PAR DECOMPOSITION

APPROCHE PAR DECOMPOSITION

DECOMPOSITION
La dcomposition de R(A1, ..., An) est le remplacement de R par une collection de relations R1, R2, ..., Rp, obtenues par des projections de R et telles que R1 >< R2 ... >< Rp ait mme schma que R.

DECOMPOSITION Une dcomposition est dite sans perte si pour toute extension de R on a R = R1 >< R2 ... >< Rp.

45

46

DEPENDANCES FONCTIONNELLES

DEPENDANCES FONCTIONNELLES

Dnition
Soit R(A1, ..., An) un schma de relation et X et Y des sous ensembles des attributs {A1, ..., An}. On dit que X -> Y (X dtermine Y ou Y dpend fonctionnellement de X) si! pour toute extension r de R, ! pour tout tuples t1 et t2 de r on a :

Exemple : NUM-PIL -> NOM-PIL NUM-PIL -> ADR-PIL (NUM-AV, H-D, H-A) >(V-D, V-A) (NUM-AV, V-D, V-A)-/->(H-D, H-A)

" X(t1) = " X(t2)

=>

" Y(t1) = " Y(t2)

47

48

PROPRIETES DES DF

PROPRIETES DES DF

Rexivit Augmentation Transitivit Union Pseudo-transitivit Dcomposition

Rflexivit
Y $ X => X -> Y Exemple (NUM-AV, H-D, H-A) > H-D

49

50

PROPRIETES DES DF

PROPRIETES DES DF

Augmentation
X -> Y => XZ -> YZ Exemple si : NUM-AV > CAP alors : NUM-AV,V-D > CAP,V-D

Transitivit
(X -> Y et Y -> Z) => X -> Z Exemple
Si : NUM-VOL -> (NUM-AV, H-D, H-A) (NUM-AV, H-D, H-A) -> (V-D, V-A)

Alors : NUM-VOL

->

(V-D, V-A)

51

52

PROPRIETES DES DF

PROPRIETES DES DF

Union
(X ->Y et X -> Z) => X -> YZ Exemple
Si : NUM-VOL -> NUM-AV NUM-VOL -> V-D

Pseudo-transitivit
(X -> Y et WY -> Z) => WX -> Z Exemple
Si : V-D,H-D,NUM-AV -> V-A NUM-VOL -> NUM-AV Alors : V-D,H-D,NUM-VOL -> V-A)

Alors : NUM-VOL ->(NUM-AV,V-D)

53

54

PROPRIETES DES DF

DEPENDANCE FONCTIONNELLE ELEMENTAIRE

Dcomposition
(X -> Y et Z $ Y) => X -> Z Exemple
Si : NUM-VOL -> (V-D,V-A) or : V-D $ (V-D,V-A)

X -> A A est atomique et A %X non & X" $ X ' X" -> A


DFE : DF: Exemple NUM-PIL -> NOM-PIL NUM-VOL -> H-D, H-A NUM-VOL,V-D -> V-A

Alors : NUM-VOL -> V-D

55

56

PROPRIETE DES DFE

Cours n2
Transitivit
(X -> Y et Y -> Z) => X -> Z

Rappels du cours n1 Cls de relation Formes normales Algorithmes de dcomposition

57

APPROCHE PAR DECOMPOSITION

APPROCHE PAR DECOMPOSITION

PROJECTION La projection consiste supprimer des attributs d'une relation et liminer les tuples en double qui peuvent apparatre dans la nouvelle relation.

DECOMPOSITION
La dcomposition de R(A1, ..., An) est le remplacement de R par une collection de relations R1, R2, ..., Rp, obtenues par des projections de R et telles que R1 >< R2 ... >< Rp ait mme schma que R.

59

60

APPROCHE PAR DECOMPOSITION

(Petit) Exercice : dcomposition sans perte


Soit la relation VOITURE de schma":VOITURE(NUM, MARQUE, TYPE,PUISSANCE, COULEUR) dont un extrait dune extension est donne par la table suivante":

JOINTURE NATURELLE
La jointure naturelle de relations R(A1, ..., An) et S(B1, ..., Bp) est une relation T ayant pour attributs l'union des attributs de R et de S et pour tuples tous ceux obtenus par concatnation des tuples de R et de S ayant mme valeur pour les attributs de mme nom.

VOITURE

Num 873 RH 72 569 VR 84

Marque RENAULT RENAULT

Type Clio RT Clio RT

Puissance 5 5

Couleur Blanche Rouge

Dcomposer la relation suivant les 2 projections sur les ensembles dattributs"suivants": Pour chacun des cas vous donnerez la table pour lextension prcdente de chacune des relations obtenues ainsi que celle de la jointure naturelle de ces relations (ie R1><R2 et V1><V2><V3) {NUM", TYPE", COULEUR} et {TYPE", MARQUE, PUISSANCE} {NUM", TYPE}", {TYPE", PUISSANCE, COULEUR} et { TYPE, MARQUE} Ces dcompositions sont elles sans pertes"?"
61

62

R1={NUM!, TYPE!, COULEUR} et R2={TYPE!, MARQUE, PUISSANCE}

V1={NUM!, TYPE}, V2={TYPE!, PUISSANCE, COULEUR} et V3={MARQUE, TYPE}

VOITURE

Num 873 RH 72 569 VR 84

Marque RENAULT RENAULT Type Clio RT Clio RT Type Clio RT

Type Clio RT Clio RT Couleur Blanche Rouge Puissance 5

Puissance 5 5

Couleur Blanche Rouge

VOITUR E

Num 873 RH 72 569 VR 84 Num 873 RH 72 569 VR 84

Marque RENAULT RENAULT Type Clio RT Clio RT

Type Clio RT Clio RT V2

Puissance 5 5 Type Clio RT Clio RT Marque RENAULT

Couleur Blanche Rouge Puissance 5 5 Type Clio RT Couleur Blanche Blanche Rouge Rouge Couleur Blanche Rouge

V1

R1

Num 873 RH 72 569 VR 84

V3

V1><V2><V3

R2

Marque RENAULT

Num 873 RH 72 569 VR 84 873 RH 72 569 VR 84

Marque RENAULT RENAULT RENAULT RENAULT

Type Clio RT Clio RT Clio RT Clio RT

Puissance 5 5 5 5

R1><R2 = VOITURE

Dcomposition sans perte

63

V1><V2><V3 !VOITURE

Dcomposition avec perte

64

DEPENDANCES FONCTIONNELLES

DEPENDANCE FONCTIONNELLE ELEMENTAIRE

Dnition
Soit R(A1, ..., An) un schma de relation et X et Y des sous ensembles des attributs {A1, ..., An}. On dit que X -> Y (X dtermine Y ou Y dpend fonctionnellement de X) si! pour toute extension r de R, ! pour tout tuples t1 et t2 de r on a :

X -> A A est atomique et A %X non & X" $ X ' X" -> A


DFE : DF: Exemple NUM-PIL -> NOM-PIL NUM-VOL -> H-D, H-A NUM-VOL,V-D -> V-A

" X(t1) = " X(t2)

=>

" Y(t1) = " Y(t2)

65

66

FERMETURE TRANSITIVE

FERMETURE TRANSITIVE

Dnition Ensemble de DFE enrichi de toutes les DFE dduites par transitivit
Exemple :
{ NUM-VOL -> NUM-PIL , NUM-PIL -> NOM-PIL , NUM-AV -> CAP-AV , NUM-VOL -> NUM-AV , NUM-PIL -> ADR-PIL NUM-AV -> LOC-AV }

Proprit

la fermeture transitive sera


F+ = F ( { NUM-VOL -> NOM-PIL, NUM-VOL -> ADR-PIL, NUM-VOL -> CAP-AV, NUM-VOL -> LOC-AV}

Deux ensembles de DFE sont quivalents s'ils ont la mme fermeture transitive

67

68

COUVERTURE MINIMALE
NOM-AV CAP-AV

NUM-AV

V-D H-D

LOC-AV

Ensemble F de DFE Aucune DFE n'est redondante


) f * F , F-{f} <!> F

NUM-VOL

Toute DFE est dans la fermeture transitive


V-A H-A NOM-PIL

de F

NUM-PIL

ADR-PIL

69

70

COUVERTURE MINIMALE

COUVERTURE MINIMALE

Exemple
F =

tout ensemble de DFE a une couverture minimale qui n'est en gnral pas unique

{ NUM-AV -> NOM-AV, NUM-AV -> LOC-AV, NOM-AV -> CAP-AV, NUM-AV -> CAP-AV F- = { NUM-AV -> NOM-AV, NUM-AV -> LOC-AV, NOM-AV -> CAP-AV } }

71

72

CLE DE RELATION

CLE DE RELATION (2)

Une cl de relation R(A1, ..., An) est un sous ensemble X des attributs tel que : X -> A1, ..., An Il n'existe pas Y $ X tel que ! ! Y -> A1, ..., An
Exemple : NUM-VOL est cl de la relation VOL

Toute relation possde au moins une cl

A1, ..., An -> A1, ..., An

! pour trouver une cl, on part de l ensemble {A1, ..., An} il suffit alors d'liminer les Ai jusqu' la vrification des 2 conditions.

73

74

CLE DE RELATION (3)

FORMES NORMALES

Une relation peut avoir plusieurs cls on en choisit en gnral une comme cl primaire les autres sont appeles cls candidates

introduites par Codd pour dcomposer les relations sans pertes

75

76

PREMIERE FORME NORMALE

DEUXIEME FORME NORMALE

Une relation est en 1NF si tout attribut est atomique


Chaque attribut ne peut tre dcompos en plusieurs autres. La relation PERSONNE(AGE, ADRESSE) n'est pas en 1NF si par exemple on a ADRESSE(VILLE, RUE, NUMERO).

Une relation est en 2NF ssi :

! elle est en 1NF, ! tout attribut n'appartenant pas une cl ne dpend pas que d'une partie de cette cl.

77

78

DEUXIEME FORME NORMALE

DEUXIEME FORME NORMALE

Exemple 1 : Si l'on choisit la cl primaire NUM-VOL, la relation VOL est en 2NF.


Exemple 2 : Si l'on choisit la cl (NUM-AV, H-D), la relation VOL n'est pas en 2NF car NOM-AV, LOC-AV, CAP-AV ne dpendent que d'une partie de la cl NUM-AV.
79

Dans le cas prcdent, on doit dcomposer la relation VOL de manire n'avoir que des relations en 2NF. Par exemple :
AVION(NUM-AV, NOM-AV, LOC-AV, CAP-AV)

VOL1(NUM-VOL, NUM-AV, NUM-PIL, NOM-PIL, ADR-PIL, H-D, V-D, H-A, V-A)

80

TROISIEME FORME NORMALE

TROISIEME FORME NORMALE

Exemple 1 : Une relation est en 3NF ssi


! elle est en 2NF, ! tout attribut n'appartenant pas une cl ne dpend pas d'un attribut non cl.
PILOTE(NUM-PIL, NOM-PIL, ADR-PIL) est en 3NF

Exemple 2 :
AVION(NUM-AV, NOM-AV, LOC-AV, CAP-AV) n'est pas en 3NF car NOM-AV -> CAP-AV. dans ce cas il faut dcomposer la relation : TYPE(NOM-AV, CAP-AV) AVION1(NUM-AV, NOM-AV, LOC-AV)

81

82

PROPRIETES DES DECOMPOSITIONS EN 3NF

PROPRIETES DES DECOMPOSITIONS EN 3NF

Si l'on dcompose maladroitement la relation AVION en

Une dcomposition {R1, R2, ..., Rn} d'une relation R qui prserve les DF est telle que la fermeture transitive des DF de R est la mme que celle de l'union des DF de R1, R2, ..., Rn.

AVION1(NUM-AV, NOM-AV) et AVION2(NOM-AV, CAP-AV, LOC-AV), alors cette dcomposition ne prserve pas les DF car on perd la DF NUM-AV -> LOC-AV.

83

84

PROPRIETES DES DECOMPOSITIONS EN 3NF

ALGORITHME DE DECOMPOSITION EN 3NF

Toute relation a au moins une dcomposition en 3NF telle que : la dcomposition prserve les DF, la dcomposition est sans perte. Cette dcomposition peut ne pas tre unique

Entre : Schma de relation R ne contenant que des DF Sortie : Schma {R1, R2, ... , Rn} avec Ri en 3NF pour tout i

85

86

ALGORITHME DE DECOMPOSITION EN 3NF

ALGORITHME DE DECOMPOSITION EN 3NF

Etape 1 : Soit F l'ensemble des DF. Pour toute DF f, rendre f lmentaire. Soit F' l'ensemble obtenu. Etape 2 : Rechercher une couverture minimale de F' note MIN(F').

Etape 3 : Partitionner MIN(F') en groupes F'1, F'2, ..., F'k tels que toutes les DF d'un mme groupe aient la mme partie gauche. Etape 4 : Pour chaque groupe F'i, construire un schma contenant les attributs de F'i et les DF de F'i.

87

88

ALGORITHME DE DECOMPOSITION EN 3NF

EXEMPLE DE DECOMPOSITION EN 3NF

Les lments isols (non dtermins par une DFE) sont regroups dans une relation dont ils constituent la cl.

La relation AVION peut se dcomposer de la manire suivante : Etape 1 : Toutes les DF sont lmentaires (voir graphe des DF).

89

90

EXEMPLE DE DECOMPOSITION EN 3NF

EXEMPLE DE DECOMPOSITION EN 3NF

Etape 2 : Une couverture minimale


NUM-VOL -> NUM-AV NUM-VOL -> H-A NUM-VOL -> V-A NUM-AV -> NOM-AV NOM-AV -> CAP-AV NUM-PIL -> NOM-PIL NUM-PIL,H-A -> NUM-VOL NUM-PIL,H-D -> NUM-VOL NUM-AV,H-A -> NUM-VOL NUM-AV,H-D -> NUM-VOL NUM-VOL -> H-D NUM-VOL -> V-D NUM-VOL -> NUM-PIL NUM-AV -> LOC-AV NUM-PIL -> ADR-PIL

Etape 3 : Partition
F'1 = { NUM-VOL NUM-VOL NUM-VOL NUM-VOL NUM-VOL NUM-VOL -> -> -> -> -> -> NUM-AV, H-D, H-A, V-D, V-A, NUM-PIL},

F'2 = { NUM-AV -> NOM-AV, NUM-AV -> LOC-AV}

F'3 = {NOM-AV -> CAP-AV}, F'4 = {NUM-PIL -> NOM-PIL, NUM-PIL -> ADR-PIL}, F'5 = {NUM-PIL,H-A -> NUM-VOL}, F'6 = {NUM-PIL,H-D -> NUM-VOL}, F'7 = {NUM-AV,H-A -> NUM-VOL}, F'8 = {NUM-AV,H-D -> NUM-VOL}}

91

92

EXEMPLE DE DECOMPOSITION EN 3NF

FORME NORMALE DE BOYCE-CODD

Etape 4 : R1(NUM-VOL, NUM-AV, H-D, H-A,V-D,V-A, NUM-PIL) R2(NUM-AV, NOM-AV, LOC-AV) R3(NOM-AV, CAP-AV) R4(NUM-PIL, NOM-PIL, ADR-PIL) R5(NUM-PIL,H-D,NUM-VOL) R6(NUM-PIL,H-A,NUM-VOL) R7(NUM-AV,H-D,NUM-VOL) R8(NUM-AV,H-A,NUM-VOL)

Les relations en 3NF comportent encore des redondances. Par exemple si l'on considre la relation : CODE-POSTAL(VILLE, RUE, CODE) avec la DFE : CODE -> VILLE

93

94

FORME NORMALE DE BOYCE-CODD

FORME NORMALE DE BOYCE-CODD

Cette relation comporte des redondances: CODE-POSTAL Paris Arras 75005 Paris Jussieu 75005 Paris Monge 75005 Paris Le Pic 75008

Dnition Une relation est en BCNF si et seulement si les seules DFE sont celles dans lesquelles une cl dtermine un attribut

95

96

FORME NORMALE DE BOYCE-CODD

FORME NORMALE DE BOYCE-CODD


Exemple La relation prcdente se dcompose en
VILLE-CODE(VILLE,CODE) RUE-CODE(RUE,CODE)

Proprit Toute relation a une dcomposition en BCNF qui est sans perte. Par contre une dcomposition en BCNF ne prserve pas les DF

VILLE-CODE Paris 75001 Paris 75002 Avignon 84000

RUE-CODE Arras Jussieu Halles Halles Pasteur

75005 75005 75001 84000 84000

97

98

DEPENDANCES MULTIVALUEES

DEPENDANCES MULTIVALUEES

Considrons la relation : ETUDIANT(NUM-ET, COURS, SPORT)

100 100 100 100

Base de donnes Base de donnes Programmation Programmation

Tennis Plonge Tennis Plonge

Soit R(A1, A2, ..., An) un schma de relation et X et Y des sous ensembles de {A1, A2, ..., An}. On dit que X ->-> Y (X multidtermine Y) si, tant donnes des valeurs de X il y a un ensemble de valeurs de Y associes et cet ensemble est indpendant des autres attributs Z = R - X -Y de la relation R. Formellement on peut crire : (X ->-> Y) <=> {(xyz) et (xy'z') * R => (xy'z) et (xyz') * R}

99

100

DEPENDANCES MULTIVALUEES

DEPENDANCES MULTIVALUEES

Exemple :
X = {NUM-ET}, Y = {COURS} et et Z = {SPORT} NUM-ET ->-> COURS NUM-ET ->-> SPORT

Proprits
1 - Les DF sont des cas particuliers des DM. (X -> Y) => {(xyz) et (xy'z') * R => y = y'} (X -> Y) => {(xyz) et (xy'z') * R => (xy'z) et (xyz') * R} ! ! ! (X -> Y) => (X ->-> Y)

en effet si l'on prend les tuples (100, Bases de Donnes, Tennis) et (100, Programmation, Golf} on aura forcment dans la base les tuples (100, Bases de Donnes, Golf) et (100, Programmation, Tennis}

101

102

DEPENDANCES MULTIVALUEES

DEPENDANCES MULTIVALUEES

Proprits
2 - Complmentation ! ! (X ->-> Y) => (X ->-> R -X -Y) 3 - Augmentation (X ->-> Y) et (V$W) => (XW ->-> YV) 4 - Transitivit

Proprits
(X ->-> Y) et (Y ->-> L) => (X ->-> L - Y) 5 - Union (X ->-> Y) et (X ->-> L) => (X ->-> YL)

103

104

DEPENDANCES MULTIVALUEES ELEMENTAIRE

QUATRIEME FORME NORMALE

Une dpendance multivalue lmentaire (DME) est une DM !X->-> Y o : 1 - Y n'est pas vide et est disjoint de X. 2 - Il n'existe pas une DM X' ->-> Y' tel que X $ X et Y' $ Y.

Une relation est en 4NF si et seulement si les seules DME sont celles dans lesquelles une cl multi-dtermine un attribut.

105

106

QUATRIEME FORME NORMALE

QUATRIEME FORME NORMALE

Du fait qu'une DF est une DM, une relation en 4NF est en BCNF.
Exemple : la relation ETUDIANT(NUM-ET, COURS, SPORT) n'est pas en 4NF car : la cl est l'ensemble des attributs et il existe les DME : NUM-ET ->-> COURS et NUM-ET ->-> SPORT.

On dmontre que pour toute relation, il existe une dcomposition en relations 4NF qui est sans perte. et qui n'est pas forcment unique

107

108

QUATRIEME FORME NORMALE

ALGORITHME DE DECOMPOSITION EN 4NF

Exemple : la relation ETUDIANT prcdente peut se dcomposer en 2 relations ETUDIANT-COURS(NUM-ET, COURS) et ETUDIANT-SPORT(NUM-ET, SPORT) qui sont en 4NF car il n'y a plus d'attributs indpendants donc plus de DME.

On utilise cet algorithme lorsque certaines dpendances sont des DM. Entre : Schma R(X) contenant des DF et des DM Sortie : Schma {R1, R2, ... , Rn} avec Ri en 4NF pour tout i

109

110

ALGORITHME DE DECOMPOSITION EN 4NF

ALGORITHME DE DECOMPOSITION EN 4NF

Etape 2 : (itration)

Etape 1 : (initialisation) S = { R }.

Si T est un schma de S qui n'est pas en 4NF, alors chercher une DM non triviale W ->-> V de T telle que W ne contienne pas une cl de T. Remplacer le schma T dans S par les deux schmas T1(W, V) et T2(X - V) munis des dpendances drives de la fermeture de celles du schma T. Rpter l'tape 2 si S contient un schma qui n'est pas en 4NF.

111

112

ALGORITHME DE DECOMPOSITION EN 4NF

Cours n3
Etape 3 : (limination de la redondance) Pour tout couple Ri et Rj de S, si Xi $ Xj alors liminer Ri de S. Rappels du cours n2 Astuces pour la validation des dpendances multivalues Exercice de modlisation en 4FN Modle entit relation

113

Astuces pour acclrer la vrication de la validit dune DM

Astuces pour acclrer la vrication de la validit dune DM


Deuxime rgle : Sur le mme principe, une DM X"" Y ne peut tre vraie sil existe un z tel que X,Y"z avec X un sous ensemble de X. Troisime rgle : Il nest pas ncessaire de tester lindpendance par rapport aux attributs z tel que X"z : ces attributs auront toujours la mme valeur dans les triplets (x,y,z) et (x,y,z) car ici z = z.
115 116

Premire rgle : Une DM X"" Y ne peut tre valide (indpendante) sil existe un attribut z dans les autres attributs tel que Y"z (si lon a (x,y,z) et (x,y,z) on ne peut pas avoir (x,y,z) car un y donn DETERMINE un seul z"!) Donc en fait TOUTES les DM sont de la forme X"" Y() o Y() symbolise Y et TOUS les attributs quil dtermine.

Astuces pour acclrer la vrication de la validit dune DM

Exemple : CDs de Jazz

Voir nonc distribu lors du cours : Quatrime rgle : Une DM X"" Y ne peut tre valide (indpendante) sil existe un attribut z dans les autres attributs tel que z"Y ou Xz"Y. dnir un ensemble de dpendances fonctionnelles et multivalues qui modlisent au mieux les informations vises. proposez un ensemble de relations en Quatrime Forme Normale.

117

118

Dpendances fonctionnelles
Dpendances fonctionnelles

Dpendances multivalues

Dpendances multivalues
d1 : NUM_DISQUE " TITRE_CD, NUM_EDITEUR,NUM_CD_ED, DISTRIBUTEUR,TECHNIQUE, NOTE_ART, NOTE_TECH d2 : NUM_DISQUE, NUM_ENR " NUM_MUSIQUE, DUREE-ENR, DATE_ENR, LIEU_ENR,COND_ENR

dm1 : NUM_DISQUE "" NUM_MUSICIEN[leader], NOM, PRENOM, DATE_NAIS, DATE_DECES, NATION dm2 : NUM_MUSIQUE ""NUM_MUSICIEN[compositeur], NOM, PRENOM, DATE_NAIS, DATE_DECES, NATION dm3 : NUM_DISQUE, NUM_ENR, NUM_MUSICIEN[interprte] ! ""! INSTRUMENT

d3 : NUM_MUSIQUE " TITRE_MUSIQUE

d4 : NUM_MUSICIEN " NOM, PRENOM, DATE_NAIS, DATE_DECES, NATION

d5 : NUM_EDITEUR " NOM_EDITEUR, PAYS

119

120

Dcomposition en 4FN
R(Num_Disque(...), Num_Enr(...), Num_Musique(...), Num_Musicien[leader](...), Num_Musicien[interprte](...), Num_Musicien[compositeur](...), Num_Editeur(...), Instrument) {d1, d2, d3, d4, d5, dm1, dm2, dm3} dm1 R1(Num_Disque, Num_Musicien[leader](...)) {d4} d4 R2(Num_Musicien, Nom, Prnom, Date_Nais, Date_Dcs, Nation) {d4}
R4(Num_Disque(...), Num_Enr(...), Num_Musique(...), Num_Musicien[interprte], Num_Musicien[compositeur], Num_Editeur(...), Instrument) {d1, d2, d3, d5, dm2'(*), dm3}

Le modle entit relation


Partie I : Conception dune base de donnes

R3(Num_Disque, Num_Musicien[leader])

dm2'

(*) dm2 devient dm2 car nom, prnom, etc. nexistent pas dans R4

121

Dnitions et formalismes
Entits Relations Proprits Cardinalits

Entit
Dnition : une entit est un objet pourvu dune existence propre et conforme aux choix de gestion de lentreprise

Nom de l'entit

Formalisme

Exemple

Entit 1

Entit 2
Nom de la relation

Relation
Dnition : Une relation entre entits est une association perue dans le rel entre deux ou plusieurs entits. Une relation est dpourvue dexistence propre.
Entit 3

Pilote

Avion

Compagnie arienne

Entit 4

Formalisme

Dirige Vol

Possde Avion

126

Exemple
Avion

- Marque

Commande Facture

Proprit
Client Commande - N Commande - Date Commande Produit - N Produit - Libell Produit - Prix - etc. Facture - NFacture - Date Facture - Montant Facture

Dnition : une proprit (ou attribut) est une donne lmentaire que lon peroit sur une entit ou sur une relation entre objets.

Dirige Vol

- Num Vol

- NClient - Nom - Prnom - Adresse - etc.

Formalisme

Passer Commande Commander Produit - Quantit commande

Facturer Produit - Quantit facture

128

Cardinalit
Dnitions : la cardinalit dune entit par rapport une relation sexprime par rapport deux nombres appels cardinalit minimale et cardinalit maximale. La cardinalit minimale (gale 0 ou 1) est le nombre de fois minimum quune occurrence dune entit participe aux occurrences dune relation. La cardinalit maximale (gale 1 ou n) indique le nombre de fois maximum quune occurrence de lentit participe aux occurrences de la relation.

Exemple

Entit

Client
Relation

Nbre 1, Nbre 2 Cardinalit Cardinalit minimale maximale

- NClient - Nom - Prnom - Adresse - etc.

Commande Passer Commande - N Commande - Date Commande

0,n

1,1

129

130

Identiant dune entit

Identiant dune relation


Dnition : Cest lidentiant obtenu par concatnation des identiants des entits participant la relation.

Client

Dnition : Cest une proprit particulire de lentit telle qu chaque valeur de la proprit corresponde une et une seule occurrence de lentit. Remarque : Sil existe pour un mme objet plusieurs possibilits didentiants, on en retiendra un seul.

- NClient - Nom - Prnom - Adresse - etc.

Exemple : Lidentiant de la relation PASSER_COMMANDE est NCLIENT - N COMMANDE.

Client - NClient - Nom - Prnom - Adresse - etc. Passer Commande

Commande - N Commande - Date Commande

Formalisme : lidentiant gure en premire position dans la liste des proprits. De plus, lidentiant est soulign.
131

0,n

1,1

Formalisme : lidentiant dune relation nest en gnral pas inscrit dans la relation.
132

Rgles concernant les entits

Rgles de vrication et de normalisation

Rgle n1 : Existence dun identiant pour chaque entit. Rgle n2 : Toutes les proprits autres que lidentiant doivent tre en dpendance fonctionnelle complte et directe de lidentiant. Ainsi, pour chaque occurrence dune entit, chaque proprit doit prendre une et une seule valeur.
134

Rgle concernant les relations

Rgle concernant lensemble du modle conceptuel de donnes

Rgle n3 : Toutes les proprits dune relation doivent dpendre compltement de lidentiant de la relation. De plus, chaque proprit doit dpendre de tout lidentiant et non dune partie de cet identiant. Chaque proprit doit tre en dpendance fonctionnelle de lidentiant de la relation et doit donc prendre une et une seule valeur.

Rgle n4 : Une proprit ne peut apparatre quune seule fois dans tout le MCD : elle ne peut qualier quune seule entit ou une seule relation. Rgle n5 : Les proprits qui sont le rsultat dun calcul ne doivent pas gurer dans le MCD sauf si elles sont indispensables la comprhension de ce dernier. Rgle n6 : Toutes les proprits doivent tre lmentaires, cest--dire non dcomposables.
135 136