Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 プログラミング・ガイド


ファイル編成および入出力装置

入出力装置によって異なりますが、ファイル編成には、順次、行順次、索引付き、または相対があります。 プログラムを設計するときに、使用する装置およびファイル・タイプを決定してください。

以下のファイル編成を選択することができます。

順次ファイル編成
レコードの配置は、ファイル作成時のレコードの入力順によって決まります。それぞれのレコード (最初のレコードは除く) には固有の先行レコードがあり、それぞれのレコード (最後のレコードは除く) には固有の後続レコードがあります。いったん確立されると、これらの関係は変わりません。

順次ファイルについて認められるアクセス (レコード伝送) モードは順次のみです。

行順次ファイル編成
行順次ファイルとは、階層ファイル・システム (HFS) 上にある順次ファイルであり、データとしては文字のみが入っています。各レコードは改行文字で終了します。

行順次ファイルについて認められるアクセス (レコード伝送) モードは順次のみです。

索引付きファイル編成
ファイル内のそれぞれのレコードには特殊フィールドが含まれ、そのフィールドの内容がレコード・キーを形成します。このキーの位置は各レコードで同じです。ファイルの論理配置は、ファイルの索引コンポーネントがレコード・キーによって順序付けて確立します。ファイル内のレコードの実際の物理配置は、COBOL プログラムにとっては重要ではありません。

索引付きファイルは、レコード・キーに加えて、代替索引を使用することもできます。これらのキーにより、レコードに関して別の論理順序付けを使用して、ファイルにアクセスできます。

索引付きファイルについて認められるアクセス (レコード伝送) モードは、順次、ランダム、または動的です。索引付きファイルの順次読み取りまたは書き込みの順序は、キー値の順序になります。

相対ファイル編成
ファイルのレコードは、ファイルの始まりからの相対位置によって識別されます。ファイルの最初のレコードの相対レコード番号は 1 で、10 番目のレコードの相対レコード番号は 10 というようになっています。

相対ファイルについて認められるアクセス (レコード伝送) モードは、順次、ランダム、または動的です。相対ファイルの順次読み取りまたは書き込みの順序は、相対レコード番号の順序です。

IBM Enterprise COBOL for z/OS では、レコードの保管および入出力装置からの取り出しに関するオペレーティング・システムへの要求は、QSAM と VSAM の 2 つのアクセス方式、および UNIX ファイル・システムによって処理されます。

データの保管にどの装置タイプを使用するかによって、使用できるファイル編成の選択に影響する可能性があります。 ファイル編成オプションで最も柔軟に選択できるのは、直接アクセス記憶装置の場合です。 順次専用の装置の場合、編成オプションは制限されますが、有用な他の特性 (テープの可搬性など) があります。

順次専用装置
端末装置、プリンター、カード読取装置、および穿孔装置は、一度に 1 行を処理するので、ユニット・レコード装置 と呼ばれます。したがって、ユニット・レコード装置との間で読み取りまたは書き込みを行うときは、プログラムで一度にレコードを 1 つずつ順次に 処理しなければなりません。

テープでは、レコードは順次に並べられるので、プログラムでそれらを順次に処理しなければなりません。 テープ・ファイルを処理するときは、QSAM 物理順次ファイルを使用してください。 テープのレコードは固定長でも可変長でも構いません。

直接アクセス・ストレージ・デバイス
直接アクセス・ストレージ・デバイスには多くのレコードが格納できます。 これらの装置に保管されるファイルのレコード配置によって、プログラムがデータを処理できる方法が 決まります。 直接アクセス装置を使用すると、以下の複数のファイル編成タイプが使用できるため、プログラムにおける柔軟性が高まります。
  • 順次 (VSAM または QSAM)
  • 行順次 (UNIX)
  • 索引付き (VSAM)
  • 相対 (VSAM)

関連タスク
ファイルの割り振り  
QSAM ファイルの処理  
VSAM ファイルの処理  
line-sequential ファイルの処理  
ファイル編成およびアクセス・モードの選択


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)