Module BDR Master d Informatique

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

TP Bases de données réparties

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

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

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

Évaluation et optimisation de requêtes

Bases de données avancées Introduction

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

Cours: Les Jointures 1

1 Introduction et installation

PROJET 1 : BASE DE DONNÉES REPARTIES

Module BDR Master d Informatique (SAR)

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

Exercices sur SQL server 2000

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

Techniques d optimisation des requêtes dans les data warehouses

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

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

Les bases de l optimisation SQL avec DB2 for i

Les bases de données

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

Implémentation des SGBD

Introduction aux Bases de Données Relationnelles Conclusion - 1

Chapitre 1 : Introduction aux bases de données

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Le Langage SQL version Oracle

INTRODUCTION AU DATA MINING

données en connaissance et en actions?

Optimisation SQL. Quelques règles de bases

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

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

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

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

CESI Bases de données

Bases de Données Réparties

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

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

Bases de données relationnelles

ÉTUDE DE CAS. Durée : 5 heures Coefficient : 5 CAS FEFORT ÉLÉMENTS DE CORRECTION

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

L optimisation d une PowerBoutique pour le référencement

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

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

LOGO. Module «Big Data» Extraction de Connaissances à partir de Données. Claudia MARINICA MCF, ETIS UCP/ENSEA/CNRS

et les Systèmes Multidimensionnels

16H Cours / 18H TD / 20H TP

Structure fonctionnelle d un SGBD

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

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

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Bases de données cours 4 Construction de requêtes en SQL. Catalin Dima

Langage SQL : créer et interroger une base

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

Introduction aux outils BI de SQL Server Fouille de données avec SQL Server Analysis Services (SSAS)

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

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

Cours Bases de données

Les technologies du Big Data

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

Le langage SQL Rappels

MÉDICLICK! STUDIO 3 GESTION DES IMAGES ET PIÈCES JOINTES SOMMAIRE

A QUOI SERVENT LES BASES DE DONNÉES?

Raja Bases de données distribuées A Lire - Tutoriel

Administration de Bases de Données : Optimisation

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

EMC DATA DOMAIN HYPERMAX

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

Bases de données élémentaires Maude Manouvrier

Algorithmes d'apprentissage

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

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 cours 1

Parcours en deuxième année

Les Entrepôts de Données

Plan 1/9/2013. Génération et exploitation de données. CEP et applications. Flux de données et notifications. Traitement des flux Implémentation

Proposition de correction pour l épreuve de STG Communication et gestion des ressources humaines

Algorithmique et langages du Web

Répartition, Réplication, Nomadisme, Hétérogénéité dans les SGBDs

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

RÉALISATION DE GRAPHIQUES AVEC OPENOFFICE.ORG 2.3

Pourquoi IBM System i for Business Intelligence

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

Janvier Entretien de l ordinateur

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

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

Optimisations des SGBDR. Étude de cas : MySQL

Document Object Model (DOM)

EMC DATA DOMAIN OPERATING SYSTEM

Préparation à l installation d Active Directory

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Ouvrir le compte UQÀM

Acquisition Indexation Classement & Recherche & Stockage Consultation. Solution d archivage sur mesure

COUCHE 7/OSI : TRANSFERT DE FICHIERS FTAM

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

Encryptions, compression et partitionnement des données

SYSTÈME DE GESTION DE FICHIERS

Transcription:

Module BDR Master d Informatique Cours 7- Interrogation de bases de données réparties Anne Doucet Anne.Doucet@lip6.fr 1

Interrogation de Bases de Données réparties Transparence des requêtes Evaluation des requêtes Fragmentation de requêtes Optimisation de requêtes 2

Transparence de la répartition Transparence de la répartition : degré d intégration du schéma haut niveau de transparence : pas d information sur la fragmentation bas niveau de transparence : l utilisateur doit spécifier les fragments qu il manipule => pb de nommage non ambigu. Chaque item de la BD doit avoir un nom unique 1. serveur de noms : attributs, relations, utilisateurs, goulot d étranglement, pb en cas de panne, peu d autonomie locale 2. Préfixer par le site + serveur de nom local 3

