Chapitre 1 Université du Havre MASTER MATHÉMATIQUES ET INFORMATIQUE-Option SIRES 2013/20134 COURS BASES DE DONNEES REPARTIES Nakechbandi M., LITIS, Email : nakech@free.fr 1. Introduction : Notion de Bases de 2. Définition : BD Répartie 3. Architecture des SGBD 4. Conception des bases réparties 5. Evaluation de requêtes réparties 6. Notion de Transaction Répartie 7. Les produits industriels des SGBDR gestion de Introduction : Rappel - Bases de conception et modélisation Gestion de : Qu'est-ce qu'une BD? Collection de structurées reliées par des relations Interrogeable et modifiable par des langages de haut niveau Modélisation des Eliminer la redondance de Centraliser et organiser correctement les Outils de conception Logiciel «Système de Gestion de Bases de Données» Interrogation, cohérence, partage, gestion de pannes, etc Administration facilitées des système(logiciel) 1.2 Architecture des SGBD Architecture centralisée Les architectures physiques de SGBD sont très liées au mode de répartition. BD centralisée Terminaux passifs BD client/serveur BD client/multi-serveurs réseau BD répartie BD hétérogène BD mobile BD parallèle Appli 1 Appli 2 Appli n SGBD Mainframe 1.3 1.4
Architecture client-serveur Architecture Client-Multiserveurs Clients intelligents Appli 1 Appli 2 Appli n Appli 1 réseau SQL SQL ODBC ODBC serveur SQL SQL SGBD SGB SGB 1.5 1.6 Architecture répartie Architecture mobile Clients intelligents mobiles Appli 1 Appli 2 Appli n Données répliquées et/ou personnelles Réseau sans fil serveur SGB SGB SGBD 1.7 1.8
BD parallèle 2. Définition : BD Répartie BD parallèle = Techniques des bases de + Parallélisme et architecture parallèle Cette option permet d exécuter certains ordres SQL en parallèle BD Répartie Ensemble de bases localisées sur différents sites, perçues par l'utilisateur comme une base unique Il faut bien entendu avoir une machine multiprocesseur pour en tirer avantage. Chaque base possède son schéma local ORACLE PARALLEL CREATE TABLE tablename (...) PARALLEL 4; 4 spécifie le nombre de processus qui peuvent parcourir la table en parallèle Le schéma de la base répartie constitue le schéma global Les sont accédées via des vues intégrées assurent la transparence à la localisation permettent des recompositions de tables par union/jointure 1.9 1. Exemple Une application gère une coopérative vinicole dont le schéma conceptuel est le suivant : Producteurs Si on suppose que cette base de est gérée par 3 sites : localisés à, Bordeaux, et Dijon, on peut envisager une gestion par un schéma relationnel comme suit : commande Buveurs vins produit Une implémentation centralisée de ce schéma donne le schéma relationnel suivant : Buveurs (nb, nom, prénom, ville) Commandes (nb, nv, date, ) Vins (nv, cru, année, degré) Producteurs (np, nom, région) Produit (nv, np, ) PARIS Buveurs commandes Bordeaux Dijon Vins vins producteurs producteurs produit produit 1.11 1.12
Quelques définitions complémentaires Exemples (Multibase, BD fédérée) BD interpérables : BD capable d échanger des en comprenant mutuellement ce qu elles représentes Exemple : La création d une table dynamique d Access liée à une table Oracle via ODBC Multibase : Plusieurs bd hétérogènes capable d interopérer avec une application via un langage (ou interface) commun (sans modèle commun) Exemple : Exercice 1 td1 BD fédérée : Plusieurs bd hétérogènes accédées comme une seule via une vue commune (avec modèle commun). Exemple : Commentaires Système légataire : stocke les de gestion de l'entreprise, Bases de techniques : Cette base décrit les produits fabriqués et leurs composants, base de textuelles : contient par exemple les manuels d'opérations. bases de géographiques : Cette BD décrit la localisation des usines et des clients. 1.13 1.14 Système de GBD réparti (SGBDR) Evaluation de l'approche BDR SGBDR avantages Extensibilité SGBD1 SGBD2 partage des hétérogènes et réparties performances avec le parallélisme (d accès) Disponibilité des à sur plusieurs sites (avec la réplication) DEFINITION : UN SGBD REPARTI ASSURE LA GESTION D'UNE BD REPARTIE Objectifs : Rend la répartition (ou distribution) transparente Définition des réparties : Cohérence des ---> dictionnaire des réparties traitement des requêtes réparties ---> Requête distribuée : Requête émise par un client dont l exécution nécessite l exécution de n sous requêtes sur n serveur (n > 1) gestion de transactions réparties gestion de la cohérence et de la sécurité Autonomie locale des sites Support de l hétérogénéité 1.15 inconvénients administration complexe distribution du contrôle surcharge (l échange de messages augmente le temps de calcul) 1.16
3. Architecture de schémas Schéma global Deux approches : Schéma global Schéma fédéré schéma conceptuel global donne la description globale et unifiée de toutes les de la BDR (e.g., des relations globales) indépendance à la répartition application 1 application 2 Schéma global schéma de placement règles de correspondance avec les locales indépendance à la localisation, la fragmentation et la duplication Schéma local 1 Schéma local 2 Schéma local 3 Le schéma global fait partie du dictionnaire de la BDR et peut être conçu comme une BDR (dupliqué ou fragmenté) 1.17 1.18 Exemple de schéma global Architecture fédérée Schéma conceptuel global Client Cde (nclient, nom, ville) (ncde, nclient, produit, ) application 1 application 2 Schéma de placement Schéma fédéré 1 Schéma fédéré 2 Client = Client1 @ Site1 U Client1 @ Site2 Cde = Cde @ Site3 Schéma local 1 Schéma local 2 Schéma local 3 1.19 1.20
Exemple de schéma fédéré On considère deux bases de : La première est la BD préfecture composée de 3 tables : (Installée sur le site 1) PERSONNE (NOM, PRÉNOM, ADRESSE,...) VOITURE (N-VEH, MARQUE, TYPE,... ) CONDUCTEUR (N-PERS, N-VEH, NBACC,...) La deuxieme est la BD SAMU composée de 2 tables (Installée sur le site 2) ACCIDENT (N-ACC, DATE, DEPT, N-VEH, N-PERS,...) BLESSÉ (N-ACC, N-PERS, GRAVITÉ,...) Une application a besoin de la requête suivante : On souhaite trouver la Liste des blessés graves dans une R18 dans la préfecture du site 1 Solution : Pour migration vers une BDR la question qui se pose ici est comment répartir les et comment on peut les reintégrer : - Décomposition en BD locales - Intégration logique des BDs locales existantes décomposition BDR intégration BD1 BD2 BD n 1.21 1.22 Méthode de conception d une BD répartie METHODE DESCENDANTE : Conception par décomposition METHODE DESCENDANTE -> Schéma conceptuel global de la base Table globale -> Fragmentation des relations -> Allocation des fragments fragmentation METHODE ASCENDANTE -> N schémas conceptuels locaux allocation -> Intégration des n vues locales afin d'obtenir un unique schéma conceptuel global -> Modification éventuelle de la fragmentation et de la réplication Site 1 Site 2 1.23 1.24
Exemple Objectifs de la décomposition Fragmentation trois types : horizontale, verticale, mixte performances en favorisant les accès locaux équilibrer la charge de travail entre les sites (parallélisme) Duplication (ou réplication) favoriser les accès locaux augmenter la disponibilité des 1.25 1.26 Fragmentation horizontale Fragmentation horizontale dérivée Fragments définis par sélection Client Client1 = Client where ville = "" Client2 = Client where ville "" nclient nom ville C 3 Dupont Smith Lyon Lille Fragments définis par jointure Cde1 = Cde where Cde.nclient = Client1.nclient Cde2 = Cde where Cde.nclient = Client2.nclient Cde ncde nclient produit P 1 P 2 P 3 P 4 20 5 Client1 nclient nom ville Reconstruction Cde = Cde1 U Cde2 Reconstruction Client =Client1 U Client2 C 3 Client2 Dupont nclient nom ville Smith Lyon Lille Cde1 ncde nclient produit P 1 P 2 20 Cde2 ncde nclient produit P 3 P 4 5 1.27 1.28
Fragmentation verticale Allocation des fragments aux sites Fragments définis par projection Cde1 = Cde (ncde, nclient) Cde2 = Cde (ncde, produit, ) Reconstruction Cde = [ncde, nclient, produit, ] where Cde1.ncde = Cde2.ncde Utile si forte affinité d'attributs Cde ncde nclient produit P 1 P 2 P 3 P 4 20 5 Non-dupliquée partitionnée : chaque fragment réside sur un seul site Dupliquée chaque fragment sur un ou plusieurs sites maintien de la cohérence des copies multiples Règle intuitive: si le ratio est [lectures/màj] > 1, la duplication est avantageuse Cde1 ncde nclient Cde2 ncde produit P 1 P 2 P 3 P 4 20 5 1.29 1.30 Exemple d'allocation de fragments METHODE ASCENDANTE : Création d'un schéma unique partant de plusieurs schémas Conception BDR par intégration Client1 nclient nom ville C 3 Dupont Client2 nclient nom ville Smith Lyon Lille Traduction de schémas BD1 BD2 BD3 Traducteur 1 Traducteur 2 Traducteur 3 Cde1 ncde client produit P 1 P 2 20 Cde2 ncde client produit P 3 P 4 5 S local Intégration de schémas 1 S local 2 Intégrateur S local 3 Site 1 Site 2 Schéma Global 1.31 1.32
Les étapes 5. Requêtes réparties La création d'un schéma unique passe par les quatre étapes suivantes : 1. pré-intégration identification des éléments reliés (e.g. domaines équivalents) et établissement des règles de conversion (e.g. 1 inch = 2,54 cm) Pbs : hétérogénéité des modèles de, des puissances d expression, des modélisations 2. comparaison identification des conflits de noms (synonymes, homonymes) et des conflits structurels (types, clés, dépendances) 3. conformance résolution des conflits de noms (renommage) et des conflits structurels (changements de clés, tables d'équivalence) Définition de règles de traduction entre le schéma intégré et les schémas initiaux. 4. fusion et restructuration fusion des schémas intermédiaires et restructuration pour créer un schéma intégré optimal. Exemple : Exercice 1 de TD1 Requête sur tables globales Fragmentation Requête sur fragments Optimisation Plan d'exécution réparti Schéma de fragmentation Schéma d'allocation 1.33 1.34 Exemple : On considère le schéma relationnel suivant : - Produit(NP, Designation, PrixUnit,...) - Client(NCL, Nom, Ville) - Commande(NP, NCL, Date, Qte,...) On cherche à exécuter la requête : On sait que les commandes concernent les produits qui sont enregistrer dans le site3 et le site 4 (produit1). L exécution de cette requête peut se faire par le schéma : select NCL,Nom,Date, Sum(Qte*PrixUnit) from (Cmd join Client using (NCL)) join Produit using (NP) group by NCL,Nom,Date; L implementation de la BD repartie est comme suite : 1.35 1.36
La fragmentation de l arbre d exécution donne : Allocation des fragments de l arbre 1.37 1.38 Plan d exécution d une requête repartie 6. Notion de Transaction Répartie (un chapitre concernant cette partie est assurée par B. Sadeg) ensemble des Sous-Requêtes sur les schémas locaux et des opérations de transferts des résultats intermédiaires. L objectif est de recherche un plan d exécution de coût minimal Coût = f ( temps de réponse, $ ) est une fonction sur l espace des plans d exécution Coût = a*coût CPU + b*coût ES + d*coût Comm Begin Read Write Abort Commit application Gérant de Transactions Globales résultats En WAN, le coût de communication est majoritaire d*coût Comm >> a*coût CPU + b*coût ES STrans. Gérant de Transactions Locales STrans. Gérant de Transactions Locales 1.39 1.40
7. Les produits industriels des SGBDR Oracle/Star Sur pc SQL Server 2000, Sybase (Mode réparti, Two-phase commit, Triggers, Librairie de fonctions enrichie, Intégrité des ) Informix(Consultation multiserveur) Ingres(Mode réparti avec : Ingres Star, 2 phases commit). MS ACCESS SGBD Oracle gestion du dictionnaire de la BDR SQL*Net transparence au réseau connexion client-serveur, login à distance automatique évaluation de requêtes réparties validation en deux étapes et réplication SQL*Connect : passerelle vers les bases non-oracle Sur mainframe DB2 : Transaction distribuée, Définition de global gestion d intégrité des externes, Données externe (non DB2) Oracle 1.41 1.42 8. Database link (sous oracle) Lien à une table dans une BD distante Syntaxe : SQL> CREATE [PUBLIC] DATABASE LINK <nom de lien de base de > [CONNECT TO <utilisateur oracle> IDENTIFIED BY <mot de passe utilisateur oracle distant>] USING '<chaîne de connection>' ; 'chaîne de connection' est une chaîne de connexion SQL*NET définie dans le fichier (tnsnames.ora). Exemple : la chaîne de connection 'db2' peut être définie comme suite : db2=(description= (ADDRESS_LIST = (ADDRESS=(PROTOCOL=TCP) (HOST=193.48.166.221)(PORT= 1521))) (CONNECT_DATA= (SID=distante_db))) Exemple de creation de lien : CREATE [PUBLIC] DATABASE LINK nomdb CONNECT TO scott IDENTIFIED BY tiger USING 'db2' ; select * from Emp@nomdb; Synonyme: pseudo table locale = table distante Exemple : create synonym Emp_db2 for Emp@nomdb; select * from Emp_db2 Autres requêtes et exemple relatives à Database link SQL> decribe dba_db_links; SQL> select owner, db_link, username from dba_db_links; Exemple SQL> CREATE DATABASE LINK compta_bordeaux CONNECT TO compta IDENTIFIED BY xyz USING 'la_base_de_bordeaux' ; SQL> SELECT * FROM balance@compta_bordeaux ; -- on peut le rendre transparent grace aux synonymes SQL> CREATE SYNONYM balance FOR balance@compta_bordeaux ; SQL> SELECT * FROM balance ; Références G. Gardarin, O. Gardarin, Le Client-Serveur, Eyrolles, 2e édition, 1996 G. Gardarin et L. Bouganim, Bases de : Introduction et Objectifs, support de cours, http://georges.gardarin.free.fr/ G. Gardarin, P.Valduriez, SGBD avancés, BD objets, déductives, réparties, Eyrolles,, 1990. S. Miranda, A. Ruols, Client-Serveur, Moteurs SQL, middleware, et architectures parallèles Eyrolles, 2e édition, 1996. M.T.Ozsu, P.Valduriez, Principles of Distributed DataBase Systems Prentice-Hall, Englewood Cliffs, New Jersey, 1991. D. DONSEZ Répartition, Réplication, Nomadisme, Hétérogénéité dans les SGBDs, polycopié, IMAG, Université Grenoble. 1.43