Vous êtes sur la page 1sur 39

Les Systmes de Gestion de Bases de Donnes (SGBD) L'algbre relationnelle

2006-2007

Bibliographie

S. Abiteboul, R. Hull, V. Vianu, Foundations of Databases, Addison-Wesley J.C. Date, A Guide to the SQL Standard, Addison-Wesley J.C. Date, A Guide to DB2, Addison-Wesley R. Elmasri, S. Navathe, Conception et architecture des bases de donnes, 4me ed., publi par Pearson Education. H. Garcia-Molina, J. Ullman and J. Widom, Implementation of Database Systems, Prentice Hall, 1999. G. GARDARIN, Bases de Donnes, Eyrolles, 6me tirage, 2005. R. Ramakrishnan et J. Gehrke DATABASE MANAGEMENT SYSTEMS, MacGraw Hill M. SCHOLL, B. AMANN, P. RIGAUX, V. CHRISTOPHIDES, D. VODISLAV, Polycopi de Bases de Donnes, librairie des Arts et Mtiers. Ullman J.D. and Widom J. A First Course in Database Systems, Prentice Hall, 1997 Ullman J.D. Principles of Database and Knowledge-Base Systems, 2 volumes, Computer Science Press

2006-2007

Sommaire

Rappels BD et SGBD relationnels Postgresql, pl/pgsql Algbre relationnelle Dpendances fonctionnelles et normalisation Architecture d'un SGBD Optimisation dune BD Notions sur l'interfaage avec les langages volus Les diffrents types de SGBD

2006-2007

Rappels

2006-2007

Niveaux de reprsentation dune BD (rapport de lANSI/SPARC 75)

Groupe d'utilisateurs 1 groupe dutilisateurs 2 Groupe dutilisateurs n

Schma externe 1

schma externe 2

schma externe n

Schma conceptuel

modlisation

Monde rel

Schma physique

Fichiers

Supports physiques

2006-2007

Dans la pratique, 4 niveaux :


niveau externe (sous-schma conceptuels) niveau conceptuel (en gnral, le modle entit/association) niveau logique (modle hirarchique, rseau, relationnel, objet) niveau physique (fichiers, index, )

2006-2007

Niveau interne : comment sont stockes les donnes sur les supports physiques --> gr par le SGBD Niveau conceptuel : passage du monde rel au monde conceptuel via un modle (exemple : le modle entit/association). Doit tre indpendant de toute implantation (de toute machine) --> gr par le concepteur de la BD Niveau logique : passage du modle conceptuel un modle de bases de donnes (relationnel, objet, ), en vue de l implantation sur machine --> gr par le concepteur de la BD Niveau externe : cration de vues (parties de la base de donnes) sur lesquelles des groupes d utilisateurs ont le droit de travailler (interroger, insrer, modifier et/ou supprimer -> selon les autorisations) --> gr par le concepteur de la BD --> le travail sur les vues est effectu par les utilisateurs.

2006-2007

Cycle de vie dune base de donnes


Monde rel

