Vsam-ksds
VSAM-KSDS
KSDSはキーシーケンスデータセットとして知られています。 キーシーケンスデータセット(KSDS)は、ESDSやRRDSよりも複雑ですが、より便利で多用途です。 KSDSデータセットのDEFINE CLUSTERコマンド内に INDEXED をコーディングする必要があります。 KSDSクラスタは、次の2つのコンポーネントで構成されています-
- インデックス-KSDSクラスターのインデックスコンポーネントには、クラスター内のレコードのキー値のリストと、データコンポーネント内の対応するレコードへのポインターが含まれています。 インデックスコンポーネントは、KSDSレコードの物理アドレスを参照します。 これは、各レコードのキーを、データセット内のレコードの相対位置に関連付けます。 レコードが追加または削除されると、それに応じてこのインデックスが更新されます。
- データ-KSDSクラスターのデータコンポーネントには、実際のデータが含まれています。 KSDSクラスターのデータコンポーネントの各レコードには、同じ文字数のキーフィールドが含まれ、各レコードの同じ相対位置にあります。
KSDSの主要な機能は次のとおりです-
- KSDSデータセット内のレコードは、常にキーフィールドでソートされたままです。 レコードはキーごとに昇順、照合順に保存されます。
- レコードは連続してアクセスでき、直接アクセスすることもできます。
- レコードはキーを使用して識別されます。 各レコードのキーは、レコード内の事前定義された位置にあるフィールドです。 各キーは、KSDSデータセット内で一意である必要があります。 したがって、レコードの複製はできません。
- 新しいレコードが挿入されると、レコードの論理的な順序はキーフィールドの照合順序に依存します。
- KSDSデータセットのレコードは、固定長または可変長にすることができます。
- KSDSは、他のファイルと同様に COBOL プログラムで使用できます。 JCLでファイル名を指定し、KSDSファイルを使用してプログラム内で処理できます。 COBOLプログラムでは、ファイル構成を*インデックス付き*として指定し、KSDSデータセットで任意のアクセスモード*(シーケンシャル、ランダム、またはダイナミック)*を使用できます。
KSDSファイル構造
特定のレコードを検索するために、一意のキー値を指定します。 キー値はインデックスコンポーネントで検索されます。 キーが見つかると、データコンポーネントを参照する対応するメモリアドレスが取得されます。 メモリコンポーネントから、データコンポーネントに保存されている実際のデータを取得できます。 次の例は、インデックスとデータファイルの基本構造を示しています-
KSDSクラスターの定義
次の構文は、KSDSクラスターの作成中に使用できるパラメーターを示しています。
パラメーターの説明は、VSAM-クラスターモジュールで説明したものと同じです。
例
次の例は、IDCAMSユーティリティを使用してJCLでKSDSクラスターを作成する方法を示しています-
Mainframesサーバーで上記のJCLを実行する場合。 MAXCC = 0で実行し、MY.VSAM.KSDSFILE VSAMファイルを作成します。
KSDSクラスターの削除
KSDSクラスターは、IDCAMSユーティリティを使用して削除されます。 DELETEコマンドは、カタログからVSAMクラスターのエントリーを削除し、オプションでファイルを削除することにより、オブジェクトが占有するスペースを解放します。
上記の構文は、KSDSクラスターの削除中に使用できるパラメーターを示しています。 パラメーターの説明は、VSAM-クラスターモジュールで説明したものと同じです。
例
次の例は、IDCAMSユーティリティを使用してJCLでKSDSクラスターを削除する方法を示しています-
Mainframesサーバーで上記のJCLを実行する場合。 MAXCC = 0で実行され、MY.VSAM.KSDSFILE VSAMクラスターが削除されます。