Sie sind auf Seite 1von 160

Les Bases de Donnes rparties

M. Bouneffa

Ce La premire parie de ce cours est une synthse du chapitre 5 du livre Le client-Serveur

de G. et O. Gardarin (ditions Eyrolles)

Introduction et Historique
Inventes la fin des annes 70 pour lintgration des BD et des rseaux. s Projet SDD1 (1976) : grer les donnes embarques dans les bateaux de la US Navy. s Sirius (France lanc en 1977) s Ingres/Star (Berkeley 1977) s R* (IBM San Jose )
s

Introduction et Historique (2)


s

Les produits reprsentant les technologies de ces premiers projets sont :


les versions distribues de Oracle, Sybase, Ingres, etc.

Au milieu des annes 80, les projets de recherche se sont intresss aux bases de donnes htrognes (Multibase, etc.) et la fdration de bases de donnes existantes.

Quest-ce quune BDR?


s

Dfinition :

Une BDR est un ensemble de BD gres par des sites diffrents et apparaissant lutilisateur comme une base unique.

Exemple
Buveurs Commandes Bordeaux VINS PRODUCTEURS PRODUIT Paris

Dijon VINS PRODUCTEURS PRODUIT

Schma global
Cest le schma qui permet de reprsenter lensemble des donnes de la BDR. s Ce schma nest pas forcment matrialis sur le disque. Chaque BD peut implanter une partie du schma global (appel aussi schma conceptuel de la BDR).
s

Exemple
s s s s s

BUVEURS(NB, NOM, PRENOM, VILLE) COMMANDES(NB, NV, DATE, Qt) VINS(NV, CRU, ANNEE, DEGRE) PRODUCTEURS(NP, NOM, REGION) PRODUIT(NV, NP, Qt)

Dfinitions
s

SGBD rparti ou SGBDR (Distributed DBMS ou DDBMS) Systme qui gre des collections de BD logiquement relies, distribues sur un rseau, en fournissant un mcanisme daccs qui rend la rpartition transparente aux utilisateurs.

Dfinitions (2)
Client de SGBDR (DDBMS Client) Application qui accde aux informations distribues par les interfaces du S.G.B.D.R. s Serveur de SGBDR (DDBMS server) SGBD grant une base de donnes locale intgre dans une BDR.
s

Dfinitions (3)
Nud ou site du SGBR (DDBMS node) Calculateur dans le rseau participant la gestion dune BDR.
s

Un nud ou site peut tre la fois serveur ou client.

En rsum
Un SGBDR est un ensemble de logiciels systmes grant des donnes rparties sur un ensemble de sites, intgrant des modules clients et des modules serveurs. s Clients et serveurs collaborent par des mdiateurs spcifiques.
s

Exemple
Site Paris

Site Bordeaux Site Dijon

Variantes de SGBDR
La fdration de BD locales dissmines sur diffrents sites au sein dune BDR est une forme ultime de coopration qui ncessite lintgration des bases. s Il est possible de faire cooprer des BD sans les intgrer. s Des BD capables dchanger des donnes sont dites interoprables.
s

Variantes de SGBDR (2)


s

Si un langage commun permet de les interroger sans cacher lexistence de plusieurs bases on parle de multibases.

Les BD sont alors faiblement couples, par lintermdiaire du client.

BD interoprables (Interoperable DB)


BD capables dchanger des donnes en comprenant mutuellement ce quelles reprsentent. s Les BD participantes peuvent tre de mme nature (BDR homognes) ou de natures diffrentes (BDR htrognes). s Mme nature => mme modle de donnes.
s

Multibase (Multibase)
s

Plusieurs bases de donnes htrognes capables dinteroprer avec une application via un langage commun (sans modle commun).

BD fdre (Federated Database)


s

Plusieurs bases de donnes htrognes accdes comme une seule via une vue commune (un modle commun).

Exemple de BD fdrer
Client Systme lgataire Site 1 Donnes de gestion Donnes textuelles Rseau de communication Donnes gographiques Localisation des clients Site 5 Donnes techniques
Oprations sur des produits

Site 4

Site 2 Descriptions des produits

Site 3

Avantages de lintgration de BD
prendre en compte la rpartition gographique des donnes s prendre en compte la distribution fonctionnelle des donnes s meilleure disponibilit des donnes en prsence de pannes s une plus grande flexibilit afin dassurer le partage des donnes htrognes et rparties
s

Avantages de lintgration de BD (2)


Des performances espres meilleures du fait de lclatement des donnes sur plusieurs bases gres par des serveurs diffrents mieux adapts s une intgration du rseau qui est cach par le SGBDR
s

Inconvnients de lintgration de BD
Complexit du SGBDR s manque dexprience dans lintgration des BD htrognes s distribution du contrle des donnes entre plusieurs site (problmes de cohrence non triviaux) s difficult du changement (intgration dun nouveau type de SGBD, etc.)
s

Ces inconvnients conduisent souvent ladoption de solution Multibase la place de BD fdre.

Objectifs des SGBDR


Multiclients / Multiserveurs s Transparence la localisation des donnes s meilleure disponibilit des donnes s autonomie locale des sites s support de lhtrognit
s

Multiclients multiserveurs
s

Le SGBR doit permettre plusieurs clients de manipuler la bdr en assurant la srialisabilit des transactions

Requtes et transactions distribues.

