Conception de BDR et requêtes. Migration vers une BDR. Conception d'une BDR par Décomposition. Objectifs de la Décomposition



Documents pareils
Module BDR Master d Informatique (SAR)

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

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

TP Bases de données réparties

Bases de Données. Plan

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

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

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

Les bases de données

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

PROJET 1 : BASE DE DONNÉES REPARTIES

Le langage SQL Rappels

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

Évaluation et optimisation de requêtes

16H Cours / 18H TD / 20H TP

Optimisations des SGBDR. Étude de cas : MySQL

Cours: Les Jointures 1

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

Techniques d optimisation des requêtes dans les data warehouses

Systèmes de Gestion de Bases de Données

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

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

Langage SQL : créer et interroger une base

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

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

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

Le Langage SQL version Oracle

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

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

1 Introduction et installation

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

1 Introduction. 2 Le modèle relationnel. 3 Algèbre relationnelle 4 SQL. 5 Organisation physique des données 1/228

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

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

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

Le Langage De Description De Données(LDD)

et les Systèmes Multidimensionnels

Structure fonctionnelle d un SGBD

Cours 02 : Problème général de la programmation linéaire

Chapitre 1 : Introduction aux bases de données

Administration de Bases de Données : Optimisation

Bases de Données Réparties

SYSTÈME DE GESTION DE FICHIERS

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

INEX. Informatique en Nuage : Expérimentations et Vérification. Livrable n M1 PARALLÉLISME ET ÉVALUATION

Session S12 Les bases de l optimisation SQL avec DB2 for i

Cours Bases de données

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Les bases de l optimisation SQL avec DB2 for i

Administration des bases de données. Jean-Yves Antoine

UNIVERSITÉ MOHAMMED V AGDAL. FACULTÉ DES SCIENCES Rabat THÈSE DE DOCTORAT. Présentée par ELhoussaine ZIYATI Discipline : Sciences de l ingénieur

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

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

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

Bases de données avancées Introduction

Gestion de données réparties. Cours 1

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Information utiles. webpage : Google+ : digiusto/

Introduction aux Bases de Données Relationnelles Conclusion - 1

Bases de données relationnelles

I4 : Bases de Données

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

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

INTRODUCTION AU DATA MINING

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

Fonctions de plusieurs variables

Bases de données et sites WEB

Intégrité des données

Cours SGBD 1. Concepts et langages des Bases de Données Relationnelles

Optimisation SQL. Quelques règles de bases

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

COUCHE 7/OSI : TRANSFERT DE FICHIERS FTAM

Systèmes d information et bases de données (niveau 1)

Bases de données. Chapitre 1. Introduction

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

Partie 7 : Gestion de la mémoire

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

6. Hachage. Accès aux données d'une table avec un temps constant Utilisation d'une fonction pour le calcul d'adresses

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

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel Toulouse Cedex 7

Big Data et Graphes : Quelques pistes de recherche

Oracle 11g Optimisez vos bases de données en production (ressources matérielles, stockage, mémoire, requêtes)

Cloud public d Ikoula Documentation de prise en main 2.0

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Données Réparties. Thibault BERNARD.

Module BDR Master d Informatique (SAR)

Ora2Pg Performances. (C) 2013 Gilles Darold

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

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

environnements SQL Server?

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

Pourquoi IBM System i for Business Intelligence

UML et les Bases de Données

Systèmes de Gestion de Bases de Données (SGBD) relationnels Maude Manouvrier

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

Diagramme de classes

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

ORACLE TUNING PACK 11G

Rapport d évaluation à mi-parcours de thèse

Transcription:

Conception de BDR et requêtes Migration vers une BDR Approche décomposition Fragmentation Allocation des fragments Fragmentation de requêtes Optimisation de requêtes Décomposition en BD locales BD BD1 BD2 BD3 Intégration logique des BD locales existantes BD BD1 BD2 BD3 1 2 Conception d'une BDR par Décomposition Objectifs de la Décomposition fragmentation Relation globale Fragmentation trois types : horizontale, verticale, mixte performances en favorisant les accès locaux équilibrer la charge de travail entre les sites allocation Site 1 Site 2 Duplication (réplication) favoriser les accès locaux augmenter la disponibilité des données 3 4

Types de Fragmentation horizontale verticale mixte Fragmentation correcte Complète chaque élément de R doit se trouver dans un fragment Reconstructible on doit pouvoir recomposer R à partir de ses fragments Disjointe chaque élément de R ne doit pas être dupliqué 6 Fragmentation Horizontale Fragmentation Horizontale par sélection Fragmentation horizontale de R sur m fragments tuples de R: {t 1,, t n }, fragments: {R 1,, R m } Fragmentation par round-robin Le tuple t i R j avec j = i mod m lecture séquentielle Fragmentation par hachage sur l attribut A t i R j avec j = hash(t i.a) sélection (A=v), équi-jointure (A=B) Fragmentation par intervalle Fragmenter le domaine de l attribut A en m intervalles Vecteur {a 1,, a m-1 } t i R j avec a j-1 T i.a < a j sélection ( «A between x and y») Fragments définis par sélection create table Client1 as select * from Client where ville = create table as select * from Client where ville <> Reconstruction create view Client as select * from Client1 union select * from ; Client nclient nom ville C 3 Dupont Smith Lyon Lille Client1 nclient nom ville C 3 Dupont nclient nom ville Smith Lyon Lille 7 8

