Bases de données avancées

-

Bases de données réparties et répliquées
Matthieu Exbrayat
Licence professionnelle Novembre 20 0

Introduction

BD distribuée / répliquée =

Plusieurs SGBD Plusieurs sites (éventuellement) Des données vues comme un tout cohérent
 

En général, vue comme une base unique Eventuellement un assemblage hétérogène vace un noyau rendu cohérent

Des outils facilitant la mise en oeuvre (transparence)

BD distribuée / BD répartie

BD Distribuée (ou répartie)

Les tables du schéma sont réparties sur différentes bases, situées sur différent(e)s (instances du) SGBD Une même table peut être éclatée entre les différents sites Plusieurs exemplaires d'une base situés sur différentes instances du SGBD Les exemplaires sont maintenus en cohérence, avec éventuellement un délai Exemplaires modifiables? consultables?

BD Répliquée

Objectif du cours  Définition des différents types de BD Mise en oeuvre sous Oracle   Background : PLSQL. … Spécificités : Database links. vues matérialisées. …   Mise en oeuvre pratique (partielle) Présentation de la répartition /réplication dans d'autres SGBDs  .

!appels "dministration sous #racle $ %toc&a'e( schéma( r)le 5 .

Mise en place d’une BD ? Installation SGBD Création de la Base de Données Création d’utilisateurs Création du (des) schéma(s) 6 .

Installation d’un SGBD Utilisateur spécifi ue ! du SGBD" a#ec un ou des $roupes  propriétaire spécifi ues %uels composants sont nécessaires !  Ser#eur  Interface d’administration  Interface d’interro$ation  Utilitaires de sau#e$arde  Interface réseau (tns listener sous &racle) 7 .

 Données   Ces données sont placées dans des fichiers SGBD se char$e de la $estion interne de ces fichiers  . .iste des ta/les" audit" utilisateurs.Fichiers de données  (rincipe ) le SGBD $*re (toutes) ses informations sous forme de données (relationnelles)  Données  utilisateurs s-st*mes Données" inde+.e ' .

S ) audit" etc7  3BS ) 3oll/ac1 0 .Tablespaces Un ta/lespace est une structure lo$i ue de stoc1a$e de données (rincipau+ ta/lespaces)  US23S ) Données utilisateurs  425( ) Données temporaires (calculs)  S6S425 ) dictionnaire de données et procédures stoc1ées  4&&.

Tablespaces et fichiers 4a/lespace : or$anisation lo$i ue .ichier: or$anisation ph-si ue Un ta/lespace: 8 ou plusieurs fichiers 89 .

