COBOL-ファイル編成

ファイル編成は、レコードがファイル内でどのように編成されているかを示します。レコードへのアクセス効率を高めるために、ファイルにはさまざまな種類の組織があります。以下は、ファイル編成スキームのタイプです-

  • シーケンシャルファイル編成
  • インデックス付きシーケンシャルファイル編成
  • 相対的なファイル編成

このモジュールの構文は、それぞれの用語とともに言及されており、プログラムでの使用法のみを参照しています。これらの構文を使用する完全なプログラムについては、「ファイル処理動詞」の章で説明します。

シーケンシャルファイル編成

シーケンシャルファイルは、シーケンシャルな順序で保存およびアクセスされるレコードで構成されます。以下は、シーケンシャルファイル編成の主要な属性です-

  • レコードは順番に読み取ることができます。10番目のレコードを読み取るには、前の9つのレコードすべてを読み取る必要があります。

  • レコードは順番に書き込まれます。間に新しいレコードを挿入することはできません。新しいレコードは常にファイルの最後に挿入されます。

  • レコードをシーケンシャルファイルに配置した後は、レコードを削除、短縮、または延長することはできません。

  • レコードの順序は、一度挿入すると変更できません。

  • レコードの更新が可能です。新しいレコード長が古いレコード長と同じである場合、レコードを上書きできます。

  • 順次出力ファイルは、印刷に適したオプションです。

構文

以下は、シーケンシャルファイル編成の構文です-

INPUT-OUTPUT SECTION.
FILE-CONTROL.
   SELECT file-name ASSIGN TO dd-name-jcl
   ORGANIZATION IS SEQUENTIAL

インデックス付きシーケンシャルファイル編成

インデックス付きシーケンシャルファイルは、シーケンシャルにアクセスできるレコードで構成されます。直接アクセスも可能です。それは2つの部分で構成されています-

  • Data File シーケンシャルスキームのレコードが含まれます。

  • Index File データファイル内の主キーとそのアドレスが含まれます。

以下は、シーケンシャルファイル編成の主要な属性です-

  • レコードは、順次ファイル編成の場合と同じように、順次に読み取ることができます。

  • 主キーがわかっている場合は、レコードにランダムにアクセスできます。インデックスファイルはレコードのアドレスを取得するために使用され、レコードはデータファイルからフェッチされます。

  • ソートされたインデックスは、キー値をファイル内のレコードの位置に関連付けるこのファイルシステムで維持されます。

  • レコードをフェッチするために代替インデックスを作成することもできます。

構文

以下は、インデックス付きシーケンシャルファイル編成の構文です-

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

相対ファイル構成

相対ファイルは、順序付けられたレコードで構成されます relative address。以下は、相対的なファイル編成の主要な属性です-

  • レコードは、シーケンシャルおよびインデックス付きファイル編成の場合と同じように、シーケンシャルな順序で読み取ることができます。

  • レコードには、関係調を使用してアクセスできます。関係調は、ファイルの先頭のアドレスを基準にしたレコードの場所を表します。

  • レコードは関係調を使用して挿入できます。相対アドレスは、相対キーを使用して計算されます。

  • 相対ファイルは、レコードへの最速のアクセスを提供します。

  • このファイルシステムの主な欠点は、いくつかの中間レコードが欠落している場合、それらもスペースを占有することです。

構文

以下は、相対的なファイル編成の構文です-

INPUT-OUTPUT SECTION.
FILE-CONTROL.
   SELECT file-name ASSIGN TO dd-name-jcl
   ORGANIZATION IS RELATIVE
   RELATIVE KEY IS rec-key