Systèmes de gestion de bases de données



Documents pareils
Évaluation et optimisation de requêtes

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Encryptions, compression et partitionnement des données

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Devoir Data WareHouse

Bases de données documentaires et distribuées Cours NFE04

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Un ordonnanceur stupide

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

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

Du 10 Fév. au 14 Mars 2014

Gestion de stock pour un magasin

Bases de données avancées

Mandataires, caches et filtres

Attaques applicatives

Le langage SQL Rappels

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Les bases de données

Administration de Bases de Données : Optimisation

Mysql avec EasyPhp. 1 er mars 2006

INTRODUCTION AU DATA MINING

PROJET 1 : BASE DE DONNÉES REPARTIES

Comment Créer une Base de Données Ab Initio

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

Le stockage local de données en HTML5

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Arbres binaires de recherche

CATALOGUE FORMATIONS DOMAINE Bases de données

2 Serveurs OLAP et introduction au Data Mining

Paginer les données côté serveur, mettre en cache côté client

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

Langage SQL : créer et interroger une base

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

TP Bases de données réparties

Modélisation et Gestion des bases de données avec mysql workbench

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

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Structure fonctionnelle d un SGBD

Principe, applications et limites

1 Introduction et installation

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

SYSTÈME DE GESTION DE FICHIERS

Gestion mémoire et Représentation intermédiaire


Programmer en JAVA. par Tama

MS SQL Express 2005 Sauvegarde des données

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

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Java et les bases de données

Introduction au langage C

CREATION WEB DYNAMIQUE

Algorithmique & programmation

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

SQL Server 2012 Administrez une base de données : Exercices et corrigés

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

SQL Serveur Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise

Installation d un patch de mise à jour et d un pack langue dans SugarCRM Open Source 4.5.1

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

Environnements informatiques

1. Base de données SQLite

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Cours Bases de données 2ème année IUT

.NET - Classe de Log

Les structures de données. Rajae El Ouazzani

BASES DE DONNEES TP POSTGRESQL

Présentation du PL/SQL

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

Big Data et Graphes : Quelques pistes de recherche

Introduction aux SGBDR

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

Connexion à une base de données. Connexion à une base de données. Connexion à une base de données Développement d'une application

Projet de programmation (IK3) : TP n 1 Correction

Ora2Pg Performances. (C) 2013 Gilles Darold

Configurer la supervision pour une base MS SQL Server Viadéis Services

//////////////////////////////////////////////////////////////////// Administration bases de données

Les bases fondamentales du langage Transact SQL

Jean-François Boulicaut & Mohand-Saïd Hacid

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

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

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

1 è r e étape : créer sa base de d o n n é e s

Définition des Webservices Ordre de paiement par . Version 1.0

Développement de base de données Microsoft SQL Server Durée : 5 jours Référence : DPSQL12. Contenu

Bases de Données et Internet

UML et les Bases de Données

Formation Cloudera Data Analyst Utiliser Pig, Hive et Impala avec Hadoop

Thème : Gestion commerciale

CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

1. Structure d'un programme FORTRAN 95

Le Langage SQL version Oracle

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

Base de données relationnelle et requêtes SQL

TPE Artema IP. Manuel de l'utilisateur

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE

Transcription:

Systèmes de gestion de bases de données Exécution de requêtes: mod ele d exécution P. Rigaux Cnam, dépt. informatique May 6, 2015 PR (Cnam, dépt. info) Systèmes de gestion de bases de données May 6, 2015 1 / 1

Le moteur d exécution Une requête est prise en charge par un moteur d exécution qui produit dynamiquement un programme ou plan d exécution Ce programme a une forme spéciale: c est un arbre constitué d opérateurs échangeant des flux de données. Les opérateurs ont une forme générique (itérateurs); fournissent une tâche spécialisée (cf. l algèbre relationnelle) un petit nombre suffit! Dans ce cours On va apprendre à implanter un moteur d exécution pour (presque toutes) les requêtes SQL! PR (Cnam, dépt. info) Systèmes de gestion de bases de données May 6, 2015 2 / 1

