定義されたキーごとに、完全かつ独立した索引が作成されます。この索引は、索引ノード レコードのツリーで構成されます。各索引ノード レコードには、索引ファイルに書き込まれているデータ レコードに関連する実際のキー値が含まれます。ノード内の各キー値は、従属索引ノード レコード (リーフ ノードの場合は、キーに関連付けられたデータ レコード) の開始位置を指します。
最上位レベルのノード レコードは、ルートと呼ばれます。
デフォルトのノード サイズは 1024 バイトですが、ファイルに定義されている最大キー サイズによって変更される場合もあります。最大キーが 238 バイトより大きい場合、ノード サイズは 4096 バイトになります。
注: デフォルトのノード サイズは変更可能です。XFHNODE 環境変数を、512、1024 (デフォルト)、または 4096 バイトのいずれかに設定します。ただし、XFHNODE を 512 に設定した場合に最大のキー値が 120 バイトを超えると、XFHNODE の値が 1024 で上書きされます。また、XFHNODE を 512 または 1024 に設定した場合に最大のキー値が 248 を超えると、XFHNODE の値が 4096 で上書きされます。XFHNODE の設定は、ファイルが作成された時点でのみ有効です。既存のファイルのノード サイズは変更できません。
 
索引ノード レコードには、次のフィールドがあります。
| サイズ | 
フィールドの説明 | 
| 2 | 
- ビット 15
 
- セキュリティ フラグ。この値は、後続のセキュリティ フラグの値と一致している必要があります。
 
- ビット 14 から 0
 
- このレコードの先頭を基準として、レコード内の最終キー値ブロックの末尾を指すポインター
 
 
 | 
| n | 
キー値ブロック | 
| ... | 
  | 
| n | 
キー値ブロック | 
| 1 | 
索引番号  値は、同じ索引ツリーに属するすべてのノードについて同じです。主キーの場合は、ゼロが含まれます。 
 | 
| 1 | 
- ビット 7
 
- セキュリティ フラグ。この値は、先行するセキュリティ フラグの値と一致している必要があります。
 
- ビット 6 から 0
 
- このノードのレベル。リーフ ノードはレベル 0 です。
 
 
 | 
 
 
キー値ブロックには、次のフィールドが含まれます。
| サイズ | 
フィールドの説明 | 
| 1 | 
先頭文字の圧縮が可能な場合のみ存在します。このフィールドには、前のキーと同じ先頭文字のカウントが含まれます。この値は、ノードの最初のキーについては常に 0 になります。 | 
| 1 | 
後続空白文字の圧縮が可能な場合のみ存在します。このキー値の後続空白文字のカウントが含まれます。 | 
| n | 
キー値 | 
| duplicate-occurrence | 
オプションの重複出現番号。詳細については、「索引ファイルの種類」のトピックを参照してください。このフィールドは、このキーに重複が許可されている場合にのみ存在します。これには、重複出現カウントが含まれます。格納されている重複する最初のキーでは、このフィールドは 1 に設定されます。2 番目の重複では、このフィールドが 2 に設定されます。 | 
| file-pointer-size | 
- MSB
 
- 重複キーの圧縮が有効な場合は、予約済みフィールドになります。次のキー値ブロックが現在のブロックと重複する場合に設定されます。
 
- 残りのビット
 
- リーフ ノードである場合は、データ ファイル内のデータ レコードのアドレスになります。それ以外の場合は、索引の従属索引ノード レコードのアドレスになります。
 
 
 |