IG3 Polytech’ Montpellier 2 Traitement de Données Rel. TD Méthodes Accès Indexation Les organisations indexées nécessitent la création d'un index trié sur lequel sont appliquées les recherches dichotomiques d'une valeur de clé discriminante ou non. Le fichier étant lui-même trié sur clé, l'index correspondant est de type primaire non dense. Cet index peut être vu comme une table de couples (val_clé, adr_page) où val_clé est la plus petite clé des articles stockés dans la page référencée par adr_page. Lorsque l'index est de grande taille, on le décompose en une arborescence dont chaque nœud a une taille inférieure ou égale à une page. Le nœud sommet de l'arborescence est appelé racine de l'index. Lors de la recherche d'une valeur de clé dans l'index, un examen de la racine permet de déterminer la partie de l'arbre dans laquelle se poursuivra la recherche en renvoyant sur un nœud de niveau immédiatement inférieur. L'examen de ce nœud permet à son tour d'affiner l'intervalle de recherche. Ce processus récursif s'applique jusqu'à rencontrer un nœud ou une feuille (nœud de plus bas niveau de l'arbre) contenant la valeur de clé cherchée et l'adresse de la page associée. Les organisations arborescentes se différencient par le principe suivant lequel est gérée la dynamicité de l'index hiérarchique. Ce principe détermine les performances obtenues tant au niveau du nombre d'E/S nécessaires pour parcourir l'index qu'au niveau du taux d'occupation de chaque nœud de la hiérarchie. Un arbre balancé est également appelé arbre-B, B-tree ou arbre équilibré. Intuitivement, il est possible de construire une arborescence dynamique de la façon suivante. Lorsqu'un index est de grande taille, il est possible d'indexer à son tour le fichier contenant cet index et ce, de façon récursive jusqu'à ce que l'index de plus haut niveau (la racine) tienne sur une seule page. Compte tenu de la dynamicité de l'index, la racine elle-même peut croître et ne plus tenir dans une page. On rajoute alors un niveau à la hiérarchie d'index. La hiérarchie grossit donc par la racine de telle sorte que tous les chemins de la racine aux feuilles ont même longueur. La définition formelle d'un arbre-B est donnée ci-dessous et est illustrée sur l'exemple de la Figure 2. Un arbre-B d'ordre m est un arbre tel que (i) chaque nœud contient k clés triées, avec m ≤ k ≤ 2m sauf la racine pour laquelle k vérifie 1≤ k ≤ 2m. (ii) tout nœud non feuille a (k+1) fils. Le ième fils a des clés comprises les (i-1)ème et ième clés du père. (iii) l'arbre est équilibré. 31 10 15 24 58 11 12 13 17 18 34 50 60 70 25 29 32 33 35 38 39 52 53 62 64 75 80 Figure 2. arbre-B d'ordre 2 1) Donner un exemple d’un fichier séquentiel indexé. Quel est l’intérêt de cette méthode ? 2) Quel est l’intérêt que la structure d’un index en arborescence ? 3) Représenter l'arbre-B de la Figure 2 après insertion des clés 37 puis 36. 4) Représenter l'arbre-B de la Figure 1 après suppression des clés 17 puis 31 5) Discuter la différence entre un fichier organisé sous forme d’arbre B et un fichier indexé par arbre-B. Hachage 1) Donner un exemple d’un fichier aléatoire. 2) Montrer comment fonctionne la recherche sur une clé. 3) A quoi correspond le phénomène de collision ? 4) On suppose dans un premier temps que les paquets saturés débordent dans les paquets non encore saturés. Proposer différentes techniques permettant de stocker et de retrouver ultérieurement des articles en débordement. Ces techniques sont-elles adaptées dans le cas de collisions nombreuses ? 1 IG3 Polytech’ Montpellier 2 Traitement de Données Rel. 2