53
Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Embed Size (px)

Citation preview

Page 1: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Gilles Heurtebize1

Projection et Jointure par hachage

Bases De Données C1

Page 2: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage2

Plan

Projection par hachage.– Rappel sur la projection.– Principes de la projection par hachage.– Illustration.

Phase de projection/hachage. Phase d’élimination des doublons.

Jointure.– Principes de la jointure par hachage.– Illustration.

Phase de hachage. Phase de jointure.

– Coût de la jointure par hachage.

Page 3: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage3

Projection par hachage

Page 4: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage4

La projection

La projection d’une relation sans sélection consiste en:– Examiner les nuplets un par un et a éliminer les

champs que l’on ne veut pas garder.– Éliminer les nuplets en double.

C’est cette dernière étape qui coûte cher.– Deux techniques sont possibles:

– Le tri– Le hachage

Page 5: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage5

Algorithme en deux phases.

Phase de projection et de hachage.– On accède séquentiellement à la table dans un tampon.– Chaque nuplet projeté est place par une fonction de hachage

uniforme dans un des M-1 tampons.(La fonction retourne un entier compris entre 1 et M-1).

– Quand un tampon est plein il est stocké sur le disque.A l’issue de cette phase on a M-1 partitions.

Phase d’élimination des doublons.– Lire une par une les M-1 partitions en mémoire.Du fait du

hachage, les doublons se trouvent dans la même partition.– Effectuer un tri et éliminer les doublons.

Principes de la projection par hachage

Page 6: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage6

ILLUSTRATION

Phase de projection / hachage

Page 7: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage7

Phase de projection / hachage

Table A

Accès séquentiel

M-1 Tampons

Page 8: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage8

Table A

ProjectionAccès séquentiel

Phase de projection / hachage

M-1 Tampons

Page 9: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage9

Table A

ProjectionAccès séquentiel

Hachage

Distribution dans les M-1 tampons

Phase de projection / hachage

M-1 Tampons

Page 10: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage10

Table A

ProjectionAccès séquentiel

Tampon 2 plein

Phase de projection / hachage

M-1 Tampons

Page 11: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage11

Table A

ProjectionAccès séquentiel

Écrire les nupletsPartition 2

Phase de projection / hachage

M-1 Tampons

Page 12: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage12

Table A

ProjectionAccès séquentiel

Partition 2

Hachage

Distribution dans les M-1 tampons

Phase de projection / hachage

M-1 Tampons

Page 13: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage13

Table A

ProjectionAccès séquentiel

Partition 2

Tampon M-1 plein

Phase de projection / hachage

M-1 Tampons

Page 14: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage14

Table A

ProjectionAccès séquentiel

Partition 2

Écrire les nupletsPartition M-1

Phase de projection / hachage

M-1 Tampons

Page 15: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage15

Table A

ProjectionAccès séquentiel

Partition 2

Partition M-1

Hachage

Distribution dans les M-1 tampons

Phase de projection / hachage

M-1 Tampons

Page 16: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage16

Table A

ProjectionAccès séquentiel

Partition 2

Partition M-1

Tampon 1 plein

Phase de projection / hachage

M-1 Tampons

Page 17: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage17

Table A

ProjectionAccès séquentiel

Partition 2

Partition M-1

Écrire les nupletsPartition 1

Phase de projection / hachage

M-1 Tampons

Page 18: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage18

Table A

ProjectionAccès séquentiel

Partition M-1

Partition 1

Partition 2

Phase de projection / hachage

M-1 Tampons

Page 19: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage19

ILLUSTRATION

Élimination des doublons

Page 20: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage20

Élimination des doublons

Partition 2

Partition M-1

Partition 1

Page 21: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage21

Élimination des doublons

Partition 2

Partition M-1

Partition 1

Lecture de la partition 1 en mémoire

Page 22: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage22

Élimination des doublons

Partition 2

Partition M-1

Partition 1

Tri en mémoireet élimination des doublons

Page 23: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage23

Élimination des doublons

Partition 2

Partition M-1

Partition 1

Page 24: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage24

Élimination des doublons

Partition 2

Partition M-1

Partition 1

Lecture de la partition M-1 en mémoire

Page 25: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage25

Remarques

Algorithme adapté dans le cas ou le nombre de tampons est assez important par rapport à la relation projetée.

En cas de débordement d’une partition on peut récursivement recommencer l’opération en partitionnant la partition en sous partitions et éliminer les doublons dans chaque sous-partitions.

Page 26: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage26

Une autre façon de faire pour éliminer les doublons en mémoire.

– Lecture page par page de la partition en mémoire centrale dans un tampon.

– Chaque nuplet n est hache avec une fonction h’ de hachage différente de h. (celle qui a permit de partitionner la table A)

– Chaque nuplet est placé dans les N-1 tampons restants.– Vérifier si il il existe un nuplet déjà stocké tel que h’(n’) = h’(n).– Si il n’existe pas, n’ est stocké à l’emplacement h’(n’).– Sinon vérifier si n est différent de n’.– Si n=n’ alors n’ est élimine sinon n’ est stocké.

Page 27: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage27

Jointure par hachage

Page 28: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage28

Jointure par hachage

Algorithme récent Très efficace quand une des deux tables est

petite.

