Chapitre 1 : Introduction aux Bases de Données Réparties
Définition
Une Base de Données Répartie (BDR) est une collection de bases localisées
sur plusieurs sites physiques et perçues comme une seule base logique par les
utilisateurs. Contrairement à une base de données centralisée, elle introduit des
concepts spécifiques comme la transparence de localisation et la répartition
des données.
Caractéristiques des BDR
Schéma local et global : chaque base possède son propre schéma local, et
un schéma global assure une vue unifiée.
Transparence des données : les utilisateurs accèdent aux données sans se
soucier de leur emplacement réel.
Besoins des BDR
Les BDR sont devenues essentielles pour :
1. Décentraliser l'information dans les multinationales.
2. Gérer l'augmentation des volumes de données et de transactions (10 fois
dans les cinq prochaines années).
3. Améliorer le temps de réponse pour de gros volumes de données grâce à
l'accès parallèle et la communication entre nœuds.
Architectures des Bases de Données
1. Architecture centralisée : programme d'application et SGBD sur une
seule machine.
2. Architecture Client-Serveur (2-tiers) : application sur le client, SGBD
sur le serveur.
3. Architecture 3-tiers : interface utilisateur sur le client, application sur un
serveur intermédiaire, données sur un serveur dédié.
Avantages des BDR
Fiabilité accrue : grâce à la réplication, une panne de site n'est pas
critique.
Meilleures performances : réduction du trafic réseau en rapprochant les
données de leur point d'accès.
Facilité d'accroissement : ajout de machines pour augmenter la capacité
du système.
Problèmes à surmonter
1. Coût : communication entre sites et gestion des logiciels supplémentaires.
2. Concurrence : gestion simultanée des transactions.
3. Sécurité : plus complexe que dans une base centralisée.
Chapitre 2 : Conception des Bases de Données Réparties
Approches de Conception
1. Conception descendante (top-down) :
o On commence par définir un schéma conceptuel global.
o Ensuite, on fragmente les données et on les alloue aux différents
sites.
2. Conception ascendante (bottom-up) :
o Part de bases de données existantes.
o Unification des schémas locaux en un schéma conceptuel global.
Techniques de Fragmentation
1. Fragmentation horizontale :
o Distribution des lignes d'une table selon une condition de sélection.
o Avantage : améliorer les performances locales.
o Exemple : fragmenter une base de comptes bancaires en fonction
du type de compte (courant ou épargne).
2. Fragmentation verticale :
o Répartition des colonnes d'une table.
o Avantage : distribuer uniquement les informations nécessaires à
chaque site.
3. Fragmentation hybride :
o Combinaison de la fragmentation horizontale et verticale.
Allocation des Fragments
Sans réplication : chaque fragment est unique sur un site.
Réplication partielle : certains fragments sont copiés sur plusieurs sites.
Réplication totale : chaque fragment est disponible sur tous les sites.
Avantages de la réplication
Performance accrue : temps de réponse plus rapide.
Fiabilité améliorée : les données restent disponibles même en cas de
panne d’un site.
Inconvénients
Les mises à jour doivent être propagées sur toutes les copies, ce qui est
coûteux.
Chapitre 3 : Traitement et Optimisation des Requêtes Réparties
Problèmes à considérer
Entrées/Sorties disque pour accéder aux données.
Coût CPU pour traiter les données (jointures, sélections, projections).
Coût de communication réseau pour transférer les données entre les
sites.
Optimisation des Requêtes
1. Semi-jointure :
o Réduit le volume de données transférées entre sites en faisant des
jointures partielles.
2. Parallélisme intra-requêtes :
o Exécution simultanée de plusieurs opérations sur différents sites.
3. Arbres algébriques optimisés :
o Transformation des requêtes pour éliminer les opérations inutiles et
réduire les volumes de données intermédiaires.
Chapitre 4 : Concurrence d'Accès et Reprise
Notion de Transaction
Une transaction est une séquence d'opérations sur une base de données,
terminée par une validation (Commit) ou une annulation (Rollback).
Exemple : débit d'un compte bancaire.
Propriétés ACID des Transactions
1. Atomicité : une transaction s’exécute entièrement ou pas du tout.
2. Cohérence : respect des contraintes d'intégrité.
3. Isolation : les transactions concurrentes n’interfèrent pas.
4. Durabilité : les changements validés sont permanents.
Problèmes de Concurrence
1. Perte de mise à jour : deux transactions modifient la même donnée, mais
une écrase l'autre.
2. Lectures incohérentes : lecture de données modifiées mais non validées.
3. Écritures incohérentes : violation des contraintes d'intégrité.
Algorithmes de Contrôle de Concurrence
1. Verrouillage à deux phases :
o Une phase d'accumulation de verrous, suivie d'une phase de
libération.
o Empêche les lectures et écritures incohérentes.
2. Estampillage :
o Les opérations doivent respecter l'ordre chronologique des
transactions.
3. Niveaux d'Isolation SQL :
o Read Uncommitted : accepte des lectures sales.
o Serializable : isolation complète, évite les phénomènes
indésirables.
Reprise après Panne
Types de Pannes
1. Transaction : annulation d'une transaction.
2. Système : perte du contenu de la mémoire vive.
3. Support : perte des données sur disque.
Journalisation
Images avant : permettent d’annuler des écritures.
Images après : permettent de restaurer les écritures validées.
Gestionnaire de Reprise
Pilote la validation et l'annulation des transactions.
Utilise les journaux pour assurer la cohérence après une panne.