Transparence des requêtes Le système doit optimiser les lectures/écritures, effectuer automatiquement les mises à jour des répliques, optimiser les requêtes. Où se trouve le schéma de répartition (table des fragments, des répliques)? 1. Chaque site a une copie de tout le schéma : + : lectures rapides - : modifications de schémas 2. Chaque site a un schéma local - : il faut retrouver les informations sur les autres sites 3. Solutions mixtes : seuls certains sites ont une copie du schéma, certains sites conservent les informations concernant un item, etc. 4

Evaluation de Requêtes Réparties Requête sur relations globales Fragmentation Schéma de fragmentation Requête sur fragments Optimisation Schéma d'allocation Plan d'exécution réparti 5

Exemple d évaluation simple Select A from R where B = b Fragmentation R = R1 U R2 Select A from R1 where B =b union Select A from R2 where B = b Optimisation R1 = R1 @ Site1 R2 = R2 @ Site2 R2 = R2 @ Site3 Select A from R1 @ Site1 where B = b union Select A from R2 @ Site3 where B = b 6

Fragmentation 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 : SL : select JN : join PJ : project 7

Reconstruction Select nom from Client Client1 = Client where ville = Paris Client2 = Client where ville not= Paris PJ (nom) PJ (nom) Client U Client1 Client2 8

Réduction pour la fragmentation horizontale Règle : éliminer l'accès aux fragments inutiles Exemple : Client1 = Client where ville = Paris Client2 = Client where ville not= Paris Select * from Client where ville=lyon SL (ville=lyon) U SL (ville=lyon) U SL (ville=lyon) SL (ville=lyon) Client1 Client2 Client1 Client2 Client2 9

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 Cde1 = Cde (ncode, nclient) Cde2 = Cde (ncode, produit, qté) Select nclient from Cde PJ (nclient) PJ (nclient) JN (ncde) Cde1 Cde2 Cde1 10

Réduction pour la Fragmentation Horizontale Dérivée Règle : distribuer les jointures par rapport aux unions et appliquer les réductions pour la fragmentation horizontale Exemple Client1 = Client where ville=paris Client2 = Client where ville not Paris Cde1 = Cde where Cde.nclient=Client1.nclient Cde2 = Cde where Cde.nclient=Client2.nclient Select all from Client, Cde where Client.nclient = Cde.nclient and ville=lyon 11

Exemple Requête canonique JN (nclient) SL (ville=lyon) U U Cde1 Cde2 Client1 Client2 Après 1ère réduction JN (nclient) U SL (ville=lyon) Cde1 Cde2 Client2 12

Exemple (suite) Distribution U JN (nclient) JN (nclient) SL (ville=lyon) SL (ville=lyon) Cde1 Client2 Cde2 Client2 Elimination du sous-arbre inutile JN (nclient) SL (ville=lyon) Cde2 Client2 13

Optimisation de Requêtes Réparties entrée : sortie : une requête simplifiée exprimée sur des fragments un plan d'exécution réparti optimal Objectifs choisir la meilleure localisation des fragments minimiser une fonction de coût: f (I/O, CPU, 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 14

Exemple Site 1 : Site 2 : Site 3 : Site 4 : Site 5 : Client1 = Client where ville=paris Client2 = Client where ville not Paris Cde1 = Cde where Cde.nclient=Client1.nclient Cde2 = Cde where Cde.nclient=Client2.nclient résultat Select all from Client, Cde where Client.nclient = Cde.nclient and qté > 10 15

Choix de la Solution Site 5 (Client1 U Client2) J nclient (S qté > 10 (Cde1 U Cde2)) Site 1 Site 2 Site 3 Site 4 C3 U C4 Site 5 Site 1 Site 2 C3 = C1 J nclient Client1 C4 = C2 J nclient Client2 Site 3 C1 = S qté > 10 Cde1 Site 4 C2 = S qté > 10 Cde2 16

