Vous êtes sur la page 1sur 28

Langage

Relationnel
Graphe de
Requtes

Prsentation

Bas sur la thorie des ensembles


relations , oprateurs et oprandes
Oprateurs : relationnels, de test (<, >, = , ) et
boolens (ET, OU, NON)
Oprandes : constantes ou variables

Recherche dinformations sur les relations par


langage algbrique
Rsultat dune recherche : relation
Base du langage SQL
GRAPHE DES REQUETES

Oprateurs relationnels

Oprateurs unaires
Slection
Projection

Oprateurs binaires

Union
Intersection
Oprateurs ensemblistes
Diffrence
Division
Produit Cartsien
jointure

Slection

Dfinition
Une slection applique sur la relation R1[a1,...,an], selon
le prdicat p1 (condition) donne une relation R2[a1,...,an]
ayant les n-uplets satisfaisant la condition

Symbole utilis

Prdicat de Slection

R1

Slection : exemple
ETUDIANT
Ine
Nom

Groupe Anne

100

Sylvie

200

Michel

300

Corinne

400

Laurent

500

Jrme

Anne = 2
ET
Groupe = 3

ETUDIANT
tudiants du groupe 3
de deuxime anne ?

R
Ine

Nom

Groupe Anne

200 Michel

400 Laurent 3

Projection
Dfinition
la projection de la relation R1[a1,...,an] sur les attributs
ai,...,am (ai,...,am a1,...,an) est une relation R2[ai,...,am]
Pas de duplication des n-uplets rsultats

Symbole utilis

ai,...,am

R1

Projection : exemple
ETUDIANT
Ine
Nom

Groupe Anne

100

Sylvie

200

Michel

300

Corinne

400

Laurent

500

Jrme

Anne

ETUDIANT
Quelles sont les annes
existantes ?

R
Anne

1
2

Union
Dfinition
Soient R1[a1,..., an] et R2[b1,..., bn] deux relations de
mme schma ,
Le rsultat de lunion R contient les tuples de R1 et les
tuples de R2 qui nappartiennent pas R1
Oprateur commutatif
R

R1

R2

Symbole utilis
R1

R1

Union : Exemple
CLIENTS_TOULOUSE (IdCli, nom, adresse)
CLIENTS_BORDEAUX (IdClient, nomclient, chiffre)

R (nom)
Contient lensemble des clients
de lentreprise

U
nom
CLIENTS_TOULOUSE

nomclient
CLIENTS_BORDEAUX

Intersection
Dfinition
Soient R1[a1,..., an] et R2[b1,..., bn] deux relations de
mme schma
Le rsultat de lintersection R contient les tuples qui
appartiennent, la fois, R1 et R2
Oprateur commutatif
R

R1

R2

Symbole utilis
R1

R1

10

Intersection : exemple
CLIENTS_TOULOUSE (IdCli, nom, adresse)
CLIENTS_BORDEAUX (IdClient, nomclient, chiffre)

R (nom)
Contient les clients de lentreprise
la fois, de Toulouse et Bordeaux

nom
CLIENTS_TOULOUSE

nomclient
CLIENTS_BORDEAUX

11

Diffrence
Dfinition
Soient R1[a1,..., an] et R2[b1,..., bn] deux relations de
mme schma ,
Le rsultat de la diffrence R contient les tuples de R1
qui nappartiennent pas R2
Oprateur non commutatif
R

R1

R2

Symbole utilis
R1

R1

12

Diffrence : exemple
CLIENTS_TOULOUSE (IdCli, nom, adresse)
CLIENTS_BORDEAUX (IdClient, nomclient, chiffre)

nom
CLIENTS_TOULOUSE

R (nom)
Contient les clients de Toulouse
qui ne sont pas Bordeaux

nomclient
CLIENTS_BORDEAUX

13

Division
Dfinition
Soient R1[a1,...,an,b1,...,bn] et R2[b1,...,bn] deux relations telles
que la structure de R2 soit incluse dans la structure de R1
R = rsultat de la division de R1 par R2
R est une relation de structure R[a1,...,an] qui contient les tuples
ti vrifiant :
ti R (ti est un tuple de structure [a1,...,an])
tj R2 (tj est un tuple de structure [b1,...,bn])
ti,tj R1 (ti,tj est un tuple de structure [a1,...,an,b1,...,bn])

