Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, プログラミング・ガイド

領域データ・セットの定義と使用

この章では、領域データ・セットの編成、データ伝送ステートメント、および 領域データ・セットを定義する ENVIRONMENT オプションについて述べます。 次に、領域編成のタイプごとに、領域データ・セットの作成方法と領域データ・ セットへのアクセス方法について述べます。

領域編成のデータ・セットは 2 つの領域に分かれますが、それぞれの領域 は領域番号で識別され、またそのおのおのに、領域編成のタイプに 応じて、単数または複数のレコードを入れることができます。 これらの領域には、ゼロから始まる連続番号が付けられ、レコードは データ伝送ステートメント内に領域番号と 一緒にキーを指定することによってアクセスすることができます。

領域データ・セットは、直接アクセス装置に限られます。

データ・セットを領域編成にすれば、データ・セット内でのレコードの 物理配置を制御することができ、また、特定アプリケーションへのアクセス 時間を最適化することができます。 このような最適化は、連続編成または索引編成では使用すること はできません。それは、これらの編成では、昇順キー値に応じて、 連続レコードが厳密な物理順序または論理順序で書き込まれるからです。 これらの方式のいずれも直接アクセス・ストレージ・デバイスの特性を十分には利用しません。

領域データ・セットは、連続データ・セットまたは索引付きデータ・セットと 似た方法で、昇順の領域番号順にレコードを提示することによって作成することができます。 別の方法として、直接アクセスを用いることができ、その場合、 レコードはランダム順序で提示し、それらを事前にフォーマット設定された領域に直接挿入します。 領域データ・セットを作成した後は、INPUT または UPDATE だけ でなく SEQUENTIAL または DIRECT 属性を持ったファイルを使用してそのデータ・セットに アクセスすることができます。 データ・セットが SEQUENTIAL INPUT ファイルまたは SEQUENTIAL UPDATE ファイルと関連付けて いれば、領域番号またはキーを指定する必要はありません。 ファイルに DIRECT 属性があれば、無作為にレコードを検索、追加、 削除、および置換することができます。

領域データ・セット内のレコードは、有効なデータが入っている実際のレコードであるか、 またはダミー・レコードのいずれかです。

領域編成での、他のタイプのデータ・セット編成よりも大きな利点は、 ユーザーがレコードの相対配置を制御できることにあります。 適切なプログラミングにより、装置の能力および アプリケーションの要件に合わせレコード・アクセスを 最適化することができます。

領域データ・セットの直接アクセスは、索引付きデータ・セットのアクセス より早く行うことができますが、領域データ・セットには、順次処理は レコードをランダム順に提示することがあるという欠点があります。 順次検索の順序は必ずしもレコードが提示される順序ではなく、 また必ずしも相対キー値と関連する必要もありません。

表 21 は、領域データ・セットを作成し、 また領域データ・セットへアクセスできるためのデータ伝送ステートメント とオプションをリストしています。

表 21. 領域データ・セットの作成と領域データ・セットへのアクセスで使用できるステートメントとオプション
ファイル
宣言1
有効ステートメント、2 および
必須オプション
指定できるその他の
オプション
SEQUENTIAL OUTPUT
WRITE FILE(file-reference)
FROM(reference)
KEYFROM(expression);
 
LOCATE 基底付き変数
FROM(file-reference)
KEYFROM(expression);
 
 
 
 
SET(pointer-reference)
SEQUENTIAL INPUT
READ FILE(file-reference)
INTO(reference);
 
READ FILE(file-reference)
SET(pointer-reference);
 
READ FILE(file-reference)
IGNORE(expression);
KEYTO(reference)
 
 
KEYTO(reference)
SEQUENTIAL UPDATE3
READ FILE(file-reference)
INTO(reference);
 
READ FILE(file-reference)
SET(pointer-reference);
 
READ FILE(file-reference)
IGNORE(expression);
 
REWRITE FILE(file-reference);
KEYTO(reference)
 
 
KEYTO(reference)
 
 
 
 
 
FROM(reference)
DIRECT OUTPUT
WRITE FILE(file-reference)
FROM(reference)
KEYFROM(expression);
 
DIRECT INPUT
READ FILE(file-reference)
INTO(reference)
KEY(expression);
 
DIRECT UPDATE
READ FILE(file-reference)
INTO(reference)
KEY(expression);
 
REWRITE FILE(file-reference)
FROM(reference)
KEY(expression);
 
WRITE FILE(file-reference)
FROM(reference)
KEYFROM(expression);
 
DELETE FILE(file-reference)
KEY(expression);
 
注:
  1. 完全なファイル宣言には属性 FILE、 RECORD、および ENVIRONMENT が含まれています。 オプション KEY、KEYFROM、あるいは KEYTO のいずれかを使用する場合は、 属性 KEYED も含めなくてはなりません。
  2. ステートメント READ FILE(file-reference); は、 ステートメント READ FILE(file-reference) IGNORE(1); と同等です。
  3. 新たにデータ・セットを作成するときには、ファイルに UPDATE 属性があってはなりません。

Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)