Vous êtes sur la page 1sur 25

Université Ibn Tofail

Faculté des Sciences


Master Big Data & Cloud
Computing 2020-2021

Bases de Données Réparties

Prof: Said TKATEK

Bases de Données Réparties

1. Définition
2. Architectures
3. Conception de BDR
4. Traitement des requêtes
5. Transaction répartie
6. Passerelles avec autres SGBD

Bases de Données Réparties 2

Page 1
Définitions
 Base de données répartie (BDR)
• Ensemble de bases localisées sur différents sites, perçues
par l'utilisateur comme une base unique
 Niveaux de schémas
• Chaque base possède son schéma local
• Le schéma de la base répartie constitue le schéma global
 Il assure la transparence à la localisation des données
 Il permet des recompositions de tables par union/jointure
 il n‟y a pas de base globale physique correspondant à ce schéma

Bases de Données Réparties


IX.‹N°› 3

Définitions

 Une base de données répartie est formée de


plusieurs bases de données visibles comme un
système unique, échangeant des données à l‟aide de
messages.
 Une telle base de données ne contient en général
pas de redondance.
 En cas de copie de données, on parle de base de
données répliquées.

Bases de Données Réparties


IX.‹N°› 4

Page 2
Fonctions d‟un SGBD réparti
application

Intég. Intég. Intég.

 Rend la répartition (ou distribution) transparente


• dictionnaire des données réparties
• traitement des requêtes réparties
• gestion de transactions réparties
• gestion de la cohérence et de la confidentialité

Bases de Données Réparties


IX.‹N°› 5

Conception des bases réparties

Site central

BDR

décomposition intégration

BD1 BD2 BD3


Site 1
Site 2 Site 3

Bases de Données Réparties


IX.‹N°› 6

Page 3
Conception de bases Réparties

Conception ascendante
• Part de l‟existant
• Intègre bases locales dans schéma
global

Conception descendante
• On part du schéma global
• On le scinde en schémas
• locaux

Bases de Données Réparties


IX.‹N°› 7

Evaluation de l'approche BDR


 Avantages
• extensibilité
• partage des données hétérogènes et réparties
• performances
• disponibilité des données
 Inconvénients
• administration complexe
• distribution du contrôle

Bases de Données Réparties


IX.‹N°› 8

Page 4
Concepts des bases de données réparties
 Base de données locale
Une base de données locale comporte un schéma géré par le
SGBD local, et, rend visible une partie de celui-ci pour la
participation à la base de données répartie règles de
correspondance avec les données locales

 Schéma global
Le schéma global permet de définir l‟ensemble de la structure de
la base. Il ignore les concepts d‟implémentation, il n‟est pas
forcément matérialisé, chaque base locale en implémente une
partie. à également nommé schéma conceptuel

Bases de Données Réparties


IX.‹N°› 9

Exemple de schéma global

 Schéma conceptuel global


Client(nclient, nom, localité)
Cde (ncde, nclient, produit, qté)
 Schéma de placement
Client= Client1@Site1 U Client1 @ Site2
Cde = Cde1 @ Site1 U Cde2 @ Site2

Bases de Données Réparties


IX.‹N°› 10

Page 5
Conception par décomposition

Table globale

fragmentation

allocation

Site 1 Site 2

Bases de Données Réparties


IX.‹N°› 11

Objectifs de la décomposition
 fragmentation
• trois types : horizontale, verticale, mixte
• performances en favorisant les accès locaux
• équilibrer la charge de travail entre les sites
(parallélisme)
 duplication (ou réplication)
• favoriser les accès locaux
• augmenter la disponibilité des données
 Conception guidée par des heuristiques

Bases de Données Réparties


IX.‹N°› 12

Page 6
Fragmentation horizontale: sélection de lignes
 Découpage d’une table en relations par Client
utilisation de prédicats permettant de
sélectionner les lignes appartenant à nclient nom localité
chaque fragment. Ce type de C1 Dupont Paris
fragmentation est adapté à la C2 Martin Lyon
régionalisation ou C3 Martin Paris
départementalisation au sein d’une C4 Smith Lille
entreprise.
Client1 (site1)
 client= client1U client2 nclient nom localité
