Présentation PowerPoint - Deptinfo

145
Ingénierie des bases de données M. Scholl NFE106

Transcript of Présentation PowerPoint - Deptinfo

Page 1: Présentation PowerPoint - Deptinfo

Ingénierie des bases de donnéesM. Scholl

NFE106

Page 2: Présentation PowerPoint - Deptinfo

cursusCycle d’ingénieurM1Cours de bases de données qui fait suite à NFP107

Page 3: Présentation PowerPoint - Deptinfo

PrérequisNiveau

cycle probatoire informatique ouLicence informatique

Avoir suivi NFP107 ouDes connaissances de base relationnelles:

Modèle relationnelAlgèbreSQL

Des notions de base sur les systèmes et les langages de programmationsur les disques et fichiers

Page 4: Présentation PowerPoint - Deptinfo

Objectif : fondements des Bases de données relationnelles

Accent mis cette année sur:Calcul relationnel :

fondement du standard d’interrogation SQL

Théorie des dépendances fonctionnelles et de la décomposition :

fondement d’une bonne conception de schéma

Optimisation d’une requête relationnelle:interprétation d’une requête SQL en un programme d’exécution efficace

Page 5: Présentation PowerPoint - Deptinfo

Autres aspects non couverts cette année

Les entrepôts de données, les bases de documents et l’interrogation sur le Web (standards XML, Xpath,Xquery) sont étudiés partiellement dans d’autres cours (NFE114,NFE204, NFE205,…)Pourraient être étudiés une autre année

Distribution des donnéesParallélismeDatalog, règlesQualité des donnéesBases de données embarquéesBases de données mobilesEtc.

Page 6: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 6

Plan1. Introduction, rappels relationnels2. Optimisation 3. Le calcul relationnel comme langage

de requêtes 4. Conception d’un schéma relationnel:

Théorie de la décomposition

Page 7: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 7

2 jeux de transparents1. Introduction, rappels relationnels,

Optimisation 1. Calcul relationnel, Conception

Page 8: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 8

EnseignantsMichel Scholl cours Nicolas Travers (ED et TP)

Page 9: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 9

OrganisationCours:

13 séances (indicatif)1 Introduction, Rappels5 optimisation2 calcul relationnel4 conception1 révisions

ED: 13 séances

TP: 6 séancesOptimisation Oracle (explain)

Page 10: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 10

RemerciementsLes transparents du calcul et de la théorie de la décomposition empruntent beaucoup au cours de Bernd Amann en licence à l’université de Paris 6Les exercices en optimisation sont étoffés par ceux du cours de P. Rigaux à l’université de Dauphine

Page 11: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 11

Bibliographie[1] H. Garcia-Molina, J. Ullman, J. Widom; "DATABASE SYSTEM,

THE COMPLETE BOOK" Prentice Hall,2000[2] Serge Abiteboul, Richard Hull, and Victor Vianu, Foundations of

Databases, Addison-Wesley, 1995 (version française chez Vuibert)

[3] R. Ramakrishnan, J. Gehrke, Database Management Systems, amazon.com, Third edition

[4] G. Gardarin, Bases de Données objet & relationnel, Eyrolles, 1999

[5] M. Scholl, Introduction à la section Bases de données, Encyclopédie de l’Informatique et des Systèmes d’Information, Vuibert, Novembre 2006

Page 12: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 12

1) RappelsBases de données et SGBD [5]Les grands principes [5]Modèle relationnel [1,2,3,4,nfP107]Algèbre relationnelle [1,2,3,4,nfP107]SQL [1,2,3,4,nfP107]

Page 13: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 13

Bases de donnéesCollections de données homogènes dotées d’une structure préciseOn peut interroger par la structureA distinguer des recherches par mot-clé par exemple

Page 14: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 14

SGBDUn Système de Gestion de Bases de Données permet

Le stockageL’interrogation et la mise à jourLe partage

des données

Page 15: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 15

UN SGBD doit pouvoir garantirLa pérennité (durée de vie des données d’une seconde à plusieurs années)La sécurité (protection, confidentialité, traçabilité)Le maintien de la cohérence (contraintes sur les données, lecture et mise à jour par plusieurs utilisateurs)L’évolutivité au cours du tempsLa performance des opérations

Des données

Page 16: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 16

UN SGBD est-ilUn système de recherche d’informations

Semi-structurées ?Non structurées ?Hétérogènes ?Par le contenu?

Page 17: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 17

UN SGBD est-ilUn système de recherche d’informations

Semi-structurées ? Non (voir nouveaux standards d’interrogation de documents XML: Xpath,Xquery) et Oui (implantation relationnelles de collections XML) Non structurées ? Non (bibliothèques, moteurs de recherche Web) Hétérogènes ? Non et oui (BD distribuées, architectures de médiation)Par le contenu? Un peu (champs égaux à une valeur donnée, champs contenant un mot-clé). Plutôt Non (exemple de recherche dite par le contenu : recherche des images qui ressemblent visuellement à une image donnée)

