CM1 ConceptionBDR
CM1 ConceptionBDR
CM1 ConceptionBDR
Master 1 MIF37
CM1
JUSQU PRSENT .
SQL Toto@orapeda1
N-uplets
MIF37
MAINTENANT
Toto@orapeda2 Toto@orapeda3
SQL
N-uplets Toto@orapeda1
K bases N relations que vous avez cres ou qui ont t cres par dautres M requtes SQL
MIF37
AUTRE CONTEXTE
Htrognit des donnes
Toto@orapeda2
SQL Toto@orapeda1
Toto@orapeda3
N-uplets
MIF37
AUTRE CONTEXTE
Htrognit des sources XML
<> <> <> <>
Toto
Mdiateur
Toto@orapeda1
MIF37
AUTRE CONTEXTE
Passage lchelle
MIF37
CONTEXTE
un ensemble de donnes stockes sur plusieurs sites (machines) communicant via un rseau.
C B
BD3
BD2
BD1
Rseau
BD4
BD5
MIF37
PROBLME
Comment offrir aux utilisateurs une vue sur lensemble des donnes en faisant abstraction de leur localisation physique ?
MIF37
BD3
BD2
BD1
Rseau
BD4
BD5
MIF37
C B
BD3
BD2
vue commune
BD1
BD4
Rseau
I J
BD5
MIF37
BD3
BD2
BD1
Rseau
BD4
BD5
MIF37
REFORMULATION DU PROBLME
Comment offrir aux utilisateurs une vue sur lensemble des donnes en faisant abstraction de leur localisation physique tout en garantissant de bonnes performances de traitement des requtes?
MIF37
Temps de traitement
Passage lchelle
TP
Conception dune BDR Intgration de donnes Traitement de requtes rparties Simulation et Prototypage dapplications P2P
MIF37
ALGBRE RELATIONNELLE
Dfinition Une algbre relationnelle est un ensemble doprations agissant sur des relations et produisant des relations
Oprateurs :
<Oprateur><parametres> <Oprande> <Rsultat> <Oprande> <Oprateur><parametres> <Oprande> <Rsultat>
Cest un langage ferm les oprandes et les rsultats sont toujours des relations
MIF37
R S = { t | tR et tS}
DIFFERENCE
R S={ t | tR et tS}
PRODUIT CARTESIEN R S = {t.A1Ak1 Ak1+1Ak1+k2 | t.A1Ak1 R et t.Ak1+1Ak1+k2 S } DIVISION MIF37 R S = {Ak+1,,Ak+n| t. A1,,Ak,Ak+1,,Ak+n R et t.A1Ak S avec tous les n-uplets t tels que {t} S R
SEMI-JOINTURE R
FS
RENOMMAGE
EXERCICE
Une UFR dInformatique dispose dune base de donnes lui permettant darchiver les rsultats de ses tudiants aux examens. Le schma de cette base comprend les relations suivantes : etudiant( No, Nom, Prenom, Rue, Ville, DateNaiss) ; enseignant( No, Nom, Prenom, Rue, Ville, DateNaiss) ; module( Diplome, NomMod, ObliOp, NoResp) ; diplome( Titre, NbOpt) ; examen( Diplome, Module, Session, Annee, NoEt, Note) . Requtes :
R1 : Liste des noms des tudiants lyonnais ayant pass au moins un examen en 2010 et des enseignants lyonnais responsables dun module R2 : Liste des tudiants lyonnais (numro, nom et prnom), qui ont russi tous les examens de modules obligatoires auxquels ils se sont prsents en 2010. Pour chaque tudiant on prcisera le diplme obtenu ainsi que son nombre doptions.
MIF37
CONCEPTION DE BDR
Des donnes rparties sur diffrents sites doivent tre interrogeables depuis nimporte quel site
Comment offrir lutilisateur un moyen daccs transparents toutes ces donnes ?
MIF37
RAPPEL
Dans un contexte centralis : Analyse des besoins
Modle relationnel
Modle logique
MIF37
21
Modle logique
22
MIGRATION
Transfre dune relation complte sur un site distant
1.copie
BD source
BD cible
23
RPLICATION
Cration dune copie conforme dune table (ou ensemble de tuples) sur un site distant. La copie doit rester cohrente avec les donnes sources
1.copie
BD principale
BD secondaire
2. synchronisation
MIF37
24
DCOMPOSITION
BDinit
SCH
{D1}
Donnes {D2}
{D3}
BD1
BD2
BD3
MIF37
SCH est le schma global qui permet linterrogation des donnes stockes sur BD1, BD2 et BD3 !
Remarque :
Le schma global fait partie du dictionnaire de la BDR et peut tre conu comme une BDR (rpliqu ou fragment)
MIF37
Fragmentation Verticale
Un fragment est une projection sur un sous-ensemble dattributs Un fragment est une composition dune fragmentation horizontale (drive) avec une fragmentation verticale
Fragmentation Mixte
MIF37
FRAGMENTATION HORIZONTALE
Client nclient nom Dupont Martin Martin Smith ville Paris Lyon Paris Lille
Client2 =
Client1 =
ville = Paris(Client)
C1 C2 C3 C4
ville != Paris(Client)
nclient C2 C4
Cde2 = Cde
nclient
Client2
Cde1 = Cde2 =
ncde D1 D2 D3 D4
nclient C1 C1 C2 C4
produit P1 P2 P3 P4
qt 10 20 5 10
ncde
Cde2
Cde1 ncde D1 D2 D3 D4 nclient C1 C1 C2 C4 Cde2 ncde D1 D2 D3 D4 produit P1 P2 P3 P4 qt 10 20 MIF37 5 10
Remarque importante : Il est important de conserver les cls dans chaque fragment vertical Sinon reconstruction impossible !
Cde1 ncde D1 D2 D3 D4
D1 D2 D3 D4
FRAGMENTATION MIXTEClient
nclient nom Dupont Martin Martin Smith ville Paris Lyon Paris Lille C1 C2 C3 C4
Fragmentation horizontale Client1 nclient C1 C3 nom Dupont Martin ville Paris Paris Client2 nclient C2 C4 nom Martin Smith ville Lyon Lille
Fragmentation verticale Client11 nclient C1 C3 nom Dupont Martin Client12 nclient C1 C3 ville Paris Paris Client21 nclient C2 C4
Lyon Lille
FRAGMENTATION CORRECTE
Si R=(A1,,Ak) est la table globale initiale, la fragmentation est dite correcte si elle est : Complte
chaque lment de R doit se trouver dans un fragment
Reconstructible
on doit pouvoir recomposer R partir de ses fragments
Disjointe
chaque lment de R (hormis les cls) ne doit pas tre dupliqu
MIF37
Client
Cde nom Dupont Martin Martin Smith ville Paris Lyon Paris Lille ncde nclient C1 C1 C2 C4 produit P1 P2 P3 P4 qt
EXERCICE
nclient C1 C2 C3 C4
D1 D2 D3 D4
10 20 5 10
10 20
5 10
MIF37
Paris Lyon Paris Lille
MTHODOLOGIES
Stratgie de fragmentation
En fonction des hypothses :
Informations sur les contraintes de placement
MIF37
avec : zoneC {Nord, Est, Sud , Ouest} Sites gographiques : Paris, Lyon, Marseille, Bordeaux Hypothses
H1 : Paris gre les centres du nord de la France, Lyon les centres de la zone Est, Marseille les centres de zone sud et Bordeaux les centres de la zone Ouest. H2 : Chaque centre gre ses tudiants H3 : Les vacataires dlivrent des formations dans tous les centres H4 : Les informations sur les formations sont gres Paris, hormis les MIF37 informations lies au cot et la rentabilit qui sont stockes Lyon
CentreParis = CentreLyon
zoneC = Nord(Centre)
zoneC = Est(Centre)
CentreMarseille = CentreBordeaux
zoneC = Sud(Centre)
zoneC =
Ouest(Centre)
MIF37
H2 : Chaque centre gre ses tudiants FRAGMENTATION HORIZONTALE de ETUDIANT DERIVEE de CENTRE
numC
CentreParis CentreLyon
numC
numC
CentreMarseille CentreBordeaux
MIF37
numC
REPLICATION de VACATAIRE
MIF37
numC, numF, nomF, nbHeure, numV (Formation) FormationLyon = numC, numF, coutF, rentabilitF(Formation) FormationMarseille = FormationBordeaux =
FormationParis =
MIF37
EXEMPLE DE FRAGMENTATION
Requtes les plus souvent formules
(MTHODO2)
R1 : SELECT nomE, pnomE FROM ETUDIANT WHERE numC = 1 ; R2 : SELECT pnomE FROM ETUDIANT WHERE nomE LIKE '%R%' ; R3 : SELECT numE FROM ETUDIANT WHERE pnomE = "Jean" AND numC = 2 ;
Solution
On pose : A : numC = 1 B : nomE LIKE '%R%' C : pnomE = "Jean" D : numC = 2 : A Expression des clauses where des requtes en fonction de A,B,C et D : C1 : A C2 : B C3 : C D = C A
MIF37
1) Expression en fonction de A, B, C 2) 3) 4) 5) 6) 7) 8)
A B (C A) = AB A B (C A) = A B A B C A B C A B C A B C
6 fragments horizontaux
MIF37
F4 : A B C
numE nomE pnomE numC
F2 : A B
numE 1 3 4 nomE DUPONT DUBOIS DUBALAI pnomE Jean Robert Aline numC 1 1 1
F5 : A B C
numE 5 nomE DUGENOU pnomE Jean numC 2
F3 : A B C
numE 9 nomE DURDUR pnomE Jean numC 2
F6 : A B C
numE 2 nomE DUPOND pnomE Jeanne numC 2
Solution (suite)
On considre les projections suivantes : P1 = nomE, pnomE pour R1 P2 = pnomE pour R2 P3 = numE pour R3 Et leurs duals : ~P1 = numE, numC ~P2 = numE,nomE,numC ~P3 = nomE,pnomE,numC
MIF37
pnomE (F1) nomE (F1) numC (F1) nomE,pnomE (F2) numC (F2)
F21 = F22 =
(F3)
MIF37
P1 = nomE, pnomE EXEMPLE DE FRAGMENTATION (MTHODO2) P2 = pnomE P3 = numE ~P1 = numE, numC ~P2 = numE,nomE,numC ~P3 = nomE,pnomE,numC Solution (suite)
F41 = F42 =
F51 = F52 =
(F5)
MIF37
Rgle :
La rplication est avantageuse sil y a plus de lectures que dcritures
Avantages
Accs simplifi, plus performant pour les lectures Rsistance aux pannes Paralllisme accru Evite des transferts
Inconvnients
Temps de traitement des mises jour Cohrence des donnes
MIF37
Q = Update Client
Rseau
S2
BD BD
S3
BD BD
S4
BD
MIF37
primaire)
MIF37
Diffusion
cible1 primaire cible2
Consolidation
primaire1 cible primaire2
MIF37
MIF37
PRODUITS COMMERCIAUX
Outils pour la rplication: Data Propagator Relational (DProp R) d'IBM Informix OnLine CA-OpenIngres Replicator Oracle Sybase Replication Server Multi Server Option d'Afic Technologies
MIF37
Cration de fragments
Create table Copy from
Cration de rpliques
Create materialized view
MIF37
DATABASE LINK
Cr un lien avec une table dans une BD distante CREATE DATABASE LINK <nomLien> CONNECT TO <loginUser> IDENTIFIED BY <pwdUser> USING <nomBD> Exemple de commande excute sur la base orapeda2 pour crer un lien avec la base orapeda1 : CREATE DATABASE LINK lienora2versora1 CONNECT TO M1IFxxx IDENTIFIEDBY M1IFxx USING orapeda1;
MIF37
CREATE MATERIALIZED VIEW <nomRpl> REFRESH [on commit | on demand | start with next ] [ complete | fast | force ] AS ( SELECT FROM WHERE );
Exemple de commande excute sur la base orapeda2 pour crer une rplique sur la base orapeda1 :
CREATE MATERIALIZED VIEW joueurs REFRESH ON COMMIT FAST AS (Select nujoueur, nom, prenom, nation, annais From joueurs@lienora2versora1);
MIF37
BIBLIOGRAPHIE
T. zsu, P. Valduriez: Principles of Distributed Database Systems. 2nd Edition, Prentice Hall, 1999; 3rd edition, forthcoming in 2008. M. Wiesmann, F. Pedone, A. Schiper, B. Kemme, and G. Alonso. Understanding replication in databases and distributed systems. In Proceedings of 20 the International Conference on Distributed Computing Systems (ICDCS'2000), pages 264--274, Taipei, Taiwan, R.O.C., April 2000. IEEE Computer Society LosAlamitos California.
MIF37
MIF37
61
MIF37
A DIMENSION HUMAINE
il est possible de connaitre et de se coordonner avec des serveurs de donnes distants
C
MIF37
G
???