C1 Dupont Paris
CREATE VIEW v_client C3 Martin Paris
AS SELECT numero, nom, localite
Client2 (site2)
FROM clients1@site1
nclient nom localité
UNION C2 Martin Lyon
SELECT numero, nom, localite C4 Smith Lille
FROM client2@site2;
Bases de Données Réparties
IX.‹N°› 13

Fragmentation horizontale dérivée


Cde

CREATE VIEW v_cde as …….. ncde nclient produit qté


rCde1 : select * from Cde where D1 C1 P1 10
Cde.nclient = Client1.nclient D2 C1 P2 20
Union D3 C2 P3 5
D4 C4 P4 10
Cde2 : Cde where
Cde.nclient = Client2.nclient
Reconstruction
: Cde = Cde1 U Cde2

Cde1 Cde2
ncde nclient produit qté ncde nclient produit qté
D1 C1 P1 10 D3 C2 P3 5
D2 C1 P2 20 D4 C4 P4 10

Bases de Données Réparties


IX.‹N°› 14

Page 7
Fragmentation verticale: sélectionner les colonnes

Découpage d’une table en relation par projections


permettant de sélectionner Cde les
colonnes composant chaque
ncde nclient produit qté
fragment. La table initiale doit pouvoir
être recomposée par jointure des D1 C1 P1 10
fragments. D2 C1 P2 20
D3 C2 P3 5
D4 C4 P4 10
 Fragments définis par projection
• Cde1 = Cde (ncde, nclient)
• Cde2 = Cde (ncde, produit, Cde1 Cde2
qté)
ncde nclient ncde produit qté
 Reconstruction D1 C1 P1
D1 10
• Cde = [ncde, nclient, produit, D2 P2 20
D2 C1
qté] where Cde1.ncde = D3 C2 D3 P3 5
D4 C4 D4 P4 10
Cde2.ncde
 Utile si forte affinité d'attributs
Bases de Données Réparties
IX.‹N°› 15

Allocation des fragments aux sites


 Non-dupliquée
• partitionnée : chaque fragment réside sur un seul site
 Dupliquée
• chaque fragment sur un ou plusieurs sites
• maintien de la cohérence des copies multiples
 Règle intuitive:
• si le ratio est [lectures/màj] > 1, la duplication est
avantageuse

Bases de Données Réparties


IX.‹N°› 16

Page 8
Exemple d'allocation de fragments
Client1 Client2
nclient nom localité nclient nom localité
C1 Dupont Paris C2 Martin Lyon
C3 Martin Paris C4 Smith Lille

Cde1 Cde2
ncde client produit qté ncde client produit qté
D1 C1 P1 10 D3 C2 P3 5
D2 C1 P2 20 D4 C4 P4 10

Site 1 Site 2

Bases de Données Réparties


IX.‹N°› 17

Produits
 SGBD relationnels
• Oracle, DB2, SQL Server , Sybase
 VirtualDB (Enterworks)
• basé sur GemStone, vue objet des tables
 Open Database Exchange (B2Systems)

Bases de Données Réparties


IX.‹N°› 18

Page 9
SGBD réparti hétérogène

Outils

SGBDR

Interface réseau

Interface réseau Interface réseau


Interface SGBD1 Interface SGBD2

SGBD1 SGBD2

Bases de Données Réparties


IX.‹N°› 19

Oracle/Star
 SGBD Oracle
• gestion du dictionnaire de la BDR
 SQL*Net
• transparence au réseau
• connexion client-serveur, loggin à distance automatique
• évaluation de requêtes réparties
• validation en deux étapes et réplication
 SQL*Connect : passerelle vers les bases non-Oracle

Bases de Données Réparties


IX.‹N°› 20

Page 10
Database link
 Lien à une table dans une BD distante specifié par :
• nom de lien
• nom de l'utilisateur et password
• chaîne de connexion SQL*Net (protocole réseau, nom de
site, options, etc…)
 Exemple
CREATE DATABASE LINK lien_client
CONNECT TO userx
IDENTIFIEDBY passwordx
USING chaine_conx

Bases de Données Réparties


IX.‹N°› 21

Database link
Le concept d‟indépendance à la localisation, lui, peut
être géré à l‟aide de synonymes.
CREATE SYNONYM nom_table
FOR table@nom_link;

Opérations sur liens


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

Bases de Données Réparties


IX.‹N°› 22

