JPH0243676A - 索引検索方式 - Google Patents

索引検索方式

Info

Publication number
JPH0243676A
JPH0243676A JP63194803A JP19480388A JPH0243676A JP H0243676 A JPH0243676 A JP H0243676A JP 63194803 A JP63194803 A JP 63194803A JP 19480388 A JP19480388 A JP 19480388A JP H0243676 A JPH0243676 A JP H0243676A
Authority
JP
Japan
Prior art keywords
index
block
search
key value
blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP63194803A
Other languages
English (en)
Inventor
Takao Mugitani
麦谷 尊雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP63194803A priority Critical patent/JPH0243676A/ja
Publication of JPH0243676A publication Critical patent/JPH0243676A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野] 本発明は索引検索方式に関し、特にデータベース管理シ
ステムにおいて二次記憶装置上に構築された複数レベル
の索引ブロックから構成される階層的な木構造の索引を
用いてレコードの検索を行う方式に関するものである。
〔従来の技術〕
データベースのレコードを検索する方式として、Bツリ
ー等の複数レベルの索引ブロックから構成される階層的
な木構造の索引をデータベースと同様に二次記憶装置上
に構築しておき、その索引を用いて検索を行うものが一
般に知られている。また、この方式を更に細分すれば、
従来、■全ての検索要求に対して最上位索引ブロフクか
ら順次検索を行うもの ■n回前までの検索で使用された最下位索引ブロックを
主記憶装置上に退避させておき、今回の検索要求に対し
て可能ならばこの索引ブロックを使い、それ以外は最上
位索引ブロックから順次検索を行うもの とがある。
しかして、■の方式にあっては、二次記憶装置より最上
位から順次に索引プロ、りを読み出し、検索要求に含ま
れる索引キー値との順序関係を判断して順次下位の索引
ブロックへと辿って行き、該当する最下位索引ブロック
を見つけ出すものである。
また、■の方式も基本的には■と同様であるが、先行す
る検索で既に使用して主記憶装置上に退避された索引ブ
ロックが使用可能な場合、最上位索引ブロックからその
索引ブロフクまでの検索が省略できる点で効率的になっ
ている。
(発明が解決しようとする課題) ところで、この種の二次記憶装置上に構築した索引を使
用する検索方式にあっては、処理の高速化を図る上で索
引ブロックの参照回数の削減は重要な課題であり、索引
ブロックへの参照を1つ減らすだけで検索時間が大幅に
短縮できるものである。すなわち、索引検索システムに
おいて主たる動作を行う中央処理装置および主記憶装置
の処理速度に比較して二次記憶装置への入出力動作の処
理速度は極めて遅いため、索引ブロックを参照するため
に二次記憶装置からその索引ブロックを読み込んでくる
ための入出力動作に要するオーバーへ・ンド・タイムが
無視できないためである。
このような観点より、前述した従来の検索方式には次の
ような問題点があった6 (1)従来の方式■では、常に最上位索引ブロックから
検索を開始するため、直前の検索で同じ索引キー値を使
っているような場合であっても前回の検索過程で得られ
た情報を利用することはできず、結果として索引ブロッ
クの参照回数が非常に多くなり、検索時間が長くなる。
(2)従来の方式■では、従来の方式■の問題点を解決
するため、n回前までの検索で使用された最下位索引ブ
ロックを再利用することを可能としているが、全ての検
索で主記憶装置上に退避された索引ブロックが使用でき
るとは限らず、索引ブロックの参照回数を有効に減らす
ことはできない。なお、退避させる索引ブロックの数n
を増やすことによりこの問題はある程度解決できるが、
記憶に多くの領域を必要とする索引ブロックを数多く主
記憶装置上に退避させることとなることから、高価な主
記憶装置の有効利用という観点から問題がある。
本発明は上記の点に鑑み堤案されたものであり、その目
的とするところは、主記憶装置を無駄に使用することな
く索引ブロックの参照回数を減らして検索時間の短縮化
を図れる索引検索方式を提供することにある。
〔課題を解決するための手段〕
本発明は上記の目的を達成するため、二次記憶装置上に
構築され複数レベルの索引プロ、りから構成される階層
的な木構造の索引を用いてデータベースのレコードを検
索する方式において、索引を構成する全ての最下位索引
ブロックのブロフク番号と索引で定められた索引キー値
の順序関係に従って各最下位索引ブロックの次に位置す
る最下位索引ブロックのブロック番号とを組にして記憶
する次ブロックテーブルと、以前に検索された索引キー
値とその検索で参照された最下位索引ブロックのブロッ
ク番号とを組にして記憶するキャッシュ索引とを設け、 検索要求に対し、前記キャッシュ索引に記憶された索引
キー値と最下位索引ブロックのブロック番号との組を参
照し、索引で定められた索引キー値の順序関係に従って
検索要求の索引キー値の直前に位置する索引キー値に対
応する第1のブロック番号と検索要求の索引キー値の直
後に位置する索引キー値に対応する第2のブロック番号
とを獲得し、 前記次ブロックテーブルを参照して第1のブロック番号
自身あるいは第1のブロック番号を有する索引ブロンク
の次に位置する索引ブロックのブロック番号を順次獲得
し、それらのブロック番号が第2のブロック番号に一致
するまで参照を継続して第1のブロック番号を有する索
引ブロックと第2のブロック番号を有する索引ブロック
との間の横検索ブロック数を計数し、 最上位索引ブロックから最下位索引ブロックまでの深さ
を示す索引ブロックレベルと横検索ブロック数とを比較
して、横検索ブロック数が小さければ第1のブロック番
号を有する索引ブロックから第2のブロック番号を有す
る索引ブロックに向かって横方向に検索を実行し、索引
ブロックレベルが小さければ最上位索引ブロックから縦
方向に検索を実行するようにしている。
すなわち、以前の検索結果を積極的に利用した横方向の
検索と従来通りの縦方向の検索とで、いずれが二次記憶
装置から索引ブロックの読み込み回数が少なくなるかを
判断し、少ない方で検索を実行するようにしたものであ
る。
(作用〕 本発明の索引検索方式にあっては、検索要求に対し、キ
ャッシュ索引に記憶された索引キー値とその索引キー値
に対応する以前の検索における最下位索引ブロックのブ
ロック番号との姐が参照され、索引で定められた索引キ
ー値の順序関係に従って検索要求の索引キー値の直前に
位置する索引キー値に対応する第1のブロック番号と検
索要求の索引キー値の直後に位置する索引キー値に対応
する第2のブロック番号とが獲得され、次いで、次ブロ
ックテーブルが参照されて第1のブロック番号自身ある
いは第1のブロック番号を有する索引ブロックの次に位
置する索引ブロックのプロ。
り番号が順次獲得され、それらのブロック番号が第2の
ブロック番号に一致するまで参照が継続されて第1のブ
ロック番号を有する索引ブロックと第2のブロック番号
を有する索引ブロックとの間の横検索ブロック数が計数
され、最上位索引ブロックから最下位索引ブロックまで
の深さを示す索引ブロックレベルと横検索ブロック数と
が比較されて、横検索ブロック数が小さければ第1のブ
ロック番号を有する索引ブロックから第2のブロック番
号を有する索引ブロックに向かって横方向に検索が実行
され、索引ブロックレベルが小さければ最上位索引ブロ
ックから縦方向に検索が実行される。
〔実施例〕
以下、本発明の実施例につき図面を参照して詳細に説明
する。
第1図は本発明の索引検索方式を通用した索引検索シス
テムの一実施例の構成図である。第1図において、1は
通常のデータベース管理システムで見られるデータベー
ス2および索引3を格納しである二次記憶装置であり、
この二次記憶装置1と次ブロックテーブル4とキャッシ
ュ索引5と索引検索手段6と検索方向決定手段7とによ
り索引検索システムが構成されている。ここで、二次記
憶装置1に格納された索引3は階層的な木構造を持ち、
複数レベルの索引ブロックから構成され、各索引ブロッ
クは正の整数の一意なブロック番号を有するものである
。また、次ブロックテーブル4は索引3を構成する全て
の最下位索引ブロックのブロック番号と索引3で定めら
れた索引キー値の順序関係に従って各最下位索引ブロッ
クの次に位置する最下位索引ブロックのブロック番号と
を組にして記憶しておくものであり、キャッシュ索引5
は以前に検索された索引キー値とその検索で参照された
最下位索引ブロックのブロック番号とを組にして記憶し
ておくものである。なお、次ブロックテーブル4とキャ
ッシュ索引5の内容は当初は二次記憶装置1に格納され
ており、システム起動時に二次記憶装置1から索引検索
システムの図示しない主記憶装置に読み込まれて形成さ
れるものである。
一方、索引検索手段6は利用者等から与えられる検索要
求8を解析し、検索要求8に含まれる索引キー値を指定
して検索方向決定手段7を呼び出し、検索方向決定手段
7によって決定された検索方向(横方向、縦方向)に従
って索引3の検索を実行して目的の索引キー値を有する
データベースレコードが格納されている二次記憶装置1
上のレコードブロック番号を獲得し、要求元に獲得した
レコードブロック番号を検索結果9として返すと共に、
この検索で使われた索引キー値と、最下位索引ブロフク
のブロック番号とをキャンシュ索引5に登録する機能を
有するものである。なお、横方向検索とは所定の最下位
索引ブロックから索引3で定められた索引キー値の順序
関係に従って当該最下位索引ブロックの次に位置する最
下位索引ブロックを順次検索して行くものであり、縦方
向検索とは従来例の項で説明したように、最上位索引ブ
ロックから下位に向かって検索を実行するものである0
次いで、検索方向決定手段7は索引検索手段6に呼び出
されて起動するものであり、次ブロックテーブル4とキ
ャッシュ索引5とを参照し、指定された索引キー値の検
索で横方向と縦方向の検索のうちアクセスする必要のあ
るブロック数の少ない方に決定を行い、呼び出し元であ
る索引検索手段6に結果を返す機能を有するものである
。なお、横方向検索の場合には検索を開始するブロック
番号(横方向検索開始ブロック番号)も返送するもので
ある。
第2図は次ブロックテーブル4の論理的構成を示した図
であり、次ブロックテーブル4は、索引3を構成する全
ての最下位索引ブロックのブロック番号と、索引3で定
められた索引キー値の順序関係に従って、各最下位索引
ブロフクの次に位置する最下位索引ブロフクのブロック
番号(次ブロック番号)とを含んでいる。なお、次に位
置する索引ブロフクを持たない終端の最下位索引ブロッ
クの次ブロック番号には負の整数(無効なブロック番号
)が設定される。また、実際の次ブロックテーブル4の
構成法としては、例えば、ハツシング技法等の高速化の
ための既知の技法を応用することができる。
次いで、第3図はキャッシュ索引5の論理的構成を示し
た図であり、キャッシュ索引5はn個のエントリから構
成され、各エントリには以前の検索で用いられた索引キ
ー値とその索引キー値の検索で参照された最下位索引ブ
ロックのブロック番号とが格納されるようになっている
。なお、実際のキャッシュ索引5は、それに含まれるエ
ントリに関し、上記の次ブロックテーブル4と同様に高
速化のための既知の技法や、先入れ先出し制御のために
例えば両方向チエインによる連結等の既知の技法を応用
して構成することができる。
第4図は索引検索手段6の処理の流れを示すフローチャ
ートであり、以下、第4図を参照して第1図の実施例の
概略動作を説明する。
利用者等から検索要求8が与えられると、索引検索手段
6はその検索要求8を解析して要求された索引キー値を
得る(ステップ401)、次いで、この索引キー値を指
定して検索方向決定手段7を呼び出しくステップ402
)、検索方向決定手段7によって決定された方向に従っ
て異なった検索の処理に移行する(ステップ403)、
l1ffi方向検索の場合(ステップ403でNoの場
合)は従来通り最上位索引ブロックから検索を行い(ス
テ。
ブ404)、目的の索引キー値を有するデータベースレ
コードが格納されている二次記憶装置1上のレコードブ
ロック番号を得る(ステップ409)。
また、横方向検索の場合(ステップ403でYESの場
合)は先ず変数Bに検索方向決定手段7から得た横方向
検索開始ブロック番号を設定しくステップ405)、変
数Bに対応する索引プロソクを二次記憶装置1から読み
込む(ステップ406)。
次に、この索引ブロックに目的の索引キー値が含まれて
いるか否かを判定しくステップ4C1?)、含まれてい
る場合は目的の索引キー値を有するデータベースレコー
ドが格納されている二次記憶装置1上のレコードブロッ
ク番号を得る(ステップ409)。また、変数Bに対応
する索引ブロックに目的の索引キー値が含まれていない
場合(ステップ407でNOの場合)は、次ブロックテ
ーブル4を用いて変数Bをその索引ブロックの次に位置
する最下位索引ブロックのブロック番号に設定しくステ
ップ408)、ステップ406に戻って処理を繰り返す
。次いで、ステップ409の後、最も長い間参照されな
かったエントリをキャッシュ索引5から削除しくステッ
プ410)、今回の検索に使用された索引キー値と今回
の検索で参照された最下位索引ブロックのブロック番号
とから構成されるエントリをキャッシュ索引5に追加す
る(ステップ411)。そして、検索結果9としてステ
ップ409で獲得したレコードブロック番号を要求元に
返しくステップ41.2L処理を終了する。
第5図は検索方向決定手段7の処理の流れを示すフロー
チャートであり、以下、第5図に沿って検索方向の決定
にかかる動作を説明する。
検索方向決定手段7が起動されると、先ず、索引検索手
段6によって指定された索引キー値(目的キー)よりも
小さい索引キー値(x)を有するエントリがキャッシュ
索引5に存在するか否かを判定しくステップ501L存
在する場合はその中で最も大きい索引キー値を持つエン
トリのブロン・り番号を変数B、B、に設定する(ステ
ップ502)、存在しない場合は縦方向の検索に決定し
くステップ512)、処理を終了する。次いで、索引検
索手段6によって指定された索引キー値(目的キー)よ
りも大きい索引キー値(y)を有するエントリがキャッ
シュ索引5に存在するか否かを判定しくステップ503
)、存在する場合はその中で最も小さい索引キー値を持
つエンドすのブロック番号を変数B、に設定する(ステ
ップ504)。存在しない場合は縦方向の検索に決定し
くステップ512)、処理を終了する。
次に、横検索ブロック数として「1ノを設定しくステッ
プ505)、変数B、、B、に設定されているブロック
番号を比較する(ステップ506)。
変数B、、B、のブロック番号が同一の場合はステップ
509に分岐する。変数B、、B、のブロック番号が異
なる場合は次プロ/クチープル4を参照し、ブロック番
号Bつを有する索引ブロックの次に位置する索引ブロッ
クのブロック番号を変数Bつに設定しくステップ507
L横検索ブロック数に「1」を加え(ステップ508)
、ステップ506に戻って処理を繰り返す、ステップ5
09では横検索ブロック数と、索引3の構造から予めわ
かっている最上位索引ブロックから最下位索引ブロック
までの深さを示す索引ブロックレベルとを比較し、横検
索ブロック数が索引ブロックレベルよりも小さい場合は
横方向検索に決定しくステップ510)、それ以外の場
合には縦方向検索に決定しくステップ512)、処理を
終了する。また、横方向検索に決定した場合には横方向
検索開始ブロック番号に変数Bの値を設定しくステップ
511)、処理を終了する。
なお、上記の処理で求まる横検索ブロック数が実際の横
方向検索で二次記憶装置1から索引ブロックの読み込み
が必要となる回数の最大値を示し、索引ブロックレベル
は実際の縦方向検索で二次記憶装置1から索引ブロック
の読み込みが行われる回数を示している。
℃発明の効果〕 以上説明したように、本発明の索引検索方式にあっては
、キャッシュ索引に蓄積された以前の検索結果を用いる
横方向検索と、従来通りの縦方向検索とのうち読み込む
索引ブロックの少ない方で検索が行われるため、検索の
際に参照する必要のある索引ブロックの数を削減するこ
とができ、二次記憶装置の入出力動作を減らして検索時
間を大幅に短縮することができる効果がある。また、次
ブロックテーブルとキャッシュ索引とが必要とする主記
憶装置上の領域は、従来の索引ブロック全体を主記憶装
置上に退避する場合に比較して極めて少ないため、高価
な主記憶装置を有効利用することができ、以前に得られ
た検索結果も有効に再利用できるものである。
なお、本発明の索引検索方式はBツリ一方式等の検索に
おいて検索される索引キー値が特定の値域に集中してい
るような場合に特に有効である。
【図面の簡単な説明】
第1図は本発明の索引検索方式を適用した索引検索シス
テムの一実施例の構成を示す図、第2回は第1図におけ
る次ブロックテーブルの論理的構成を示す図、 第3図は第1図におけるキャッシュ索引の論理的構成を
示す図、 第4図は第1図における索引検索手段の処理を示すフロ
ーチャートおよび、 第5図は第1図における検索方向決定手段の処理を示す
フローチャートである。 図において、 1・・・二次記憶装置 実施例の構成図 第1図 2・・・データベース 3・・・索引 4・・・次ブロックテーブル 5・・・キャッシュ索引 6・−・索引検索手段 7・・・検索方向決定手段 8・・・検索要求 9・・・検索結果