Requte distribue (Distributed request)


Requte mise par un client dont lexcution ncessite lexcution de N sous-requtes sur N serveurs avec N>1. s Une transaction qui met en uvre plusieurs serveurs est appele transaction distribue.
s

Client 1 RD Requte distribue Serveur 1 Serveur 2

Client 2 U1 U2 U3 transaction distribue Serveur 3

Transparence la localisation des donnes


Proprits dun SGBDR permettant dcrire des requtes avec des noms dobjets rfrencs ne contenant pas la localisation des donnes. s Simplification de lcriture des requtes s Dplacer les objets sans modifier les requtes.

Exemple
Select From Nom, Prnom BUVEURS B, VINS V, COMMANDES C Where V.CRU=VOLNAY and V.DEGRE> 12 and C.Qt > 100 and C.NV=V.NV and B.NB =C.NB and C.DATE >= 1/10/92 and B.VILLE=PARIS

Inconvnients de la transparence la localisation


Le SGBR est oblig de rechercher les bases capables de gnrer la rponse s Cette fonction est loin dtre vidente s Compromis : rfrencer les tables avec des expressions du type : <table>@<base>
s

Meilleure disponibilit
On ne dpend pas dun seul site central s Utlisation de copie (rplication), en cas de panne on peut se replier sur les copies s Assurer un mcanisme de gestion de transactions distribues pour assurer la cohrence des rplicats
s

Autonomie locale
Chaque base est indpendante et peut avoir ses propres donnes et schmas locaux s Chaque base doit connatre les donnes partages par les autres bases
s

Htrognit
Le SGBDR htrogne doit tre capable dunifier modles et langages afin de grer des bases fdres. s Utilisation dun modle pivot s Intgration de schmas :
s

Procd consistant rapprocher des schmas smantiquement diffrents afin de constituer un schma unique quivalent.

Modle unifi

Objet

Relationnel

Fichier

Organisation des schmas dun SGBDR


Vue intgre Schma global Vue intgre

Schma export / import

Schma export / import

Schma local

Schma local

Schma local, export, import


Local : Schma dcrivant les donnes dune BD par le SGBD local s Export : Schma dcrivant les donnes exportes par un site vers ses clients s Import : Schma export reu par un site client
s

Schma global et vue intgre


Schma global : il est constitu sur un site client par intgration globale des schmas imports dcrivant la BDR vue depuis ce site. s Vue intgre : Schma dcrivant dans le modle du SGBDR les donnes de la BDR accde par une application
s

Architecture de rfrence
Niveau interoprable Gestion objets intgrs
Accs objets distants

Vue intgr Schma import

Modle daccs Modle pivot

Niveau communication

Accs objets locaux Niveau local


Adaptateur local

Schma export Schma local

Modle pivot

SGBD X

Architecture de rfrence
s

3 niveaux de fonctionnalits : le niveau local : prsent dans chaque serveur, il permet dexporter les donnes selon le modle pivot du SGBDR. Le niveau communication : il permet de transmettre les sous-requtes en provenance dun site client au serveur dans le langage pivot et transmet les rsultats en conformit avec le schma export. Le niveau interoprable : il permet de formuler des requtes utilisant les vues intgres de la base; il assure la dcomposition des requtes en sous-requtes et le passage des vues intgres aux diffrents schmas imports

Les SGBDR
s

Le schma fonctionnel dun SGBDR peut tre implant par plusieurs variantes oprationnelles selon :
le choix du modle et du langage pivots le degr dhtrognit permis

3 gnrations de SGBDR
les SGBDR bass sur le modle relationnel avec des SGBD locaux relationnels les SGBDR bass sur le modle relationnel avec des SGBD locaux htrognes les SGBDR bass sur les modles objets

SGBDR de 1re gnration (1975-1982)


s s s

Systmes relationnels rpartis Le mme SGBD existe chez les clients et les serveurs Les schmas imports/exports sont grs par la mtabase du SGBD Exemples :
SDD1 (1980) Sirius Delta (1982) R* (1982) Ingres/star (1977)

SGBDR de 2me gnration (1980-1987)


s s s

Systmes fdrs construits autour du relationnel Ne sont pas centrs autour dun SGBD particulier Intgration de BD htrognes autour de SQL

Prise en compte de la diversit syntaxique Mme concept exprim par des constructeurs diffrents (relationnel dans une BD et objet dans une autre, etc.) Prise en compte de la diversit smantique Mme concept conu diffremment
problme de diffrence de structure, de terminologie ou dchelle.
s

Lintgration de schmas suppose

=>

comparaison, unification et fusion de schmas

Exemples :
Mermaid (1987) Multibase (1982) MSQL (1987) Sabrina-star (1990)

SGBDR de 3 me gnration
s s s

Bass sur le modle Objet Meilleure prise en compte de lhtrognit Les plus connus sont IRO-DB, Omega, Pegasus Problmes didentifiants globaux pour les objets Problmes doptimisation de requtes distribus, etc.

Conception dune BD rpartie


s

Conception descendante Construction du schma global puis le rpartir sur les diffrents sites
BDR

BD1

BD2

BD3

Conception ascendante intgrer des BD dj existantes


BDR BD1 BD3

BD2

