1
Indexes à Arbres et Indexes à Hachage
Sections sélectionnées du Chapitre 10
2
Introduction
Rappel des 3 alternatives d’entrées des données k*:
un enregistrement de données avec une valeur de clé k
une paire <k, rid>
une paire <k, liste de rids>
Les indexes à arbres supportent à la fois la recherche des
plages de valeurs (‘’range search’’) ainsi que les recherches
d’egalités (‘’equality search’’).
ISAM: structure statique; B+ tree: dynamique, s’ajuste
gracieusement aux insertions et effacements.
Indexes à Hachage : meilleurs pour les recherches d’égalité; ne
peuvent supporter les recherches des valeurs des plages.
3
Intuition Derrière les Indexes à Arbres
``Trouvez tous les étudiants avec un gpa > 3.0’’
Si les données sont stockées dans un fichier trié, faire la
recherche binaire pour trouver le premier de ces étudiants,
et de là faire un scannage pour trouver les autres.
Le coût de la recherche binaire peut être prohibitif ! Il est en
effet proportionnel au # de pages puisées.
Solution: Créer un fichier d’indexes
*Une recherche binaire est faisable sur de petits fichiers d’indexes!
Page 1 Page 2 Page N
Page 3 Fichier de données
k2 kN
k1 Fichier d’indexes
4
ISAM
Le fichier d’indexes peut être très large. On peut
cependant appliquer l’idée de fichier d’indexes de
manière répétée!
*Les pages feuilles contiennent les entrées des données.
P0K1P1K2P2KmPm
Entrée d’index
Pages
internes
feuilles Page de
débordement Pages primaires
Pages
5
ISAM (Suite)
Création du fichier: les feuilles (pages de données)
sont allouées séquentiellement et triées selon la clé
de recherche; ensuite les pages de débordement
sont crées.
Entrées d’indexes: <valeur de la clé, page id>;
orientent la recherche vers les entrées de données
se trouvant dans les pages feuilles.
Recherche: Commence à la racine; compare des
clés pour aller vers la feuille appropriée. Coût:
log F N ; F = # entrées/pg index, N = # feuilles
Insertion: Trouver la feuille à la quelle appartient
l’entrée de donnée et l’y mettre.
Effacement: Trouver et enlever l’entrée de la
feuille; désaffecter une page de débordement vide.
*Structure statique: les changements n’affectent que les feuilles.
Pages de
données
Pages des
indexes
Pages de
débordement
1 / 22 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !