Bases de données réparties: Fragmentation et allocation



Documents pareils
Module BDR Master d Informatique (SAR)

Chapitre 10. Architectures des systèmes de gestion de bases de données

BD réparties. Bases de Données Réparties. SGBD réparti. Paramètres à considérer

Systèmes d informations nouvelles générations. Répartition, Parallèlisation, hétérogénéité dans les SGBD. Exemple d application d un futur proche

Chapitre Introduction : Notion de Bases de données. 2. Définition : BD Répartie. 3. Architecture des SGBD. 4. Conception des bases réparties

TP Bases de données réparties

Les bases de données

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

1 Introduction et installation

Bases de Données Réparties Concepts et Techniques. Matthieu Exbrayat ULP Strasbourg - Décembre 2007

Cours Bases de données

Présentation du module Base de données spatio-temporelles

et les Systèmes Multidimensionnels

Cours Base de données relationnelles. M. Boughanem, IUP STRI

16H Cours / 18H TD / 20H TP

IFT3030 Base de données. Chapitre 2 Architecture d une base de données

Bases de Données. Plan

Information utiles. webpage : Google+ : digiusto/

Architectures d'intégration de données

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Le Langage SQL version Oracle

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Cours 6. Sécurisation d un SGBD. DBA - M1ASR - Université Evry 1

INTRODUCTION AU DATA MINING

PROJET 1 : BASE DE DONNÉES REPARTIES

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Le Langage De Description De Données(LDD)

Chapitre 1 : Introduction aux bases de données

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Datawarehouse and OLAP

La classification automatique de données quantitatives

A QUOI SERVENT LES BASES DE DONNÉES?

1. Introduction. Bases de données Réparties, Fédérées et Réplication. Plan. Bibliographie du cours

Bases de Données Réparties

Introduction aux bases de données. Généralités sur les bases de données. Fonctions d'un SGBD. Définitions. Indépendance par rapport aux traitements

Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

UML et les Bases de Données

Bases de données et sites WEB

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Bases de données. Chapitre 1. Introduction

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

Introduction aux Bases de Données

Systèmes de Gestion de Bases de Données

Rappel sur les bases de données

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Langage SQL : créer et interroger une base

Les bases de données Page 1 / 8

Données Réparties. Thibault BERNARD.

Intégration de données hétérogènes et réparties. Anne Doucet

Bases de données réparties et fédérées

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft

Optimisations des SGBDR. Étude de cas : MySQL

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Chapitre 1 Généralités sur les bases de données

Master Informatique et Systèmes. Architecture des Systèmes d Information. 03 Architecture Logicielle et Technique

Bases de données et sites WEB Licence d informatique LI345

Vous êtes bien à la bonne présentation, c est juste que je trouvais que le titre de cette présentation étais un peu long,

Bases de données avancées Introduction

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

données en connaissance et en actions?

Bases de données élémentaires Maude Manouvrier

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

Urbanisation des Systèmes d Information Architecture d Entreprise. 04 Architecture du SI : identifier et décrire les services, structurer le SI

Introduction au Système de Gestion de Base de Données et aux Base de Données

Bases de données cours 1

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Bases de Données relationnelles et leurs systèmes de Gestion

Optimisation SQL. Quelques règles de bases

1 Modélisation d une base de données pour une société de bourse

Présentation Alfresco

2 Serveurs OLAP et introduction au Data Mining

BES WEBDEVELOPER ACTIVITÉ RÔLE

Le langage SQL Rappels

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Dossier I Découverte de Base d Open Office

CESI Bases de données

Entrepôts de données. NEGRE Elsa Université Paris-Dauphine

Introduction aux SGBDR

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

Introduction aux Bases de Données Relationnelles Conclusion - 1

Partie II Cours 3 (suite) : Sécurité de bases de données

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Du 10 Fév. au 14 Mars 2014

Bases de données - Modèle relationnel

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Mise en place Active Directory / DHCP / DNS

Bases de données distribuées et fédérées

I4 : Bases de Données

Programmation parallèle et distribuée

Bases de données Cours 1 : Généralités sur les bases de données

Data Mining. Vincent Augusto École Nationale Supérieure des Mines de Saint-Étienne. Data Mining. V. Augusto.

OBJECTIFS ET ARCHITECTURE DES SGBD

Créer le schéma relationnel d une base de données ACCESS

Techniques d optimisation des requêtes dans les data warehouses

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Windows Internet Name Service (WINS)

Transcription:

Pourquoi une base de données distribuée? Bibliographie Patrick Valduriez, S. Ceri, Guiseppe Delagatti Bases de données réparties: Fragmentation et allocation 1 - Introduction inventés à la fin des années 70 rassembler les données disséminés dans un réseau de machines sous forme d une base de données globale, homogène et intégrée. Utilités Limiter le transfert d informations (nombre et volumes) Répartition de charge Augmenter la fiabilité (Duplication) Fusionner des systèmes d informations Définition Une base de données distribuée est une base de données dont les différentes parties sont stockées sur des sites (géographiquement distants), reliés par un réseau. La réunion de ces parties forment la basent de données distribuées Pourquoi une base de données distribuée? Pourquoi une base de données distribuée? 2 - Objectifs Indépendance à la localisation 3. Quelques points Permettre l écriture des programmes d application sans connaître la localisation physique des données SBGD réparties doit offrir les mêmes services que les SGBD monolithiques Requêtes exprimées en SQL similaires aux requêtes locales! décharger l utilisateur de tous les problèmes de concurrence, fiabilité et optimisation des requêtes Transparence! Simplifier la vue utilisateur et l écriture de requêtes il doit disposer: Indépendance à la fragmentation La relation principale indépendante de la manière de la découper! Les modifications ne doivent pas modifier les programmes Indépendance au SGBD La relation globale doit être exprimée dans un langage normalisé indépendant des constructeurs Autonomie des sites Supprimer la nécessité d une administration centralisée! Accomplissement local des reprises après pannes et des mises à niveaux des logiciels! Sans impacts sur les autres sites Rq: «inconvénients des systèmes distribués» - dictionnaire de données réparties - traitement de requêtes réparties - gestion des transactions réparties - communication de données inter-sites - gestion de la cohérence et la sécurité SGDBr assure la décomposition des requêtes distribuées en sous requêtes locales envoyés à chaque sites EX: SELECT * FROM schéma.relation@site; Pour la mise à jour, il doit assurer la gestion des transactions réparties! vérification des règles d intégrité multi-bases, contrôle des accès concurrents, gestion de l atomicité des transactions distribuées Peut s appuyer sur les fonctions locales de gestion de transactions pour accomplir les fonctions globales! Complexité résultant de leur coordination! Nouvelles préoccupations: coût de développement, potentialité des pannes, coordination Avantages et inconvénients de la répartition de données Systèmes de gestion des BD réparties Avantages Efficacité et fiabilité d accès à des données partagées Concept de base! partage des données et gestion réparties - accès à partir d un site à l ensemble des données (évite la concentration de données) Schéma local - gestion locale (maîtrise de ses propres données pour chaque site): mais autonomie relative Gérer par le SGDB local! fiabilité et disponibilité Chaque base local partage une partie de la base aux sites clients - maintient de l exploitation en cas pannes par substitution des sites - réplication des données Schéma Global Inconvénients Complexité pour coordonner! Coût de développement logiciel! Potentialité plus forte d erreurs logicielles (bugs cachés, algo. Fragilisé par parallèlisme)! Servitude de systèmes accrues pour la coordination: Permet de définir l ensemble de données de la BD ~ schéma conceptuel Pas forcément matérialisé <chaque BD locale implémente une partie. Ces parties locales sont les seules matérialisées sur les disques> - Échanges de messages - Calcul supplémentaire - Récupération de systèmes plus complexes après pannes (Réintégration des sites ou liaisons en pannes)

Principes de conception des BD distribuées Approche de conception des BD distribuées Principes principes (propriétés) des SGDB centralisées plus: soit une relation R! réplication: R copié sur plusieurs sites! Fragmentation: R découpé en plusieurs fragments, chacun hébergé sur un site! Réplication et fragmentation: R découpé en fragments, copié sur divers sites 2 approches: Descendante (Décomposition) <utilisé lors de la constitution de nouvelle base de données> conception du schéma conceptuel globale Définitions des niveaux de schémas! Besoins des utilisateurs intégrés dans un schéma conceptuel (unique)! Des vues peuvent être dériver du schéma conceptuel! L administrateur construit le schéma de fragmentation (découpage du schéma conceptuel en plusieurs sous schémas avec des liens entre les deux)! L Admin. Définit le schéma d allocation (localisation des fragments sur les différents sites). Création automatique des schémas logiques sur chaque sites en fonction des fragments allouées! l Admin. Doit finalement décrire les schémas internes. distribution pour obtenir les schéma conceptuel locaux fragmentation affectation aux sites allocation <guidé par un soucis performance> Ascendante <Permet l intégration de bases de données locales existantes dans une base distribuées> <démarche plus difficile> Intégration de bases de données existantes résoudre les problèmes d hétérogénéité des systèmes ou sémantique de l information Systèmes de gestion des BD réparties Niveau de couplage Existence de différents niveau de couplages La littérature propose différents modèles et terminologie Certains critères restent déterminants:! non-possibilité d accès aux systèmes locaux! matérialisation du schéma globale, La base maîtresse ne contient que des méta-données Les accès aux sites locaux sont prohibés d autres modèles plus réalistes: Autonomie des sites locaux Instanciation des données sur le site maître Dans la pratique: Systèmes faiblement couplés! communication des systèmes locaux! pas de schéma globale proprement dit Bases de données réparties: Les prédicats simples On se donne une relation R(A1, A2, A3,, An) Les prédicats minterms Les prédicats simples Pj se définit par Soit relation R et un ensemble de prédicats simples Pr. Pj: Ai Φ valeur On définit l ensemble des prédicats minterms M = { M1, M2,, Mm } avec, Φ = { =, <, <=, >, >= } M = { Mi Mi = Pj Pr Pj* } valeur Di, le domaine de valeurs de l attribut Ai avec, 1 <= j <= p On définit Pr = { P1, P2,, Pp } l ensemble des prédicats simples définit sur la relation R. 1 <= i <= m Pj* = Pj ou Pj* = (Pj) P1: Pname = ESIREM P2: Budget <= 200000

M1: Pname = ESIREM & Budget <= 200000 M2: Pname = ESIREM & NOT(Budget <= 200000) M3: NOT(Pname = ESIREM ) & Budget <= 200000 M4: NOT(Pname = ESIREM ) & NOT(Budget <= 200000) propriétés sélectivité des minterms: SEL(Mj) Indique le nombre de tuples auxquels peut accéder une requête selon un prédicat minterm donné. Par exemple la sélectivité de M2 est 0 si aucun projet ne correspond aux conditions du minterm. Fréquence d accès: ACC(qi)! La fréquence à laquelle l application utilisateur accède aux données. ACC(qi) donne la fréquence de la requête qi durant une certaine période.! De même on définit ACC(Mj) la fréquence d accès du minterm Mj, correspondant à la fréquence d accès de qj selon Mj On se donne une relation SALAIRE (S_TITRE,S_SAL) Application On veut vérifier les salaires des employés d une entreprise et déterminer les possibilités d augmentation. Les prédicats simples P1: P_SAL <= 30000 P2: P_SAL > 30000 Les prédicats simples M1: P_SAL <= 30000 AND P_SAL > 30000 M2: P_SAL <= 30000 AND NOT(P_SAL > 30000) M3: NOT(P_SAL <= 30000) AND P_SAL > 30000 M4: NOT(P_SAL <= 30000) AND NOT(P_SAL > 30000) Les implications I1: P_SAL <= 30000! NOT(P_SAL > 30000) I2: NOT(P_SAL <= 30000)! P_SAL > 30000 I3: P_SAL > 30000! NOT(P_SAL <= 30000) I4: NOT(P_SAL > 30000)! P_SAL <= 30000 Fragmentation de SALAIRE M1 est contredit par I1, et M4 par I2 Approche Pour chaque relation simple dans le schéma conceptuel global! Identifier les applications les plus importantes accédant à la relation! Définir les prédicats simples selon les critères de sélections des requêtes définies sur la relation! Générer les prédicats minterms comme conjonction des prédicats simples (Ne pas oublier les formes négatives des prédicats simples)! Identifier les prédicats contradictoires et redondants, puis les éliminer! Définir les fragments à partir d opérations de sélections selon les prédicats minterms Complétude des minterms Un minterm est dit complet s il définit un ensemble de tuples ayant la même probabilité d être accéder par les applications.! Si une application accède à la relation PROJ selon le nom du projet: - Pi = σ Pname= X PROJ - produit des fragments où tous les tuples ont la même probabilité d être accèder! Si une seconde application accède seulement au projet ayant un budget supérieur à 200000 - Pname = X, ne définit pas un ensemble avec une même probabilité d accès - On doit ajouter le prédicat simple associé au budget - Pi = σ (Pname= X AND budget > 200000) PROJ

