Vous êtes sur la page 1sur 67

Bases de Donnes Rparties Concepts et Techniques

Matthieu Exbrayat ULP Strasbourg - Dcembre 2007

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

Principe fondamental
J J J J J J J J J J J J

To the user, a distributed system should look exactly like a nondistributed system. (C. Date, Introduction to Database Systems) Autonomie locale Egalit entre sites (pas de site central ) Fonctionnement continu (pas dinterruption de service) Localisation transparente Fragmentation transparente Indpendance la rplication Excution de requtes distribues Gestion de transactions rparties Indpendance vis--vis du matriel Indpendance vis--vis du Systme dExploitation Indpendance vis--vis du rseau Indpendance vis--vis du SGBD
3

Autonomie locale

La BD locale est complte et autonome (intgrit, scurit, gestion), elle peut voluer indpendamment des autres (upgrades) Un site en panne ne doit pas empcher le fonctionnement des autres sites (mais perturbations possibles) Distribution permet rsistance aux fautes et aux pannes (en thorie)
4

Egalit entre sites

Fonctionnement continu

Localisation transparente

Accs uniforme aux donnes quel que soit leur site de stockage Des donnes (dune mme table) parpilles doivent tre vues comme un tout Les donnes rpliques doivent tre maintenues en cohrence (dlai possible)

Fragmentation transparente

Indpendance la rplication

Requtes distribues

Lexcution dune requte peut tre rpartie (automatiquement) entre plusieurs sites (si les donnes sont rparties) Le mcanisme de transactions peut tre rparti entre plusieurs sites (si ) Le SGBD fonctionne sur les diffrentes plateformes utilises
6

Transactions rparties

Indpendance vis--vis du matriel

Indpendance vis--vis du SE

Le SGBD fonctionne sur les diffrents SE Le SGBD est accessible travers les diffrents types de rseau utiliss La base peut tre distibue sur des SGBD htrognes En thorie

Indpendance vis--vis du rseau

Indpendance vis--vis du SGBD


Quelques termes quivoques

BD distribue

Un schma global Les donnes sont rparties sur plusieurs sites, accessibles partir du site central ou de tous les sites Chaque site a son schma local, pas forcment inclus entirement dans le schma global (il y a un site central) Pas de schma global, pas de site central. Accs (une partie des) donnes distantes. Ex : fdre = approche ascendante partielle
8

BD fdre

Systme multi-bases

Mais il existe dautres dfinitions !

Conception de BD rpartie

On ne met en place une BD rpartie quen cas de rel besoin


Dmarche de conception dlicate Gestion complexe Lvolution du SI peut invalider la solution retenue Volumes de donnes, sites distants, etc. Fusions de SI
9

Des raisons valables :


Deux approches de conception

Conception ascendante

Part de lexistant Intgre bases locales dans schma global

Conception descendante

On part du schma global On le scinde en schmas locaux

10

Conception descendante

On part de zro (nouvelle base) Recherche de performance (pas forcment de rpartition gographique) Assez peu frquent Distribution pr-existante Ncessite consolidation, uniformisation ( rconciliation smantique )

Conception ascendante

Identifier les donnes semblables Accorder leurs types, grer leur cohrence Interfacer ou adapter les SGBD

Ex : fusion, mise en place DW


11

Schmas dune BD rpartie

Schma Externe Schma Conceptuel Global

SE1

SE2 SCG

SE3

Schma Conceptuel Local Schma Interne Local

SCL1 SIL1

SCL2 SIL2

SCL3 SIL3

12

Fragmentation des donnes

Fragmentation horizontale

Les tuples sont rpartis

Fragmentation verticale

Les tuples sont dcoups et fragments Ncessite colonne commune (cl ou unique) duplique

13

Fragmentation horizontale

En conception descendante

Adquation gographique Recherche de performance (I/O, traitements) Des donnes comparables dans diffrentes bases Pb : consolidation correcte (unicit des cls, types des attributs)

En conception ascendante

14

Fragmentation verticale

On projette la table sur des attributs diffrents suivant site. Comme frag. horizontale, peut correspondre consolidation ou recherche de perf. La reconstruction des tuples doit tre possible (et valide) Mmes problmes que f.h.
15

Frag. horizontale drive

Placer deux tables en relation de manire localiser les jointures Une des deux tables doit tre fragmente en fonction de lautre (semi jointure) Plutt en approche descendante Peut introduire des redondances
16

Mise en pratique de la fragmentation

Historique : des SGBDs distribus


R*, etc. Plutt exprimental Pas de fragmentation explicite au niveau du schma Assemblage = cration de vue (ou de snapshot) Distribution des donnes ?

Dans les SGBD commerciaux actuels


Une solution = triggers


17

Mise en uvre sous SQL (Assemblage)

Frag. Horizontale

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

18

Mise en uvre sous SQL (Assemblage)