Concevoir (analyse => modle (E/A par exemple) : concepteur Crer la structure (modle logique (ex. relationnel) -> SGBD particulier): idem Implanter la base de donnes (LDD+insertions initiales) : administrateur Optimiser la base de donnes (indexation, ) : administrateur Manipuler (LMD: insrer, mj, supprimer) : utilisateur Maintenir (requtes spcifiques) : administrateur

2006-2007

Modle relationnel On considre Di o i = 1,2..n des ensembles, dits domaines Une relation R est un sous-ensemble du produit cartsien: R dans D i,1 x Di,2 ... x ... Di,k k n

Dans une BD relationnelle, on na que des relations finies Les D sont les attributs de R ; (Codd) i,j

2006-2007

Schma d'une relation


Les noms R et Di,j constituent le schma de la relation Ce schma et l'ensemble des lments possibles de R constituent une intention de R. Les lments de R prsents un moment donn constituent une extension de R.

Une mise jour de la relation R modifie une extension et change l'tat de la base

2006-2007

Langages relationnels Lalgbre relationnelle

2006-2007

Les langages relationnels

sont utiliss pour effectuer des requtes sur une BD relationnelle utilisent 2 approches qui expriment les mmes oprations : - algbre relationnelle - calcul relationnel

2006-2007

Algbre relationnelle
Les oprateurs de l algbre relationnelle sont des oprateurs ensemblistes. Un oprateur prend en entre une ou deux relations (ensembles de tuples de la base) et retourne un rsultat qui est galement une relation.

Il existe 5 oprateurs de base : - les oprateurs unaires : selection et projection - les oprateurs binaires : union, diffrence et produit cartsien

D autres oprateurs existent qui peuvent s exprimer l aide des oprateurs de base. Ce sont la jointure, la division et l intersection

2006-2007

La projection :
Projection des attributs d une relation R sur un sous-ensemble des attributs de R :

A1, A2, , Ak

(R) = R(A1, A2, ,Ak)

o A1, A2, ,Ak sont un sousensemble du schma de la relation R. La projection sur A1, A2, , Ak limine tous les autres attributs de la relation et supprime les tuples dupliqus.

2006-2007

Exemple de projection R
X a d c a e Y b a b b e Z c b d e a X a

R'
Y b a b e

=>X,Y(R) =

d c e

R = (X,Y,Z) et R' =X,Y(R) = projection de R sur les attributs X et Y

2006-2007

Exemple de projection (2)


Requte

: Soit la relation Ville (id, nomp, nomv) Quels sont les villes de rsidence des personnes de la base (projection sur l'attribut nomv)

Tab2 = nomv(Tab1)
Tab1
id 1500 3333 3500 nomp Marc Durand Jacques nomv Havre Paris Paris

Tab2
nomv Havre Paris

nomv

2006-2007

Selection

La selection se fait en fonction dune condition C portant sur des attributs de R. Le rsultat est une relation dont les attributs satisfont la condition. On note : C(R)

2006-2007

Exemple de selection R
X Y a d c a e b a b b e Z 1 2 3 4 5

R'
X a Y b b b Z 1 3 4

=>

Y='b'

(R) = R'

c a

R
X a d c a e Y b a b b e Z 1 2 3 4 5

R'

X Y a d b a

Z 1 2

=>

(R) = R'

o C : (X=a Y=a) Z 3

2006-2007

Exemple de slection (2)


Requte

:
Durant Jacques Paris Paris

Slectionner tous les individus habitant Paris.

Tab12 = nomv=Paris(Tab1)

nomv=PARIS
1500 Marc 3333 Durand 3500 Jacques Havre Paris Paris

2006-2007

Les conditions de slection

Il s agit d une formule logique qui relie par des connecteurs logiques (AND, OR, NOT) des expressions de la forme : Ai op Aj ou Ai op a ou Ai o Ai, Aj sont des attributs de la relation R a est un lement (une valeur) du domaine de Ai op est un oprateur de comparaison : =, <, >, <=, >=, <>

2006-2007

Expressions de l algbre relationnelle

L algbre relationnelle est ferme par rapport aux opration de l A.R. : le rsultat d une opration relationnelle est aussi une relation.

Les oprations relationnelles peuvent tre combines et former des expressions plus complexes. Ex : Relation R = Commande (nom, prenom, nomc, qte) R = pnom(nom(paul(commande)) R = nom(paul(commande)) :
contient les commandes de paul

2006-2007

Produit cartsien

Produit cartsien de la relation R par la relation S : R x S Argument : 2 relations quelconques R (A1, A2, , An) et S (B1, B2, , Bk)

Schma de la relation rsultat T : R x S : (A1, , An, B1, , Bk) Les occurrences de T : ensemble des tuples ayant n+k attributs :
dont les n valeurs des premiers attributs sont les tuples de R et les k dernieres sont les tuples de S

2006-2007

Exemple
RxS R A B 1 1 3 1 2 4 S C a a b D b b a E a c a A B C D E

1 1 3 1 1 3 1 1 3

1 2 4 1 2 4 1 2 4

a a a a a a b b b

b b b b b b a a a

a a a c c c a a a

2006-2007

Jointure naturelle

Soient 2 relations R et S ayant des attributs en commun R(A1, , Am, X1, ,XK) S(B1, , Bn, X1, , Xk)

Schma de la relation R

S, jointure naturelle de R et S :

T (A1, , Am, B1, , Bn,X1, ,XK )


S C c c f d A a a d d c B b b b b a C c c c c d D d e d e b

R Un tuple de R A a d b c B b b b a

S comporte donc (m+n+k) attributs.


B b b a C D d e b c c d R S

2006-2007

Jointure naturelle (suite)

La jointure naturelle correspond un produit cartsien, suivi d une slection. Soient 2 relations R et S ayant des attributs en commun R(A1, , Am, X1, ,XK) S(B1, , Bn, X1, , Xk). Soit V = {X1, , Xk}

S = U ( A V : R.A=S.A (R x S))

o U = l ensemble des attributs de R et S et R.A est l attribut A de R

2006-2007

Jointure naturelle - algorithme

Dbut

Pour tout tuple a de R et tout tuple b de S :

1. Concatner a et b. On obtient un tuple avec comme attributs a|b, c--d : A1, , Am, X1, , Xk, B1, , Bn, X1, , Xk

2. Ne garder ce tuple que si chaque attribut Xi de a est gal lattribut Xi de b : i=1::..k a.Xi = b.Xi

3. Eliminer les valeurs (colonnes) dupliques. On obtient pour la jointure naturelle un tuple avec comme attributs :

A1, , Am, B1, , Bm,

X1, , Xk

2006-2007

-jointure

Note :

R.

Ai Bj S, o {=, , < >, , , }

C est une jointure entre 2 relations R et S avec : R = ( A1, , Am), S = (B1, , Bn ) Schma de T = R
Ai Bj

S = (A1, , Am, B1, , Bn )

La valeur de T est : Ai Bj (RxS) : slection des tuples de RxS tels que


Ai Bj

Equijointure : on parle de quijointure quand loprateur est l galit.

2006-2007

Exemple de -jointure
R A 1 1 3 B a b a S C 1 2 4 D b b a E a c a 1 1 1 1 1 1 A>C A>C 3 3 3 a a a b b b a a a 1 2 4 1 2 4 1 2 4 b b a b b a b b a a c a a c a a c a A RxS B C D E

AC

C D

1 1 1 1 1 1 3

a a a b b b a

1 2 4 1 2 4 4

b b a b b a a

a c a a c a a

2006-2007

Exemple d quijointure
R A 1 1 3 B a b a S C 1 2 4 D b b a E a c a 1 1 1 1 1 B D 1 3 3 3 a a a b b b a a a 1 2 4 1 2 4 1 2 4 b b a b b a b b a a c a a c a a c a A RxS B C D E

B=D

C D

1 1 1 3

a b b a

4 1 2 4

a b b a

a a c a

B=D

(RxS)

2006-2007

Exercices : Equijinture, jointure naturelle

Soient les relations :


Immeuble (Adr-Imm, NB-etages, Date-Const, Proprio)

App-Imm (Adr-Imm, Num-App, Etage)

1. Nom du propritaire de l immeuble o est situ l appartement occup par Dupond : jointure naturelle

Proprio (Immeuble

Occup = Dupond(App-Imm)) Jointure naturelle

2. Appartements occups par des propritaires dimmeubles :

Adr-Imm, Num-App, Etage (App-Imm

quijointure Occup=Proprio

Immeuble))

2006-2007

Autre exemple de requte

Soit le schma : Commandes (pnom, cnom, num-cmde, qte) Clients (cnom, cadr, balance)

Nom et adresse des clients qui ont command des briques : cnom,cadr (Clients

pnom = briques(Commandes))
Jointure naturelle

2006-2007

UNION

Soient 2 relations R(A1, , Am) et S(A1, , Am) Le schma de T = R S est : T (A1, , Am) Les tuples de T : union ensembliste sur D1x x Dm avec Di domaine de Ai Les doublons sont limins. T = R SS= {t / t R t S}
A a a d B b c e A a a d f B b e e g RS A a a a f B b c e g

2006-2007

UNION

Soient 2 relations R(A1, , Am) et S(A1, , Am) Le schma de T = R - S est : T (A1, , Am) Les tuples de T : diffrence ensembliste sur D 1x x Dm avec Di domaine de Ai T = R - S = {t / t R t S} S
S-R A a a d B b c e A a a d f B b e e g R-S A a B c

A a f

B c g

2006-2007

INTERSECTION

Soient 2 relations R(A1, , Am) et S(A1, , Am) Le schma de T = R S est : T (A1, , Am) Les tuples de T : intersection ensembliste sur D1x x Dm avec Di domaine de Ai
RS

T = R S = {t / t R t - S R S}
R A a a d B b c e S
(diffrence)

=R - (R - S)
(intersection)

A a

B b e

A a a d f

B b e e g

A a

B c

2006-2007

Semijointure

La semijointure R S correspond une projection sur les attributs de R de la jointure naturelle entre R et S : U (R S) Si R = (A1, , Am, X1, , Xk) et S = (B1, , Bn, X1, , Xk) alors le schma de T : R S = (A1, , Am, X1, , Xk)
=> R S => R B b b b b a C c c c c d D d e d e b semijointure jointure naturelle A a d c B b b a C c c d S A a B b b a C c c d D d e b a d d c

Exemple :

R A a d b c B b b b a C c c f d

2006-2007

R A a a a b b c c B b b b c d e e C D S

Division
R S C D

x y z
x x

m n o
o m

x y z

m n o

A a c

B b e

x y z
z y

m n o
p m

c e d d a a

2006-2007

COMM

Division : exemple
p-nom briques ciment pltre briques platre platre qte 100 10 5 300 8 15

PROD

Num 1 2 3 4 5 5

nom Jean Jean Jean Paul Paul Vincent

P-nom briques ciment pltre

Client(s) qui ont command tous les produits

COMM PROD nom Jean

2006-2007

Division : formellement

Soient R1(A1, , Am, X1, , Xk) et S (X1, , Xk) c--d les attributs de S sont inclus dans R. T = R a pour schma : T (A1, , Am) Tuples de T = R S ={(a1, , am)/ (x1, , xk) S : (a1, , am, x1, , xk) R

La division peut s exprimer en utilisant les oprateurs produit cartsien, projection et diffrence : R S = R1 - R2 o : R1 = A1, , Am (R) et R2 = A1, , Am ((R1xS) - R)

2006-2007

Opration de renommage
Note : , c est une opration unaire. Consiste remplacer le nom d un attribut par un autre. Soit R (A1, , Am), on a :
Ai Bi R : T (A1, , Ai-1, Bi, Ai+1, ..., Am)