l’intérieur d’un tablespace  découpa$e de /ase ) /loc de données  découpa$e lo$i ue ) se$ments  un se$ment : une ta/le (ou un cluster)  si le se$ment est plein ) e+tension  .e mécanisme d’e+tension est $éré par des r*$les (taille e+tension" pourcenta$e d’accroissement)  Ces r*$les sont $lo/ales au ta/lespace  2lles peu#ent <tre surchar$ées lors de la définition de la ta/le 88 .

2 ( .>U.2 ?.I.4 S4&3>G2 ( IAI4I>. ++B A2C4 --B 5IA2C42A4S ii 5>C2C42A4S DD (C4IAC32>S2 EE)F 8= .’" SI@2 ++5 D2. ++B A2C4 --B 5IA2C42A4S ii 5>C2C42A4S DD (C4IAC32>S2 EE)  4a/le  C32>42 4>B.Gestion des tailles de se!"ents  4a/lespace  C32>42 4>B.2S(>C2 nomts D>4>.77 ) S4&3>G2 ( IAI4I>.

2 profIF (3&.#réation d’$tilisateur C32>42 US23 nom ID2A4I.4 4>B.2S(>C2 ts2 %U&4> . H(3&.2S(>C2 ts1 425(&3>36 4>B.I2D B6 passwd D2.2:limitations 8G .I.I.>U. &A .

3&5 utilisateur 8J .%&les et pri'il(!es  pri#il*$es  3Kle : droits d’effectuer une action ) création ta/le" création inde+" etc7  e+emples : ensem/le prédéfini de pri#il*$es  Intér<t !  >ffectation ) G3>A4  G3>A4 priv/rôle H&A tableI 4& utilisateur  Suppression  32L&B2 ) 32L&B2 priv/rôle H&A tableI .

%&les )!énérale"ent* nécessaires C&AA2C4 32S&U3C2 (ermettent de se connecter M la /ase et de $érer des données (création et suppression de ta/les" d’inde+" de clusters"de sé uences" de #ues777) 85 .

Bases de données réparties .

%ites distants / localiser les acc0s aux données 1orte char'e / multiplier les points d2acc0s 4 sans 5 contr)le au niveau des données 6plateformes applications( moniteurs transactionnels7 4 avec 5 contr)le 8 ce niveau $ %9B: réparti  3omment répartir +   .a présente un intér-t.BD répartie  *ourquoi répartir +    *arce que .

Définition

Une base de données répartie (distribuée) est une base de données logique dont les données sont distribuées sur plusieurs SGBD et visibles comme un tout. Les données sont échangées par messages Si les données sont dupliquées, on parle plutôt de BD répliquée

Cependant, une partie des tables est en général répliquée

+rincipe fonda"ental
  P P P P P P P P P P P

N 4o the user" a distri/uted s-stem should loo1 e+actl- li1e a nondistri/uted s-stem7 O (C7 Date" Introduction to Data/ase S-stems) >utonomie locale 2$alité entre sites (pas de site N central O) ;onctionnement continu (pas d’interruption de ser#ice) .ocalisation transparente ;ra$mentation transparente Indépendance M la réplication 2+écution de re u<tes distri/uées Gestion de transactions réparties Indépendance #isQMQ#is du matériel Indépendance #isQMQ#is du S-st*me d’2+ploitation Indépendance #isQMQ#is du réseau Indépendance #isQMQ#is du SGBD
80

>utonomie locale

.a BD locale est compl*te et autonome (inté$rité" sécurité" $estion)" elle peut é#oluer indépendamment des autres (up$rades,) Un site en panne ne doit pas emp<cher le fonctionnement des autres sites (mais pertur/ations possi/les) Distri/ution permet résistance au+ fautes et au+ pannes (en théorie)

2$alité entre sites

;onctionnement continu

=9

ra$mentation transparente   Indépendance M la réplication  .es données répli uées doi#ent <tre maintenues en cohérence (délai possi/le) =8  . .ocalisation transparente  >cc*s uniforme au+ données uel ue soit leur site de stoc1a$e Des données (d’une m<me ta/le) éparpillées doi#ent <tre #ues comme un tout .

) .e mécanisme de transactions peut <tre réparti entre plusieurs sites (si .e SGBD fonctionne sur les différentes plateformes utilisées  4ransactions réparties   Indépendance #isQMQ#is du matériel  == . 3e u<tes distri/uées  .’e+écution d’une re u<te peut <tre répartie (automati uement) entre plusieurs sites (si les données sont réparties) .

e SGBD fonctionne sur les différents S2.a /ase peut <tre disti/uée sur des SGBD hétéro$*nes  2n théorie. Indépendance #isQMQ#is du S2  .  =G . .e SGBD est accessi/le M tra#ers les différents t-pes de réseau utilisés  Indépendance #isQMQ#is du réseau   Indépendance #isQMQ#is du SGBD .

uel-ues ter"es é-ui'o-ues..a un site central) (as de schéma $lo/al" pas de site central7 >cc*s M (une partie des) données distantes7 2+ ) fédérée : approche ascendante partielle .es données sont réparties sur plusieurs sites" accessi/les M partir du site central ou de tous les sites Cha ue site a son schéma local" pas forcément inclus enti*rement dans le schéma $lo/al (il .  BD distri/uée   Un schéma $lo/al . =J  BD fédérée   S-st*me multiQ/ases   5ais il e+iste d’autres définitions R  .

Lolumes de données" sites distants" etc7 .#onception de BD répartie  &n ne met en place une BD répartie u’en cas de réel /esoin    Démarche de conception délicate Gestion comple+e .’é#olution du SI peut in#alider la solution retenue.usions de SI =5  Des raisons #ala/les )   .

BD% co""ent /a "arche Application Schéma externe Contrôleur sémantique SCG Requêtes réparties Gestion de transactions Dictionnaire de répartition Requêtes locales Gestion de sous-transactions SGBD SCL Journal des modi ications S!L =6 .

De -uoi a0t0on besoin ?    .e tout sous &racle777  =7 .aire communi uer les sites 3épartir les données >ssurer la cohérence $lo/ale .

De -uoi a0t0on besoin ?    .aire communi uer les sites 3épartir les données >ssurer la cohérence $lo/ale =' .

#o""unication Inter0 sites  Cha ue SGBD dispose d’un démon permettant les conne+ions distantes" sur un mode client Q ser#eur  Listener (médiateur) Nom >> doit être unique !!! dresse !roto"ole  Cha ue SGBD dispose d’une ta/le des BDs accessi/les     Cette approche permet aussi un é uili/ra$e de char$e transparent. =0 .

ien pu/lic" lien pri#é G9 .IAB  >cc*s ta/le distante ) schéma7ta/leT/ase  .12e"ple 3 Oracle       (ermet la distri/ution et la réplication >ssure une /onne transparence M différents ni#eau+ S-st*me de nomma$e simple  sales7france7europe7computers C32>42 D>4>B>S2 .IAB sales USIAG SsalesS s#cUmaint7empTsales7france7europe7computers >cc*s BD distante ) .

ien : canal de discussion entre deu+ /ases S-nta+e V C32>42 D>4>B>S2 .IAB sales USIAG SsalesS Il correspond M une /ase connue (e7$7 dans le tnsnames7ora) Il porte le m<me nom ue cette /ase Il est mono directionnel Il peut <tre pu/lic ou pri#é CSest un o/Det de la /ase (persistant) Identité de lSutilisateur ! >cc*s ta/le distante ) schéma7ta/leTlien V s#cUmaint7empTsales7france7europe7computers G8 .Database 4in5          .

&3 s#cUmaint7empTsales7france7europe7computers    3e u<tes et transactions &pérations internes 3éplication G= .IC S6A&A65 emplo-es .a s-nta+e précédente est lourde et peu transparente777 .Transparence   .ocalisation ) s-non-mes  C32>42 (UB.

Ser#er 2ncr-pta$e  Sécurité     >dministration $lo/ale ) enterprise mana$er GG .es utilisateurs et leurs rKles doi#ent <tre connus sur cha ue site accédé (ossi/ilité d’utiliser un Securit.BD% 3 . .uel-ues autres principes fonda"entau2 dans oracle  >utonomie des sites  Gestion indépendante" up$rades localisés.

De -uoi a0t0on besoin ?    .aire communi uer les sites 3épartir les données >ssurer la cohérence $lo/ale GJ .

Deu2 approches de conception  Conception ascendante   (art de l’e+istant Int*$re /ases locales dans schéma $lo/al  Conception descendante   &n part du schéma $lo/al &n le scinde en schémas locau+ G5 .

2+ ) fusion" mise en place DW  Conception descendante    &n part de Eéro (nou#elle /ase) 3echerche de performance (pas forcément de répartition $éo$raphi ue) >sseE peu fré uent G6 . Interfacer ou adapter les SGBD. Conception ascendante   Deu2 approches de conception Distri/ution préQe+istante Aécessite consolidation" uniformisation (N réconciliation sémanti ue O)     Identifier les données sem/la/les >ccorder leurs t-pes" $érer leur cohérence.

Sché"as d’une BD répartie Schéma "xterne S"# Schéma Conceptuel Glo&al Schéma Conceptuel Local SCL# Schéma !nterne Local S!L# S"% SCG SCL% S!L% SCL$ S!L$ S"$ G7 .

Fra!"entation des données  .ra$mentation horiEontale  .ra$mentation #erticale   .es tuples sont répartis  .es tuples sont découpés et fra$mentés Aécessite colonne commune (clé ou uni ue) dupli uée G' .

Fra!"entation hori6ontale  2n conception descendante   >dé uation $éo$raphi ue 3echerche de performance (IX&" traitements) Des données compara/les dans différentes /ases (/ ) consolidation correcte (unicité des clés" t-pes des attri/uts.)  2n conception ascendante   G0 .

Fra!"entation 'erticale     &n proDette la ta/le sur des attri/uts différents sui#ant site7 Comme fra$7 horiEontale" peut correspondre M consolidation ou recherche de perf7 .a reconstruction des tuples doit <tre possi/le (et #alidée) 5<mes pro/l*mes ue f7h7 J9 .

Fra!7 hori6ontale déri'ée     (lacer deu+ ta/les en relation de mani*re M localiser les Dointures Une des deu+ ta/les doit <tre fra$mentée en fonction de l’autre (semi Dointure) (lutKt en approche descendante (eut introduire des redondances J8 .

Mise en prati-ue de la fra!"entation  Yistori ue ) des SGBDs distri/ués   3Z" etc7 (lutKt e+périmental (as de fra$mentation e+plicite au ni#eau du schéma >ssem/la$e : création de #ue (ou de snapshot) Distri/ution des données !   Dans les SGBD commerciau+ actuels    Une solution : tri$$ers J= .

%épartition des données [ [ Insertion locale V V V Lérifier le respect des contraintes de cohérence Insérer depuis un seul site" ou [ [ [ Depuis nSimporte le uel Sui#ant uel crit*re ! Comment ! Insertion $lo/ale Déplacer #ers le site de destination [ >cc*s transparent V 3econstruire les ta/les JG .

ra$menter permet de fa#oriser les traitements locau+ (ou la montée en char$e) Il faut toutefois pou#oir reconstituer les ta/les $lo/ales JJ .%econstitution des tables [ [ .

3&5 4a/le=Tsite= J5 .2C4 4a/le=7cle" 4a/le=7attr8 .Mise en 8u're sous S.2C4 4a/le87cle" 4a/le87attr8 .3&5 4a/le8Tsite8 UAI&A S2.ra$7 YoriEontale  C32>42 LI2W L8 >S S2.4 ) sse"bla!e*  .

Mise en 8u're sous S.ra$7 Lerticale  C32>42 LI2W L8 >S S2.3&5 4a/le8Tsite8" 4a/le=Tsite= WY232 4a/le87cle:4a/le=7cle l’attri/ut de fra$mentation n’est pas forcément la clé primaire.4 ) sse"bla!e*  . 2n fra$7 #erticale" il faut au néanmois ue ce soit une clé J6  3emar ue )   .2C4 4a/le87cle" 4a/le87attr8" 4a/le=7attr= .

es opérations précédentes (par e+emple) acc*dent M des données situées sur différents sites7 .%e-u9te répartie   .e SGBD $*re les acc*s distants en répartissant la re u<te    2+écution distante de la sous re u<te 3écupération de données résultat >ssem/la$e local (re u<te en lecture) J7 .

De -uoi a0t0on besoin ?    .aire communi uer les sites 3épartir les données >ssurer la cohérence $lo/ale J' .

#ohérence et répartition  Yétéro$énéité Contraintes V (eut appara\tre M plusieurs ni#eau+ V (lus comple+e uSen mono site" surtout uand la contrainte impli ue plusieurs fra$ments777  J0 .

passerelles entre SGBD 2+ ) &DBC (au départ sous Windo]s mais porté sous d’autres &S) 2+ ) passerelles propriétaires SGBD M SGBD 59  Yétéro$énéité plus délicate   P P .Gestion de l’hétéro!énéité  Yétéro$énéité N sans pro/l*me O   S2 et réseau ) $éré par SGBD (si N /on O SGBD) Lersion de SGBD ) ni#eau de SGBD le plus ancien SGBD ) p/ des dialectes de S%.

Gestion des contraintes distribuées  4-pes de contraintes    Domaine Unicité Inté$rité référentielle Dans la définition des ta/les (principalement)  Dans un SGBD centralisé" c’est /ien $éré   .e cKté manuel de la distri/ution limite les possi/ilités de $estion des contraintes  Utilisation de #ues ^^ pas de contraintes 58 .

12e"ples   Chec1 X A&4 AU. 5= .ra$mentation B& Utilisation tri$$er Unicité      Inté$rité 3éférentielle     Ca de#ient #raiment lourd M $érer.  Se $*re par fra$ment Géra/le par fra$ment Glo/alement ! 3éplication &B" .ra$mentation B& Utilisation de tri$$er Site ma\tre pour numérotation ^^ perte autonomie (as $éré en interQ/ases 3éplication &B" .

+robl("es d:unicité   Se pose notamment pour les clés Deu+ cas de fi$ure) V Un seul site de création [ [ [ DéDM résoluR (ou pres ue) Il suffit dSutiliser un outil de $énération de #aleurs uni ues (sé uences) (uis de distri/uer a#ec un tri$$er V Insertion M partir de plusieurs sites ! 5G .

Génération de 'aleurs uni-ues [ [ 2n local ) ue fournit oracle ! 2n réparti" ue proposeEQ#ous! 5J .

#o"plé"ents [ [ 777 sur les liens entre /ases de données >pporte des précisions utiles par la suite (réplication) 55 .

4iens BD 3 notions a'ancées  G t-pes de liens )  Connected user   5ode de /ase ) m<me utilisateur en local et distant Ce n’est pas nécessairement le créateur du lien Si lien utilisé M partir de procédure" identification en temps ue propriétaire de la procédure Intér<t ! Utilisateur fi+e7 Intér<t ! 56  Current user    .i+ed user   .

I2D B6 ti$er USIAG ?#entes’F C32>42 D>4>B>S2 .IAB #entes7ulp7fr C&AA2C4 4& CU332A4UUS23 USIAG ?#entes’F 3emar ue ) USIAG Q^ nom du ser#iceR 57 .IAB #entes7ulp7fr USIAG ?#entes’F C32>42 D>4>B>S2 .IAB #entes7ulp7fr C&AA2C4 4& scott ID2A4I.12e"ples     C32>42 D>4>B>S2 .

ser#er)  Glo/al  >ccessi/le 5' .4iens BD 3 notions a'ancées  Lisi/ilité )  (u/lic  (rati ue si utilisé par un $rand nom/re d’utilisateurs  (ri#ate _ (défaut) sécurisé" accessi/le uni uement au propriétaire et M ses sousQpro$rammes de n’importe uelle /ase" mais suppose une $estion centrale (director.

IC D>4>B>S2 .IC D>4>B>S2 .I2D B6 ti$er USIAG ?#entes’F C32>42 (UB.IAB #entes7ulp7fr C&AA2C4 4& CU332A4UUS23 USIAG ?#entes’F  Différence a#ec pri#é ! 50 .IAB #entes7ulp7fr C&AA2C4 4& scott ID2A4I.IC D>4>B>S2 .e2e"ples    C32>42 (UB.IAB #entes7ulp7fr USIAG ?#entes’F C32>42 (UB.

Opérations sur liens  .IAB lienF  Suppression  D3&( D>4>B>S2 .IAB lien 69 .&S2 D>4>B>S2 .ermeture  Utile si forte char$e  >.423 S2SSI&A C.

IAB ) tous les liens ou#erts par la transaction &(2AU.  4a/les     DB>UDBU.UDBU.IABS ) nom/re de liens simultanés dans une m<me session (défaut J" 9 : pas de limite) (IAI47&3>)  (aramétra$e   68 ..Infos utiles.IABS ) tous les liens >.IABS ) tous ceu+ accessi/les par l’utilisateur US23UDBU.IABS ) tous ceu+ ui lui appartiennent L`DB.

4iens parta!és       Un lien peut <tre parta$é par plusieurs utilisateurs 5ot clé N shared O CREATE SHARED DATABASE LINK nomlien HC&AA2C4 4& util ID2A4I.I2D B6 pass]d Ia HC&AA2C4 4& CU332A4UUS23I AUTHENTICATED BY schema IDENTIFIED BY passwd HUSIAG ?ser#ice’I >uthentification pour le lien" conne+ion au schéma distant sui#ant mode de conne+ion choisi Intér<t ) si /eaucoup de conne+ions" sinon surcobt (poolin$) (eut <tre connecté #ers ser#eur M processus dédiés ou parta$és 6= .

otion de no""a!e !lobal  &racle peut utiliser le nomma$e $lo/al  Cha ue /ase est identifiée par un nom et un domaine7 .&B>.UA>52S (IAI47&3>) 6G ..e nom complet doit <tre uni ue  Utile a#ec les liens" indispensa/le pour la réplication  (aramétra$e  G.

U2 .423 D>4>B>S2 32A>52 G.2C4 A>52"L>.&B>.2C4 Z .UA>52 4& nom7domainF  6J .3&5 G.&B>.UA>52F  >.3&5 L`(>3>52423 WY232 A>52:N d/Udomain OF  5odifier ) dans IAI47&3> S2.Manipuler les no"s !lobau2  S2.

%etour sur l:insertion  Comment #entiler les données insérées sur un site   Site insertion R: site de stoc1a$e (fra$ment) &n dispose dSun crit*re e+plicite (automati ue) de choi+ du fra$ment &n met en place un traitement automati ue   tri$$er 65 .

Tri!!er  Bloc de code (.&32 X IAS42>D &.242 X U(D>42 4ri$$er : déclencheur (our contrKle (our correction X modification 66  Son traitement est déclenché dans des cas précis      &n a acc*s au+ #aleurs insérées   . IAS234 X D2.XS%.>32 et 2CC2(4I&A777 5odification du contenu dSune ta/le >.423 X B2.  (eut comporter D2C.

Manipulation des données dans le tri!!er  4uple inséré X modifié (nou#elle #aleur)   )A2W 2+emple ) )A2W7cle )&.D7pri+ 2+emple ! (our un acc*s indi#iduel au+ tuples il faut préciser uSil sSa$it dSun tri$$er .D 2+emple ) )&.&3 2>CY 3&W 67  4uple supprimé X modifié (ancienne #aleur)    Une opération peut impacter plusieurs tuples   .

IAS234 on 4a/le .&32>CY 3&W B2GIA I.U2S()Ae]7cle")Ae]7attr)F 2.F 2ADF ➔ Créé M la main par le DB>777  L>.4 )Insertion et 'entilation a'ec les tri!!ers Oracle* C32>42 43IGG23 4r8 IAS42>D &.Mise en oeu're en S. )Ae]7cle c 8999 4Y2A IAS234 IA4& 4a/le8Tsite8(cle"attr8) L>.S2 IAS234 IA4& 4a/le=Tsite=(cle"attr=) ()Ae]7cle")Ae]7attr)F 2AD I.U2S 6' .

Fra!"entation 'erticale a'ec un tri!!er ?  Comment procéder ! 60 .

+our info 3 répartition sous DB<  DB2 permet l'accès aux données entre bases DB2 DB2 permet l'accès à des données provenant d'autres SGBD : Wrappers   .

Sign up to vote on this title
UsefulNot useful