Claims (1)

  1. 【特許請求の範囲】 二次記憶装置上に構築され複数レベルの索引ブロックか
    ら構成される階層的な木構造の索引を用いてデータベー
    スのレコードを検索する方式において、 索引を構成する全ての最下位索引ブロックのブロック番
    号と索引で定められた索引キー値の順序関係に従って各
    最下位索引ブロックの次に位置する最下位索引ブロック
    のブロック番号とを組にして記憶する次ブロックテーブ
    ルと、以前に検索された索引キー値とその検索で参照さ
    れた最下位索引ブロックのブロック番号とを組にして記
    憶するキャッシュ索引とを設け、 検索要求に対し、前記キャッシュ索引に記憶された索引
    キー値と最下位索引ブロックのブロック番号との組を参
    照し、索引で定められた索引キー値の順序関係に従って
    検索要求の索引キー値の直前に位置する索引キー値に対
    応する第1のブロック番号と検索要求の索引キー値の直
    後に位置する索引キー値に対応する第2のブロック番号
    とを獲得し、 前記次ブロックテーブルを参照して第1のブロック番号
    自身あるいは第1のブロック番号を有する索引ブロック
    の次に位置する索引ブロックのブロック番号を順次獲得
    し、それらのブロック番号が第2のブロック番号に一致
    するまで参照を継続して第1のブロック番号を有する索
    引ブロックと第2のブロック番号を有する索引ブロック
    との間の横検索ブロック数を計数し、 最上位索引ブロックから最下位索引ブロックまでの深さ
    を示す索引ブロックレベルと横検索ブロック数とを比較
    して、横検索ブロック数が小さければ第1のブロック番
    号を有する索引ブロックから第2のブロック番号を有す
    る索引ブロックに向かって横方向に検索を実行し、索引
    ブロックレベルが小さければ最上位索引ブロックから縦
    方向に検索を実行することを特徴とする索引検索方式。
