Évaluation des requêtes dans le relationnel

Documents pareils
TP Bases de données réparties

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

Évaluation et optimisation de requêtes

Bases de Données. Plan

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

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 cours 4 Construction de requêtes en SQL. Catalin Dima

Le langage SQL Rappels

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Bases de données avancées Introduction

Gestion des transactions et accès concurrents dans les bases de données relationnelles

OBJECTIFS ET ARCHITECTURE DES SGBD

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

Intégrité sémantique dans les bases de données relationnelles

Bases de données et sites WEB

Les bases de données

Algorithmes de recherche

Optimisations des SGBDR. Étude de cas : MySQL

Cours: Les Jointures 1

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Modélisation de bases de données : Le modèle relationnel

PROJET 1 : BASE DE DONNÉES REPARTIES

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

1 Introduction et installation

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

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

Année Universitaire 2009/2010 Session 2 de Printemps

Bases de données cours 1

Les bases de données Page 1 / 8

ORACLE TUNING PACK 11G

INTRODUCTION AU DATA MINING

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

Mysql. Les requêtes préparées Prepared statements

MODE OPERATOIRE OPENOFFICE BASE

COURS de BASES de DONNEES

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

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

Le Langage SQL version Oracle

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

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

Langage SQL : créer et interroger une base

Bases de données. Chapitre 1. Introduction

16H Cours / 18H TD / 20H TP

BASES DE DONNÉES RÉSEAUX ET HIÉRARCHIQUES

Chapitre 07 Le modèle relationnel des 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

Mise en route et support Envision 10 SQL server (Avril 2015) A l'intention de l'administrateur SQL Server et de l administrateur Envision

Utiliser Access ou Excel pour gérer vos données

Configuration d'un annuaire LDAP

Gestion des utilisateurs et de leurs droits

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

LA GESTION DES VUES 1. INTRODUCTION

INTEGRITE ET BD ACTIVES

DESS CCI Formation Continue. Février Université Louis-Pasteur de Strasbourg Département d'informatique

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

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

INTRODUCTION : Données structurées et accès simplifié

Big Data et Graphes : Quelques pistes de recherche

I4 : Bases de Données

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

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

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

Administration des bases de données relationnelles Part I

Big Data et Graphes : Quelques pistes de recherche

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

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Compte-rendu de projet de Système de gestion de base de données

Techniques d optimisation des requêtes dans les data warehouses

LE LANGAGE SQL2 1. INTRODUCTION

Diagramme de classes

VLAN Virtual LAN. Introduction. II) Le VLAN. 2.1) Les VLAN de niveau 1 (Port-based VLAN)

Mesurer les altitudes avec une carte

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

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

Introduction à JDBC. Accès aux bases de données en Java

TD n 10 : Ma première Base de Données

Interpréteur d algèbre relationnelle

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

Bases de Données Avancées

Création et Gestion des tables

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

Java et les bases de données

Introduction aux Bases de Données

Bases de données relationnelles

CREATION WEB DYNAMIQUE

Introduction à l Informatique Décisionnelle - Business Intelligence (7)

Groupe 11 TABLE DES MATIERES

Bases de données élémentaires Maude Manouvrier

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

MICRO-INFORMATIQUE DÉFINITION DU DOMAINE D'EXAMEN BASE DE DONNÉES CONSULTATION INF

A QUOI SERVENT LES BASES DE DONNÉES?

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

Module BDR Master d Informatique (SAR)

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Fouille de Données : OLAP & Data Warehousing

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

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

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Algorithmes d'apprentissage

Transcription:

