01 BD Reparties
01 BD Reparties
01 BD Reparties
réparties
réparties et
fédérées
Mars 2001
René J. Chevance
chevance@cnam.fr
Contenu
Définitions
Exemple de BD répartie
Répartition des données
Répartition - Fédération
Fédération de BD
Quelques cas de conflits
Traduction des schémas
Architecture de référence
Accès aux BD multiples
API commune
FAP commun avec passerelles
FAP commun supporté par les SGBD
Niveaux de transparence
Client/Multibases :
RDA, DRDA, SQL-CLI, ODBC
Vues réparties
SGBD répartis
Quelques problèmes des BD réparties et fédérées
Partitionnement et placement des données
Quelques règles pour le partitionnement
Expédition de données et Expédition de Fonction
Recherche du partitionnement idéal
Optimisation des requêtes réparties
Réplication dans les BD
Un aperçu sur les SGBD du commerce
Un peu d’histoire : Ingres/STAR
IBM DB2, Informix, Oracle, Sybase
Évaluation des SGBD répartis
Bibliographie
Page 2
© RJ Chevance 2001
Définitions
Page 3
© RJ Chevance 2001
Pourquoi des BD réparties ou fédérées?
Réparties :
Amélioration des performances (placer les traitements à
l’endroit où se trouvent les données)
Disponibilité en raison de l’existence de plusieurs copies
Maintient d’une vision unique de la base de données
malgré la répartition
Fédération :
Donner aux utilisateurs une vue unique des données
implémentées sur plusieurs systèmes a priori
hétérogènes (plate-formes et SGBD)
Cas typique rencontré lors de la concentration
d’entreprises : faire cohabiter les différents systèmes tout
en leur permettant d’interopérer
Page 4
© RJ Chevance 2001
Exemple de BD répartie
Schéma global entité - relation
Viticulteurs
Viticulteurs
Produits
Consommateurs
Consommateurs Commandes Vins
Vins
Bordeaux Dijon
•Vins
•Vins •Vins
•Vins
•Producteurs
•Producteurs •Producteurs
•Producteurs
•Produits
•Produits •Produits
•Produits
Page 5
© RJ Chevance 2001
Répartition des données
+ Égalité des accès
a) - Cas centralisé + Facilité de gestion
ABC - Contention sur la BD
A C
ABC ABC
Page 6
© RJ Chevance 2001
Répartition - Fédération
Approche descendante Approche ascendante
Conception d’une BD Intégration/fédération
répartie de BD existantes
BD répartie BD fédérée
BD1
BD1 BD2
BD2 BDN
BDN BD1 BD2 BDN
BD1 BD2 BDN
© RJ Chevance 2001
Fédération de BD (2)
Traduction des schémas (résolution de
l’hétérogénéité syntaxique)
Origine : utilisation de modèles différents dans les BD
composantes
Effet : nécessite des traductions de tous les modèles
vers tous les modèles
Solution : traduction de tous les schémas dans un
modèle commun (dit canonique ou pivot)
Problématique :
Le modèle canonique doit avoir un pouvoir de
modélisation ≥ à ceux des modèles des BD composantes
Nécessité de compléter sémantiquement des modèles de
BD composantes qui seraient trop pauvres
Choix du modèle canonique :
Entité - Association et Relationnel
Objet
Page 9
© RJ Chevance 2001
Fédération de BD (3)
Intégration des schémas
Schéma conceptuel global
Schéma conceptuel global
Intégrateur
Intégrateur
Procédure :
Identifier les éléments de base qui sont liés
Page 10
Choisir la représentation la plus adéquate pour le schéma global
© RJ Chevance 2001
Intégrer les éléments des schémas intermédiaires
Fédération de BD (4)
Démarche d’intégration
Pré-intégration
Pré-intégration: :
établissement
établissementduduplan
pland’intégration
d’intégration
Comparaison
Comparaison ::
mise
mise en
enévidence
évidence des
desconflits
conflits
Mise
Mise en
en conformité
conformité ::
résolution
résolutiondes
des conflits
conflits
Fusion
Fusion ::
fusion
fusion des
desschémas
schémas
Restructuration
Restructuration ::
amélioration
améliorationdu
duschéma
schéma global
global
Page 11
© RJ Chevance 2001
Fédération de BD (5)
Démarche d’intégration
Pré-intégration :
Mise en évidence des dépendances induites par les schémas
Définitions des équivalences entre domaines
Convention de désignation
Comparaison ou analyse - mise en évidence des conflits :
de désignation (homonymie, synonymie)
structurels
de domaine
de contraintes
….
Mise en conformité : résolution des conflits
renommage pour les conflits de noms
étude au cas par cas pour les conflits structurels
Fusion des schémas - Qualités recherchées :
complétude (pas de perte d’information)
minimalité (absence de redondance)
clarté
Restructuration - Amélioration du schéma global
pour l’essentiel recherche de clarté sans remise en cause des qualités
Page 12 recherchées
© RJ Chevance 2001
Quelques cas de conflits
Conflits d’attributs
Conflit de nom renommage
Conflit de type conversion
Attribut sans équivalent dans l’autre relation
Attribut optionnel valeur nulle
Attribut indispensable relation auxiliaire
Conflit de relation
Conflit multi-attribut : un attribut correspond à plusieurs dans l’autre
relation (ex. adresse et N°, rue, code, ville) utilisation d’un calcul sur
les attributs (ex. extraction)
Conflit de clé
pas la même clé changement de clé
la clé d’une des relations composantes n’est pas une clé générale :
génération d’une nouvelle clé par ajout d’un élément (ex. nom de commune pas
déterminant au niveau national ajout du numéro de département au nom de la
commune pour créer la nouvelle clé)
….
Page 13
© RJ Chevance 2001
Traduction des schémas
IMS
IMS IDS
IDS IMS IDS
IMS IDS
Modèle
Modèlecanonique
canonique
Relationnel
Relationnel Objet
Objet Relationnel Objet
Relationnel Objet
N x (N - 1) / 2 traducteurs N traducteurs
Niveau local
Langage
Schéma interoprérable d’accès
Gestion Gestion
objets intégrés Modèle pivot objets intégrés
Requêtes
Schéma importé pivot
communication
communication
Accès Accès localisées
objets distants objets distants
Niveau
Niveau
Accès Accès
objets locaux Modèle pivot objets locaux Requêtes
pivot
Schéma exporté sur objets
Adaptateur Adaptateur locaux
interopérable
interopérable
local Modèle X (RDBMS,..) local
Niveau
Niveau
Requêtes
Schéma local spécifiques
X X X (SQL, OQL,..)
Page 15
© RJ Chevance 2001
Accès aux BD multiples
Serveur
FAP A, FAP B, FAP C BD B
Serveur
BD C
Administration
SGBD A
Administration
SGBD B
Administration
SGBD C
Page 16
© RJ Chevance 2001
Accès aux BD multiples (2)
Serveur
BD C
Administration
SGBD A
Administration
SGBD B
Administration
SGBD C
Page 17
© RJ Chevance 2001
Accès aux BD multiples (3)
Solution N°2 : FAP commun avec passerelles
Pilote passerelle
Serveur Serveur
FAP de la passerelle passerelle BD B
Serveur Serveur
passerelle BD C
Administration
SGBD A
Administration
SGBD B
Administration
SGBD C
Page 18
© RJ Chevance 2001
Accès aux BD multiples (4)
Solution N°3 (idéale) : FAP commun
implémenté par les fournisseurs de SGBD
Pilote passerelle
Serveur
FAP SQL standard BD B
Serveur
BD C
Administrateur
de base de données
unique
Page 19
© RJ Chevance 2001
Niveaux de transparence à la localisation
Page 20
© RJ Chevance 2001
RDA - Remote Data Access
Les usagers connaissent la localisation
Si une jointure est nécessaire, elle doit être réalisée
par l’application
Application
Applicationmultibases
multibases
Protocole
ProtocoleRDA
RDA
Protocole
ProtocoleRDA
RDA Protocole
ProtocoleRDA
RDA Protocole
ProtocoleRDA
RDA
SGBD
SGBDlocal SGBD
SGBDlocal SGBD
local local SGBDlocal
local
Page 21
© RJ Chevance 2001
RDA - Remote Data Access (2)
Exemple
Site 1 : Cartes grises
Personne (N° personne, nom, prénom, adresse, …)
Voiture (N° véhicule, marque, type, …)
Conducteur (N° personne, N° véhicule, NB_accidents,..)
Site 2 : Base SAMU
Accident (N° accident, date, departement, N° véhicule, N° personne, …)
Blessé (N° accident, N° personne, gravité, ….)
Site 3 : requête
Liste des blessés graves dans une voiture de marque xxx et de type yyy dans région parisienne
Requête en centralisé :
SELECT P.nom,P.prénom FROM Personne P, Blessé B, Accident A, Voiture V
WHERE P.N° personne = B.N° personne
AND B.gravité > « commotion »
AND B.N° accident = A.N° accident
AND A.N° véhicule = V.N° véhicule
AND V. marque = « xxx »
AND V. type = « yyy»
AND A.département IN (75, 78 , 91, 92 ,93, 94, 95)
Solution RDA
Requête sur site 1 : SELECT N° véhicule FROM Voiture WHERE marque = « xxx » AND type = « yyy » INTO temp1
Requête sur site 1 : SELECT * FROM Personne INTO temp2
Requête sur site 2 : SELECT B.N° personne, A.N° véhicule FROM Blessé B, Accident A
WHERE B.gravité > « commotion » AND B.N° accident = A.N° accident
AND A.département IN (75, 78 , 91, 92 ,93, 94, 95) INTO temp3
Conclusion
Il est nécessaire d’envoyer 3 requêtes pour seulement 2 sites
La totalité de la relation Personne doit être transférée
L’intégration du résultat final doit être faite par l’application :
© RJ Chevance 2001
SQL-CLI
Formation, en 1988, d’un consortium (le SAG pour SQL Access
Group) regroupant 44 éditeurs de SGBD avec pour objectif de
définir :
un standard d’interopérabilité entre clients et SGBD;
une interface (CLI Call Level Interface) définissant un ensemble
d’API (Application Programming Interface) communes pour les
différents SGBD.
Exemple : Composants de la CLI ODBC de Microsoft
API ODBC
Gestionnaire de pilotes ODBC
© RJ Chevance 2001
ODBC - Open Database Connectivity
Spécification contrôlée par Microsoft et supportée par les
principaux fournisseurs de SGBD
Difficulté : niveau de SQL supporté, développement des pilotes,
..
Serveur
BD C
Administration
SGBD A
Administration
SGBD B
Administration
SGBD C
Page 24
© RJ Chevance 2001
JDBC - Open Database Connection
Spécification commune à Sun et différents fournisseurs de
SGBD
Difficulté : risque potentiel d’intrusion dans des systèmes par
l’intermédiaire du code mobile (byte-code)
Serveur
BD C
Administration
SGBD A
Administration
SGBD B
Administration
SGBD C
Page 25
© RJ Chevance 2001
Vues réparties
La transparence à la localisation est assurée par la définition des vues
réparties
Les jointures inter-bases sont exécutées par le système
Les mises à jour sont supportées au moyen des vues réparties
Un protocole de validation à 2 phases est supporté
Application
Application
Gestionnaire
Gestionnairedes
desvues
vuesréparties
réparties
Sous-requêtes
SGBD
SGBDlocal SGBD
SGBDlocal SGBD
local local SGBDlocal
local
Page 26
© RJ Chevance 2001
Vues réparties (2)
Définition de la vue répartie (sur le site 3)
CREATE VIEW Accidenté-grave {N°personne, nom, prénom,
adresse,gravité, département, N° véhicule, marque, type}
AS SELECT P.N°personne, P.nom, P.prénom, P.adresse,
B.gravité, A.département,V.N° véhicule, V.marque, V.type
FROM S1.Personne P, S2.Blessé B, S2.Accident A, S1.Voiture V
WHERE P.N°personne = B.N°personne
AND B.gravité > « commotions »
AND A.N°véhicule = V.N°véhicule
AND A.N°.accident = B.N°accident
SELECT N°personne,nom,prénom,adresse
FROM Accidenté-grave
WHERE marque = « xxx »
AND type = « yyy »
AND département IN (75, 78, 91, 92, 93, 94, 95)
Page 27
© RJ Chevance 2001
Vues réparties (3)
Fonctions réalisées par le gestionnaire des vues réparties :
La transformation de la requête sur les relations de base
La décomposition de la requête en requêtes mono-site :
Requête sur site 1 : SELECT N°véhicule FROM Voiture ….
Requête sur site 1 : SELECT * FROM Personne …
Requête sur site 2 : SELECT B.N°personne, A.N°véhicule FROM
Blessé B, Accident A, ….
Le contrôle de l’exécution des requêtes
L’intégration du résultat en effectuant les différentes opérations
(dont les jointures)
Conclusion
Le système apparaît à l’application comme un vrai SGBD réparti
mais
© RJ Chevance 2001
SGBD réparti
La transparence à la localisation est assurée par la définition de la
base répartie
Les différentes opérations sont prises en charge par les différents
SGBD
Un protocole de validation à 2 phases est supporté
Application
Application
BD locale 1
SGBD
SGBDréparti
réparti . SGBD
SGBDréparti
réparti
BD locale 2 BD locale N
Page 29
© RJ Chevance 2001
SGBD réparti (2)
Schéma conceptuel de la base :
Implémentation de la base :
© RJ Chevance 2001
SGBD réparti (3)
Plan d’exécution répartie
Requête sur site SAMU :
SELECT B.N°personne, A.N°véhicule FROM Blessé B, Accident A
WHERE B.N°accident = A.N°accident AND B.gravité > « commotions »
AND A.département IN (75, 78, 91, 92, 93, 94, 95) INTO temp1
SEND temp1 to S75, S78, S91, S92, S93, S94, S95
Requêtes sur S75, S78, S91, S92, S93, S94, S95 :
RECEIVE temp1 FROM SAMU
SELECT P.nom,P.prénom FROM Personne P, temp1 T, Voiture V
WHERE P.N°personne = T.N°personne AND T.N°véhicule = V.N°véhicule
AND V.marque = « xxx » AND V.type = « yyy » INTO temp2.i
SEND temp2.i TO Interrogation
Requête sur site Interrogation :
RECEIVE temp2.75 FROM S75
……
RECEIVE temp2.95 FROM S95
UNION temp2.75, temp2.78,…..temp2.95
INTO résultat
Conclusion
Le SGBD réparti a pris en charge tous les problèmes liés à la répartition
Les transferts sont minimisés :
seuls les N° des blessés et des véhicules sont transférés
Page 31
© RJ Chevance 2001
Quelques problèmes des BD réparties et fédérées
Validation à deux phases
Dès qu’une mise à jour s’adresse à plus d’un site ou à plus d’une base
sur un même site, il convient d’utiliser le protocole de validation à deux
phases
Verrouillage
Les SGBD utilisent le verrouillage à deux phases pour assurer la
sérialisation des transactions (phase d’acquisition des verrous puis
phase de relâchement des verrous)
Un SGBD sait détecter les étreintes fatales locales (détection d’un cycle
dans le graphe d’attente)
Dans le cas distribué, on peu utiliser plusieurs techniques pour traiter
le cas des étreintes fatales :
Prévention = Éviter que le problème ne survienne :
Technique d’estampillage : dater les transactions et « tuer » les transactions en
attente en fonction de leur « âge » :
Die Wait = « tuer » les transactions demandant des ressources détenues par des transactions
plus anciennes et reprendre la transaction « tuée » avec la même estampille
Wound Wait = « blesser » les transactions en attente de ressources détenues par une plus
ancienne, on « tue » la transaction « blessée » si elle demande une ressource détenue par
une autre transaction. On reprend la transaction « tuée ».
Détection :
Construction d’un graphe global d’attente par union des graphes locaux
Présomption :
Page 32 Abandon des transactions n’ayant pas terminé leur exécution après un certain
temps (horloge de garde ou Watch Dog)
© RJ Chevance 2001
Partitionnement et placement des données
Objectifs
Réduction de la charge (accès aux données, communication, espace de
recherche)
Équilibrage de charge
Accroissement du travail utile (e.g. effet de cache)
Partitionnement vertical
Table • Projection, dont un attribut commun, sur
chacun des sites
• Table globale reconstituée par une jointure
selon cet attribut
Système 1 Système 2
Note : Relation avec l'organisation des applications (minimisation des interactions entre les systèmes et
validation à deux phases)
Partitionnement horizontal
Système 1
• Sélection, selon des valeurs disjointes
Table
d’un critère sur chaque site
• Table globale reconstituée par UNION
Système 2
Page 33
Note : Prise en compte de la validation à deux phases par le SGBD
© RJ Chevance 2001
Partitionnement des données (2)
Méthodes de partitionnement horizontal (exemples)
Domaine Round robin
Les données sont réparties en fonction Chaque article est rangé dans
des domaines de valeur des clés Hash la partition suivante en séquence
D, S C, L F, N M, Z R, W
© RJ Chevance 2001
Expédition de données et Expédition de Fonction
Deux modèles fonctionnels dans le cas d'une
architecture de SGBD réparti
Expédition de données "Data Shipping"
Exécution
de la requête
Page 36
A...E F...J K...N O...S T...Z
© RJ Chevance 2001
Recherche du partionnement idéal
Exposé :
Soit une BD répartie implantée sur un ensemble de p sites (S={S1,
S2,….Sp} et un ensemble de r fragments composant la base (F={F1,
F2,…Fr})
Trouver la répartition optimale de F sur S
Formalisation :
Pour un fragment Fk, Rl et Ul sont, respectivement, les taux d’accès en
lecture et en mise à jour depuis le site Sl
Soit Clm, le coût de communication unitaire de Sl à Sm
Soit Dl le coût de stockage du fragment Fk sur le site Sl
Problème :
Trouver l’assignation optimale de Fk {X1, X2,…Xm} telle que Xl = 1 si Fk est
assigné sur Sl et 0 sinon et minimisant le coût de la communication et du
stockage exprimé par la formule :
© RJ Chevance 2001
Optimisation des requêtes réparties
Établissement d’un plan d’évaluation optimal
Optimisation d’une fonction de coût ou de temps de réponse de la forme :
Page 38
© RJ Chevance 2001
Optimisation des requêtes réparties (2)
Schéma général de traitement et d’optimisation d’une requête répartie
Requête sur la BD répartie
Décomposition de la requête
Décomposition de la requête Schéma global
• Normalisation de l ’écriture de
la requête
Arbre d ’évaluation de la requête
• Analyse -vérification
sur les relations réparties
• Élimination de la redondance
• Ré-écriture
Page 39
Requêtes locales optimisées
© RJ Chevance 2001
Optimisation des requêtes réparties (3)
Exemple - Définition de la base de données :
V.N°V V.N°V
C.N°V,C.N°B σP B.ville=« Paris »
C.N°V
N°V
C.date >1/1/2000 & Buveurs
σP V.degré>12 σP V.degré>12 &
σP C.quantité>100
V.cru=« Volnay »
σP V.cru=« Volnay » σP C.quantité=100
Page 40 Commandes
Vins
Vins Commandes
© RJ Chevance 2001
Optimisation des requêtes réparties (4)
Hypothèse de volume :
Buveurs (B) : 10 000 tuples
Vins (V) : 1 000 tuples
Commandes : 200 000 tuples
Hypothèse de distribution des BD :
Paris : Buveurs (B)
Dijon : Vins 1 (V1) restriction N°V<= 400
Commandes 1 (C1) restriction N°V<= 400
Bordeaux : Vins 2 (V2) restriction N°V > 400
Commandes 2 (C2) restriction N°V>400
Requête émise sur le site de Paris :
« Noms des buveurs parisiens n’ayant pas commandé en décembre 2000 »
Sélectivités supposées : 20% de parisiens et 1% n’ayant pas commandé
Stratégies :
Simpliste : transférer C1 et C2 vers Paris (200 000 tuples) et faire C = C1 ∪ C2 et
évaluer SELECT B.nom FROM Buveurs (B) WHERE B.ville = « Paris » AND B.N°B
NOT IN (SELECT N°B FROM C WHERE C.date>1/12/2000 AND C.date<1/1/2001)
Améliorée : Transférer vers Dijon et Bordeaux Buveurs.N°B des seuls parisiens (=
2 x 2 000 petits tuples). Évaluer sur les sites de Dijon et Bordeaux :
Buveurs.N°B NOT IN (SELECT N°B FROM Ci WHERE Ci.date>1/12/2000 AND
Ci.date<1/1/2001)
Transférer les résultats vers Paris (= 2 x 20 petits tuples) et faire l’intersection des
résultats
Page 41
© RJ Chevance 2001
Réplication dans les BD
Objectifs de la réplication :
Amélioration de la disponibilité des données
Amélioration des performances
Difficultés de la réplication :
Synchronisation des copies
Transparence de la gestion
Mise à jour synchrone et asynchrone
Synchrone :
+ Maintien de toutes les copies en cohérence
- Perte de performance du fait de la mise en œuvre de la
validation à deux phases
Asynchrone : mise à jour différées des copies
+ Incidence minime sur les performances
- Nécessité de mise à niveau de la copie ou des copies en cas
de reprise
Page 42
© RJ Chevance 2001
Réplication des données
Objectifs de la réplication de données :
Disponibilité des données
Respect de l’intégrité des données
Optimisation des accès
Administration centralisée
Gestionnaires de données hétérogènes
Autonomie locale
Options de réplication de données :
Réplication à Réplication
Validation à Vidage et Copie de
Technologie base de règles fondée sur le
deux phases rechargement table
ou de triggers journal
Page 43
© RJ Chevance 2001
Réplication des données (2)
Quelques exemples d’utilisation
Réplication
BD BD
« production » « décisionnelle »
Distribution d’information
BD
« Entreprise globale »
BD BD BD BD
Afrique Amérique Asie Europe
Page 44
© RJ Chevance 2001
Réplication des données (3)
Consolidation d’informations
Site A
Site B
Site C
Site A
Site A
Site A Site B
Site B Site C
Site C
Site Central
Site B
Site A
Site B
Site C
Page 45 Site B
© RJ Chevance 2001
Réplication des données (4)
Mises à jour avec conflits d’accès
Exemple : société de logiciel au niveau mondial (travaillant
donc 24 x 24 du fait des décalages horaires) maintenant une
base de données pour le support de ses clients (erreur
connues, corrections, détours,….). La base doit être
accessible en permanence et être à jour.
Base
commune
Base
Amérique commune
Europe
Base
commune
Asie
Page 46
© RJ Chevance 2001
Réplication des données (5)
Illustration de stratégies de mise à jour en cas de conflit d’accès
Site maître
© RJ Chevance 2001
Réplication des données (6)
Réplication en vue de la résistance aux
défaillances (Disaster Recovery)
Site de secours
Site primaire
© RJ Chevance 2001
Un aperçu sur les SGBD du commerce
A la fin des années 80 et au début des années 90, la plupart des
fournisseurs de SGBD avaient des projets voire des produits de
versions réparties de leur SGBD et des capacité à fédérer des BD
(homogènes et hétérogènes)
Les différentes expériences faites, par les utilisateurs dans le cadre
d’applications, avec ces SGBD ont montré leurs limites, en particulier
dans un contexte avec mise à jour
Au début des années 2000, les fournisseurs ne mettent plus en avant
les aspects distribués.
Les fournisseurs ont évolué vers des solutions à base de réplication
des bases de données et des moyens d’accès à des bases de données
« étrangères »
A titre d’illustration de cette évolution, Ingres qui proposait la solution
la plus élégante et la plus avancée en matière de distribution a renoncé
à cette ambition. Ingres a été acquise par CA (Computer Automation).
CA ne met pas l’emphase sur l’aspect distribué
Nous allons passer rapidement en revue certaines des solutions
proposées par différents fournisseurs de SGBD
Page 49
© RJ Chevance 2001
Un peu d’histoire : Ingres/STAR
Parmi les différents modèles deSBD distribués, Ingres
proposait incontestablement l’un des modèles les plus élaborés
Vision Ingres/STAR
Utilisateur Utilisateur
local Administrateur distant •Gestion des dictionnaires répartie :
Page 50
© RJ Chevance 2001
Un peu d’histoire : Ingres/STAR (2)
Architecture Ingres/STAR
Application
Application
SQL Données
Ingres/STAR
Ingres/STAR
BD Ingres Ingres
Ingres Communication
Communication
Communication Communication
Communication Communication
Passerelle Passerelle
Passerelle Passerelle
SQL
Page 51
© RJ Chevance 2001
IBM DB2
Trois produits (entre autres) :
DataLinks
DataJoiner
DataPropagator
DataLinks :
Permet à DB2 d ’accéder à des données stockées indépendamment de
DB2
Permet différents niveaux de contrôle sur ces données externes :
Intégrité référentielle
Contrôle d’accès
Opérations de sauvegarde et de restauration coordonnées
Transactionnel distribué
Composants de DataLinks :
Nouveau type de données DATALINK (URL - Uniform Resource Locator)
DB2 Data Links Manager qui a deux composantes :
Data Links File Manager (DLFM)
Data Links Filesystem Filter (DLFF)
API DBMS/DLFM pour dialoguer avec les Data Links File Managers
Page 52
© RJ Chevance 2001
IBM DB2 - DataLinks (2)
Exemple : Applications
Applications
Requêtes « fichiers »
Requêtes SQL
Architecture :
Application
Application Système de fichiers
Données
SQL
(y compris URLs)
Données
Stockage
Fichiers hiérarchisé
Page 53
© RJ Chevance 2001
IBM DB2 - DataJoiner (3)
Page 54
© RJ Chevance 2001
IBM DB2 - DataPropagator
DB2 Datapropagator assure la mise à jour de bases de données
distribuées (d’une « source » vers des « cibles »)
Les composants de DataPropagator sont :
Change Capture : détection des changements dans la base « source » et
stockage dans des tables intermédiaires (staging tables)
Apply : prend les données stockées dans les tables intermédiaires et
applique les changements aux bases des données « cibles »
Administration : fonctions permettant de spécifier et de contrôler le
processus de réplication
Illustration du fonctionnement : Cible
Source
Détection des changements
ply
App
fondée sur le journal A ply
Table DB2
Change Capture intermédiaire Da
DB2 Change Capture DtaaJ
taoin
Jo e
inr
er
Source non DB2 p ly
Détection des changements Appply
fondée sur les déclencheurs (triggers) A
© RJ Chevance 2001
Informix - Virtual Table Interface
Virtual Table Interface
Capacité de définir des méthodes d’accès en complément de celles
offertes par Informix
Ces méthodes d’accès peuvent opérer soit :
sur des données gérées par Informix
sur des données non gérées par Informix (pas de service transactionnel ni de
sauvegarde/restauration fournit par Informix pour ces données)
Programme client
Programme client
© RJ Chevance 2001
Informix - Enterprise Replication
Architecture
Définition de la
Définition de la
réplication Catalogue global
réplication
Cible1
Ciblen
Composants fonctionnels :
Configuration et contrôle
Capture des transactions (via le journal)
Acheminement des informations (type MOM sécurisé)
Prise en compte des mises à jour sur site distant (mises à jour
suivant une logique transactionnelle)
Résolution de conflits. Possibilités :
Priorité à la dernière modification en date
Stratégie définie par programme
Page 57 Ignorance
© RJ Chevance 2001
Oracle - Transparent Gateways
Solution Transparent Gateways
Permet l’accès à de nombreux (40?) gestionnaires de
données
Constituée de deux composants :
Services hétérogènes (Heterogeneous Services)
Service transactionnel (validation à deux phases)
Service SQL
Traduction SQL Oracle vers SQL non Oracle
Traduction de dictionnaire de données
Service procédural (exécution de procédures stockées)
Transparent Gateway
SQL and Data Dictionary Translation Information : fournit aux
services hétérogènes les informations nécessaires à la
traduction
Traduction des types de données
Assure la connexion à des systèmes non-Oracle
Plusieurs possibilités concernant la localisation du Gateway
Page 58
© RJ Chevance 2001
Oracle - Transparent Gateways (2)
Architecture générale :
Localisation du Gateway
Application
Application Application
Application
Oracle
Oracle GW
GW SGBD
SGBD Oracle
Oracle GW
GW SGBD
SGBD
Application
Application Application
Application
Oracle
Oracle GW
GW SGBD
SGBD Oracle
Oracle GW
GW SGBD
SGBD
Page 59
© RJ Chevance 2001
Oracle Database Replication
Notions de base :
Replication Object : objet existant à de multiples exemplaires
Replication Groups : regroupement logique d’objets répliqués en
vue de faciliter l’administration de la réplication
Replication sites :
Master Site : contient la copie complète des objets d’un groupe de
réplication
Snapshot Site : supporte des extraits en lecture seule d’un
« replication group » ou un extrait susceptible de mise à jour
Site « extrait » D
Site maître C
Page 60
© RJ Chevance 2001
Oracle Database Replication (2)
Multimaster Replication : Plusieurs sites, dans un mode d’égal
à égal (peer-to-peer), gèrent des objets répliqués. Utilisation :
Recouvrement en cas de défaillance
Distribution de la charge de travail
Replication Group
Replication Group
Site maître C
Replication Group
Difficulté : synchronisation
Page 61
© RJ Chevance 2001
Oracle Database Replication (3)
Snapshot Replication :
Snapshots en lecture seule (Read-Only Snapshots) :
Réplication complète ou partielle d’une table « maître ». Avantages :
Les tables « maître » n’appartiennent pas nécessairement au même groupe de
réplication
Les snapshots peuvent résulter de la composition de plusieurs BD)
Exécution locale de requête (allègement de la charge du site maître)
En lecture seule ou avec possibilité de mise à jour de la fonction de mise à jour
distante (interaction avec le site détenant la base maître)
Table réplicat
(lecture seule)
Table « maître »
(mise à jour possible)
Base répliquée Base « maître »
Page 62
© RJ Chevance 2001
Oracle Database Replication (4)
Snapshots avec mise à jour (Updateable Snapshots) :
Les snapshops supportant la mise à jour ne dépendent que d’une seule table
maître et sont mis à jour (refresh) de façon incrémentale ou immédiate
Les mises à jour sont propagées depuis le snapshot vers la base maître. Les
mises à jour peuvent être répercutée vers d’autres sites
Les snapshots supportant la mise à jour sont remis à jour
Avantages :
Permet aux utilisateurs de consulter et de mettre à jour les données (locale) même en
cas de déconnexion avec le site maître
Réduction possible du volume de la base répliquée
Site maître B
Replication Group
Site snapshot
Site snapshot
© RJ Chevance 2001
Sybase - Replication Server
Composants du Replication Server
Application
Application
Replication
Replication SQL
SQL Server
Server
Server
Server
Log
Log Transfer
Transfer Replication
Replication Réseau
SQL
SQL Server
Server Manager
Manager Server
Server
Autres
Autres
Replication
Replication serveurs
serveurs de
de
Server
Server données
données
© RJ Chevance 2001
Sybase - Replication Server (2)
Quelques exemples :
Partage d’informations entre sites
Une règle simple : un seul site fait les mises à jour des données qui le
concernent
Site A
Site B
Site A
Site C
Site B
Site C
Site A
Site C
Site A
Site B
Site C
Site B
Exemple de mise à jour (le site A demande la mise à jour d’une donnée
concernant le site C)
1 - Demande de modification d’une donnée concernant le site C
Site A
Site B
Site A
Site C
Site B
Site C
Site A 3 - Réplication de la modification
Site C
Site A
Site B 2 - Modification de la donnée
Site C
Page 65
© RJ Chevance 2001
Bibliographie
Claude Chrisment, Geneviève Pujolle, Gilles Zurfluh « Bases
de données réparties » Les Techniques de l’Ingénieur
Georges et Olivier Gardarin « Le Client - Serveur » Eyrolles
Robert Orfali, Dan Harkey, Jerry Edwards « Client/Serveur -
Guide de survie » John Wiley, Thomson Publishing
Serge Miranda, Anne Ruols « Client-Serveur » Eyrolles
Polycopiés des cours CNAM d’Intégration des Systèmes
Client/Serveur des années précédentes par :
Béatrice Finance
Jean-Pierre Meinadier
Jean-Marc Saglio, Yann Viemont
Sites des principaux fournisseurs de SGBD :
http://www.ibm.com
http://www.informix.com
http://www.oracle.com
http://www.sybase.com
Page 67
© RJ Chevance 2001