Академический Документы
Профессиональный Документы
Культура Документы
Décomposition en BD locales
Approche décomposition BD
Fragmentation
Allocation des fragments
BD1 BD2 BD3
Fragmentation de requêtes
Optimisation de requêtes
Intégration logique des BD locales existantes
BD
1 2
Fragmentation
Relation globale
• trois types : horizontale, verticale, mixte
fragmentation • performances en favorisant les accès locaux
• équilibrer la charge de travail entre les sites
3 4
Page 1
Types de Fragmentation Fragmentation correcte
Complète
• chaque élément de R doit se trouver dans un fragment
Reconstructible
• on doit pouvoir recomposer R à partir de ses
fragments
Disjointe
• chaque élément de R ne doit pas être dupliqué
horizontale verticale mixte
5 6
7 8
Page 2
Fragmentation Horizontale par sélection Fragmentation Horizontale Dérivée
• Fragmentation de R selon n prédicats Fragments définis par semi-jointure Cde
les prédicats {p1, …, pn} ex: {a<10, a > 5, b=‘x’, b=‘y’} create table Cde1 as
•
ncde nclient produit qté
select * from Cde, Client1
• L’ensemble M des prédicats de fragmentation est : where Cde.nclient = Client1.nclient D1 C1 P1 10
• M = { m | m = ∧ 1 ≤ k ≤ n pk* } avec pk* ∈{pk, ¬ pk} D2 C1 P2 20
D3 C2 P3 5
• Eliminer les m de sélectivité nulle ex: a<10 ∧ a > 5 create table Cde2 as D4 C4 P4 10
• Simplifier: a<10 ∧ a ≤ 5 ∧ b=‘x’ ∧ b ≠ ‘y’ devient a ≤ 5 ∧ b=‘x’ select * from Cde, Client2
• Construire les fragments {R1, …, Rk} where Cde.nclient = Client2.nclient
9 10
Reconstructible
• S = (S Z< R1) ∪ (S Z< R2) ∪ … ∪ (S Z< Rn)
Cde1 Cde2
ncde nclient ncde produit qté
⇒ contrainte d’intégrité référentielle
• A = clé de R D1 C1 D1 P1 10
• S.A référence R.A D2 C1 D2 P2 20
D3 C2 D3 P3 5
D4 C4 D4 P4 10
11 12
Page 3
Propriétés de la fragmentation verticale Matrice d’affinité des attributs
Fragmentation verticale de R Matrice A
• Ai ⊆ attributs(R) aij = affinité de Ai avec Aj
• Fragments: Ri = πAi(R) ex: nb de requêtes qui accèdent Ai et Aj
Complète
A1 A2 A3 A4
• Attributs(R) = A1 ∪ A2 ∪ … ∪ An
A1 45 0 45 0
Disjointe
A2 80 5 75
• A1 ∩ A2 ∩ … ∩ An = clé(R)
A3 53 3
Reconstructible A4 78
• R = R1 ZY R2 ZY … ZY Rk
13 14
15 16
Page 4
Allocation de Fragments Exemple d'Allocation de Fragments
Problème: Soit
F un ensemble de fragments
Client1 Client2
S un ensemble de sites nclient nom ville
nclient nom ville
Q un ensemble d’applications et leurs caractéristiques C1 Dupont Paris C2 Martin Lyon
C3 Martin Paris C4 Smith Lille
trouver la distribution "optimale" de F sur S
Optimum
• coût minimal de comm, stockage et traitement Cde1 Cde2
• Performance = temps de réponse ou débit ncde client produit qté ncde client produit qté
D1 C1 P1 10 D3 C2 P3 5
Solution D2 C1 P2 20 D4 C4 P4 10
• allouer une copie de fragment là où le bénéfice est
supérieur au coût Site 1 Site 2
17 18
19 20
Page 5
Evaluation de Requêtes Réparties Exemple d'Evaluation Simple
Select A from R where B = b
Requête sur relations globales
Fragmentation R = R1 U R2
Schéma
Fragmentation de fragmentation
R1 = R1 @ Site1
Schéma Optimisation R2 = R2 @ Site2
Optimisation d'allocation R2 = R2 @ Site3
21 22
Fragmentation Reconstruction
Réécriture Select nom from Client
• mettre la requête sous forme d'un arbre algébrique Client1 : Client where ville = ‘Paris’
(feuille = relation, noeud = op. relationnel)
Reconstruction Client2 : Client where ville not ‘Paris’
• remplacer chaque feuille par le programme de
reconstruction de la relation globale
P (nom) P (nom)
Transformation
• appliquer des techniques de réduction pour éliminer les
opérations inutiles
Client U
Notations utilisées :
• S : select
• J : join Client1 Client2
• P : project
23 24
Page 6
Réduction pour la fragmentation horizontale Réduction pour la Fragmentation Verticale
Règle : éliminer l'accès aux fragments inutiles Règle : éliminer les accès aux relations de base qui
n'ont pas d'attributs utiles pour le résultat final
Exemple :
Client1 : Client where ville = ‘Paris’
Exemple
Client2 : Client where ville not ‘Paris’ Cde1 : Cde (ncode, nclient)
Select * from Client where ville = ‘Lyon’ Cde2 : Cde (ncode, produit, qté)
Select nclient from Cde
25 26
U U
Exemple
Client1 : Client where ville= ‘Paris’ Cde1 Cde2 Client1 Client2
Client2 : Client where ville not ‘Paris’
Cde1 : Cde where Cde.nclient=Client1.nclient Après 1ère réduction J (nclient)
Cde2 : Cde where Cde.nclient=Client2.nclient
S (ville=Lyon)
Select * from Client, Cde U
where Client.nclient = Cde.nclient
and ville= ‘Lyon’
Cde1 Cde2 Client2
27 28
Page 7
Exemple (suite) Optimisation de Requêtes Réparties
U
entrée : une requête simplifiée exprimée sur des fragments
Distribution sortie : un plan d'exécution réparti optimal
J (nclient) J (nclient)
Objectifs
S (ville=Lyon) S (ville=Lyon)
• choisir la meilleure localisation des fragments
Cde1 Client2 Cde2 Client2
• minimiser une fonction de coût: f (I/O, CPU, Comm.)
• exploiter le parallélisme
Elimination du sous-arbre inutile J (nclient)
• exprimer les transferts inter-sites
Solution
S (ville=Lyon)
• examiner le coût de chaque plan possible (par
transformation) et prendre le meilleur
Cde2 Client2
29 30
Site 2 : Client2 = Client where ville not ‘Paris’ (Client1 U Client2) J nclient (S qté > 10 (Cde1 U Cde2))
31 32
Page 8
Coût des Solutions Jointure
Supposons R sur S1, S sur S2, T sur S3.
• taille (Cde1) = taille (Cde2) = 10 000 Requête demandée sur le site S0 : R ZY S ZY T
• taille (Client1) = taille (Client2) = 2 000 Plusieurs possibilités :
• coût de transfert d’un n-uplet = 1 a) Copier tout sur S0 et faire les jointures sur S0
• Sélectivité(qté>10) = 1% b) Copier R sur S2, et joindre R et S sur S2
Copier le résultat sur S3, et faire la jointure avec T sur S3
Stratégie 1 Copier le résultat sur S0
• transfert de Cde1 + Cde2 = 20 000 Tenir compte des index, de la taille des relations à transférer, de la taille
des relations intermédiaires, de la charge des sites, de la vitesse de
• transfert de Client1 + Client2 = 4000 transmission, etc.
On peut paralléliser les jointures : grand nombre de stratégies
Stratégie 2
• transfert de C1 + C2 = 1%*10000 + 1%* 10000 = 200
• transfert de C3 + C4 = 200
33 34
Page 9
Conclusion
37
Page 10