Академический Документы
Профессиональный Документы
Культура Документы
I- Introduction :
Les systèmes de gestion des bases données distribuées ont été inventés à la fin des années 70
afin d’intégrer les bases de données et les réseaux.
Définition : Une base de données distribuée est un ensemble de bases stockées sur plusieurs
machines dans le but de se comporter vis-à-vis des applications comme une base de données
unique.
D’une façon plus générale, lorsque le déroulement d’une transaction, invoque plus d’un
serveur, on parle de BD distribuée.
II-2 Indépendance à la fragmentation : Une relation peut être fragmentée en plusieurs parties
chacune dans un site différent et là aussi, l’écriture des requêtes ne doit pas dépendre de cette
fragmentation.
II-3- Indépendance aux SGBD : Chaque base de données est gérée par son propre SGBD
(Oracle, Ingres …) et ceci ne doit pas se répercuter sur les programmes utilisateurs. Ceci
exige un mécanisme de traduction du modèle de données et du langage de requêtes de chaque
base de données.
II-4 Autonomie des sites : Chaque serveur participant dans la base de données distribuée doit
contrôler et gérer ses propres données de manière locale (gestion des schémas, contrôle des
transactions, les reprises après panne,…) indépendamment des autres sites.
Un SGBD distribué permet de gérer une BD distribuée en faisant appel à des SGBD locaux.
Pour cela, il a à sa disposition :
- dictionnaire de données réparties
- traitement des requêtes réparties
- gestion des transactions réparties
- communication de données inter-sites
- gestion de cohérence et de sécurité
III-1- Schéma local : chaque base de données locale met à la disposition des autres sites son
propre schéma.
1
Bachtarzi.C Cours : bases de données avancées
Filière SITW Niveau : Master 1
III-3- Niveaux de couplage : Il existe plusieurs niveaux de couplage dans un système
distribué.
Premier cas : la base n’est accessible que par le schéma global.
- La base Master ne contient que les méta-données
- Les accès aux sites locaux sont interdits.
- Couplage fort
IV- Conception d’une base de données distribuée : On distingue deux approches différentes.
Etapes :
- Conception du schéma conceptuel global
- Distribution pour obtenir des schémas conceptuels locaux
- Fragmentation
- Affectation aux sites – Allocation
2
Bachtarzi.C Cours : bases de données avancées
Filière SITW Niveau : Master 1
V- Fragmentation :
Consiste à distribuer sur différents sites des parties appelées fragments d’une table globale.
Pourquoi fragmenter ?
- De meilleures performances
- Réduire le trafic sur le réseau, donc une meilleure utilisation de ses possibilités
- répartir l'impact sur les processeurs et sur leurs entrées/sorties.
- L'utilisation de petits fragments permet de faire tourner plus de processus
simultanément
V-1- Fragmentation verticale : Découpage d’une table en relations par projection permettant
de sélectionner les colonnes composant chaque fragment. La table initiale doit pouvoir être
recomposée par jointure des fragments.
VI- Schéma de répartition : Chaque fragment est placé sur un site. Un schéma doit être
élaboré afin de déterminer la localisation de chaque fragment et sa position dans le schéma
global. Lors de l’exécution d’une requête distribuée, le SGBDR doit décomposer sa requête
globale en plusieurs requêtes locales en utilisant son schéma de répartition.
3
Bachtarzi.C Cours : bases de données avancées
Filière SITW Niveau : Master 1
Schéma de Fragmentation
fragmentation
Schéma Optimisation
D’allocation
SELECT nom FROM client1@site1
WHERE numéro = 234
UNION
SELECT nom FROM client2@site2
WHERE numéro = 234
4
Bachtarzi.C Cours : bases de données avancées
Filière SITW Niveau : Master 1
VII- Outils de distribution :
BD1 BD2
Si les deux BD doivent se connaître mutuellement, il faut créer deux database link.
BD1 BD2
Public database link: tous les utilisateurs PL/SQL de la base pourront utiliser ce lien
pour accéder aux données et aux objets de la BD distante correspondante.
5
Bachtarzi.C Cours : bases de données avancées
Filière SITW Niveau : Master 1
6
Bachtarzi.C Cours : bases de données avancées
Filière SITW Niveau : Master 1
- Le client émet la requête
- Il valide la transaction
- Il récupère un éventuel message d’erreur, mais n’attend pas de valeurs en retour
-- Mise à jour d’un fragment distant :
UPDATE ma-table@mon-alias
SET col = value WHERE condition;
Triggers INSTEAD OF : Possibilité de modification des vues qui ne peut avoie lieu avec les
commandes SQL.
• Le trigger devra implémenter la règle de distribution.
• Le trigger devra rédiger la requête et la diviser vers les fragments.
Exemple : Règle de distribution sur le code. Fragment dans BD1 pour code de ‘A’ à ‘M’
Table
Numéro
Code
Libellé
Table1 Table2
Numéro Numéro
Entre A et M Code Code Entre N et Z
Libelle libelle
7
Bachtarzi.C Cours : bases de données avancées
Filière SITW Niveau : Master 1
VIII-1- Définitions :
8
Bachtarzi.C Cours : bases de données avancées
Filière SITW Niveau : Master 1
Synchrone ou asynchrone: détermine quand les mises à jour sont propagées vers tous les sites:
o Ecriture
- Vérifier la version : si X modifié depuis le début de T, alors abandon
Architecture client/serveur :
Portion client : application frontale qui converse avec le client.
Le client émet les requêtes.
Portion serveur : gère les fonctions liées aux accès concurrents
Accepte les instructions SQL et PL/SQL émises par les applications clientes.
9
Bachtarzi.C Cours : bases de données avancées
Filière SITW Niveau : Master 1
Traite les requêtes et transmet les résultats aux clients
Exemple :
Un noeud peut se comporter comme client, serveur ou les deux en fonction de la situation.
Si requête : DELETE FROM Serv…. nœud siège sera le serveur.
Si requête : INSERT INTO Emp@Ventes…. nœud siège sera le client.
Les BD oracle utilisent le logiciel Net8 qui leur permet de communiquer en réseau et de
prendre en charge les txns distantes et distribuées.
Un snapshot génère une copie d’une partie de la base au moyen d’une requête :
CREATE SNAPSHOT Ventes.Commandes AS
SELECT * FROM ventes.commandes;
Si la requête de définition contient une clause GROUP BY ou des opérations JOIN ou SET, il
s’agit d’un snapshot complexe qui nécessite un traitement supplémentaire.
10