Hitachi

ノンストップデータベース HiRDB Version 10 構造型データベース機能


2.3.11 二次インデクス【SD FMB】

SD FMBのSDBデータベースに定義する二次インデクス(レコード型内二次インデクス)について説明します。

なお,SD FMBのSDBデータベースに二次インデクスを定義する場合は,HiRDB Structured Data Access Facility Extension for XDM/SD typeをインストールしておく必要があります。

〈この項の構成〉

(1) レコード型内二次インデクス

レコード型内のレコードの検索に使用する二次インデクスを,レコード型内二次インデクスといいます。

(a) レコード型内二次インデクスを作成する目的

ルートレコード型の場合

シーケンシャルインデクスのキー以外の構成要素をキーとして,ルートレコード型内のレコードを検索したい場合,レコード型内二次インデクスを定義します。

レコード型内二次インデクスは,指定した構成要素の値をキーとして,キーの昇順に作成されます。シーケンシャルインデクスとレコード型内二次インデクスのレコードを検索する順序の違いを次の図に示します。

図2‒25 シーケンシャルインデクスとレコード型内二次インデクスのレコードを検索する順序の違い

[図データ]

子レコード型の場合

子レコード型内のレコードを検索したい場合,レコード型内二次インデクスを定義します。

HiRDB/SDでは,レコードを物理的な順序で検索することはできません。このため,子レコード型内のレコードを検索する場合は,レコード型内二次インデクスを定義する必要があります。レコード型内二次インデクスは,指定した構成要素の値をキーとして,キーの昇順に作成されます。

(b) レコード型内二次インデクスを作成するときの留意事項

  • レコードの格納,またはレコードの削除を実行すると,レコード型内二次インデクスが更新されます。また,レコードの更新を実行し,二次インデクスを定義した構成要素を更新した場合も,レコード型内二次インデクスが更新されます。レコード型内二次インデクスの数に比例して,処理のオーバヘッドが増加するため,必要となるレコード型内二次インデクスだけを定義してください。

  • HiRDB/SDでは,インデクスキー値は一意である必要があります。子レコードの順序に関係なく検索する場合は,一連番号を含めたデータベースキーに,レコード型内二次インデクスを定義してください。