Вы находитесь на странице: 1из 66

Le modle relationnel

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).

Il faut comprendre le modle relationnel..

Le modle relationnel
Propos partir de 1970 (travaux de

CODD). Lide tait dcrite dans larticle de


Codd :

"A Relational Model for Large Shared Data


Banks," Communications of the ACM, June
1970

Cet article causa une rvolution majeure

dans le domaine de la gestion de bases de


donnes, et permis au Dr Codd de
remporter lAward de Turing ACM
3

Le modle relationnel
S inspire de la notion mathmatique de relation
Propose de percevoir les donnes sous une forme

simple de tables
Ces tables possdent une indpendance physique
totale indpendance entre traitements et donnes
La manipulation des donnes s effectue l aide d un
ensemble d oprateurs algbriques pour lesquels les
relations (ou tables ) sont oprandes et rsultat
Se dmarque de ses prdcesseurs par des rgles qui
appliques aux tables permettent de dfinir de manire
efficace leur contenu Rgles de normalisations
4

Le modle relationnel
Ide de base:

Classes dentits et associations sont


stockes dans des tables appeles relations
Une BD relationnelle est une collection de

tables (relations)
Ce sont ces tables qui doivent tre cres

puis manipules avec le SGBD


5

Dfinitions Informelles
Informellement, une relation ressemble

une table de valeurs.


Une relation contient typiquement un

ensemble de lignes.
Les lments de donnes dans chaque ligne

reprsentent certains faits qui correspondent


une entit ou relation du monde rel.
Dans le modle formel, les lignes sont
appeles des tuples (n-uplets)
6

Dfinitions Informelles
Chaque colonne a une entte de

colonne qui indique la signification des


donnes contenues dans cette colonne.
Dans

le modle formel, lentte de


colonne est appele un nom dattribut
(ou juste un attribut).

Toutes les valeurs dune colonne sont du

mme type de donnes.


7

Modle Relationnel
SCHEMA D UNE RELATION :

Autre exemple

Dfinitions informelles
Cl dune relation :
Chaque ligne a une valeur dun donne (ou ensemble de
donnes) qui identifie de manire unique cette ligne dans
la table.
Elle est appele la cl
Dans la table ETUDIANT, NSS est la cl
La notion de cl a t rencontre dans le modle E-A
utilisant le nom.?

10

cl
Exemples:
FOURNISSEURS (Nom: caractre (20), Adresse:
caractre (30); cl NOM)
POSSEDE (Nom: caractre (20), NVoiture: caractre
(10), Kilomtrage: entier, Anne: entier; cl
NomNVoiture)
Lattribut Nom constitue une cl pour la relation
FOURNISSEURS, cad, que deux tuples de la relation
ne peuvent avoir mme valeur pour cet attribut
11

Le modle relationnel
Le modle relationnel est simple

comprendre et fidle un cadre


