33
Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres SGBD

Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

Embed Size (px)

Citation preview

Page 1: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

Bases de Données Réparties

1. Définition2. Architectures3. Conception de BDR4. Traitement des requêtes5. Transaction répartie6. Passerelles avec autres SGBD

Page 2: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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

Page 3: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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é

Page 4: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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

Page 5: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

IX.5

Migration vers une BDR

Décomposition en BD locales

Intégration logique des BD locales existantes

BD

BD2BD1 BD3

BD

BD2BD1 BD3

Page 6: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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

Page 7: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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é)

Page 8: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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

Page 9: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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

Page 10: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

IX.10

3. Conception des bases réparties

BDR

BD2 BDnBD1

décomposition intégration

Page 11: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

IX.11

Conception par décomposition

Table globale

fragmentation

allocation

Site 1 Site 2

Page 12: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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

Page 13: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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

Page 14: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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

Page 15: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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é

Page 16: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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

Page 17: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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é

Page 18: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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

Page 19: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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

Page 20: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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

Page 21: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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.

Page 22: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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

Page 23: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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 ?

Page 24: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

IX.24

Validation normale

préparer

prêt

valider

finifini

préparer

prêt

valider

finifini

P1P1 P2P2Coordinateur

Page 25: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

IX.25

Panne d'un participant avant Prêt

timeout

abandon abandon

pannepanne

reprisereprise}

prêt

finifini

finifini

préparer préparer

P1P1 P2P2Coordinateur

Page 26: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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

Page 27: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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

Page 28: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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

Page 29: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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

Page 30: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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)

Page 31: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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

Page 32: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

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

Page 33: Bases de Données Réparties 1. Définition 2. Architectures 3. Conception de BDR 4. Traitement des requêtes 5. Transaction répartie 6. Passerelles avec autres

IX.33

Oracle/Star : architecture

Oracle

SQL*Net

Outils

Sybase

SQL*Connect

DB2

SQL*Net SQL*Net

SQL*Connect