Vous êtes sur la page 1sur 70

Bases de donnes avances

Bases de donnes rparties et rpliques


Matthieu Exbrayat
Licence professionnelle Novembre 20 0

Introduction

BD distribue / rplique =

Plusieurs SGBD Plusieurs sites (ventuellement) Des donnes vues comme un tout cohrent

En gnral, vue comme une base unique Eventuellement un assemblage htrogne vace un noyau rendu cohrent

Des outils facilitant la mise en oeuvre (transparence)

BD distribue / BD rpartie

BD Distribue (ou rpartie)

Les tables du schma sont rparties sur diffrentes bases, situes sur diffrent(e)s (instances du) SGBD Une mme table peut tre clate entre les diffrents sites Plusieurs exemplaires d'une base situs sur diffrentes instances du SGBD Les exemplaires sont maintenus en cohrence, avec ventuellement un dlai Exemplaires modifiables? consultables?

BD Rplique

Objectif du cours

Dfinition des diffrents types de BD Mise en oeuvre sous Oracle

Background : PLSQL, vues matrialises, Spcificits : Database links,

Mise en oeuvre pratique (partielle) Prsentation de la rpartition /rplication dans d'autres SGBDs

!appels "dministration sous #racle $ %toc&a'e( schma( r)le

Mise en place dune BD ?


Installation

SGBD Cration de la Base de Donnes Cration dutilisateurs Cration du (des) schma(s)

Installation dun SGBD


Utilisateur

spcifi ue !
du SGBD" a#ec un ou des $roupes

propritaire

spcifi ues

%uels

composants sont ncessaires !

Ser#eur Interface

dadministration Interface dinterro$ation Utilitaires de sau#e$arde Interface rseau (tns listener sous &racle)
7

Fichiers de donnes
(rincipe

) le SGBD $*re (toutes) ses informations sous forme de donnes (relationnelles)


Donnes

utilisateurs s-st*mes

Donnes" inde+, .iste des ta/les" audit" utilisateurs,

Donnes

Ces

donnes sont places dans des fichiers


SGBD se char$e de la $estion interne de ces fichiers

.e

'

Tablespaces
Un

ta/lespace est une structure lo$i ue de stoc1a$e de donnes (rincipau+ ta/lespaces)


US23S

) Donnes utilisateurs 425( ) Donnes temporaires (calculs) S6S425 ) dictionnaire de donnes et procdures stoc1es 4&&.S ) audit" etc7 3BS ) 3oll/ac1

Tablespaces et fichiers
4a/lespace

: or$anisation lo$i ue ;ichier: or$anisation ph-si ue Un ta/lespace: 8 ou plusieurs fichiers

89

lintrieur dun tablespace


dcoupa$e

