Vous êtes sur la page 1sur 14

Dr.

Sana HAMDI
Indexes
traitement des requêtes.
requêtes :
final.
Algorithmes des
opérateurs Le programmeur de SGBD.

Traitement des requêtes :


Requête SQL

Validation de la syntaxe
Analyse
de la requête
Algèbre relationnelle
(Rappel)
Traduction de la requête
Compilation en arbre algébrique

Optimisation algébrique optimal

Exécution du programme

Exécution algébrique optimal


1. La projection
des tables :
La projection de la relation R1 sur l'ensemble des attributs A est une
la ; relation dont les tuples sont obtenus par élimination des valeurs des
; attributs de R1 n'appartenant pas à A et par suppression des tuples
en double.
le produit cartésien entre plusieurs tables (croiser les données de plusieurs
tables) ;
la jointure entre plusieurs tables (rapprocher plusieurs tables sur des Notation:
critères) ; R = Projection ( R1, { A } )
la division ;
= [A] (R1)
de 2 tables :
entre 2 tables ;
la différence entre 2 tables ;

2. La sélection 3. Le produit cartésien

La sélection dans la relation R1, selon un critère C donne une relation Le produit cartésien de deux relations R1 et R2 est une relation R
R de même schéma que R1. définie par l'union (la concaténation) des attributs de R1 et de R2.
Les tuples de R sont ceux de R1 qui vérifient la condition logique C (le Les tuples de R sont toutes les concaténations d'un tuple de R1 à un
critère de sélection). tuple de R2.

Notation : Notation :
R = Sélection ( R1, { C } )
= [C] (R1) R = Produit ( R1, R2 )
=R1 × R2
4. La Jointure 5. La Division

La jointure de deux relations R1 et R2 selon une condition Q est Le quotient de la relation R1 par la relation R2 est la relation R.
l'ensemble des tuples du produit cartésien R1 × R2 satisfaisant à cette Tous les tuples de R concaténés à chacun des tuples de R2 doivent
condition Q. appartenir à R1.

Notation : Notation :
R = Division ( R1, R2 )
R = Jointure ( R1, R2, { Q } ) = (R1 ÷ R2)
= R1 R2

6. 7.

L'union de deux relations R1 et R2 compatibles est une relation R de L'intersection de deux relations R1 et R2 compatibles est une relation
même schéma contenant l'ensemble des tuples appartenant à R1 ou R2 R de même schéma contenant les tuples appartenant à la fois à R1 et
ou aux deux relations. R2.

Notation : Notation
R = Union ( R1, R2) R = Intersection ( R1, R2 )
= R1 U R2
= R1 n R2
8. La différence
Analyse Compilation
La différence de deux relations R1 et R2 compatibles, (dans l'ordre R1

Optimisation
- R2) est une relation R de même schéma contenant les tuples
appartenant à R1 et n'appartenant pas à R2.

Notation :

Exécution
R = Différence ( R1, R2 )
= R1 - R2

Programme Election du
Choix des
algorithmes plan optimal

1. Analyse :
Analyse Compilation
Analyse lexicale et syntaxique :

Optimisation
Validation par rapport à la syntaxe SQL
Vérification des types :
présence des attributs et relations dans le schéma
Exécution

compatibilité des types dans les prédicats

Programme Election du
Choix des
algorithmes plan optimal
2. Compilation :
Règle algèbre relationnelle. Analyse Compilation
SELECT projection

Optimisation
FROM
WHERE
Pour les comparaisons attribut/valeur : des
sélections

Exécution
Pour les comparaisons attribut/attribut : des
jointures

Programme Election du
Choix des
algorithmes plan optimal

3. Optimisation : 3.1 Optimisation Sémantique :

langage source à Rechercher une contradiction dans les restrictions qui conduirait à
plus élémentaires exprimées dans un langage cible (opérations dites obtenir 0 tuple en réponse à la question ou à une partie de la
« de bas niveau »). question comme (degré > 13 et degré <10) ou encore (région = R1 et
région = R2).
3 approches de
sémantique. La contradiction peut apparaître quand on croise une restriction avec
une contrainte de la BD. Par exemple, une contrainte de
. valeur peut préciser : (degré <15) et une question demande (degré
>15).
3.2 Optimisation Syntaxique :

Elle prend uniquement en compte les propriétés de


relationnelle.

syntaxique consiste donc à réorganiser les étapes


des différentes opérations relationnelles élémentaires
requête.

syntaxique met en les arbres algébriques et


les règles de transformations qui leur sont associées.

Une fois ces notions sont présentées, on pourra proposer un


algorithme .
1. Traduction de la requête SQL en algèbre relationnel : 2

Les feuilles
La racine
sont des opérateurs de

Représentation
dans les arbres algébriques :

Vous aimerez peut-être aussi