索引付きファイルでは、各レコードが主キーを持っています。各レコードを互いに区別するために、主キーの値は各レコードに対して一意でなければなりません。レコードの主キーの値を指定すると、レコードをランダムに呼び出せます。索引付きファイルのレコードは順呼び出しも可能です。
索引付きファイルでは、主キーの他に、副キーと呼ばれる追加キーを指定できます。レコードの副キーの値は一意である必要はありません。
ファイルを索引付きファイルとして定義するには、COBOL プログラムでファイルに対して SELECT 句に ORGANIZATION IS INDEXED を指定します。また、RECORD KEY 句を使用して主キーも指定する必要があります。
select idxfile assign to "idx.dat" organization is indexed record key is idxfile-record-key.
実際には、ほとんどの索引付きファイルは、データ ファイル (レコードデータを含む) と索引ファイル (索引構造体を含む) という 2 つの別のファイルで構成されます。その場合、COBOL プログラムで指定した名前はデータ ファイル名になります。関連付けられる索引ファイルの名前は、データ ファイル名に .idx という拡張子が追加されて作成されます。他の用途に拡張子 .idx を使用しないでください。
索引はレコードの追加につれ大きくなる逆ツリー構造として構築されます。
索引付きファイルでは、ランダムに選択したレコードを検索するためのディスク アクセス回数は、主にファイルのレコード数とレコード キーの長さによって決まります。ファイルの入出力は、ファイルを順に読み込んでいく場合よりも高速になります。
すべての種類のファイルを定期的にバックアップすることをお奨めしますが、索引付きファイルでは、2 つのファイルのうちのどちらかのみが使用できなくなる場合 (媒体の破損など) があります。索引ファイルを損失した場合は、リビルド ユーティリティを使用して、データ ファイルから索引を復元して、障害復帰に必要な時間を短縮できます。詳細については、「リビルド」を参照してください。