Vous êtes sur la page 1sur 27

Le modle relationnel

Frdric Gava (MCF)


gava@univ-paris12.fr
LACL, btiment P2 du CMC, bureau 223
Universit de Paris XII Val-de-Marne
61 avenue du Gnral de Gaulle
94010 Crteil cedex

Thorie

2/16

Dfinitions (1)
Cest le modle le plus utilis par les SGBD actuels. Il
nutilise que le concept de relation. On peut lui associer le
cadre mathmatique de lalgbre relationnelle (non vue ici)
Une relation est une partie dun produit cartsien
densembles. Dans le langage SGBD, les ensembles sont
appels domaine
Larit dune relation est le nombre de ses domaines
Une relation est reprsent par une table o les lignes sont
des uplets et les colonnes des composants (ou attributs).
Exemple :
Numro avocat

Nom

Prnom

Nombre de clients

Lecouturier

Guigui

10

Collard

Bebert

Vergs

Jacquy

100

3/16

Dfinitions (2)
Cette table reprsente un ensemble davocats. Pour facilit
la lisibilit de la table, on nomme les colonnes (nom,
domaine). Exemple (nom, chane de caractres)
Le schma de la relation est la liste de ses attributs
(numro, nom, prnom, nb_clients)
Pour simplifier, on omettra les domaines, ils sont souvent
implicite.
Les notions de cl et de dpendance fonctionnelle seront
aussi utilises. Les attributs constituant la cl dune table
seront souligns.
Si un attribut dune table appartient la cl principale
dautre autre table, il est dit cl externe (ou trangre). On le
mettra en rouge.
4/16

Dfinitions (3)
Le schma de relation donne la signification ou
linterprtation de la relation. Il est dfinit par :
son nom
la liste des attributs
ses cls et cls externes
sa dfinition
la liste des contraintes

Par mis les contraintes se trouvent les dpendances


fonctionnelles

5/16

Exemple Complet
Avocats (numro, nom, prnom, nb_clients)
(nom, chane de caractres)
(prnom, chane de caractres)
(numro, entier)
(nb_client, entier)

Contrainte : le nom ne peut tre identique au


prnom.
En pratique, on se contentera dcrire juste la
relation et crire cts les contraintes. Les
domaines seront sous-entendus
6/16

Important
Avocats (numro, nom, prnom, nb_clients) et le nom ne peut tre
identique au prnom.
crire cette relation correspond :
Numro

Nom

Prnom

Nombre de clients

Lecouturier

Guigui

10

Collard

Bebert

Vergs

Jacquy

100

On fait une abstraction des donnes en ne donnant juste que les noms
des colonnes et les relations entres elles
Numro sera la cl de la relation car elle identifie une ligne de
manire unique : il ne pourra pas y avoir 2 avocat ayant le mme
numro (pas 2 franais ayant le mme numro de scu)
7/16

Passage des diagrammes EA


aux tables du relationnel

partir dun diagramme EA, il est possible de construire un


diagramme relationnel . Les TE et les TA sont transforms en schma
de relation (table) suivant cette mthode :
chaque TE donne naissance une relation de mme nom, ayant les
mmes attributs et les mmes cls
chaque TA, dont aucune des pattes ne contient une
connectivit maximale gale 1 (dpendance fonctionnelle)
devient une relation dont les attributs sont les cls des TE lis et de
ses propres attributs.
En cas dune dpendance fonctionnelle, le TA nest pas
transform en relation et il est matrialis par lajout dun attribut
dans la relation source de la dpendance fonctionnelle, cet attribut
correspond la cl de lautre TE
Dans le cas dun TE faible, on ne fait quune seule table avec le
TA et le TE. On ajoute aussi la cl de lautre TE (cl extrieur) 8/16

Exemple 1
(0,n)

Etudiant
N, nom

Etudiant(N, Nom)

Contrle
Note

(0,n)

Contrle(Ntudiant, Nmatire, note)

Livre
ISBN, titre, auteur

(1,n)

Livre(ISBN, titre, auteur)

(1,1)
Est_un

Matire
N, libell

Matire(Nmatire, libell)
Exemplaire
N, date, tat

Exemplaire(N exemplaire, date, tat, ISBN)


