JPH01279318A - 索引検索方式 - Google Patents

索引検索方式

Info

Publication number
JPH01279318A
JPH01279318A JP63108894A JP10889488A JPH01279318A JP H01279318 A JPH01279318 A JP H01279318A JP 63108894 A JP63108894 A JP 63108894A JP 10889488 A JP10889488 A JP 10889488A JP H01279318 A JPH01279318 A JP H01279318A
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
JP63108894A
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 JP63108894A priority Critical patent/JPH01279318A/ja
Publication of JPH01279318A publication Critical patent/JPH01279318A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は索引検索方式に関し、特にデータベース管理シ
ステムにおいて二次記憶装置上に構築された複数レベル
の索引ブロックから構成される階層的な木構造の索引を
用いてレコードの検索を行う方式に関するものである。
〔従来の技術〕
データベースのレコードを検索する方式として、Bツリ
ー等の複数レベルの索引ブロックから構成される階層的
な木構造の索引をデータベースと同様に二次記憶装置上
に構築しておき、その索引を用いて検索を行うものが一
般に知られている。また、この方式を更に細分すれば、
従来、■全ての検索要求に対して最上位の索引ブロック
から順次検索を行うもの ■n回前までの検索で使用された最下位索引ブロックを
主記憶装置上に退避させておき、今回の検索要求に対し
て可能ならばこの索引ブロックを使い、それ以外は最上
位の索引ブロックから順次検索を行うもの とがある。
しかして、■の方式にあっては、二次記憶装置より最上
位から順次に索引ブロックを読み出し、検索要求に含ま
れる索引キー値との同一性を判断して順次下位の索引ブ
ロックへと辿って行き、該当する索引ブロックを見つけ
出すものである。
また、■の方式も基本的には■と同様であるが、先行す
る検索で既に使用して主記憶装置上に退避された索引ブ
ロックが使用可能な場合、最上位の索引ブロックからそ
の索引ブロックまでの検索が省略できる点で効率的にな
っている。
〔発明が解決しようとする課題〕
ところで、この種の二次記憶装置上に構築した索引を使
用する検索方式にあっては、処理の高速化を図る上で索
引ブロックの参照回数の削減は重要な課題であり、索引
ブロックへの参照を1つ減らすだけで検索時間が大幅に
短縮できるものであった。すなわち、索引検索システム
において主たる動作を行う中央処理装置の処理速度に比
較して二次記憶装置への入出力動作の処理速度は極めて
遅いため、索引ブロックを参照するために二次記憶装置
からその索引ブロックを読み込んでくるための入出力動
作に要するオーバーヘッド・タイムが無視できないため
である。
このような観点より、前述した従来の検索方式には次の
ような問題点があった。
(1)従来の方式■では、常に最上位の索引ブロックか
ら検索を開始するため、直前の検索で同じ索引キー値を
使っているような場合であっても前回の検索過程で得ら
れた情報を利用することはできず、結果として索引ブロ
ックの参照回数が非常に多くなり、検索時間が長くなる
(2)従来の方式■では、従来の方式のの問題点を解決
するため、n回前までの検索で使用された最下位索引ブ
ロックを再利用することを可能としているが、全ての検
索で主記憶装置上に退避された索引ブロックが使用でき
るとは限らず、索引ブロックの参照回数を有効に減らす
ことはできない。なお、退避させる索引ブロックの数n
を増やすことによりこの問題はある程度解決できるが、
記憶に多くの領域を必要とする索引ブロックを数多く主
記憶装置上に退避させることとなることから、高価な主
記憶装置の有効利用という観点から問題がある。
本発明は上記の点に鑑み提案されたものであり、その目
的とするところは、主記憶装置を無駄に使用することな
く索引ブロックの参照回数を減らして検索時間の短縮化
を図れる索引検索方式を提供することにある。
〔課題を解決するための手段〕
本発明は上記の目的を達成するため、二次記憶装置上に
構築され複数レベルの索引ブロックから構成される階層
的な木構造の索引を用いてデータベースのレコードを検
索する方式において、索引を構成する全ての索引ブロッ
クのブロック番号と各索引ブロックの親ブロックのブロ
ック番号とを記憶する親ブロックテーブルと、以前に検
索された索引キー値とその検索で参照された最下位索引
ブロックのブロック番号とを記憶するキャッシュ索引と
を設け、検索要求に対し、キャッシュ索引に記憶された
索引キー値と最下位索引ブロックのブロック番号とを参
照し、索引で定められた索引キー値の順序関係に従って
検索要求の索引キー値の直前に位置する索引キー値に対
応する第1のブロック番号と検索要求の索引キー値の直
後に位置する索引キー値に対応する第2のブロック番号
とを獲得し、親ブロックテーブルを参照して第1および
第2のブロック番号自身あるいは第1および第2のブロ
ック番号を有する索引ブロックの上位の索引ブロックの
ブロック番号を順次獲得し、それらのブロック番号が一
致するか、あるいはいずれか一方が最上位の索引ブロッ
クのブロック番号に一致するまで参照を継続し、一致し
たブロック番号の索引ブロックから検索を行うようにし
ている。
〔作用〕
本発明の索引検索方式にあっては、検索要求に対し、キ
ャッシュ索引に記憶された索引キー値とその索引キー値
に対応する以前の検索における最下位索引ブロックのブ
ロック番号とが参照され、索引で定められた索引キー値
の順序関係に従って検索要求の索引キー値の直前に位置
する索引キー値に対応する第1のブロック番号と検索要
求の索引キー値の直後に位置する索引キー値に対応する
第2のブロック番号とが獲得され、親ブロックテーブル
が参照されて第1および第2のブロック番号自身あるい
は第1および第2のブロック番号を有する索引ブロック
の上位の索引ブロックのブロック番号が順次獲得され、
それらのブロック番号が一致するか、あるいはいずれか
一方が最上位の索引ブロックのブロック番号に一致する
まで参照が継続され、一致したブロック番号の索引ブロ
ックから検索が行われる。
上記の検索が開始される索引ブロックは、索引キー値の
順序関係に従い検索要求の索引キー値の前後に最も近く
位置する既に検索された結果である最下位索引ブロック
から後戻りして見つけ出された分岐点であるため、その
分岐点における最下位索引ブロックから下位に検索を行
うことで検索要求の索引キー値に対する検索が達成され
る。
〔実施例〕
以下、本発明の実施例につき図面を参照して詳細に説明
する。
第1図は本発明の索引検索方式の一実施例である索引検
索システムの構成図である。第1図において、1は通常
のデータベース管理システムで見られるデータベース2
および索引3を格納しである二次記憶装置であり、この
二次記憶装置1と親ブロックテーブル4とキャッシュ索
引5と索引検索手段6と検索開始ブロック決定手段7と
により索引検索システムが構成されている。ここで、二
次記憶装置1に格納された索引3は階層的な木構造を持
ち、複数レベルの索引ブロックから構成され、各索引ブ
ロックは正の整数の一意なブロック番号を持つものであ
る。また、親ブロックテーブル4は索引3を構成する全
ての索引ブロックのブロック番号と各索引ブロックの親
ブロックのブロック番号とを記憶しておくものであり、
キャッシュ索引5は以前に検索された索引キー値とその
検索で参照された最下位索引ブロックのブロック番号と
を記憶しておくものである。なお、親ブロックテーブル
4とキャッシュ索引5の内容は当初は二次記憶装置1に
格納されており、システム起動時に二次記憶装置1から
索引検索システムの主記憶装置に読み込まれて形成され
るものである。
一方、索引検索手段6は利用者から与えられる検索要求
8を解析し、検索要求8に含まれる索引キー値を指定し
て検索開始ブロック決定手段7を呼び出し、検索開始ブ
ロック決定手段7が返すブロック番号を持つ索引ブロッ
クから索引3の検索を開始し、この検索で使われた索引
キー値と、最下位索引ブロックのブロック番号とをキャ
ッシュ索引5に登録する機能を有するものである。また
、検索開始ブロック決定手段7は索引検索手段6に呼び
出された際に起動するものであり、親ブロックテーブル
4とキャッシュ索引5とを参照し、指定された索引キー
値を検索すべく、検索を開始すべき索引ブロックのブロ
ック番号を決定して呼び出し元である索引検索手段6に
返す機能を有するものである。
第2図は親ブロックテーブル4の論理的構成を示した図
であり、親ブロックテーブル4は、索引3を構成する全
ての索引ブロックのブロック番号と、その索引ブロック
の索引3におけるレベルを示すレベル識別子と、その索
引ブロックの親ブロックのブロック番号とを含んでいる
。なお、最上位の索引ブロックのレベル識別子には1を
設定し、以下の索引ブロックでは、索引におけるレヘル
が1つ下がるごとに1を加算するものとする。また、最
上位の索引ブロックに親ブロックは存在しないため、そ
のブロック番号には負の整数(無効なブロック番号)が
設定される。なお、実際の親プロンクチープル4の構成
法としては、例えば、ハ。
シング技法等の高速化のための既知の技法を応用するこ
とができる。
次いで、第3図はキャッシュ索引5の論理的構成を示し
た図であり、キャッシュ索引5はn個のエントリから構
成され、各エントリには索引キー値とその索引キー値の
検索で参照された最下位索引ブロックのブロック番号と
が格納されるようになっている。なお、実際のキャッシ
ュ索引5は、それに含まれるエントリに関し、上記の親
ブロックテーブル4と同様に高速化のための既知の技法
や、先入れ先出し制御のために例えば両方向チエインに
よる連結等の既知の技法を応用して構成することができ
る。
第4図は索引検索手段6の処理の流れを示すフローチャ
ートであり、以下、第4図を参照して第1図の実施例の
概略動作を説明する。
利用者から検索要求8が与えられると、索引検索手段6
はその検索要求8を解析して要求された索引キー値を得
る(ステップ61)。次いで、この索引キー値を指定し
て検索開始ブロック決定手段7を呼び出しくステップ6
2)、それが返すブロック番号を持つ索引ブロックから
検索を実行する(ステップ63)。次いで、最も長い間
参照されなかったエントリをキャッシュ索引5から削除
しくステップ64)、今回の検索に使用された索引キー
値と今回の検索で参照された最下位索引ブロックのブロ
ック番号とから構成されるエントリをキャッシュ索引5
に追加する(ステップ65)。
そして、検索結果9を要求元に返しくステップ66)、
処理を終了する。
第5図は検索開始ブロック決定手段7の処理の流れを示
すフローチャートであり、以下、第5図に沿って検索を
開始する索引ブロックのブロック番号の決定にかかる動
作を説明する。
検索開始ブロック決定手段7が起動されると、検索開始
ブロック決定手段7は変数Bえ、B、のそれぞれに最上
位の索引ブロックのブロック番号すなわち「1」を設定
する(ステップ701)。
次いで、索引検索手段6によって指定された索引キー値
よりも小さい索引キー値を持つエントリをキャッシュ索
引5の索引キー値から捜し出し、その中で最も大きい索
引キー値を持つエントリの索引ブロックのブロック番号
を変数B、に設定する(ステップ702)。同様に、索
引検索手段6によって指定された索引キー値よりも大き
い索引キー値を持つエントリをキャッシュ索引5の索引
キー値から捜し出し、その中で最も小さい索引キー値を
持つエントリの索引ブロックのブロック番号を変数B、
に設定する(ステップ703)。上記の処理でどちらの
場合も該当する値がない場合は、変数B、、B、は最上
位の索引ブロックのブロック番号「1」に設定されたま
まである。
次に、親ブロックテーブル4から変数B、のレベル識別
子と変数B、のレベル識別子とを参照して比較しくステ
ップ70.4 ) 、変数B、Iのレベル識別子と変数
B、のレベル識別子が一致した場合、処理はステップ7
08に移行する。一方、変数B。
のレベル識別子と変数B、のレベル識別子が異なる場合
には、それらの大小関係を比較しくステップ705)、
変数B、のレベル識別子が変数B。
のレベル識別子よりも小さい場合には親ブロックテーブ
ル4を参照してブロック番号B、を持つ索引ブロックの
親ブロックのブロック番号を変数Bアに設定しくステッ
プ707)、変数Bイのレベル識別子が変数B、のレベ
ル識別子よりも大きい場合には親ブロックテーブル4を
参照してブロック番号B、を持つ索引ブロックの親ブロ
ックのブロック番号を変数B、に設定しくステップ70
6)、ステップ704に戻って同様の処理を繰り返す。
一方、ステップ708では変数88と変数B。
とを比較し、変数B、と変数B、とが等しければ索引検
索手段6に変数B、を返しくステップ709)、処理を
終了する。また、変数83と変数B。
とが異なる場合は変数B、と変数Byをそれぞれ最上位
の索引ブロックのブロック番号「1」と比較しくステッ
プ710)、どちらか一方が最上位の索引ブロックのブ
ロック番号と等しければ最上位の索引ブロックのブロッ
ク番号を索引検索手段6に返しくステップ711)、処
理を終了する。
それ以外の場合には親ブロックテーブル4を参照し、変
数Bヶにはブロック番号B、を持つ索引ブロックの親ブ
ロックのブロック番号を、変数B。
にはブロック番号B、を持つ索引ブロックの親ブロック
のブロック番号をそれぞれ設定しくステップ712)、
ステップ708に戻って処理を繰り返す。
上記の処理により最上位の索引ブロックからステップ7
02.703で獲得された索引ブロックへ至る経路の分
岐点が見つけ出され、検索要求の索引キー値はそれ以下
の索引ブロックを検索することにより見つけ出される。
〔発明の効果〕
以上説明したように、本発明の索引検索方式にあっては
、最上位の索引ブロック以下の索引プロ7りから検索を
開始するため、検索の際に参照する必要のある索引ブロ
ックの故を削減することができ、二次記憶装置の入出力
動作を減らして検索時間を大幅に短縮することができる
効果がある。
また、親ブロックテーブルとキャッシュ索引が必要とす
る主記憶装置上の領域は、従来の索引ブロック全体を主
記憶装置上に退避する場合に比較して極めて少ないため
、窩価な主記憶装置を有効利用することができるもので
ある。
なお、本発明の索引検索方式はBツリ一方式の検索にお
いて検索される索引キー値が特定の値域に集中している
ような場合に特にを効であるが、他の方式の索引であっ
ても、キャッシュ索引に最低2つのエントリが登録され
ていれば以前の検索過程の情報を有効に再利用すること
ができるので、広範囲の値を検索するような場合にも充
分効果がある。
【図面の簡単な説明】
第1図は本発明の索引検索方式の一実施例である索引検
索システムの構成を示す図、 第2図は親ブロックテーブルの論理的構成を示す図、 第3図はキャッシュ索引の論理的構成を示す図、第4図
は索引検索手段の処理の流れを示すフローチャートおよ
び、 第5図は検索開始ブロック決定手段の処理の流れを示す
フローチャートである。 図において、1・・・二次記憶装置、2・・・データベ
ース、3・・・索引、4・・・親ブロックテーブル、5
・・・キャッシュ索引、6・・・索引検索手段、7・・
・検索開始ブロック決定手段、8・・−検索要求、9・
・・検索結果。

