Cobol-file-organization
提供:Dev Guides
COBOL-ファイル編成
ファイル編成は、レコードがファイルに編成される方法を示します。 レコードへのアクセス効率を高めるために、ファイルにはさまざまなタイプの組織があります。 以下は、ファイル編成スキームのタイプです-
- 順次ファイル編成
- インデックス付きの順次ファイル編成
- 相対ファイル編成
このモジュールの構文は、それぞれの用語とともに言及され、プログラムでの使用法のみを参照しています。 これらの構文を使用する完全なプログラムについては、「ファイル処理動詞」の章で説明します。
順次ファイル編成
順次ファイルは、順次に格納およびアクセスされるレコードで構成されます。 順次ファイル編成の重要な属性は次のとおりです-
- レコードは順番に読み取ることができます。 10番目のレコードを読み取るには、前の9つのレコードをすべて読み取る必要があります。
- レコードは順番に書き込まれます。 新しいレコードを間に挿入することはできません。 新しいレコードは常にファイルの最後に挿入されます。
- レコードを順次ファイルに配置した後、レコードを削除、短縮、または延長することはできません。
- レコードの順序は、一度挿入されると変更できません。
- 記録の更新が可能です。 新しいレコード長が古いレコード長と同じ場合、レコードは上書きできます。
- 順次出力ファイルは、印刷に適したオプションです。
構文
順次ファイル編成の構文は次のとおりです-
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT file-name ASSIGN TO dd-name-jcl
ORGANIZATION IS SEQUENTIAL
インデックス付き順次ファイル編成
インデックス付きシーケンシャルファイルは、シーケンシャルにアクセスできるレコードで構成されます。 直接アクセスも可能です。 それは2つの部分で構成されています-
- *データファイル*にはシーケンシャルスキームのレコードが含まれます。
- *インデックスファイル*には、データファイル内の主キーとそのアドレスが含まれています。
順次ファイル編成の重要な属性は次のとおりです-
- レコードは、順次ファイル編成の場合と同様に順次に読み取ることができます。
- 主キーがわかっている場合、レコードにランダムにアクセスできます。 インデックスファイルを使用してレコードのアドレスを取得し、データファイルからレコードを取得します。
- ソートされたインデックスは、キー値をファイル内のレコードの位置に関連付けるこのファイルシステムで保持されます。
- レコードを取得するための代替インデックスも作成できます。
構文
以下は、インデックス付き順次ファイル編成の構文です-
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
相対ファイル編成
相対ファイルは、*相対アドレス*で順序付けられたレコードで構成されます。 以下は、相対的なファイル編成の重要な属性です-
- レコードは、シーケンシャルおよびインデックス付きファイル編成の場合と同様にシーケンシャル順序で読み取ることができます。
- 相対キーを使用してレコードにアクセスできます。 相対キーは、ファイルの先頭のアドレスに対するレコードの位置を表します。
- レコードは、相対キーを使用して挿入できます。 相対アドレスは、相対キーを使用して計算されます。
- 相対ファイルは、レコードへの最速のアクセスを提供します。
- このファイルシステムの主な欠点は、一部の中間レコードが欠落している場合、それらもスペースを占有することです。
構文
以下は、相対ファイル編成の構文です-
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT file-name ASSIGN TO dd-name-jcl
ORGANIZATION IS RELATIVE
RELATIVE KEY IS rec-key