Matérialisation et pipelinage Prenons deux opérations, un parcours d index qui fournit des adresses, et un accès direct qui fournit des tuples. Première solution: on exécute en séquence, avec matérialisation. Pas bon: consomme de la mémoire; introduit une latence inutile. PR (Cnam, dépt. info) Systèmes de gestion de bases de données May 6, 2015 3 / 1

La bonne solution On connecte les opérateurs entre eux. Pas de stockage intermédiaire; pas de latence (sauf si...). Production à la demande de l application ( aspirateur ). PR (Cnam, dépt. info) Systèmes de gestion de bases de données May 6, 2015 4 / 1

Opérateur bloquant Il est parfois nécessaire d effectuer un calcul complet avant de fournir le premier tuple.. le tri ( order by ); l élimination des doublons ( distinct ); le partitionnement ( group by ); On introduit alors un opérateur bloquant: très mauvais pour la latence. PR (Cnam, dépt. info) Systèmes de gestion de bases de données May 6, 2015 5 / 1

Temps de réponse et temps d exécution À comparer: select * from T et select distinct * from T Bien distinguer Temps de réponse: temps pour obtenir le premier tuple. Temps d exécution: temps pour obtenir tous les tuples. Avec un opérateur bloquant on additionne l exécution de la requête et celle de l application. PR (Cnam, dépt. info) Systèmes de gestion de bases de données May 6, 2015 6 / 1

Notion d itérateur Chaque opérateur est implanté sous forme d un itérateur. Trois fonctions: open : initialise les tâches de l opérateur ; positionne le curseur au début du résultat à fournir ; next : ramène l enregistrement courant se place sur l enregistrement suivant ; close : libère les ressources ; Connexion: Un itérateur consomme des tuples d un ou deux autres itérateurs. Un itérateur produit des tuples pour un autre itérateur (ou pour l application). PR (Cnam, dépt. info) Systèmes de gestion de bases de données May 6, 2015 7 / 1

Premier exemple: l opérateur FullScan Fonction open(): on se positionne au début du fichier. function openscan { # Entree: $T est la table } # Initialisations p = $T.first; # Premier bloc de T e = $p.init; # On se place avant le premier enregistrement PR (Cnam, dépt. info) Systèmes de gestion de bases de données May 6, 2015 8 / 1

L opérateur FullScan (suite) Fonction next(): on récupère le tuple suivant. function nextscan { # Enregistrement suivant $e = $p.next; # A-t-on atteint le dernier enregistrement du bloc? if ($e = null) do # On passe au bloc suivant $p = $T.next; # Dernier bloc atteint? if ($p = null) then return null; else $e = $p.first; fi done } return $e; PR (Cnam, dépt. info) Systèmes de gestion de bases de données May 6, 2015 9 / 1

Ma première exécution de requête La requête select * from T est implantée par: # Parcours de la table T $curseur = new FullScan(T); $tuple = $curseur.next(); while [$tuple!= null ] do # Traitement du tuple... # Passage au tuple suivant $tuple = $curseur.next(); done # Fermeture du curseur $curseur.close(); PR (Cnam, dépt. info) Systèmes de gestion de bases de données May 6, 2015 10 / 1

Résumé Principes essentiels : 1 Production à la demande : le serveur n envoie un enregistrement à l application que quand celle-ci le demande ; 2 Pipelinage : on essaie d éviter le stockage en mémoire de résultats intermédiaires : le résultat est calculé au fur et à mesure. Conséquences : temps de réponse minimisé (pour obtenir le premier enregistrement) mais attention aux plans bloquants (ex. plans avec un tri). PR (Cnam, dépt. info) Systèmes de gestion de bases de données May 6, 2015 11 / 1