1 / 25

SYSTEMES DE FICHIERS ET SGBD

SYSTEMES DE FICHIERS ET SGBD. 1. Introduction 2. Hiérarchie de mémoire 3. Fichiers 4. Optimisation des ressources 5. Fichiers logiques a - Fichiers séquentiels b - Séquentiels indexés c - Arbres-B d - Hachage statique et dynamique e - Multi-hachage 6. Conclusion. Introduction.

yitro
Download Presentation

SYSTEMES DE FICHIERS ET SGBD

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SYSTEMES DE FICHIERS ET SGBD 1. Introduction 2. Hiérarchie de mémoire 3. Fichiers 4. Optimisation des ressources 5. Fichiers logiques a - Fichiers séquentiels b - Séquentiels indexés c - Arbres-B d - Hachage statique et dynamique e - Multi-hachage 6. Conclusion

  2. Introduction • Système d'exploitation • contient un système de manipulation de fichiers • Système de gestion de bases de données • deux niveaux indépendants: logique, physique • grande quantité de données • recherches complexes : clés • offre d'autres fonctionnalités : • concurrence, reprise sur pannes, confidentialité… • En général, n’utilise pas le système de fichiers standard pour des raisons de performance • Système de fichiers propre au AGBD pour quelles données • données brutes • information sur le schéma logique • structure des données, autorisation,… • information sur le schéma physique • statistique • taille des relations, critères de sélectivité, taux de mise-à-jour et requêtes

  3. Hiérarchie de mémoire • Faire croire que l'on a une très grande mémoire très rapide et peu chère • Prix: de la mémoire pas chère (disque) • Vitesse: de la mémoire rapide • Mémoire principale : • Zone de travail directement adressable • petite (mega octets), chère, rapide • sensible (crash) • Mémoire secondaire 1/ mémoire à accès direct : disques • temps d'accès : a. accès au bon cylindre b. lecture jusqu’à bonne place sur le cylindre • résistante aux pannes système • moins chère, moins rapide • Milli-secondes 2/ mémoire à accès indirect : bandes • archives • peu chère, très lente

  4. Fichiers, Blocs • Fichier : séquence d’articles • Article (record) un ou plusieurs champs de types élémentaires (entier, caractère, pointeur,…)(nom, âge, adresse) • Champs 1. Information a. format (type d'article, nom de relation) b. longueur (si elle est variable) c. « deleted » (si l’article a été supprimé) 2. Données : taille fixe ou variable • Unité de transfert avec la mémoire secondaire : Blocs : taille fixe 29 à 212 octets Plusieurs blocs forment un segment • Fonctions d'un système de fichiers a. créer/détruire un fichier b. lecture c. écriture : insertion, suppression, modification • Gestion • des pannes • de la confidentialité • de la concurrence

  5. Fichiers : Article Taille fixe et variable • A- Articles taille fixe Nombre de champs fixes Tailles des champs fixes • Suppression Compression coûteux ou bit indiquant que l'article est vide crée des trous • Insertion: e.g., trouver un article vide • B- Articles de taille variable 1. Différents types d'articles dans même fichier 2. Champs de longueurs variables 3. Champs répétés : e.g., trouver un article vide • Difficile à gérer 1. SUPPRESSION : combler les trous 2. MISES-A-JOUR : la taille d'un article qui change 3. DEPASSEMENT DE BLOCS : article de très grosse taille • Solutions (sans miracles) Représentation en Taille Fixe 1. Réserver taille maximum  place perdue 2. Réserver taille faible + + gestion blocs de débordements  complexité

  6. Optimisation des Ressources • Optimiser les accès au disque • Clustering Regroupement des blocs physiques qui contiennent des données souvent utilisées ensembles Placement de ces blocs sur le même cylindre physique Compromis entre bon placement et trop de perte de place • Buffeur Zone de mémoire principale stockant des blocs Essayer de prévoir quels blocs seront utilisés les garder dans le buffeur, voire les charger à l'avance Problèmes : stratégie de remplacement des blocs (e.g., LRU) • Utiliser des structures de données + riches FICHIERS EN TAS  FICHIERS LOGIQUES

  7. Fichiers logiquesTypes abstraits de données • Fichier Séquentiel • lire premier (nom, buffeur, test) • lire suivant (nom, buffeur, test) • écrire (nom, buffeur) • supprimer (nom, buffeur, test) • Fichier accès direct • utilise l’existence d'une clé-accès par la clé : un champ qui identifie exactement chaque enregistrement • lire (nom, buffeur, clé, test) • écrire (nom, buffeur) • supprimer (nom, clé, test) • Fichier séquentiel indexés • lire premier • lire suivant • lire direct • écrire • supprimer • Multiclefs: on accède à partir de plusieurs clés.

  8. Implantation des fichiers logiques • Critères • temps moyen de recherche • temps moyen de suppression • temps moyen d'insertion • espace supplémentaire • Typologie des utilisations • accès à un article • balayage du fichier • taux de mises-à-jour • Différentes techniques • le tri • les index • arbre-B • hachage • hachage dynamique • multi-hachage

  9. Fichier en tas (format fixe) • Le fichier est une séquence chaînée de blocs sur disque • Chaque bloc contient une séquence d’enregistrements, avec un bit de suppression • Recherche : on parcourt tous les blocs séquentiellement • Insertion : on parcourt jusqu’à trouver une place libre, si rien de libre on chaîne un nouveau bloc • Supprimer : on met le bit de suppression à zéro. Si le bloc est vide, on le supprime de la liste (autres politiques possibles) COMPACTION

  10. Fichiers Indexés • Le fichier est trié suivant une clé • les articles sont chaînes à l’aide de pointeurs • Insertion • dans un article vide du même bloc que l’article précédent l’article à insérer dans l'ordre de la clé • dans un autre bloc en cas d'absence de place • Suppression • simple si on ne cherche pas à compacter • Problèmes • 1. Les mises à jour sont rapidement compliquées • 2. Ne marche bien que si la taille du fichier est à peu près connue. • 3. ACCES TROP LENTS  INDEX

  11. Fichiers indexés 2 4 5 16 19 o 24 /// 25 37 54 56 58 o 31 52 /// 68 79 80 88 78 /// 0 - 0 25 0 68 /// /// ///

  12. Les Index • Index:Structure annexe permettant d’accélérer certains accès • Index dense : Index dans lequel chaque valeur de la clé est représentée (nécessaire quand le fichier n’est pas trié) nombre d'entrées dans l'index = nombre d'articles • Index non-dense • un index non dense impose un fichier trié • DENSITE / EFFICACITE / ESPACE / • Solution :index non dense avec une entrée par bloc • Mise-à-jour de la base • Mise-à-jour des index

  13. Les Index : opérations Recherche:parcours de l’index + une lecture Insertion • index dense : insérer la clé dans l’index si elle n'y est pas • index non dense : pas de changement dans l'index si l'insertion est réalisée dans un bloc existant. Sinon, insérer la première clé du nouveau bloc dans l’index. Suppression • dense : détruire la clé dans l'index si c'est le dernier article avec cette clé • non dense : la plupart du temps pas de changement

  14. Autres Index • 1. Index primaire sur un attribut clé : un enregistrement au plus pour chaque valeur de la clé • 2. Index secondaire Sur un attribut non clé(en général dense) • 3. Index croisé sur un ensemble d’attributs Fichier inverse indexe sur tous ses attributs • 4. Quand l’index grossit (e.g. index dense) STOCKER L'INDEX DANS UN FICHIER que l'on peut trier et indexer lui-même. Dans chaque bloc, on note la clé la plus petite, et on constitue un tableau  l'Idée DES ARBRES - B

  15. B1 o 25 o 144 o B2 B3 o 9 o - o o 64 o 100 o B4 o 196 o - o 1 4 - 9 16 - 25 36 49 64 81 - 100 121 - 144 169 - 196 225 256 B5 B6 B7 B8 B9 B10 B11 ARBRE B INITIAL B15 o 64 o - o B1 o 25 o - o B14 o 144 o - o B13 B4 B2 o 36 o - o o 100 o - o o 196 o - o o 9 o - o B3 1 4 - 9 16 - 25 32 - 36 49 - 64 81 - 100 121 - 144 169 - 196 225 256 B5 B6 B7 B12 B8 B9 B10 B11 APRES L’INSERTION de 32.

  16. 13 b B14 o 25 o 81 o B2 B3 o 9 o - o o 36 o - o B13 o 144 o 196 o 1 - 4 - 9 16 - 25 32 - 36 49 - 81 100 121 144 169 - 196 225 256 B5 B6 B7 B12 B8 B10 B11 SUPPRESSION De 64

  17. Arbre-B+ • Index Multi-niveau • résistant aux mises à jour (pas de réorganisation) • coût en temps et en espace • Principe : arbre équilibré (chemin racine-feuille de longueur constante) • les nœuds stockent l’information de l’index, • les feuilles pointent sur le fichier • nœuds et feuilles correspondent à des blocs disque. • Contenu d’un nœud :PK1P1 … PN-1KN Pn • Ki : valeurs des clés i  j K i  K j • Pi : pointeurs • Contenu d’une feuille Bloc de donnéesavec les clés voisines

  18. Arbre-B+ - SUITE • Recherche d'une clé B • 1. Descente suivant Pi si Ki  B Ki+1 • 2. H =  (log(N)) accès disque (H= profondeur de l'arbre, N nombre de blocs du fichier) • Insertion • Recherche du bloc • insertion s'il y a de la place • Sinon : éclatement • Suppression :Similaire • Problème :Équilibrage de l'arbre • Exemple : • blocs de 512 octets, clé de 6 octets 64 pointeurs par nœud • 3 niveaux 128 Mega octets de fichier • si l'arbre est équilibré sinon … • Arbre-B Chaque Ki est un pointeur • 1. soit vers un autre nœud • 2. Soit vers un bloc de données

  19. Fichier HachéTaille Fixe, Statique • Technique • 1.Tableau T[O..n] de pointeurs vers des blocs • 2.Fonction de hachage H : {domaine de la clé} [O..n] • 3.Chaque T[i] est un pointeur vers un bloc de données • 4. Un article de clé K se trouve dans le bloc pointé par T[H(K)] • Problème :débordement • On chaîne un bloc supplémentaire • Recherche :un accès si pas de débordement • Insertion et suppression :naturelles • On vise un taux de remplissage de 60% • Si la taille varie beaucoup, les performances sont mauvaises, on passe au hachage dynamique.

  20. Fichier haché 0 0 1 0 17 13 5 29 0 2 0 2 0 0 3 23 7 35 19 11 0 31 0 Bucket Directory 0 0 0 17 13 5 29 0 1 0 2 2 0 0 3 23 7 31 19 11 0 Bucket Directory Suppression de 35 + compression

  21. Hachage Dynamique • On choisit une fonction de hachage H(k) = b0 b1 b2… • On a une table de hachage de taille 1, 2, 4, …2n • Selon le nombre d’enregistrements. Dès qu’un bloc déborde, on double la taille de la table, on éclate le bloc en utilisant un bit de plus de la fonction de hachage • initialement • on utilise O bits de la fonction de hachage • Quand b1 est plein, on applique le premier bit de H (K) au contenu de b1, cela l’éclate en b2, b3. b1 (0) (1) 0 1 b2 b3

  22. Hachage dynamique 2 (2) 0 0 b4 0 1 b5 • Quant b2 devient plein, on prend 1 bit de plus dans la fonction de hachage pour l'éclater en b4, b5 et on dédouble la table • si B5 éclate à nouveau, on va passer à une table de taille 8, avec : 1 0 1 1 b3 (3) 000 2 001 b4 010 3 b6 011 b7 100 101 b3 110 1 111

  23. Hachage dynamique • En suppression, on choisit une politique : par exemple si deux voisins sont moins de moitié plein, on fusionne • Recherche : un accès disque seulement • Insertion : au maximum deux écritures et une lecture • Suppression : au maximum deux lectures, une écriture

  24. Multi-Hachage • Hacher une grande table • (e.g. dictionnaire) • d Mots • k Fonctions hi Indépendantes dans [0..N] • Tableau TAB de n BITS • TAB[j] = 1 si (v) = j pour dans le dico et 1< i < k • Probabilité du BIT j a Zéro • Aucun mot d'un dictionnaire de taille d ne positionne un T[j] donné est e-avec  = dk/n • Probabilité d'acceptation erronée pour que v Arbitraire soit accepté est (1-p)k • Ex : Commande spell de UNIX • Choix : d = 25000, n = 400000, k = 11 • Cela donne 0.000458711.

  25. Conclusion • Les fichiers sont souvent de taille fixe • Index souvent sur des attributs de taille fixe • Hachage statique très utilise • Arbre-B très utilise dans les SGBD • Souvent des index secondaires • Index plein texte en documentation et sur les moteurs de recherche du web.a

More Related