Frag. Verticale

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

Remarque :

19

Requte rpartie

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

Gestion de lhtrognit

Htrognit sans problme

SE et rseau : gr par SGBD (si bon SGBD) Version de SGBD : niveau de SGBD le plus ancien SGBD : pb des dialectes de SQL passerelles entre SGBD Ex : ODBC (au dpart sous Windows mais port sous dautres OS) 21 Ex : passerelles propritaires SGBD SGBD

Htrognit plus dlicate


J J

BDR comment a marche


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

Requtes locales Gestion de sous-transactions SGBD

SCL Journal des modifications SIL

22

Communication Inter-sites

Chaque SGBD dispose dun dmon permettant les connexions distantes, sur un mode client serveur

Listener (mdiateur)

Chaque SGBD dispose dune table des BDs accessibles


Nom >> doit tre unique !!! Adresse Protocole

Cette approche permet aussi un quilibrage de charge transparent


23

Exemple : Oracle

Permet la distribution et la rplication Assure une bonne transparence diffrents niveaux Systme de nommage simple

sales.france.europe.computers CREATE DATABASE LINK sales svc_maint.emp@sales.france.europe.computers


24

Accs BD distante : LINK

Accs table distante : schma.table@base

Lien public, lien priv

Transparence

Localisation : synonymes

CREATE PUBLIC SYNONYM employes FOR svc_maint.emp@sales.france.europe.computers

Requtes et transactions Oprations internes Rplication


25

Caractristiques

Autonomie des sites

Gestion indpendante, upgrades localiss Les utilisateurs et leurs rles doivent tre connus sur chaque site accd Possibilit dutiliser un Security Server Encryptage
26

Scurit

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;
27

Complment sur 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

28

Gestion des contraintes distribues

Types de contraintes

Domaine Unicit Intgrit rfrentielle Dans la dfinition des tables (principalement)

Dans un SGBD centralis, cest bien gr

Le ct manuel de la distribution limite les possibilits de gestion des contraintes

Utilisation de vues >> pas de contraintes


29

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
30

Unicit

Intgrit Rfrentielle

Ca devient vraiment lourd grer

Liens BD : notions avances

3 types de liens :

Connected user

Mode de base : mme utilisateur en local et distant Ce nest pas ncessairement le crateur du lien Si lien utilis partir de procdure, identification en temps que propritaire de la procdure Intrt ? Utilisateur fixe. Intrt ?
31

Current user

Fixed user

Exemples

CREATE DATABASE LINK ventes.ulp.fr USING ventes; CREATE DATABASE LINK ventes.ulp.fr CONNECT TO scott IDENTIFIED BY tiger USING ventes; CREATE DATABASE LINK ventes.ulp.fr CONNECT TO CURRENT_USER USING ventes; Remarque : USING -> nom du service!
32

Liens BD : notions avances

Visibilit :

Public

Pratique si utilis par un grand nombre dutilisateurs + scuris, accessible uniquement au propritaire et ses sous-programmes Accessible de nimporte quelle base, mais suppose une gestion centrale (directory server)

Private (dfaut)

Global

33

exemples

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

Diffrence avec priv ?


34

Oprations sur liens

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

Suppression

DROP DATABASE LINK lien

35

Infos utiles

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 OPEN_LINKS : nombre de liens simultans dans une mme session (dfaut 4, 0 = pas de limite) 36 (INIT.ORA)

Paramtrage

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 ddis ou partags
37

Notion de 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)
38

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;


39

Bases de donnes rpliques

Ensemble de bases de donnes identiques, dont une appele copie matre permet de crer les autres appeles copies esclaves. Techniques de mise en cohrence

Synchrone: la mise jour des copies est faite dans la mme transaction Asynchrone: la mise jour des copies est faite le plus tt possible
40

Bases de donnes rpliques

Alimentation d entrept de donnes


Systme applicatif Entrept de donnes

Dissmination de donnes
Systme central

Agence 1 Agence 2

Consolidation de donnes
Systme central

Stock1 Stock 2
41

Bases de donnes rpliques

Commandes Production

Dcoupage dun processus par activit


Facturation

Accs dlocalis
Magasin Lyon Magasin Paris Magasin Bordeaux

Systmes 24h/2 4
Systme applicatif Systme de secours
42

Rplication sans conflits En vitant les mises jour multiples (rplication asymtrique)

Bases de donnes rpliques

Systme matre unique


Alimentation des entrepts de donnes Dissmination dinformation Consolidation dinformation Dcoupage dun processus par activit

Systme matre dsign en dynamique

Rplication avec rsolution des conflits Une rgle de priorit permet de rsoudre les conflits (r. symtrique)

Systmes matres multiples


Accs dlocalis Systme 24h/24

43

Bases de donnes rpliques


Matre

Copies matres multiples


Matre Matre

Copies esclaves modifiables


Copie

Matre

