Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Module Systèmes d’exploitation
Structures de données avancées : B arbres
Fonctions & procédures
GEF 435 Principes des systèmes dexploitation Structure des systèmes dexploitation (Tanenbaum 1.7)
GEF 243B Programmation informatique appliquée Décisions de design avec structures de données §15.1 – 15.2.
GEF 435 Principes des systèmes d’exploitation
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
Utilisation des tableaux
Cours 8 Arbres équilibrés
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Algorithmique et Programmation
LOGO Responsable du cours Mlle Amina GHRAB : 1 ère année IAG Institut Supérieur de Gestion de Tunis.
Les structures de données arborescentes
Administration de SharePoint
Lutilisation de la Cloudwatt-box Emmanuel Keller, CTO OpenSearchServer.
Arbre Rouge Noir.
Bases de données lexicales
Gestion de Fichiers Arbres B.
Indexation 1. Concepts de base 2. Arbre B 3. Indexes secondaires.
Sections sélectionnées du Chapitre 11
Les fichiers indexés (Les B-arbres)
LA STRUCTURE D'ARBRE-B Institut National des Sciences Appliquées – Rouen Département Architecture des Systèmes d’Information.
LES ARBRES IUP 2 Génie Informatique
Structures de données IFT-10541
Structures de données IFT-2000
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.
Introduction et Motivation
Indexes à Arbres et Indexes à Hachage
1 Tri Externe Chapitre 13: Pourquoi Trier? Problème classique en informatique (Voir Knuth, v.3)! Données requises en ordre trié P.ex.: Trouver.
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Gestion de Fichiers Hachage Extensible.
Gestion de Fichiers GF-1: Introduction à la Géstion des Fichiers et Opérations de Base.
CSI 4506: Introduction à l'intelligence artificielle La recherche aveugle.
Indexes à Arbres et Indexes à Hachage
Algorithmes d ’approximation
Arbres équilibrés Les transformation restructurantes dans leur ordre de définition: LL RR LR RL Facteur d’équilibre de noeud = (hauteur de s-arbre a gauche)
Gestion de Fichiers Hachage (suite). 2 Plan du cours daujourdhui Prédiction de la distribution des enregistrements Réduction des collisions en augmentant.
Organisation des Fichiers pour la Performance
Gestion de Fichiers GF-12: Comment Gerer les Indexes qui ne tiennent pas en Memoire de Maniere Efficace?: I. Indexes Bases sur les Structures dArbres Binaires.
Gestion de Fichiers GF-10: Traitement Co-Sequentiel: Appariment et Fusion de Plusieures Listes (Base sur les sections de Folk, Zoellick & Riccardi,
Les Algorithmes de Tri Introduction Tri par Sélection
Programmation dynamique
Index multi-niveaux dynamiques (les B-arbres et les B-arbres+)
Structures de données IFT-2000
Gestion de Fichiers GF-14: Acces Sequentiel et Indexe aux Fichiers et Arbres B+ Prefixes (Base sur le Chapitre 10 de Folk, Zoellick & Riccardi, File Structures,
Gestion de Fichiers GF-16: Addressage Disperse Extensible (Extendible Hashcoding) (Base sur le Chapitre 12 de Folk, Zoellick & Riccardi, File Structures,
Gestion de Fichiers GF-12: Comment Gerer les Indexes qui ne tiennent pas en Memoire de Maniere Efficace?: II. Arbres B (Base sur les Sections de.
1 Registration Physique Séminaire du Master Davide Bazzi Université de Fribourg
Gestion de Fichiers GF-8: Organisation des Fichiers pour l’Amelioration de la Performance (Base sur la section de Folk, Zoellick & Riccardi, File.
Arbres binaires et tables de hachage
CSI 4506: Introduction à l’Intelligence Artificielle La Recherche Aveugle.
Structures de données avancées : Fichiers uni-dimensionnels Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Gestion de Fichiers Hachage (suite et fin). 2 Plan du cours d’aujourd’hui Utilisation des “buckets” Effacements dans des fichiers hachés Autres méthodes.
GF-11: Tri Interne Efficace et Tri Externe
Structures de données avancées : MBT ( Multidimensional B-trees )
Les tris Tri Action de mettre une structure de données en ordre (croissant ou décroissant). Le plus simple est d’insérer en ordre. Les algorithmes de tri.
Cours LCS N°4 Présenté par Mr: LALLALI
Structures de données avancées : B arbres
Structures de données avancées : Variantes des B arbres
Structures de données avancées : Principales structures de fichiers
Structures de données avancées : Arbres B+ avec expansion partielle D. E ZEGOUR Institut National d ’Informatique.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Matière Sélectionnée: Triage Externe, Join à Hachage, … Chapitres 13—15: 13.1—13.5, 14.4,
Structures de données avancées : Hachage dynamique
Gestion de Fichiers Construction d’Indexes. 2 Plan du cours de la semaine Vue Générale Un indexe pour les fichiers à entrées séquentielles Opérations.
Structures de données avancées : MTH ( Multidimensional trie hashing ) D. E ZEGOUR Institut National d ’Informatique.
Arbres AVL - Hauteur d’un arbre AVL - Insertion et restructuration
CSI25101 Tri Plus efficace. CSI25102 Tri récursif Le tri récursif divise les données de grande taille en deux presque moitiés et est appelé récursivement.
Raison d'être de la structure de fichiers : Les premiers travaux : Début des années 1960 : En 1963 : Près de 10 ans plus tard... (à peu près 1973) : Durant.
La compression de données
Transcription de la présentation:

Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples

Plan du cours d’aujourd’hui Description du problème: Comment gérer effectivement un indexe qui ne tient pas en mémoire? Indexes à structures binaires: Tri efficace de l’indexe Préservation de l’ordre sans tri  arbres binaires balancés (arbres AVL) Recherche efficace dans l’indexe Reduction du nombre d’accès au disque pendant la recherche  arbres binaire paginés Indexes à niveaux multiples Résumé

Description générale du problème Lorsqu’un indexe est trop grand pour tenir en mémoire, il faut le mettre sur stockage secondaire. Ceci cause des problèmes d’efficacité. En effet, Un indexe est là pour la recherche, et cette recherche doit être efficace. Cependant, une recherche binaire sur disque n’est pas très efficace. Un indexe doit aussi être mis à jour: des enregistrements doivent être ajoutés, effacés ou modifies. Ce type d’opération (example, le tri) peut être très couteux sur stockage secondaire Solution: La recherche doit être plus rapide que la recheche binaire, et l’insertion/effacement aussi rapide que la recherche.

Solution # 1: arbres binaires La structure d’un arbre binaire nous donne une nouvelle capacité importante: Il n’est plus nécessaire de trier le fichier (ce qui est très couteux sur stockage secondaire). Afin de faire une recherche binaire, il suffit de traverser l’arbre jusqu’à ce que la clé recherchée soit trouvée. Afin d’ajouter une nouvelle clé, il suffit de traverser l’arbre et d’ajouter la nouvelle clé à la feuille appropriée.

Arbres binaires (suite) Désavantages: Lorsque l’arbre n’est pas balancé, la performance de recherche ou d’insertion des clés ne sera pas très bonne  Solution # 2: arbres balancés (AVL). Même si les arbres sont balancés, la recherche binaire n’est pas assez rapide lorsque l’indexe réside en stockage secondaire  Solution # 3: arbres binaires paginés.

Solution # 2: arbres AVL Les arbres AVL nous permettent de re-organiser les noeuds de l’arbre au fur et à mesure que nous recevons de nouvelles clés, ce qui nous permet de maintenir une structure d’arbre quasi-optimale. Un arbre AVL est un arbre à hauteur balancée, c.a.d., un arbre qui place une limite sur la différence de hauteur permise entre deux sous-arbres d’un noeud. Dans un arbre AVL (aussi appelé un arbre HB(1) ), la différence maximale permise est de 1.

Solution # 2: Arbres AVL (suite) Les deux caractéristiques importantes des arbres AVL sont les suivantes: En définissant un montant de différence (de hauteur) maximum permise entre 2 sous-arbres, les arbres AVL garantissent un niveau minimum de performance de recherche. Le maintient d’arbres AVL lors de l’insertion de nouvelle clés se fait par rotations locales (il y a 4 differents types de rotations [en fait, 2 types différents et leur rotations symmétriques]). La rotation la plus complexe ne demande que 5 re-affectation de pointeurs.

Solution # 2: arbres AVL (suite) La performance de recherche des arbres AVL est très proche de celle des arbres completement balancés. Dans un arbre completement balancés, au pire, la performance de recherche est de log2(N+1). Dans un arbre AVL, elle est de 1.44 log2(N+2). Il se trouve qu’en fait, les arbres AVL ne sont pas directement applicables à 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 suggèrent qu’il est possible de définir des procédures capables de maintenir l’arbre à une hauteur balancée.

Solution # 3: arbres binaires paginés Les arbres AVL offrent une solution au problème de garder un indexe en ordre de manière peu couteuse. Cependant, ils n’addressent pas le problème causé par le fait que la recherche binaire nécessite de trop nombreux seeks. Les arbres binaires paginés addressent ce problème en placant plusieurs noeuds d’arbre binaire sur la même page de disque. Dans un système paginé, plutôt que de faire un seek pour seulement quelques octets de données, on lit une page entière du fichier, une fois le seek fait. Lorsque l’on fait une recherche d’arbre binaire, le nombre de seeks nécessaire est de log2(N+1). Il est de logk+1(N+1) dans la version paginée de l’arbre. (k= # de clés contenues par page)

Solution # 3: arbres binaires paginés Il existe deux difficultés majeures avec les arbres binaires paginés: L’utilisation du disque divisé en pages peut être très inefficace: chaque page contient en fait un petit arbre ! problèmes au niveau de la construction d’arbres paginés: C’est facile si on connait les clés à l’avance ainsi que leur ordre d’apparition avant de commencer à construire l’arbre C’est beaucoup plus difficile si on reçoit les clés dans n’importe quel ordre et si on les insère dés qu’on les reçoit. Le problème est que si de mauvaises clés sont placées à la racine de l’arbre, l’arbre perdra progressivement sa balance.

Solution # 3: arbres binaires paginés Problèmes specifiques à la construction de l’arbre binaire paginé: Comment peut-on garantir que les clés de la page racine sont de bonnes clés séparatrices qui divisent l’ensemble des autres clés plus ou moins également? Comment peut-on éviter de grouper les clés qui ne devraient pas partager une page? Comment peut-on garantir que chacune des pages contient, au moins, un nombre minimal de clés?

Indexes à niveaux multiples Jusqu’à maintenant dans ce cours nous avons etudié les manières d’indexer un fichier basé sur la construction d’un arbre de recherche (binaire). Cependant, nous avons découvert de serieux problèmes avec cette approche. Nous retournons donc à la notion d’indexes simples que nous avons déjà étudié, mais nous étendons cette notion à celle d’indexes à niveaux multiples.

Indexes à niveaux multiples II L’avantage des indexes à niveaux multiples est qu’ils nous permettent vraiement de réduire le nombre d’accès au disque. De plus, l’espace perdu à leur organisation est minime. Leur désavantages, néanmoins, sont que l’insertion d’une nouvelle clé ou l’effacement d’une clé ancienne sont très couteux.

Synthèse Arbres: ils semblent apporter une bonne solution générale au problème de construction d’indexes. Néanmoins, chacune des solutions que nous avons étudiées jusqu’à maintenant présente de serieux problèmes. Arbres paginés: leurs plus grand problème vient du fait qu’ils sont construits de haut en bas et qu’une “mauvaise” racine peut conduire à une perte de balance. Indexes à niveaux multiples: Ils prennent une approche completement différente qui résoud de nombreux problèmes mais qui crée des insertions et des effacements couteux.

Synthèse Une solution idéale serait de combiner les avantages des solutions précendentes sans souffrir de leurs désavantages. Les arbres B semblent être la réponse à ce problème. Ils combinent les idées d’arbres, d’arbres paginés et d’indexes à niveaux multiples et construisent l’arbre de bas en haut plutot que de haut en bas, évitant, ce faisant, le problème lié au choix d’une “mauvaise” racine.