Coût des Solutions Supposons taille (Cde1) = taille (Cde2) = 10 000 taille (Client1) = taille (Client2) = 2 000 coût de transfert de 1n-uplet = 1 Sélectivité(qté>10) = 1% Stratégie 1 transfert de Cde1 + Cde2 = 20 000 transfert de Client1 + Client2 = 4000 Stratégie 2 transfert de C1 + C2 = 200 transfert de C3 + C4 = 200 17

Jointure 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 18

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 = Π A (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 = Π A (R1) de S1 sur S2 Transférer T2 = Π A (R2) de S2 sur S1 Transférer T3 = R1 R2 de S1 sur S0 Transférer T4 = R2 R1 de S2 sur S0 Sur S0, T3 T4 19

Algorithme d optimisation R* (System R) Choix de la meilleure stratégie dans la liste exhaustive des stratégies possibles. Le site maître (où la requête est posée) prend toutes les décisions globales : sélection des sites où exécuter les requêtes choix des fragments choix des méthodes de transferts Les autres sites intervenant dans la requête prennent les décisions locales : ordre des jointures locales génération des plans d accès locaux Fonction de coût totale incluant le coût des traitements locaux, et les coûts de transmission. 20

Algorithme R* Input : arbre de requête, localisation des relations, statistiques Output : stratégie d exécution la moins chère Pour chacune des relations déterminer le coût de chacun des accès possibles (index, accès séquentiel, etc.) prendre le moins cher Calculer le coût de chacune des combinaisons possibles et prendre le plus faible. Pour chaque site intervenant dans la requête, calculer le plan d exécution local le moins cher. 21

Optimisation L optimiseur choisit (à l aide de statistiques et de fonctions de coût) l ordre des jointures l algorithme de jointure le chemin d accès les sites des résultats intermédiaires la méthode de transfert de données Tout envoyer (bien pour les petites relations) Envoyer uniquement les n-uplets utiles (bien si bonne sélectivité) 22

Stratégies de jointure 4 stratégies possibles pour effectuer R S sur l attribut A, avec l algorithme des boucles imbriquées (R relation externe, S relation interne). On note s = Card (S A R) le nombre moyen de n-uplets de S Card (R) joignant un n-uplet de R. On note LT le coût du traitement local, et CT le coût de communication. 1. Envoyer R (relation externe) sur le site de S (relation interne) Coût total = LT (retrouver card (R) n-uplets de R) + CT (size (R ) ) + LT (retrouver s n-uplets de S) * card (R ) 23

Stratégies de jointure (2) 2. Envoyer S (relation interne) sur le site de R (relation externe). (les n-uplets internes ne peuvent pas être joints au fur et à mesure de leur arrivée sur le site). Coût total = LT (retrouver card(s) n-uplets de S) + CT (size(r )) + LT (stocker card(s) n-uplets dans T) + LT (retrouver card(r) n-uplets de R) + LT (retrouver s n-uplets de T) * card(r) 24

Stratégies de jointure (3) 3. Chercher les n-uplets de S (relation interne) nécessaires pour chaque n-uplet de R (relation externe). La valeur de l attribut de jointure de chaque n-uplet de R est envoyée sur S. Les s n-uplets de S correspondant à cette valeur sont envoyés sur le site de R et joints. Coût total = LT (retrouver card (R) n-uplets de R) + CT (length(a) ) * card(r ) + LT (retrouver s n-uplets de S) * card (R ) + CT(s * length(s)) * card (R ) 25

Stratégie de jointure (4) 4. Transférer les deux relations sur un troisième site et calculer la jointure sur ce site. S (relation interne) est transférée en premier, et stockée dans T. Coût total = LT (retrouver card(s) n-uplets de S) + CT (size(s )) + LT (stocker card(s) n-uplets dans T) + LT (retrouver card (R) n-uplets de R) + CT (size (R )) + LT (retrouver s n-uplets de T) * card(r) 26

Conclusion Importance de la fragmentation horizontale pour augmenter le parallélisme inter- et intra-requête Utiliser 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 27