Page 11
Mise à jour des fragments sous Oracle
 Oracle propose d‟utiliser des triggers permettant la
propagation des mises à jour sur les fragments.
 Ces triggers se déclenchent à la place de l‟instruction de mise
à jour et décomposera la requête en sous requêtes sur les
fragments.
 Les triggers INSTEAD OF fournissent une manière
transparente de modifier des vues qui ne peuvent pas l‟être
par des requêtes SQL habituelles
 Le trigger doit donc fragmenter la requête et rediriger celle-ci
vers les bases locales distantes concernées par la mise à jour
en s‟appuyant sur les database link et les synonym

Bases de Données Réparties


IX.‹N°› 23

Trigger INSTEAD OF d‟insertion et suppression


CREATE TRIGGER nom_trigger_insertion
INSTEAD OF INSERT ON nom_view
BEGIN
IF :new.code <= „M‟ THEN
INSERT INTO d_tab1@site1 (numero, code) VALUES ( :new.numero, :new.code,) ;
ELSE
INSERT INTO d_tab2@site2 (numero, code,) VALUES ( :new.numero, :new.code,) ;
END IF; END;

CREATE TRIGGER nom_trigger_suppression


INSTEAD OF DELETE ON nom_view
BEGIN
IF :old.code <= „M‟ THEN
DELETE FROM d_tab1 @site1 WHERE numero := old.numero);
ELSE
DELETE FROM d_tab2 @site1 WHERE numero := old.numero);
END IF; END;
IX.‹N°›
Bases de Données Réparties 24

Page 12
Trigger INSTEAD OF de MAJ
CREATE TRIGGER nom_trigger
INSTEAD OF UPDATE ON nom_view
BEGIN
IF :new.code <= „M‟ THEN
UPDATE d_tab1 SET libelle= :new.libelle, code=:new.code, WHERE numero= :new.numero;
ELSE
UPDATE d_tab2 SET libelle= :new.libelle, code=:new.code, WHERE numero= :new.numero;
;
END IF;
END;

Bases de Données Réparties


IX.‹N°› 25

Difficultés des bases réparties


 Choix et maintien des fragments
• En fonction des besoins des applications
• Heuristiques basées sur l‟affinité d‟attributs et le
regroupement
 Disponibilité des données
• Dépend de la robustesse du protocole 2PC; implique une
grande fiabilité du réseau et des participants
 Echelle
• Le nombre de sessions simultanées est limité par
l‟architecture 2-tiers; grande échelle nécessite un moniteur
transactionnel

Bases de Données Réparties


IX.‹N°› 26

Page 13
Fonctionnalités d‟intégration BDR

Fonctionnalité Réponse BDR

Définition de vues intégrées Modèle relationnel – vues par


fragmentation et réplication à
partir des données locales.
Schéma global, droits d‟accès,
contraintes d‟intégrité simples
Langage de manipulation de Requêtes SQL de sélection et de
données mise à jour.
Transactions ACID réparties
Interfaces applicatives Idem SGBD

Bases de Données Réparties


IX.‹N°› 27

Le médiateur et son paramétrage : Middleware

Le dialogue entre les bases de données d‟un système réparti se fait par
échange de messages en se basant sur le modèle client – serveur. Celles-ci
peuvent donc être à tour de rôle cliente et serveur.

#SQLNET.ORA Network Configuration File :


C:\oracle\ora11g\network\admin\sqlnet.ora
NAMES.DEFAULT_DOMAIN = cpln.ch
SQLNET.AUTHENTICATION_SERVICE = (NTS)
NAMES.DIRECTORY_PATH = (TNSNAMES)

Bases de Données Réparties


IX.‹N°› 28

Page 14
Le médiateur et son paramétrage : Middleware

Paramétrage du client
.
#TNSNAMES.ORA Network Configuration File :
C:\oracle\ora92\admin\tnsnames.ora
Vincent.cpln.ch =
(DESCRIPTION =
(ADDRESS_LIST =

(ADDRESS= (PROTOCOL = TCP)( HOST= A43ORA-


14.cpln.ch)(PORT=1521)))
(CONNECT_DATA=
(SERVER = DEDICATED)
(SERVICE_NAME = dev.world)))

Bases de Données Réparties


IX.‹N°› 29

Le médiateur et son paramétrage : Middleware