Algorithme en option dans ORACLE.

Il est indispensable d’avoir des statistiques

Page 29: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage29

Principes de la jointure par hachage

On hache la plus petite des deux tables sur l’attribut de jointure, en n partitions.

On hache la seconde table sur l’attribut de jointure avec la même fonction, en n autres partitions.

On associe les partitions par paire, et on fait la jointure.

Essentiel: pour chaque paire, au moins une partition doit tenir en mémoire.

Page 30: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage30

ILLUSTRATION

Phase de hachage

Page 31: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage31

Phase de hachage

Mémoire

Table A

Table B

M tampons

Page 32: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage32

Phase de hachage

Table A

Table B

Lecture

Page 33: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage33

Phase de hachage

Table A

Table B

Hachage

Distribution dans les M-2 tampons

Page 34: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage34

Phase de hachage

Table A

Table B

Partition A1

Partition A2

Partition Am-2

Écrire

Page 35: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage35

Phase de hachage

Table A

Table B

Partition A1

Partition A2

Lecture

Partition An-2

Page 36: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage36Partition Bn-2

Phase de hachage

Table A

Table B

Partition B2Partition A2

Lecture

Hachage

Partition An-2

Partition B1Partition A1

Page 37: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage37

Phase de hachage

Au l’issue de la première phase,on obtient A n-2 partitionsassocies à B n-2 partitions.

Partition Bn-2

Partition B2Partition A2

Partition An-2

Partition B1Partition A1

Page 38: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage38

Phase de jointure

ILLUSTRATION

Page 39: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage39

Phase de jointure

Mémoire

Partition Bn-2

Partition B2Partition A2

Partition An-2

Partition B1Partition A1

Page 40: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage40

Phase de jointure

Lecture de la partition A1 en mémoire

Partition Bn-2

Partition B2Partition A2

Partition An-2

Partition B1Partition A1

Page 41: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage41

Phase de jointure

Partition A1 en mémoire

Lecture séquentielle de la partition B1 en

mémoire

Partition Bn-2

Partition B2Partition A2

Partition An-2

Partition B1Partition A1

Page 42: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage42

Phase de jointure

Écriture

Partition A1 en mémoire

Jointure

Partition Bn-2

Partition B2Partition A2

Partition An-2

Partition B1Partition A1

Page 43: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage43

Phase de jointure

Lecture de la partition A2 en mémoire

Partition Bn-2

Partition B2Partition A2

Partition An-2

Partition B1Partition A1

Page 44: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage44

Phase de jointure

Lecture séquentielle de la partition B2 en

mémoire

Partition A2 en mémoire

Partition Bn-2

Partition B2Partition A2

Partition An-2

Partition B1Partition A1

Page 45: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage45

Phase de jointure

Jointure

Partition A2 en mémoire

Partition Bn-2

Partition B2Partition A2

Partition An-2

Partition B1Partition A1

Page 46: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage46

Phase de jointure

Lecture de la partition An-2 en mémoire

Partition Bn-2

Partition B2Partition A2

Partition An-2

Partition B1Partition A1

Page 47: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage47

Phase de jointure

Partition An-2 en mémoire

Lecture séquentielle de la partition Bn-2 en

mémoire

Partition Bn-2

Partition B2Partition A2

Partition An-2

Partition B1Partition A1

Page 48: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage48

Phase de jointure

Partition An-2 en mémoire

Lecture séquentielle de la partition Bn-2 en

mémoire

Jointure

Partition Bn-2

Partition B2Partition A2

Partition An-2

Partition B1Partition A1

Page 49: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage49

Phase de jointure

Lecture en mémoire des

partitions de A

Jointure

Lecture séquentielle des des partitions de B

Partition Bn-2

Partition B2Partition A2

Partition An-2

Partition B1Partition A1

Page 50: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage50

Pour la première phase– Chaque table est lu entièrement puis hachées dans

les partitions qui sont recopiés sur disque page par page.

2 (Nb Blocs x Partitions de A + Nb Blocs x Partitions de B ).

Pour la seconde phase– Chaque table partitionnée est lue une fois.

Au total 3 (Nb Blocs x Partition de A + Nb Blocs x Partition de B ).

Coût de la jointure par hachage

Page 51: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage51

Remarques

Algorithme adapté quand toute partition de la plus petite table tiens en mémoire.

En cas de débordement d’une partition il faut appliquer la même méthode employée pour la projection.

L’algorithme de jointure présenté suppose que l’on a M-2 tampons pour une partition de la table A, un tampon pour la table B et un tampon pour la jointure.

Il existe d‘autres variantes de cet algorithme.

Page 52: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage52

Remarques (suite)

Ex:– Si la table A est si petite qu’elle tiens en mémoire:

Partitionner la table A dans un des M-2 tampons comme précédemment.

Lire séquentiellement la table B en appliquant sur chaque nuplet la même fonction de hachage.

Le comparer avec les nuplets de la table A et faire la jointure si il y a lieu.

– Dans ce cas,chaque table n’est lu q’une seule fois.– le coût est de:

(Nb Blocs x Partition de A + Nb Blocs x Partition de B ).

Page 53: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1

Projection et jointure par hachage53

Références

Cours de bases de données.

Aspects Systèmes.

Phillippe Rigaux, Michel Sholl