gilles heurtebize 1 projection et jointure par hachage bases de données c1
TRANSCRIPT
![Page 1: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/3.jpg)
Projection et jointure par hachage3
Projection par hachage
![Page 4: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/19.jpg)
Projection et jointure par hachage19
ILLUSTRATION
Élimination des doublons
![Page 20: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/27.jpg)
Projection et jointure par hachage27
Jointure par hachage
![Page 28: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/28.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/29.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/30.jpg)
Projection et jointure par hachage30
ILLUSTRATION
Phase de hachage
![Page 31: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/31.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/32.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/33.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/34.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/35.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/36.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/37.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/38.jpg)
Projection et jointure par hachage38
Phase de jointure
ILLUSTRATION
![Page 39: Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/39.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/40.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/41.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/42.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/43.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/44.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/45.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/46.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/47.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/48.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/49.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/50.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/51.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/52.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062312/551d9d91497959293b8c77ab/html5/thumbnails/53.jpg)
Projection et jointure par hachage53
Références
Cours de bases de données.
Aspects Systèmes.
Phillippe Rigaux, Michel Sholl