Copie

Configuration hybride
Matre Copie

Matre Copie

44

Rplication

Rplication simple (matre-esclave, read only)


Snapshots MAJ : complte ou incrmentale Snapshots complexes : plusieurs tables, pas de MAJI multimatre, hybride rplication objet ou groupe site et catalogue de rplication

Rplication avance (multi matres, rw)


45

Conflits daccs

Unicit, modif, suppression


Des mthodes dans les deux premiers cas pour suppr, suggre lutilisation dun flag suppr

Possession statique : une donne un seul serveur Possession dynamique : les serveurs demandent lexclusivit Possession partage : les conflits ventuels sont grs de manire asynchrone Gestion synchrone : synchro immdiate
46

Cration dune vue matrialise

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
47

Vue simple

Rafrachissement rapide possible Repose sur cl

WITH PRIMARY KEY WITH ROW ID sous requte de type exists union
48

Repose sur ROW ID

Repose sur une requte adapte


Des vues simples

CREATE MATERIALIZED VIEW info_produit REFRESH FAST AS SELECT * FROM info_produit ip WHERE id =10 AN EXISTS (SELECT * FROM descr_produit dp WHERE) UNION Cela reste rafrachissable en fast !
49

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 requte complexe) DBMS_VIEW.EXPLAIN_MVIEW(vue);
50

Pour tester rafrachissement rapide

Complments sur les V.M.

pour que le REFRESH fonctionne il faut paramtrer Oracle en consquence


Noms 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 () DBMS_REFRESH.REFRESH(vue);

Refresh grable par le biais de fonctions PL/SQL

51

Groupe de rafrachissement

DBMS_REFRESH.MAKE( name =>nomgrp, list=>, next_date=> SYSDATE, interval=> SYSDATE+ , implicit_destroy=> FALSE, rollback_seg => , push_deferred => TRUE, refresh_after_errors => FALSE);
52

DBMS_REFRESH.ADD( name=>nomgrp, list=>nomvue, lax=TRUE);

53

Vues matrialises modifiables


Intrt ? Ajouter FOR UPDATE avant le AS SELECT Rattacher un groupe de vues matrialises

54

Groupe de vues matrialises


Simplification de ladministration Dautres avantages Cration du groupe :

DBMS_REPCAT.CREATE_MVIEW_REPGROUP( gname=>nomgrp, master=>base dorigine, propagation_mode=>ASYNCHRONOUS); DBMS_REPCAT.CREATE_MVIEW_REPOBJECT( gname=>nomgrp, sname=>schema, oname=>nommv, type=>SNAPSHOT, min_communication>=TRUE);
55

Ajout dans le groupe

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 snapshot

CREATE DATABASE LINK

CREATE SNAPSHOT

CREATE VIEW

56

Vues multi tiers

On peut avoir des vues matrialises qui reposent elles mmes sur des vues matrialises Contraintes : essentiellement utilisation des cls primaires.

57

Systmes multi matres

Intrt :

quilibrage de charge Rsistance aux pannes Interoprabilit entre applications Synchrone : MAJ immdiate Asynchrone : files dattente (et derreur)
58

Cohrence ?

Mise en oeuvre

Rles

Administrateur

Ajout de sites, mise en sommeil, etc. Envoi des requtes Mise en uvre des requtes reues

Propagateur

Rcepteur

59

Structures

Liens planifis

Liens avec utilisateur fixe + planification des envois (transactions)

Purge Groupe matre


Contient les objets rpliqus Il peut y en avoir plusieurs Notion de site de dfinition Ajouts sur le site de dfinition
60

Site matres

Rsolution de conflits

Mthodes proposes par Oracle:


Plus rcente modif (timestamp) Rcriture Max et min Moyenne et somme Estampillage Priorit de groupe Priorit de site
61

Rsolution de conflit

Plus rcente modif


La plus rcente est la bonne (pas de lien entre valeurs) Suppose datage uniforme Essentiellement pour mono matre

Rcriture

62

Rsolution de conflit

Additive

On ajoute la diffrence OK pour transactions financires par ex. OK pour donne voluant vers moyenne OK avec mono matre
63

Moyenne

Abandon

Rsolution de conflit

Plus ancienne date

Utilisation limite (mono matre) Pour des donnes sy prtant Priorit suivant la valeur dune colone donne

Maximum, Minimum

Groupes prioritaires

Site prioritaire
64

Autres types de conflits

Insertion

Squences Colonne de suppression

Suppression

65

Eviter les conflits

Groupes de colonnes

On peut modifier sur deux groupes indpendants sans gnrer de conflit Granularit rglable

Site propritaire

Possession dynamique

66

Complments sur la rplication

Template de rplication

Pour simplifier rplication massive Ex : copies sur machines nomades Description des tables distribues Triggers Types dObjets
67

Rplication dautres informations

Vous aimerez peut-être aussi