Académique Documents
Professionnel Documents
Culture Documents
Fichierréduit
Fichierréduit
Fichierréduit
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
1
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 SGBD pour quelles données
– données brutes
– information sur le schéma logique
• structure des données, autorisation,…
– information sur le schéma physique
2
Hiérarchie de mémoire
• 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
3
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
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
4
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
. Champs de longueurs variables
• 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é
5
Optimisation des Ressources
• 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
• Utiliser des structures de données + riches que FICHIERS EN TAS
FICHIERS LOGIQUES
6
Fichiers logiques
• Fichier Séquentiel
– lire premier (nom, buffeur)
– lire suivant (nom, buffeur)
– écrire (nom, buffeur)
– supprimer (nom, buffeur)
• 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é)
– écrire (nom, buffeur)
– supprimer (nom, clé)
• Fichier séquentiel indexés
– lire premier
– lire suivant
– lire direct
– écrire
– supprimer
• Multiclefs : on accède à partir de plusieurs clés.
7
Implantation des fichiers logiques
• Critères
– temps moyen de recherche
– temps moyen de suppression
– temps moyen d'insertion
– espace supplémentaire
8
Fichier en tas (format fixe)
• 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
9
Fichiers Indexés
• 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
10
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 0
/// /// ///
- 25 68
11
Les Index
• 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é
12
titre année ...
Vertigo 1958 ...
Brazil 1984 ...
Twin Peaks 1990 ...
Underground 1995 ...
Easy Rider 1969 ...
Psychose 1960 ...
Greystoke 1984 ...
Shining 1980 ...
Annie Hall 1977 ...
Jurasic Park 1992 ...
Metropolis 1926 ...
Manhattan 1979 ...
Reservoir Dogs 1992 ...
Impitoyable 1992 ...
Casablanca 1942 ...
Smoke 1995 ... 13
Index non dense
Annie Hall 1977
Brazil 1984
Casablanca 1942
Annie Hall
Greystoke Easy Rider 1969
Metropolis
Greystoke 1984
Smoke
Jurassic Parkl 1992
Impitoyable 1992
Manhattan 1979
Metropolis 1926
14
Index dense
1984
Metropolis 1926
1984
Psychose 1960
Shining 1980
15
Les Index : opérations
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
16
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)
• 4. Quand l’index grossit (e.g. index dense)
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
17
B1 o 25 o 144 o
B2 o 9 o
- o B3 o 64 o 100 o B4 o 196 o - o
B1 o 25 o
- o B14 o 144 o - o
B2 o 9 o
- o B3 o 36 o
- o B13 o 100 o - o B4 o 196 o - o
B14 o 25 o 81 o
B2 o 9 o
- o B3 o 36 o
- o B13 o 144 o 196 o
SUPPRESSION De 64
19
Arbre-B+
• Index Multi-niveau
– résistant aux mises à jour (pas de réorganisation)
– coût en temps et en espace
20
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
• Arbre-B
Chaque Ki est un pointeur
– 1. soit vers un autre nœud
– 2. Soit vers un bloc de données
21
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
22
Fichier haché
0 0
1 0
17 13 5 29 0
2 0
3 0
2 0
Bucket 23 7 35 19 11 0
31 0
Directory
0 0
1 0
17 13 5 29 0
2 0
3 0
2 0
Bucket 23 7 31 19 11 0
Directory
Suppression de 35 + compression
23
Hachage Dynamique
• On choisit une fonction de hachage H(k) = b0 b1 b2…
• initialement
(0) b1
• 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.
(1) 0
b2
1
b3
24
Hachage dynamique
• 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
2
(2) 00
b4
01
10
b5
11
b3
• si B5 éclate à nouveau, on va passer à une table de taille 8, avec :
(3) 000 2
001 b4
010 3
b6
011
100 b7
101
b3
110 1
111
25
Hachage dynamique
• En suppression, on choisit une politique : par exemple si deux voisins sont moins de
moitié plein, on fusionne
26
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
27