Introduction aux bases de données réparties
Introduction aux bases de données réparties
III.1 DEFINITION
Base de données repartie :
Une base de données répartie est vue comme une collection des données qui sont
réparties sur différents ordinateurs d’un réseau informatique.
Une base de données répartie est aussi vue comme une collection de bases de données
logiquement reliées, distribuées sur un réseau et apparaissant à l’utilisateur comme une
base de données unique.
Exemple de BD répartie
III.2 CARACTERISTIQUES :
1. Une structure de contrôle hiérarchique basée sur un administrateur de base de
données global, qui a la responsabilité centrale sur la base de données répartie
entière et sur les administrateurs des bases de données locales, qui ont la
responsabilité de leurs bases de données locales respectives.
2. À l’indépendance des données est ajoutée la transparence de répartition qui
signifie que les programmes peuvent être écrits comme si les données n’étaient
pas réparties.
3. La redondance des données est une caractéristique désirable pour croître
l’autonomie des applications et la disponibilité du système (fiabilité) du système
en cas de panne.
4. Un plan d’accès réparti peut être écrit par un programmeur ou produit
automatiquement par un optimiseur.
La conception d’un optimiseur est un problème qui peut être subdivisé en deux
catégories.
C'est le système qui gère les partitionnements et les modifie en fonction de ses
besoins, et c'est donc lui qui doit rechercher toutes les partitions et les intégrer
en une seule information logique présentée à l'utilisateur.
Dans une BDR, les sites ne sont donc pas autonomes, bien que chaque site possède
une machine (serveur) avec un SGBD et une partie de la base de données, et
pourraient effectuer certains traitements localement. En effet, les utilisateurs accèdent
aux données par l'intermédiaire du schéma conceptuel global et non par l'intermédiaire
du schéma d'un site, et c'est uniquement le système qui désigne le ou les sites qui sont
concernés par la demande de l'utilisateur.
L'indépendance physique, assurée dans les bases de données traditionnelles, est donc
conservée dans les BD réparties.
1. Niveau externe : Les vues (schémas externes) sont distribuées aux utilisateurs
sur leurs sites, les sites utilisateurs.
2. Niveau conceptuel :Le schéma conceptuel des données (schéma logique) est
associé, par l'intermédiaire du schéma de répartition (lui-même décomposé en un
schéma de fragmentation et un schéma d'allocation) aux schémas locaux qui sont
réparties sur plusieurs sites, les sites physiques.
3. Niveau interne : Le schéma interne global n'a pas d'existence réelle mais fait
place à des schémas internes locaux répartis sur différents sites (en principe les
sites d'accueil des schémas logiques répartis).
Tous les niveaux doivent être concernés par la répartition pour que l'on puisse parler
d'une vrai BD répartie. Sinon on n'a affaire qu'à des clients éloignés (répartition externe)
ou à un stockage physique multi machines ( répartition interne). On doit aussi
remarquer que la distribution de la base de donnée se fait plus ou moins conformément
à la répartition logique des utilisateurs et à la répartition physique des moyens
informatiques.
III.5. DIFFERENTS NIVEAUX DE TRANSPARENCE DE LA
REPARTITION
Définition :
La transparence de répartition est l’indépendance du programme d’application à la
répartition des données ; elle est équivalente, conceptuellement, à l’indépendance des
données dans les bases de données centralisées.
Le modèle de données qui est utilisé pour la définition d’une transparence globale doit
être commode pour la définition de la présentation des autres niveaux de la base de
donnée répartie.
Les fragments sont indiqués par un nom de relation globale et un indice de fragment,
par exemple : Ri indique le deuxième fragment de la relation globale R.
La transparence d’allocation définit dans quel(s) site(s) est situé un fragment. Le type
de relation défini dans la transparence d’allocation définit si la base de donnée répartie est
redondante ou non.
Tous les fragments qui correspondent à la même relation globale et qui sont situés
dans le même site j constituent l’image physique de la relation globale R dans le site
j. Les images physiques peuvent être indiquées par un nom de relation et un indice de
site.
Pour les distinguer des fragments, nous utilisons la notation Rj qui indique l’image
physique de la relation globale R dans le site.
Le schéma ci-après représente les fragments et les images physiques pour une relation
globale.
Dans ce schéma, une relation R est divisée en 4 fragments R1, R2, R3, R4.
Ces fragments sont dupliqués dans les 3 sites d’un réseau informatique. Ainsi sont
construites les images physiques R1, R2, R3.
Une copie d’un fragment dans le site donné sera noté en utilisant le nom d’une
relation globale et 2 indices (Un indice de fragment et un indice de site).
Par exemple la notation R32 indique la copie d’un fragment R2 situé dans le site 3. Deux
images physiques peuvent être identiques. Dans ces conditions, on dira qu’une image
physique est une copie d’une autre image physique. R1 est une copie de R2.
NB : Les trois niveaux ci-dessus sont indépendants des sites. Donc ils ne dépendent pas
des modèles de données des SGBD locaux.
Si les logiciels ne gèrent pas correctement la réplication des données, ils engendrent
une dégradation de la disponibilité, de la fiabilité et des performances par rapport au
système centralisé, et les avantages cités plus haut deviennent des inconvénients.
2. Coût :
L’augmentation de complexité a un coût dont nous pouvons prévoir qu’il sera supérieur
en termes d’acquisition et de maintenance, au niveau SGBD, par rapport à un SGBD
centralisé. En outre, un SGBD distribué nécessite du matériel supplémentaire pour
établir les communications nécessaires sur un réseau entre sites.
Les communications entre sites présentent également un coût non négligeable, qui croît
en fonction de l’utilisation. Enfin, des coûts de main d’œuvre supplémentaire sont
induits, du fait de l’administration et de la maintenance des différents SGBD locaux et
du réseau sous-jacent.
3. Sécurité :
Dans un système centralisé, l’accès aux données est d’un contrôle facile, tandis que
dans un système distribué, non seulement il faut contrôler l’accès aux données
dupliquées dans des emplacements multiples, mais le réseau lui-même doit être sécurisé.
4. Manque de normes :
Bien que les SGBD distribués dépendent de télécommunications efficaces, nous
commençons seulement à voir apparaître des communications normalisées et des
protocoles d’accès aux données.
Une base de données répartie n’implique pas forcément une parfaite homogénéité des
sites locaux. Dans la pratique, la mise en place d’une base de donnée répartie, par une
conception ascendante, impose de tenir compte des différents systèmes existants.
Si les différents nœuds sont utilisés avec des systèmes d’exploitations différents, cela
apporte que très peu de problèmes au concepteur du système distribué. Cette
hétérogénéité est englobée dans un paramétrage correct du médiateur qui supporte
même différents protocoles de communication sur un même réseau (TCP/IP, DecNet, …).
3. Hétérogénéité de structures :
Le terme base de données répartie homogène désigne généralement une base de donnée
répartie gérée par des SGBD identiques localisés sur des sites.
Lorsque les bases de données qui composent la base de données répartie reposent sur
des modèles de données différents (hiérarchique, réseau, relationnel, orienté objet), on
parle de base de donnée répartie hétérogène.
Le degré d’hétérogénéité d’une base de donnée répartie peut donc varier, selon que les
SGBD serveurs sont différents mais basés sur le même modèle ou basé sur des modèles
différents.
Les bases de données réparties hétérogènes sont un sujet d’étude intéressant, aussi bien
du point de vue des concepts que du point de vue des applications, particulièrement
afin de faire coopérer des bases données existantes. Le degré d’intégration des bases de
données locales participant à une base de donnée répartie hétérogène permet de
distinguer les multi base des bases fédérées.
Dans ce cas, chaque utilisateur accède à différentes bases de données en spécifiant leur
nom et adresse, et le système se comporte alors simplement comme un serveur de BD
et n'apporte aucune fonctionnalité particulière à la répartition.
III.7.1.2 Base de données fédérées
Plusieurs bases de données hétérogènes accédées comme une seule via une vue
commune (un modèle commun).
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 c'est-à-dire des plates-formes, des SGBD et des modèles de
données différents (hiérarchique, réseau, relationnel, orienté objet).
Les SGBD parallèles partent du principe que les systèmes à un seul processeur ne
permettent plus de prendre en charge les exigences croissantes d’évolution économique,
de fiabilité et de performances. Une alternative puissante, et avantageuse d’un point de
vue financier, au SGBD monoprocesseur se présente sous la forme du SGBD parallèle géré
par plusieurs processeurs.
Les SGBD parallèles associent plusieurs machines plus modestes pour atteindre le
même débit qu’une seule machine plus ambitieuse, offrant en outre une meilleure
évolutivité et une meilleure fiabilité que les SGBD monoprocesseurs.
1. Client de SGBDR :
C’est une application qui accède aux informations distribuées par des interfaces du
SGBDR.
2. Serveur SGBDR :
SGBD gérant une base de données locale intégrée dans une base de donnée répartie.
Un SGBDR repose sur un système informatique réparti qui est constitué d’un ensemble
de processeurs autonomes appelés sites reliés par un réseau de communication qui lui
permet d’échanger des données. Un SGBDR suppose en plus que les données soient
stockées sur deux processeurs au moins, ceux-ci étant dotés de leur SGBD propre.
Extérieurement, le SGBD réparti doit offrir les mêmes services qu’un SGBD
monolithique, mais nous attendons d’un SGBDD qu’il apporte en plus les fonctionnalités
suivantes :
Des services de communication étendus qui donnent accès à des sites distants et
permettent de transférer des requêtes et des données parmi les sites, par le biais
d’un réseau.
Un catalogue système étendu qui emmagasine les détails de distribution et de
répartition (Dictionnaire des données réparties)
Un traitement de requête distribuée, incluant l’optimisation des requêtes et l’accès
distant aux données.
Un contrôle de sécurité étendu qui associe les autorisations et privilèges d’accès
aux données distribuées. Un contrôle de concurrence (simultanéité) étendu qui
conserve la cohérence des données distribuées et, éventuellement, répliquées.
Des services de récupération étendus qui tiennent compte des défaillances des
sites individuels et des pannes des liaisons de communication
Un ensemble de schémas externes globaux;
Un schéma conceptuel global;
Un schéma de fragmentation et un schéma d’attribution (ou d’« allocation »);
Un ensemble de schémas pour chaque SGBD local qui se conforme à
l’architecture ANSI-SPARC à trois niveaux.
Le schéma de fragmentation est une description de la manière logique dont les données
se partitionnent, tandis que le schéma d’allocation décrit les emplacements où se situent
les données, en tenant compte de la réplication, quelle qu’elle soit.
3. Schémas locaux :
Chaque SGBD local possède son propre ensemble de schémas. Les schémas conceptuel
local et interne local correspondent aux niveaux équivalents de l’architecture ANSI-
SPARC.
Dans un système homogène, le composant SGBDL est le même produit recopié dans
tous les sites. Dans un système hétérogène, au moins deux sites hébergent des produits
de SGBD et (ou) plates-formes différents.
Le composant CD est le logiciel qui permet à tous les sites de communiquer les uns
avec les autres. Il renferme des informations sur les sites, ainsi que les liaisons. Le
niveau communication est en fait un médiateur.
Le CSG possède les mêmes fonctionnalités que le catalogue système d’un système
centralisé. Il détient des informations spécifiques à la nature répartie du système,
comme les schémas de fragmentation, de réplication et d’allocation.
Il est éventuellement géré lui-même comme une base de données distribuée et, de ce
fait, peut être à son tour fragmenté et distribué. Il emmagasine les détails de distribution
et de répartition.
1. La transparence de distribution;
2. La transparence de transaction;
3. La transparence de performances;
4. La transparence de SGBD.
4.1 Transparence de distribution
a) Transparence de fragmentation
b) Transparence de localisation
L’utilisateur ne doit pas tenir compte l’emplacement des données. C'est le système qui
recherche le site où sont mémorisées les informations de l’utilisateur et non l'utilisateur
qui doit l'indiquer.
c) Transparence de réplication
a) Transparence de concurrence
La transparence de concurrence est assurée par le SGBDR si les résultats de toutes les
transactions concurrentes (distribuées ou non) se produisent indépendamment et sont
logiquement cohérents avec les résultats qui auraient été obtenus si les transactions
avaient été exécutées une à la fois, dans un ordre sériel, quel qu’il soit. Le SGBDD
doit assurer la cohérence de toutes les sous-transactions d’une même transaction globale.
b) Transparence de défaillance
Dans une base de donnée répartie, ces deux problèmes deviennent la conception du
schéma global et la conception des bases de données physiques locales dans chaque
site.
a) Conception descendante
b) Conception ascendante
Cette démarche est la plus difficile puisqu'en plus des problèmes techniques identiques
à ceux inhérent à une conception descendante, il faudra résoudre des problèmes
d'hétérogénéité des systèmes ou même sémantiques de l'information. Cette approche
nécessite plus souvent une réconciliation sémantique des schémas participants.
Une fragmentation est sans perte d'information si la base de donnée logique peut être
entièrement recomposée à partir de ses fragments. Cette recomposition est exprimée en
utilisant les instructions du langage de manipulation de données associé au modèle de
données utilisé (par exemple l'algèbre ou SQL pour une BD relationnelle).
De plus, les différents fragments doivent de préférence être exclusifs (leur intersection
est vide) puisqu'une fragmentation non exclusive implique une duplication. Dans ce cas
il faut affiner la fragmentation en produisant des fragments plus petits.
a) La complétude :
Toutes les données de la relation globale doivent être reprises dans les fragments.
C'est-à-dire pour toute donnée d'une relation R, il existe au moins un fragment Ri de la
relation R qui possède cette donnée.
b) La reconstruction :
Il faut une possibilité de reconstruire chaque relation globale à partir de ses fragments.
Tous les fragments qui correspondent à la même relation globale R, et qui sont situés
dans le même site j constituent l’image physique de la relation globale R dans le site j.
c) La disjonction :
2. Schéma de fragmentation
a) La fragmentation horizontale
Chaque fragment est défini comme une opération de sélection sur une relation globale.
La relation initiale sera obtenue par union des fragments.
Client
Numéro Nom Localité
1 Marc I Lubumbashi
2 Antoine Lubumbashi
3 Paguy Kinshasa
4 Alain Kinshasa
NB : On fragmente horizontalement par rapport à la Localité
Client 1
Numéro Nom Localité
1 Marc I Lubumbashi
2 Antoine Lubumbashi
Client 2
Numéro Nom Localité
3 Paguy Kinshasa
4 Alain Kinshasa
b) La fragmentation verticale
Commande
no_cmde client produit qté
1 1 54 10
2 1 62 12
3 2 64 25
4 45 18 51
Commande 1
no_cmde produit
1 54
2 62
3 64
4 18
Commande 2
no_cmde qté
1 10
2 12
3 25
4 51
c) La fragmentation mixte
Suite à la fragmentation des données, il est nécessaire de les placer sur les différentes
machines. C’est l'allocation.
L'affectation des fragments sur les sites est décidée en fonction de l'origine prévue des
requêtes qui ont servi à la fragmentation. Le but est de placer les fragments sur les sites
où ils sont le plus utilisés, pour minimiser les transferts de données entre les sites.
Pour chaque requête, on connaît l'ensemble des sites qui sont susceptible d'émettre cette
requête, et on possède l'ensemble des fragments qui sont concernés par la requête. On
associe donc à chaque fragment l'ensemble des sites qui peuvent "réclamer" ce fragment.
Le schéma d'allocation conserve l'assignation des fragments sur les sites, tandis que le
schéma local de chaque site définit la partie de la base de données (l'image physique
des fragments) qui est stockée sur ce site.
IL existe des critères généraux qui peuvent être utilisés pour allouer des fragments.
Cette méthode est surtout efficace lorsque les requêtes sont principalement en lecture
seule (read only). Les problèmes sont importants lors des mises à jour, lorsque le
système doit s'assurer d'écrire de façon cohérente les données, sur tous les sites.
Il faut donc éviter de répliquer les données qui sont trop souvent mises à jour.
Une deuxième stratégie est donc de ne pas répliquer les données du tout. C'est une
stratégie qui peut être payante dans le cas de mises à jour très nombreuses. Cette
stratégie est évidemment moins fiable que la précédente (si un site tombe, l'ensemble
peut être bloqué).
Une troisième stratégie combine les deux autres. Dans une base de données, certaines
données sont statiques et gagneraient à être répliquées, alors que d'autres sont
généralement écrites et il vaudrait donc mieux ne pas les répliquer. C'est pourquoi une
stratégie de compromis peut être payante.
c) Allocation dynamique
Avec cette technique, l'allocation d'un fragment peut changer en cours d'utilisation de la
BDR. Ce peut être le cas suite à une requête par exemple.
Dans ce cas, le schéma d'allocation et les schémas locaux doivent être tenus à jour.
Cette technique est une alternative à la duplication qui se révèle plus efficace lorsque la
base de données est sujette à de nombreuses mises à jour.
d) Fragmentation dynamique
Dans le cas où le site d'allocation peut changer dynamiquement, il est possible que
deux fragments complémentaires (verticalement ou horizontalement) se retrouvent sur le
même site. Il est alors normal de les fusionner.
A l'inverse, si une partie d'un fragment est appelé sur un autre site, il peut être
intéressant de décomposer ce fragment et de ne faire migrer que la partie concernée.
Ces modifications du schéma de fragmentation se répercutent sur le schéma d'allocation
et sur les schémas locaux.
e) Clichés
Un cliché (snapshot) est une copie figée d'un fragment. Il représente l'état du fragment
à un instant donné et n'est jamais mis à jour contrairement aux vues et aux copies qui
répercutent toutes les modifications qui ont lieu sur le fragment original.
L'intérêt (la pertinence) d'un cliché diminue donc au fur et à mesure que le temps passe.
L'utilisation de clichés est intéressante lorsque l'on juge que la gestion de copies
multiples se révélerait trop lourde pour la base de données considérée alors que des
copies même un peu anciennes et non à jours seraient largement suffisantes.
On peut en effet se passer de l'information exacte pour diverses raisons. D'une part
l'information contenue dans la base de données peut ne pas refléter tout à fait la réalité
(cas d'un changement d'adresse non signalé, par exemple). D'autre part, certaines
informations ne subissent pas souvent de modification (comme le nom de famille,
l'adresse ou le nombre d'enfants des employés) et par conséquent une copie même
ancienne de ces informations est, dans sa grande majorité, encore exacte.
Enfin, certaines informations dans un certain contexte ne sont pas de caractère sensible
et par conséquent une information erronée n'aura pas de répercussion grave : le
changement d'adresse d'un employé non répercuté n'aura pas d'incidence, les services
postaux se chargeant du bon acheminement du courrier pendant plusieurs semaines.
A l'inverse, le même changement d'adresse, non répercuté par la Poste (PTT), pourrait
avoir des conséquences graves.
Les deux critères qui sont à prendre en compte pour définir l'intérêt d'un cliché sont
d'une part l'ancienneté du cliché, et d'autre part le temps d'attente qui serait nécessaire
avant d'obtenir l'information originale (à jour). Ces deux informations, l'ancienneté et le
temps d'attente, peuvent être pondérées par un taux de satisfaction pour le système
d'information.
Une transaction est un traitement cohérent et fiable. Dans le cas des bases de données,
c'est une action qui transforme la base de données d'un état stable cohérent en un autre état
stable cohérent.
2. Condition de terminaison
Une transaction n'échoue pas, elle est interrompue pour diverses raisons, ou arrive à
son terme prévu. Pour assurer la cohérence de la base de données, en cas d'interruption
de la transaction (si elle est interne le mécanisme d'interruption se nomme abort), un
mécanisme se charge de défaire toutes les actions qui ont déjà été effectuées, c'est le
rollback.
Même si le concept est intuitivement clair, il peut être utile de le préciser de façon plus
formelle.
Une transaction est un ensemble d'opérations menées sur une base de données.
Ces opérations peuvent être la lecture ou l'écriture.
Une opération est atomique, elle est donc une unité indivisible.
Une transaction se termine soit par un commit, soit par un abort
Deux opérations distinctes peuvent s'exécuter en mène temps. Une opération de
lecture et d'écriture doivent s'exécuter l'une après l'autre.
La dernière opération effectuée est la terminaison.
4.1 Atomicité
Cette propriété signifie qu'une transaction est traitée comme une seule opération.
Toutes les actions d'une transaction sont donc menées à bien ou aucune d'entre elles.
C'est le tout ou rien. Après un problème, le SGBD doit soit terminer la transaction
commencée, soit défaire tout ce qui a été entrepris. On peut rencontrer deux types de
problèmes durant l'exécution de la transaction :
4.2 Cohérence
4.3 Isolation
L'isolation est la propriété qui impose à chaque transaction de voir une base de
données cohérente à tout moment. Une transaction en train de s'exécuter ne peut donc
révéler ses résultats à d'autres transactions concurrentes (simultanées) avant d'avoir
effectué son commit.
Autrement dit, les résultats d’une transaction ne doivent être visibles aux transactions
qu’une fois la transaction validée, ceci afin d’éviter les interférence avec les autres
transactions.
4.4 Durabilité
La durabilité est la propriété qui garantit lorsqu'une transaction a effectué son commit,
le résultat sera permanent et ne pourra pas être effacé de la base de données quelques
soient les pannes du système rencontrées.
Dans ce contexte, la requête est équivalente à une instruction SQL et l’unité de travail
correspond à une transaction, telle que nous la connaissons
Une application sur un site envoie une requête sous la forme d’une instruction
SQL à un site distant pour qu’elle s’y exécute. La requête est totalement exécutée sur le
site distant et a tout le loisir de faire référence aux données situées sur ce seul site.
Une application sur un site (local) envoie toutes ses instructions SQL sous forme d’une
unité de travail (une transaction) à un site distant pour qu’elles s’y exécutent. Toutes
les instructions SQL sont entièrement exécutées sur le site distant et ne peuvent faire
référence à des données que situées dans ce site. C’est toutefois le site local qui
décide si la transaction doit être validée ou annulée.
Une application sur un site (local) envoie certaines ou toutes les instructions SQL
d’une transaction à un ou plusieurs sites distants en vue de leur exécution sur ceux-ci.
Chaque instruction SQL s’exécute en totalité sur le site distant et ne peut faire
référence à des données que de ce seul site. Cependant, des instructions SQL
différentes peuvent s’exécuter sur des sites distincts. Ici aussi, le site local décide de la
validation ou de l’annulation de la transaction.
Une application à un site (local) envoie une partie ou toutes les instructions SQL d’une
transaction à un ou plusieurs sites distants en vue de leur exécution. Ici, une
instruction SQL peut éventuellement accéder à des données de plus d’un site (par
exemple, l’instruction demande de joindre ou d’unir des relations et (ou) fragments
situés dans des sites différents).
6.1 Principe
a) Coordonnateur de validation
Composant système d’un site qui applique le protocole (lance la transaction, la découpe
en sous-transactions à exécuter sur les différents sites, coordonne la terminaison de la
transaction). Il dirige le protocole en centralisant le contrôle.
b) Participant à validation
Nœud d’un système réparti qui exécute des mises à jour de la transaction et obéit aux
commandes de préparation, validation ou annulation du coordonnateur. Il participe dans
l'exécution de la transaction.
Validation normale
7.2 Panne d’un participant avant d’être prêt
Panne du coordonnateur
8. Contrôle de concurrence
L’objectif général est de rendre aux clients le partage simultané des données. Ceci
s’effectue au moyen de protocoles spéciaux permettant de synchroniser les mises à jour
afin d’éviter pertes de mise à jour.
Une exécution d'un ensemble de transaction est dite sérialisable si elle donne pour chaque
transaction participante, le même résultat que l'exécution en séquentielle de ces mêmes
transactions.
2. Le verrouillage
L'outil le plus répandu pour sérialiser les transactions est basé sur l'utilisation de
verrous (lock). On impose que l'accès aux données se fasse de manière mutuellement
exclusive. Un verrou est posé sur chaque donnée accédée par une transaction afin
d'empêcher les autres transactions d'y accéder. Mais les verrous ne sont pas tous
équivalents.
Il existe des verrous pour les lectures et d'autres pour les écritures, dont la
compatibilité est résumée dans le tableau qui suit, appelé matrice des compatibilités de
verrouillage :
lecture écriture
lecture compatible non compatible
écriture non compatible non compatible
Verrouillage
Le verrouillage deux phases est une technique de prévention des conflits basée sur le
verrouillage des objets en lecture ou en écriture avant d’effectuer une opération de
sélection ou de mise à jour.
C’est une technique de contrôle des accès concurrences consistant à verrouiller les
objets au fur et à mesure des accès par une transaction et à relâcher les verrous
seulement après obtention de tous les verrous.
1. Avantages
Grâce à la réplication, les lectures sont exécutées sur le site disposant de la copie la
plus proche du client ce qui peut éviter des transferts inutiles, par exemple si le client
dispose d’une copie.
Aussi bien pour les lectures que pour les écritures, la réplication permet d’éviter le
goulot d’étranglement que constitue le serveur unique en partageant la charge.
La réplication favorise aussi d’une part les lectures qui sont alors locales, et d’autres
par la résistance à la panne.
2. Problèmes
Ensuite, il faut offrir la transparence de gestion aux utilisateurs. Les clients doivent
croire à l’existence d’une seule copie : en conséquence, le SGBD doit assurer la
diffusion des mises à jour aux copies et le choix de la meilleure copie lors des accès.
Mode de distribution dans lequel toutes les sous opérations locales effectuées suite à
une mise à jour globale sont accomplie pour le compte de la même transaction.
Dans le contexte des copies, ce mode de distribution est très utile lorsque les mises à
jours effectuées sur un site doivent être prises en compte immédiatement sur les autres
sites.
L’avantage essentiel de la mise à jour synchrone est de garder toutes les données au
dernier niveau de mise à jour.
Le système peut alors garantir la fourniture de la dernière version des données quelque
soit la copie accédée. Les inconvénients sont cependant multiples, ce qui conduit
beaucoup d’application à éviter la gestion des copies synchrones.
Ce sont d’une part la nécessité de gérer les transactions multi listes coûteuses en
ressources, et d’autres parts la complexité des algorithmes de gestion de concurrence et
de panne d’un site c’est pour cela que l’on préfère souvent le mode de mise à jour
asynchrone (encore appelé mise à jour différé)
Mode de distribution dans le quel certaines sous opérations locales effectuées suite à
une mise à jour globale sont accomplies dans des transactions indépendantes en temps
différé.
Le temps de mise à jour des copies peut être plus ou moins différé : les transactions
de report peuvent être lancées dès que possible où à des instants fixés, par exemple le
soir ou en fin de semaine.
Les avantages sont la possibilité de mettre en jour en temps choisi des données tout en
autorisant l’accès aux versions anciennes avant la mise à niveau. Les inconvénients sont
bien sûr que l’accès à la dernière version n’est pas garanti, ce qui limite les possibilités
de mise à jour.