Organisations Indexées
Définitions préliminaires
1. Index = table permettant d’associer à une clé d’article (donnée d’application) l’adresse relative de
cet article (position dans le fichier)
2. Méthodes d’accès indexé = façon d’aller chercher des articles (données d’application) dans un
fichier à partir d’organisation indexée ( index primaire)
3. Densité d’un index = quotient du nombre de clés dans l’index sur le nombre d’articles du fichier.
Ainsi, un index dense possède autant de clés qu’il y a d’articles dans le fichier. Si le fichier est trié,
on peut utiliser un index non dense (ex : la clé la plus grande des articles de chaque bloc avec
l’adresse relative du bloc)
4. Index hiérarchisé = index sur un index, sur un index, … pour accélérer la recherche de la clé dans
l’index
5. Index discriminants ou non = sur une donnée discriminante ou non (identifiant un article de manière
unique ou non)
6. Index plaçant = qui range les articles dans l’ordre des clés et les restitue dans l’ordre en lecture
séquentielle de la mémoire
7. Index primaire = qui est basé sur la clé des articles, permet de les ranger en mémoire (au passage,
accélère l’accès sur clé)
8. Index secondaire = un accélérateur d’accès, cet index est non-discriminant
Introduction
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