Évaluation des requêtes dans le relationnel Analyse des requêtes Analyse syntaxique/sémantique Bernard ESPINASSE Professeur à Aix-Marseille Université (AMU) Ecole Polytechnique Universitaire de Marseille Mars 213 Usage des multi-graphes de connexion Requêtes équivalentes par transitivité Ordonnancement des requêtes par restructuration Arbre algébrique Règles et heuristiques Estimation des volumes d'information manipulées Évaluation des Requêtes dans le relationnel 3 Étapes : 1. Analyse Syntaxique Sémantique --> Vérifier correction --> 1 simplification du critère de recherche 2. Ordonnancement --> Décomposer la requête en séquences d'opérations élémentaires (Algèbre relationnelle). --> Déterminer un ordre +- optimal. Génération d'un plan d'exécution 3. Exécution --> Exécution en // ou en séquences des opérations élémentaires selon le plan d'exécution défini en 2 Rôle des SGBD Relationnels Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 1 Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 2 Analyse des Requêtes 1. Syntaxique : Vérification : attributs cités appartiennent au schéma qualification correcte (types) Mise en forme : Normale Conjonctive (ET de OU) (si opérateurs élémentaires supportent le OU) ou Normale Disjonctive (OU de ET) (> plusieurs requêtes) 2. Sémantique : Vérification requête bien formulée : Certaines parties apparaissent inutiles --> jointure oubliée?... Requête non contradictoire : ( > 14 et < 13,... ) Recherche de requêtes équivalentes par : Manipulation de la qualification (transitivité), de contraintes d'intégrités (+rare...), Outils Disponibles : Multi-Graphes de connexion : des relations des attributs Graphes de Connexion (Source : G. Gardarin) ABUS NOM NV QTE VINS NV CRU MILLESIME DEGRE NV NP PRODUIT ABUS (NOM, NV*, QTE) (NOM du buveur, NV* clé étrangère) PRODUCTEUR (NP, NOM, REGION) VINS (NV, CRU, MILLESIME, DEGRE) PRODUIT (NV*, NP*) Soit la requête (SQL) : Select V.CRU From PRODUCTEUR P, VINS V, PRODUIT R Where V.MILLESIME "1976" and V.DEGRE 14 and "" and and ; PRODUCTEUR NP NOM REGION Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 3 Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 4

Graphe de Connexion des Relations [ULLMAN 8] Soit la requête (SQL) : Q1 Select V.CRU From PRODUCTEUR P, VINS V, PRODUIT R Where V.MILLESIME "1976" and V.DEGRE 14 and "" and and ; Conventions : V.MILLESIME 1976 et V.DEGRE 14 W résultat V.CRU sommet: relation arc: jointure entre 2 relations restriction sur une relation (boucle) V Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 5 R "" P Graphe de Connexion des Attributs [ROSENKRANTZ 8] Conventions : sommet: attribut ou constante arc: jointure (entre 2 attributs) restriction (attribut - constante) valuation de lʼarc: X Y+C: X Y: X 14: X X Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 6 C X 14 Y Y Graphe de Connexion des Attributs [ROSENKRANTZ 8] Soit la requête (SQL) : Q1 Select V.CRU From PRODUCTEUR P, VINS V, PRODUIT R Where V.MILLESIME"1976" and V.DEGRE 14 and "" and and ; Graphe de connexion des attributs: Graphes de connexion : correction Correction de la Requête 1. Requête mal formulée : Certaines parties semblent inutiles -> Oublie de jointure par l'utilisateur 2. Requête présente qualification contradictoire : ex: >14 et <12 Utilisation des Graphes de Connexion Correction des requêtes conjonctives (sans OU) avec opérateurs de comparaison, <, >,,, (pas de ) : Une requête est mal formulée si son graphe de connexion des relations n'est pas connexe [WONG 76]: V.MILLESIME 1976 V.DEGRE 14 R.REGION restrictions jointures R Une requête est contradictoire si son graphe de connexion des attributs normalisé présente un cycle dont la somme des valuations est négative [ROSENKRANTZ 8]: X 14 X 12 X 14 12-2 12 14-2 Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 7 Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 8

