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.

Slides:



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

Module Systèmes d’exploitation
Structures de données avancées : B arbres
Introduction: Concepts de la programmation
Introduction à l’Algorithmique
GEF 435 Principes des systèmes dexploitation Structure des systèmes dexploitation (Tanenbaum 1.7)
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
Arbre Rouge Noir.
Gestion de Fichiers GF-15: Addressage Disperse (Hashcoding) (Base sur le Chapitre 11 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented.
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
Gestion de Fichiers Indexes basés sur les structures d’arbres binaires et indexes à niveaux multiples.
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.
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-5: Storage Secondaire: Bandes Magnetiques (Base sur Chapitres 3 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented.
Gestion de Fichiers GF-10: Traitement Co-Sequentiel: Appariment et Fusion de Plusieures Listes (Base sur les sections de Folk, Zoellick & Riccardi,
Programmation dynamique
Index multi-niveaux dynamiques (les B-arbres et les B-arbres+)
Structures de données IFT-2000
Gestion de Fichiers GF-7: Compression des Donnees (Base sur la section 6.1 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented Approach with.
Gestion de Fichiers GF-3: Structures d’Enregistrements, Acces Sequentiel et Direct, Manipulation de classes en C++ (Base sur des segments des Chapitres.
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-1: Introduction a la Gestion des Fichiers et Operations de Base.
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.
Gestion de Fichiers GF-9: Construction d’Indexes (Base sur le Chapitre 7 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented Approach with.
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)
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
GF-4: Storage Secondaire: Disques
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.
Architecture et technologie des ordinateurs II
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.
Transcription de la présentation:

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 et Indexes a Niveaux Multiples (Base sur les Sections de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented Approach with C++;)

2 Resume du Cours dAujourdhui Description du Probleme: Comment gerer effectivement un indexe qui ne tient pas en memoire? Indexes a Structures Binaires: Tri efficace de lindexe Preservation de lOrdre sans Tri Arbres Binaires Balances (Arbres AVL) Recherche efficace dans lindexe Reduction du nombre dacces au disque pendant la recherche Arbre Binaire Pagines Indexes a Niveaux Multiples Synthese sur toutes ces structures dIndexes

3 Description Generale du Probleme Lorsquun indexe est trop grand pour tenir en memoire, il faut le mettre sur storage secondaire. Ceci cause des problemes defficacite. En effet, Un indexe est la pour la recherche, et cette recherche doit etre efficace. Mais une recherche binaire sur disque nest pas tres efficace. Un indexe doit aussi etre mis a jour: des enregistrements doivent etre ajoutes, effaces ou modifies. Ce type doperation (example, le tri) peut etre tres couteux sur storage secondaire Ce cours suit le developpement de solutions a ces problemes de maniere chronologique.

4 Solution # 1: Indexation par Arbres Binaires I La structure dun arbre binaire nous donne une nouvelle capabilite importante: Il nest plus necessaire de trier le fichier (ce qui est tres couteux sur storage secondaire). Afin de faire une recherche binaire, il suffit de traverser larbre jusqua ce que la cle recherchee soit trouvee. Afin dajouter une nouvelle cle, il suffit de traverser larbre et dajouter la nouvelle cle a la feuille appropriee.

5 Solution # 1: Indexation par Arbres Binaires II Il y a, neanmoins, deux problemes avec cette solution: Lorsque larbre nest pas balance, la performance de recherche ou dajout de cle ne sera pas tres bonne Solution # 2: Arbres Balances (AVL). Meme sils sont balances, la recherche binaire nest pas assez rapide lorsque lindexe reside en storage secondaire Solution # 2: Arbres Binaires Pagines.

6 Solution # 2: Arbres AVL I Les arbres AVL nous permettent de re-organiser les noeuds de larbre au fur et a mesure que nous recevons de nouvelles cles, ce qui nous permet de maintenir une structure darbre quasi-optimale. Un arbre AVL est un arbre a hauteur balancee, ce.a.d., un arbre qui place une limite sur le montant de difference permis entre la hauteur des deux sous- arbres dun noeud. Dans un arbre AVL (aussi appele un Arbre HB-1), le montant de difference maximal permis est de 1.

7 Solution # 2: Arbres AVL II Les deux caracteristiques importantes des arbres AVL sont les suibantes: En definissant un montant de difference maximum permis entre 2 sous-arbres, les arbres AVL garantissent un niveau minimum de performance de recherche. Le maintient darbres AVL lors de lajout de nouvelle cles se faire par rotations locales (il y a 4 differents types de rotations [en fait, 2 types different et leur rotations symmetriques]). La rotation la plus complexe ne demande que 5 re-affectation de pointeurs.

8 Solution # 2: Arbres AVL III La performance de recherche des arbres AVL est tres proche de celle des arbres completement balances. Dans un arbre completement balances, au pire, la performance de recherche est de log 2 (N+1). Dans un arbre AVL, elle est de 1.44 log 2 (N+2). Il se trouve quen fait, les arbres AVL ne sont pas directement applicables a la plupart des structures de fichiers car, comme tous les arbres strictement binaires, ils ont trop de niveauxils sont trop profonds. Les arbres AVL sont, cependant, important car ils suggerent quil est possible de definir des procedures capables de maintenir larbre a une hauteur balancee.

9 Solution # 2: Arbres Binaires Pagines I Les arbres AVL offrent une solution au probleme de garder un indexe en ordre de maniere peu couteuse. Cependant, ils naddressent pas le probleme cause par le fait que la recherche binaire necessite de trop nombreux seeks. Les arbres binaires pagines addressent ce probleme en placant plusieurs nodes binaires sur la meme page de disque. Dans un systeme pagine, plutot que de faire un seek pour seulement quelques octets de donnees, on lit une page entiere du fichier, une fois le seek fait. Lorsque lon fait une recherche darbre binaire, le nombre de seeks necessaire est de log 2 (N+1). Il est de log k+1 (N+1) dans la version paginee de larbre. (k= # de cles contenues par page)

10 Solution # 2: Arbres Binaires Pagines II Il existe deux difficultes majeures avec les arbres binaires pagines: LUtilisation du Disque divise en Pages peut etre tres Inefficace. Problemes au niveau de la construction darbres pagines: Cest facile si on connait les cles en avance ainsi que leur ordre dapparition avant de commencer a construire larbre Cest beaucoup plus difficile si on recoit les cles dans nimporte quel ordre et si on les insert des quon les recoit. Le problemes est que si de mauvaises cles sont placees a la racine de larbre, une imbalance apparaitra.

11 Solution # 2: Arbres Binaires Pagines III Problemes specifiques a la construction de larbre binaire pagine: Comment peut-on garantir que les cles de la page racine sont de bonnes cles separatrices qui divisent lensemble des autres cles plus ou moins egalement? Comment peut-on eviter de grouper les cles qui ne devraient pas partager une page? Comment peut-on garantir que chacune des pages contient, au moins, un nombre minimal de cles?

12 Indexes a Niveaux Multiples I Jusqua maintenant, dans ce cours, nous avons etudie les manieres dindexer un fichier base sur la construction dun arbre de recherche (binaire). Cependant, nous avons decouvert de serieux problemes avec cette approche. Nous retournons donc a la notion dindexes simples que nous avons deja etudie, mais nous etendons cette notion a celle dindexes a enregistrements multiples suivi de celle dindexes a niveaux multiples (voir example).

13 Indexes a Niveaux Multiples II Lavantage des Indexes a Niveaux Multiples est quils nous permettent vraiement de reduire le nombre dacces au disque. De plus, lespace perdu a leur organisation est minime. Leur desavantages, neanmoins, sont que linsertion dune nouvelle cle ou leffacement dune cle ancienne sont tres couteux.

14 Synthese sur les trois structures dIndexes rencontrees aujourdhui I Arbres: Ils semblent apporter une bonne solution generale au probleme de construction dindexes. Neanmoins, chacune des solutions que nous avons etudiees jusqua maintenant presente de serieux problemes. Arbres Pagines: Leurs plus grand probleme vient du fait quils sont construits de bas en haut et quune mauvaise racine peut conduire a une imbalance. Indexes a Niveaux Multiples: Ils prennent une approche completement differente qui resoud de nombreux problemes mais qui cree des insertions et des effacements couteux.

15 Synthese sur les trois structures dIndexes rencontrees aujourdhui II Une solution ideale serait de combiner les avantages des solutions precendentes sans souffrir de leurs desavantages. Les Arbres B semblent etre la reponse a ce probleme. Ils combinent les idees darbres, darbres pagines et dindexes a niveaux multiples et construisent larbre de bas en haut plutot que de haut en bas, evitant, par ce faire, le probleme lie au choix dune mauvaise racine.