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

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

!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  .e ' . .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+.iste des ta/les" audit" utilisateurs.

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&&.S ) audit" etc7  3BS ) 3oll/ac1 0 .

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

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 .

’" SI@2 ++5 D2.>U.2 ?.2 ( . ++B A2C4 --B 5IA2C42A4S ii 5>C2C42A4S DD (C4IAC32>S2 EE)F 8= .2S(>C2 nomts D>4>.4 S4&3>G2 ( IAI4I>.I.77 ) S4&3>G2 ( IAI4I>. ++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.

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

%&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 .3&5 utilisateur 8J .

%&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 +   .BD répartie  *ourquoi répartir +    *arce que .a présente un intér-t.

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

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 . .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  .

e mécanisme de transactions peut <tre réparti entre plusieurs sites (si .’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érentes plateformes utilisées  4ransactions réparties   Indépendance #isQMQ#is du matériel  == .) . 3e u<tes distri/uées  .

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 .  =G . . Indépendance #isQMQ#is du S2  .a /ase peut <tre disti/uée sur des SGBD hétéro$*nes  2n théorie.e SGBD fonctionne sur les différents S2.

uel-ues ter"es é-ui'o-ues.  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  .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 .

Lolumes de données" sites distants" etc7 .’é#olution du SI peut in#alider la solution retenue.#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 .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 .

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

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

=0 .#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.

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

Database 4in5          .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 .

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

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

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

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 .

 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. 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.

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 .

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

)  2n conception ascendante   G0 .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.

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 [ [ .

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

2n fra$7 #erticale" il faut au néanmois ue ce soit une clé J6  3emar ue )   .Mise en 8u're sous S.2C4 4a/le87cle" 4a/le87attr8" 4a/le=7attr= .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*  .ra$7 Lerticale  C32>42 LI2W L8 >S S2.

%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 .es opérations précédentes (par e+emple) acc*dent M des données situées sur différents sites7 .

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

#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 .

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%. 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 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 .

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

+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 .

i+ed user   .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    .

12e"ples     C32>42 D>4>B>S2 .I2D B6 ti$er USIAG ?#entes’F C32>42 D>4>B>S2 .IAB #entes7ulp7fr 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 C&AA2C4 4& scott ID2A4I.

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.

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

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

IABS ) tous ceu+ ui lui appartiennent L`DB.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 .  4a/les     DB>UDBU.Infos utiles.UDBU..IABS ) tous ceu+ accessi/les par l’utilisateur US23UDBU.IABS ) tous les liens >.IAB ) tous les liens ou#erts par la transaction &(2AU.

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= .

&B>.e nom complet doit <tre uni ue  Utile a#ec les liens" indispensa/le pour la réplication  (aramétra$e  G.UA>52S (IAI47&3>) 6G ..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>.423 D>4>B>S2 32A>52 G.2C4 Z .U2 .2C4 A>52"L>.Manipuler les no"s !lobau2  S2.UA>52F  >.3&5 L`(>3>52423 WY232 A>52:N d/Udomain OF  5odifier ) dans IAI47&3> S2.3&5 G.UA>52 4& nom7domainF  6J .&B>.

%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 .

XS%.Tri!!er  Bloc de code (.  (eut comporter D2C.423 X B2.&32 X IAS42>D &. IAS234 X D2.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   .>32 et 2CC2(4I&A777 5odification du contenu dSune ta/le >.

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

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

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