Fragmentation Horizontale par sélection Fragmentation Horizontale Dérivée Fragmentation de R selon n prédicats les prédicats {p 1,, p n } ex: {a<, a >, b= x, b= y } L ensemble M des prédicats de fragmentation est : M = { m m = 1 k n p k * } avec p k * {p k, p k } Eliminer les m de sélectivité nulle ex: a< a > Simplifier: a< a b= x b y devient a b= x Construire les fragments {R 1,, R k } Fragments définis par semi-jointure create table as select * from Cde, Client1 where Cde.nclient = Client1.nclient create table as select * from Cde, where Cde.nclient =.nclient Cde ncde nclient produit P 1 P 2 P 3 P 4 Pour chaque m i, R i = σm i (R) Minimalité Ne pas avoir 2 fragments toujours lus ensemble Choisir les p i des requêtes les plus fréquentes Reconstruction Cde = union ncde nclient produit ncde nclient produit P 1 P 2 P 3 P 4 9 Propriétés de la fragmentation horizontale dérivée R: fragmentation horizontale S: fragmentation horizontale dérivée Complète Chaque tuple de S doit joindre avec au moins un tuple de R Disjointe i,j, (S < Ri) (S < Rj) = Reconstructible S = (S < R1) (S < R2) (S < Rn) contrainte d intégrité référentielle A = clé de R S.A référence R.A Fragmentation Verticale Fragments définis par projection = Cde (ncde, nclient) = Cde (ncde, produit, ) Reconstruction Cde = [ncde, nclient, produit, ] where.ncde =.ncde ncde nclient ncde Cde ncde nclient produit produit P 1 P 2 P 3 P 4 P 1 P 2 P 3 P 4 11 12

Propriétés de la fragmentation verticale Fragmentation verticale de R Ai attributs(r) Fragments: Ri = π Ai(R) Complète Attributs(R) = A1 A2 An Disjointe A1 A2 An = clé(r) Reconstructible R = R1 R2 Rk Matrice d affinité des attributs Matrice A aij = affinité de Ai avec Aj ex: nb de requêtes qui accèdent Ai et Aj A1 A2 A3 A4 A1 4 0 4 0 A2 80 7 A3 3 3 A4 78 13 14 Matrice d affinité regroupement des attributs Matrice A A1 A3 A2 A4 A1 4 4 0 0 A3 3 3 A2 80 7 A4 78 Allocation des Fragments aux Sites 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 : si le ratio Lectures/màj est > 1, la duplication est avantageuse 1 16

Allocation de Fragments Problème: Soit F un ensemble de fragments S un ensemble de sites Q un ensemble d applications et leurs caractéristiques trouver la distribution "optimale" de F sur S Optimum coût minimal de comm, stockage et traitement Performance = temps de réponse ou débit Solution allouer une copie de fragment là où le bénéfice est supérieur au coût Exemple d'allocation de Fragments Client1 nclient nom ville C 3 Dupont ncde client produit P 1 P 2 nclient nom ville ncde client produit Smith Site 1 Site 2 Lyon Lille P 3 P 4 17 18 Transparence des requêtes Transparence de la répartition : degré d intégration du schéma Requête indépendante de la fragmentation : haut niveau de transparence bas niveau de transparence : l utilisateur doit spécifier les fragments qu il manipule => pb de nommage non ambigu. Le système doit optimiser les lectures/écritures, effectuer automatiquement les mises à jour des répliques, optimiser les requêtes. Transparence des requêtes Schéma de fragmentation contient la définition des fragments Schéma d allocation contient la localisation de chaque réplique de fragment Où se trouve le schéma de répartition? 1. Chaque site a une copie de tout le schéma : avantage : lectures rapides inconvénient : modifications de schémas 2. Chaque site a un schéma local il faut retrouver les informations sur les autres sites 3. Solutions mixtes : copie partielle du schéma sur certains sites 19

Evaluation de Requêtes Réparties Exemple d'evaluation Simple Requête sur relations globales Select A from R where B = b Fragmentation Schéma de fragmentation Fragmentation R = R1 R2 Requête sur fragments Select A from R1 where B =b union Select A from R2 where B = b Optimisation Schéma d'allocation Optimisation R1 = R1 @ Site1 R2 = R2 @ Site2 R2 = R2 @ Site3 Plan d'exécution réparti Select A from R1 @ Site1 where B = b union Select A from R2 @ Site3 where B = b 21 22 Fragmentation Reconstruction Réécriture mettre la requête sous forme d'un arbre algébrique (feuille = relation, noeud = op. relationnel) Reconstruction remplacer chaque feuille par le programme de reconstruction de la relation globale Transformation appliquer des techniques de réduction pour éliminer les opérations inutiles Notations utilisées : S : select J : join P : project 23 Select nom from Client Client1 : Client where ville = : Client where ville not P (nom) P (nom) Client Client1 24