Claims (1)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63108894A JPH01279318A (ja) 1988-04-30 1988-04-30 索引検索方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63108894A JPH01279318A (ja) 1988-04-30 1988-04-30 索引検索方式

Publications (1)

Publication Number Publication Date
JPH01279318A true JPH01279318A (ja) 1989-11-09

Family

ID=14496310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63108894A Pending JPH01279318A (ja) 1988-04-30 1988-04-30 索引検索方式

Country Status (1)

Country Link
JP (1) JPH01279318A (ja)

Similar Documents

Publication Publication Date Title
US5924088A (en) Index selection for an index access path
EP0877327B1 (en) Method and apparatus for performing a join query in a database system
US7392359B2 (en) Non-blocking distinct grouping of database entries with overflow
US6260037B1 (en) Method and computer program product for implementing skip key processing for database grouping queries involving aggregate operations by using one or more indices
JPH01279318A (ja) 索引検索方式
US6694324B1 (en) Determination of records with a specified number of largest or smallest values in a parallel database system
JPH0644309A (ja) データベース管理方式
JPH0243676A (ja) 索引検索方式
JPH0773187A (ja) 検索システム
JP2000250921A (ja) データベースの管理方法およびシステム
JPH0352068A (ja) 論理演算方式
JPS6315331A (ja) デ−タベ−ス処理方法
JPH10111819A (ja) リレーショナルデータベースのインデックス自動付加システム
JPH035886A (ja) 開係データベース演算システム
JP2001155028A (ja) リレーショナルデータベースにおける集約演算処理方法、その装置及び集約演算処理プログラムを記録したコンピュータ読み取り可能な記録媒体
Li et al. ASLM: Adaptive Single Layer Model
CN120144687A (zh) 一种分布式图数据库全文索引方法及系统
KR20010056171A (ko) 정보 검색시스템에서의 정보 검색을 위한 부분검색 장치및 그 방법
JPH05313971A (ja) リレーショナル・データベースにおけるキーワード管理方式
JPH0243677A (ja) 索引管理方式
JPS63189934A (ja) デ−タベ−ス副次エントリ処理方式
JPH021056A (ja) データベース処理システム
JPH04102172A (ja) 情報検索方式
JPH0926967A (ja) データベース検索方式
JPS6382532A (ja) 論理アドレスから実アドレスへの変換方式