Paramétrage du client
#.LISTENER.ORA Network Configuration File :
C:\oracle\ora92\network\admin\listener.ora

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP) (HOST= client.prpduit)(PORT = 1521)))
(ADDRESS_LIST = (ADDRESS= (PROTOCOL = IPC)(KEY=EXTPROC0))
)
)
)
SID_LIST_LISTENER =
(SID_LIST=
(SID_DESC=
(SID_NAME=PLSExtProc)
(ORACLE_HOME = C\oracle\ora11g)
(PROGRAM = extproc))
(SID_DESC =
(GLOBAL_DBNAME = client.world)
(ORACLE_HOME= C\oracle\ora11g)
(SID_NAME= client)))

Bases de Données Réparties


IX.‹N°› 30

Page 15
Bases de données répliquées

1. Intérêt de la réplication
2. Diffusion synchrone et asynchrone
3. Réplication asymétrique
4. Gestion des défaillances
5. Réplication symétrique
6. Conclusions

Bases de Données Réparties 31

Définitions
 Réplication ou copie de données
Ensemble de bases de données identiques, dont une appelée
copie maître permet de créer les autres appelées copies
esclaves

 Techniques de mise en cohérence

Synchrone: la mise à jour des


copies est faite dans la même
transaction

Asynchrone: la mise à jour des copies est faite


le plus tôt possible
Bases de Données Réparties
IX.‹N°› 32

Page 16
Les avantages de la réplication
 Amélioration des performances
• lecture de la copie la plus proche
• évitement du goulot d'étranglement du serveur unique
 Amélioration de la disponibilité
• lors d'une panne d'un serveur, on peut se replier sur
l'autre
• Disponibilité = 1 - probabilité_panneN
 probabilité de panne = 5% et 2 copies => disponibilité = 99.75%
 Meilleure tolérance aux pannes
• possibilité de détecter des pannes diffuses

Bases de Données Réparties


IX.‹N°› 33

Les problèmes de la réplication


 Convergence
• les copies doivent être maintenues à jour
• à un instant donné, elles peuvent être différentes
• mais elles doivent converger vers un même état cohérent
où toutes les mises à jour sont exécutées partout dans le
même ordre
 Transparence : le SGBD doit assurer
• la diffusion et la réconciliation des mises à jour
• la résistance aux défaillances

Bases de Données Réparties


IX.‹N°› 34

Page 17
Diffusion synchrone
 Une transaction met à jour toutes les copies de
toutes les données qu ‟elle modifie.
+ mise à jour en temps réel des données
- trop coûteux pour la plupart des applications
- pas de contrôle de l ‟instant de mise-à-jour

Start x1
Write (x1)
Write (x2) x2
Write (x3)
Commit x3

Bases de Données Réparties


IX.‹N°› 35

Diffusion asynchrone
 Chaque transaction met à jour une seule copie et la
mise-à-jour des autres copies est différée (dans
d‟autres transactions)
 Réplication asymétrique : toutes les transactions
mettent à jour la même copie
 Réplication symétrique : les transactions peuvent
mettre à jour des copies différentes

Bases de Données Réparties


IX.‹N°› 36

Page 18
Réplication asymétrique
• Désigner une copie comme primaire (“publisher”) ; les
transactions ne mettent à jour que cette copie
• les mises à jour de la copie primaire sont envoyées
ultérieurement aux copies secondaires (“subscribers”) dans
l‟ordre où elles ont été appliquées
T1: Start
… Write(x1) ... x2
Commit

T2 x1
.
xm
.

Tn

Bases de Données Réparties


IX.‹N°› 37

Diffusion asynchrone - asymétrique

 Collecte des mises-à-jour sur la copie primaire via :


• des triggers (Oracle)
• Le journal des images après (“log sniffing”) (SQL Server,
DB2, Tandem Non-Stop SQL, Sybase Replication Server)
 Off-line
 R/W log synchronization
 administration

Bases de Données Réparties


IX.‹N°› 38

Page 19
Differentes Réplication

IX.‹N°›
Bases de Données Réparties 39

Gestion des défaillances de site


 Défaillance d‟une copie secondaire - rien à faire
• Après reprise, appliquer les mises à jour oubliées pendant
la panne (déterminées à partir du journal)
• Si panne trop longue, il est préférable d‟obtenir une copie
neuve
 Défaillance d‟une copie primaire – idem dans les
