Bases de données fédéréEs hétérogènes

Slides:



Advertisements
Présentations similaires
REFERENTIEL DE LA SERIE STG
Advertisements

Optimisation des requêtes
Rappels. Les Systèmes de Gestion de Bases de Données (SGBD) L'algèbre relationnelle.
Classification et prédiction
Introduction Pour concrétiser l’enseignement assisté par ordinateur
ANALYSE CONJOINTE 29/06/07- Analyse conjointe.
Fonctionnalités des SGBD
Algèbre relationnelle
Optimisation algébrique de requêtes relationnelles

Optimisation de Requêtes
ALGEBRE DE BOOLE Mohamed Yassine Haouam
                                        République Algérienne Démocratique et Populaire Ministère de l’Enseignement Supérieur et de la Recherche Scientifique.
1 ARCHITECTURE DACCÈS la méthode générale modèle de données définitions module daccès / modules métiers construction des modèles les modules daccès, les.
Les contraintes d’integrité
Les BDAs (Les bases de données réparties)
To Tune or not to Tune? To Tune or not to Tune? A Lightweight Physical Design Alerter Costa Jean-Denis Le Yaouanc Aurélie Mécanismes de SGBD 2007.
Contrôles d'accès aux données
Parcours de formation SIN-7
Algorithmes Branch & Bound
Chap 4 Les bases de données et le modèle relationnel
1 Bases de Données Distribuées Chapitre 22, Sections 22.6–22.14.
Bases de Données Réparties
Bases de données et SGBD relationnels
Algorithme d’addition #1
Algèbre relationnelle
Staf 2x Cours de bases de données
IFT Complexité et NP-complétude
Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.
Algèbre Relationnelle
Optimisation des Requêtes Relationnelles
1 Évaluation des Requêtes: Survol Chapitre Objectifs Catalogue Préliminaires: Techniques de base pour traiter des requêtes Chemin daccès Correspondance.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Évaluation des Requêtes: Survol Chapitre 12.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Algèbre Relationnelle Chapitre 4, Sections 4.1 – 4.2.
Cours de Base de Données & Langage SQL
Cours N°2 Base de Données & Langage SQL
Algorithmes d ’approximation
Les concepts et les méthodes des bases de données
Mise en oeuvre des MMCs L'utilisation des MMCs en reconnaissance des formes s'effectue en trois étapes : définition de la topologie de la chaîne de Markov,
Initiation aux bases de données et à la programmation événementielle
Programmation dynamique
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Programmation dynamique
Module 8 : Surveillance des performances de SQL Server
Optimisation de requêtes
Calcul parallèle => partitionner les données en sous-groupes associés aux processeurs. P0 P2 P1.
© Petko ValtchevUniversité de Montréal Février IFT 2251 Génie Logiciel Conception Hiver 2002 Petko Valtchev.
1 G. Gardarin Optimisation de Requêtes  1. Introduction  2. Arbres relationnels  3. Restructuration algébrique  4. Modèle de coût  5. Choix du meilleur.
Sélection de colonnes (la projection)
François CARCENAC,Frédéric BONIOL ONERA-DTIM Zoubir MAMMERI IRIT
Module 3 : Création d'un domaine Windows 2000
Les différents modèles d’architecture technique
Recherches locales et méta-heuristiques
1 Initiation aux bases de données et à la programmation événementielle Responsable : Souheib BAARIR. (le sujet de votre .
Optimisation pour la Conception de Systèmes Embarqués
Initiation aux SGBD Frédéric Gava (MCF)
Couche réseau du modèle OSI
Najib OURADI-Hightech  « To the user, a distributed system should look exactly like a nondistributed system» (C. Date, Introduction to Database.
Structures de données avancées : LH* D. E ZEGOUR Institut National d ’Informatique.
Langage Relationnel Graphe de Requêtes
INTRODUCTION AUX BASES DE DONNEES
Op é rateurs ensemblistes Module 4. 2 La clause GROUP BY La clause GROUP BY est nécessaire dès que l'on utilise des fonctions de calculs statistiques.
Introduction Module 1.
Traitement et optimisation de requêtes
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
Algorithmes Branch & Bound Module IAD/RP/RO Master d ’informatique Paris 6 Philippe Chrétienne.
Cours de Systèmes de Gestion de Données - Licence MIAGE – 2003/20041 Cours n°2 La conception d ’un schéma relationnel (suite) Chantal Reynaud Université.
PetaSky: Expérimentations avec HadoopDB et Hive 1 Amin Mesmoudi.
Amin Mesmoudi. Les Besoins LSST en stockage et accès aux données (1/2) Stockage: 2 TableTaille#enregistrements#colonnes (arité) Object109 TB38 B470 Moving.
Transcription de la présentation:

Bases de données fédéréEs hétérogènes Z.Alimazighi 2009/2010 Bases de données fédéréEs hétérogènes Partie II Chapitre2: Évaluation de requêtes distribuées

Traitement des requêtes centralisée Z.Alimazighi 2009/2010 Traitement des requêtes centralisée Décomposition : durant cette étape, la requête SQL est transformée en arbre algébrique. Optimisation : des optimisations sont appliquées sur l’ arbre issu de la phase précédente, afin de déterminer l’ordonnancement optimal des opérations relationnelles, ainsi que les algorithmes d’accès aux données. L’optimisation utilise :  Les propriétés des opérateurs algébriques (Associativité, Commutativité, Distributivité) Des heuristiques : en évaluant en premier les opérations les moins coûteuses, par exemple en faisant descendre les sélections, ce qui réduit le nombre de tuples, ainsi que les Projections qui réduit le nombre de colonnes.   Exécution : c’est l’étape finale, qui consiste dans l’exécution de la requête optimisée afin d’élaborer son résultat. Décomposition Optimisation Plan d’exécution Exécution Résultats Évaluation d’une requête centralisée Requête Centralisée

Traitement des requêtes réparties Z.Alimazighi 2009/2010 Traitement des requêtes réparties Requête Décomposition Arbre algébrique Localisation Requête répartie avec localisation et fragmentation Optimisation Globale Plan d’exécution répartie Informations sur la localisation et la fragmentation Modèles de coûts statistiques Schéma global Exécution sur le site de contrôle Optimisation Locale Exécution sur les sites locaux

Optimisation de requêtes distribuées Z.Alimazighi 2009/2010 Optimisation de requêtes distribuées Optimisation globale Optimisation locale Requête optimisée sur les fragments avec des primitives de communication Données statistiques sur les fragments Schémas locaux Exécution sur le site de contrôle Exécution sur les sites locaux Requêtes locales optimisées

Optimisation de requêtes distribuées Z.Alimazighi 2009/2010 Optimisation de requêtes distribuées Décomposition de requête: la requête est exprimée en termes de relations globales (indépendamment de leur répartition). Une première optimisation partielle à l’aide d’heuristiques sur l’ordonnancement des opérateurs peut être effectuée (voir chapitre sur l’ordonnancement). Localisation de données: cette couche prend en compte la répartition des données sur le système (on tient compte de la fragmentation). On remplace les feuilles de l’arbre d’algèbre relationnelle par leurs algorithmes de reconstruction « Un algorithme de reconstruction est les opérations de l’algèbre relationnelle qui reconstituent les relations globales à partir des fragments » Optimisation globale: cette couche prend en compte les informations statistiques pour trouver un plan d’exécution proche de l’optimum, basé sur les fragments avec en plus des primitives de communications vers les sites locaux pour l’exécution des sous-requêtes. Optimisation locale: cette couche s’exécute sur chacun des sites locaux impliqués dans la requête. Chaque SGBD local effectue ses propres optimisations à l’aide des heuristiques classiques d’optimisation

Z.Alimazighi 2009/2010 La décomposition: La requête globale est transformée en un arbre algébrique Exemple : soit un système réparti sur lesquels sont distribuées deux relations : Produit (NumProd, Libellé, Pu…,) ; Stock (NumDépôt,NumProd…) La requête globale : « Quels sont les produits du dépôt n°4 ? » P Libellé Select #Dépôt = 4 P #Prod P #Prod, libellé Produit Stock Requête Globale

Optimisation de requêtes: la localisation Z.Alimazighi 2009/2010 Optimisation de requêtes: la localisation La localisation d’une requête distribuée procède en deux étapes : Génération de requête canonique Simplification (ou réduction)  Génération de requête canonique : la requête canonique est obtenue en remplaçant chaque relation de la requête distribuée globale par la requête de reconstruction correspondante : c’est-à-dire les relations globales des feuilles de l’arbre sont remplacées par leurs fragments constitutifs  

Exemple : [Boudjlida, Nancy-CRIN] Z.Alimazighi 2009/2010 Exemple : [Boudjlida, Nancy-CRIN] Hypothèses :Produit (produit1, Produit2), Stock (Stock1, Stock2) P Libellé Select #Depot = 4 P #Prod P #Prod, libellé Produit Produit2 Produit1 Stock U Stock2 Stock1 Requête Globale Requêtes de Reconstruction Stock1 = Project /# Dep=4 (Stock) Stock2 = Project /# Dep <> 4 (Stock) Produit1= Project/#prod,libellé (Produit) Produit2 = Project /#prod,Pu (Produit)  

Optimisation des requêtes réparties: la simplification Z.Alimazighi 2009/2010 Optimisation des requêtes réparties: la simplification La simplification : elle est basée sur des règles de simplifications, qui permettent de déterminer les opérations inutiles dans une requête canonique. Les opérations inutiles sont celles qui produisent un résultat vide, ou identique à l’opérande. Parmi ces règles, on cite : Une opération de restriction sur un fragment horizontal, dont le prédicat est en contradiction avec le prédicat de fragmentation, produit un résultat vide. Exemple: la restriction à dépôt=4 au fragment défini sur dépôt<>4 (Stock2) Éliminer les conditions de sélections inutiles, quand la condition est identique à celle de la fragmentation. Exemple: sélection à dépôt=4 du fragment défini sur dépôt=4 (Stock 1) Une opération de projection sur un fragment vertical, dont tous les attributs projetés- à l’exception, de l’attribut commun de reconstruction- n’appartiennent pas au fragment, donne un résultat vide . Exemple: projection sur numprod,libellé du fragment Produit

Optimisation des requêtes réparties: la simplification Z.Alimazighi 2009/2010 Optimisation des requêtes réparties: la simplification P Libellé Select #Depot = 4 P #Prod P #Prod, libellé Produit2 Produit1 U Stock2 Stock1 P #Prod, libellé Select #Depot = 4 Descente des sélections et projections et simplification

Z.Alimazighi 2009/2010 Arbre final P Libellé P #Prod Prod1 Stock1

Traitement des requêtes réparties Z.Alimazighi 2009/2010 Traitement des requêtes réparties Le rôle de l’optimisation, est de déterminer une stratégie d’exécution de la requête distribuée qui minimise une fonction de coût, en évitant ainsi des stratégies qui conduisent à de mauvaises performances. Les fonctions de coût à minimiser sont généralement les suivantes :   Le temps total d’exécution : Dans le cas d’un SGBD centralisé, ce temps est la somme, du temps des entrées-sorties (accès disque) et du temps du calcul en unité centrale. Dans le cas distribué, on ajoute le temps de communication nécessaire, à l’échange des données entre différents sites participants à la requête distribuée. Le temps de réponse : Il prend en compte les traitements exécutés en parallèle.

Objectifs et facteurs de l’optimisation Z.Alimazighi 2009/2010 Objectifs et facteurs de l’optimisation Minimiser la fonction coût d’exécution : somme des temps d’exécution des sous requêtes sur chaque site Tenir compte : Du parallélisme Des coûts de transferts Des profils des fragments Taille, nombre de n-uplets Taille du domaine des attributs… De la taille des résultats intermédiaires De la topologie du réseau

Traitement de requêtes réparties Z.Alimazighi 2009/2010 Traitement de requêtes réparties L’exécution : le processus d’exécution de requêtes est aussi distribué, c’est-à-dire qu’il consistera en plusieurs processus d’exécution de requêtes locales et d’un processus d’exécution global. Le plan de l’exécution est l’ensemble des traitements locaux, ainsi que les opérations de communications des données intermédiaires, nécessaires pour les exécutions locales et la synchronisation globale.

Traitement de requêtes réparties Z.Alimazighi 2009/2010 Traitement de requêtes réparties Les décisions à prendre dans le plan d’exécution sont les suivantes Ordre des jointures stratégie de jointure Sélection des copies (site le plus proche, le moins engorgé) Choix des sites d’exécution (fonction des coûts de communication) Choix des algorithmes d’accès répartis Choix du mode de transfert (tuple/paquets)

Stratégies d’évaluation des requêtes Z.Alimazighi 2009/2010 Stratégies d’évaluation des requêtes EXEMPLE : Soit la BD simplifiée des fournisseurs suivante : F : FOURNISSEUR (NUMF, VILLE) : 10.000 tuples site A P : PRODUIT (NUMP, COULEUR) : 100.000 tuples site B PF :PROD-FOUR (NUMF,NUMP) : 1.000.000 tuples site A Chaque tuple a une longueur de 25 octets (200 bits) Requête : numéros des fournisseurs d’Alger qui fournissent des produits de couleur « rouge » : Select NUMF From F Where Exists Select * From PF Where Exists Select * From P Where VILLE = ‘Alger’ And F.NUMF = PF.NUMF and PF. NUMP = P.NUMP And P.COULEUR = ‘Rouge’ Quelques caractéristiques : Nbr produits rouges = 10 Nombre de livraisons par les fournisseurs d’Alger : 100.000 Hypothèses sur les communications : Débit de données : 50.000 B/S Délai d’accès : 0,1 s

SOLUTION : Les différentes stratégies Z.Alimazighi 2009/2010 SOLUTION : Les différentes stratégies Stratégie 1 : déplacer la relation produit vers le site A et exécuter la requête sur A T : 0,1 + (100.000 * 200) / 50.000 = 400s (6.67 mn) Stratégie 2 : déplacer les relations fournisseur et Prod-Four vers le site B et exécuter la requête sur le site B T : 0,2 + (( 10000 + 1000000)*200) / 50000 = 4040 s (1.12 h) Stratégie 3 : Effectuer la jointure des relations F et FP sur le site A, effectuer la restriction du résultat pour ‘Alger’ et demander au site B, pour chacun des tuple obtenus si le produit est rouge.(2 messages pour chacun des tuples ) T = 0,1 * 100.000 *2 = 20000s Stratégie 4 : Effectuer la restriction de la relation P sur le site B, et pour chacun des tuples demander au site A s’il existe une livraison associant le produit à un fournisseur d’Alger. T = 10*0,1*2 = 2s Stratégie 5 : Effectuer la jointure des relations F et FP sur le site A, effectuer la restriction du résultat sur ville =’Alger’, effectuer la projection du résultat sur NUMF et NUMP et déplacer le résultat sur le site B ; terminer le calcul sur le site B. T = 0,1 + (100000*200) /50000 = 400 s Stratégie 6 : Effectuer la restriction de la relation P sur le site B, pour les produits rouges, et déplacer le résultat vers le site A. Terminer le calcul sur le site A. T = 0,1 + (10 *200) / 50000 = 0,1 s

Z.Alimazighi 2009/2010 GESTION DU CATALOGUE Dans un système distribué, le catalogue du système contiendra non seulement les données d’un catalogue classique ( relations de base, vues, index, …) mais également toutes les informations de contrôle nécessaires au système pour assure la fragmentation , la duplication.. Quelques possibilités : 1.    Centralisé : l’ensemble du catalogue est mémorisé une seule fois, sur un site central unique. Cette approche viole l’objectif « pas de contrôle centralisé »   2.    Duplication totale : l’ensemble du catalogue est entièrement mémorisé sur chaque site. Perte importante d’autonomie   

Z.Alimazighi 2009/2010 GESTION DU CATALOGUE   Partitionné : Chaque site gère son propre catalogue concernant les objets de ce site. L’ensemble du catalogue est l’union de tous les catalogues locaux et disjoints. Les opérations qui ne sont pas locales sont très coûteuses (trouver un objet distant nécessite d’accéder en moyenne à la moitié des sites) Combinaison de 1 et 3 : Chaque site gère son propre catalogue local, de plus un site central gère une copie unifiée de tous les catalogues locaux. Plus efficace que 3 mais viole l’objectif « pas de contrôle centralisé ».