Gestion de Fichiers Hachage Extensible.

Slides:



Advertisements
Présentations similaires
Structures de données avancées : MLH (Multidimensional linear hashing)
Advertisements

La Méthode de Simplexe Standardisation
Module Systèmes d’exploitation
Structures de données avancées : MTH ( Multidimensional trie hashing )
Structures de données avancées : Introduction
GEF 243B Programmation informatique appliquée
Chap. 4 Recherche en Table
Classification et prédiction
1 UMLV Optimalité des tris par comparaisons : O(n logn) Classements linéaires Tris lexicographiques Tri lexicographique.
Witold Litwin Structures physiques Witold Litwin
Le codage de l ’information
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
Améliorer les performances du chiffrage à flot SYND
Initiation au système d’information et aux bases de données
Emploi d’un logiciel de présentation graphique : PowerPoint
Structures de données linéaires
Eléments d ’algèbre relationnelle
Les structures de données arborescentes
Algorithme d’addition #1
Arbre Rouge Noir.
Gestion de Fichiers GF-15: Addressage Disperse (Hashcoding) (Base sur le Chapitre 11 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented.
Bases de données lexicales
Gestion de Fichiers Arbres B.
Indexation 1. Concepts de base 2. Arbre B 3. Indexes secondaires.
Sections sélectionnées du Chapitre 11
Les fichiers indexés (Les B-arbres)
LA STRUCTURE D'ARBRE-B Institut National des Sciences Appliquées – Rouen Département Architecture des Systèmes d’Information.
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Structures de données IFT-2000 Abder Alikacem Standard Template library Édition Septembre 2009 Département dinformatique et de génie logiciel.
Structures de données IFT-10541
Structures de données IFT-2000
8 Organisations unidimentionnelles : indexage et hachage
Compression des Données
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.
Introduction et Motivation
Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.
Indexes à Arbres et Indexes à Hachage
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Gestion de Fichiers Hachage.
Indexes à Arbres et Indexes à Hachage
COURS DE PROGRAMMATION ORIENTEE OBJET :
Gestion de Fichiers Hachage (suite). 2 Plan du cours daujourdhui Prédiction de la distribution des enregistrements Réduction des collisions en augmentant.
Organisation des Fichiers pour la Performance
Gestion de Fichiers GF-12: Comment Gerer les Indexes qui ne tiennent pas en Memoire de Maniere Efficace?: I. Indexes Bases sur les Structures dArbres Binaires.
Gestion de Fichiers GF-10: Traitement Co-Sequentiel: Appariment et Fusion de Plusieures Listes (Base sur les sections de Folk, Zoellick & Riccardi,
Page: 1-Ali Walid Gestion de fichiers. Hashing Dynamique et Extensible.
1 Organisations unidimentionnelles : indexage et hachage  Sélection basée sur une clé d'accès  recherche associative  Ex: Chercher le plant dont le.
Mise en forme en Mathématiques
Structures de données avancées : Hachage dynamique
Gestion de Fichiers GF-16: Addressage Disperse Extensible (Extendible Hashcoding) (Base sur le Chapitre 12 de Folk, Zoellick & Riccardi, File Structures,
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
David Rivreau Table de hachage David Rivreau
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Gestion de Fichiers GF-8: Organisation des Fichiers pour l’Amelioration de la Performance (Base sur la section de Folk, Zoellick & Riccardi, File.
Gestion de Fichiers Hachage (suite et fin). 2 Plan du cours d’aujourd’hui Utilisation des “buckets” Effacements dans des fichiers hachés Autres méthodes.
GF-11: Tri Interne Efficace et Tri Externe
Structures de données avancées : Concepts du Multidimensionnel D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Fichiers multidimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) zegour.esi.dz
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées TH ( Hachage digital ) D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Principales structures de fichiers
Structures de données avancées : LH* D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : MLH (Multidimensional linear hashing) D. E ZEGOUR Institut National d ’Informatique.
Structures de données avancées : Principales structures de données
Structures de données avancées : Hachage dynamique
Structures de données avancées : MTH ( Multidimensional trie hashing ) D. E ZEGOUR Institut National d ’Informatique.
Architecture et technologie des ordinateurs II
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
Transcription de la présentation:

Gestion de Fichiers Hachage Extensible

Plan du cours d’aujourd’hui Le concept de hachage extensible Transformation des tries en tables Insertions Division de buckets pour accomoder un débordement

Motivation Les arbres B sont des structures de fichiers efficaces par rapport au nombre de seeks nécessaires pour trouver un enregistrement. De plus, ce sont des structures dynamiques qui s’adaptent très bien aux fichiers dans lesquels de nouvelles données sont ajoutées ou effacées fréquement. Le hachage, néanmoins, est plus efficace que les arbres B pour des fichiers statiques. En d’autres termes ce sont des structures efficaces mais pas dynamiques. Est-il possible de créer des structures de fichier basées sur le hachage qui soient aussi dynamiques? OUI !

Concept de hachage extensible: les tries Le hachage extensible est du hachage qui maintient une excellente performance dans des fichiers qui permettent des insertions et effacements. L’idée principale est de combiner le hachage avec une structure d’arbre appelée un “trie” (prononcer comme “try”) et de comprimer ce trie en une table de référence. Un trie est un arbre digitale semblable aux arbres digitaux vus dans la méthode d’encodage de de Lempel-Ziv.

Concept de hachage extensible: les tries Un trie est un arbre de recherche dont le facteur de branchement correspond au nombre d’éléments qu’il y a dans l’alphabet en usage. Ce facteur de branchement est appelé la base (“radix”) du trie. Des exemples dans les transparents qui suivent concretiseront ce concept de trie. Une capacité importante du trie est que l’on utilise souvent qu’une portion de la clé pour la recherche: une portion plus grande n’est utilisée que si de l’information supplémentaire est nécessaire pour parachever la recherche. Cette capacité dite “use-more-as-we-need-more” est fondamentale pour le hachage extensible.

Exemple d’un trie: lettres de l’alphabet able Un trie avec un radix de 26 r b abrahms d adams a n anderson e d r andrews b baird

Exemple d’un trie: nombres décimaux 1 3 5 6 7 2 8 1136 1153 1629 3182 7263 7268 7521 Un trie avec un radix de 10

Tranformation du trie en table Qu’est ce que le trie a en commun avec le hachage? On peut utiliser un trie de radix 2 (avec les valeurs 0 et 1). Les buckets du hachage representent les feuilles de ce trie. La recherche s’effectuera bit par bit en utilisant la capacité “use-more-as-we-need-more”. Les clés sont placés dans des buckets. Les clés ayant une adresse de hachage avec un préfixe identique partageront le même bucket. L’accès aux buckets se fait en utilisant un préfixe de l’adresse de hachage.

Tranformation du trie en table Dans l’exemple ci-bas, on suppose que h(clé(A)) = 01, h(clé(B)) = 10, h(clé(C)) = 11 Comme il n’y a pas d’autre enreg. qui a 0 comme préfixe, nous pouvons utiliser 0 comme adresse au lieu de 01. A B 1 1 C

Tranformation du trie en table Problème: 1. Si on représente le trie par un arbre, le nombre de comparaisons augmente plus on decend vers les feuilles de l’arbre. 2. Pire encore, si le trie est trop grand pour tenir en mémoire, on retrouve les problèmes de stockage d’arbres sur disque. L’utilisation du hachage devient dans ce cas prohibitif. Solution: applatir le trie et le représenter en un tableau d’enregistrements contigus.

Tranformation du trie en table: algorithme Première étape: étendre le trie à un arbre binaire complet (i.e. don’t les feuilles sont toutes au même niveau). Deuxième étape: applatir le trie et le représenter en un tableau d’enregistrements contigus.

Algorithme: exemple Un trie complet qui étend celui du transparent de la page 9 A 1 B 1 1 C

Algorithme: exemple (suite) Un tableau correspondant au trie complet du transparent de la page 12. A 00 01 B 10 11 C

Recherche d’une clé Calculer l’adresse de hachage de la clé Vérifier le nombre i de bits utilisés dans la table de hachage (dans l’exemple du transparent 13, c’est 2) Prendre les i derniers bits de l’adresse de hachage Utiliser ces i derniers bits comme index de recherche dans la table de hachage pour dénicher le bucket où se trouverait la clé recherchée

En quoi cette méthode de hachage est-elle extensible? Il est important de voir en quoi la méthode de hachage extensible est dynamique et en quoi la table de hachage (“directory”) est extensible. Deux méchanismes essentielles constituent son dynamisme et son extensibilité: 1. Les insertions peuvent entrainer une division de buckets en deux pour accomoder un surplus d’enregistrements. 2. Les effacements peuvent entrainer des combinaisons de buckets pour accomoder un déficit d’enregistrements.

Division de buckets pour accomoder un débordement L’idée de la solution au problème de débordement est d’augmenter l’espace d’adresses en réponse à un débordement, au lieu de créer de longues séquences d’enregistrements débordants comme c’est le cas avec la méthode des débordements progressifs vue. 2 cas sont possibles: Cas simple: le trie était sous-utilisé et un bucket peut être divisé en deux nouveaux buckets et les enregistrements sont redistribués selon leurs addresses. Cas plus complexe: on peut étendre notre préfixe de n a n+1 bits, doublant ainsi le nombre de buckets présents dans notre structure.

Débordement: cas simple Table après que l’insertion de D ait causé le débordement du bucket A: 00 A 01 D 10 B 11 C

Débordement: cas complexe Ce cas est illustré par la Figure 12.6. Supposez que le bucket B déborde aprè ys avoir inserer D. Nous sommes obligés d ’utiliser une adresse de 3 bits pour diviser les enregistrements dont l’adresse de hachage tombe sur B. Nous obtenons ainsi 100 comme adresse de B et 101 comme adresse de D. Ceci résulte en un nouveau trie (Fig. 12.6 (a)) qui doit être complété (Fig. 12.6 (b)) avant d ’être enfin transformé en table (Fig. 12.6 (c)).