Bases de Donn Es R Parties PDF
Bases de Donn Es R Parties PDF
Bases de Donn Es R Parties PDF
M. Nassar
Introduction
Définitions et vocabulaire
Objectifs des SGBDR
Architecture des SGBDR
Cas d’Oracle
Conclusion
Serveur de BD
BD centralisée
Même site
Clients
Clients
réseaux
BD centralisée
Clients
Clients
Inconvénients :
Le réseau peut tomber en panne !
Sur utilisation du réseau
Enoncé :
Hypothèse :
.
Aucun héritage informatique
BD centralisée
Réseau
Clients
Clients
Site Fès
Serveur de communication
Site Agadir
Serveur de communication
Clients
Clients
Inconvénients :
Si le site central tombe en panne ?!
Si le réseau tombe en panne ?!
Le coût de la communication et du transfert des données
Charge de calcul concentrée sur le serveur central
Réseau
Clients Clients
Site principal
Site d ’Agadir Site de Fès
Serveur de BD Serveur de BD
BD dupliquée BD dupliquée
Clients Clients
Inconvénients :
Plusieurs SGBDs
Problèmes de MAJ et d’incohérence de la base
Plusieurs administrateurs de la base
Surcharge de la base par des données non nécessairement utiles en local
Enoncé :
Hypothèse :
Serveur de BD Serveur de BD
Clients Clients
Serveur de BD Serveur de BD
Clients Clients
Serveur de BD Serveur de BD
Clients Clients
Serveur de BD Serveur de BD
Clients Clients
Serveur de BD Serveur de BD
Clients Clients
Serveur de BD Serveur de BD
Clients Clients
UM5A
Select * from
Etudiant
UM5S
Avantages :
Prendre en compte la répartition géographique des données
Prendre en compte la distribution fonctionnelle des données
Une meilleure disponibilité des données en présence de panne ou de dysfonctionnement
des applications
Une plus grande flexibilité afin d’assurer le partage des données hétérogènes et réparties
Meilleures performances (données réparties sur plusieurs bases gérées par des serveurs
différents mieux adaptés)
Inconvénients :
Complexité des SGBDRs
Problèmes de cohérence dus à la distribution du contrôle de données entre plusieurs sites
Difficulté de changement (ex. intégration d’un nouveau type de SGBD)
Multiclients multiserveurs
Support de l’Hétérogénéité
Multiclients multiserveurs
Fournir un mécanisme de contrôle des accès concurrents adapté
Garantir que l’effet de l’exécution simultanée des transactions est le même que celui
d’une exécution séquentielle (sérialisabilité des transactions)
Permettre l’exécution des requêtes distribuées
Une requête distribuée est une requête émise par un client dont l’exécution nécessite
l’exécution de N sous-requêtes sur N serveurs avec N>1
Une transaction distribuée est une transaction qui met en œuvre plusieurs serveurs
Client1 Client2
RD R1
R2
R3
Requête Transaction
distribuée distribuée
Avantages :
- Simplifier la vue utilisateur et l’écriture de ses requêtes
- Introduire la possibilité de déplacer les objets sans modifier les requêtes
Inconvénient :
- Contraindre le SGBDR à rechercher les sites capables de générer des éléments de réponse
à une requête pour l’exécuter (fonction pas évidente)
Solution :
- Utilisation d’un nom hiérarchique pour les objets : <objet>@<base>
- Utilisation d’un alias pour retrouver l’indépendance à la localisation
Meilleure disponibilité
- Disponibilité des données : une des justifications essentielles des SGBDR
- La répartition permet de ne plus dépendre d’un site central
- Gestion des copies : se replier sur une copie lorsqu’une autre est indisponible (site en
panne) ===> Réplication
- Assurer une meilleure disponibilité, c’est aussi garantir l’Atomicité des transactions
Autonomie locale
Garder une administration locale séparée et indépendante pour chaque serveur participant à
la base de données répartie (pas d’administration globale)
===> les reprises après panne et les mises à niveau des logiciels doivent être accomplies
localement et ne pas impacter les autres sites
Hétérogénéité
- Capacité d’unifier des modèles et langages afin de générer des bases fédérées.
- Intégration sémantique des bases
- Traduire les requêtes exprimées dans un langage Pivot (ex. SQL) en requêtes
compréhensibles par le SGBD local (dans un contexte de BD hétérogènes).
- Router les mises à jour vers les sites concernés en assurant la gestion des transactions
réparties (vérification des règles d’intégrité, contrôle des accès concurrents, gestion de
l’atomicité des transactions distribuées).
Schéma global
Schéma local : Schéma décrivant les données d’une BD locale gérée par le SGBD local
Schéma exporté : Schéma décrivant les données exportées par un site vers les sites clientss
Schéma global : L’ensemble des schémas exportés par tous ou certains sites clients exprimé
dans le modèle de référence du SGBDR et décrivant globalement la base répartie (le
schéma global est non matérialisée dans les sites clients).
Vue intégrée : Schéma décrivant dans le modèle du SGBDR les données de la BDR accédées
par une application.
Niveau local : présent sur chaque serveur permet d’exporter les données locales selon le
modèle pivot du SGBDR.
Niveau interopérabilité : permet de formuler des requêtes mettant en jeu des vues intégrées
de la base. Il assure la décomposition des requêtes en sous-requêtes et le passage des vues
intégrées aux différents schémas importés
Schéma importé
Accès Objets
Distants
Niveau
Accès Objets
Communication Locaux
Schéma exporté
Adaptateur local Serveur
Niveau
X Schéma local
Local
Conception descendante
- Utilisée lors de la constitution de nouvelles bases de données
- Un schéma conceptuel est tout d’abord élaboré puis les diverses entités de ce schéma sont
distribuées sur les sites ===> définition des schémas locaux
BDR
Conception ascendante
- Intégration des BD locales existantes dans une base fédérée
===> intégration des schémas locaux existants afin de constituer un schéma global
BDR
- La conception ascendante d’une BD conduit à distribuer sur différents sites des fragments
- Pour la conception descendante, une table globale étant aussi divisée en fragments
UNION
Etudiant_L
Etudiant_M Etudiant
Etudiant_D
Projection et restriction
Jointure
Projection
- Atomicité : Une transaction doit effectuer toutes ses mises à jour ou ne rien faire du tout
- Cohérence : Une transaction doit faire passer la BD d’un état cohérent à un autre
- Isolation : Les résultats d’une transaction ne doivent être visibles aux autres transactions
qu’une fois la transaction validée
- Durabilité : Dès qu’une transaction valide ses modifications, le système doit garantir que ces
modifications seront conservées en cas de panne
Dans le cadre d’un système réparti, chaque site peut décider de valider ou
d’annuler une transaction ====> il faut donc coordonner les validations
Site coordinateur
PREPARE PREPARE
OK OK
COMMIT
COMMIT
ACK ACK
Site coordinateur
PREPARE PREPARE
OK KO
ABORT
ABORT
ACK ACK
Site coordinateur
PREPARE PREPARE
OK OK
COMMIT
COMMIT
ACK STATUS
COMMIT
ACK
Site coordinateur
PREPARE PREPARE
OK OK
PREPARE PREPARE
OK OK
COMMIT
COMMIT
ACK ACK
- Syntaxe de la commande :
- Il est impossible d’utiliser les DB LINKS pour les clés étrangères distantes
- Solution : Créer deux TRIGGERS :
- Sur le fragment fils : le père doit exister
- Sur le fragment père : suppression impossible si des fils sont présents
- Chaque site distant doit créer un compte ayant accès aux objets répartis locaux
- Ces comptes ‘miroir’ sont créés par l’administrateur et reçoivent les droits d’accès par les
propriétaires des données réparties
- Chaque responsable local de la base de données réparties ne connaît que les mots de passe
des comptes ‘miroir’ distants
- Les synonymes :
- Création d’un synonyme
CREATE SYNONYM Client FOR Client@lien_Base2;
- Suppression d’un synonyme
DROP SYNONYM Client;
- Synonyme d’une séquence distante :
CREATE SYNONYM Sequence_Client
FOR Sequence_Client@lien_Base2;
- Les données réparties sont encapsulées et ne sont pas accessibles directement aux
développeurs clients
- Les règles de fragmentation sont dans les procédures
- Transparence de la localisation des données aux utilisateurs
- Exemple :
CREATE TRIGGER InseretClient
INSTEAD OF INSERT ON Client
FOR EACH ROW
BEGIN
IF :NEW.Ville=‘Rabat’ THEN
INSERT INTO Client_Rabat@vers_BaseRabat VALUES(:NEW.NumCli, :NEW.Nom, :NEW.Adr) ;
ELSIF :NEW.Ville=‘Casablanca’ THEN
INSERT INTO Client_Casa@vers_BaseCasa VALUES(:NEW.NumCli, :NEW.Nom, :NEW.Adr) ;
ELSE RAISE_APPLICATION_ERROR (-20455,’Entrer Rabat ou Casablanca’);
END IF;
END;
/
- Distribution
- Bases de données distribuées ou réparties
- Sans redondance
- Duplication
- Duplication locale d’un fragment éloigné maître
- Fragment locale en lecture seule
- Utilisation de la notion de cliché
- Duplication synchrone ou asynchrone
- Réplication
- Pas de fragment maître
- Réplication synchrone : utilisation de jetons
- Réplication asynchrone : problèmes de cohérence
Avantages :
- Améliorer les performances
Utilisation de la copie la plus proche du client => évite des transferts inutiles
- Augmenter la disponibilité des données
Lors d’une panne d’un serveur, on peut se replier sur un autre disposant d’une copie des
données
Avec N copies sur des serveurs différents => Disponibilité = 1 – probabilité_panne N
Inconvénients :
- Assurer la convergence des copies
- Offrir une transparence de gestion aux clients : les clients doivent croire à l’existence
d’une seule copie
Le SGBD doit assurer la diffusion des mises à jour aux copies et le choix
de la meilleure copie lors des accès
- Duplication asynchrone : propager les modifications apportées aux données sources vers
les copies à des intervalles prédéfinis.
- Utilisation d’un programmateur
- Oracle utilise la notion de SNAPSHOT ou vues matérialisées
- Utilisation des trigger de type ‘before’ qui propage la mise à jour sur la table image
Table copie1
Ordre de
Table maître Trigger synchronisation
Table copie2
Ordre de
MAJ
- Pour chaque table maître qui alimente un cliché, il faut créer un journal d’images
(SNAPSHOT LOG)
- Une table maître (même journal) peut alimenter plusieurs fragments dupliqués