Technique de fragmentation
Dfinition dun fragment : Sous-table obtenue par slection de lignes et de colonnes partir dune table globale, localise sur un site unique. s La fragmentation est utilise en conception descendante pour fragmenter une table globale en rpartissant les fragments sur les diffrents sites dune BDR. s En conception ascendante les fragments sont dj existants et il sagit de reconstruire le schma de la table globale.
s

Technique de fragmentation (2)


Une table globale peut tre fragmente de diffrentes manires : Fragmentation horizontale : Dcoupage dune table par utilisation dun prdicat permettant de slectionner les lignes appartenant chaque fragment. Fragmentation verticale : Dcoupage dune table par projections permettant de slectionner les colonnes composant chaque fragment.
s

Fragmentation horizontale
s

Adapte la rgionalisation des tables. Chaque rgion A dfinit un prdicat du type REGION=A qui dfinit le fragment associ.
Clients Paris Calais Lyon

clients Site Paris

clients Site Calais

clients Site Lyon

Fragmentation verticale
s

Adapte un dcoupage fonctionnel. Chaque fragment peut tre associe une fonction Fi grant les attributs Ai1 ... Ain. La table globale doit pouvoir tre retrouve par jointure des diffrents fragments.
numro type cot descriptif Conditionnement

Sige Usine Sige+usine

Extension de la fragmentation horizontale


s s s s

Soit R une table P1 .. Pi un ensemble de prdicats Fi(R) = RestPi (R) Les prdicats P1 ... Pi sont disjoints :
i j Pi Pj = Faux Fi(R) Fj(R) =

Les prdicats P1 ... Pi doivent former un ensemble de prdicats complet


i Pi = Vrai Fi(R) = R

Extension de la fragmentation horizontale (2)


s s

Cette dfinition correspond une fragmentation dite primaire. Il est possible de driver dune fragmentation primaire une autre fragmentation par semi-jointure avec les autres relations Une semi-jointure de S par R est une jointure de R et S suivie dune projection sur les tuples de S. Une fragmentation horizontale drive dune fragmentation primaire dune relation R est dfinie par :
Fi(S) = ProjS (S X Fi(R) ).

Exemple
Dept
deptno 1 2 3 4 nom Ventes Achats Fabrication Conditionne ment loc Calais Calais Dunkerque Dunkerque

P1 : loc=Calais P2 : loc = Dunkerque F1(dept) F2(dept)

empno 10 20 30 40 50 60

nom Pierre Paul Jacques Pedro Paolo Diego

numdep 1 1 2 3 1 2 4 1

Quelques questions complmentaires de conception de BDR

Comment fragmenter ?
s

Grain / degr de fragmentation Trop peu de fragments - faible concurrence Trop de fragments - surcot dans la reconstruction des relations Possibilits de fragmentation dune relation Horizontale - base sur des slections Verticale - base sur des projections

Placement des fragments


s

Chaque fragment sur un seul site copie unique, BD partitionne Duplication de fragments (+) performances des requtes et disponibilit (-) cot des mises jour et contrle de concurrence plus complexe Frquemment : duplication partielle

Informations utiles pour la fragmentation


s s s s s

BD : taille des relations, CI, etc. Applications : FAQ (Requtes frquentes) Sites : capacits de stockage / traitement. Rseaux et systme Les deux dernires servent essentiellement dans lallocation

Proprits de la fragmentation
s

Reconstruction
Possible avec les oprateurs de lalgbre relationnelle

Critres de fragmentation horizontale simples ou complexes Compltude Horizontale : chaque n-uplet de R est dans un fragment Verticale : chaque attribut est dans un fragment Pas de perte dinformation Similaire la normalisation

Proprits de la fragmentation (2)


s

s s

Fragments disjoints Une entit est dans un seul fragment Exemple FAQ : Restsal < 30 ( Emp) et Restsal >20 ( Emp) Fragments candidats : Restsal < 30 ( Emp) et Restsal >20
( Emp)

Non disjoint
s

Alternative / disjoint : Restsal < =20 ( Emp) et Rest


20<sal<30

( Emp) et Restsal >=30 ( Emp)

Disjoints versus non disjoints


Disjoint Bonne proprit, facilite les mises jour s Non Disjoint Forme de duplication, acclre certaines requtes
s

Comment obtenir des fragments disjoints et assurer la reconstruction ?


s s s

Gnration automatique Souvent manuelle par ladministrateur. Diffrentes mthodologies selon le type de fragmentation.

Analyse fragmentation horizontale


s s

s s

Commencer avec les conditions de slection frquentes (FAQ) Extraire des requtes les conditions de slections : A < 10, A > 5, Ville = Paris, Ville = Lyon On obtient un ensemble : C={c1, c2,...cn} des conditions lmentaires (ce).

Analyse fragmentation horizontale (2)


Construire lensemble des conjonctions de ce (cc) suivant :

s s

Simplifier chaque cc Supprimer les cc tjr fausses

Exemple

Eliminer les inutiles


s s

Conditions non satisfiables Connaissance des contraintes dintgrit, e.g; ville soit Paris, soit Lyon.
A < 10, A > 5, Ville = Paris, Ville != Lyon A < 10, A > 5, Ville != Paris, Ville = Lyon A < 10, A <= 5, Ville = Paris, Ville != Lyon A < 10, A <= 5, Ville != Paris, Ville = Lyon A >=10, A > 5, Ville = Paris, Ville != Lyon A >= 10, A > 5, Ville != Paris, Ville = Lyon

