You are on page 1of 42

Base de Donnes 2

Cours 4
Julie Dugdale
Julie.dugdale@upmf-grenoble.fr
Material/Sources: Daniel Bardou, Julie Dugdale &
Vanda Luengo

Sommaire
La mthode de passage dun MCD MERISE aux BD

relationnelles

Traitements des entits, Traitements des


associations, Traitements cardinalits,

Rappel: notion didentifiant vers notion de cl

Contraintes dintgrit
Contraintes de cl
Contraintes de domaine
Dpendances fonctionnelles
Contraintes rfrentielles ou Contraintes dinclusion

Du MCD au Modle
relationnel
3

Du MCD au Modle relationnel


Rappel:
Une fois le MCD crit par les analystes, le travail du
concepteur consiste traduire ce modle en un
modle plus proche du SGBD utilis: le MLD (modle
logique de donnes).
Dans le MLD relationnel, lunique type dobjet

existant est la relation.


La mthode de passage dun MCD aux table

relationnelles est simple et systmatique.


4

Du MCD au Modle relationnel


Traitements des entits

chaque entit devient une relation

chaque proprit d'une entit est une colonne


(ou attribut) de la relation

l'identifiant d'une entit devient la cl primaire


de la relation correspondante

Traitements des entits

Traitements des entits


Le schma de la relation article

Article (refart, designart, descriart,marqueart)


Relation (entit)

ARTICLE
refart
designart
descriart
marqueart

Article

Attributs (proprits)

Cl (identifient)

Refart

desigart

descripart

marqueart

101

Fauteuil

Gris

TRE

102

Fauteuil

Rouge

CFD

103

Bureau

Vert

TRE

104

Bureau

Gris

CFD

105

Armoire

Rouge

TIP

106

Caisson

Gris

TIP

107

Caisson

Jaune

TRE

108

Classeur

Bleu

TIP
7

Du MCD au Modle relationnel


