La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Projection et Jointure par hachage

Présentations similaires


Présentation au sujet: "Projection et Jointure par hachage"— Transcription de la présentation:

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

2 Projection et jointure par hachage
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. Phase de hachage. Phase de jointure. Coût de la jointure par hachage. Projection et jointure par hachage

3 Projection par hachage
Projection et jointure par hachage

4 Projection et jointure par hachage
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 Projection et jointure par hachage

5 Principes de la projection par hachage
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. Projection et jointure par hachage

6 Projection et jointure par hachage
ILLUSTRATION Phase de projection / hachage Projection et jointure par hachage

7 Phase de projection / hachage
Accès séquentiel Table A M-1 Tampons Projection et jointure par hachage

8 Phase de projection / hachage
Accès séquentiel Table A M-1 Tampons Projection et jointure par hachage

9 Phase de projection / hachage
Accès séquentiel Table A Hachage Distribution dans les M-1 tampons M-1 Tampons Projection et jointure par hachage

10 Phase de projection / hachage
Accès séquentiel Table A Tampon 2 plein M-1 Tampons Projection et jointure par hachage

11 Phase de projection / hachage
Accès séquentiel Table A Écrire les nuplets Partition 2 M-1 Tampons Projection et jointure par hachage

12 Phase de projection / hachage
Accès séquentiel Table A Hachage Partition 2 Distribution dans les M-1 tampons M-1 Tampons Projection et jointure par hachage

13 Phase de projection / hachage
Accès séquentiel Table A Partition 2 M-1 Tampons Tampon M-1 plein Projection et jointure par hachage

14 Phase de projection / hachage
Accès séquentiel Table A Partition 2 M-1 Tampons Écrire les nuplets Partition M-1 Projection et jointure par hachage

15 Phase de projection / hachage
Accès séquentiel Table A Hachage Partition 2 Distribution dans les M-1 tampons M-1 Tampons Partition M-1 Projection et jointure par hachage

16 Phase de projection / hachage
Accès séquentiel Table A Tampon 1 plein Partition 2 M-1 Tampons Partition M-1 Projection et jointure par hachage

17 Phase de projection / hachage
Accès séquentiel Table A Écrire les nuplets Partition 1 Partition 2 M-1 Tampons Partition M-1 Projection et jointure par hachage

18 Phase de projection / hachage
Partition 1 Accès séquentiel Table A Partition 2 M-1 Tampons Partition M-1 Projection et jointure par hachage

19 Élimination des doublons
ILLUSTRATION Élimination des doublons Projection et jointure par hachage

20 Élimination des doublons
Partition 1 Partition 2 Partition M-1 Projection et jointure par hachage

21 Élimination des doublons
Lecture de la partition 1 en mémoire Partition 1 Partition 2 Partition M-1 Projection et jointure par hachage

22 Élimination des doublons
Partition 1 Partition 2 Tri en mémoire et élimination des doublons Partition M-1 Projection et jointure par hachage

23 Élimination des doublons
Partition 1 Partition 2 Partition M-1 Projection et jointure par hachage

24 Élimination des doublons
Lecture de la partition M-1 en mémoire Partition 1 Partition 2 Partition M-1 Projection et jointure par hachage

25 Projection et jointure par hachage
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. Projection et jointure par hachage

26 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é. Projection et jointure par hachage

27 Jointure par hachage Projection et jointure par hachage

28 Projection et 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 Projection et jointure par hachage

29 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. Projection et jointure par hachage

30 Projection et jointure par hachage
ILLUSTRATION Phase de hachage Projection et jointure par hachage

31 Projection et jointure par hachage
Phase de hachage Mémoire Table A M tampons Table B Projection et jointure par hachage

32 Projection et jointure par hachage
Phase de hachage Lecture Table A Table B Projection et jointure par hachage

33 Projection et jointure par hachage
Phase de hachage Hachage Table A Distribution dans les M-2 tampons Table B Projection et jointure par hachage

34 Projection et jointure par hachage
Phase de hachage Écrire Partition A1 Table A Partition A2 Table B Partition Am-2 Projection et jointure par hachage