Fragments finaux
s

Regrouper les conditions sur un mme attribut

5 < A < 10, Ville = Paris 5 < A < 10, Ville = Lyon A <= 5, Ville = Paris A <= 5, Ville = Lyon A >=10, Ville = Paris A >= 10, Ville = Lyon

Proprits de la fragmentation ?
s

Compltude :
tout n-uplet t vrifie une des ce et nous avons limin seulement les cc impossibles

Disjonction :

Supposons t valide deux cc (cc1 et cc2) alors :

et donc t satisfit ci et non ci , contradiction !!

Bonnes proprits
Obtenir une partition de lensemble de nuplets telle que : s pour tout B de la partition, deux n-uplets de B aient la mme probabilit dtre accds par toute application/requte importante

Bonnes proprits : exemple


Emp( Enum, Nom, Ville,Sal, ) s FAQ : select * from Emp where Ville = Paris select * from Emp where Ville = Lyon s Ensemble vide de conditions : partition P1 = {B1} s Mauvais : certains n-uplets de B1 ont 0 chances de rpondre la premire requte, dautres non

Bonnes proprits : suite


La partition ne doit pas tre un raffinement dune autre qui est dj bonne
s

Partition P2 avec conditions : Ville = Paris et Ville = Lyon Partition P3 avec conditions : (Ville = Paris et Sal < 10000) et (Ville = Lyon et Sal >=10000) P3 nest pas minimale : il vaut mieux commencer par une minimale et distribuer plus si ncessaire.

Analyse fragmentation verticale


Emp( Enum, Nom, Ville,Sal) Emp1( Enum, Nom, Ville) Emp2( Enum,Sal) s Compltude et reconstruction Jointure sans perte dinformation s Condition suffisante : rpter la cl dans chaque fragment s Autre choix : utiliser une dpendance fonctionnelle pour la dcomposition (cf. normalisation) s Disjonction : seulement rpter la cl

Comment fragmenter verticalement ?


Utiliser le sens commun...essayer dautomatiser s Heuristiques : Clustering - rapprochement en partant dun attribut par fragment Splitting - dcomposition en partant dun fragment unique pour obtenir une partition selon laffinit des attributs

Outil : Matrice d'affinit (1)


Exemple Projet(Pnum, Pnom, Budget, Loc) A1 A2 A3 A4 q1: budget dun projet tant donn son numro q2: nom et budget de tous les projets q3 : nom des projets dune ville q4 : budget total des projets dune ville

Matrice d'utilisation

Exemple A1 A2 A3 A4 Q1 1 0 1 0 Q2 0 1 1 0 Q3 0 1 0 1 Q4 0 0 1 1
s

Matrice d'afinit : Dfinition


s

Refs( qk ), pour deux attributs (Ai, Ak) = nombre daccs faits par une excution de qk (sur le site s) Ai et Ak Accs( qk) = frquence de qk sur le site s (mesure pendant une certaine priode) Matrice daffinit

Matrice d'affinit : exemple


s s

Supposons : Refs( qk ) = 1 por tout s, k Les accs suivants (3 sites):

Acc1(q1)=15 Acc2(q1) = 20 Acc3(q1) = 10 Acc1(q2)=5 Acc2(q2) = 0 Acc3(q2) = 0 Acc1(q3)=25 Acc2(q3) = 25 Acc3(q3) = 25 Acc1(q4)= 3 Acc2(q4) = 0 Acc3(q4) = 0

Matrice d'affinit : exemple (2)

Matrice d'affinit :

Regroupement des attributs


Regroupement des attributs ayant une haute affinit. s Exemple :
s

Partitionnement
Trouver un point dans la matrice pour crer deux ensembles dattributs : AttrHaut (AH) et AttrBas (AB) s Quelle requte accde quel ensemble ?

Partitionnement - Exemple
Q = { q1, q2, q3, q4 } s AH = { A1, A3 } s AB = { A2, A4} s RH = { q1 } s RB = { q3 } s Autres = { q2, q4 }

Partitionnement (Suite)
Objectif : s Maximiser les accs un seul fragment s Minimiser les accs aux deux fragments s TotalAccs =

TotalRH =

Partitionnement (Suite)

Trouver un point dans la matrice pour crer deux ensembles dattributs AH et AB tels que : z = (TotalRH * TotalRB) TotalAutres2 est maximis
s

Partitionnement fin de l'exemple


La relation Projet est fragmente en Projet1( Num, Budget) Projet2( Num, Nom, Loc)
s

Dans lexemple (simple) la cl est dans lensemble Duplication de la cl pour garantir la reconstruction Si beaucoup dattributs alors il est peut tre ncessaire de trouver plusieurs points dans la matrice. Utiliser plutt une approche rcursive : partir de deux groups AH et AB et raffiner

dattributs considr
s s

Fragmentation hybride
s

Fragmentation horizontale suivie de verticale ou vice-versa.

Allocation
Problme doptimisation trs difficile s Minimiser cots: stockage, traitement, communication s Maximiser performances: temps de rponse, dbit du systme s Modle cot / performances s Utiliser modle simple / sens commun e.g: considrer les com. / Accs
s

Exemple
Client1 = RestVille = Paris (Client) s Client2 = Rest Ville != Paris (Client) s Commande1 = SemiJointure(Commande , Client1) s Commande2 = SemiJointure(Commande, Client2) s Allocation : @Site1 : Client1, Commande1 @Site2 : Client2, Commande2
s