9/16

Suite exemple 1
Nous aurons donc les tables (relations) suivantes :
Etudiant(N, Nom)
Contrle(Ntudiant, Nmatire, note)
Matire(Nmatire, libell)
Livre(ISBN, titre, auteur)
Exemplaire(N exemplaire, date, tat, ISBN)

Ces relations seront notre base de donnes. Dans un


SGBD, il suffira de crer ces tables puis de les
remplir, consulter etc.
Nous verrons cela plus tard
10/16

Exemple 2
Assurance(N assurance, type)
Assurance
N, type
Vhicule
N immatriculation, type

(1,n)
(0,1)
Assure
Date

Personne
N, nom, prnom
(0,n)

Personne(Npersonne, nom, prnom)


Vhicule(N immatriculation, type, date, Npersonne, N assurance )

11/16

Suite exemple 2
Nous aurons donc les tables (relations) suivantes :
Vhicule(N immatriculation, type, date, Npersonne, N
assurance )
Assurance(N assurance, type)
Personne(Npersonne, nom, prnom)

12/16

Notion de clture
On part dun ensemble dattribut X dune relation R et lon
veut calculer tous les autres attributs qui dpendent
fonctionnellement de cette ensemble initial (not {X}+)
On parle aussi de fermeture transitive
Dfinition mathmatique : trop dure pour ici
Mthode (algorithme) : On commence avec lensemble de
dpart (initial). Pour chaque dpendance fonctionnelle, on
regarde sils on peut obtenir de nouveaux attributs. Lon
rajoute alors ces nouveaux attributs lensemble prcdent
dattribut. On recommence alors lopration jusqu ne plus
rajouter dattributs
PECA
Proprit : {cl}+=R
La clture minimal est la clture qui est la plus petite et
13/16
qui recouvre le maximal

Algorithme de

+
X de

Entre : La relation R, un ensemble dattribut X de R et


des DF sur R
Sortie : La clture X+ de X sur R daprs les DF
Dbut
X+ X
Aux
PECA
Rpter
Aux X+
pour chaque YZ faire
si YX alors X + X+ Z
fin pour chaque
Jusqu Aux=X+ ou X+=R
Fin
14/16

Mathmatiquement
PECA
A ne lire que que si vous tes laise en maths
Mthode dclaratif :
X+={A R | XA}

Obtenue par la relation de rcurrence suivante :


X(0) = X
X(i+1) = X(i) {
et AZ}

A} tel que si YZF alors YX

(i)

15/16

Exemple dune clture


PECA
R(A,B,C,D,E) avec DF={ABC, BD, CDE}
X0={A,B}
X1=X0{C}{D}={A,B,C,D} car ABC et BD
X2=X1{E}=R car CDE
On ne rajoute plus dattribut donc X2={AB}+

16/16

Lopration de jointure

17/16

Dcomposer une relation (1)


tant donne une relation non satisfaisante
(rptitions, pbs dintgrits etc.) on peut trouver un
sous-ensemble de sous-relation satisfaisant et qui
dcrivent les mmes informations
NOM
STATUT AGE
Exemple :
NOM

STATUT AGE COURS

GAVA MCF

26

Paralllisme

HAINS Pr

40

Scurit

HAINS Pr

40

Smantique

GAVA MCF

26

HAINS Pr

40

NOM

COURS

GAVA Paralllisme
HAINS Scurit
HAINS Smantique
18/16

Dcomposer une relation (2)


On dira quune dcomposition est bonne si on
peut retrouver les informations de la relation initiale
partir des sous-relations
Pour retrouver les informations dune relation
partir des relations filles , on utilisera loprateur
de jointure naturelle

19/16

La jointure
Loprateur que nous allons utiliss est appel
jointure.
+ est un oprateur sur les entiers
Il prend 2 entiers par exemple 2 et 3 en fait la somme
En rsum 2+3  5

sera un oprateur sur les tables (relations)


le rsultat sera une nouvelle table
celle-ci contiendra une fusion des donnes des 2
tables utilises pour la jointure
20/16

