Fichierréduit

Vous aimerez peut-être aussi

Vous êtes sur la page 1sur 27

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

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

• 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
• 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

• 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

8
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

9
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

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 : 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

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

Annie Hall 1977


1926
Brazil 1984
1942
Casablanca 1942
1958
Easy Rider 1969
1960
Greystoke 1984
1977 Jurassic Parkl 1992

1979 Impitoyable 1992

1980 Manhattan 1979

1984
Metropolis 1926
1984
Psychose 1960

Reservoir Dogs 1992

Shining 1980

15
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

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)

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

17
B1 o 25 o 144 o

B2 o 9 o
- o B3 o 64 o 100 o B4 o 196 o - o

1 4 - 9 16 - 25 36 49 64 81 - 100121 - 144169 - 196225256


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

B2 o 9 o
- o B3 o 36 o
- o B13 o 100 o - o B4 o 196 o - o

1 4 - 9 16 - 25 32 - 36 49 - 64 81 - 100 121 - 144169 - 196 225 256


B5 B6 B7 B12 B8 B9 B10 B11
APRES L’INSERTION de 32.
18
13 b

B14 o 25 o 81 o

B2 o 9 o
- o B3 o 36 o
- o B13 o 144 o 196 o

1- 4 - 9 16 - 25 32 - 36 49 - 81 100121 144169 - 196225256


B5 B6 B7 B12 B8 B10 B11

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

• 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 K1 P1 … PN-1 KN Pn


– Ki : valeurs des clés i  j K i  K j
– Pi : pointeurs

• Contenu d’une feuille


Bloc de données avec les clés voisines

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

• 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.

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…

• 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

(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

• Recherche : un accès disque seulement

• Insertion : au maximum deux écritures et une lecture

• Suppression : au maximum deux lectures, une écriture

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

Vous aimerez peut-être aussi