35 Projection et jointure par hachage
Phase de hachage Partition A1 Table A Partition A2 Table B Lecture Partition An-2 Projection et jointure par hachage

36 Projection et jointure par hachage
Phase de hachage Hachage Partition A1 Partition B1 Table A Partition A2 Partition B2 Table B Lecture Partition An-2 Partition Bn-2 Projection et jointure par hachage

37 Projection et jointure par hachage
Phase de hachage Partition A1 Partition B1 Partition A2 Au l’issue de la première phase, on obtient A n-2 partitions associes à B n-2 partitions. Partition B2 Partition An-2 Partition Bn-2 Projection et jointure par hachage

38 Projection et jointure par hachage
ILLUSTRATION Phase de jointure Projection et jointure par hachage

39 Projection et jointure par hachage
Phase de jointure Mémoire Partition A1 Partition B1 Partition A2 Partition B2 Partition An-2 Partition Bn-2 Projection et jointure par hachage

40 Projection et jointure par hachage
Phase de jointure Lecture de la partition A1 en mémoire Partition A1 Partition B1 Partition A2 Partition B2 Partition An-2 Partition Bn-2 Projection et jointure par hachage

41 Lecture séquentielle de la partition B1 en mémoire
Phase de jointure Partition A1 en mémoire Partition A1 Partition B1 Partition A2 Partition B2 Lecture séquentielle de la partition B1 en mémoire Partition An-2 Partition Bn-2 Projection et jointure par hachage

42 Projection et jointure par hachage
Phase de jointure Partition A1 en mémoire Partition A1 Partition B1 Partition A2 Partition B2 Partition An-2 Partition Bn-2 Écriture Jointure Projection et jointure par hachage

43 Projection et jointure par hachage
Phase de jointure Lecture de la partition A2 en mémoire Partition A1 Partition B1 Partition A2 Partition B2 Partition An-2 Partition Bn-2 Projection et jointure par hachage

44 Lecture séquentielle de la partition B2 en mémoire
Phase de jointure Partition A2 en mémoire Partition A1 Partition B1 Partition A2 Partition B2 Lecture séquentielle de la partition B2 en mémoire Partition An-2 Partition Bn-2 Projection et jointure par hachage

45 Projection et jointure par hachage
Phase de jointure Partition A2 en mémoire Partition A1 Partition B1 Partition A2 Partition B2 Partition An-2 Partition Bn-2 Jointure Projection et jointure par hachage

46 Projection et jointure par hachage
Phase de jointure Lecture de la partition An-2 en mémoire Partition A1 Partition B1 Partition A2 Partition B2 Partition An-2 Partition Bn-2 Projection et jointure par hachage

47 Lecture séquentielle de la partition Bn-2 en mémoire
Phase de jointure Partition An-2 en mémoire Partition A1 Partition B1 Partition A2 Partition B2 Lecture séquentielle de la partition Bn-2 en mémoire Partition An-2 Partition Bn-2 Projection et jointure par hachage

48 Lecture séquentielle de la partition Bn-2 en mémoire
Phase de jointure Partition An-2 en mémoire Partition A1 Partition B1 Partition A2 Partition B2 Lecture séquentielle de la partition Bn-2 en mémoire Partition An-2 Partition Bn-2 Jointure Projection et jointure par hachage

49 Phase de jointure Jointure Partition A1 Partition B1 Partition A2
Lecture en mémoire des partitions de A Partition A2 Partition B2 Partition An-2 Partition Bn-2 Lecture séquentielle des des partitions de B Jointure Projection et jointure par hachage

50 Coût de la jointure par hachage
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 ). Projection et jointure par hachage

51 Projection et jointure par hachage
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. Projection et jointure par hachage

52 Projection et jointure par hachage
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 ). Projection et jointure par hachage

53 Cours de bases de données. Phillippe Rigaux, Michel Sholl
Références Cours de bases de données. Aspects Systèmes. Phillippe Rigaux, Michel Sholl Projection et jointure par hachage


Télécharger ppt "Projection et Jointure par hachage"

Présentations similaires


Annonces Google