Page 18: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 18

Les SGBD relationnelsReprésentent, stockent, manipulent et partagent

Des données fortement typées de type simple (des relations)

Sont étendus pour prendre en compte de nouveaux besoinsRépondent mal à d’autres besoins: par exemple recherche sur documents semi-structurés (XML) ou non structurés textuels, visuels, sonores (recherche par le contenu)

Page 19: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 19

Extension des SGBD relationnels pour prendre en compte de

nouveaux besoinsRecherche par mot-cléRecherche spatiale (dans des cartes géographiques)Cubes et OLAPEtc.

Page 20: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 20

Exemples de nouvelles fonctions qui complètent les SGBD

Analyse de données, classification, fouille: extraire du sens de grandes quantités de donnéesNouvelles interfaces de recherche d’information: aide à l’interrogation à l’aide de

HiérarchiesRésumésRecherches floues, approximatives

Page 21: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 21

Principes du Modèle relationnelIndépendance  

-> langages déclaratifs

vue ensembliste des données 

Page 22: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 22

IndépendanceNiveau logique : utilisateur

la base des données est structurée et manipulée au moyen d’un langage de requêtes, de façon abstraite indépendamment du niveau « physique »

Niveau physique : stockage, implantation du langage, déploiement sur plate-formes différentes.

L’utilisateur n’a pas à s’encombrer des détails d’implémentation

complexe, varie d’une plate-forme à une autre, ou varie au cours du temps.

Une modif au niveau physique n’a pas d’impact sur le niveau logique (la requête ou le programme appelant le SGBD)

Page 23: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 23

Langage de requêtes déclaratif(Conséquence de cette indépendance)Exprime ce qu’il faut faireMais pas comment le faire

Page 24: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 24

Vue ensembliste des donnéesl’information est logiquement structurée comme un ensemble d’objets et non pas comme des objets individuels.Grâce au langage de requêtes, ces ensembles subissent des opérations qui à leur tour créent de nouveaux ensembles.

Page 25: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 25

Rappels sur le modèle relationnel, l’algèbre et SQL

Modèle relationnel:Type unique: Relation ou table

ensemble de nupletsAttributs définis sur des domaines (types atomiques) s’ils ne sont pas nommés attributs repérés par leur rang

Structure de la base (schéma)Ensemble de schémas de relationSchéma d’une relation: nom et liste d’attributs:

Ex: Véhicule (propriétaire,type,année)

Page 26: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 26

Page 27: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 27

Algèbre relationnelleL’ensemble des relations est fermé sous l’algèbre:

Une opération de l’algèbre prend en entrée une ou deux relations et sort (toujours) une relation->une requête est une composition d’opérations algébriques (expression de l’algèbre)

Page 28: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 28

Opérations de l’algèbreSélection(σ), projection (Π), produit cartésien (jointures), union, (intersection), différence, (division) renommageExemple d’expression:

Πpropriétaire (σtype=‘Espace’(Véhicule))

Page 29: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 29

SQLStandard d’interrogation universel étendu tous les 5 à 10 ans.Le cœur: clauses (simples) Select From Where

Select <attributs à garder>From <liste des relations en entrée>Where <prédicat sur les attributs des relations>

Si la liste des attributs à garder est <A1,A2,…An>, résultat :

relation (ensemble de nuplets) de schéma (A1,A2,…An)

Page 30: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 30

Pouvoir d’expression SQLLe noyau de SQL a même pouvoir d’expression que l’algèbre relationnelle:Quelle que soit la base, et une requête exprimée dans l’un des langages

Il existe une requête dans l’autre langage qui donne le même résultate.g.

Select propriétaire From Voiture where type=‘Espace’Πpropriétaire (σtype=‘Espace’(Voiture))

SQL (à la syntaxe près) est plus proche du calcul relationnel que de l’algèbre (voir 3e partie)

Page 31: Présentation PowerPoint - Deptinfo

Optimisation

Deuxième partie

Page 32: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 32

Plan 1) Rappels sur les index2) Optimisation: introduction3) Algorithmes pour les principaux opérateurs 4) Optimisation (voir 2e partie)5) Pipeline (voir 2e partie)

Page 33: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 33

1. Rappels sur les Index et le hachage

IndexIndex dense,non denseArbre-BHachage

Page 34: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 34

IndexFichier films

Deux attributs (champs) : nom de film, année du filmOn veut accéder rapidement à un film connaissant son nom

Page 35: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 35

Page 36: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 36

Qu’est-ce qu’un index?Hyp.: fichier F films trié sur le nom de filmClé d’index: un ou plusieurs attributs: e.g. nom de filmIndex I: second fichier

