Académique Documents
Professionnel Documents
Culture Documents
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
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 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
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
Conception de BD rpartie
Dmarche de conception dlicate Gestion complexe Lvolution du SI peut invalider la solution retenue Volumes de donnes, sites distants, etc. Fusions de SI
9
Conception ascendante
Conception descendante
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
SE1
SE2 SCG
SE3
SCL1 SIL1
SCL2 SIL2
SCL3 SIL3
12
Fragmentation horizontale
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
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
R*, etc. Plutt exprimental Pas de fragmentation explicite au niveau du schma Assemblage = cration de vue (ou de snapshot) Distribution des donnes ?
Frag. Horizontale
CREATE VIEW V1 AS SELECT Table1.cle, Table1.attr1 FROM Table1@site1 UNION SELECT Table2.cle, Table2.attr1 FROM Table2@site2
18
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
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
22
Communication Inter-sites
Chaque SGBD dispose dun dmon permettant les connexions distantes, sur un mode client serveur
Listener (mdiateur)
Exemple : Oracle
Permet la distribution et la rplication Assure une bonne transparence diffrents niveaux Systme de nommage simple
Transparence
Localisation : synonymes
Caractristiques
Gestion indpendante, upgrades localiss Les utilisateurs et leurs rles doivent tre connus sur chaque site accd Possibilit dutiliser un Security Server Encryptage
26
Scurit
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
Suppression (:Old) Modification hors attribut de distribution (:New) Modification attribut de distribution (:New et :Old pour vrifier si bon site)
28
Types de contraintes
Exemples
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
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
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;
Fermeture
Utile si forte charge ALTER SESSION CLOSE DATABASE LINK lien;
Suppression
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
Paramtrage
GLOBAL_NAMES (INIT.ORA)
38
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
Dissmination de donnes
Systme central
Agence 1 Agence 2
Consolidation de donnes
Systme central
Stock1 Stock 2
41
Commandes Production
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)
Alimentation des entrepts de donnes Dissmination dinformation Consolidation dinformation Dcoupage dun processus par activit
Rplication avec rsolution des conflits Une rgle de priorit permet de rsoudre les conflits (r. symtrique)
43
Matre
Copie
Configuration hybride
Matre Copie
Matre Copie
44
Rplication
Snapshots MAJ : complte ou incrmentale Snapshots complexes : plusieurs tables, pas de MAJI multimatre, hybride rplication objet ou groupe site et catalogue de rplication
45
Conflits daccs
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
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
WITH PRIMARY KEY WITH ROW ID sous requte de type exists union
48
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
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 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);
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
53
Intrt ? Ajouter FOR UPDATE avant le AS SELECT Rattacher un groupe de vues matrialises
54
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
Privilges
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 SNAPSHOT
CREATE VIEW
56
On peut avoir des vues matrialises qui reposent elles mmes sur des vues matrialises Contraintes : essentiellement utilisation des cls primaires.
57
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
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
Plus rcente modif (timestamp) Rcriture Max et min Moyenne et somme Estampillage Priorit de groupe Priorit de site
61
Rsolution de conflit
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
Utilisation limite (mono matre) Pour des donnes sy prtant Priorit suivant la valeur dune colone donne
Maximum, Minimum
Groupes prioritaires
Site prioritaire
64
Insertion
Suppression
65
Groupes de colonnes
On peut modifier sur deux groupes indpendants sans gnrer de conflit Granularit rglable
Site propritaire
Possession dynamique
66
Template de rplication
Pour simplifier rplication massive Ex : copies sur machines nomades Description des tables distribues Triggers Types dObjets
67