Techniques de partition horizontale Minterm minimum Détermines l ensemble des prédicats simples pertinents sur les minterms! un prédicat est dit pertinent pour un minterm si: - il permet de définir une nouvelle partition - la partition est accédée par au moins une application! un minterm est dit minimum si tous les prédicats simples sont pertinents. Round robin. Hash partioning. Range partioning Augmenter les minterms jusqu à produire un prédicats minterm qui soit:! complet! minimum Round robin Hash partitioning. On distribue également les données. Permet une analyse de la totalité des relations. Pas intéressant pour les requêtes ponctuelles et les plages de requêtes. Efficace pour les requêtes ponctuelles selon des clés, ainsi que pour les jointures. Pas bon pour les plages de requêtes et les requêtes ponctuelles sans clés. Avantages des fonctions de hachages => une distribution uniforme Qu est-ce qu une bonne fragmentation? 1: F = {F1,F2} F1 = σ(sal)<10(e) F2 = σ(sal)>20(e) Problème: Perte de certains tuples! 2: F = {F3,F4} F3 = σ(sal)<10(e) F4 = σ(sal)>5(e) Les tuples tels que «5 <sal< 10» sont dupliqués F1 = σ location=paris (Employe) F2 = σ location=lausanne (Employe)

Qu est-ce qu une bonne fragmentation? Rappel: Critères d exactitude Gestion explicite de la réplication Soit R => F = { F1, F2, } 1. Complétude Example: F = { F5, F6, F7 } Pour tout t R, il existe Fi F tel que t Fi F5 = σ sal <=5 (E) F6 = σ 5 < sal < 10 (E) 2. Indépendance 3. Reconstruction Fi Fj = null, pour tout i,j tel que i j F7 = σ sal >=10 (E) Il existe tel que R = Fi! Puis répliquer F6 si on le souhaite dans le cadre de l allocation Intuition Si deux relations sont liées et sont souvent utilisées ensemble, on peut définir les fragments correspondants (des deux relations) qui peuvent être utilisés ensemble. Bases de données réparties: Questions! Que veut dire deux relations liées.! Comment définir une fragmentation basée sur le lien entre 2 relations Une (DHF) se définit sur les membres d une relation R pointés par le lien L selon les prédicats de sélection par la relation propriétaire S L1, L2, L3 sont des liens de jointures (équi-jointures) Owner(L1) = PAY et Member(L1) = EMP

EMP (ENO, ENAME, TITLE, DEPT) ASG (ENO, DNO, DUR) Si les employés sont gérés par un département! M1 = DEPT=D1! M2 = DEPT=D2! M3 = DEPT=D3 Les données de ASG sont dépendantes et associées à celles de EMP, ainsi l allocation des fragments de ASG sont définis selon les min-terms définis sur EMP! A1 = ASG E1! A2 = ASG E2! A3 = ASG E3 Les fragmentations indépendantes peuvent mener à des jointures excessives (que l on peut supprimer) On définit une fragmentation dérivée qui permet de garantir qu une seule jointure accède aux données de E et de A Semi-jointure DHF La semi-jointure d une relation R, définit sur un ensemble d attributs A, par la relation S, définit sur un ensemble d attributs B, est un sous-ensemble de tuples de R qui participe à la jointure de R avec S.! Soit R (F) S, où un F est un prédicat! Il peut-être obtenu comme suit: R (F) S = Π(a) ( R (F) S ) On définit les critères de fragmentation pour la relation Alloc selon les minterms spécifiés par la relation Proj P1 = σ( LOC=«Dijon» AND Budget<=200000 ) PROJ P2 = σ( LOC=«Dijon» AND Budget>200000 ) PROJ P3 = σ( LOC=«Lyon» AND Budget<=200000 ) PROJ P4 = σ( LOC=«Lyon» AND Budget>200000 ) PROJ P5 = σ( LOC=«Beaune» AND Budget<=200000 ) PROJ P6 = σ( LOC=«Beaune» AND Budget>200000 ) PROJ DHF On définit la fragmentation horizontale dérivée obtenue en définissant des semi-jointures sur les fragments de PROJ A1 = ALLOC A2 = ALLOC A3 = ALLOC A4 = ALLOC A5 = ALLOC A6 = ALLOC ( Alloc.PNO=P1.PNO ) P1 ( Alloc.PNO=P2.PNO ) P2 ( Alloc.PNO=P3.PNO ) P3 ( Alloc.PNO=P4.PNO ) P4 ( Alloc.PNO=P5.PNO ) P5 ( Alloc.PNO=P6.PNO ) P6