article de I ou entrée: (v, @) v valeur de clé @ adresse du bloc (page) de F dont le 1er article a pour valeur de clé v

I est trié sur vSi I plus gros qu’un bloc, alors I indexé de la même façon -> index est une hiérarchie

Si la clé d’index est clé primaire ->index unique : 2 nuplets ne peuvent avoir même val de clé

Page 37: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 37

Page 38: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 38

Recherche avec index: 2 étapes

Traversée d’index I: Trav(I,v) donne les adresses de blocs de F où se trouve(nt) le(s) nuplets de clé v.On traverse I à partir de la racine vers une feuille.A chaque niveau de l’arbre, on lit un blocComplexité (nb de blocs accédés) = profondeur de l’arbre

Accès direct: accès par adresse du bloc où se trouve(nt) le(s) articles de clé v. parcours séquentiel de tous les articles: on garde ceux de clé v

Page 39: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 39

Index dense, non denseL’index précédent est non dense (clustered index?):

une valeur de clé dans les feuilles de I par bloc de FUne seule façon de trier un fichier -> un seul index non dense par fichierIndex dense:

Entrée (v,@) d’une feuille: à chaque valeur v de clé, associe l’adresse d’un nuplet (adresse de bloc, numéro dans le bloc) ayant pour clé v

- hétérogénéité feuilles qui pointent sur des nuplets/nœuds internes qui pointent sur des blocs

- Comparé à l’index non dense Plus gros, profondeur plus grande: autant d’entrées (clé,@) que d’articles du fichier indexéNe nécessite pas que le fichier soit trié sur la clé

Page 40: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 40

Page 41: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 41

Page 42: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 42

Arbre-BArbre équilibré: B comme balancedImplanté dans tous les SGBD relationnelsDans l’exemple suivant, on ne représente dans les feuilles que les valeurs de clé (pas les adresses de nuplet ou de blocs)

Page 43: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 43

Page 44: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 44

Page 45: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 45

Page 46: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 46

Page 47: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 47

Page 48: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 48

Page 49: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 49

HachageFonction de hachage:

H: V -> {1,…,B}B le nb de blocs de la relationV espace des clés

H est une fonction uniforme: P(H(v) =i)= 1/BOn range dans le bloc i tous les articles | H(v)=i

Nécessité d’un répertoire R en MC : R(i) contient l’adresse du bloc i

Page 50: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 50

Page 51: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 51

Page 52: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 52

Aide-mémoire SélectionRequête peu sélective: Balayage séquentielRequête sélective:

Type de requête:Égalité: Index ou hachageIntervalle: Index

Index dense/non dense (clustered)Index dense: requête égalité très sélective (par exemple index sur la clé primaire de la relation)Index clustered: requête par intervalle, requête par égalité moins sélective

Page 53: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 53

Compléments sur les indexIndex couvrant:

une entrée (dans les feuilles) est le nupletLa clé de l’indexUn ou plusieurs autres attributs de la relationUne adresse (rowid si dense, page si clustered)

évite l’accès à la relation (opérations qui ne portent que sur les attributs stockés dans les entrées de l’index) Inconvénient: plus gros

Page 54: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 54

Compléments sur les indexEn résumé: les divers index:

Index denseIndex non-dense (clustered)Index unique/non unique unique: la clé de l’index est une clé de la relationIndex multi-attributsIndex couvrants

Page 55: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 55

2. Optimisation: IntroductionSQL est déclaratif: l’utilisateur indique

ce qu’il veut obtenirmais pas comment l’obtenir

Le système fait le reste:Comprendre la requête: il la traduit en algèbre relationnelle: plan d’exécution logique (PEL)Choisir la meilleure stratégie d’exécution de la requête: il obtient un plan d’exécution physique (PEP)Exécuter le PEP

Page 56: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 56

Page 57: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 57

En algèbre relationnelle

Page 58: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 58

Choix d’un PEP

Page 59: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 59

Les étapes du traitement d’une requête

Page 60: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 60

Evaluation (exécution) de requête efficace

Minimiser le tempsD’évaluation: temps pour exécuter entièrement la requêteDe réponse: temps pour donner à l’utilisateur le premier résultat

On s’intéresse au temps d’évaluation: nombre de pages accédées

On ne tient pas compte de l’écriture du résultat

qui ne dépend pas de l’algorithme choisi mais de la taille du résultat

Page 61: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 61

3. Opérations du PEP: algorithmes

TriSélectionProjectionJointures

Page 62: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 62

TRINécessaire pour

Eliminer les doublonsFonctions agrégat et order byAlgorithmes de jointure

Page 63: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 63

Tri: 2 phases

Page 64: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 64

Phase de fusion

Page 65: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 65

Principe de la fusion (interclassement) algo FusionMC(L1, L2)

Exemple de M=2 listes triées : 2 listes L1,L2, un tampon RésultatEn mémoire centrale

