Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Traitement de Requête
Schéma
Traducteur 1 Traducteur 2 Traducteur 3
INTEGRATEUR
Q1
SCG
Traitement de requêtes :
3 étapes
Traduction des requêtes
locales sur les bases de
données. Schéma Local 1 Schéma Local 2 Schéma Local 3
Décomposition
requête INTEGRATEUR
Q1
GCS
Traitement de requêtes :
3 étapes
Combinaison des
résultats de requêtes
locales Local Schema 1 Local Schema 2 Local Schema 3
INTEGRATEUR
Q1
GCS
Construction résultats
Traitement de requêtes :
3 étapes
IntégrationSchéma
décomposée en
requêtes locales Translator 1 Translator 2 Translator 3
Décomposition &
Optimisation Globale
SQ1 SQ2
... SQn PQ1 … PQn
Query
traducteur 1
Query
traducteur 2
… Query
traducteur n
SQi sous-requête (langage
global de requête)
TQi Requête Cible (sous-
Transparence de Fragmentation:
Supplier1 S1
read(terminal, $SNum);
Select Name into $Name
from Supplier Supplier2 S2
where SNum = $SNum;
write(terminal, $Name).
Supplier2 S3
DDBMS
DDBMS : Exécution de requête et accès aux données à la charge du système
Transparence de Distribution
Transparence de Localisation
read(terminal, $SNum);
Select Name into $Name Supplier1 S1
from Supplier1
where SNum = $SNum;
If not FOUND then S2
Supplier2
Select Name into $Name
from Supplier2
where SNum = $SNum; Supplier2 S3
write(terminal, $Name). DDBMS
read(terminal, $SNum);
Select Name into $Name Supplier1 S1
from Supplier1 @ S1
where SNum = $SNum;
If not FOUND then Supplier2 S2
Select Name into $Name
from Supplier2 @ S3
Supplier2 S3
where SNum = $SNum;
write(terminal, $Name). DDBMS
Application spécifie les fragments et les sites d’allocation.
Transparence de Distribution &
mise à jour
Fragments de EMP
Requête : EMP1 = ENum,Name,Sal,TaxDNum10 (EMP)
EMP2 = ENum,MNum,DNumDNum10 (EMP)
Update Dnum=15 EMP3 = ENum,Name,DNumDnum>10 (EMP)
for Employee with EMP4 = ENum,MNum,Sal,TaxDnum>10 (EMP)
Enum=100
EMP1 EMP2
EnumName Sal Tax EnumMnumDnum
• Envoi de mise à 100 Ann 100 10 100 20 3
jour à toutes les
copies
• Migration de
tuple si mise à EMP3 EMP4
jour d’attributs de
definition de EnumName Dnum EnumMnum Sal Tax
fragments 100 Ann 15 100 20 100 10
Application de mise à jour
Transparence de
UPDATE Emp
SET DNum = 15 Localisation
WHERE ENum = 100;
(1) Select Name, Tax, Sal into $Name, $Sal, $Tax
From EMP 1
Where ENum = 100;
Transparence de (2) Select MNum into $MNum
Fragmentation From Emp 2
Where ENum = 100;
(3) Insert into EMP 3 (ENum, Name, DNum)
(100, $Name, 15);
(4) Insert into EMP 4 (ENum, Sal, Tax, MNum)
(100, $Sal, $Tax, $MNum);
(5) Delete EMP 1 where ENum = 100;
(6) Delete EMP 2 where ENum = 100;
Traitement et Optimisation de
Requêtes Distribuées
Traitement de requêtes
Décomposition de requête
Localisation de données
16
Traitement de requêtes (Distribuées)
Doit aussi prendre en compte les aspects suivants :
17
Traitement de requêtes (Distribuées)
Doit aussi prendre en compte les aspects suivants :
SELECT ENAME
FROM EMP E, ASG G
WHERE E.ENO = G.ENO AND resp=“Manager”
Sites et placement
des fragments
18
Traitement de requêtes (Distribuées)
Deux stratégies d’exécution :
Stratégie 1:
Transférer les fragments et faire les traitements
sur le site de la requête (Site 5)
Site 5
Result = (EMP1 EMP2) ⋈ ENO TITLE=“manager” (ASG1 ASG2)
ASG1 ASG2 EMP1 EMP2
On suppose
size(EMP)=400, size(ASG)=1000
20 tuples avec TITLE=“manager”
Coût d’accès à 1 tuple = 1 unite ()
Transfert d’1 tuple = 10 unités ( )
ASG and EMP indexés sur les attributs Resp et
ENO respectivement
21
Coût d’exécution des Stratégies
Stratégie 1
Transfert EMP vers site 5: 400* 4000
Transfert ASG vers site 5: 1000* 10000
Calcul de ASG’: 1000* 1000
Jointure EMP et ASG’: 400*20* 8000
Coût Total 23,000
Stratégie 2
Calcul de ASG’: (10+10)* 20
Transfert ASG’ vers le site de EMP: (10+10)* 200
Calcul de EMP’: (10+10)* * 2 40
Transfert de EMP’ vers site résultat : (10+10)* 200
Coût Total 460
22
Optimisation
23
Coût de Communication
Relation
Cardinalité
Taille de tuple
Fraction ou pourcentage de tuples sélectionnés par les
jointures avec d’autres relations
Attributs
Cardinalité de domaine
Nombre de valeurs distinctes
Hypothèses courantes
Independence des attributs (valeurs)
Distribution uniforme des valeurs d’attributs 25
Niveaux de Traitement de requêtes
Requêtes sur Relations Globales Distribuées
DECOMPOSITION SCHEMA
REQUËTES GLOBAL
Types de nœuds
Nœud Résultat (spécifie le résultat de la requête)
Nœud Opérande (représente une relation utilisée par
la requête)
Types d’arcs
Arc jointure : Pas de nœuds résultats
Arc projection : un des nœuds connecté est un noeud
résultat
Nœuds et Arcs peuvent avoir des labels
(prédicats de sélection, jointure ou attributs de
projection)
27
Exemple : Graphe de requête
28
Exemple : Graphe de jointure
29
Requête, Graphe de requête, Arbre de
requête
Graphe de requête
Requête en SQL
30
Analyse de requête
31
Exemple : graphe de requête
Exemple
SELECT ENAME, RESP
FROM EMP,ASG,PROJ
WHERE EMP.ENO=ASG.GNO
AND ASG.PNO=PROJ.PNO
AND PNAME=“CAD/CAM”
AND DUR>36
AND TITLE=“Programmer”
32
Exemple : graphe de requête
33
Anomalies de requête, Graphe de requête
non connecté
34
Réduction par Sélection sur FHP
REQUETE SQL
Fragments de EMP
SELECT * EMP1 = ENO “E3” (EMP)
FROM EMP
WHERE ENO=“E5”
EMP2 = “E3” < ENO “E6” (EMP)
EMP3 = ENO >“E6” (EMP)
ENO=“E5”
ENO=“E5” ENO=“E5”
SELECT *
FROM EMP, ASG ENO
WHERE EMP.ENO=ASG.ENO
ENO
ASG1 ASG2 EMP1 EMP2 EMP3
ASG EMP
Fragments de EMP
Fragments de ASG
EMP1 = ENO “E3” (EMP)
ASG1 = ENO “E3” (ASG)
EMP2 = “E3” < ENO “E6” (EMP)
ASG2 = ENO >“E3” (ASG)
EMP3 = ENO >“E6” (EMP)
36
Réduction par Jointure de FHP
EMP1 ASG1 EMP1 ASG2 EMP2 ASG1 EMP2 ASG2 EMP3 ASG1 EMP3 ASG2
37
Réduction par Jointure de FHP
38
Réduction par Fragmentation Verticale
TITLE=“MECH. Eng.”
SELECT *
FROM EMP, ASG ASG1 ASG2 EMP1 EMP2
WHERE ASG.ENO = EMP.ENO
AND EMP.TITLE = “Mech. Eng.”
40
Réduction par Fragmentation Dérivée FHD
ENO
Sélection en
premier Jointure sur union
TITLE=“Mech. Eng.”
ASG2
ASG1 EMP2 ASG1 EMP2 ASG1
ASG2 EMP2
41
OPTIMISATION DE
REQUÊTES DISTRIBUÉES
Processus d’optimisation de requêtes
(même chose en Français)
Requête
Génération de Règles de
transformation
l’espace des
de requêtes
solutions
Plan d’exécution
de requête
44
Exemples : Arbres de jointures équivalents
(c) ENO,PNO
requête)
E.g., dans l’exemple précèdent, rejeter le plan d’exécution
(c) ENO,PNO
X ASG
PROJ EMP 46
Parcours espace de solutions
Déterministe
Construire tous les plans possibles (breadth-first
search), choisir le meilleur plan
Algorithme glouton (Greedy algorithm) construire un
seul plan (depth-first search) : besoin d’heuristique
d ’optimisation à chaque étape (peut être non optimal)
47
Performance : Coûts
Temps Réponse
Entre début et fin résultat
48
Exemple
Considérer uniquement les coûts de communication
Site 3
Facteurs importants :
Taille des relations intermédiaires
50
Facteurs de Sélectivité
51
System R - Exemple
Requête :
“Find names of employees working on the CAD/CAM
project.”
On suppose
EMP avec un indexe sur ENO
ASG avec un indexe sur PNO
PROJ avec un indexe sur PNO et un autre sur PNAME
ASG
ENO PNO
EMP PROJ 52
System R - Exemple
EMP ASG EMP × PROJ ASG EMP ASG PROJ PROJ ASG PROJ × EMP
55
Ordonnancement de jointures dans les
requêtes fragments
Ordonnancement de jointures
Distributed INGRES
System R*
Ordonnancement de Semijoin
SDD-1
56
Ordonnancement de jointures
Jointure de 2 relations R, S
if size (R) < size (S)
R S
if size (R) > size (S)
59
Exemple : Ordonnancement de jointures
PROJ ⋈PNO ASG ⋈ENO EMP
Exécution 1:
1. EMP Site 2
Site 2 calcule EMP’=EMP⋈ASG
EMP’ Site 3
Site 3 calcule EMP’⋈PROJ
Résultat final
60
Exemple : Ordonnancement de jointures
PROJ ⋈PNO ASG ⋈ENO EMP
2. ASG Site 1
Site 1 computes EMP’=EMP⋈ASG
EMP’ Site 3
Site 3 computes EMP’⋈PROJ
Résultat final
EMP’ = EMP ⋈ ASG
61
Exemple : Ordonnancement de jointures
PROJ ⋈PNO ASG ⋈ENO EMP
3. ASG Site 3
Site 3 calcule ASG’=ASG⋈PROJ
ASG’ Site 1
Site 1 calcule ASG’⋈EMP
Résultat final
ASG’ = ASG ⋈ PROJ
62
Exemple : Ordonnancement de jointures
PROJ ⋈PNO ASG ⋈ENO EMP
4. PROJ Site 2
Site 2 computes PROJ’=PROJ⋈ASG
PROJ’ Site 1
Site 1 computes PROJ’ ⋈ EMP
Résultat final
63
Exemple : Ordonnancement de jointures
PROJ ⋈PNO ASG ⋈ENO EMP
5. EMP Site 2
PROJ Site 2
Site 2 calcule EMP⋈ PROJ⋈ASG
Résultat final
EMP ⋈ ASG ⋈ PROJ
64
Ordonnancement de jointures
Algorithmes par Semi-jointure
65
Ordonnancement de jointures
Algorithmes par Semi-jointure
66
Ordonnancement de jointures
Algorithmes par Semi-jointure : Exemple
Calculer la jointure R ⋈A S
envoi de R[A] placée sur le site Site 2
site 2 calcule la jointure
Calculer la semi-jointure ( R > A S ) >< A S :
S’ = A(S), par site 2
S’ Site 1
Site 1 calcule R ' R > A S '
R’ Site 2
Site 2 calcule R ' >< A S
Semi-jointure est meilleure si
(size( A (S )) size( R > A S )) size( R) 67
Exemple : R ⋈A S par
R ⋈A (S A R )
A C
A B 3 x
R 2 a S 10 y
10 b 15 z
25 c A (R) = [2,10,25,30] 25 w
30 d 32 x
Traitement local
A C
A B C 10 y
S R=
R S = 10 b y 25 w
25 c w
SITE 1 SITE 2
68
Exemple : R ⋈A S par
R ⋈A (S A R )
A B A C
R 2 a S 3 x
10 b 10 y
25 c 15 z
30 d 25 w
32 x
Résultats intermédiaires:
• avec la semi-jointure R (S R):
T = 4 |A| +2 |A+C| + result
• avec la jointure R S: mieux si
T = 4 |A+B| + result |B| est grand
69
En générale:
70
Ordonnancement de jointures
Algorithmes par Semi-jointure : Exemple
71
Algorithme Hill Climbing
72
Algorithme Hill Climbing
73
Algorithme Hill Climbing
74
Algorithme Hill Climbing - Exemple
75
Algorithme Hill Climbing - Exemple
76
Algorithme Hill Climbing - Exemple
77
Algorithme Hill Climbing - Exemple
80
Algorithme Hill Climbing : conclusions
PROJ → Site 4
ASG’ = (PROJ ⋈ ASG) → Site 1 Site1
EMP(8)
(ASG’ ⋈ EMP) → Site 2
Coût Total = 1 + 2 + 2 = 5 Site2
PAY(4)
Site4
Site3 ASG(10)
PROJ(1)
82
Hill revisité : exemple
R S T V A B C
R S T V
Rel Site Taille |tuple| = 1
R 1 10
S 2 20
Minimiser :
T 3 30 Coût de transfert de données
V 4 40
83
Plan initial : Transférer les relations vers
un site. Mais lequel?
Meilleure alternative
84
Hill climbing revisité
Plan initial
P0: R (1 4)
S (2 4)
T (3 4)
calculer R S T V sur site 4
85
Hill climbing revisité
recherche locale
4 4 R S
R
S
1 2 1 2
R
86
Hill climbing revisité
on suppose que R S = 20
S T=5
T V=1
Alternative 1
4 S 4 20
10 R 20 R S
10
1 2 1 2
R
coût = 30 cost = 30
Pas d'amélioration 87
Hill climbing revisité
Alternative 2
4 S 4
R S R
10 20 20
1 20
2 1 S 2
cost = 30 cost = 40
Coût plus élévé
88
Hill climbing revisité
Alternative 3
4 4
S T T S
5
20 30 30
2 3 2 3
coût = 50
T
coût = 35
Un meilleur plan
89
Hill climbing revisité
Alternative 4
4 T 4
S S T
5
20 30 20
2 3 2 S 3
coût = 50 coût = 25
C'est encore mieux
90
Hill climbing revisité
P1: P1a: S (2 3)
ST = S T
P1b: R (1 4)
ST (3 4)
réponse calculée sur site 4
91
Hill climbing revisité
Répétition de la recherche locale
traiter ST = S T comme une relation
4
ST R
R
4
ST vs 1 ST 3
1 3 4
R ST
1 3
R
92
Algorithme SDD-1:
93
Algorithme SDD-1:
94
Algorithme SDD-1:
Initialisation
Etape 1: Inclure les traitements locaux dans le plan
ou stratégie d’exécution (ES)
Etape 2: Modifier les statistiques pour prendre en
compte les traitements locaux
Etape 3: Construire l’ensemble (BS) des semi-
jointures :
BS = Ø
Pour chaque semi-jointure Sji faire
BS ← BS ∪ SJi si coût (SJi ) < gain (SJi)
96
Algorithme SDD-I - Exemple
Soit la requête
SELECT R3.C
FROM R1, R2, R3
WHERE R1.A = R2.A AND R2.B = R3.B
Graphe de requête
97
Algorithme SDD-I - Exemple
attribut SF Taille(attribute)
R1.A 0.3 36
R2.A 0.8 320
R2.B 1.0 400
R3.B 0.4 80
98
Algorithme SDD-I - Exemple
Semi-jointure bénéfiques:
SJ1 = R2 R1
Gain : 2100 = (1 – 0.3)∗3000
Coût : 36
SJ2 = R2 R3
Gain : 1800 = (1 – 0.4) ∗3000
Coût : 80
Semi-jointures non bénéfiques :
SJ3 = R1 R2
Gain : 300 = (1 – 0.8) ∗1500
Coût 320
SJ4 = R3 R2
Gain : 0
Coût 400
99
Algorithme SDD-I - Exemple
100
Algorithme SDD-I - Exemple
Itération 1:
Supprimer SJ1 de BS et l’ajouter à ES.
Mise à jour des statistiques
101
Algorithme SDD-I - Exemple
Itération 2:
2 semi-jointures bénéfiques :
SJ2 = R2’ R3
Gain : 540 = (1–0.4) ∗900
Coût : 80
SJ3 = R1 R2‘
Gain : 1140=(1–0.24)∗1500
Coût : 96
Ajouter SJ3 to ES
Mise à jour
102
Algorithme SDD-I - Exemple
Itération 3:
Plus de semi-jointures bénéfiques
Ajouter la semi-jointure restante SJ2 à ES.
103
Algorithme SDD-I - Exemple
104
Algorithme SDD-I - Exemple
Post- optimisation
Etape 9: La phase de post-optimisation ne
supprime aucune semi-jointure (toutes les semi-
jointures sont restées bénéfiques).
Etape 10: Permuter les ordres de semi-jointures si
ceci peut améliorer le coût total de ES.
105
Algorithme SDD-I - Exemple
Calcul final
R1 ⋈ R2 ⋈ R3 =
(R1 R2) ⋈ ( (R2 R1) R3) ) ⋈ R3
106