produits

Bases de Données Réparties


IX.‹N°› 40

Page 20
Difficultés de la réplication
 Maintien du compromis performance – cohérence
• Diffusion asynchrone
 Gestion des défaillances
• Défaillances de réseau et de copies primaires mal gérées; nécessité de
solutions applicatives
 Cohérence globale
• Problèmes potentiels dans certaines configurations

Intég. Intég. Intég. Intég.

Intég. Intég. Intég.

Bases de Données Réparties


IX.‹N°› 41

Performances de la réplication symétrique

 Déconnexions
• Plus une copie est déconnectée et effectue des mises à
jour, plus il est probable qu‟une réconciliation sera
nécessaire
 Nombre de copies
• Le volume de l‟activité de propagation de mises à jour
augmente avec le nombre de copies : si chaque copie
effectue des mises à jour, l‟effet sera quadratique

Bases de Données Réparties


IX.‹N°› 42

Page 21
Vues matérialisées
Une vue matérialisée, est un segment de table dont le
contenu est actualisé périodiquement en fonction d'une
requête, sur une table locale ou distante.

L'utilisation de vues matérialisées par rapport à des tables


distantes est le moyen le plus simple de répliquer des
données entre sites.

Bases de Données Réparties


IX.‹N°› 43

Création d‟une vue matérialisée

 USER_MVIEWS et USER_MVIEW_LOGS pour les


VMs

 Réplication simple (maître-esclave, readonly)


 Snapshots
 MAJ : complète ou incrémentale
 Snapshots complexes : plusieurs tables, pas de MAJI
 Réplication avancée (multi maîtres, rw)

Bases de Données Réparties


IX.‹N°› 44

Page 22
Création d‟une vue matérialisée

CREATE MATERIALIZED VIEW nommv


REFRESH START WITH sysdate
NEXT sysdate+1 // en jours…
WITH PRIMARY KEY // si possible …
AS
SELECT * fom tables……….

Bases de Données Réparties


IX.‹N°› 45

Création des SNAPSHOTS


Afin de répliquer les données d'une table à l'autre, Oracle
utilise le concept de SNAPSHOT ou clichés.

Un snapshot est une copie conforme d'une table située sur


une base de donnée du système distribué. Il permet de
diminuer les coûts réseau, en rendant local les données
situées à distance.

Afin d'assurer la cohérence de données, une mise à jour


régulière et automatique est effectuée à partir du site
d'origine ou MASTER.

Bases de Données Réparties


IX.‹N°› 46

Page 23
Création des SNAPSHOTS read-only
Les read-only snapshots

Ce sont les snapshots non modifiables à partir du site esclave, ils ne sont
accessibles qu'en lecture.

Création de read only snapshots :


CREA TE SNAPSHOT nom_snapshot REFRESH FAST
STAR T with SysDate
NEXT SysDate+ 7 / en jours
AS SELECT * FROM Employes@db_link;

Cette instruction crée un snapshot appelé nom_snapshot pour la table


Employes avec un système de rafraîchissement rapide qui commence au
moment courant et se reproduira chaque 7 jours.. 47
Bases de Données Réparties
IX.‹N°›

Création des SNAPSHOTS updateables


Les updateables snapshots ou snapshots de mise à jour
peuvent être directement modifiés. Dans ce cas, les données
mises à jour à leur niveau sont répliquées vers le site Master
lors du processus de rafraîchissement.

Création de updateable snapshot

CREA TE SNAPSHOT nom_snapshot REFRESH FAST


START with SysDate
NEXT SysDate+ 7
FOR update query rewrite
AS SELECT * FROM Employes@db_link;

Bases de Données Réparties


IX.‹N°› 48

Page 24
Fonctionnalités d‟intégration réplication
Fonctionnalité Réponse Réplication
Définition de vues Modèle relationnel – vues par
intégrées fragmentation horizontale et
verticale à partir des copies
primaires.
Droits d‟accès
Langage de manipulation Requêtes SQL de sélection
de données (réplication asymétrique) et de
mise à jour (réplication
symétrique).
Atomicité des mises à jour
seulement dans le mode de
diffusion synchrone
Interfaces applicatives Idem SGBD 49
Bases de Données Réparties
IX.‹N°›

Page 25