Microsoft PowerPoint - ch1_BDReparties.ppt [Mode de
Transcription
Microsoft PowerPoint - ch1_BDReparties.ppt [Mode de
Université du Havre MASTER MATHÉMATIQUES ET INFORMATIQUE-Option SIRES 2013/20134 gestion de données COURS BASES DE DONNEES REPARTIES Nakechbandi M., LITIS, Email : [email protected] Introduction : Rappel - Bases de données Chapitre 1 conception et modélisation système(logiciel) 1. Introduction : Notion de Bases de données 2. Définition : BD Répartie Gestion de données : Qu'est-ce qu'une BD ? • Collection de données structurées reliées par des relations • Interrogeable et modifiable par des langages de haut niveau Modélisation des données Eliminer la redondance de données Centraliser et organiser correctement les données 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 données 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 1.2 Architecture des SGBD Architecture centralisée Les architectures physiques de SGBD sont très liées au mode de répartition. Terminaux passifs — BD centralisée — BD client/serveur — BD client/multi-serveurs réseau — BD répartie — BD hétérogène Appli 1 Appli 2 Mainframe Appli n — BD mobile — BD parallèle SGBD données 1.3 1.4 Architecture Client-Multiserveurs Architecture client-serveur Clients intelligents Appli 1 Appli 2 Appli n Appli 1 SQL SQL réseau ODBC ODBC serveur SQL SQL SGBD code SGBD 1 données code SGBD 2 données code 1.5 1.6 Architecture répartie Architecture mobile données Clients intelligents mobiles Appli 1 Appli 2 Données répliquées et/ou personnelles Appli n Réseau sans fil serveur SGBD 1 code SGBD 2 données code 1.7 données SGBD code données 1.8 BD parallèle 2. Définition : BD Répartie BD Répartie BD parallèle = Techniques des bases de données + Parallélisme et architecture parallèle Cette option permet d’exécuter certains ordres SQL en parallèle Il faut bien entendu avoir une machine multiprocesseur pour en tirer avantage. ORACLE PARALLEL • Ensemble de bases localisées sur différents sites, perçues par l'utilisateur comme une base unique • Chaque base possède son schéma local • Le schéma de la base répartie constitue le schéma global CREATE TABLE tableName (...) PARALLEL 4; 4 spécifie le nombre de processus qui peuvent parcourir la table en parallèle • Les données 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.10 Exemple Une application gère une coopérative vinicole dont le schéma conceptuel est le suivant : Si on suppose que cette base de données est gérée par 3 sites : localisés à Paris, Bordeaux, et Dijon, on peut envisager une gestion par un schéma relationnel comme suit : Producteurs PARIS Buveurs commandes produit commande Buveurs vins 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 , qté) Vins (nv, cru, année, degré) Producteurs (np, nom, région) Produit (nv, np, qté) Bordeaux Vins Dijon vins producteurs producteurs produit 1.11 produit 1.12 Quelques définitions complémentaires Exemples (Multibase, BD fédérée) BD interpérables : BD capable d’échanger des données 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 Commentaires • Système légataire : stocke les données de gestion de l'entreprise, 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). • • Bases de données techniques : Cette base décrit les produits fabriqués et leurs composants, base de données textuelles : contient par exemple les manuels d'opérations. • bases de données géographiques : Cette BD décrit la localisation des usines et des clients. Exemple : 1.13 1.14 Système de GBD réparti (SGBDR) Evaluation de l'approche BDR avantages • Extensibilité SGBDR • partage des données hétérogènes et réparties SGBD1 SGBD2 • performances avec le parallélisme (d’accès) • Disponibilité des données à 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 données réparties : Cohérence des données ---> dictionnaire des données 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 inconvénients • administration complexe • distribution du contrôle 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é • surcharge (l’échange de messages augmente le temps de calcul) 1.15 1.16 Schéma global 3. Architecture de schémas schéma conceptuel global • donne la description globale et unifiée de toutes les données de la BDR (e.g., des relations globales) Deux approches : • Schéma global • Schéma fédéré • indépendance à la répartition application 1 application 2 schéma de placement • règles de correspondance avec les données locales • indépendance à la localisation, la fragmentation et la duplication Schéma global Le schéma global fait partie du dictionnaire de la BDR et peut être conçu comme une BDR (dupliqué ou fragmenté) Schéma local 1 Schéma local 2 Schéma local 3 1.17 Exemple de schéma global 1.18 Architecture fédérée Schéma conceptuel global Client (nclient, nom, ville) Cde (ncde, nclient, produit, qté) Schéma de placement Client = Client1 @ Site1 U Client1 @ Site2 Cde = Cde @ Site3 application 1 application 2 Schéma fédéré 1 Schéma fédéré 2 Schéma local 1 1.19 Schéma local 2 1.20 Schéma local 3 Pour migration vers une BDR la question qui se pose ici est comment répartir les données et comment Exemple de schéma fédéré on peut les reintégrer : On considère deux bases de données : 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,...) - Décomposition en BD locales - Intégration logique des BDs locales existantes 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 BDR décomposition intégration Solution : BD1 BDn BD2 … 1.21 Méthode de conception d’une BD répartie • 1.22 METHODE DESCENDANTE : Conception par décomposition METHODE DESCENDANTE -> Schéma conceptuel global de la base -> Fragmentation des relations -> Allocation des fragments Table globale fragmentation • METHODE ASCENDANTE allocation -> N schémas conceptuels locaux -> 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 1.23 Site 1 Site 2 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 données 1.25 1.26 Fragmentation horizontale Fragmentation horizontale dérivée Client Fragments définis par sélection • Client1 = Client where ville = "Paris" • Client2 = Client where ville ≠ "Paris" nclient C1 C2 C3 C4 nom ville Dupont Martin Martin Smith Paris Lyon Paris Lille Client1 nclient C1 C3 Reconstruction Client =Client1 U Client2 nom ville Dupont Martin Paris Paris nclient C2 C4 1.27 nom ville Martin Smith Lyon Lille ncde D1 D2 D3 D4 nclient C1 C1 C2 C4 produit qté P1 P2 P3 P4 10 20 5 10 Reconstruction Cde = Cde1 U Cde2 Cde1 ncde Client2 Cde Fragments définis par jointure Cde1 = Cde where Cde.nclient = Client1.nclient Cde2 = Cde where Cde.nclient = Client2.nclient D1 D2 Cde2 nclient C1 C1 produit qté ncde P1 P2 10 20 D3 D4 1.28 nclient C2 C4 produit qté P3 P4 5 10 Allocation des fragments aux sites Fragmentation verticale Fragments définis par projection • Cde1 = Cde (ncde, nclient) • Cde2 = Cde (ncde, produit, qté) Reconstruction • Cde = [ncde, nclient, produit, qté] where Cde1.ncde = Cde2.ncde Non-dupliquée • partitionnée : chaque fragment réside sur un seul site Cde ncde D1 D2 D3 D4 Utile si forte affinité d'attributs nclient C1 C1 C2 C4 produit qté P1 P2 P3 P4 10 20 5 10 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 Cde2 Cde1 ncde D1 D2 D3 D4 nclient C1 C1 C2 C4 ncde produit qté D1 D2 D3 D4 P1 P2 P3 P4 10 20 5 10 1.29 1.30 METHODE ASCENDANTE : Création d'un schéma unique partant de plusieurs schémas Exemple d'allocation de fragments Conception BDR par intégration BD1 BD2 BD3 Client2 Client1 nclient nom ville nclient nom ville C1 C3 Dupont Martin Paris Paris C2 C4 Martin Smith Lyon Lille Traduction de schémas Traducteur 1 Traducteur 2 S local 1 S local 2 Cde2 Cde1 ncde client D1 D2 C1 C1 produit P1 P2 qté ncde client produit qté 10 20 D3 D4 C2 C4 P3 P4 5 10 Site 2 Site 1 1.31 Intégration de schémas Intégrateur Schéma Global 1.32 Traducteur 3 S local 3 Les étapes 5. Requêtes réparties La création d'un schéma unique passe par les quatre étapes suivantes : Requête sur tables globales 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 données, 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. Requête sur fragments Exemple : Exercice 1 de TD1 Plan d'exécution réparti 1.33 Exemple : On considère le schéma relationnel suivant : - Produit(NP, Designation, PrixUnit, ...) - Client(NCL, Nom, Ville) - Commande(NP, NCL, Date, Qte,...) Schéma de fragmentation Fragmentation Schéma d'allocation Optimisation 1.34 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 : On cherche à exécuter la requête : 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 6. Notion de Transaction Répartie Plan d ’exécution d’une requête repartie 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 En WAN, le coût de communication est majoritaire d*Coût Comm >> a*Coût CPU + b*Coût ES Begin Read Write Abort Commit (un chapitre concernant cette partie est assurée par B. Sadeg) application résultats Gérant de Transactions Globales STrans. STrans. Gérant de Transactions Locales Gérant de Transactions Locales 1.39 1.40 7. Les produits industriels des SGBDR Oracle/Star SGBD Oracle • gestion du dictionnaire de la BDR Sur pc • SQL Server 2000, Sybase (Mode réparti, Two-phase commit, Triggers, Librairie de fonctions enrichie, Intégrité des données) • Informix(Consultation multiserveur) • Ingres(Mode réparti avec : Ingres Star, 2 phases commit). • MS ACCESS 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 données global gestion d’intégrité des données externes, Données externe (non DB2) • Oracle 1.41 1.42 Autres requêtes et exemple relatives à Database link 8. Database link (sous oracle) SQL> decribe dba_db_links; SQL> select owner, db_link, username from dba_db_links; Lien à une table dans une BD distante Syntaxe : SQL> CREATE [PUBLIC] DATABASE LINK <nom de lien de base de données> [CONNECT TO <utilisateur oracle> IDENTIFIED BY <mot de passe utilisateur oracle distant>] USING '<chaîne de connection>' ; Exemple SQL> CREATE DATABASE LINK compta_bordeaux CONNECT TO compta IDENTIFIED BY xyz USING 'la_base_de_bordeaux' ; '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))) SQL> SELECT * FROM balance@compta_bordeaux ; Exemple de creation de lien : CREATE [PUBLIC] DATABASE LINK nomdb CONNECT TO scott IDENTIFIED BY tiger USING 'db2' ; select * from Emp@nomdb; -- 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 données : 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, Paris, 1990. Synonyme: pseudo table locale = table distante Exemple : create synonym Emp_db2 for Emp@nomdb; select * from Emp_db2 1.43 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.