Pour une gestion efficace des données, il est nécessaire de pouvoir identifier chaque tuple de façon unique.
L'indexation des données repose sur un principe simple d'étiquetage consistant à attribuer une étiquette différente à chaque jeu de données. Cette étiquette peut être une suite de caractères arbitraires, un entier, ou un descripteur explicite. On parle en général de clé ou d'identifiant pour désigner cette étiquette.
On peut représenter l'opération d'indexation sous la forme d'une fonction. Si $t$ est le jeu de données, $k(t)$ désigne l'identifiant de ce jeu de données.
Il est nécessaire en pratique de définir une méthode permettant d'assurer l'unicité de la clé lors de l'ajout ou de nouvelles données dans le tableau de données. Il existe différentes méthodes permettant d'assurer l'unicité de la clé:
L'existence d'une clé unique pour chaque jeu de données permet la mise en œuvre d'une recherche par clé dans le tableau de données.
La recherche par clé repose sur l'existence d'une fonction d'adressage $I$ qui à toute clé $k$ associe la position $i$ du tuple correspondant dans le tableau de données: $I : k \rightarrow i$. Ainsi si $k$ est la clé servant à la recherche, l'extraction du tuple se fait en 2 étapes:
La recherche repose sur le parcours d'une structure de données ordonnée contenant les couples $(k_1,i_1), (k_2, i_2), ..., (k_N, i_N)$. Cette structure de données doit être organisée de telle sorte que la recherche soit la plus efficace possible. Dans le cas le plus simple, il s'agit d'une liste triée sur les clés $L = ((k_1,i_1), (k_2, i_2), ..., (k_N, i_N))$ telle que $k_1 < k_2 < ... < k_N$, de telle sorte que la recherche s'effectue en O(log N) (recherche dichotomique).
La clé doit en pratique tenir sur un nombre d'octets le plus petit possible pour que la liste $L$ puisse tenir en mémoire. Autrement dit, il faut que :
pour que :
Previous : 2.1.5 Fichiers et Répertoires Up Next : 2.2 Aspect logique