Liste L1: 1, 5, 7, 9, 13, 27, 58, 89, 100, 101, 112Liste L2: 1, 2, 3, 4, 5,10, 13, 20, 30, 31, 32, 57, 58, 59, 80, 100Résultat: 1, 2, 3, 4, 5, 7, 9, 10, 13, 20, 27, 30, …, 101, 112

Un pointeur pi par liste: Tant que listes pas vide

Si Résultat plein, écrire sur disquesi nb de L1 pointé par p1<= nb de L2 pointé par p2

insérer nb de liste 1 pointé par p1 dans Résultatp1 = suivant dans L1

SinonInsérer nb de liste 2 pointé par p2 dans RésultatP2=suivant dans L2

Si une liste vide, lire bloc suivant (s’il en reste un) et pointer sur le premier

La fusion en MC est O(|L1| + |L2| )

Page 66: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 66

Fusion de deux partitions: FusionLire en MC 1er bloc de partition P1 dans B1Lire en MC 1er bloc de partition P2 dans B2fusionMC (B1,B2)La fusion est O(|P1| + |P2|) en nb de blocs lus

Page 67: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 67

TRI: phase de fusionA chaque étape:

On fusionne les partitions M-1 par M-1On met le résultat dans le Me tamponOn obtient M-1 fois moins de partitions triées, M-1 fois plus grandesOn lit et on écrit B blocs

Nombre d’étapes: logM-1 B

Page 68: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 68

fusion, exemple de processus avec M évènements

La fusion entre les M-1 premiers blocs avec écriture dans le Me bloc se fait suivant le principe précédent. M exceptions:M-1 évènements (exceptions): bloc entièrement lu

Action si pas dernier bloc de la partition, lire bloc suivant dans la partition

1 évènement: Me bloc entièrement pleinAction copier sur le disque

Page 69: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 69

TRI: illustration naive

Page 70: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 70

Algorithmes pour la sélection, la projection et la jointure

Sélection/projection par balayage séquentiel (SelBal)Sélection/projection dans le cas d’une traversée d’index denseProjection par triProjection par hachageJointure quand une table tient en mémoire Autres jointuresJointure par hachage

Page 71: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 71

NotationsB: nb de blocs de la relationN: nb de nuplets de la relationI le nb de blocs à lire pour une traversée d’index

Page 72: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 72

Sélection/projection par balayage séquentiel (Selbal)1 tampon d’entrée E, 1 tampon de sortie SLa relation est dans le segment R Pour chaque bloc b du segment R,

Lire b dans EPour chaque n dans EIf n satisfait les critères de sélection

Projeter nIf S plein, vider SRanger séquentiellement le résultat dans S

Page 73: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 73

Page 74: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 74

Sélection/projection dans le cas d’une traversée d’index

denseOn se place dans le cas où un des critères de sélection est A=a et il existe un index dense sur A (A non unique).Trav(Ind,a) prend le segment Ind qui contient l’index et la valeur a de l’attribut en entrées et retourne la liste des rowid de nuplets dont la valeur de l’attribut A=a.En général ces rowid correspondent à des pages (blocs) différents.e>=1 tampons d’entrée et un tampon de sortie S

Page 75: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 75

Page 76: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 76

Traversée d’index dense: SelIndPool de tampons Dejalu

Pour chaque rowid r = (p,d) in Trav(Ind,a)If page (p) non dans Dejalu,

lire page (p) dans tampon d’entrée E disponible dans Dejalu;

Accéder dans E au nuplet de rowid r (d indice dans la table de début de bloc)S’il satisfait les autres critères de sélection,

Si S est plein, le viderprojeter le nuplet et le stocker séquentiellement dans S

A quoi sert Dejalu? Pourquoi plus de 1 tampon dans Dejalu?

Page 77: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 77

