Upload
amedee-legros
View
105
Download
1
Embed Size (px)
Citation preview
Bases de Données Réparties
1. Définition2. Architectures3. Conception de BDR4. Traitement des requêtes5. Transaction répartie6. Passerelles avec autres SGBD
IX.2
1. Définition
BD Répartie• Ensemble de bases localisées sur différents sites,
perçues par l'utilisateur comme une base unique
• Chaque base possède son schéma local• Le schéma de la base répartie constitue le schéma
global il n'est généralement pas matérialisé il peut servir de support de conception
• Les données sont accédées via des vues intégrées assurent la transparence à la localisation permettent des recompositions de tables par union/jointure
IX.3
SGBD réparti
SGBDR
SGBD1 SGBD2
Rend la répartition (ou distribution) transparente
• dictionnaire des données réparties• traitement des requêtes réparties• gestion de transactions réparties• gestion de la cohérence et de la sécurité
IX.4
Evaluation de l'approche BDR
avantages• extensibilité• partage des données hétérogènes et réparties• performances avec le parallélisme• disponibilité avec la réplication
inconvénients• administration complexe• distribution du contrôle• difficulté de migration
IX.5
Migration vers une BDR
Décomposition en BD locales
Intégration logique des BD locales existantes
BD
BD2BD1 BD3
BD
BD2BD1 BD3
IX.6
2. Architecture de schémas
• indépendance applications/BDR• schéma global lourd à gérer
Schéma global
application 1 application 2
Schéma local 1 Schéma local 2 Schéma local 3
IX.7
Schéma global
schéma conceptuel global• donne la description globale et unifiée de toutes les
données de la BDR (e.g., des relations globales)• indépendance à la répartition
schéma de placement• règles de correspondance avec les données locales• indépendance à la localisation, la fragmentation et
la duplication
Le schéma global fait partie du dictionnaire de la BDR et peut être conçu comme une BDR (dupliqué ou fragmenté)
IX.8
Exemple de schéma global
Schéma conceptuel globalClient (nclient, nom, ville)Cde (ncde, nclient, produit, qté)
Schéma de placementClient = Client1 @ Site1 U Client1 @
Site2Cde = Cde @ Site3
IX.9
Architecture fédérée
moyen contrôlé de migration
application 1 application 2
Schéma local 1 Schéma local 2 Schéma local 3
Schéma fédéré 1 Schéma fédéré 2
IX.10
3. Conception des bases réparties
…
BDR
BD2 BDnBD1
décomposition intégration
IX.11
Conception par décomposition
Table globale
fragmentation
allocation
Site 1 Site 2
IX.12
Objectifs de la décomposition
fragmentation• trois types : horizontale, verticale, mixte• performances en favorisant les accès locaux• équilibrer la charge de travail entre les sites
(parallélisme)
duplication (ou réplication) • favoriser les accès locaux • augmenter la disponibilité des données
IX.13
Fragmentation horizontale
Fragments définis par sélection• Client1 = Client where
ville = "Paris"• Client2 = Client where
ville "Paris"
ReconstructionClient =Client1 U Client2
nclient nom ville
C 1C 2C 3C 4
DupontMartinMartinSmith
ParisLyonParisLille
nclient nom ville
C 1C 3
DupontMartin
ParisParis
nclient nom ville
C 2C 4
MartinSmith
LyonLille
Client
Client1
Client2
IX.14
Fragmentation horizontale dérivée
Fragments définis par jointureCde1 = Cde where
Cde.nclient = Client1.nclientCde2 = Cde where
Cde.nclient = Client2.nclient
ReconstructionCde = Cde1 U Cde2
ncde nclient produit
D 1D 2D 3D 4
C 1C 1C 2C 4
P 1P 2P 3P 4
Cde
qté
10205
10
ncde nclient produit
D 1D 2
C 1C 1
P 1P 2
Cde1
qté
1020
ncde nclient produit
D 3D 4
C 2C 4
P 3P 4
Cde2
qté
510
IX.15
Fragmentation verticale
Fragments définis par projection• Cde1 = Cde (ncde, nclient)• Cde2 = Cde (ncde,
produit, qté)
Reconstruction• Cde = [ncde, nclient,
produit, qté] where Cde1.ncde = Cde2.ncde
Utile si forte affinité d'attributs
ncde nclient produit
D 1D 2D 3D 4
C 1C 1C 2C 4
P 1P 2P 3P 4
Cde
qté
1020
510
ncde nclient
D 1D 2D 3D 4
C 1C 1C 2C 4
Cde1
ncde
Cde2
P 1P 2P 3P 4
1020
510
D 1D 2D 3D 4
produit qté
IX.16
Allocation des fragments aux sitesNon-dupliquée
• partitionnée : chaque fragment réside sur un seul site
Dupliquée• chaque fragment sur un ou plusieurs sites• maintien de la cohérence des copies multiples
Règle intuitive:• si le ratio est [lectures/màj] > 1, la duplication est
avantageuse
IX.17
Exemple d'allocation de fragments
P 1P 2
1020
D 1D 2
C 1C 1
Cde1
ncde client produit
D 3D 4
C 2C 4
P 3P 4
Cde2
qté
510
nclient nom ville
C 1C 3
DupontMartin
ParisParis
C 2C 4
MartinSmith
LyonLille
Client1 Client2
nclient nom ville
Site 1 Site 2
ncde client produit qté
IX.18
Conception BDR par intégration
Traductionde schémas
Intégrationde schémas
BD1 BD2 BD3
Traducteur 1
S local 1
Intégrateur
Schéma Global
Traducteur 2
S local 2 S local 3
Traducteur 3
IX.19
4. Evaluation de requêtes réparties
Fragmentation
Optimisation
Schémade fragmentation
Schémad'allocation
Requête sur tables globales
Requête sur fragments
Plan d'exécution réparti
IX.20
Exemple d'évaluation simple
Fragmentation
Optimisation
R = R1 U R2
Select A from R where B = b
Select A from R1 where B =bunion Select A from R2 where B = b
Select A from R1 @ Site1 where B = bunion Select A from R2 @ Site3 where B = b
R1 = R1 @ Site1R2 = R2 @ Site2R2 = R2 @ Site3
IX.21
5. Notion de Transaction Répartie
application
Gérant deTransactions Globales
Gérant deTransactions Locales
Gérant deTransactions Locales
résultats
BeginReadWriteAbortCommit
STrans.STrans.
IX.22
Protocole de validation en 2 étapes
Objectif : Exécuter la commande COMMIT pour une transaction répartie• Phase 1 : Préparer à écrire les résultats des mises-à-jour dans
la BD• Phase 2 : Ecrire ces résultats dans la BD
Coordinateur : composant système d’un site qui applique le protocole
Participant : composant système d’un autre site qui participe dans l'exécution de la transaction
IX.23
Etude de cas de défaillancesParticipant Coordinator
INITIAL
VOTE-ABORT
PREPARE
write abortin log
No
Yes
write readyin log
VOTE-COMMIT
Yes GLOBAL-ABORT
write commitin log
NoGLOBAL-COMMIT
write abortin log
Abort
Commit
INITIAL
WAIT
READY
write commitin log
write abortin log
ABORTCOMMIT
COMMITABORT
write begin_commit
in log
(Uni
late
ral a
bort
)ACK
ACK
writeend_of_transaction
in log
Any No?
Type ofmsg ?
Ready toCommit ?
IX.24
Validation normale
préparer
prêt
valider
finifini
préparer
prêt
valider
finifini
P1P1 P2P2Coordinateur
IX.25
Panne d'un participant avant Prêt
timeout
abandon abandon
pannepanne
reprisereprise}
prêt
finifini
finifini
préparer préparer
P1P1 P2P2Coordinateur
IX.26
Panne d'un participant après Prêt
}finifini
reprisereprise
pannepanne
prêt
préparer préparer
P1P1 P2P2Coordinateur
prêt
faitfait
valider valider
valider
prêt
timeout
IX.27
Panne du coordinateur
préparer
finifini
préparer
prêt
valider
finifini
prêt
valider
préparerpréparer
prêt prêt
P1P1 P2P2Coordinateur
IX.28
6. Extracteurs et Passerelles
Extracteur Transformationdonnées table
Passerelle Selectdonnées résultat
procédure SQL
Fournisseurs indépendants
• Outils ETL (ETI, Data Stage, Informatica, Sagent, Genio, Amadea, Sunopsis, …).
Editeurs de SGBD
•passerelles entre le SGBD et les données sources
IX.29
SGBD réparti hétérogène
SGBDR
Interface réseau
Outils
Interface réseau
Interface SGBD2
SGBD2
Interface réseau
Interface SGBD1
SGBD1
IX.30
Produits
SGBD relationnels• Oracle, DB2, SQL Server 2000, Sybase, Informix
VirtualDB (Enterworks)• basé sur GemStone, vue objet des tables
Open Database Exchange (B2Systems)
IX.31
Oracle/Star
SGBD Oracle• gestion du dictionnaire de la BDR
SQL*Net• transparence au réseau• connexion client-serveur, loggin à distance
automatique• évaluation de requêtes réparties• validation en deux étapes et réplication
SQL*Connect : passerelle vers les bases non-Oracle
IX.32
Database link
Lien à une table dans une BD distante specifié par :• nom de lien• nom de l'utilisateur et password• chaîne de connexion SQL*Net (protocole réseau,
nom de site, options, etc…)
Exemple• CREATE DATABASE LINK empParis• CONNECT TO patrick • IDENTIFIEDBY monPW• USING Paris.emp
IX.33
Oracle/Star : architecture
Oracle
SQL*Net
Outils
Sybase
SQL*Connect
DB2
SQL*Net SQL*Net
SQL*Connect