Réduction pour la fragmentation horizontale Règle : éliminer l'accès aux fragments inutiles Exemple : Client1 : Client where ville = : Client where ville not Select * from Client where ville = Lyon Réduction pour la Fragmentation Verticale Règle : éliminer les accès aux relations de base qui n'ont pas d'attributs utiles pour le résultat final Exemple : Cde (ncode, nclient) : Cde (ncode, produit, ) Select nclient from Cde P (nclient) P (nclient) J (ncde) Client1 Client1 2 26 Réduction pour la Fragm. Hor. Dérivée Exemple Règle : distribuer les jointures par rapport aux unions et appliquer les réductions pour la fragmentation horizontale Requête canonique J (nclient) Exemple Client1 : Client where ville= : Client where ville not : Cde where Cde.nclient=Client1.nclient : Cde where Cde.nclient=.nclient Après 1ère réduction J (nclient) Client1 Select * from Client, Cde where Client.nclient = Cde.nclient and ville= Lyon 27 28

Exemple (suite) Distribution J (nclient) Elimination du sous-arbre inutile J (nclient) J (nclient) Optimisation de Requêtes Réparties entrée : une requête simplifiée exprimée sur des fragments sortie : un plan d'exécution réparti optimal Objectifs choisir la meilleure localisation des fragments minimiser une fonction de coût: f (I/O, CP, Comm.) exploiter le parallélisme exprimer les transferts inter-sites Solution examiner le coût de chaque plan possible (par transformation) et prendre le meilleur 29 30 Exemple Choix de la Solution Site 1 : Client1 = Client where ville= Site 2 : = Client where ville not Site 3 : = Cde where Cde.nclient=Client1.nclient Site 4 : = Cde where Cde.nclient=.nclient Site : résultat Select * from Client, Cde where Client.nclient = Cde.nclient and > Site (Client1 ) J nclient (S > ( )) Site 1 Site 2 Site 3 Site 4 C3 C4 Site Site 1 Site 2 C3 = C1 J nclient Client1 Site 3 C4 = C2 J nclient Site 4 C1 = S > C2 = S > 31 32

Coût des Solutions Jointure Supposons taille () = taille () = 000 taille (Client1) = taille () = 2 000 coût de transfert d un n-uplet = 1 Sélectivité(>) = 1% Stratégie 1 transfert de + = 000 transfert de Client1 + = 4000 Stratégie 2 transfert de C1 + C2 = 1%*000 + 1%* 000 = 0 transfert de C3 + C4 = 0 33 R sur S1, S sur S2, T sur S3. Requête demandée sur le site S0 : R S T Plusieurs possibilités : a) Copier tout sur S0 et faire les jointures sur S0 b) Copier R sur S2, et joindre R et S sur S2 Copier le résultat sur S3, et faire la jointure avec T sur S3 Copier le résultat sur S0 Tenir compte des index, de la taille des relations à transférer, de la taille des relations intermédiaires, de la charge des sites, de la vitesse de transmission, etc. On peut paralléliser les jointures : grand nombre de stratégies 34 Semi-jointure Traiter la jointure entre deux relations réparties sur 2 sites: R1 sur S1, R2 sur S2 Rappel: R1 < R2 = Π R1 (R1 R2) Requête R1 R2 = R1 (R2 < R1) et résultat sur S1 T1 = Π Α (R1) sur S1, puis envoi de T1 sur S2 T2 = R2 < T1 sur S2, puis envoi de T2 sur S1 Calcul de R1 T2 sur S1 Requête R1 R2 = (R1 < R2) (R2 < R1) et résultat sur S0 Transférer T1 = Π Α (R1) de S1 S2 Transférer T2 = Π Α (R2) de S2 S1 Transférer T3 = R1 < R2 de S1 S0 Transférer T4 = R2 < R1 de S2 S0 Sur S0, T3 T4 Semi jointure: réduction des transferts Réduire la taille des transferts inter site T1 = Π Α (R) à transférer de S1 vers S2 Vecteur de bits V = {b1,, bn}, Domaine de l attribut R.A: {a1,, a n }, Vi = 1 si ai Π Α (R), sinon Vi=0 Limite: si le domaine est grand (n>>1), taille vecteur Bloom filter : vecteur de taille fixe (=M) Vecteur V = {b1,, b M }, fonction de hachage h() : {a1,, an} {1,M} Vj=1 si h(ai) = j et ai Π Α (R), sinon Vi=0 Inconvénient: a Π Α (R), b Π Α (R), h(a)=h(b) Les tuples de R tq R.A=b sont transférés inutilement. 3 36

Conclusion Importance de la fragmentation horizontale pour augmenter le parallélisme inter- et intra-requête tiliser la fragmentation verticale si forte affinité d'attributs et beaucoup d'attributs L'optimisation reposant sur un modèle de coût est critique s'il y a beaucoup de sites 37