VSAM データ・セットの物理編成は、他のアクセス方式で使用されている編成とは大きく異なっています。
VSAM データ・セットは、制御インターバル (CI) および制御域 (CA) で保持されます。CI と CA のサイズは、通常、アクセス方式によって判別され、それらが使用される方法について意識することはありません。
VSAM では、次の 3 種類のファイル編成を使用できます。
VSAM 入力順データ・セットは、QSAM 順次ファイルと同等です。レコードの順序は固定されます。
VSAM 固定長 RRDS では、レコードはストレージ内の一連の固定長スロットに入れられます。 各スロットは、相対レコード番号に関連付けられています。例えば、10 個のスロットが入っている固定長 RRDS では、最初のスロットは相対レコード番号 1 であり、10 番目のスロットは相対レコード番号 10 です。
VSAM 可変長 RRDS では、レコードはそれらの相対レコード番号に従って順序付けられます。 レコードの保管および検索は、相対レコード番号の設定に従って行われます。
本書では、VSAM 相対レコード・データ・セット (または RRDS) という用語は、特に区別する必要がない限り、固定長レコードを持つ相対レコード・データ・セットと可変長レコードを持つ相対レコード・データ・セットの両方を指すために使用されています。
次の表は、種々のタイプの VSAM データ・セットの特性を比較したものです。
| 特性 | 入力順データ・セット (ESDS) | キー順データ・セット (KSDS) | 相対レコード・データ・セット (RRDS) |
|---|---|---|---|
| レコードの順序 | 書き込まれた順序 | キー・フィールドによる照合シーケンス | 相対レコード番号の順序 |
| アクセス | 順次 | 索引を通してキー順 | 相対レコード番号順 (キーのように処理される) |
| 代替索引 | COBOL ではサポートされませんが、1 つ以上の代替索引を持つことができます。 | 1 つ以上の代替索引を持つことができます。 | 代替索引を持つことはできません。 |
| レコードの相対バイト・アドレス (RBA) と相対レコード番号 (RRN) | RBA を変更することはできません。 | RBA を変更できます。 | RRN を変更することはできません。 |
| レコード追加用のスペース | データ・セットの終わりにあるスペースが使用されます。 | レコードを挿入し、それらの長さを適切に変更するためには、分散フリー・スペースが使用されます。 | 固定長 RRDS の場合は、データ・セット内の空のスロットが使用されます。 可変長 RRDS の場合は、分散フリー・スペースが使用され、追加されるレコードの長さは適切に変更されます。 |
| レコード削除用のスペース | レコードは削除できませんが、それのスペースを同じ長さのレコードのために再利用することはできます。 | 削除または短縮されたレコードのスペースは、制御インターバルで自動的に再利用されます。 | 削除されたレコードのスペースを再利用することができます。 |
| スパン・レコード | スパン・レコードを持つことができます。 | スパン・レコードを持つことができます。 | スパン・レコードを持つことはできません。 |
| 作業ファイルとしての再利用 | 代替索引を持っているか、キー範囲と関連付けられているか、またはボリューム当たりのエクステントが 123 個を超えている場合を除き、作業ファイルとして再利用できます。 | 代替索引を持っているか、キー範囲と関連付けられているか、またはボリューム当たりのエクステントが 123 個を超えている場合を除き、作業ファイルとして再利用できます。 | 再利用することができます。 |