(MLD)
Traitements des associations
une association (0,1)-(0,n), ou lien hirarchique,
provoque la migration d'une cl trangre
(l'identifient ct 0,n) vers la relation de l'entit
ct (0,1). Si des proprits taient sur la
association, elles migreraient ct (0,1)
Entit 1
A
B

0,1

Relation
E

0,n

Entit 2
C
D

Table 1

Table 2

A
B
C
E

C
D
8

Traitements des associations

Du MCD au MLD
Traitements des associations
Une association (0,n)-(0,n), ou lien maill, donne
naissance une nouvelle relation. La cl
primaire de cette nouvelle relation sont les deux
identifiants.
Du mme pour l'association n-aire.
Entit 1
A
B

0,n

Relation
E

0,n

Entit 2
C
D

Table 1

Table 3

Table 2

A
B

A
C

C
D

E
10

UNE ASSOCIATION DE DIMENSION 2

11

UNE ASSOCIATION DE DIMENSION


SUPERIEURE A 2

12

Notion didentifiant -> Cl


Chaque tuple dune relation doit tre identifi de manire unique par une cl
Nom

Prnom

Date
Naissance

Dupont

Albert

01/06/70

Martin

Marie

05/06/78

Dupont

Albert

23/05/33

Les identifiants (schma conceptuel)


deviendront les clef des
relations (schma logique)
Nom

Prnom

Date
Naissance

Ref

Nom

Prnom

Date
Naissance

Dupont

Albert

01/06/70

Dupont

Albert

01/06/70

Martin

Marie

05/06/78

Martin

Marie

05/06/78

Dupont

Albert

23/05/33

Dupont

Albert

23/05/33

13

Notion de cl
Cl primaire (identifiant s'il existe)

Ensemble minimal de colonnes qui permet d'identifier de


manire unique un enregistrement

Cl candidate

Une relation peut avoir plus dune cl.


Dans ce cas, chacune des cls sappelle une cl candidate.

Si une relation a
plusieurs cls
candidates, une
dentre elles est
choisie
arbitrairement pour
tre la cl primaire.

14

Clef trangre

Dfinition : Une cl trangre d'une relation


est forme d'un ou plusieurs de ses attributs
qui constituent une cl dans une autre
relation.
Clef primaire

Table
Attributs

Enregistrement
ou tuple

Clef trangre

Etudiant

codeEtudiant nomEtudiant
E01
Jean
E02
Pierre
E03
Pascal
E04
Michel
E05
Georges
Degr

cpu#
486/DX2
P166 MMX
PII 233
P133
PII 233

Card

15

Exemple:
Considrons les relations suivantes pour une base de
donnes qui enregistre linscription des tudiants aux
cours et les livres utiliss pour chaque cours :
ETUDIANT(NSS, Nom, Spcialit, DdNaissance)
COURS(CoursNo, NomdeCours, Dpt)
INSCRIPTION(NSS, CoursNo, Trimestre, Note)
LIVRE_ADOPTE(CoursNo, Trimestre, Livre_ISBN)
TEXTE(Livre_ISBN, Livre_Titre, Editeur, Auteur)
Spcifier les cls trangres pour ce schma.
16

Contraintes dintgrit

17

INTEGRITE DES DONNEES


Objectif : garantir la cohrence des donnes afin d avoir une

concordance entre la base et le monde rel qu elle modlise.


Intgrit de domaine : concerne le contrle syntaxique et
smantique d un attribut et fait rfrence au type de dfinition
du domaine.
Exemple : age : entier compris entre 0 et 120.
Intgrit d entit : concerne les valeurs prises par une cl
primaire qui doivent tre unique et non nulles.
Exemple : pour la relation CLIENT, CODE_CLIENT est
unique et non nul.
Intgrit de rfrence : Si un mme attribut apparat dans une
relation comme cl et dans une autre comme non cl, toute
valeur de l attribut non cl doit exister dans l attribut cl.
18

Contraintes dintgrit
Les contraintes d'intgrit apportent une

manire d'assurer que les changements


effectus une base de donnes par des
utilisateurs autoriss ne rsultent pas en une
perte de consistance de donnes.
La gestion automatique des contraintes

dintgrit est lun des outils les plus


importants dun SGBD
19

Contraintes dintgrit
Les contraintes construites dans la base de

donnes deviennent une partie de la


dfinition de la base de donnes elle-mme,
et la base de donnes les impose de manire
consistante dans toutes les applications.

20

Contraintes dintgrit
Mettre en place une contrainte une fois dans

la base de donnes l'impose pour toutes les


interactions suivantes avec cette base de
donnes.
En contraste, les contraintes construites dans

les applications clientes sont vulnrables


chaque fois que le software change.

21

Contraintes dintgrits
Exemple : on souhaite poser les contraintes suivantes :
le nombre dexemplaire de chaque OUVRAGE doit tre
suprieur 0 (zro)
Chaque OUVRAGE doit avoir au moins un auteur, Etc.
Ceci est possible grce la notion de contraintes

dintgrit
Dfinition : Contraintes d intgrit sont des assertions

qui doivent tre vrifies tout moment par les donnes


contenues dans la base de donnes
22

Contraintes dintgrit
Schma dune base de donnes

relationnelles:

Un ensemble de schmas de relations


Un ensemble de contraintes (dintgrit)

Les contraintes dintgrit exprimables au

niveau schma peuvent tre varies:


1.

2.
3.
4.

Contraintes de cl
Contraintes de domaine
Dpendances fonctionnelles
Contraintes rfrentielles ou contraintes
dinclusion

23

Contraintes de cl

24

Contraintes de cl
Le premier type de contraintes dintgrit trait

par un SGBD permet de vrifier la prsence de


cls uniques pour chacune des tables
Une cl primaire doit tre prsente pour chaque
enregistrement, elle doit tre unique et aucun
des ses constituants ne peut tre NULL.
Une cl primaire peut tre constitue de
plusieurs colonnes
Si la cl est omise, si elle est la valeur NULL ou
si elle a dj t saisie pour un autre
enregistrement de la table, une anomalie de cl
est dclenche
25

Contraintes de
domaine
26

Contraintes de domaine
Un domaine de valeurs possibles doit tre

associ chaque attribut.


Ces contraintes de domaine sont la forme la
plus basique de contrainte d'intgrit.
Exemple:

Lattribut Nom du schma Fournisseurs est


contraint tre une chane de caractres de
longueur 20
Lattribut Couleur du schma de relation
Voitures a ses valeurs dans lensemble
{rouge, vert, bleu, noir, blanc}
27

Contraintes de domaine
Lexistence de la valeur dun attribut peut tre

li la valeur dun autre attribut


Exemple:
lattribut NomMarital dun schma de relation
Personne ne prend de valeur que si la valeur
dattribut Sexe est fminin

28

Contraintes de domaine
Rgles de calcul indiquant comment la valeur dun

attribut est dduite de la valeur dun ou plusieurs


attributs

Exemple:
en Angleterre, le numro dimmatriculation dune
voiture contient linformation ncessaire au calcul de
lge de la voiture. Lattribut numro
dimmatriculation peut tre utilis pour calculer
lattribut ge de la voiture

29

Dpendances
fonctionnelles
30

Dpendances fonctionnelles
Un type important de contraintes intervenant

au niveau dun schma de relation est la


dpendance fonctionnelle
La dtermination des dpendances

fonctionnelles est une partie importante de la


conception de base de donnes selon le
modle relationnel, et dans la normalisation
et d-normalisation de bases de donnes.
31

Notion de dpendance
fonctionnelle (DF)

A1

DF

A2

Non

X
X

X
X

Un attribut A2 dpend fonctionnellement


d'un attribut A1 si une
valeur de A1 correspond au plus
une valeur de A2 : A1 A2
(A1 =dterminant ou A1 dtermine A2)
numEn

NomEnseignant
codeMatire

matire

X
X

Un enseignant nintervient que dans une matire.


Plusieurs enseignants peuvent intervenir dans une mme matire.
Les noms denseignants et de matires ne sont pas les identifiants.

On a les DF suivantes :
numEn NomEnseignant, codeMatire, matire,
codeMatire matire
32

Notion de dpendance fonctionnelle


(DF)
Exemple:

A lensemble de phrases suivantes:


-

Une voiture est identifie par un numro


dimmatriculation N_imm
Une voiture a une couleur
une voiture correspond un type
un type de voiture correspond une puissance

On peut associer lensemble de DF suivant:


{N_imm ->Type, N_imm -> Couleur, Type -> Puissance}
33

Notion de dpendance
fonctionnelle (DF)
DF lmentaire (un unique dterminant)
Une DF A1 , A2 A3 est lmentaire si ni A1 A3
, ni A2 A3 ne sont des DF
numEn

la DF suivante :
numEn, NomEnseignant
codeMatire
naurait pas t lmentaire dans
lexemple prcdent

NomEnseignant
codeMatire
matire

...

En effet numEn suffit pour dduire


codeMatire

Il nest PAS ncessaire davoir numEn ET


enseignant pour dduire codeMatire
34

Notion de dpendance fonctionnelle


(DF)
DF directe

Une DF A1 A3 est directe


si n'existe pas de DF A1 A2
et A A .
2

A1

A3

A2

X
X

X
X

X
Nest pas une DF directe :
X
X
numEn matire
parce que numEn codeMatire et codeMatire
matire

35

Contraintes
rfrentielles ou
contraintes
dinclusion
36

Intgrit rfrentielle
Cest une contrainte concernant deux

relations (tables)
Utilise pour spcifier une relation entre les

tuples dans deux relations.

37

Contraintes rfrentielles ou
contraintes dinclusion
Souvent nous voudrions assurer qu'une valeur

apparaissant dans une relation pour un ensemble


donn d'attributs apparaisse aussi pour un autre
ensemble d'attributs dans une autre relation.

Cela voque l'intgrit rfrentielle.

L'intgrit rfrentielle est habituellement impose

par la combinaison d'une cl primaire ou cl


candidate, et d'une cl trangre

38

Contraintes rfrentielles ou
contraintes dinclusion
Une base de donnes d'employs

stocke le dpartement dans lequel


chaque employ travaille.
Le champ "Dept.No" dans le tableau

Employ est dclar comme cl


trangre, et il rfre au champ
"Dept.No" dans le tableau
Dpartement o cest une cl
primaire.
L'intgrit rfrentielle serait casse

Employ

Name

Dept.no

Qualified

Julie

27

Yes

..

..

..

Dpartement

par l'effacement d'un dpartement du Dept.no


tableau Dpartement si des employs
27
lists dans le tableau Employ sont
lists comme travaillant pour ce
14
dpartement.

Building

Name

H2

Finance

A4

39
Marketing

Contraintes rfrentielles ou
contraintes dinclusion
Le SGBD impose l'intgrit rfrentielle,

Soit en effaant aussi les ranges de la cl


trangre pour maintenir l'intgrit,

(Dans lexemple prcdent, en effaant toutes les lignes


de la relation employ avec Dept.no = 27)

Soit en renvoyant une erreur et en n'effectuant


pas l'effacement.

40

Contraintes rfrentielles ou
contraintes dinclusion Tableau dartiste
Un exemple d'une base

de donne qui n'a pas


impos d'intgrit
rfrentielle :
il y a une valeur cl
trangre (artiste_id)
dans le tableau de CD
qui rfrence un artiste
non-existant
En d'autres mots, il y a

une valeur cl
trangre sans valeur
cl primaire.

artiste_id

artiste_nom

Prodigy

Red Hot Chilli


Peppers

RadioHead

Tableau de CD
artiste_id

CD_id

CD-nom

Bends

Blue lines

OK
41
computer

Contraintes rfrentielles ou
contraintes dinclusion Tableau dartiste
Ce qu'il s'est pass :

Il y avait un artiste appel


Massive attack, avec une
artist_id de "4", qui a t
effac du tableau Artiste.
Cependant, l'album Blue
Lines rfrait cet artiste.

artiste_id

artiste_nom

Prodigy

Red Hot Chilli


Peppers

RadioHead

Tableau de CD

Avec l'intgrit rfrentielle

impose, ceci n'aurait pas


t possible.

Artiste_id

CD_id

CD-nom

Bends

Blue lines

OK
42
computer

You might also like