Mise en Oeuvre relle de la fragmentation dans les SGBD R

Mise en oeuvre dans les SGBD


Historique : des SGBDs distribus R*, etc. Plutt exprimental Dans les SGBD commerciaux actuels Pas de fragmentation explicite au niveau du schma Assemblage = cration de vue (ou de snapshot) Distribution des donnes ? Une solution = triggers

Mise en oeuvre sous SQL


Frag. Horizontale
CREATE VIEW V1 AS SELECT Table1.cle, Table1.attr1 FROM Table1@site1 UNION SELECT Table2.cle, Table2.attr1 FROM Table2@site2

Mise en oeuvre sous SQL


Frag. Verticale AS SELECT Table1.cle, Table1.attr1, Table2.attr2 FROM Table1@site1, Table2@site2 WHERE Table1.cle=Table2.cle Remarque : lattribut de fragmentation nest pas forcment la cl primaire En frag. verticale, il faut au nanmois que ce soit une cl CREATE VIEW V1

Requtes Rparties
Les oprations prcdentes (par exemple) accdent des donnes situes sur diffrents sites. Le SGBD gre les accs distants en rpartissant la requte Excution distante de la sous requte Rcupration de donnes rsultat Assemblage local (requte en lecture)

Cas d'Oracle
Permet la distribution et la rplication Assure une bonne transparence diffrents Systme de nommage simple
niveaux

sales.france.europe.computers CREATE DATABASE LINK sales

Accs BD distante : LINK Accs table distante : schma.table@base Lien public, lien priv

svc_maint.emp@sales.france.europe.computers

Transparence
Localisation : synonymes
FOR svc_maint.emp@sales.france.europe.computers CREATE PUBLIC SYNONYM employes

Requtes et transactions Oprations internes Rplication

Caracatristiques
Autonomie des sites Gestion indpendante, upgrades localiss Scurit Les utilisateurs et leurs rles doivent tre connus sur chaque site accd Possibilit dutiliser un Security Server Encryptage Administration globale : enterprise manager

Mise en oeuvre en SQL (Insertion avec les triggers Oracle)


CREATE TRIGGER Tr1 INSTEAD OF INSERT on Table BEGIN IF :New.cle < 1000 THEN INSERT INTO Table1@site1(cle,attr1) VALUES(:New.cle,:New.attr); ELSE INSERT INTO Table2@site2(cle,attr2) VALUES (:New.cle,:New.attr); END IF; END;

Complmnts sur les triggers


Utilisables galement pour update et delete (:New et :Old) pour Suppression (:Old) Modification hors attribut de distribution (:New) Modification attribut de distribution (:New et :Old pour vrifier si bon site) Doit tre crit la main par le dba

Gestion des contraintes distribues


Types de contraintes Domaine Unicit Intgrit rfrentielle Dans un SGBD centralis, cest bien gr Dans la dfinition des tables (principalement) Le ct manuel de la distribution limite les possibilits de gestion des contraintes Utilisation de vues >> pas de contraintes

Exemples

Check / NOT NUL


Se gre par fragment Grable par fragment Globalement ? Rplication OK, Fragmentation KO Utilisation de trigger Site matre pour numrotation >> perte autonomie Pas gr en inter-bases Rplication OK, Fragmentation KO Utilisation trigger

Unicit

Intgrit Rfrentielle

Ca devient vraiment lourd grer

Liens BD (Database Links)


3 types de liens : Connected user Mode de base : mme utilisateur en local et distant Ce nest pas ncessairement le crateur du lien Current user Si lien utilis partir de procdure, identification en temps que propritaire de la procdure Fixed user Utilisateur fixe.

Exemples
CREATE DATABASE LINK ventes.suptechno.ma USING ventes; CREATE DATABASE LINK ventes.suptehno.ma CONNECT TO scott IDENTIFIED BY tiger USING ventes; CREATE DATABASE LINK ventes.suptechno.ma CONNECT TO CURRENT_USER USING ventes; Remarque : USING -> nom du service!

DB Links : complments
Visibilit : Public Pratique si utilis par un grand nombre dutilisateurs Private (dfaut) + scuris, accessible uniquement au propritaire et ses sous-programmes Global Accessible de nimporte quelle base, mais suppose une gestion centrale (directory server)

Exemples
CREATE PUBLIC DATABASE LINK ventes.suptechno.ma USING ventes; CREATE PUBLIC DATABASE LINK ventes.suptechno.ma CONNECT TO scott IDENTIFIED BY tiger USING ventes; CREATE PUBLIC DATABASE LINK ventes.suptechno.fr CONNECT TO CURRENT_USER USING ventes;

Diffrence avec priv ?

Oprations sur Liens


Fermeture
Utile si forte charge ALTER SESSION CLOSE DATABASE LINK lien; DROP DATABASE LINK lien

Suppression

Quelques infos sur les liens


Tables DBA_DB_LINKS : tous les liens ALL_DB_LINKS : tous ceux accessibles par lutilisateur USER_DB_LINKS : tous ceux qui lui appartiennent V$DBLINK : tous les liens ouverts par la transaction

Paramtrage
OPEN_LINKS : nombre de liens simultans dans une mme session (dfaut 4, 0 = pas de limite) (INIT.ORA)