Oprateur non commutatif


Sert comparer un ensemble avec un autre ensemble (dit
de rfrence)

14

Division (suite)

Symbole utilis
R
R1 de schma S1,S2
R2 de schma S2

R de schma S1

R1

R1

15

Division : exemple
BICOLORE

VEHICULE
Codev Nomv

Portes

BM1

316i

2P

noir

noir

BM1

316i

2P

blanc

blanc

BM2

318i

4P

noir

BM3

320d

4P

blanc

S1

Couleur

Coloris

S2

S2

Question : Quels sont les vhicules (Nomv) fabriques en noir ET en blanc ?

16

Division : exemple (suite)

Nomv
Nomv

VEHICULE

316i

BICOLORE

17

Produit cartsien
Dfinition
Soient R1[a1,...,an] et R2[b1,...,bm] deux relations de schma
diffrent, R = rsultat du produit R1 R2
R est une relation de structure R3[a1,...,an,b1,...,bm] qui contient
les combinaisons des tuples de R1 et R2

Oprateur
commutatif

Symbole utilis

R1

R1

18

Produit cartsien : exemple


ETUDIANT

MATIERE

Ine

Nom

IdM

100

Sylvie

BD

Bases de Donnes

200

Michel

ACSI

Analyse

300

Laurent

MATH

Mathmatiques

NomM

Question : Crer la relation COURS (Ine, IdM) sachant que chaque tudiant
suit toutes les matires ?

19

Produit cartsien : exemple (suite)


COURS
Ine IdM
COURS

Ine, IdM

ETUDIANT

MATIERE

100

BD

100

ACSI

100

MATH

200

BD

200

ACSI

200

MATH

300

BD

300

ACSI

300

MATH

20

Jointure

Dfinition
Soient R1[a1,...,an] et R2[b1,...,bm] deux relations, R =
jointure de ces relations avec un prdicat
R[a1,...,an,b1,...,bm] contient les tuples de R1 et de R2
rsultant un produit cartsien vrifiant le prdicat

Oprateur fondamental (bas sur les valeurs)


Le prdicat contient une clause de jointure et
ventuellement dautres conditions
Oprateur binaire commutatif

21

Jointure (suite)

Symbole utilis
R

R1 de schma S1
R2 de schma S2

Prdicat
R de schma S1,S2

R1

R1

22

Jointure : exemple

CLIENTS (IdCli, Nom, Adresse)


OUVRAGES (IdOuv, Titre, Nbex)
EMPRUNTS (IdCli#, IdOuv#, DateEmp)

Question : Nom et Adresse des


clients ayant emprunt louvrage
BD le 10/10/2003 ?

23

Jointure : exemple (suite)


R
Nom, Adresse
IdCli=C.IdCli

CLIENTS C

idCli

IdOuv= O.IdOuv ET
DateEmp = 10/10/2003

idOuv

OUVRAGES O

Titre = BD
OUVRAGES

24

Graphe des requtes et SGBD


Tous les SGBD R de type SQL mettent en uvre
un graphe de requtes
Oracle fournit une table (plan_table) montrant le
schma global
Ce graphe permet doptimiser les requtes
Certains, comme SQL Server prsentent ce
graphe sous forme graphique

25

Exemple de graphe SQL Server


EMPRUNT

CLIENT
100 Michel Toulouse

100 o1 2003-10-10

OUVRAGE
o1 BD

200 Sylvie Toulouse

200 o1 2003-10-10

o2 SGBD

300 Laurent Toulouse

100 o2 2003-10-08
300 o2 2003-10-08

Question : Nom et Adresse des


clients ayant emprunt louvrage
BD le 10/10/2003 ?

Michel

Toulouse

Sylvie

Toulouse

SELECT c.nom,c.adresse
FROM client c, emprunt e, ouvrage o
WHERE o.titre=BD
AND o.idouv=e.idouv
AND e.dateemp = 10/10/2003
AND e.idcli=c.idcli

26

Exemple de graphe SQL Server (suite)

27

Exemple de graphe SQL Server (suite)

28