Vous êtes sur la page 1sur 33

Bases de Donnes Rparties

1. 2. 3. 4. 5. 6. Dfinition Architectures Conception de BDR Traitement des requtes Transaction rpartie Passerelles avec autres SGBD

1. Dfinition
BD Rpartie
Ensemble de bases localises sur diffrents sites, perues par l'utilisateur comme une base unique Chaque base possde son schma local Le schma de la base rpartie constitue le schma global
il n'est gnralement pas matrialis il peut servir de support de conception

Les donnes sont accdes via des vues intgres


assurent la transparence la localisation permettent des recompositions de tables par union/jointure
IX.#

SGBD rparti
SGBDR

SGBD1

SGBD2

Rend la rpartition (ou distribution) transparente


dictionnaire des donnes rparties traitement des requtes rparties gestion de transactions rparties gestion de la cohrence et de la scurit
IX.#

Evaluation de l'approche BDR


avantages
extensibilit partage des donnes htrognes et rparties performances avec le paralllisme disponibilit avec la rplication

inconvnients
administration complexe distribution du contrle difficult de migration

IX.#

Migration vers une BDR


Dcomposition en BD locales
BD

BD1

BD2

BD3

Intgration logique des BD locales existantes


BD

BD1

BD2

BD3

IX.#

2. Architecture de schmas
indpendance applications/BDR schma global lourd grer

application 1

application 2

Schma global

Schma local 1

Schma local 2

Schma local 3

IX.#

Schma global
schma conceptuel global
donne la description globale et unifie de toutes les donnes de la BDR (e.g., des relations globales) indpendance la rpartition

schma de placement
rgles de correspondance avec les donnes locales indpendance la localisation, la fragmentation et la duplication

Le schma global fait partie du dictionnaire de la BDR et peut tre conu comme une BDR (dupliqu ou fragment)
IX.#

Exemple de schma global


Schma conceptuel global Client (nclient, nom, ville) Cde (ncde, nclient, produit, qt) Schma de placement Client = Client1 @ Site1 U Client1 @ Site2 Cde = Cde @ Site3

IX.#

Architecture fdre
moyen contrl de migration
application 1 application 2

Schma fdr 1

Schma fdr 2

Schma local 1

Schma local 2

Schma local 3

IX.#

3. Conception des bases rparties

BDR dcomposition intgration

BD1

BD2

BDn

IX.#

Conception par dcomposition


Table globale

fragmentation

allocation

Site 1

Site 2

IX.#

Objectifs de la dcomposition
fragmentation
trois types : horizontale, verticale, mixte performances en favorisant les accs locaux quilibrer la charge de travail entre les sites (paralllisme)

duplication (ou rplication)


favoriser les accs locaux augmenter la disponibilit des donnes

IX.#

Fragmentation horizontale
Fragments dfinis par slection
Client1 = Client where ville = "Paris" Client2 = Client where ville "Paris"
Client nclient C1 C2 C3 C4 Client1 nclient C1 C3 Reconstruction Client =Client1 U Client2 Client2 nclient C2 C4
IX.#

nom Dupont Martin Martin Smith

ville Paris Lyon Paris Lille

nom Dupont Martin

ville Paris Paris

nom Martin Smith

ville Lyon Lille

Fragmentation horizontale drive


Fragments dfinis par jointure Cde1 = Cde where Cde.nclient = Client1.nclient Cde2 = Cde where Cde.nclient = Client2.nclient Cde ncde D1 D2 D3 D4 nclient C1 C1 C2 C4 produit P1 P2 P3 P4 qt 10 20 5 10

Reconstruction Cde = Cde1 U Cde2

Cde1 ncde D1 D2

Cde2

nclient
C1 C1

produit P1 P2

qt

ncde D3 D4

nclient
C2 C4

produit P3 P4

qt

10 20

5 10

IX.#

Fragmentation verticale
Fragments dfinis par projection
Cde1 = Cde (ncde, nclient) Cde2 = Cde (ncde, produit, qt)
Cde

ncde D1 D2 D3 D4

nclient C1 C1 C2 C4

produit P1 P2 P3 P4

qt
10 20 5 10

Reconstruction
Cde = [ncde, nclient, produit, qt] where Cde1.ncde = Cde1 Cde2.ncde
ncde

Cde2 nclient C1 C1 C2 C4 ncde D1 D2 D3 D4 produit P1 P2 P3 P4 qt

Utile si forte affinit d'attributs

D1 D2 D3 D4

10 20 5 10

IX.#

Allocation des fragments aux sites


Non-duplique
partitionne : chaque fragment rside sur un seul site

Duplique
chaque fragment sur un ou plusieurs sites maintien de la cohrence des copies multiples

