Bases de données réparties PDF
Document Details
Uploaded by PromisedHeliotrope3264
Ecole Polytechnique d'Agadir - Universiapolis
Pr. M.Machkour
Tags
Summary
This document provides an overview of distributed databases, their architecture, replication, fragmentation, and associated concepts. It delves into client-server architectures, different types such as homogeneous and heterogeneous systems, and includes illustrative examples.
Full Transcript
Bases de données réparties Pr. M.Machkour Bases de données répartie Chapitre 1 Objectifs Définition de bases de données réparties Avantages des bases de données réparties Architecture de bases de données réparties Architecture client-serveur Répartition des données Répar...
Bases de données réparties Pr. M.Machkour Bases de données répartie Chapitre 1 Objectifs Définition de bases de données réparties Avantages des bases de données réparties Architecture de bases de données réparties Architecture client-serveur Répartition des données Répartition des traitements Types de bases de données réparties Fragmentation horizontale Fragmentation verticale Fragmentation hybride Définitions ‐ Base de Données Distribuée : BDD = Distributed DataBase : DDB ‐ Base de Données Répartie BDR ‐ BDD=BDR Une BDD est une collection de bases de données logiquement reliées (un seul schéma logique ou conceptuel) et connectées par des réseaux informatiques. Ces bases de données sont vues par l'utilisateur comme une seule BD ou une seule source de données. Répartition des données La répartition des bases de données peut être : ‐ sur machines ‐ sur sites ‐ sur les deux. Répartition sur machines site4 BD1 site1 réseau site2 site3 BD22 BD21 BD3 Répartition sur sites site4 BD1 site1 réseau site2 site3 BD22 BD21 BD3 Répartition sur machines et sur sites site4 BD1 site1 réseau site2 site3 BD22 BD21 BD3 Définition Un Système de Gestion de Base de Données Distribué (SGBDD : DDBMS) est l'ensemble de logiciels qui gèrent une base de données distribuée. Exemples de SGBDD - Oracle Database - MS SQL Server Définition Un système de base de données distribué (SBDD) est formé de BDD et SGBDD. SBDD=BDD+SGBDD Remarque SBDD est aussi appelé SBD Réparti. Architecture d'un SBDD site4 BD1 site1 réseau site2 site3 BD22 BD21 BD3 Architecture d'un SBDND BD11 site4 site1 BD12 réseau BD13 site2 site3 Remarque Réseaux : Distribution SBDD Base de données : Intégration Architecture client/serveur Dans un système de BDD, on exploite l'architecture client/serveur pour assurer la communication ou l'échange entres les sites ou les machines : l'ordinateur au niveau de chaque site peut être client ou serveur. Exemple de schéma : Architecture client/serveur site4 client site1 réseau Select * from repr@site3; Update prod... site3 repr site2 Select * from repr; prod cmd Insert into client@site1...; Update prod@site2... Dans ce schéma, on utilise les tables : client, repr : représentant, prod : produit et cmd : commande Architecture de SBDD A B Utilisateur/App Utilisateur/App Remarque Système de base de données distribué vs Système distribué Système distribué : partage ou distribue une tâche entre plusieurs machines ou serveurs: ‐ Client/Serveur (séparation entre interface et accès aux données). ‐ Application web (séparation de présentation et traitement) ‐ CORBA : Common Object Request Broker Architecture ‐ RMI : Remote Method Invocation Système de bases de données distribué homogène - Les bases de données sont homogènes avec le même SGBD : SBDD homogène. - Exemple de SBDD homogène : Oracle Database Exemple de schéma (Oracle NET) Site4 BD4 SGBD Oracle Site1 SGBD Oracle BD1 réseau Site2 SGBD Oracle BD3 Site3 BD21 BD22 SGBD Oracle Système de base de données distribué hétérogène ‐ Les bases de données peuvent être hétérogènes avec au moins un SGBD différent : SBDD hétérogène. ‐ Cas de Oracle avec un autre SGBD : DB2 de IBM, MS SQL Server… Exemple de schéma Site4 BD4 SGBD Oracle Site1 SGBD Oracle BD1 réseau Site2 SGBD DB2 Site3 BD21 BD22 BD3 Autre SGBD Propriétés d'un SBDD ‐ Les données sont stockées dans plusieurs emplacements; ‐ Les données dans un emplacement forme logiquement une base de données avec un son propre dictionnaire ; ‐ Chaque base de données est gérée par son SGBD (indépendance et autonomie); ‐ Les bases de données sont connectées par réseaux (indépendance de plateforme); ‐ L'accès aux données est transparent aux utilisateurs/applications. Transparence des données ‐ L'emplacement (local ou distant) des données est transparent pour l'utilisateur (fragmentation et/ou réplication); ‐ L'accès est uniforme en local ou à distance via réseaux; ‐ L'accès ne dépend pas de la plateforme de la base de données. Avantages des BDD ‐ Performance : proximité des données, répartition des tâches et décentralisation, allégement du trafic réseau ‐ Disponibilité (disponible dans un intervalle) (plusieurs BDs autonomes, availability) ‐ Fiabilité (disponible à un moment donné)(plusieurs BDs autonomes, reliability) ‐ Extension : ajouter des serveurs ‐ Accès transparent indépendant : ‐ de plateformes matérielles (processeur, adressage de mémoire), ‐ de plateformes logicielles (système d’exploitation, SGBD…), ‐ de réseaux, ‐ de détails des emplacements des données ‐ Amélioration de la sécurité des données (isoler des données) Communication des serveurs Les serveurs de bases de données communiquent et échangent des commandes et des données via des réseaux (protocoles de communication (pile TCP/IP)). Communication des serveurs (suite) - La communication entre les sites composant la BDD est basée sur l'architecture client/serveur. - Un site peut être client ou serveur selon la requête de l'utilisateur. Communication entre serveurs via réseaux Table Service(…) Table Employé(…) TCP/IP TCP/IP A B utilisateur1 A est serveur Select … From Service; A est client, B est serveur Update Employé … utilisateur2 Communications dans un SBDD hétérogène Oracle, DB2, Sybase, MS SQL SERVER. - ODBC (exige pilote (driver) ODBC) - OLE DB (exige fournisseur (provider) OLE DB) Distribution des données - Distribution sans réplication - Distribution avec réplication complète - Distribution avec réplication partielle - Distribution avec fragmentation - Distribution hybride ou mixte Réplication Dupliquer ( et maintenir ) des données dans différentes bases de données du SBDD : notion de fragment. Raisons : ‐ Performances (réduire les flux dans les réseaux et temps de réponse) ‐ Fiabilité et disponibilité (données partagées entre plusieurs serveurs). Types de réplication ‐ Réplication totale : copie de la base sur chaque site (lecture, opérations de mise à jour) ‐ Réplication partielle : copie partielle de la base en termes de tables ou fragments de données Remarque SBD distribué pur contient une seule copie des données. Fragmentation des données Répartir logiquement les données d'une relation (table) en plusieurs relations. Propriété de la fragmentation propriétés de fragmentation - la complétion - la reconstruction - la disjointure Propriétés de la Fragmentation des données (complète) La fragmentation d'une relation R en Ri(fragment) est complète si les données de R sont dans certaines Ri. pour tout X(ligne) de R, il existe i / X est de Ri. ∀ X ∈ R => ∃ i vérifiant X ∈ Ri Propriétés de la Fragmentation des données (reconstruction) La fragmentation d'une relation R en Ri doit permettre la reconstruction de R à base de Ri. R=opi=1…(Ri) avec op = union | jointure… Propriétés de la Fragmentation des données (disjonction) Dans la fragmentation d'une relation R en Ri, l'intersection deux-à-deux des Ri est vide (sauf pour la clé primaire dans …). ∀ i, j Ri ∩ Rj={} Allocation des fragments - Partition : un fragment par un seul site; - Réplication - Réplication totale chaque fragment se trouve dans un site. - Réplication partielle certains fragments sont placés dans certains sites. Fragmentation des données Trois types de fragmentation - Fragmentation horizontale - Fragmentation verticale - Fragmentation hybride Fragmentation des données (suite) Fragmentation horizontale : Diviser une relation en relations (fragments) de même schéma que la relation divisée. Chaque relation est constituée d'un sous ensemble de lignes de la relation divisée. CODE NOM PRENOM VILLE ADRESSE SALAIRE Exemple de fragmentation horizontale Relation initiale : emp(code, nom, prénom, adresse, salaire, ville) Fragments : select * from emp where ville='Agadir' ; (S1) select * from emp where ville'Agadir' ; (S2) Remarque Pour obtenir la relation initiale on fait l'union des relations obtenues par division. select * from S1 union select * from S2; Fragment horizontale : cas général La fragmentation horizontale de R en Ri s'obtient par Ri=σpi(R); Avec i=1 à n et pi est un prédicat (une condition). Ri est un fragment de la relation R. Exercice Relation initiale : emp(code, nom, prénom, adresse, salaire, ville) Q) Fragmenter emp en relations R1 et R2 : - R1 va contenir les employés d'Agadir; - R2 va contenir les employés qui n'habitent pas Agadir. Réponse Relation initiale : emp(code, nom, prénom, adresse, salaire, ville) Q) Fragmenter emp en relations R1 et R2 : - R1 va contenir les employés d'Agadir; R1=σville='Agadir'(emp) - R2 va contenir les employés qui n'habitent pas Agadir. R2=σville'Agadir'(emp); Remarque La relation initiale s'obtient par R= R1 union R2 ou bien R= R1 U R2 qui devient R= σville='Agadir'(emp) U σville'Agadir'(emp) Exercice Ecrire R1 et R2 en SQL. Réponse R1: Select * From emp Where ville='Agadir'; R2: Select * From emp Where ville 'Agadir; Remarque La relation initiale R en SQL s'obtient par Select * From emp Where ville='Agadir'; union Select * From emp Where ville 'Agadir; Exercice Relation initiale : emp(code, nom, prénom, adresse, salaire, ville) Q) Fragmenter emp en relations R1 et R2. - R1 va contenir les employés ayant salaire>= 10000; - R2 va contenir les employés ayant salaire < 10000. Réponse Relation initiale : emp(code, nom, prénom, adresse, salaire, ville) - R1 va contenir les employés ayant salaire>= 10000; R1=σsalaire>=10000(emp) - R2 va contenir les employés ayant salaire < 10000. R2=σsalaire=10000; union Select * From emp Where salaire 20000 Réponse Relation initiale : emp(code, nom, prénom, adresse, salaire, ville) - R1 contient les employés ayant salaire compris entre 10000 et 20000; R1=σsalaire between 10000 and 20000(emp) - R2 contient les employés ayant salaire < 10000. R2=σsalaire 20000 R3=σsalaire>=20000(emp) Avec R = R1 U R2 U R3 Réponse avec SQL R1: Select * From emp Where salaire between 10000 and 20000; R2: Select * From emp Where salaire < 10000; R3: Select * From emp Where salaire>20000; La relation initiale R en SQL Select * From emp Where salaire between 10000 and 20000; union Select * From emp Where salaire < 10000; union Select * From emp Where salaire>20000; Fragmentation verticale des données Définition La fragmentation verticale consiste à diviser une relation en sous relations contenant un sous ensemble d'attributs de la relation initiale. La relation initiale peut être obtenue par jointures des relations de fragments. Employé CODE NOM PRENOM VILLE ADRESSE SALAIRE Exemple Table initiale : emp(code, nom, prénom, adresse, salaire, ville) Fragments : select code, nom, prénom, ville from emp; (S1) select code, adresse, salaire from emp; (S2) Remarque Pour obtenir la table initiale on fait la jointure des tables obtenues par fragmentation. select * --les colonnes communes ne sont pas dupliquées à l'affichage from S1 natural join S2; Ou bien select * --les colonnes communes ne sont pas dupliquées à l'affichage from S1 join S2 using(code); Ou bien select * --les colonnes communes sont dupliquées à l'affichage from S1 join S2 on S1.code=S2.code; --jointure généralisée Remarque - L'utilisateur accède aux données de manière transparente. - La requête globale sera divisée en sous-requêtes ou fragments de requête. Fragmentation hybride des données Fragmentation hybride sélection (projection) = fragmentation_horizontale (fragmentation_verticale) σp(Π a1 ,…, an (R)) Ou bien projection(sélection) = fragmentation_verticale(fragmentation_horizontale) Π a1 ,…, an (σp(R)) Exemple de fragmentation hybride Table initiale : emp(code, nom, prénom, adresse, salaire, ville) Fragments : (s1) : select code, nom, prénom from emp where ville='agadir' (s2) : select code, adresse, salaire, ville from emp where ville'agadir' Distribution des traitements - Oracle net Services application : transparence d’accès aux données via pile TCP/IP - Communication client-serveur et serveur-serveur pour autoriser : - Instructions SQL distantes : lecture ou mise à jour à distance(même serveur), transactions distantes - Instructions SQL distribuées : lecture ou mise à jour réparties sur plusieurs serveurs (procédure stockée, triggers), transactions distribuées - Intégrité référentielle : (non permise grâce aux instructions déclaratives) une table locale fait référence à une table distante : grâce aux triggers (en exercice) Réplication (objets à répliquer) : relation, index, vue, procédure, fonction Types de réplication en termes de stockage : - Pas de réplication (partitionnement de la base) - Réplication partielle - Réplication totale Groupe de réplication : objets à répliquer Dans la réplication, on distingue : - site master (données originales) et - site esclave (données répliquées) de groupe de réplication Réplication : sites master et site slave Site4 BD4 Slave Site1 (réplication) master BD1 réseau Site2 master BD3 Site3 BD21 BD22 master Groupe de réplication : objets à répliquer Dans la réplication, on distingue : - site master (données originales) et - site esclave (données répliquées) de groupe de réplication Deux types de réplication : - Réplication synchrone : temps réel (commit) - Réplication asynchrone : différée en secondes, minutes, heures voir jours Problème de conflits de MAJ Propriété maître-esclave: - OLTP (base de données analytique, DW ou entrepôt de données) : informatique décisionnelle - Diffusion ou dissémination de l’information centralisée, un site master diffuse pour d’autres sites slaves - Consolidation des données : rassemblement des informations venues des sites masters sur un site centralisé pour être utilisées par un site slave - Application mobile : informations (fragments : départements) viennent de plusieurs sites (entité globale, établissement, lecture-écriture) vers un site (fragment de base, lecture) - Réplication symétrique Réplication : OLTP, DW Site4, Slave (OLTP, BD4 DW, Site1 réplication) master BD1 réseau Site2 master BD3 Site3 BD21 BD22 master Réplication : diffusion des données BD4 Site4 Site1 Slave master BD1 réseau Site2 slave BD3 Site3 BD21 BD22 slave Réplication : consolidation des données BD4 Site4 Site1 Slave master BD1 réseau Site2 master BD3 Site3 BD21 BD22 master Réplication : mobilité BD4 Site4 Site1 Slave master BD1 réseau Site2 master BD3 Site3 BD21 BD22 master Réplication symétrique BD4 Site4 Site1 master master BD1 réseau Site2 master BD3 Site3 BD21 BD22 master Résumé Définitions Architecture d'une BDR Fragmentation