mathmatique (l'algbre relationnelle).

Relation de la thorie des ensembles, qui se


dfinit comme un sous-ensemble du produit
cartsien de plusieurs domaines

12

Dfinitions formelles

13

Dfinitions formelles- Relation


Le degr dune relation est le nombre

dattributs.
Par exemple, degr de?
ETUDIANT (Nom, NSS, TelephoneDomicile,
Adresse, Age, Cours)

Rponse: 6

14

Dfinitions formelles- Schma


Le schma (ou description) dune relation:
Not par R(A1, A2, .....An)
R est le nom de la relation
Les attributs de la relation sont A1, A2, ..., An
Exemple:

CLIENT (Client-id, Client-nom, Adresse,


Telephone#)

CLIENT est le nom de la relation


Quatre attributs : Client-id, Client-nom,
Adresse, Telephone#
15

Dfinitions formelles- Schma


Un autre exemple dun schma d'une relation
POSSEDE (Nom, NVoiture, Kilomtrage, Anne)

POSSEDE est le nom de la relation


Quatre attributs : Nom, NVoiture, Kilomtrage, Anne

Nom
Dib
Khaldi
Dali
Moussa

NVoiture
Espace
Golf
Navada
Corsa

Kilomtrage
3200
34500
24600
75000

Anne
2005
2002
1999
1995
16

Chaque attribut a un domaine ou ensemble

de valeurs valides (possibles).

Par exemple, le domaine de Client-id est


lensemble de nombres 6 chiffres.

17

Dfinitions formelles- Schma


Si

le schma d'un table est l'ensemble


d'attributs de la table,
Quest-ce que le schma dune BD?
le schma d'une BD est l'ensemble de toutes
les tables
18

Dfinitions formelles- Tuple


Un tuple est un ensemble ordonn de

valeurs ( < >)


Chaque valeur est drive dun domaine.
Par exemple:
Une ligne de la relation CLIENT est un 4tuple et consisterait de 4 valeurs, :
< Dali, Navada, 24600, 1999>
Une relation est un ensemble de tels tuples

(lignes)
19

Dfinitions formelles- Tuple


On utilise le produit cartsien d'un ensemble

de domaines pour dfinir un ensemble de


tuples.
Le produit cartsien d'un ensemble de

domaines D1,D2,,Dn que l'on crit


D1xD2x..xDn est un ensemble tuples <V1,
V2,..,Vn> tel que Vi Di

20

Dfinitions formelles- Domaine


Un domaine est un ensemble fini ou infini de

valeurs possibles
Exemples:

Le domaine des entiers, rels


Le domaine des couleurs {rouge, vert, bleu}
Le domaine des voitures {Renault, VW,
Peugeot, Ford}
Le domaine de numeros_telephone {lensemble des
numros 10 chiffres valides}

21

Dfinitions formelles- Domaine


Exemple :

Soit:
D1 = {khaled, mohamed, malik} et
D2 = { dib, abed}
Le produit cartsien des domaines
khaled
donne..

dib

khaled

abed

mohamed

dib

mohamed

abed

malik

dib

malik

abed
22

Dfinitions formelles- Domaine


Autre exemple:
Soit R(A1, A2) un schma de relation :
Soit dom(A1) = {0,1}
Soit dom(A2) = {a,b,c}
Alors dom(A1) X dom(A2) est lensemble de

toutes les combinaisons possibles :


{<0,a> , <0,b> , <0,c>, <1,a>, <1,b>, <1,c> }
Une table relationnelle est un sous-ensemble

du produit cartsien d'une liste de domaines.


23

Dfinitions formelles- Domaine


Un domaine a aussi un type de donnes ou

un format dfini pour ce domaine.


Par exemple..
Le type de donnes pour le domaine ge est:
entier positif
Le type de donnes pour le domaine solde dun
compte en banque est: rel
Les numeros_telephone peuvent avoir un format:
cc cc cc cc cc o chaque c est un chiffre.

24

Dfinitions formelles- Rsum


Formellement,
Etant donn R(A1, A2, .........., An)
r(R) dom (A1) X dom (A2) X ....X dom(An)
r(R): un tat spcifique (ou "valeur" ou population)

de la relation R cest un ensemble de tuples


(lignes) Cardinalite (Card)

r(R) = {t1, t2, , tn} o chaque ti est un tuple


ti = <v1, v2, , vn> o chaque lment vj est dans
dom(Aj)

R(A1, A2, , An) est le schma de la relation


R est le nom de la relation
A1, A2, , An sont les attributs de la relation
25

Rsum de dfinitions
Termes informels

Termes formels

Table

Relation

Entte de colonne

Attribut

Toutes les valeurs


possibles de colonnes

Domaine

Ligne

Tuple

Dfinition dune table

Schma de relation

Table remplie (ou


peuple)

Etat de relation
26

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.


27

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

28

Traitements des entits

29

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
30

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
31

Traitements des associations

32

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
33

UNE ASSOCIATION DE DIMENSION 2

34

UNE ASSOCIATION DE DIMENSION


SUPERIEURE A 2

35

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

36

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.

37

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

38

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.
39

Contraintes dintgrit

40

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
41

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.

42

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.

43

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
44

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

45

Contraintes de cl

46

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
47

Contraintes de
domaine
48

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}
49

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

50

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

51

Dpendances
fonctionnelles
52

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.
53

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
54

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}
55

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
56

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

57

Contraintes
rfrentielles ou
contraintes
dinclusion
58

Intgrit rfrentielle
Cest une contrainte concernant deux

relations (tables)
Utilise pour spcifier une relation entre les

tuples dans deux relations.

59

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

60

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

61
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.

62

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
63
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
64
computer

Merci

65

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.
66

Вам также может понравиться