Vous êtes sur la page 1sur 13

Traitement des requtes rparties

Traitement des requtes rparties

Dans un environnement rparti, les requtes


formules un niveau global sont dcomposes en
sous-requtes qui seront adresses aux sites
locaux o elles seront excutes. Les rponses
locales sont ensuite regroupes pour laborer la
rponse globale qui sera retourne lutilisateur.

La dcomposition dune requte globale en sous-


requtes locales sappuie sur le schma de
fragmentation des donnes.
Schma dexcution dune requte rpartie

Ltape [E1] a pour objectif llaboration


dun arbre algbrique optimis dvaluation
de la requte.

Cette tape sappuie sur les traitements


suivants :
Dcomposition de la requte.
Transformation en une requte de lalgbre
relationnelle.
Etapes de dcomposition de la requte

normalisation de lcriture de la requte: Transformer la


requte en une forme qui faciliterait son traitement.
forme normale conjonctive / forme normale disjonctive.
Cette transformation utilise les rgles dquivalence logiques (ex.
p1p2 p2 p1. p1p2 p2 p1 . p1 (p2 p3) (p1p2) p3.
p1 (p2 p3) (p1 p2) p3. p1 (p2 p3) (p1p2) (p1p3) .

analyse-vrification en vue dliminer les requtes normalises


pour lesquelles on dtecte des anomalies ou des incohrences.
limination de redondances,
rcriture de la requte SQL en algbre relationnelle
Schma dexcution dune requte rpartie

Ltape [E2] a pour objet la localisation des


donnes distribues:

Cette tape permet de translater une


requte en algbre relationnelle exprime
par le schma global de la base de
donnes en une requte exprime par les
schmas locaux (sur lensemble des
fragments)
Schma dexcution dune requte rpartie

Ltape [E3] concerne lOptimisation de la


stratgie dexcution par calcul du cot des
transferts et du temps de rponse. Lobjectif
tant de minimiser le temps de rponse du
systme rparti.

Ltape [E4] concerne loptimisation locale


des sous-requtes
Exemple de dcomposition de requte
Soit la base de donnes suivante:
E (Enum, Enom, Titre, Salaire) /* E est la relation employ */
P (Pnum, Pnom, Budget) /* P est la relation projet */
EP(Enum, Pnum, Resp, Dur)

Soit la requte:
SELECT Enom, Resp
FROM E, P, EP
WHERE E.Enum = EP.Enum
and Pnom= maintenance
and Dur 36
and Titre = programmeur

La requte est reprsente par un graphe, nomm graphe de requte ou graphe


de connexion. Si le graphe obtenu est non connexe alors la requte est
smantiquement incorrecte.
Dcomposition de la requte
Dur 36

EP Pnom= maintenance

E.Enum= EP.Enum
Resp P

Titre= progrmmeur E
Rsultat
Enom

Cette requte est incorrecte car son graphe nest pas connexe
Manque une jointure EP.Pnum= P.Pnum
Rcriture
Rcrire la requte suivante en algbre relationnelle

SELECT Enom
FROM E, P, EP
WHERE E.Enum = EP.Enum
and EP.Pnum= P.Pnum
and Pnom = maintenance
and (Dur = 12 OR Dur = 24)

L' arbre de la requte en algbre relationnelle est:


En appliquant les rgles de Enom
transformation, on peut obtenir
plusieurs arbres quivalents. Dur=12 OR Dur=24
Parmi les rgles de transformation, on
peut citer les rgles suivantes: Pnom=maintenace
Soit les relations R, S et T:
-RSSR pnum

- (R S) T R (S T)
- A(A(R)) A(R) si AA. Enum
- P1(A1)(P2(A2) (R)) P1(A1)P2(A2)(R). P
EP E
Localisation des donnes
On considre que la relation employ (E) est
fragmente comme suit:
E1= Enum3(E).
E2= 3<Enum<6(E).
E3= Enum>6(E).
La relation est obtenue par lunion E1 E2 E3
Soit la requte: Enum=5

SELECT *
FROM E
E1 E3
WHERE Enum=5. E2
OPTIMISATION DES REQUTES ?