Gestion de Fichiers GF12 Comment Gerer les Indexes

  • Slides: 15
Download presentation
Gestion de Fichiers GF-12: Comment Gerer les Indexes qui ne tiennent pas en Memoire

Gestion de Fichiers GF-12: Comment Gerer les Indexes qui ne tiennent pas en Memoire de Maniere Efficace? : I. Indexes Bases sur les Structures d’Arbres Binaires et Indexes a Niveaux Multiples (Base sur les Sections 9. 1 -4 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented Approach with C++; )

Resume du Cours d’Aujourd’hui n Description du Probleme: Comment gerer n Indexes a Structures

Resume du Cours d’Aujourd’hui n Description du Probleme: Comment gerer n Indexes a Structures Binaires: effectivement un indexe qui ne tient pas en memoire? n Ø n n Tri efficace de l’indexe Preservation de l’Ordre sans Tri Arbres Binaires Balances (Arbres AVL) Recherche efficace dans l’indexe Reduction du nombre d’acces au disque pendant la recherche Arbre Binaire Pagines Indexes a Niveaux Multiples Synthese sur toutes ces structures d’Indexes 2

Description Generale du Probleme n n n Lorsqu’un indexe est trop grand pour tenir

Description Generale du Probleme n n n Lorsqu’un indexe est trop grand pour tenir en memoire, il faut le mettre sur storage secondaire. Ceci cause des problemes d’efficacite. En effet, n Un indexe est la pour la recherche, et cette recherche doit etre efficace. Mais une recherche binaire sur disque n’est pas tres efficace. n Un indexe doit aussi etre mis a jour: des enregistrements doivent etre ajoutes, effaces ou modifies. Ce type d’operation (example, le tri) peut etre tres couteux sur storage secondaire Ce cours suit le developpement de solutions a ces problemes de maniere chronologique. 3

Solution # 1: Indexation par Arbres Binaires I n n n La structure d’un

Solution # 1: Indexation par Arbres Binaires I n n n La structure d’un arbre binaire nous donne une nouvelle capabilite importante: Il n’est plus necessaire de trier le fichier (ce qui est tres couteux sur storage secondaire). Afin de faire une recherche binaire, il suffit de traverser l’arbre jusqu’a ce que la cle recherchee soit trouvee. Afin d’ajouter une nouvelle cle, il suffit de traverser l’arbre et d’ajouter la nouvelle cle a la feuille appropriee. 4

Solution # 1: Indexation par Arbres Binaires II n Il y a, neanmoins, deux

Solution # 1: Indexation par Arbres Binaires II n Il y a, neanmoins, deux problemes avec cette solution: n Lorsque l’arbre n’est pas balance, la performance de recherche ou d’ajout de cle ne sera pas tres bonne Solution # 2: Arbres Balances (AVL). n Meme s’ils sont balances, la recherche binaire n’est pas assez rapide lorsque l’indexe reside en storage secondaire Solution # 2’: Arbres Binaires Pagines. 5

Solution # 2: Arbres AVL I n n n Les arbres AVL nous permettent

Solution # 2: Arbres AVL I n n n Les arbres AVL nous permettent de re-organiser les noeuds de l’arbre au fur et a mesure que nous recevons de nouvelles cles, ce qui nous permet de maintenir une structure d’arbre quasi-optimale. Un arbre AVL est un arbre a hauteur balancee, c’e. a. d. , un arbre qui place une limite sur le montant de difference permis entre la hauteur des deux sousarbres d’un noeud. Dans un arbre AVL (aussi appele un Arbre HB-1), le montant de difference maximal permis est de 1. 6

Solution # 2: Arbres AVL II n n n Les deux caracteristiques importantes des

Solution # 2: Arbres AVL II n n n Les deux caracteristiques importantes des arbres AVL sont les suibantes: En definissant un montant de difference maximum permis entre 2 sous-arbres, les arbres AVL garantissent un niveau minimum de performance de recherche. Le maintient d’arbres AVL lors de l’ajout de nouvelle cles se faire par rotations locales (il y a 4 differents types de rotations [en fait, 2 types different et leur rotations symmetriques]). La rotation la plus complexe ne demande que 5 re-affectation de pointeurs. 7

Solution # 2: Arbres AVL III n n n La performance de recherche des

Solution # 2: Arbres AVL III n n n La performance de recherche des arbres AVL est tres proche de celle des arbres completement balances. Dans un arbre completement balances, 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 qu’en fait, les arbres AVL ne sont pas directement applicables a la plupart des structures de fichiers car, comme tous les arbres strictement binaires, ils ont trop de niveaux—ils sont trop profonds. Les arbres AVL sont, cependant, important car ils suggerent qu’il est possible de definir des procedures 8 capables de maintenir l’arbre a une hauteur balancee.