Jointure naturelle
Lopration de jointure naturelle permet de composer des
sous-relations pour en obtenir une plus grosse relation :
R1(X,Y)R2(Y,Z)=R(X,Y,Z)
Dans la relation R1 et R2, X et Z correspondent aux
attributs non utiliss (voir exemple)
Cest donc un lien entre plusieurs tables disposant de
colonnes commune smantiquement
Chaque ligne de R est fabrique avec une ligne de R1 et
une ligne de R2 de telle sorte que les valeurs sur les attributs
de Y soient identiques dans les ligne de R1 et de celle de R2
Elle permet donc de recomposer une relation qui avait t
pralablement dcompose ; une dcomposition est dite
sans perte dinformations si les jointures naturelles des
21/16
sous-relations redonne la relation initiale

Jointure et produit cartsien


Produit cartsien :

concatnation de toutes les lignes de la premire table avec toutes


les lignes de la seconde table.
Table 1 Table 2
Produit
a
x
a,x
Exemple
b

a,y
b,x
b,y
c,x

Jointure :

c,y

lien entre 2 tables disposant dau moins une colonne commune


(smantiquement). On associe a chaque ligne de la premire table
toutes les lignes de la seconde table
Exemple
Table 1 Table 2 Jointure
a1,b1

b1,c1

a1,b1,c1

a2,b1

b2,c2

a2,b1,c1

a3,b2

b3,c3

a3,b2,c2

22/16

Exemple Jointure (1)


Nom

Prnom

Numro avocat

R1 = Collard

Bebert

Vergs

Jacquy

Numro avocat

Procs

Rsultat

HLM

Perdu

Serial Killer

Gagn

Outreau

Perdu

Du sicle

Gagn

R2 = 1

Calculons la jointure R1(Nom;Prnom,Num)R2(Num,Procs;Rsultat)

R1R2 =

Nom

Prnom

Numro avocat

Procs

Rsultat

Collard

Bebert

HLM

Perdu

Vergs

Jacquy

Serial Killer

Gagn

Collard

Bebert

Outreau

Perdu

Vergs

Jacquy

Du sicle

Gagn

23/16

Exemple Jointure (2)


R1 =

R2 =

A
a1
a2
a3
a4
C
c1
c2
c2
c3

B
b1
b1
b2
b2
D
d1
d1
d2
d3

C
c1
c2
c2
c3

Calculons la jointure R1(A;B,C)R2(C,D)

A
a1
a2
a2
a3
a3
a4

B
b1
b1
b1
b2
b2
b2

C
c1
c2
c2
c2
c2
c3

D
d1
d1
d2
d1
d2
d3
24/16

Jointure en gnrale
Dans les jointures naturelles, nous comparions
lgalits des donnes de 2 tables diffrentes sur un
attribut (une colonne)
En fait, on peut gnraliser cette notion, cest--dire
ne plus se limiter et :
utiliser plusieurs tables, parfois plusieurs fois les mmes
utiliser autre chose que le test dgalit, en fait nimporte
quel oprateur tant quil rpond vrai ou faux
infrieur, suprieur pour les entiers, chane de caractre, dates,
etc.
etc.

Prenons un dernier exemple

25/16

Diffrentes jointures
Dfinition : une qui-jointure est une jointure dont
la condition est une comparaison dgalit de 2
colonnes appartenant aux 2 tables
Dfinition : une theta-jointure est est une jointure
dont la condition est une comparaison autres que
lgalit de 2 colonnes appartenant aux 2 tables
Dfinition : une jointure multiple met en relation
plus de 2 tables.
Dfinition : une auto-jointure est une jointure dune
table avec elle-mme
26/16

Bibliographie
C. Date An introduction to database systems , Addison Wesley,
1986
C. Delobel et M. Adiba Bases de donnes et systmes
relationnels , Dunod Informatique, 1982
J. Ullman Principles of database systems , Computer Science
Press, 1982
G. Gardarin Bases de Donnes , Eyrrolles, 1998
Tout pleins dautres livres plus rcent
Site internet :
http://www.commentcamarche.net
http://fr.wikipedia.org/wiki/Base_de_donnes
http://www.culture.gouv.fr/culture/bdd/
http://ceria.dauphine.fr/cours98/BD-wl-98.html
http://www.i3s.unice.fr/~mcollard/BD_L2/

27/16

Vous aimerez peut-être aussi