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

Gestion de Fichiers Indexes basés sur les structures darbres binaires et indexes à niveaux multiples.

Présentations similaires


Présentation au sujet: "Gestion de Fichiers Indexes basés sur les structures darbres binaires et indexes à niveaux multiples."— Transcription de la présentation:

1 Gestion de Fichiers Indexes basés sur les structures darbres binaires et indexes à niveaux multiples

2 2 Plan du cours daujourdhui Description du problème: Comment gérer effectivement un indexe qui ne tient pas en mémoire? Indexes à structures binaires: Tri efficace de lindexe Préservation de lordre sans tri arbres binaires balancés (arbres AVL) Recherche efficace dans lindexe Reduction du nombre daccès au disque pendant la recherche arbres binaire paginés Indexes à niveaux multiples Résumé

3 3 Description générale du problème Lorsquun indexe est trop grand pour tenir en mémoire, il faut le mettre sur stockage secondaire. Ceci cause des problèmes defficacité. En effet, Un indexe est là pour la recherche, et cette recherche doit être efficace. Cependant, une recherche binaire sur disque nest pas très efficace. Un indexe doit aussi être mis à jour: des enregistrements doivent être ajoutés, effacés ou modifies. Ce type dopération (example, le tri) peut être très couteux sur stockage secondaire Solution: La recherche doit être plus rapide que la recheche binaire, et linsertion/effacement aussi rapide que la recherche.

4 4 Solution # 1: arbres binaires La structure dun arbre binaire nous donne une nouvelle capacité importante: Il nest plus nécessaire de trier le fichier (ce qui est très couteux sur stockage secondaire). Afin de faire une recherche binaire, il suffit de traverser larbre jusquà ce que la clé recherchée soit trouvée. Afin dajouter une nouvelle clé, il suffit de traverser larbre et dajouter la nouvelle clé à la feuille appropriée.

5 5 Arbres binaires (suite) Désavantages: Lorsque larbre nest pas balancé, la performance de recherche ou dinsertion des clés ne sera pas très bonne Solution # 2: arbres balancés (AVL). Même si les arbres sont balancés, la recherche binaire nest pas assez rapide lorsque lindexe réside en stockage secondaire Solution # 3: arbres binaires paginés.

6 6 Solution # 2: arbres AVL Les arbres AVL nous permettent de re-organiser les noeuds de larbre au fur et à mesure que nous recevons de nouvelles clés, ce qui nous permet de maintenir une structure darbre quasi-optimale. Un arbre AVL est un arbre à hauteur balancée, c.a.d., un arbre qui place une limite sur la différence de hauteur permise entre deux sous-arbres dun noeud. Dans un arbre AVL (aussi appelé un arbre HB(1) ), la différence maximale permise est de 1.

7 7 Solution # 2: Arbres AVL (suite) Les deux caractéristiques importantes des arbres AVL sont les suivantes: En définissant un montant de différence (de hauteur) maximum permise entre 2 sous-arbres, les arbres AVL garantissent un niveau minimum de performance de recherche. Le maintient darbres AVL lors de linsertion de nouvelle clés se fait par rotations locales (il y a 4 differents types de rotations [en fait, 2 types différents et leur rotations symmétriques]). La rotation la plus complexe ne demande que 5 re- affectation de pointeurs.

8 8 Solution # 2: arbres AVL (suite) La performance de recherche des arbres AVL est très proche de celle des arbres completement balancés. Dans un arbre completement balancés, au pire, la performance de recherche est de log 2 (N+1). Dans un arbre AVL, elle est de 1.44 log 2 (N+2). Il se trouve quen fait, les arbres AVL ne sont pas directement applicables à la plupart des structures de fichiers car, comme tous les arbres strictement binaires, ils ont trop de niveauxils sont trop profonds. Les arbres AVL sont, cependant, important car ils suggèrent quil est possible de définir des procédures capables de maintenir larbre à une hauteur balancée.

9 9 Solution # 3: arbres binaires paginés Les arbres AVL offrent une solution au problème de garder un indexe en ordre de manière peu couteuse. Cependant, ils naddressent pas le problème causé par le fait que la recherche binaire nécessite de trop nombreux seeks. Les arbres binaires paginés addressent ce problème en placant plusieurs noeuds darbre binaire sur la même page de disque. Dans un système paginé, plutôt que de faire un seek pour seulement quelques octets de données, on lit une page entière du fichier, une fois le seek fait. Lorsque lon fait une recherche darbre binaire, le nombre de seeks nécessaire est de log 2 (N+1). Il est de log k+1 (N+1) dans la version paginée de larbre. (k= # de clés contenues par page)

10 10 Solution # 3: arbres binaires paginés Il existe deux difficultés majeures avec les arbres binaires paginés: Lutilisation du disque divisé en pages peut être très inefficace: chaque page contient en fait un petit arbre ! problèmes au niveau de la construction darbres paginés: Cest facile si on connait les clés à lavance ainsi que leur ordre dapparition avant de commencer à construire larbre Cest beaucoup plus difficile si on reçoit les clés dans nimporte quel ordre et si on les insère dés quon les reçoit. Le problème est que si de mauvaises clés sont placées à la racine de larbre, larbre perdra progressivement sa balance.

11 11 Solution # 3: arbres binaires paginés Problèmes specifiques à la construction de larbre binaire paginé: Comment peut-on garantir que les clés de la page racine sont de bonnes clés séparatrices qui divisent lensemble des autres clés plus ou moins également? Comment peut-on éviter de grouper les clés qui ne devraient pas partager une page? Comment peut-on garantir que chacune des pages contient, au moins, un nombre minimal de clés?

12 12 Indexes à niveaux multiples Jusquà maintenant dans ce cours nous avons etudié les manières dindexer un fichier basé sur la construction dun arbre de recherche (binaire). Cependant, nous avons découvert de serieux problèmes avec cette approche. Nous retournons donc à la notion dindexes simples que nous avons déjà étudié, mais nous étendons cette notion à celle dindexes à niveaux multiples.

13 13 Indexes à niveaux multiples II Lavantage des indexes à niveaux multiples est quils nous permettent vraiement de réduire le nombre daccès au disque. De plus, lespace perdu à leur organisation est minime. Leur désavantages, néanmoins, sont que linsertion dune nouvelle clé ou leffacement dune clé ancienne sont très couteux.

14 14 Synthèse Arbres: ils semblent apporter une bonne solution générale au problème de construction dindexes. Néanmoins, chacune des solutions que nous avons étudiées jusquà maintenant présente de serieux problèmes. Arbres paginés: leurs plus grand problème vient du fait quils sont construits de haut en bas et quune mauvaise racine peut conduire à une perte de balance. Indexes à niveaux multiples: Ils prennent une approche completement différente qui résoud de nombreux problèmes mais qui crée des insertions et des effacements couteux.

15 15 Synthèse Une solution idéale serait de combiner les avantages des solutions précendentes sans souffrir de leurs désavantages. Les arbres B semblent être la réponse à ce problème. Ils combinent les idées darbres, darbres paginés et dindexes à niveaux multiples et construisent larbre de bas en haut plutot que de haut en bas, évitant, ce faisant, le problème lié au choix dune mauvaise racine.


Télécharger ppt "Gestion de Fichiers Indexes basés sur les structures darbres binaires et indexes à niveaux multiples."

Présentations similaires


Annonces Google