VSAM では、キー・シーケンスおよび入力順データ・セットで代替索引を定義できます。 この機能によって、基本索引以外の多くの方法でキー・シーケンス・データ・セットに アクセスできるようになります。 また、 入力順データ・セットに索引を付け、キーで、またはキー・シーケンスにアクセスできるようにもなります。 その結果、1 つの形式で作成されたデータに、さまざまな方法で アクセスできるようになります。 例えば、ある従業員ファイルが、個人番号、名前、および部門番号によって 索引付けられていたとします。
代替索引が作成されると、ユーザーは、 実際は代替索引パス (代替索引とデータ・セット間の接続として機能する) と された 3 番目のオブジェクトを通じてデータ・セットにアクセスします。
ここでは、2 つのタイプの代替索引が使用できます。固有キーと非固有キーです。 固有キー代替索引の場合は、それぞれのレコードが 別の代替キーを持っていなければなりません。非固有キー代替索引の場合は、 任意の数のレコードが同じ代替キーを持つことができます。上記の例では、 名前を使用している代替索引は 固有キー代替索引になります (それぞれの人が別の名前を持つと仮定します)。 部門番号を使用している代替索引は、 各部門に複数の人が所属することができるので非固有キー代替索引になります。
ほとんどの点で、 固有キー代替索引パスを通じてアクセスされたデータ・セットを、 基本索引を通じてアクセスされた KSDS の場合と同様に扱うことができます。 レコードはキーによって、または順次にアクセスでき、 ユーザーはレコードを更新し、さらに新規のレコードを追加できます。データ・セットが KSDS であれば、 レコードを削除し、更新したレコードの長さを変更できます。 制約事項と許可されている処理については、表 26 で示しています。 レコードを追加または削除したら、 データ・セットに関連したすべての索引が、新しい状況を反映するために変更されます (デフォルト)。
非固有キー代替索引パスを使用してデータ・セットにアクセスする場合、 アクセスされるレコードはキーとシーケンスによって判別されます。 キーを使用して位置決めを行えば、順次アクセスを続けることができます。 キーを使用して、最初のレコードにアクセスできます。 データ・セットを逆方向に読み取る場合は、 キーの順番のみが逆になります。 同じキーを持つレコードの順番は、 データ・セットをいずれの方向で読み取るにしても、同じままです。