Raisons de l'utilisation de l'espace secondaire
Problèmes avec le stockage externe
Différence entre la RAM et la mémoire secondaire
Fichiers statique et dynamique
Critère de mesure d'un méthode d'accès
Dans les langages de programmation
Raisons de l'utilisation de l'espace secondaire
On peut énumérer les raisons suivantes qui nous poussent à mettre les informations sur les supports externes : - l'espace mémoire est limité. Si on a une grande masse d'informations à ranger, on est obligé de la mettre sur un support externe. - la RAM (Random Access Memory, c'est à dire la mémoire centrale) coûte chère. - la RAM est volatile (légère). L'information n'est pas en sécurité puisqu'elle peut être perdue à la moindre panne.
Problèmes avec le stockage externe
Le problème avec le stockage sur les supports externes réside dans la lenteur des accès. Pour rechercher une information sur le disque par exemple, on fait généralement plusieurs accès avant de la trouver. Et pendant ce temps là, la machine peut dérouler des millions d'opérations. Pour concevoir une méthode de rangement de l'information sur un support externe, il faut toutefois mettre à l'esprit qu'au delà de 5-6 accès, ça devient insupportable. Par conséquent, on est contraint à trouver une façon efficace pour le stockage des informations.
Différence entre la RAM et la mémoire secondaire
La différence essentielle entre la RAM et la mémoire secondaire est que pour deux informations différentes le temps d'accès est le même pour la RAM et peut être très différent pour la mémoire secondaire.
Vue logique
Le fichier est un ensemble d'articles. A chaque article est associée une clé qui l'identifie de façon unique. C'est ce qu'on appelle la clé primaire. Les autres champs peuvent constituer des clés secondaires. ( identification non unique)
Le fichier peut aussi être vu comme un ensemble d'octets représentant des informations : les octets sont organisés hiérarchiquement pour former des champs , des articles ou des blocs.
Vue physique
Physiquement le fichier est un ensemble de blocs. Un bloc contient n articles. Un article contient n champs. Le bloc constitue généralement l'unité de transfert entre la RAM et la mémoire secondaire.
Un ensemble d'informations sont nécessaires pour l'exploitation du fichier, c'est ce qu'on appelle les caractéristiques du fichiers. Ces informations sont rangées généralement dans un bloc spécial du fichier appelé bloc d'en-tête. Il existe deux types d'information :
informations statiques, telles que le nom du fichier, la date de création, etc.
informations dynamique telles que le nombre courant d'articles, l'adresse du dernier bloc, etc.
Fichiers statique et dynamique
Fichier statique
C'est un fichier qui subit très peu d'insertions et de suppressions. On l'appelle aussi fichier off-line.
Fichier dynamique
C'est un fichier o?les insertions et les suppressions sont très fréquentes. On l'appelle aussi fichier on-line.
C'est l'approche utilisée pour localiser un article dans un fichier. En général, on peut classer les méthodes en deux catégories : accès séquentiel et accès direct.
C'est la combinaison de structures physique et conceptuelle utilisées pour distinguer un article d'un autre, un champ d'un autre, etc. La longueur de l'article peut être fixe ou variable. Si l'article est de longueur variable, il peut être à cheval sur deux blocs.
Bloc
Un bloc est repéré par son adresse. Généralement on distingue deux types d'adresses : physique et logique. Il existe donc toujours une fonction d'association entre l'adresse physique et l'adresse logique. Nous nous considérons par la suite que les adresses logiques.
Article
Un article est repéré par son adresse octet par rapport au début du fichier ou par le couple (numéro du bloc, déplacement dans le bloc). De la même manière, on distingue l'adresse logique et l'adresse physique.
Critère de mesure d'un méthode d'accès
Pour comparer ou mesurer des méthodes d'accès, on considère généralement les facteurs suivants :
taux d'occupation = nombre d'articles
/ (nombre de blocs alloués au fichiers * nombre maximum d'articles possible dans le bloc). Un
taux de 70 % constitue généralement un bon compromis.
nombre d'accès disque.
encombrement et complexité des
algorithmes de maintenance : recherche, insertion suppression, etc.
réaction de la méthode aux
pannes systèmes.
Dans les langages de programmation
Dans les langages de programmation, on parle de fichiers physique et logique. Le fichier physique est le fichier réel qui se trouve sur le support. Le fichier logique n'est connu qu'à l'intérieur d'un programme. Ainsi, à un même fichier physique, on peut correspondre plusieurs fichiers logiques. Il existe toujours un moyen de faire le lien entre le fichier physique et le fichier logique. Il peut se faire à l'intérieur du programme ou à l'extérieur.
Dans les langages de programmation, on définit aussi un ensemble d'opérations : création, ouverture, fermeture, lecture, écriture, position de la tête de lecture/écriture.
Pour développer les algorithmes sur les structures de fichiers, on commence toujours par définir le type des blocs utilisés. Si le format est fixe, le bloc est généralement un tableau d'articles. Dans le cas o?le format est variable, le bloc est considéré comme un tableau de caractères. Le découpage de l'article ainsi que la séparation des articles sont à la charge du programmeur.
Au niveau algorithmique, un fichier F peut être défini comme suit :
F : fichier de Typebloc |
o?Typebloc est le type du bloc du fichier.
Les opérations suivantes sont nécessaires :
Lirebloc(F, n, Zone) : | lecture, dans la buffer Zone, du bloc n du fichier F |
Ecrirebloc(F, n, Zone : | écriture du buffer Zone dans le bloc n du fichier F |
Généralement, dans un langage de programmation, la méthode d'accès utilisée est cachée de l'utilisateur. Dans les chapitres qui suivent, nous tenterons d'analyser les principales méthodes d'accès.
L'objectif de notre cours consiste donc à répondre aux deux questions suivantes :
Comment définir :
L'organisation du fichier : séparation des champs, des articles,
La méthode d'accès : comment localiser un article sur le fichier ? Ca revient donc à étudier les opérations de base : - recherche - insertion -suppression
Requête à intervalle sous différentes formes d'accès qui sont : - fichier vu comme un tableau - fichier vu comme une liste linéaire chaînée
Les méthodes d'index
L'accès multi-clés
Les méthodes d'arbres : arbres de recherche m-aires et arbres B
Les méthodes de hachage.