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

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

Présentations similaires


Présentation au sujet: "Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1."— Transcription de la présentation:

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

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

3 Projection et jointure par hachage 3 Projection par hachage

4 Projection et jointure par hachage 4 La projection La projection dune relation sans sélection consiste en: – Examiner les nuplets un par un et a éliminer les champs que lon ne veut pas garder. – Éliminer les nuplets en double. Cest cette dernière étape qui coûte cher. – Deux techniques sont possibles: – Le tri – Le hachage

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

25 Projection et jointure par hachage 25 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 dune partition on peut récursivement recommencer lopération en partitionnant la partition en sous partitions et éliminer les doublons dans chaque sous- partitions.

26 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 nexiste pas, n est stocké à lemplacement h(n). – Sinon vérifier si n est différent de n. – Si n=n alors n est élimine sinon n est stocké.

27 Projection et jointure par hachage 27 Jointure par hachage

28 Projection et jointure par hachage 28 Jointure par hachage Algorithme récent Très efficace quand une des deux tables est petite. Algorithme en option dans ORACLE. Il est indispensable davoir des statistiques

29 Projection et jointure par hachage 29 Principes de la jointure par hachage On hache la plus petite des deux tables sur lattribut de jointure, en n partitions. On hache la seconde table sur lattribut 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.

30 Projection et jointure par hachage 30 ILLUSTRATION Phase de hachage

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

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

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

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

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

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

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

38 Projection et jointure par hachage 38 Phase de jointure ILLUSTRATION

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

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

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

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

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

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

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

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

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

48 Projection et jointure par hachage 48 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 B2 Partition A2 Partition An-2 Partition B1 Partition A1

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

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

51 Projection et jointure par hachage 51 Remarques Algorithme adapté quand toute partition de la plus petite table tiens en mémoire. En cas de débordement dune partition il faut appliquer la même méthode employée pour la projection. Lalgorithme de jointure présenté suppose que lon 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 dautres variantes de cet algorithme.

52 Projection et jointure par hachage 52 Remarques (suite) Ex: – Si la table A est si petite quelle 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 nest lu qune seule fois. – le coût est de: (Nb Blocs x Partition de A + Nb Blocs x Partition de B ).

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


Télécharger ppt "Gilles Heurtebize 1 Projection et Jointure par hachage Bases De Données C1."

Présentations similaires


Annonces Google