SelInd: ComplexitéI= nb E/S pour accéder aux feuilles de l’index; N nb nuplets de la relation, B nb de blocs, Sélectivité S= 1/|ΠA(R)|Complexité: I + NxS (# tamp. d’entrée e=1)Remarque: on peut trier les rowid pour n’accéder qu’une fois à chaque page Si index unique: I+1Si index non dense non unique: I + BxS

Page 78: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 78

SortProj:Projection par tri (élimination des dupliqués)

On peut faire en même temps que la projection les sélections. Si pas d’élimination de doublons, algo SelBal ou SelIndexSinon 3 étapes: complexité: O(Tlog(T))

sélection/projection: T blocs résultat sur disque, complexité: B (I +NxS, I +BxS)Tri: complexité: O(Tlog(T))Parcours séquentiel: éliminer les nuplets voisins pour lesquels il y a un doublon: complexité T

Page 79: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 79

RemarquesOn fait les autres sélections quand on accède au nupletOn fait en même temps les projectionsMais comment faire l’élimination des dupliqués résultant de la projection?

Page 80: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 80

Projection par tri: améliorationfaire la projection (et éventuellement les sélections) en même temps que la première phase du triÉliminer les doublons lors des phases de fusion.Exercice: modifier l’algorithme d’interclassement pour l’élimination des dupliqués

Page 81: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 81

Projection par hachage (élimination des dupliqués)

M le nombre de tampons, h la fonction de hachage, A l’attribut de hachage (à projeter). On peut faire des sélections en même temps.Algo en 2 phases

Sélection/projection par balayage séquentiel (SelBal) mais placement du résultat par hachage dans une parmi M-1 partitions. On suppose que chaque partition fait moins de M blocs.On lit chaque partition en mémoire et fait l’élimination des dupliqués (e.g. tri en mémoire centrale par quicksort)

Page 82: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 82

Projection par hachage (hashproj)étape 1 (complexité : B+T): Pour chaque bloc b de R

Lire b dans le premier tampon, Pour chaque nuplet n

faire les sélections/projectionsSi h(n.A) est plein, où n dans [2, M], vider le tampon sur disquePlacer le résultat dans le tampon h(n.A)

étape 2 (complexité 2T) : pour chacune des M-1 partitions,

Lire la partition dans les M tamponsÉliminer les dupliqués (par tri)Vider la partition sur disque

Page 83: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 83

Projection par hachage: améliorations

Si la taille d’une partition dépasse M, on peut recommencer récursivement la même technique pour chaque partition (décomposition de partitions en sous-partitions et élimination de dupliqués dans une sous-partition)2) élimination par hachage (2e fct de hachage h’)Pour chaque bloc de chaque partition,

Lire le bloc dans le premier tamponPour chaque nuplet n’

si collision (h’(n.A) occupé)* si doublon éliminer* sinon placer le nuplet dans un autre emplacementSinon placer n dans h’(n.A)

Page 84: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 84

Algorithmes de jointureSoit la jointure naturelle entre R et S qui ont un seul attribut en commun AAlgorithmes suivants pour la jointure naturelle (ou pour l’équi-jointure)Certains de ces algorithmes ne marchent pas pour des jointures avec inégalité

Page 85: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 85

4 algorithmes de jointureJointure par boucles imbriquées

SimpleAvec traversée d’index

Jointure par tri fusionJointure par hachage

Page 86: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 86

1) Jointure par boucles imbriquées simple

3 tamponsUn pour lire un bloc de RUn pour lire un bloc de SUn pour le résultat de la jointure T

Algo BIS (R,S)Pour chaque page de R (table directrice), lue en mémoire centrale (MC) on lit toutes les pages de S en MC. Pour chaque couple de pages en MC, on fait la jointure en MC (procédure BIM)

Page 87: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 87

Jointure par boucles imbriquées simple

Page 88: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 88

Jointure en MC

Page 89: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 89

Jointures par boucles imbriquées simple: illustration

Page 90: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 90

Algo BISCoûte cher si les relations sont toutes les deux grandes: BRxBS

Jamais utilisé sauf si une des tables est petite:

si une des tables tient en mémoire, on utilise la variante BISM

Page 91: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 91

Jointure par boucles imbriquées simples, une table tient en mémoire

(BISM) Jointure entre R et S, M tampons et BR < M-1Complexité: BR + BS

Algorithme BISM(R,S) 1. Lire R dans les M-2 premiers tampons2. Pour chaque bloc b de S,

Lire b dans le M-1e tamponFaire la jointure en mémoire: BIM(R,b), résultat dans le Me tampon

Page 92: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 92

2) Jointure par boucles imbriquées, traversée d’index2 tampons E, T

Page 93: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 93

2) Jointure par boucles imbriquées, traversée d’index2 tampons E, T

Exercice:Montrer qu’en fait la complexité est O(Nr (I+ BsxS)) si l’index est non denseO(Nr (I+ NsxS)) si l’index est denseMais le terme I<= O(log(Bs)) a des chances de ne pas

être prépondérant d’autant plus que les couches hautes de l’index sont en MC

Donc en résumé-si S est très petit, complexité O(Nr logBs) -si S est trop grand, quadratique!

Page 94: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 94

3) Jointure par tri-fusion

Page 95: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 95

Jointure par tri-fusion: illustration

Page 96: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 96

Jointure par tri-fusion: performances

Utilisé pour des grandes relations non indexées sur l’attribut de jointureCoût dominé par la phase de tri

Coût du tri: O(BRlog BR + BSlog BS)

Coût fusion: O(BR + BS)

Intéressant quand l’une des tables ou les deux sont déjà triéesFacilite l’élimination des dupliqués ou l’affichage ordonné

Page 97: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 97

4) Jointure par hachage (grace hash join)