Solution # 2’: Arbres Binaires Pagines I n n Les arbres AVL offrent une

Solution # 2’: Arbres Binaires Pagines I n n Les arbres AVL offrent une solution au probleme de garder un indexe en ordre de maniere peu couteuse. Cependant, ils n’addressent pas le probleme cause par le fait que la recherche binaire necessite de trop nombreux seeks. Les arbres binaires pagines addressent ce probleme en placant plusieurs nodes binaires sur la meme page de disque. Dans un systeme pagine, plutot que de faire un seek pour seulement quelques octets de donnees, on lit une page entiere du fichier, une fois le seek fait. Lorsque l’on fait une recherche d’arbre binaire, le nombre de seeks necessaire est de log 2(N+1). Il est de logk+1(N+1) dans la version paginee de l’arbre. 9 (k= # de cles contenues par page)

Solution # 2’: Arbres Binaires Pagines II Il existe deux difficultes majeures avec les

Solution # 2’: Arbres Binaires Pagines II Il existe deux difficultes majeures avec les arbres binaires pagines: n L’Utilisation du Disque divise en Pages peut etre tres Inefficace. n Problemes au niveau de la construction d’arbres pagines: n C’est facile si on connait les cles en avance ainsi que leur ordre d’apparition avant de commencer a construire l’arbre n C’est beaucoup plus difficile si on recoit les cles dans n’importe quel ordre et si on les insert des qu’on les recoit. Le problemes est que si de mauvaises cles sont placees a la racine de l’arbre, 10 une imbalance apparaitra.

Solution # 2’: Arbres Binaires Pagines III Problemes specifiques a la construction de l’arbre

Solution # 2’: Arbres Binaires Pagines III Problemes specifiques a la construction de l’arbre binaire pagine: n Comment peut-on garantir que les cles de la page racine sont de bonnes cles separatrices qui divisent l’ensemble des autres cles plus ou moins egalement? n Comment peut-on eviter de grouper les cles qui ne devraient pas partager une page? n Comment peut-on garantir que chacune des pages contient, au moins, un nombre minimal de cles? 11

Indexes a Niveaux Multiples I n n Jusqu’a maintenant, dans ce cours, nous avons

Indexes a Niveaux Multiples I n n Jusqu’a maintenant, dans ce cours, nous avons etudie les manieres d’indexer un fichier base sur la construction d’un arbre de recherche (binaire). Cependant, nous avons decouvert de serieux problemes avec cette approche. Nous retournons donc a la notion d’indexes simples que nous avons deja etudie, mais nous etendons cette notion a celle d’indexes a enregistrements multiples suivi de celle d’indexes a niveaux multiples (voir example). 12

Indexes a Niveaux Multiples II n n L’avantage des Indexes a Niveaux Multiples est

Indexes a Niveaux Multiples II n n L’avantage des Indexes a Niveaux Multiples est qu’ils nous permettent vraiement de reduire le nombre d’acces au disque. De plus, l’espace perdu a leur organisation est minime. Leur desavantages, neanmoins, sont que l’insertion d’une nouvelle cle ou l’effacement d’une cle ancienne sont tres couteux. 13

Synthese sur les trois structures d’Indexes rencontrees aujourd’hui I n n n Arbres: Ils

Synthese sur les trois structures d’Indexes rencontrees aujourd’hui I n n n Arbres: Ils semblent apporter une bonne solution generale au probleme de construction d’indexes. Neanmoins, chacune des solutions que nous avons etudiees jusqu’a maintenant presente de serieux problemes. Arbres Pagines: Leurs plus grand probleme vient du fait qu’ils sont construits de bas en haut et qu’une “mauvaise” racine peut conduire a une imbalance. Indexes a Niveaux Multiples: Ils prennent une approche completement differente qui resoud de nombreux problemes mais qui cree des insertions et 14 des effacements couteux.

Synthese sur les trois structures d’Indexes rencontrees aujourd’hui II n n Une solution ideale

Synthese sur les trois structures d’Indexes rencontrees aujourd’hui II n n Une solution ideale serait de combiner les avantages des solutions precendentes sans souffrir de leurs desavantages. Les Arbres B semblent etre la reponse a ce probleme. Ils combinent les idees d’arbres, d’arbres pagines et d’indexes a niveaux multiples et construisent l’arbre de bas en haut plutot que de haut en bas, evitant, par ce faire, le probleme lie au choix d’une “mauvaise” racine. 15