Rgle intuitive:
si le ratio est [lectures/mj] > 1, la duplication est avantageuse
IX.#

Exemple d'allocation de fragments


Client1 nclient C1 C3 nom Dupont Martin ville Paris Paris Client2 nclient C2 C4 nom Martin Smith ville Lyon Lille

Cde1

Cde2
client C1 C1 Site 1 produit P1 P2 qt 10 20 ncde D3 D4

ncde
D1 D2

client
C2 C4

produit
P3 P4

qt 5 10

Site 2

IX.#

Conception BDR par intgration


BD1 BD2 BD3

Traduction de schmas

Traducteur 1

Traducteur 2

Traducteur 3

S local 1

S local 2

S local 3

Intgration de schmas

Intgrateur

Schma Global

IX.#

4. Evaluation de requtes rparties


Requte sur tables globales

Fragmentation

Schma de fragmentation

Requte sur fragments

Optimisation

Schma d'allocation

Plan d'excution rparti


IX.#

Exemple d'valuation simple


Select A from R where B = b

Fragmentation

R = R1 U R2

Select A from R1 where B =b union Select A from R2 where B = b

Optimisation

R1 = R1 @ Site1 R2 = R2 @ Site2 R2 = R2 @ Site3

Select A from R1 @ Site1 where B = b union Select A from R2 @ Site3 where B = b


IX.#

5. Notion de Transaction Rpartie


Begin Read Write Abort Commit application

rsultats

Grant de Transactions Globales STrans. STrans.

Grant de Transactions Locales

Grant de Transactions Locales

IX.#

Protocole de validation en 2 tapes


Objectif : Excuter la commande COMMIT pour une transaction rpartie
Phase 1 : Prparer crire les rsultats des mises--jour dans la BD Phase 2 : Ecrire ces rsultats dans la BD

Coordinateur : composant systme dun site qui applique le protocole Participant : composant systme dun autre site qui participe dans l'excution de la transaction

IX.#

Etude de cas de dfaillances


Coordinator Participant INITIAL INITIAL

write begin_commit in log

write abort in log

No

Ready to Commit ? Yes

WAIT

VOTE-COMMIT

write ready in log

Any No? No write commit in log

Yes

write abort in log (Unilateral abort)

GLOBAL-ABORT

READY

Abort write abort in log

Type of msg ? Commit write commit in log

ACK COMMIT ABORT ACK write end_of_transaction in log

ABORT

COMMIT

IX.#

Validation normale
P1

Coordinateur

P2

prparer

prparer prt valider fini

prt
valider fini

IX.#

Panne d'un participant avant Prt


P1 Coordinateur P2

prparer prt

prparer
timeout

abandon fini

abandon

panne

}
fini

reprise

IX.#

Panne d'un participant aprs Prt


P1 Coordinateur

P2

prparer prt valider

prparer prt valider


fini
prt
timeout

panne

reprise

valider fait

IX.#

Panne du coordinateur
P1 Coordinateur P2

prparer prt

prparer prt

prparer prt

prparer prt valider fini

valider
fini

IX.#

6. Extracteurs et Passerelles
Extracteur
donnes Transformation table

Passerelle

procdure donnes

Select

SQL rsultat

Fournisseurs indpendants Outils ETL (ETI, Data Stage, Informatica, Sagent, Genio, Amadea, Sunopsis, ). Editeurs de SGBD passerelles entre le SGBD et les donnes sources

IX.#

SGBD rparti htrogne


Outils

SGBDR Interface rseau Interface rseau Interface SGBD1 SGBD1 Interface rseau Interface SGBD2 SGBD2

IX.#

Produits
SGBD relationnels
Oracle, DB2, SQL Server 2000, Sybase, Informix

VirtualDB (Enterworks)
bas sur GemStone, vue objet des tables

Open Database Exchange (B2Systems)

IX.#

Oracle/Star
SGBD Oracle
gestion du dictionnaire de la BDR

SQL*Net
transparence au rseau connexion client-serveur, loggin distance automatique valuation de requtes rparties validation en deux tapes et rplication

SQL*Connect : passerelle vers les bases non-Oracle

IX.#

Database link
Lien une table dans une BD distante specifi par :
nom de lien nom de l'utilisateur et password chane de connexion SQL*Net (protocole rseau, nom de site, options, etc)

Exemple
CREATE DATABASE LINK empParis CONNECT TO patrick IDENTIFIEDBY monPW USING Paris.emp

IX.#

Oracle/Star : architecture
Outils

Oracle SQL*Net SQL*Net SQL*Connect DB2 SQL*Net SQL*Connect Sybase

IX.#