Ne s’applique qu’aux équi-jointures ou jointures naturelles.Soit la jointure naturelle entre R et S sur A. R a BR blocs, S a BS blocsComplexité: BR + BS

Deux étapes: 1. partitionnement comme pour la projection par

hachage de chaque relation2. Lecture d’une partition de R en mémoire et lecture

séquentielle de la partition correspondante de S (algorithme de jointure par boucles imbriquées BISM)

Page 98: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 98

Jointure par hachage (grace hashjoin)

1) Pour chaque bloc b de RLire b dans le premier tamponPour chaque nuplet n de b

Si tampon h(n.A) plein le vider dans partition (R, h(n.A))Placer n dans tampon h(n.A)

2) Pour chaque bloc b de SLire b dans le premier tamponPour chaque nuplet n de b

Si tampon h(n.A) plein le vider dans partition (S, h(n.A))Placer n dans tampon h(n.A)

Page 99: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 99

Jointure par hachage (hashjoin)

3) Pour chaque couple i de partitions faire la jointure par boucles imbriquées simples (variante où l’une des tables est en mémoire centrale)

BISM ((R,i),(S,i))Exercice:

sachant qu’on a N tampons, quelles sont les contraintes sur les tailles de partitions de R et S obtenues dans les deux premières étapes?

Page 100: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 100

Aide mémoire jointuresSi une table est petite:

boucles imbriquées simpleSinon (pas de stat ou 2 tables grosses)

Si index sur l’un des attributs de jointure:Boucles imbriquées avec traversée d’index

Sinon : tri-fusion ( en particulier si une relation est triée ou si résultat doit être trié)ou hachage (si une relation pas trop grosse)

Page 101: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 101

Complexité des jointures: résumé

Linéaires:Boucles imbriquées simple (une relation en mémoire)Hachage (relations de taille moyenne)

NlogN Boucles imbriquées avec traversée d’indexTri-fusion

Page 102: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 102

4. OptimisationRappel : Deux étapes dans l’optimisation

Traduction de la requête en PEL (algèbre relationnelle)Traduction du PEL en PEP

Page 103: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 103

Décomposition en blocsUne requête SQL est décomposée en

blocsUn bloc a une seule clause Select-from-where, une seule clause Group By, une seule clause HavingOn se concentre sur l’optimisation d’un blocToute requête ayant des imbrications peut être décomposée en une collection de blocs

Page 104: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 104

Exemple de requête imbriquée

Page 105: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 105

Requête sous (FNC)Toute requête peut être mise sous forme normale conjonctive (fnc):

(A=a ∪ B=b)∩ (A= a ∪ C=c)

Optimisation de A=a ∪ B=bSi index sur A et index sur B, alors traverser les deux index et faire l’unionSinon, balayage séquentiel

Page 106: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 106

Optimisation 1e étape: Traduction en un PEL

Analyse syntaxique de la requête SQLtraduction de la requête SQL en un plan d’exécution logique (PEL)

Page 107: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 107

Traduction en un PEL : exemple

Select Dept.nomFrom Departements, CommunesWhere Nbhab > 1,000,000And numdept=num

Page 108: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 108

PEL: exemple

Page 109: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 109

Règles de réécriture: permettent de traduire un PEL en un autre PEL équivalent

Page 110: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 110

Règles de réécriture

Page 111: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 111

Amélioration d’un PELOn transforme un PEL en un PEL équivalent mais de moindre coût:

Faire les sélections et les projections le plus tôt possible (règles 4,5 et 7)Décomposer une sélection en une composition de sélections (règle 3), pourquoi?Etc.

Page 112: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 112

Page 113: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 113

Un autre exemple

Page 114: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 114

PEL

Page 115: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 115

PEL équivalent

Page 116: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 116

2e étape: Transformation d’un PEL en PEP

Réarrangement des PEL nécessaire mais pas suffisantTraduire le PEL en plan d’exécution physique (PEP):

PEP Programme appelant des primitives d’accès aux fichiers et de traitement des opérationsChoix du PEP :

trouver le meilleur algorithme pour chaque opération dépend des

chemins d’accès disponibles (index)Statistiques stockées sur les tables

Page 117: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 117

PEPReprésenté sous forme d’arbreFeuilles: fichiers stockant les tables et indexNoeuds internes: opérateurs physiquesArcs (du bas vers le haut): flots de données produits par le nœud du bas et consommés par le nœud plus haut

Page 118: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 118

RequêteSchéma:Cinéma(id,nom, adresse)Salle(salle,cinémaid)Séance(salle,film,heure-début)Films qui passent au Rex à 20 heures?

Select film from Cinéma,Salle,SéanceWhere Cinéma.nom=‘Le Rex’And Séance.heure-début=20And id=cinémaid and Salle.salle=Séance.salle

Page 119: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 119

Un PEP (tri-fusion)

Page 120: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 120

