Académique Documents
Professionnel Documents
Culture Documents
Réparties
1
Références
bibliographiques
2
Data Trucs
Distributed database
Data Warehouse (entrepôt de données)
Data Marts (entrepôt fragmenté)
WebData Warehouse
Data Mining (fouille des données)
Data Integration
Data Engineering
3
Bases de données
réparties (BDR)
4
BDR = BD + Réseau
6
SGBD Répartie
Objectifs
Site 1
Site 5
Réseau de
communication
Site 4
Site 2 BD
Site 3
BD
BD BD
9
Environnement
Sites = machines
Site 1
Site 5
Réseau de
communication BD
BD
Site 4
Site 2
BD Site 3
BD
10
Avantage
d’une BDD Répartie
Partage de données géographiquement reparties
Le gain en performances : les traitements se font
en parallèles
La fiabilité : Si un site a une panne, un autre peut
le remplacer valablement.
La transparence des données : les développeurs et
les utilisateurs n'ont pas à se préoccuper de la
localisation des données qu'ils utilisent.
11
Inconvénient
d’une BDD répartie
12
Objectifs des BDRs
Autonomie locale
Transparence
Performance améliorée
Fiabilité et disponibilité accrues
Partage accru de données et ressources
Expansion graduelle
13
Nouveaux défis (I)
Transactions réparties
Maintien des propriétés ACID des transactions
Utilisateur aura à formuler ses transactions de la même
manière que dans un environnement centralisé
15
Types de BDR
BDR homogène
Obtenue en divisant une BD en un ensemble de BD
locales, chacune étant gérée par le même SGBD
16
Exemple
BD
Clients
Processus de répartition
BD BD BD
Clients Clients Clients
Parisiens Poitevins Niortais
17
BDR Hétérogènes
SQL
XQuery Moteur de
tuples OQL objets XML recherches HTML API instances
Fichiers Application
SGBD SGBD SGBD Fichiers
Fichiers
texte
relationnel objet Semi-Structuré texte
texte
Agence Chaîne Site horaire Informations Météo
de voyage hotelière des vols Pays 19
Définition d’une BDR
• Site local
• Site de naissance (ne change pas)
• Site de stockage (peut changer)
• Site de l’usager
• Dupont de site S1 crée une relation R et la stocke dans S2
CREATE TABLE WAGON(NW, Type, Poids, Gare, Etat) ON S2
• S1 = site de naissance (WAGON @ S1)
• S2 = site de stockage
• Dupont de S1 déplace la relation de S2 vers S3
MIGRATE TABLE WAGON@S1 TO S3
20
Architecture des schémas
d’une BDR
Approche descendante
Environnement homogène
Conception à partir de zéro
Nouvelles étapes avant la conception physique
Approche ascendante
On part de BD existantes (souvent hétérogènes)
22
Conception des BDR
23
Approche ascendante
seule base
24
Approche descendante
Relation Globale
Fragmentation
Allocation
Site 1 Site 2
26
Techniques de fragmentation
Problème de fragmentation:
Entrée: une relation d’un schéma global
Sortie: un schéma de fragmentation (ensemble de
fragments)
Fragment1
Clients Parisiens
(partition1)
Avant
Table1 Table2 fragmentation
Fragment11 Fragment21
Fragments Après
dérivés fragmentation
Fragment12 Fragment22
30
Fragmentation horizontale
dérivée(II)
Fragment Fragment
vertical1 vertical2
32
Fragmentation verticale(II)
Obtention des fragments verticaux:
Fragmentation verticale est définie par l’opération de projection
Exemple
Client(N°Client, Nom, Sexe,Ville) peut être fragmentée :
Client1= SELECT N°Client, Nom FROM Client
Client2= SELECT N°Client, Sexe, Ville FROM Client
Complétude
Assure que tous les tuples d’une relation sont
associés à au moins un fragment
Reconstruction
Assure qu’une relation peut être reconstruite à partir de
ses fragments
Disjonction
Assure que les fragments d’une relation sont disjoints
deux à deux
36
Règles de correction
Reconstruction
Verticale : opération de jointure
Horizontale : opération d’union 37
Comment Fragmenter?
Fragmentation horizontale
Fragments horizontaux sont disjoints
Deux catégories de méthodes de fragmentation
Data-driven partitioning (voir cours entrepôts)
Hash-partitioning (Oracle10g)
Range partitioning (Oracle10g)
List Partitioning (Oracle10g)
Query-Driven Partitioning
Prédicats définis dans les requêtes
38
Fragmentation dirigée par
des requêtes
40
Procédure de
fragmentation(II)
Soit Pr = {p1, p2, ..., pm} un ensemble de prédicats simples définis sur
la relation Ri, l’ensemble de minterms M = {m1, m2 , ..., mz } est
défini comme suit:
M = {mi | mi = Pj Pr p*j }, 1 i z, 1 j z;
where p*j = pj or ¬pj
Exemple:
m1 : (Ville =“Poitiers”) (Salaire 10 000)
m2 : NOT(Ville=“Poitiers”) (Salaire 10 000)
m3 : (Ville =“Poitiers”) NOT(Salaire 10 000)
m4 : NOT(Ville =“Poitiers”) NOT(Salaire 10 000)
41
Informations sur la BD
clause du minterm.
42
Algorithme de génération
des fragments horizontaux
43
5 < A < 10
Minterm predicates (I)
(1) A<10 A>5 Loc=SA Loc=SB
(2) A<10 A>5 Loc=SA ¬(Loc=SB)
(3) A<10 A>5 ¬(Loc=SA) Loc=SB
(4) A<10 A>5 ¬(Loc=SA) ¬(Loc=SB)
(5) A<10 ¬(A>5) Loc=SA Loc=SB
(6) A<10 ¬(A>5) Loc=SA ¬(Loc=SB)
(7) A<10 ¬(A>5) ¬(Loc=SA) Loc=SB
(8) A<10 ¬(A>5) ¬(Loc=SA) ¬(Loc=SB)
A 5
44
Minterm predicates (II)
(9) ¬(A<10) A>5 Loc=SA Loc=SB
(10) ¬(A<10) A>5 Loc=SA ¬(Loc=SB)
(11) ¬(A<10) A>5 ¬(Loc=SA) Loc=SB
(12) ¬(A<10) A>5 ¬(Loc=SA) ¬(Loc=SB)
(13) ¬(A<10) ¬(A>5) Loc=SA Loc=SB
(14) ¬(A<10) ¬(A>5) Loc=SA ¬(Loc=SB)
(15) ¬(A<10) ¬(A>5) ¬(Loc=SA) Loc=SB
(16) ¬(A<10) ¬(A>5) ¬(Loc=SA) ¬(Loc=SB)
A 10
45
Fragments finaux
46
Prise en considération de la
sémantique
47
Fragmentation horizontale
dérivée
[Bellatreche, Entity-Relationship’98]
père/fils)
49
Comment choisir?
50
Jointure distribuée
51
Graphe de jointure
SELECT Ename, Resp
FROM E, G, J
WHERE E. ENo = G. ENO
AND G.JNO = J.JNO
AND JNAME = ``CAD''
AND DUR >= 36
AND Title = ``Prog''
PROJ EMP
52
Graphe de jointure total
P1 PF1
P2
PF2
Fragments Fragments
of player P3 of plays_for
PF3
P4
PF4
P5
53
Graphe de jointure partiel
P1 PF1
P2
PF2
Fragments Fragments
of player P3 of plays_for
PF3
P4
PF4
P5
54
Graphe de jointure simple
T1 PF1
T2 PF2
Fragments Fragments
of team of plays_for
T3 PF3
T4 PF4
55
Fragmentation verticale
56
Vertical Fragmentation:
Algorithmes
57
VF Information: Besoins
Principe:
Un fragment vertical contient des attributs fréquemment utilisés
Therefore, there is a need to have some measure of
``togetherness'' this is the measure of affinity among the
attributes
Q = {q1 , q2, ..., qm}: ensemble de requêtes fréquentes
R (A1, A2, ..., An): relation R avec n attributs, et l sites
Matrice d’usage m×n: Uij : 1 si attribut Aj est référencé par qi sinon 0
Matrice d’accès m × l : accik : fréquence d’accès de la requête i sur le
site k
Matrice de référence m× l : ref ik : le nombre d’accès aux attributs pour
chaque exécution de la requête qi sur le site k
58
Vertical Fragmentation
Exemple
1 0 1 0 15 20 10
0 5 0 0
1 1 0
U acc
0 1 0 1 25 25 25
0 0 1 1 3 0 0
59
Mesure d’affinité
61
Principe de l’algorithme
63
Allocation des fragments
Problème d’allocation:
Entrées:
F = {F1, F2, …, Fn} - ensemble de fragments
S = {S1, S2, …, Sm} - ensemble de sites
Q = {Q1, Q2, …, Ql} - ensemble de requêtes
Le problème d’allocation consiste à trouver une distribution
optimale de F sur S afin d’améliorer la performance (temps de
réponse, données transférées, etc.)
Contraintes
Stockage, équilibrage de la charge entre les sites
Problème NP-complet
64
Alternatives d’allocation
Réplication totale
chaque fragment est répliqué sur tous les sites
Réplication partielle
chaque fragment est répliqué sur quelques
sites
Aucune réplication
Chaque fragment réside dans un et un seule
site
65
Duplication
66
Trigger
68
Client/Serveur
REQUETE
RESULTAT
Windows NT UNIX
CLIENTS 70
Collaborating Servers
Serveur
Serveur
Serveur
Query
Client
71
Système de Middleware
Un serveur (middleware) gère les requêtes et les transactions
Serveur
Middleware
Serveur
Serveur
Query
Client
Plus de transparence
72
Peer-to-peer (P2P)
Contexte Réparti
74
Évaluation des requêtes dans
un environnement réparti
Introduction
Évaluation des requêtes réparties
Décomposition des requêtes
Localisation des données
75
Introduction
Statistiques
Cardinalité des fragments
Taille d’un tuple
Valeurs distinctes des tuples
etc.
Sites de décision
Un ou plusieurs sites participant dans la sélection des
stratégies
Exploitation de la topologie du réseau
Wide area network
Local area network
79
Caractéristiques de
l’optimiseur réparti (II)
80
Localisation des données
81
Exemple
ENAME EMP est fragmentée en:
EMP1 = ENO “E3” (EMP)
Dur=12 Dur=24 EMP2 = “E3” < ENO “E6” (EMP)
EMP3 = ENO >“E6” (EMP)
ENAME<>“J.DOE”
ASG est fragmentée en:
JNAME=“CAD/CAM” ASG1 = ENO “E3” (ASG)
ASG2 = ENO >“E3” (ASG)
JNO
ENO
PROJ
EMP1 ASG1 EMP1 ASG2 EMP2 ASG1 EMP2 ASG2 EMP3 ASG1 EMP3 ASG2
85
Réduction avec jointure
(III)
ENO
SELECT ENAME
FROM EMP
EMP1 EMP2 EMP1
87
Réduction pour FHD (I)
Distribuer les jointures sur les unions
appliquer la réduction des jointures sur la FH
ASG1 ASG2 EMP2
ASG2
ASG1 EMP2 ASG1 EMP2 ASG1
ASG2 EMP2
89
Réduction pour la FH
90
Exemple
EMP1 = ENO“E4” (ENO,ENAME (EMP))
EMP2 = ENO>“E4” (ENO,ENAME (EMP))
ENAME
EMP3 = ENO,TITLE (EMP)
ENO=“E5”
Requête ENAME
SELECT ENAME
EMP2
FROM EMP ENO=“E5”
WHERE ENO = “E5”
ENO
EMP1
ASG1 EMP2 EMP3
91
Pourquoi optimiser?
exemple
Base de données:
Arbre algébrique
EMP(eno, ename, title)
ASG(eno, jno, resp, dur)
Ename
Requête
Lister les noms des employés resp=”manager”
gérant un projet
SQL EMP.Eno=ASG.Eno
Select ename
From EMP e, ASG g
Where e.Eno = g. Eno ASG EMP
And resp = ‘‘manager’’
92
Exemple - Stratégies
Plan B
Site 5
ENO
Schéma des fragments
EMP1 = ENO <= 100(EMP) at site 1 resp=“manager
”
EMP2 = ENO > 100(EMP) at site 2
ASG1 = ENO <= 100(ASG) at site 3
ASG2 = ENO > 100(ASG) at site 4 ASG1 ASG2 EMP1 EMP2
Site de requête:
Site 5
ENO ENO
ASG1’ ASG2’
resp=“manager EMP1 resp=“manager EMP2
” ”
Plan A
ASG1 ASG2
93
Statistiques & coûts
94
Coûts des plans
Coût du Plan A:
- Produire ASG’ = 20 tacc = 20 (traitement local)
- Transférer de ASG’ = 20 *ttrans = 200 (transfert sur le site de EMP)
- Produire EMP’ = (20 * 400) * tacc = 8000 (jointure sur le site EMP)
- Transférer EMP’ = 20 * ttrans = 200 (envoie sur le Site 5)
Coût Total = 8420
Coût du Plan B:
- Transférer EMP = 400 * ttrans = 4,000 (sur le Site 5)
- Transférer ASG = 1000 * ttrans = 10,000 sur le site Site 5)
- Produire ASG’ = 1000 * tacc = 1,000 (sélection sur Site 5)
- Jointure de EMP et ASG’ = 400 * 20 * tacc = 8,000 (sur let Site 5)
Transfert de R1
R1@site1 R2@site2
R2@site2
R1@site1
97
Système R*: optimisation de
requêtes réparties
98
Stratégies de transfert de
données
99
Bases de données
hétérogènes
100
Architecture de médiation
Médiateur
SQL
Adaptateur Adaptateur AdaptateurMoteur
Adaptateur
de Adaptateur
XQuery
tuples OQL
OQL
objets XML recherches
Moteur textes API
API instances
instances
SQL tuples objets de textes
XQuery
recherche
Fichiers Application
SGBD SGBD SGBD Fichiers
Fichiers
texte
relationnel objet Semi-Structuré texte
texte
Agence Chaine Site horaire Informations Météo
de voyage hotelière des vols Pays 101
Adaptateur (Wrapper)
102
Médiateur
103
Architecture GAV et LAV
GAV : Global as View
Schéma global défini comme une vue intégrante sur
schémas locaux
Approche ascendante depuis les sources vers le
médiateur
Difficulté pour ajouter une source
LAV : Local As View
Chaque source locale est définie comme une vue
locale du schéma global
Approche descendante depuis le médiateur vers les
sources
Difficulté pour réconcilier source et vue locale 104