COBOL - Organisation des fichiers
L'organisation des fichiers indique comment les enregistrements sont organisés dans un fichier. Il existe différents types d'organisations pour les fichiers afin d'augmenter leur efficacité d'accès aux enregistrements. Voici les types de schémas d'organisation de fichiers -
- Organisation séquentielle des fichiers
- Organisation des fichiers séquentiels indexés
- Organisation relative des fichiers
Les syntaxes de ce module, mentionnées avec leurs termes respectifs, se réfèrent uniquement à leur utilisation dans le programme. Les programmes complets utilisant ces syntaxes seront discutés dans le chapitre «Verbes de gestion de fichiers».
Organisation séquentielle des fichiers
Un fichier séquentiel se compose d'enregistrements stockés et accessibles dans un ordre séquentiel. Voici les principaux attributs de l'organisation séquentielle des fichiers -
Les enregistrements peuvent être lus dans un ordre séquentiel. Pour lire le 10 e enregistrement, tous les 9 enregistrements précédents doivent être lus.
Les enregistrements sont écrits dans un ordre séquentiel. Un nouvel enregistrement ne peut pas être inséré entre les deux. Un nouvel enregistrement est toujours inséré à la fin du fichier.
Après avoir placé un enregistrement dans un fichier séquentiel, il n'est pas possible de supprimer, raccourcir ou allonger un enregistrement.
L'ordre des enregistrements, une fois insérés, ne peut jamais être modifié.
La mise à jour du dossier est possible. Un enregistrement peut être écrasé si la nouvelle longueur d'enregistrement est la même que l'ancienne longueur d'enregistrement.
Les fichiers de sortie séquentiels sont une bonne option pour l'impression.
Syntaxe
Voici la syntaxe de l'organisation séquentielle des fichiers -
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT file-name ASSIGN TO dd-name-jcl
ORGANIZATION IS SEQUENTIAL
Organisation des fichiers séquentiels indexés
Un fichier séquentiel indexé se compose d'enregistrements auxquels il est possible d'accéder de manière séquentielle. Un accès direct est également possible. Il se compose de deux parties -
Data File contient des enregistrements dans un schéma séquentiel.
Index File contient la clé primaire et son adresse dans le fichier de données.
Voici les principaux attributs de l'organisation séquentielle des fichiers -
Les enregistrements peuvent être lus dans un ordre séquentiel, tout comme dans l'organisation séquentielle des fichiers.
Les enregistrements sont accessibles de manière aléatoire si la clé primaire est connue. Le fichier d'index est utilisé pour obtenir l'adresse d'un enregistrement, puis l'enregistrement est extrait du fichier de données.
L'index trié est conservé dans ce système de fichiers qui relie la valeur de clé à la position de l'enregistrement dans le fichier.
Un autre index peut également être créé pour récupérer les enregistrements.
Syntaxe
Voici la syntaxe de l'organisation des fichiers séquentiels indexés -
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT file-name ASSIGN TO dd-name-jcl
ORGANIZATION IS INDEXED
RECORD KEY IS primary-key
ALTERNATE RECORD KEY IS rec-key
Organisation relative des fichiers
Un fichier relatif se compose d'enregistrements classés par relative address. Voici les principaux attributs de l'organisation relative des fichiers -
Les enregistrements peuvent être lus dans un ordre séquentiel, tout comme dans une organisation de fichiers séquentielle et indexée.
Les enregistrements sont accessibles à l'aide de la clé relative. La clé relative représente l'emplacement de l'enregistrement par rapport à l'adresse du début du fichier.
Les enregistrements peuvent être insérés à l'aide de la clé relative. L'adresse relative est calculée à l'aide de la clé relative.
Le fichier relatif fournit l'accès le plus rapide aux enregistrements.
Le principal inconvénient de ce système de fichiers est que si certains enregistrements intermédiaires sont manquants, ils occuperont également de l'espace.
Syntaxe
Voici la syntaxe de l'organisation relative des fichiers -
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT file-name ASSIGN TO dd-name-jcl
ORGANIZATION IS RELATIVE
RELATIVE KEY IS rec-key