Un autre PEP (boucles imbriquées)

Cinéma

Nested loop

Isalle

Salle

Projection

Nested loop

Projection

Séance

Iséance

Accès par adresse

Accès par adresse

Salle

cinémaid

salle

film

séquentiel

Page 121: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 121

Explication du PEPDans ce PEP deux fois l’algo de jointure avec boucles imbriquées et traversée d’index Interprétation du sous-arbre de racine « nested loop »: pour chaque nuplet obtenu dans le sous-arbre de gauche, exécuter SelInd (sous-arbre de droite): traversée d’index puis accès par rowid (boucle si index pas unique)Quels sont les index? Sur quelles tables?Sélection sur nom et projection sur id lors de l’accès séquentiel à Cinéma (algo SelBal)Lors de l’accès par adresse (rowid) aux nuplets de Séance, sélection sur heure-début et projection sur salle,filmOn peut faire les projections (salle, film) lors de la jointure

Page 122: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 122

5. Pipeline d’un PEPNécessité de pipeliner

Affectation de la mémoire disponible aux différentes opérations d’un PEP, pb difficileSoit la séquence d’opérations o1 et o2 d’un PEP. Supposons qu’on fait d’abord o1 puis o2. Que faire du résultat de o1?

garder en mémoire si place suffisante ou résultat petitstocker sur disque pour o1 et le relire pour o2: coûte cher si le résultat intermédiaire est grandPipeliner o1 et o2

Si o1 est bloquante (e.g. tri) on ne peut pas pipeliner

Page 123: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 123

Pipelinage Sans attendre la fin d’o1, les nuplets en sortie de o1 sont fournis en entrée à o2: les nuplets produits par o1 sont consommés par o2Toutes les opérations en séquence dans un PEP sont démarrées (presque) en même temps:

o2

o1

en cours de remplissage

Tampon d’entrée

Page 124: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 124

Pipelinage Sans attendre la fin d’o1, les nuplets en sortie de o1 sont fournis en entrée à o2: les nuplets produits par o1 sont consommés par o2Toutes les opérations en séquence dans un PEP sont démarrées (presque) en même temps:

o2

O1 lancéeTampon d’entrée plein

Page 125: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 125

Pipelinage Sans attendre la fin d’o1, les nuplets en sortie de o1 sont immédiatement fournis en entrée à o2: les nuplets produits par o1 sont consommés par o2Toutes les opérations en séquence dans un PEP sont démarrées (presque) en même temps: O2 lancée

O1 lancéeTampon en cours

de remplissage

Tampon plein ou o1 terminée

Page 126: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 126

Pipelinage: illustrationPEP des films du Rex à 20 heures

Cinéma

Nested loop

Isalle

Salle

Projection

Nested loop

Projection

Séance

Iséance

Accès par adresse

Accès par adresse

Salle

cinémaid

salle

film

séquentiel

Page 127: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 127

PEP

Cinéma

Nested loop

Isalle

Salle

Projection

Nested loop

Projection

Séance

Iséance

Accès par adresse

Accès par adresse

Salle

cinémaid

salle

film

séquentiel5

Page 128: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 128

PEP

Cinéma

Nested loop

Isalle

Salle

Projection

Nested loop

Projection

Séance

Iséance

Accès par adresse

Accès par adresse

Salle

cinémaid

salle

film

séquentiel5

5 clé d’accès

Page 129: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 129

PEP

Cinéma

Nested loop

Isalle

Salle

Projection

Nested loop

Projection

Séance

Iséance

Accès par adresse

Accès par adresse

Salle

cinémaid

salle

film

séquentiel5

5 clé d’accès

Rowids r1,r2

Page 130: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 130

PEP

Cinéma

Nested loop

Isalle

Salle

Projection

Nested loop

Projection

Séance

Iséance

Accès par adresse

Accès par adresse

Salle

cinémaid

salle

film

séquentiel5

5 clé d’accès

Rowids r1,r2

s1

[5,s1]

Page 131: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 131

PEP

Cinéma

Nested loop

Isalle

Salle

Projection

Nested loop

Projection

Séance

Iséance

Accès par adresse

Accès par adresse

Salle

cinémaid

salle

film

séquentiel5

5 clé d’accès

Rowids r1,r2

s1,s2

[5,s1] [5,s2]

s1

Page 132: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 132

PEP

Cinéma

Nested loop

Isalle

Salle

Projection

Nested loop

Projection

Séance

Iséance

Accès par adresse

Accès par adresse

Salle

cinémaid

salle

film

séquentiel5

5 clé d’accès

Rowids r1,r2

s1,s2

[5,s1] [5,s2]

s1,s2

S1 clé d’accès

Page 133: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 133

PEP

Cinéma

Nested loop

Isalle

Salle

Projection

Nested loop

Projection

Séance

Iséance

Accès par adresse

Accès par adresse