Fragmentation verticale Motivation Bases de données réparties: Les patterns d accès des applications (Ex: PROJ): - obtenir les numéros des projets selon leurs budgets - obtenir les noms des projets selon leurs localisations Introduction La fragmentation verticale! définit les sous-ensembles des attributs des relations qui sont accédés ensemble! réduit les coûts d accès aux données et leurs transferts! disponible aussi bien en environnement centralisé que distribué! plus complexe que la fragmentation horizontale Cf. B(m), Bell number pour les grandes valeurs de m, B(m) m [Hammer et Niamir, 1979] Problématique Soit une relation R, un ensemble de requêtes Q, un ensemble de sites S (sur lesquels sont appliqués Q), et des statistiques sur ces traitements A partir de ces éléments, on définit une politique de fragmentation qui identifie les sous-ensembles disjoints des attributs de R, minimisant les coûts d évaluation des requêtes. Heuristiques Grouping - On commence par créer un fragment pour chaque attribut, puis les agréger progressivement pour constituer les fragments Splitting - Les relations globales sont progressivement réparties sur les fragments - C est une approche descendante, cohérent avec l approche utilisée pour la fragmentation horizontale primaire VF Splitting Strategy Méthode d application - affinité des attributs Une mesure pour définir la proximité des attributs - usage des attributs Soit un ensemble de requêtes Q = { Q1, Q2,, Qq } sur la relation R(A1, A2,, An ) use( Qi, Aj ) = 0 sinon 1 si Aj est référencé par Qi

s s Relation PROJ: - Q1 = SELECT budget FROM proj WHERE pno=value - Q2 = SELECT pname,budget FROM proj - Q3 = SELECT pname FROM proj WHERE loc=value - Q4 = SELECT sum(budget) FROM proj WHERE loc=value La matrice d usage des attributs - A1 = pno, A2 = pname, A3 = budget, A4 = loc Affinité L usage des attributs n est pas suffisant pour définir les fragments La qualité d information indique les patterns d accès des requêtes sur les attributs - Accs (Qk) nombre d accès sur une paire d attributs Ai, Aj par la requête sur un intervalle de temps - Aff(Ai,Aj) = Σ k use(qk,ai)=1 & use(qk,aj)=1 Σs Accs (Qk) Pour chaque requête qui accède à la pair d attributs, on somme la fréquence d accès à tous les sites Bond Energy Algorithme (BEA) A partir de la matrice d affinité, on veut définir des clusters d attributs BEA possède les propriétés suivantes: - On regroupe les ensembles de valeurs ayant une affinité élevée - Ainsi que celles ayant une affinité faible - Le regroupement final est indépendant de l ordre des entrées - Temps de traitement raisonnable: Ο(n²) n avec n le nombre d attributs Algorithme BEA Entrée: matrice d affinité Traitement: Permutation des colonnes et des lignes! pour chaque nouvelle distribution d attributs - calculer pour chaque matrice entrée, une nouvelle valeur correspondant à la somme des valeurs de ses voisins - le meilleur clustering donne la valeur la plus élevé Maximiser l affinité des attributs Max AM = Σi=1..n Σi=1..n Aff(Ai,Aj)*[Aff(Ai,Aj-1) + Aff(Ai,Aj+1)] L algorithme BEA fournit la matrice avec des valeurs élevées pour AM. L intuition est qu on doit commencer avec les 2 premières colonnes de la matrice d affinité, en insérant la suivante par analyse de la meilleure configuration donnant le meilleur BOND selon la matrice AM. Ceci est appelé la contribution de la nouvelle colonne selon la matrice courante AM.

de matrice d affinité Calcul de max AM Considérant la matrice AM précédente. On considère les colonnes A1 et A2, et on analyse l effet d insérer A3 en terme de contribution (Cont). Pour une composition de (A1, A3, A2), nous avons: - Cont(A1,A3,A2) = 2BOND(A1,A3) + 2BOND(A3,A2) 2BOND(A1,A2) où - BOND(Ax,Ay) = Σ i,j=1..n Aff(Ai,Ax)*Aff(Aj,Ay) : Cont(A0,A3,A1) = 2BOND(A0,A3) + 2BOND(A3,A1) 2BOND(A0,A1) = 2*11000 = 22000 Car, BOND(A0,A3) = BOND(A0,A1) = 0 BOND(A3,A1) = 50*120 + 50*50 + 50*50 + 0 + 0 = 11000 Splitting Point Après que la matrice d affinité a été clusterisée:! on doit définir les points où diviser les attributs pour produire les fragments Calcul des accès référents: - T = ΣQ in T Σ s=1..n Acc(Qi) - B = ΣQ in B Σ s=1..n Acc(Qi) - BOTH = Σ Q in BOTH Σs=1..n Acc(Qi) Ces expressions détermine le nombre d accès fait exclusivement par les applications accédant uniquement à TOP, à BOTTOM ou aux attributs dans les deux cas. Nous cherchons un point dans la matrice diagonale qui offre la valeur la plus élevée pour: Z = T*B BOTH² Verification de la pertinence Fr = { R1, R2,, Rn } Complétude A = U Ri Reconstruction R = k Ri, pour tout Ri Fr Indépendance Les fragments sont disjoints, à l exception des clés