de /ase ) /loc de donnes dcoupa$e lo$i ue ) se$ments un se$ment : une ta/le (ou un cluster) si le se$ment est plein ) e+tension .e mcanisme de+tension est $r par des r*$les (taille e+tension" pourcenta$e daccroissement) Ces r*$les sont $lo/ales au ta/lespace 2lles peu#ent <tre surchar$es lors de la dfinition de la ta/le
88

Gestion des tailles de se!"ents

4a/lespace

C32>42 4>B.2S(>C2 nomts D>4>;I.2 ?," SI@2 ++5 D2;>U.4 S4&3>G2 ( IAI4I>. ++B A2C4 --B 5IA2C42A4S ii 5>C2C42A4S DD (C4IAC32>S2 EE)

4a/le

C32>42 4>B.2 ( ,77 ) S4&3>G2 ( IAI4I>. ++B A2C4 --B 5IA2C42A4S ii 5>C2C42A4S DD (C4IAC32>S2 EE)F

8=

#ration d$tilisateur
C32>42

US23 nom ID2A4I;I2D B6 passwd D2;>U.4 4>B.2S(>C2 ts1 425(&3>36 4>B.2S(>C2 ts2 %U&4> , &A , H(3&;I.2 profIF (3&;I.2:limitations

8G

%&les et pri'il(!es
pri#il*$es 3Kle

: droits deffectuer une action


) cration ta/le" cration inde+" etc7

e+emples

: ensem/le prdfini de pri#il*$es Intr<t ! >ffectation ) G3>A4


G3>A4

priv/rle H&A tableI 4& utilisateur

Suppression
32L&B2

) 32L&B2

priv/rle H&A tableI ;3&5 utilisateur

8J

%&les )!nrale"ent* ncessaires


C&AA2C4 32S&U3C2 (ermettent

de se connecter M la /ase et de $rer des donnes (cration et suppression de ta/les" dinde+" de clusters"de s uences" de #ues777)

85

Bases de donnes rparties

BD rpartie

*ourquoi rpartir +

*arce que ,a prsente un intr-t. %ites distants / localiser les acc0s aux donnes 1orte char'e / multiplier les points d2acc0s 4 sans 5 contr)le au niveau des donnes 6plateformes applications( moniteurs transactionnels7 4 avec 5 contr)le 8 ce niveau $ %9B: rparti

3omment rpartir +

Dfinition

Une base de donnes rpartie (distribue) est une base de donnes logique dont les donnes sont distribues sur plusieurs SGBD et visibles comme un tout. Les donnes sont changes par messages Si les donnes sont dupliques, on parle plutt de BD rplique

Cependant, une partie des tables est en gnral rplique

+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 dinterruption de ser#ice) .ocalisation transparente ;ra$mentation transparente Indpendance M la rplication 2+cution de re u<tes distri/ues Gestion de transactions rparties Indpendance #isQMQ#is du matriel Indpendance #isQMQ#is du S-st*me d2+ploitation Indpendance #isQMQ#is du rseau Indpendance #isQMQ#is du SGBD
80

>utonomie locale

.a BD locale est compl*te et autonome (int$rit" scurit" $estion)" elle peut #oluer indpendamment 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 rsistance au+ fautes et au+ pannes (en thorie)

2$alit entre sites

;onctionnement continu

=9

.ocalisation transparente

>cc*s uniforme au+ donnes uel ue soit leur site de stoc1a$e Des donnes (dune m<me ta/le) parpilles doi#ent <tre #ues comme un tout .es donnes rpli ues doi#ent <tre maintenues en cohrence (dlai possi/le)
=8

;ra$mentation transparente

Indpendance M la rplication

3e u<tes distri/ues

.e+cution dune re u<te peut <tre rpartie (automati uement) entre plusieurs sites (si les donnes sont rparties) .e mcanisme de transactions peut <tre rparti entre plusieurs sites (si ,) .e SGBD fonctionne sur les diffrentes plateformes utilises

4ransactions rparties

Indpendance #isQMQ#is du matriel

==

Indpendance #isQMQ#is du S2

.e SGBD fonctionne sur les diffrents S2, .e SGBD est accessi/le M tra#ers les diffrents t-pes de rseau utiliss

Indpendance #isQMQ#is du rseau

Indpendance #isQMQ#is du SGBD


.a /ase peut <tre disti/ue sur des SGBD htro$*nes 2n thorie,

=G

,uel-ues ter"es -ui'o-ues.

BD distri/ue

Un schma $lo/al .es donnes sont rparties sur plusieurs sites" accessi/les M partir du site central ou de tous les sites Cha ue site a son schma local" pas forcment inclus enti*rement dans le schma $lo/al (il - a un site central) (as de schma $lo/al" pas de site central7 >cc*s M (une partie des) donnes distantes7 2+ ) fdre : approche ascendante partielle ,
=J

BD fdre

S-st*me multiQ/ases

5ais il e+iste dautres dfinitions R

#onception de BD rpartie

&n ne met en place une BD rpartie uen cas de rel /esoin


Dmarche de conception dlicate Gestion comple+e .#olution du SI peut in#alider la solution retenue, Lolumes de donnes" sites distants" etc7 ;usions de SI
=5

Des raisons #ala/les )


BD% co""ent /a "arche


Application Schma externe Contrleur smantique SCG Requtes rparties Gestion de transactions Dictionnaire de rpartition

Requtes locales Gestion de sous-transactions SGBD

SCL Journal des modi ications S!L

=6

De -uoi a0t0on besoin ?


;aire communi uer les sites 3partir les donnes >ssurer la cohrence $lo/ale .e tout sous &racle777

=7

De -uoi a0t0on besoin ?


;aire communi uer les sites 3partir les donnes >ssurer la cohrence $lo/ale

='

#o""unication Inter0 sites

Cha ue SGBD dispose dun dmon permettant les conne+ions distantes" sur un mode client Q ser#eur

Listener (mdiateur) Nom >> doit tre unique !!! dresse !roto"ole

Cha ue SGBD dispose dune ta/le des BDs accessi/les


Cette approche permet aussi un uili/ra$e de char$e transparent,

=0

12e"ple 3 Oracle

(ermet la distri/ution et la rplication >ssure une /onne transparence M diffrents 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 ) .IAB

>cc*s ta/le distante ) schma7ta/leT/ase

.ien pu/lic" lien pri#


G9

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 ) schma7ta/leTlien
V s#cUmaint7empTsales7france7europe7computers
G8

Transparence

.a s-nta+e prcdente est lourde et peu transparente777 .ocalisation ) s-non-mes

C32>42 (UB.IC S6A&A65 emplo-es ;&3 s#cUmaint7empTsales7france7europe7computers

3e u<tes et transactions &prations internes 3plication

G=

BD% 3 ,uel-ues autres principes fonda"entau2 dans oracle

>utonomie des sites

Gestion indpendante" up$rades localiss, .es utilisateurs et leurs rKles doi#ent <tre connus sur cha ue site accd (ossi/ilit dutiliser un Securit- Ser#er 2ncr-pta$e

Scurit

>dministration $lo/ale ) enterprise mana$er


GG

De -uoi a0t0on besoin ?


;aire communi uer les sites 3partir les donnes >ssurer la cohrence $lo/ale

GJ

Deu2 approches de conception

Conception ascendante

(art de le+istant Int*$re /ases locales dans schma $lo/al

Conception descendante

&n part du schma $lo/al &n le scinde en schmas locau+

G5

Conception ascendante

Deu2 approches de conception

Distri/ution prQe+istante Acessite consolidation" uniformisation (N rconciliation smanti ue O)


Identifier les donnes sem/la/les >ccorder leurs t-pes" $rer leur cohrence, Interfacer ou adapter les SGBD, 2+ ) fusion" mise en place DW

Conception descendante

&n part de Ero (nou#elle /ase) 3echerche de performance (pas forcment de rpartition $o$raphi ue) >sseE peu fr uent

G6

Sch"as dune BD rpartie


Schma "xterne S"# Schma Conceptuel Glo&al Schma Conceptuel Local SCL# Schma !nterne Local S!L# S"% SCG SCL% S!L% SCL$ S!L$ S"$

G7

Fra!"entation des donnes

;ra$mentation horiEontale

.es tuples sont rpartis

;ra$mentation #erticale

.es tuples sont dcoups et fra$ments Acessite colonne commune (cl ou uni ue) dupli ue

G'

Fra!"entation hori6ontale

2n conception descendante

>d uation $o$raphi ue 3echerche de performance (IX&" traitements) Des donnes compara/les dans diffrentes /ases (/ ) consolidation correcte (unicit des cls" t-pes des attri/uts,)

2n conception ascendante

G0

Fra!"entation 'erticale

&n proDette la ta/le sur des attri/uts diffrents sui#ant site7 Comme fra$7 horiEontale" peut correspondre M consolidation ou recherche de perf7 .a reconstruction des tuples doit <tre possi/le (et #alide) 5<mes pro/l*mes ue f7h7
J9

Fra!7 hori6ontale dri'e

(lacer deu+ ta/les en relation de mani*re M localiser les Dointures Une des deu+ ta/les doit <tre fra$mente en fonction de lautre (semi Dointure) (lutKt en approche descendante (eut introduire des redondances

J8

Mise en prati-ue de la fra!"entation

Yistori ue ) des SGBDs distri/us


3Z" etc7 (lutKt e+primental (as de fra$mentation e+plicite au ni#eau du schma >ssem/la$e : cration de #ue (ou de snapshot) Distri/ution des donnes !

Dans les SGBD commerciau+ actuels


Une solution : tri$$ers

J=

%partition des donnes


[ [ Insertion locale
V V V Lrifier le respect des contraintes de cohrence Insrer depuis un seul site" ou
[ [ [ Depuis nSimporte le uel Sui#ant uel crit*re ! Comment !

Insertion $lo/ale

Dplacer #ers le site de destination

>cc*s transparent

V 3econstruire les ta/les


JG

%econstitution des tables


[ [ ;ra$menter permet de fa#oriser les traitements locau+ (ou la monte en char$e) Il faut toutefois pou#oir reconstituer les ta/les $lo/ales

JJ

Mise en 8u're sous S,4 ) sse"bla!e*

;ra$7 YoriEontale

C32>42 LI2W L8 >S S2.2C4 4a/le87cle" 4a/le87attr8 ;3&5 4a/le8Tsite8 UAI&A S2.2C4 4a/le=7cle" 4a/le=7attr8 ;3&5 4a/le=Tsite=

J5

Mise en 8u're sous S,4 ) sse"bla!e*

;ra$7 Lerticale

C32>42 LI2W L8 >S S2.2C4 4a/le87cle" 4a/le87attr8" 4a/le=7attr= ;3&5 4a/le8Tsite8" 4a/le=Tsite= WY232 4a/le87cle:4a/le=7cle lattri/ut de fra$mentation nest pas forcment la cl primaire, 2n fra$7 #erticale" il faut au nanmois ue ce soit une cl
J6

3emar ue )

%e-u9te rpartie

.es oprations prcdentes (par e+emple) acc*dent M des donnes situes sur diffrents sites7 .e SGBD $*re les acc*s distants en rpartissant la re u<te

2+cution distante de la sous re u<te 3cupration de donnes rsultat >ssem/la$e local (re u<te en lecture)
J7

De -uoi a0t0on besoin ?


;aire communi uer les sites 3partir les donnes >ssurer la cohrence $lo/ale

J'

#ohrence et rpartition

Ytro$nit 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 lhtro!nit

Ytro$nit N sans pro/l*me O


S2 et rseau ) $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 dpart sous Windo]s mais port sous dautres &S) 2+ ) passerelles propritaires SGBD M SGBD
59

Ytro$nit plus dlicate


P

Gestion des contraintes distribues

4-pes de contraintes

Domaine Unicit Int$rit rfrentielle Dans la dfinition des ta/les (principalement)

Dans un SGBD centralis" cest /ien $r

.e cKt manuel de la distri/ution limite les possi/ilits de $estion des contraintes

Utilisation de #ues ^^ pas de contraintes


58

12e"ples

Chec1 X A&4 AU.

Se $*re par fra$ment Gra/le par fra$ment Glo/alement ! 3plication &B" ;ra$mentation B& Utilisation de tri$$er Site ma\tre pour numrotation ^^ perte autonomie (as $r en interQ/ases 3plication &B" ;ra$mentation B& Utilisation tri$$er

Unicit

Int$rit 3frentielle

Ca de#ient #raiment lourd M $rer,


5=

+robl("es d:unicit

Se pose notamment pour les cls Deu+ cas de fi$ure)


V Un seul site de cration
[ [ [ DDM rsoluR (ou pres ue) Il suffit dSutiliser un outil de $nration de #aleurs uni ues (s uences) (uis de distri/uer a#ec un tri$$er

Insertion M partir de plusieurs sites !

5G

Gnration de 'aleurs uni-ues


[ [ 2n local ) ue fournit oracle ! 2n rparti" ue proposeEQ#ous!

5J

#o"pl"ents
[ [ 777 sur les liens entre /ases de donnes >pporte des prcisions utiles par la suite (rplication)

55

4iens BD 3 notions a'ances

G t-pes de liens )

Connected user

5ode de /ase ) m<me utilisateur en local et distant Ce nest pas ncessairement le crateur du lien Si lien utilis M partir de procdure" identification en temps ue propritaire de la procdure Intr<t ! Utilisateur fi+e7 Intr<t !
56

Current user

;i+ed user

12e"ples

C32>42 D>4>B>S2 .IAB #entes7ulp7fr USIAG ?#entesF C32>42 D>4>B>S2 .IAB #entes7ulp7fr C&AA2C4 4& scott ID2A4I;I2D B6 ti$er USIAG ?#entesF C32>42 D>4>B>S2 .IAB #entes7ulp7fr C&AA2C4 4& CU332A4UUS23 USIAG ?#entesF 3emar ue ) USIAG Q^ nom du ser#iceR
57

4iens BD 3 notions a'ances

Lisi/ilit )
(u/lic
(rati

ue si utilis par un $rand nom/re dutilisateurs

(ri#ate
_

(dfaut)

scuris" accessi/le uni uement au propritaire et M ses sousQpro$rammes de nimporte uelle /ase" mais suppose une $estion centrale (director- ser#er)

Glo/al
>ccessi/le

5'

e2e"ples

C32>42 (UB.IC D>4>B>S2 .IAB #entes7ulp7fr USIAG ?#entesF C32>42 (UB.IC D>4>B>S2 .IAB #entes7ulp7fr C&AA2C4 4& scott ID2A4I;I2D B6 ti$er USIAG ?#entesF C32>42 (UB.IC D>4>B>S2 .IAB #entes7ulp7fr C&AA2C4 4& CU332A4UUS23 USIAG ?#entesF

Diffrence a#ec pri# !

50

Oprations sur liens

;ermeture
Utile

si forte char$e >.423 S2SSI&A C.&S2 D>4>B>S2 .IAB lienF

Suppression
D3&(

D>4>B>S2 .IAB lien

69

Infos utiles.

4a/les

DB>UDBU.IABS ) tous les liens >..UDBU.IABS ) tous ceu+ accessi/les par lutilisateur US23UDBU.IABS ) tous ceu+ ui lui appartiennent L`DB.IAB ) tous les liens ou#erts par la transaction &(2AU.IABS ) nom/re de liens simultans dans une m<me session (dfaut J" 9 : pas de limite) (IAI47&3>)

(aramtra$e

68

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#iceI >uthentification pour le lien" conne+ion au schma distant sui#ant mode de conne+ion choisi Intr<t ) si /eaucoup de conne+ions" sinon surcobt (poolin$) (eut <tre connect #ers ser#eur M processus ddis ou parta$s

6=

;otion de no""a!e !lobal

&racle peut utiliser le nomma$e $lo/al


Cha

ue /ase est identifie par un nom et un domaine7 .e nom complet doit <tre uni ue Utile a#ec les liens" indispensa/le pour la rplication

(aramtra$e
G.&B>.UA>52S

(IAI47&3>)

6G

Manipuler les no"s !lobau2

S2.2C4 A>52"L>.U2 ;3&5 L`(>3>52423 WY232 A>52:N d/Udomain OF


5odifier

) dans IAI47&3>

S2.2C4 Z ;3&5 G.&B>.UA>52F >.423 D>4>B>S2 32A>52 G.&B>.UA>52 4& nom7domainF

6J

%etour sur l:insertion

Comment #entiler les donnes insres 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 (.XS%.

(eut comporter D2C.>32 et 2CC2(4I&A777 5odification du contenu dSune ta/le >;423 X B2;&32 X IAS42>D &; IAS234 X D2.242 X U(D>42 4ri$$er : dclencheur (our contrKle (our correction X modification
66

Son traitement est dclench dans des cas prcis


&n a acc*s au+ #aleurs insres


Manipulation des donnes dans le tri!!er

4uple insr X modifi (nou#elle #aleur)


)A2W 2+emple ) )A2W7cle )&.D 2+emple ) )&.D7pri+ 2+emple ! (our un acc*s indi#iduel au+ tuples il faut prciser uSil sSa$it dSun tri$$er ;&3 2>CY 3&W
67

4uple supprim X modifi (ancienne #aleur)


Une opration peut impacter plusieurs tuples


Mise en oeu're en S,4 )Insertion et 'entilation a'ec les tri!!ers Oracle*


C32>42 43IGG23 4r8 IAS42>D &; IAS234 on 4a/le ;&32>CY 3&W B2GIA I; )Ae]7cle c 8999 4Y2A IAS234 IA4& 4a/le8Tsite8(cle"attr8) L>.U2S()Ae]7cle")Ae]7attr)F 2.S2 IAS234 IA4& 4a/le=Tsite=(cle"attr=) ()Ae]7cle")Ae]7attr)F 2AD I;F 2ADF Cr M la main par le DB>777

L>.U2S

6'

Fra!"entation 'erticale a'ec un tri!!er ?

Comment procder !

60

+our info 3 rpartition sous DB<

DB2 permet l'accs aux donnes entre bases DB2 DB2 permet l'accs des donnes provenant d'autres SGBD : Wrappers