Salle

cinémaid

salle

film

séquentiel5

5 clé d’accès

Rowids r1,r2

s1,s2

[5,s1] [5,s2]

s1,s2

S1 clé d’accès

Rowids r3,r4,r5

Page 134: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 134

PEP

Cinéma

Nested loop

Isalle

Salle

Projection

Nested loop

Projection

Séance

Iséance

Accès par adresse

Accès par adresse

Salle

cinémaid

salle

film

séquentiel5

5 clé d’accès

Rowids r1,r2

s1,s2

[5,s1] [5,s2]

s1,s2

S1 clé d’accès

Rowids r3,r4,r5

se3,se4,se5Seule se4 démarre à 20 heures

Page 135: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 135

PEP

Cinéma

Nested loop

Isalle

Salle

Projection

Nested loop

Projection

Séance

Iséance

Accès par adresse

Accès par adresse

Salle

cinémaid

salle

film

séquentiel5

5 clé d’accès

Rowids r1,r2

s1,s2

[5,s1] [5,s2]

s1,s2

S1 clé d’accès

Rowids r3,r4,r5

se3,se4,se5Seule se4 démarre à 20 heures

s1,se4,amélie

Page 136: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 136

PEP

Cinéma

Nested loop

Isalle

Salle

Projection

Nested loop

Projection

Séance

Iséance

Accès par adresse

Accès par adresse

Salle

cinémaid

salle

film

séquentiel5

5 clé d’accès

Rowids r1,r2

s1,s2

[5,s1] [5,s2]

s1,s2

S1 clé d’accès

Rowids r3,r4,r5

se3,se4,se5Seule se4 démarre à 20 heures

s1,se4,amélie

amélie

Page 137: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 137

PEP

Cinéma

Nested loop

Isalle

Salle

Projection

Nested loop

Projection

Séance

Iséance

Accès par adresse

Accès par adresse

Salle

cinémaid

salle

film

séquentiel5

5 clé d’accès

Rowids r1,r2

s1,s2

[5,s1] [5,s2]

s1,s2

S2 clé d’accès

Rowids r6,r7

se6,se7Seule se6 démarre à 20 heures

s2,se6,2046

Amélie,2046

Page 138: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 138

ItérateursProduction/consommation dans le pipelinage grâce à des itérateursUn itérateur a trois étapes:

OuvrirNextFermer

Page 139: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 139

Exemple d’itérateurs pour SelBalOpenScan ( R) {

p:= première page de R;n:= premier nuplet dans p;Fin:=false;

}NextScan ( R) {

If (p entièrement lue) {If pas de page suivante {

Fin:=true;Return;

}Else p:= page suivante;

lire page p;n:=premier nuplet de p;

}vieuxn:=nIncrémenter n au nuplet suivant dans p;Return vieuxn

}

Closescan ® {Libérer ressourcesRetrun

}}

Page 140: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 140

Exemple d’itérateurs pour SelBal (fin)

CloseScan ( R) {libérer ressources;Return

}

Page 141: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 141

Exemple d’itérateurs pour la jointure par boucles imbriquées

OpenBI (R,I) {OpenScan ( R);OpenIndex(I);

}NextBI(R,I) {

IF (Fin = false) {n:=NextScan ( R);for each a in NextIndex(I,n,at),

n’:=AccessbyRowid(a)Return (n,n’)

Else {Return

}}

Else {Return

}}

Page 142: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 142

Itérateurs pour la jointure par boucles imbriquées (fin)

CloseBI (R,I) {CloseScan ( R);CloseIndex (I);Return

}

Page 143: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 143

Langage intermédiaire: primitives pour un PEP

Un PEP montre de façon schématique una rbre d’opérations (primitives)La liste des primitives que nous avons vue n’est pas exhaustiveElle est résumée ci-dessous

Page 144: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 144

Langage intermédiaire: primitives pour un PEP

*TRI (Fichier) -> Fichier M tampons*SelBal (Fichier) -> Fichier 2 TamponsTrav(I,a) -> <rowid> ou <adresse-bloc>*SelInd (I,a) -> Fichier 2 tampons

utilise Trav*SortProj (F/I) -> Fichier 2 tampons utilise SelBal ou SelInd*HashProj (F) -> F M tampons

utilise SelBal* on pt faire des sél/proj en même temps

Page 145: Présentation PowerPoint - Deptinfo

06/05/09 nfe206 M. Scholl 145

Langage intermédiaire: primitives pour un PEP

*BIS (F1,F2) -> F M tampons utilise BIM*BISM (F1,F2) -> F M tampons utilise BIM*nestedloop (F1,I) -> F 2 tampons utilise TRAV*TRI-FUSION(F1,F2) ->F M tampons*Grace Hash-Join (F1,F2) -> F M tampons utilise BISM

* on pt faire des sél/proj en même temps