Graphes de connexion : requêtes équivalentes par transitivité Utilisation des Graphes de Connexion : Transitivité d'un graphe de connexion des attributs [GOMEZ 78, BERNSTEIN 79]: chemin! X si: X Y + C il existe un chemin! joignant X à Y tel que! valuations C alors il y a fermeture transitive X -> Y Soit G1 et G2, sous-graphes de connexion d'attributs associés à 2 requêtes Q1 et Q2 : Si fermeture transitive (G1) fermeture transitive (G2) alors Q1 Q2 Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 9 Y Graphes de connexion : requêtes équivalentes par transitivité Soit la requête (SQL) : Q2 Select From BUVEURS A, PRODUCTEUR P, VINS V, PRODUIT R Where and ; and and and "" and V.DEGRE 14; Graphe de connexion des relations: V.DEGRE 14 Soit la requête (SQL) : Q2' Select From BUVEURS A, PRODUCTEUR P, VINS V, PRODUIT R Where and ; and and and "" and V.DEGRE 14; Graphe de connexion des relations: V.DEGRE 14 Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 1 même fermeture transitive, d'où: Q2 et Q2' équivalentes : > Choisir la jointure la plus facile à évaluer. Ordonnancement par restructurations algébriques Arbre algébrique : Retrieve Where()"()"()" A[ABUS] ("")"(V.DEGRE 14) RESULTAT V.DEGRE 14 P[PRODUCTEUR] jointure 2 V[VINS] jointure 1 R[PRODUIT] projection sélection 2 sélection 1 jointure 3 A une question correspond plusieurs arbres (ordre des opérations algébriques). Méthode simple : {J} + {R} + proj. Finale Ordonnancement par restructurations algébriques Arbre algébrique --> Plan d'exécution (feuille -> racine) Exécution en //... Optimisation des temps de réponse : Optimiser le nombre de E/S Le parallélisme entre E/S La taille des tampons nécessaires à l'exécution Le temps de CPU nécessaire. Optimisation par ordonnancement optimal des opérations A1 (arbre initial) plan d'execution 1 règles de transformation + heuristiques Aopt (arbre optimal) plan d'execution n A1 Aopt Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 11 Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 12

Règles de Transformation des Arbres Algébriques [SMITH75;ULLMAN8] Règle 1 : Commutativité des Jointures Règles de Transformation des Arbres Algébriques [SMITH75;ULLMAN8] Règle 4 : Commutation des Restrictions et Projections nécessaire si Ai n'est pas un des attributs A1..Ap R1 R2 R2 R1 Règle 2 : Associativité des Jointures R (..Ai..) A1... Ap Ai R (..Ai..) Règle 5 : Commutation des Restrictions et Jointures Ai est nécessaire si Ai n'est pas un des attributs A1..Ap R3 R1 R1 R2 Règle 3 : Regroupement des Restrictions Aq b Ap a R(..Ai..) R2 Ap a! Aq b R(..Ai..) R3 R2 (..Bj..) R1 (..Ai..) R2 (..Bj..) R1 (..Ai..) Règle 6 : Commutation des Restrictions et Unions,ou des Restrictions et Différences U ou - U ou - R1 R2 R1 R2 Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 13 Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 14 Règles de Transformation des Arbres Algébriques [SMITH75;ULLMAN8] Règle 7 : Commutation des Projections et Jointures A1... ApB1..Bq nécessaire si Ai n'appartient pas à ou Bj n'appartient pas à B1...Bq A1... ApB1..Bq Ai Bj Heuristiques d'optimisation [ULLMAN 8] 1. Séparer les restrictions comportant plusieurs prédicats à l'aide de la règle 3 2. Descendre les restrictions aussi bas que possible à l'aide des règles 4, 5 et 6. (Exécution d'abord dans opérations unaires) 3. Regrouper les restrictions successives portant sur une même relation Ai Bj Ai B1...BqBj 4. Descendre les projections aussi bas que possible à l'aide des règles 7 et 8 R1 (..Ai..) R2 (..Bj..) R1 (..Ai..) Règle 8 : Commutation des Projections et Unions R2 (..Bj..) 5. Regrouper les projections successives en conservant les attributs restants et éliminer d'éventuelles projections inutiles qui auraient pu apparaître. U Afin d'éviter plusieurs passes sur une même relation, sont exécutées simultanément: U une restriction suivie par une projection R1 (..Ai..) R2 (..Ai..) R1 (..Ai..) R2 (..Ai..) une jointure suivie par une projection. Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 15 Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 16

