Répartition, Parallèlisation, hétérogénéité dans les SGBD AI Mouaddib Département Informatique Université de Caen Systèmes d informations nouvelles générations! Constat :! Utilisation de nouveaux support d accès au Web.! PDA, téléphonie mobile, PC portable,.! Marché mondiale en explosion! Développement de l informatique, mobile, nomade et embarquée. Exemple d application d un futur proche Nouvelles caractéristiques Au bureau En déplacement A la maison Vente Enchère Enchérir 15! Livraison Serveur Web Service e-auctionning Fournisseur! Connexion à plusieurs systèmes d informations : répartition! Interaction persistante pendant le déplacement : mobilité! Informations transitant d un serveur à l autre : nomadisme! Nouvelles informations extraites à partir des données brutes dans les BDs: aide à la décision Systèmes d informations nouvelles générations! Répartition :! Systèmes d informations répartis! Distributions de données! Parallélisme des transactions et requêtes distribuées! Mobilité : code mobile! Nomadisme : localisation spatiale + SIG! Où se trouve le colis qui va m être livrée! Le tram que j attends est à quelle station! Aide à la décision :! architecture datawarehouse,! requêtes décisionnelles Bases de données Réparties : SGBD-r
Pourquoi les SGBD Répartis?! Problème des systèmes d informations! Volume des informations : 400 To! Volume des transactions : 10 fois plus dans les 5 prochaines années! Volume des transactions! Complexité des transactions :! Décisionnelles! Intelligentes Intérêt des SGBD-r! Le besoin! Des serveurs de Bds qui fournissent à haut débit et avec de bons temps de réponse des charges de travail variées sur des très grosses bases de données.! Utilisation de disques et de grandes mémoires. Qu est ce qu un SGBD-r? Exemple SGBD-r! BD répartie (Distributed Database)! Un schéma global! Une collection de Bds logiquement reliées et réparties entre plusieurs sites.! Répartition des données! Conséquence :! Transaction complexe Produit(NP, Designation, PU, NF) Fournisseur(NF,Nom, Ville) Client(NCL, Nom, Ville) Représentant(NR, Nom, Ville) Commande(NP, NCL, Date, Qte, NR) Site 1 Site 2 Réseau (LAN, WAN) Site 4 Site 3 Commande Client Représant Produit Fournisseur Commande Client Représant Avantages des SGBD-r! Extension! Partage de données hétérogènes et réparties! Meilleure performance! Meilleure disponibilité! Economie. Limites des SGBD-r! Complexité! Besoin réel mais discipline jeune! Difficulté de Migration! Distribution du contrôle! Administration
BD centralisée et répartie Une BD Répartie! Centralisé! Contrôle et adminisatration par une seule équipe.! Techniques BD simples! Sécurité et performance! Temps d accès uniforme à toute la BD.! Décentralisé! Besoins locaux différents! Autonomie locale de gestion et contrôle.! Traitement principalement locaux! Accès multi-site occasionnel! Décomposition! Intégration Gestion des BD-r! Rappel sur l architecture ANSI/SPARC Vue interne Conception Vue externe Vue externe Vue externe! Réalisation du schéma global! Couplage fort! Couplage Faible! Fédéré utilisateurs Couplage fort! Schéma global! Indépendance Application/BD! Schéma global lourd à gérer AP1 AP2 AP3 SCG SCL1 SCL2 SCL3 SIL1 SIL2 SIL3 Schéma global! Description des données du SGBD-r! Schéma global + schéma de placement! Schéma global indépendant de la répartition Produit(NP, Designation, PU, NF) Client(NCL, Nom, Ville) Commande(NP, NCL, Date, Qte, NR)! Schéma de placement Produit = Produit@Site2 Commande = Commande@site3 " Commande@site4 Client = Client@site3 " Client@site4 Couplage faible! Pas de schéma global que des schémas locaux. AP1 AP2 AP3 SCL1 SCL2 SCL3 SIL1 SIL2 SIL3
Fédéré Architecture d un SGBD-r : quelques modules! Migration contrôlée depuis les SGBDs locaux vers un SGBD-r AP1 AP2 AP3 SIL SCL SG-r Schéma externe Fédéré Fédéré SCL1 SCL2 SCL3 BD Processeur Processeur d exec requête Optimisation requêtes Iterface user SIL1 SIL2 SIL3 Répartition! Décomposition! Fragmentation! Duplication! Requêtes réparties! Évaluation et optimisation! Transaction distribuée! Fiabilité et Résistances aux pannes! Contrôle de concurrence La décomposition! Fragmentation! Trois types : horizontale, Verticale, Mixte! Performance en favorisant les accès locaux! Equilibrage de la charge entre les sites! Duplication! Favoriser les accès locaux! Augmenter la disponibilité des données Fragmentation horizontale Exemple! Fragmentation définie par sélection! Client1 = select * from Client where ville = «Paris»! Client2 = select * from Client where ville <> «Paris»! Reconstruction : union! Client = Client1 " Client2! Client Client1 NCl Nom Ville NCL Nom CL1 Jean Lens CL2 Paul CL2 Paul Paris CL3 Pierre CL3 Pierre Paris Client2 CL4 Jules Caen NCL Nom CL1 Jean CL4 Jules Ville Paris Paris Ville Lens Caen
Fragmentation verticale! Fragmentation définie par projection! Produit1 = select NP, PU, Désignation from Produit;! Produit2 = select NP,NF from Produit! Reconstruction : jointure! Produit = select * from Produit1 p1, Produit2 p2 where p1.np = p2.np Exemple! Produit 1 Produit2 Produit NP NF NP Ds PU Pa Fa Pa BX 100 Pb Fa Pb AX 200 Pc Fb Pc CX 50 Pd Fb Pd DX 20 NP DS PU Pa BX 100 Pb AX 200 Pc CX 50 Pd DX 20 NF Fa Fa Fb Fb Allocation des fragments aux sites Evaluation des requêtes! Non-dupliquée : partitionnement! Dupliquée :! un fragment sur plus d un site.! Maintient de la cohérence Requête sur les tables du SG Fragmentation Schéma de fragmentation Site 1 Site 2 Produit2 Fournisseur Requête sur les fragments Réseau (LAN, WAN) Site 4 Site 3 Commande1 Client1 Produit1 Commande2 Client2 Produit1 Optimisation Plan d exécution réparti Schéma d allocation Exemple Résultat sur le site1! La requête : Select NCL, Nom, date, Sum(qte*PU) From Produit p, Commande c, Client cl Where p.np=c.np and cl.ncl = c.ncl;! Fragmentation :! Fragments : Produit1, commande1, commande2, client1, client2! Allocation :! Site3 : produit1, commande2, cleint2! Site4 : produit1, commande1, cleint1! Site1 : le résultat?! Requêtes réparties : Select info1, calclul(info3, infon) From Table1@site2, Table3@site3 Where condition(info6, info9, info350)! Exemple Select cl.ncli, cl.nom, sum(co.qtite*p.pu) From client@site3 cl, porduit@site2 p, commande@site3 co Where p.np = co.np and cl.ncli = co.ncl
Comment ça fonctionne?! Lien entre BDs : database link (@site)! Architecture Client/Serveur classique! Connexion sur les BDs grâce au lien! Lancement de la transaction (sur le serveur)! Regroupement des données (sur le client)! Affichage (sur le client) Optimisation! Plan d exécution! Ensemble des sous-requêtes sur les schémas locaux + transferts des résultas intermédiaires.! Coût :! A*CoûtCPU + B*CoûtE/S + C*CoûtComm! CoûtComm est le plus important en WAN. Les outils existants! Oracle! SQL*NET : interface réseau! SQL*CONNECT : passerelle vers d autres Bds relationnelle ou non.! CA-OpenIngres SGBD-r par Oracle! Quels outils?! SQL*NET installé sur chaque site.! La version doit être compatible avec le protocol utilisé entre Bds.! SQL*CONNECT doit être installé lorsque les Bds ne sont pas développées sous Oracle. Une BD répartie avec SQL*NET! SQL*net utilise le modèle client/serveur! SQL*net installé du côté client et serveur! Un noyau SGBD sur le serveur! 1 application SQL par client! SQL*connect pour chaque serveur! Lien entre BDs : database link (@site) Create database link <nom-lien> Connect to <user-name> identified by <passwd> using machineip:chemin de la bd ; Bibliographie! Miranda &Ruols «Client-Serveur : Concepts, moteur SQL et architecture parallèle», Ed Eyrolles, ISBN 2-212-088167, 1994.! M. Tamer Özsu, Patrick Valduriez «Principles of Distributed Database Systems», Prentice-Hall Int Eds., Second Edition ISBN 0-13-659707-6, 1999.! Google : distributed database