JP63194803A 1988-08-04 1988-08-04 索引検索方式 Pending JPH0243676A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63194803A JPH0243676A (ja) 1988-08-04 1988-08-04 索引検索方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63194803A JPH0243676A (ja) 1988-08-04 1988-08-04 索引検索方式

Publications (1)

Publication Number Publication Date
JPH0243676A true JPH0243676A (ja) 1990-02-14

Family

ID=16330521

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63194803A Pending JPH0243676A (ja) 1988-08-04 1988-08-04 索引検索方式

Country Status (1)

Country Link
JP (1) JPH0243676A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008177949A (ja) * 2007-01-19 2008-07-31 Seiko Epson Corp 認証装置及び方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008177949A (ja) * 2007-01-19 2008-07-31 Seiko Epson Corp 認証装置及び方法

Similar Documents

Publication Publication Date Title
CN110362572B (zh) 一种基于列式存储的时序数据库系统
US5852821A (en) High-speed data base query method and apparatus
US20100211577A1 (en) Database processing system and method
US20080104102A1 (en) Providing a partially sorted index
US7263520B2 (en) Fast aggregation of compressed data using full table scans
RU2005120728A (ru) Системы и способы осуществляемого посредством доступа на уровне мелких структурных единиц управления данными, хранящимися в реляционных базах данных
US20070282798A1 (en) Relational Database Architecture with Dynamic Load Capability
US8583655B2 (en) Using an inverted index to produce an answer to a query
JP2004518226A (ja) データベースシステムおよびクエリオプティマイザ
US20170116242A1 (en) Evaluating sql expressions on dictionary encoded vectors
Litwin et al. The bounded disorder access method
CN112069207A (zh) 一种多表联合查询效率提升方法
JPH0243676A (ja) 索引検索方式
JPH02297670A (ja) データベース検索方式
JPH01279318A (ja) 索引検索方式
KR20010109945A (ko) 비공간검색조건이 포함된 케이-최근접 질의를 위한알에스트리구조 및 점증적 최근접 방법
Bizarro et al. Adding a performance-oriented perspective to data warehouse design
JPH05250414A (ja) キーワード検索方式
KR100333682B1 (ko) 객체-관계 데이터베이스 관리 시스템에서의 역 포인터를이용한 그루핑 연산 방법 및 그 방법에서 생성된 그룹테이블을 이용한 집계 함수 획득 방법
JPH0456344B2 (ja)
JP2508607B2 (ja) ファイルシステム管理方法
JPH04276828A (ja) 知識処理システムの仮説管理方式
Lee et al. Adaptive selection of access path and join method
JP2001331510A (ja) データベースの検索方法
JPH103414A (ja) データ格納制御方式