Heuristiques d'optimisation [ULLMAN 8] Cet heuristique appliqué au cas précédent donne : RESULTAT Estimation des volumes d'informations manipulées par une requête Soit une requête Q, V inf i volume d'information transitant sur l'arc i de l'arbre algébrique associé à Q, on a : V inf Q i V inf i volumes relations primaires (From) + volumes relations temporaires on note: R volume de la relation R (nb tuples R X nb car/tuple R) Par exemple : V.DEGRE 14 P[PRODUCTEUR] projection jointure 5 q3 4 q2 R[PRODUIT] V[VINS] restriction q1 2 3 R2 A[ABUS] Arbre pas forcément optimal : la descente des restrictions et projections n'est qu'une heuristique - l'ordre des opérations binaires n'a pas été optimisé. Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 17 1 R1 V inf Q R1 + R1 [q1] + R2 + R1 [q1] R2 + q2 q3 (R [q1] R2) q2 1 2 3 4 5 Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 18 Cas Station : la base (Source : Bouzeghoub, Jouve, Puchéral) ACTIVITE TypeActivité NoStation description adrclub STATION NoStation NomStation altitude gare region 1 STATION (NoStation, NomStation, altitude, gare, région) ACTIVITE (typeactivité, NoStation*, description, adrclub) HOTEL (NoHôtel, NoStation*, adrhotel, catégorie, nbchambres) (NoHôtel*, NoClient*, datereser, durée) (NoClient, nomclient, prenomclient, adrclient, telclient) (attribut clé primaire ; attribut* clé étrangère) HOTEL NoHotel NoStation adrhotel categorie nbchambres 1 NoHotel NoClient datereser duree 2 NoClient NomClient PrenomClient adrclient telclient 5 Cas Station : optimisation Requête : Identité des clients ayant passé réservation à l'hôtel N 536? Select NomClient From client, reservation Where Nohôtel "536" And reservation.noclient client.noclient Select NomClient From client, reservation Where reservation.noclient client.noclient And NoHôtel"536" Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 19 Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 2

Cas station : estimation des volumes Identité des clients ayant passé réservation à l'hôtel N 536? Requête 1 : V inf /reservation/ + /reservation[nohôtel536]/ + /client/ soit : + /(reservation[nohôtel536]xclient/ /J/ + /π (reservation[nohôtel536]xclient)/ /π/ d'où : /reservation/ 2 x 17 c 34 3,4 1 5 c /reservation[nohôtel536]/ (2 /1 )x17c 34c (hypothèse : répartition uniforme des réservations entre les hôtels) /client/ 25 x133 3325 3.325 1 6 c calcul de /J/ : reservation >- client soit : /J/ 2(17+133 c) 3 c (un seul tuple de reservation avec un seul tuple de client) calcul de /π/ : conserve que l(attribut NomClient (4 c) soit : /π/ 2x4 8c Requête 2 : V inf 3,4 1 5 + 34 + 3,325 1 6 + 3+8 3,665414 1 6 caractères V inf /reservation/ + /client/ + /reservation[n hôtel536]/ + /π (reservationxclient)/ V inf 3,4 1 5 + 3,325 1 6 + (2 (17+133))+3+8 3,96538 1 6 caractères Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 21 Cas station : restructuration algébrique (1) Requête 2 : commutativité des restrictions/jointures commutativité des projections/jointures (remontée des jointures) > redescente des projections : ent Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 22 * Cas station : restructuration algébrique (2) projection rajoutée sur pas bénéfique car si elle réduit le volume d'information : elle induit un traitement supplémentaire sur si un chemin d'accès existe sur (index), il est perdu pour la jointure... d'où restructuration retenue : Evaluation des requêtes dans le relationnel - Bernard ESPINASSE 23