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,

Slides:



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

Module Systèmes d’exploitation
Structures de données avancées : Principales structures de fichiers
Structures de données avancées : B arbres
Chap. 4 Recherche en Table
Introduction à l’Algorithmique
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
GEF 435 Principes des systèmes dexploitation Structure des systèmes dexploitation (Tanenbaum 1.7)
Optimisation algébrique de requêtes relationnelles
Chap. 1 Structures séquentielles : listes linéaires
Traitement Co-Séquentiel: Appariment et Fusion de Plusieurs Listes
CSI3525: Concepts des Langages de Programmation Notes # 11: Sous-Programmes ( Lire Chapitre 8 )
Structures de données linéaires
CSI3525: Concepts des Langages de Programmation Notes # 12: Implementation des Sous-Programmes ( Lire Chapitre 9 )
Méthode des k plus proches voisins
Gestion de Fichiers GF-15: Addressage Disperse (Hashcoding) (Base sur le Chapitre 11 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented.
Gestion de Fichiers Arbres B.
Indexation 1. Concepts de base 2. Arbre B 3. Indexes secondaires.
Sections sélectionnées du Chapitre 11
Allocation de mémoire Allocation de mémoire.
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.
Test et débogage Tests unitaires. Gestion d’erreurs. Notion d’état, de pré-condition et de post-condition. Assertion. Traces de programme. Débogueur et.
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.
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.
1 CSI3525: Concepts des Languages de Programmation Notes # 3: Description Syntaxique des Languages.
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-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,
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.
IFT Complexité et NP-complétude Chapitre 0 Rappels.
Analyse d’algorithmes
GOL503 Spécificités sectorielles
Gestion de Fichiers GF-3: Structures d’Enregistrements, Acces Sequentiel et Direct, Manipulation de classes en C++ (Base sur des segments des Chapitres.
Introduction Les niveaux de RAID offrent un large choix d’alternatives qui permettent de choisir un rapport performance/sécurité différent. Il est aussi.
Paradigmes des Langages de Programmation
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.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Implémentation d’un.
Les principes de la modélisation de systèmes
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.
David Rivreau Table de hachage David Rivreau
CHAPITRE 3: LES NOMBRES.
GNU Free Documentation License
Gestion de Fichiers GF-6: Storage Secondaire: CD-ROMs & 2 Questions sur la Gestion des Donnees (Base sur Chapitres 3 de Folk, Zoellick & Riccardi, File.
Gestion de Fichiers GF-9: Construction d’Indexes (Base sur le Chapitre 7 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented Approach with.
Optimisation par les algorithmes génétiques
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Programmation linéaire en nombres entiers
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
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
Cours LCS N°4 Présenté par Mr: LALLALI
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
GF-4: Storage Secondaire: Disques
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,
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
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-14: Acces Sequentiel et Indexe aux Fichiers et Arbres B+ Prefixes (Base sur le Chapitre 10 de Folk, Zoellick & Riccardi, File Structures, An Object-Oriented Approach with C++;)

2 Acces Sequentiel Indexe Jusqu’a maintenant, on a du choisir entre une vue de fichier indexee ou sequentielle. Dans ce cours, on cherche une seul methode d’organization qui nous donne ces deux vues simultanement. Pourquoi demander ces deux vues simultanement? Parce que si une application demande aussi bien un acces au hazard interactif et du traitement co- sequentiel en mode batch, ces deux actions doivent etre performees de maniere efficace. (example: une base de donnees d’etudints dans une universite)

3 Comment Maintenir un “Sequence Set”: L’Utilisation de Blocs I Un “Sequence Set” est un ensemble d’enregistrements ordonne par valeur de cle et qui reste ordonne au fur et a mesure que des enregistrements sont ajoutes et effaces. Puisque le triage et le re-triage d’un “Sequence Set” tout entier au fur et a mesure que des enregistrements sont ajoutes et effaces est tres couteux, nous cherchons d’autes strategies. En particulier on essaie de trouver un moyen de localiser les changements. L’idee est d’utiliser des blocs qui peuvent etre lus en memoire et rearranges rapidement. Comme dans les arbres B, ces blocs peuvent etre divises, fusionnes ou leurs enregistrements re-distribues au necessaire.

4 Comment Maintenir un “Sequence Set”: L’Utilisation de Blocs II En utilisant des blocs, on peut garder un “sequence set” en ordre par valeur de cles sans jamais avoir besoin de re-trier l’ensemble entier d’enregistrements. Cependant il y a des couts associes a cette approche: Un fichier a Blocs prend plus d’espace qu’un fichier sns bloc a cause de la fragmentation interne. L’ordre des enregistrements n’est pas necessairement physiquement sequentiel partout dans le fichier. Le montant maximum garantie de sequentialite physique est a l’interieur d’un bloc.

5 Comment Maintenir un “Sequence Set”: L’Utilisation de Blocs III Un aspect important dans l’utilisation de blocs est le choix d’une taille de blocs. Il y a deux considerations a considerer dans le choix de cette taille: La taille de bloc doit etre telle que l’on peut garder plusieurs blocs en memoire en meme temps. La taille de bloc doit etre telle que l’on peut acceder a un bloc sans avoir besoin d’un “seek” sur disque pendant l’operation de lecture ou d’ecriture du bloc.

6 Ajout d’un Indexe Simple au “Sequence Set” Chaque blocs crees pour notre “Sequence Set” contient une succession d’enregistrements qui peut contenir l’enregistrement qui nous interesse. On peut construire un indexe simple d’un seul niveau pour ces blocs. Une combinaison d’indexe de ce type avec le “Sequence Set” de blocs nous donne un acces sequentiel indexe complet. Cette methode fonctionne bien si l’indexe peut tenir en memoire. Si l’indexe ne peut pas completement tenir en memoire, on peut utiliser un arbre B+, c’e.a.d. un indexe a structure d’arbre B plus un “Sequence Set” qui contient les enregistrements.

7 Le Contenu de l’Indexe: Separateurs plutot que Cles L’indexe represente une sorte de guide pour le “sequence set”  Il n’est pas necessaire d’avoir les cles dans l’indexe. Ce dont on a vraiement besoin est un ensemble de separateurs capable de discriminer entre deux blocs. On peut epargner de l’espace en utilisant des separteurs a longueur variable et en placant le plus petit separateur dans la structure d’indexe. Les regles sontles suivantes: Cle < separateur  bloc de gauche Cle = separateur  bloc de droite Cle >= separateur  bloc de droite

8 Un Arbre B+ Prefixe Simple Les separateurs que l’on vient d’itentifier peuvent etre organises en un arbre B representant l’indexe du “sequence set” des blocs. Cet arbre B s’appelle alors l’”Index Set”. Pris ensemble avec le “Sequence Set”, l’”Index Set” forme une structure de fichiers appelee un Arbre B+ Prefixe Simple. “Prefice Simple” indique que l’”Index Set” contient les plus petit separateurs, en d’autres termes, le prefixe des cles plutot que des copies des cles completes.

9 Arbre B+ Prefixe Simple: Maintenance Pour les mises a jour localisees a un seul bloc dans le “Sequence Set”: Faire les changements dans le “Sequence Set” et dans l’”Index Set”. Pour les mises a jour incluant plusieurs blocs dans le “Sequence Set”: Si les blocs sont divises dans le “Sequence Set”, un nouveau separateur doit etre inserre dans l’”Index Set”. Si les blocs sont fusionnes dans le “Sequence Set”, un separateur doit etre efface de l’”Index Set”. Si les enregistrements sont re-distribues entre les blocs d’un “Sequence Set”, la valeur de separateurs dans l’”Index Set” doit etre changee.

10 Taille d’un Bloc dans l’”Index Set” La taille physique d’un noeud dans l’Index Set” est typiquement la meme que celle d’un bloc dans le “Sequence Set”. Dans ce case on parle de blocs d’indexes plutot que de noeuds. Il y a plusieures raisons pour utiliser une taille de bloc commune au “Sequence Set” et l’”Index Set”: La taille d’un bloc est souvent choisie en relation avec les caracteristiques de l’unite de disque et le montant de memoire disponible. Une taille de bloc commune rend la creation d’un traitement par memoire tampon plus facile a implementer dans le cas d’un arbre B+ Prefixe Simple Virtuel. Les blocs d’indexe et de sequence sont souvent melanges dans le meme fichier afin d’eviter l’acces a deux fichiers differents pendant le traitement.

11 La Structure Interne des Blocs de l’”Index Set”: Un arbre B a Ordre Variable Etant donne un grand bloc a taille fixe dans l’”Index Set”, comment peut-on sauvegarder les separateurs dans ce bloc? Il y a de nombreuses facons de combiner la liste de separateurs, l’indexe des separateurs et la liste de” Numeros de Blocs Relatifs” (NBR) dans un seul bloc de l’”Index Set”. Une approche possible est d’inclure un compteur de separateurs et de garder un compteur de la longueur totale des separateurs.

12 Amener un Arbre B+ Prefixe Simple en Memoire I Une serie d’insertions successives n’est pas une bonne methode car la division de blocs et leur re- distribution sont assez couteuses et ne devraient etre faites que pour la mise a jour. Si on part d’un fichier triee, cependant, on peut placer les enregistrements dans des blocs de “Sequence Set”, creant un nouveau bloc des que celui que l’on est en train de remplir est plein. Lorsque l’on fait la transition d’un bloc a l’autre, on peut determiner le separateur minimal de ces deux blocs. On peut mettre tous ces separateurs dans un bloc d’”Index Set” que l’on construit et retient en memoire jusqu’a ce qu’il soit plein.

13 Amener un Arbre B+ Prefixe Simple en Memoire II Les avantages de cette technique pour amener un arbre B+ Prefixe Simple en Memoire sont presque toujours plus grands que les desavantages associes a la possibilite de creer des blocs contenant trop peu d’enregistrements ou trop peu de separateurs. Un avantage particulier est que ce processus va plus rapidement car: Le resultat peut etre ecrit sequentiellement; On n’a besoin de consulter les donnees qu’une seule fois; Aucun bloc n’a besoin d’etre re-organise. Les avantages une fois que l’arbre est en memoire: Les blocs sont plein a 100% Comme l’arbre est amene en memoire sequentiellement, un certain degre de localisation spatiale dans le fichier est cree  “seeking” peut etre minimise.

14 Arbres B+ La difference entre un arbre B+ prefixe simple et un arbre B+ est que l’arbre B+ n’utilise pas de prefixes comme separateurs. Dans l’arbre B+, les separateurs sont des copies de cles. Les arbres B+ prefixes simples sont souvent plus desirables que les arbre B+ car les separateurs prefixes prennent moins de place que les cles completes. Les arbres B+, cependant, sont parfois plus desirables car 1) ils ne demandent pas de champs de separateurs a taille variable et 2) certaines cles ne sont pas toujours facile a comprimer de maniere effective.

15 Arbres B, Arbres B+ et Arbres B+ Prefixes Simples en Perspective I Les arbres B et B+ ne sont pas les seuls outils utiles pour la conception des structures de fichiers. Les indexes simples sont utiles lorsqu’ils peuvent tenir en memoire et Hashcoding peut permettre un acces beaucoup plus rapide que les arbres B et B+. Caracteristiques communes aux arbres B, B+ et B+ Prefixes Simples: Structure d’indexes paginees  Arbres large et bas Arbres a taille balancee (height-balanced) Les arbres sont construits de bas en haut et les operations utilisees sont: division, fusion, et re- distribution de blocs. Division deux-trois et redistribution peuvent etre utiliser pour ameliorer l’efficacite du storage. Ils peuvent etre implementes virtuellement. Ils peuvent etre adaptes pour enregistrements a longueur variable.

16 Arbres B, Arbres B+ et Arbres B+ Prefixes Simples en Perspective II Difference entre ces structures d’arbres: Arbres B: indexes a niveaux multiples pour fichiers non-tries. Aspects Positifs: simplicite de l’implementation; Aspects Negatifs: trop de “seeking” est necessaires pour l’acces sequentiel. Arbres B avec information associee: Ces arbres sont des arbres B qui contiennent le contenu des enregistrements a chaque niveau de l’arbre. Aspect Positif: Peuvent epargner de l’espace; Aspect Negatif: ne fonctionne que lorsque l’information sur l’enregistrement est localisee dans l’arbre B. Sinon, trop de “seeking” est necessaire pour recuperer l’information sur cet enregistrement.

17 Arbres B, Arbres B+ et Arbres B+ Prefixes Simples en Perspective III Difference entre ces structures d’arbres: Arbres B+: Dans un arbre B+, toutes les informations sur la cle et l’enregistrement est contenue dans un ensemble de blocs chaines appele le “Sequence Set”. Un acces indexe est disponible grace a l’”Index Set”. Avantages par rapport aux arbres B: 1) Le “Sequence Set” peut etre traite de maniere vraiement lineaire et sequentielle; 2) l’indexe est construit avec une seule cle ou separateur par bloc d’enregistrements plutot qu’avec une seule cle par enregistrement  l’indexe est plus petit et donc moins profond. Arbres B+ Prefixes Simples: Les separateurs de l’”Index Set” sont plus petits que les cles du “Sequence Set”  L’arbre est encore plus petit.