Liens partags
Un lien peut tre partag par plusieurs utilisateurs Mot cl shared CREATE SHARED DATABASE LINK nomlien [CONNECT TO util IDENTIFIED BY passwd ]| [CONNECT TO CURRENT_USER] AUTHENTICATED BY schema IDENTIFIED BY passwd [USING service] Authentification pour le lien, connexion au schma distant suivant mode de connexion choisi Intrt : si beaucoup de connexions, sinon surcot (pooling) Peut tre connect vers serveur processus

Nommage global
Oracle peut utiliser le nommage global
Chaque base est identifie par un nom et un domaine. Le nom complet doit tre unique Utile avec les liens, indispensable pour la rplication

Paramtrage

GLOBAL_NAMES (INIT.ORA)

Manipuler les noms globaux


SELECT NAME,VALUE FROM V$PARAMETER WHERE NAME=db_domain ; Modifier : dans INIT.ORA SELECT * FROM GLOBAL_NAME; ALTER DATABASE RENAME GLOBAL_NAME TO nom.domain;

BD rparties 2 : la rplication

Mourad Bouneffa Master ISIDIS

Quest-ce que la rplication ?


s

Ensemble de techniques permettant la gestion de copies multiples de donnes Les copies peuvent diverger un instant donn mais doivent obligatoirement converger terme

Cas extrme : copies doivent converger

Si on dcide darrter le systme toutes les

Pourquoi rpliquer ?
s

Premier avantage : amlioration des performances.


La prsence de copies chez le client ou dans le site le plus proche rend laccs aux donnes plus rapide

Deuxime avantage : augmentation de la disponibilit des donnes :


En cas de panne dun site on peut utiliser les copies disponibles sur un autre

disponibilit = 1 - probabilit_panne Nombre-de-copies

Problmes dus la rplication


s s

Il faut assurer la convergence des copies terme Il faut assurer la transparence de gestion aux utilisateurs : Les clients doivent croire lexistence dune seule copie.
le SGBD doit assurer la diffusion des mises jour aux copies le choix de la meilleur copie lors de laccs

Les techniques de mise jour des donnes rpliques


s

On distingue deux modes de mise jour :


Mise jour synchrone Mise jour asynchrone

Mise jour synchrone


s

Mode de distribution dans lequel toutes les sous-oprations locales effectues suite une mise jour globale sont accomplies pour le compte de la mme transaction.

Mise jour synchrone (2)


Transaction t Update1

Update1

Update1 Update1

Mise jour synchrone (3)


s

Avantages :
Prise en compte immdiate des modifications Utiles pour les systmes tels que les systmes boursiers ou bancaires : modifications du court de change, etc.

Inconvnients :
Ncessit de grer des transactions multisites (compliques et coteuses)

Mise jour asynchrone


s

Mode de distribution dans lequel certaines sous-oprations locales effectues suite une mise jour globale sont accomplies dans des transactions indpendantes, en temps diffr. Les mises jour peuvent tre effectues le soir, en fin de semaine, etc.

Mise jour asynchrone (2)


s

Ce mode de mise jour convient aux applications ncessitant une cohrence lche des copies :
Mise jour du catalogue des produits Mise jour de lannuaire Etc.

Plus simples mettre en oeuvre mais ne garantit pas laccs la dernire mise jour.

Techniques de diffusion des mises jour


s s

Diffuser le rsultat ou lopration de mise jour Comment raliser la mise jour ? Utilisation de triggers (surtout en mode synchrone) Utilisation de files persistantes : mmorisation des transactions de report et excution par la suite de ces transactions par une tche de fond. Utilisation dappels priodiques (polling) : un ou plusieurs sites centralisent les mises jours et rafrachissent la bd de faon priodique (push).

Gestion des copies


s

On distingue deux techniques :


Rplication asymtrique Rplication symtrique

Rplication asymtrique : Technique de gestion de copies dans laquelle un site primaire est seul autoris mettre jour et diffuser les mises jour aux autres copies dites secondaires.
s

Rplication asymtrique
s s

Le site primaire garantit lordonnancement correct des m-a-j Ce mode correspond aux applications responsabilit centralise : diffusion du catalogue des produits par une centrale dachat Permet galement la consolidation de la BDR partir dinformations provenant de fragments

Rplication asymtrique et mode de mise jour


s

Le mode de rplication est orthogonale au mode de diffusion des m-a-j


Mode de m-a-j

Asynchrone

Synchrone

Mode de rplication Asymtrique symtrique

Rplication asymtrique synchrone Update


Copie primaire Cours-devises Toute mise jour est dabord applique la copie primaire, puis diffuse en temps rel

Cours_devises

Copies secondaires

Cours_devises

Rplication asymtrique asynchrone Toute mise jour est Update


Copie primaire Cours-devises

dabord applique la copie primaire, puis diffuse en temps diffr

Cours_devises

Copies secondaires

Cours_devises

Rplication asymtrique mobile


s

Le site primaire peut changer


par dcision de ladministrateur selon la logique de lapplication : Workflow

Assure une meilleure tolrance aux pannes s Une meilleure disponibilit et performance
s

Rplication asymtrique mobile

Commandes

Commandes

Commandes

Site saisie

Site expdition

Site facturation

Rplication asymtrique mobile

Commandes

Commandes

Commandes

Site saisie

Site expdition

Site facturation

Rplication asymtrique mobile

Commandes

Commandes

Commandes

Site saisie

Site expdition

Site facturation

Rplication symtrique
s

s s s

Technique de gestion de copies o chaque copie peut tre mise jour tout instant et assure la diffusion des mises jour aux autres copies Problmes de concurrence daccs divergence des copies Convient aux applications responsabilit distribue : suivi dune commande, gestion de clients mobiles, etc.

Convergence de copies symtriques


Les mises jour des copies risquent dtre accomplies dans un ordre diffrent de celui de leurs occurrence relle : problme de divergence de copies s Des techniques issues du domaine de gestion de la concurrence peuvent tre utilises pou pallier ce problme
s

Convergence de copies symtriques (2)


s

2 principales techniques :
Verrouillage des copies : un site doit demander des autorisations toutes les copies avant de mettre jour une copie Estampillage : horloge logique associ aux objets de la base et aux messages de mises jour. Ces techniques seront tudies en cours de gestion de la concurrence dans un environnement distribu.

Outils pratiques pour la rplication : cas d'oracle

Les vues matrialises


CREATE MATERIALIZED VIEW nommv [TABLESPACE STORAGE ] [REFRESH FAST|COMPLETE|FORCE START WITH sysdate NEXT sysdate+1 // en jours WITH PRIMARY KEY // si possible USING ROLLBACK SEGMENT ] AS SELECT

Vue simple
Rafrachissement rapide possible Repose sur cl
WITH PRIMARY KEY WITH ROW ID sous requte de type exists union

Repose sur ROW ID


Repose sur une requte adapte

Exemple
CREATE MATERIALIZED VIEW info_produit REFRESH FAST AS SELECT * FROM info_produit ip WHERE id =10 AND EXISTS (SELECT * FROM descr_produit dp WHERE) UNION

Des vues plus complexes


Pas fast refresh si contient :

DISTINCT, UNIQUE INTERSECT, MINUS, UNION ALL CONNECT BY Jointure Agrgation UNION si pas les mmes types (ou requtecomplexe)

Pour tester rafrachissement rapide


DBMS_VIEW.EXPLAIN_MVIEW(vue);

Complment sur les vues


pour que le REFRESH fonctionne il faut paramtrer Oracle en consquence
globaux Nom globaux obligatoires Utilisation dun lien en fixed user

Pour autoriser le fast refresh if faut crer un snapshot log sur la table source
CREATE SNAPSHOT LOG ON Table WITH PRIMARY KEY TABLESPACE ... STORAGE ()

Refresh grable par le biais de fonctions PL/SQL DBMS_REFRESH.REFRESH(vue);

Vues matrialises modifiables


Intrt ? ==> pour les DataWarehouses Ajouter FOR UPDATE avant le AS SELECT Rattacher un groupe de vues matrialises

Groupes de vues matrialises


Simplification de ladministration Cration du groupe :
DBMS_REPCAT.CREATE_MVIEW_REPGROUP( gname=>nomgrp, master=>base dorigine, propagation_mode=>ASYNCHRONOUS);

Ajout dans le groupe


DBMS_REPCAT.CREATE_MVIEW_REPOBJECT( gname=>nomgrp, sname=>schema, oname=>nommv, type=>SNAPSHOT, min_communication>=TRUE);

Privilges
ALTER ANY SNAPSHOT CREATE ANY SNAPSHOT DROP ANY SNAPSHOT

Plutt pour le DBA Utile car permet dutiliser les liens privs permet ajout, modif et suppr Permet gestion de vue sous-jacente au

CREATE DATABASE LINK CREATE SNAPSHOT CREATE VIEW

snapshot

Un apperu sur les SGBD du commerce


s

A la fin des annes 80 et au dbut des annes 90, la plupart des fournisseurs de SGBD avaient des projets voire des produits de versions rparties de leur SGBD et des capacit fdrer des BD (homognes et htrognes) Les diffrentes expriences faites, par les utilisateurs dans le cadre dapplications, avec ces SGBD ont montr leurs limites, en particulier dans un contexte avec mise jour Au dbut des annes 2000, les fournisseurs ne mettent plus en avant les aspects distribus.

Un apperu sur les SGBD du commerce (2)


s

Les fournisseurs ont volu vers des solutions base de rplication des bases de donnes et des moyens daccs des bases de donnes trangres A titre dillustration de cette volution, Ingres qui proposait la solution la plus lgante et la plus avance en matire de distribution a renonc cette ambition. Ingres a t acquise par CA (Computer Automation). CA ne met pas lemphase sur laspect distribu

Architecture Ingres/star

IBM DB2
Trois produits (entre autres) : DataLinks DataJoiner DataPropagator Permet DB2 d accder des donnes stockes indpendamment de DB2 Permet diffrents niveaux de contrle sur ces donnes externes : Intgrit rfrentielle. Contrle daccs Oprations de sauvegarde et de restauration coordonnes Transactionnel distribu

DataLinks :

Composants de DataLinks : Nouveau type de donnes DATALINK (URL - Uniform Resource Locator) DB2 Data Links Manager qui a deux composantes : Data Links File Manager (DLFM) et Data Links Filesystem Filter (DLFF) API DBMS/DLFM pour dialoguer avec les Data Links File Managers

IBM/DB2 Datalinks (2)

IBM/DB2 Data Joiner (3)


Permet laccs aux donnes gres par des SGBD diffrents (relationnels ou non) Supporte les fonctions : SQL DB2 Validation deux phases (XA) Procdures stockes Dfinition globale des donnes (DDL) Accs ODBC, JDBC, SQL-CLI Fonctionne en relation avec les mcanismes

IBM/DB2 DataPropagator (4)


DB2 Datapropagator assure la mise jour de bases de donnes distribues (dune source vers des cibles) Les composants de DataPropagator sont : Change Capture : dtection des changements dans la base source et stockage dans des tables intermdiaires (staging tables) Apply : prend les donnes stockes dans les tables intermdiaires et applique les changements aux bases des donnes cibles Administration : fonctions permettant de spcifier et de contrler le processus de rplication

IBM/DB2 DataPropagator (5)

Informix Virtual Table Interface


Virtual Table Interface Capacit de dfinir des mthodes daccs en complment de celles offertes par Informix Ces mthodes daccs peuvent oprer soit : sur des donnes gres par Informix sur des donnes non gres par Informix (pas de service transactionnel ni de sauvegarde/restauration fournit par Informix pour ces donnes)

Informix Virtual Table Interface (2)

Informix Enterprise Replication (2)


Architecture :

Informix Enterprise Replication (3)


Composants Fonctionnels : Configuration et contrle Capture des transactions (via le journal) Acheminement des informations Prise en compte des mises jour sur site distant (mises jour suivant une logique transactionnelle). Rsolution de conflits. Possibilits : Priorit la dernire modification en date. Stratgie dfinie par programme. Ignorance.

Oracle Transparent Gateways


Solution Transparent Gateways Permet laccs de nombreux (40?) gestionnaires de donnes Constitue de deux composants : Services htrognes (Heterogeneous Services) Service transactionnel (validation deux phases) Service SQL Traduction SQL Oracle vers SQL non Oracle Traduction de dictionnaire de donnes Service procdural (excution de procdures stockes)

Transparent Gateway SQL and Data Dictionary Translation Information : fournit aux services htrognes les informations ncessaires la tradution. Traduction des types de donnes Assure la connexion des systmes non-Oracle Plusieurs possibilits concernant la localisation du

Oracle Transparent Gateways (2)


Architecture gnrale :

Localisation du gateway

Oracle Database Replication


Notions de base : Replication Object : objet existant de
multiples exemplaires Replication Groups : regroupement logique dobjets rpliqus en vue de faciliter ladministration de la rplication Replication sites :
Master Site : contient la copie complte des objets dun groupe de rplication Snapshot Site : supporte des extraits en lecture seule dun replication

Oracle Database Replication (2)

Oracle Database Replication (3)


Multimaster Replication : Plusieurs sites, dans un mode dgal gal (peer-to-peer), grent des objets rpliqus. Utilisation :
Recouvrement en cas de dfaillance Distribution de la charge de travail

Difficult : synchronisation

Oracle Database Replication (4)


Snapshot Replication :
Snapshots en lecture seule (Read-Only Snapshots) :
Rplication complte ou partielle dune table matre . Avantages :

Les tables matre nappartiennent pas ncessairement au mme groupe de rplication


Les snapshots peuvent rsulter de la composition de plusieurs BD Excution locale de requte (allgement de la charge du site matre)

En lecture seule ou avec possibilit de mise jour de la fonction de mise jour distante (interaction avec le site dtenant la base matre)

Oracle Database Replication (5)


Snapshots avec mise jour (Updateable Snapshots) : Les snapshops supportant la mise jour ne dpendent que dune seule table matre et sont mis jour (refresh) de faon incrmentale ou immdiate Les mises jour sont propages depuis le snapshot vers la base matre. Les mises jour peuvent tre rpercute vers dautres sites Les snapshots supportant la mise jour sont remis jour Avantages : Permet aux utilisateurs de consulter et de mettre jour les donnes (locale) mme en cas de dconnexion avec le site matre Rduction possible du volume de la base rplique

Sybase Replicatuion Server (1)


Composants du Sybase Replication Server

Sybase Replicatuion Server (2)


Log Transfer Manager : dtection du changement des donnes Le LTM (Log Transfer manager) est un thread qui surveille le journal de la base de donnes laquelle il est associ Le LTM traduit les modifications quil dtecte sous une forme indpendante comprhensible par le Replication Server : le LTL (Log Transfer Language) qui est une composante du RCL (Replication Control Language) Cette interface est publique (ce qui permet dimplmenter le dveloppement des composants ncessaires pour des environnements htrognes) Utilisation de files dattente de messages (MOM ou Message Oriented Middleware) pour palier lindisponibilit des systmes

Sybase Replicatuion Server (3)

Evaluation des SGBDR


Les 12+1 crires
0 - Transparence pour lutilisateur 1 - Autonomie de chaque site 2 - Absence de site privilgi 3 - Continuit de service 4 - Indpendance vis--vis de la localisation 5 - Indpendance vis--vis de la fragmentation 6 - Indpendance vis--vis de la rplication 7 - Traitement rparti des requtes 8 - Gestion rpartie des transactions 9 - Indpendance vis--vis du matriel 10 - Indpendance vis--vis du systme dexploitation 11 - Indpendance vis--vis du rseau 12 - Indpendance vis--vis du SGBD

Das könnte Ihnen auch gefallen