JPH07319888A - 索引検索方式 - Google Patents

索引検索方式

Info

Publication number
JPH07319888A
JPH07319888A JP6132627A JP13262794A JPH07319888A JP H07319888 A JPH07319888 A JP H07319888A JP 6132627 A JP6132627 A JP 6132627A JP 13262794 A JP13262794 A JP 13262794A JP H07319888 A JPH07319888 A JP H07319888A
Authority
JP
Japan
Prior art keywords
index
key
file
character string
key length
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.)
Granted
Application number
JP6132627A
Other languages
English (en)
Other versions
JP2682448B2 (ja
Inventor
Kazunori Nakabayashi
和典 中林
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 JP6132627A priority Critical patent/JP2682448B2/ja
Publication of JPH07319888A publication Critical patent/JPH07319888A/ja
Application granted granted Critical
Publication of JP2682448B2 publication Critical patent/JP2682448B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 索引キーの文字列およびキー長のいかんを問
わず、効率的な索引検索(より高速な索引検索)を実現
する。 【構成】 索引保守手段2は、キー長索引ファイル9と
文字列索引ファイル10とを作成し、キー長別平均検索
回数を有するキー長索引情報ファイル7と先頭文字別平
均検索回数を有する文字列索引情報ファイル8とを作成
する。索引選択手段3は、索引検索要求に基づき、キー
長索引情報ファイル7から要求索引キーに対応するキー
長別平均検索回数を取り出し、文字列索引情報ファイル
8から要求索引キーに対応する先頭文字別平均検索回数
を取り出し、両者を比較する。キー長索引検索手段4
は、当該比較で「キー長別平均検索回数の方が少ない」
と判定された場合に呼び出される。文字列索引検索手段
5は、当該比較で「先頭文字別平均検索回数の方が少な
い」と判定された場合に呼び出される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は索引検索方式に関し、特
に電子計算機のデータベースシステムにおける索引検索
方式に関する。なお、本発明が適用されるデータベース
システムは、次のような特徴を有する。 データベースファイル(データベースレコード中の
フィールドにおけるデータが索引キーとなるデータベー
スファイル)と索引ファイル(索引キーに関する情報を
保持するファイル)とを備えたデータベースシステムで
ある。 索引ファイルは複数の索引ブロックによって構成さ
れている。 索引ファイルを使用した索引検索が行われる。 索引検索においては、バイナリサーチが採用され
る。
【0002】
【従来の技術】従来、この種の索引検索方式では、索引
キーの文字列の内容(どのような文字列によってその索
引キーが構成されているかということ)に着目して索引
ファイルが作成され、そのような索引ファイルが使用さ
れて索引検索が行われていた。
【0003】以下に、従来の索引検索方式における索引
ファイルの作成と、当該索引ファイルが使用された検索
(索引検索)とについて説明する。
【0004】 索引ファイルの作成 まず、索引キーの第1文字(先頭文字)の集合をキー値
の集合とする索引ブロック(最上位索引ブロック)が作
成される。図12中に最上位索引ブロックの一例を示し
ているが、A,B,D,X,YおよびZが索引キーの第
1文字(最上位索引ブロックのキー値)に該当する。な
お、最上位索引ブロックは、1つしか存在しない。
【0005】次に、第1文字が等しい索引キーの第1文
字および第2文字の集合をキー値の集合とする索引ブロ
ック(第2位索引ブロック)が作成される。例えば、図
12中の中間索引ブロックが、第2位索引ブロックに該
当する。
【0006】さらに、第1文字および第2文字が等しい
索引キーの第1文字〜第3文字の集合をキー値の集合と
する索引ブロック(第3位索引ブロック)が作成され
る。
【0007】以下、同様に、索引キーの第1文字〜第
(N−1)文字が等しい索引キーの第1文字〜第N文字
の集合をキー値の集合とする索引ブロック(第N位索引
ブロック)が作成されていく(Nは2以上の正整数)。
【0008】なお、索引キーの最長キー長がMであると
すると、第M位索引ブロックが最下位索引ブロックとな
る。例えば、図12では、第3位索引ブロックが最下位
索引ブロックとなっている。
【0009】 索引ファイルの検索 ここでは、検索対象のデータベースレコードの索引キー
(以下、要求索引キーという)のキー長がNであるもの
とする。
【0010】まず、要求索引キーの第1文字をキー値と
して最上位索引ブロックの検索が行われ、そのキー値に
対応するPTR(PoinTeR。ポインタ)が取得さ
れる。
【0011】次に、このポインタによって指示される第
2位索引ブロックに対して、要求索引キーの第1文字お
よび第2文字をキー値とする検索が行われ、そのキー値
に対応するPTRが取得される。
【0012】以下、同様に、要求索引キーの文字列に沿
って順次に、所定の第N位索引ブロックまでの検索が行
われ、当該第N位索引ブロックに対して要求索引キーの
全ての文字をキー値とする検索が行われ、そのキー値に
対応するデータベース内レコード番号が取得される(こ
のデータベース内レコード番号に基づいて検索対象のデ
ータベースレコードが取り出される)。
【0013】なお、上述の索引ファイルの作成および検
索の内容は、後述する本発明における文字列索引ファイ
ルの作成および検索の内容と同様である。
【0014】
【発明が解決しようとする課題】上述した従来の索引検
索方式では、索引キーの文字列の内容のみに着目して索
引ファイルが作成され当該索引ファイルが使用されて索
引検索が行われているので、索引キーのキー長(索引キ
ーの文字列の文字数)に応じて、最上位索引ブロック,
第2位索引ブロック,…というキー長分の索引ブロック
に対する索引検索が必要になり、索引キーのキー長が長
ければ長いほど検索回数が増加して処理時間が長大にな
るという欠点があった。
【0015】すなわち、@(任意の文字)で始まる索引
キーの平均検索回数は以下の式で表されるので、索引キ
ーのキー長が長いほど検索回数が多くなる可能性が大と
なっていた。 {j=1 m Σ(k=1 j Σ[log2 k ])×Nj }÷(
j=1 m ΣNj ) m:@で始まる索引キーの最長キー長 nk (kは1〜mの正整数):@で始まる索引キーに関
する第k位索引ブロック内のキーの総数 Nj :@で始まりキー長がjである索引キーの個数(し
たがって、j=1 m ΣNjは@で始まる索引キーの総数と
なる)
【0016】なお、上式において(後述する式において
も同様)、「[ ]」はガウス記号を示し、
j=1 m Σ」は後続する数式におけるjについての1か
らmまでの総和を示す(「k=1 j Σ」についても同
様)。
【0017】一方、キー長に着目してキー長別に索引ブ
ロックを作成し、その索引ブロックのみを使用して索引
検索を行う方式も考えられる。しかし、要求索引キーと
同一キー長の索引キーが多い場合等には、検索回数が増
加し処理時間が多大になるので、その方式のみを採用し
て索引検索を行うことは一般的ではなかった。
【0018】本発明の目的は、上述の点に鑑み、文字列
に着目した索引ブロックを設定するとともに、キー長に
着目した索引ブロックをも設定し、要求索引キーの文字
列およびキー長に基づいてどちらの索引ブロックを使用
した索引検索を行うべきかを選択することにより、索引
キーの文字列およびキー長のいかんを問わず効率的な索
引検索(より高速な索引検索)を実現することができる
索引検索方式(索引選択機能付き索引検索方式)を提供
することにある。
【0019】なお、索引ファイルを使用したデータベー
スファイルの検索に関する従来技術としては、「学習機
能付索引検索方式(特開平3−273362号公報)」
が開示されている。しかし、この従来技術は、検索開始
オフセットの決定を適切に行うことによって検索効率の
向上を図るものであり、本発明とは構成等を異にするも
のである。
【0020】
【課題を解決するための手段】本発明の索引検索方式
は、データベースファイルと索引ファイルとを備えたデ
ータベースシステムにおける索引検索方式において、索
引ファイル作成要求および索引検索要求を入力し検索結
果を出力する入出力手段と、この入出力手段から受け取
った索引ファイル作成要求に基づいてキー長索引ファイ
ルと文字列索引ファイルとを作成し、当該キー長索引フ
ァイルに対するキー長別平均検索回数と当該文字列索引
ファイルに対する先頭文字別平均検索回数とを求め、当
該キー長別平均検索回数を有するキー長索引情報ファイ
ルと当該先頭文字別平均検索回数を有する文字列索引情
報ファイルとを作成する索引保守手段と、前記入出力手
段から受け取った索引検索要求に基づいてキー長索引情
報ファイルから要求索引キーに対応するキー長別平均検
索回数を取り出し、当該索引検索要求に基づいて文字列
索引情報ファイルから要求索引キーに対応する先頭文字
別平均検索回数を取り出し、両平均検索回数を比較して
どちらの方が少ないかを判定する索引選択手段と、この
索引選択手段により「キー長別平均検索回数の方が少な
い」と判定された場合に呼び出され、前記索引選択手段
から要求索引キーの値とキー長とを受け取り、当該キー
長に対応するキー長索引ファイル内のキー長索引ブロッ
クを検索して要求索引キーに対応するデータベース内レ
コード番号を取り出すキー長索引検索手段と、前記索引
選択手段により「先頭文字別平均検索回数の方が少な
い」と判定された場合に呼び出され、前記索引選択手段
から要求索引キーの値を受け取り、文字列索引ファイル
を検索して要求索引キーに対応するデータベース内レコ
ード番号を取り出す文字列索引検索手段と、前記キー長
索引検索手段および前記文字列索引検索手段のいずれか
からデータベース内レコード番号を受け取り、そのデー
タベース内レコード番号に基づいてデータベースファイ
ルを検索してその検索結果を前記入出力手段に返すデー
タベース検索手段とを有する。
【0021】
【作用】本発明の索引検索方式では、入出力手段は、索
引ファイル作成要求および索引検索要求を入力し検索結
果を出力する。索引保守手段は、入出力手段から受け取
った索引ファイル作成要求に基づいてキー長索引ファイ
ルと文字列索引ファイルとを作成し、当該キー長索引フ
ァイルに対するキー長別平均検索回数と当該文字列索引
ファイルに対する先頭文字別平均検索回数とを求め、当
該キー長別平均検索回数を有するキー長索引情報ファイ
ルと当該先頭文字別平均検索回数を有する文字列索引情
報ファイルとを作成する。索引選択手段は、入出力手段
から受け取った索引検索要求に基づいてキー長索引情報
ファイルから要求索引キーに対応するキー長別平均検索
回数を取り出し、当該索引検索要求に基づいて文字列索
引情報ファイルから要求索引キーに対応する先頭文字別
平均検索回数を取り出し、両平均検索回数を比較してど
ちらの方が少ないかを判定する。キー長索引検索手段
は、索引選択手段により「キー長別平均検索回数の方が
少ない」と判定された場合に呼び出され、索引選択手段
から要求索引キーの値とキー長とを受け取り、当該キー
長に対応するキー長索引ファイル内のキー長索引ブロッ
クを検索して要求索引キーに対応するデータベース内レ
コード番号を取り出す。文字列索引検索手段は、索引選
択手段により「先頭文字別平均検索回数の方が少ない」
と判定された場合に呼び出され、索引選択手段から要求
索引キーの値を受け取り、文字列索引ファイルを検索し
て要求索引キーに対応するデータベース内レコード番号
を取り出す。データベース検索手段は、キー長索引検索
手段および文字列索引検索手段のいずれかからデータベ
ース内レコード番号を受け取り、そのデータベース内レ
コード番号に基づいてデータベースファイルを検索して
その検索結果を入出力手段に返す。
【0022】
【実施例】次に、本発明について図面を参照して詳細に
説明する。
【0023】図1は、本発明の索引検索方式の一実施例
の構成を示すブロック図である。
【0024】本実施例の索引検索方式は、入出力手段1
と、索引保守手段2と、索引選択手段3と、キー長索引
検索手段4と、文字列索引検索手段5と、データベース
検索手段6と、キー長索引情報ファイル7と、文字列索
引情報ファイル8と、キー長索引ファイル9と、文字列
索引ファイル10と、データベースファイル11とを含
んで構成されている。
【0025】図2は、キー長索引ファイル9内の索引ブ
ロック(キー長索引ブロック)の構成の一例を示す図で
ある。図2を参照すると、キー長索引ブロックは、キー
長索引ブロック情報と、キー長索引レコード群とから構
成されている。
【0026】キー長索引ブロック情報は、キー長と、索
引ブロック番号とから構成されている。また、キー長索
引レコード群は、キー値とデータベース内レコード番号
とから構成されているキー長索引レコードを複数含んで
いる。
【0027】なお、図11は、キー長索引ファイル9内
のキー長索引ブロックの具体例を示す図である。図11
においては、キー長が1,2および3の索引キーに関す
るキー長索引ブロックが示されている。キー長が1の索
引キーに関するキー長索引ブロックには、キー長ブロッ
ク情報中にキー長の“1”と索引ブロック番号の“1”
とが設定されており、索引キーが“A”であるデータベ
ースレコードのデータベース内レコード番号が“123
45678”であることを示すキー長索引レコード等が
存在する。
【0028】図3は、文字列索引ファイル10内の索引
ブロック(文字列索引ブロック)の構成の一例を示す図
である。図3を参照すると、文字列索引ブロックは、文
字列索引ブロック情報と、文字列索引レコード群とから
構成されている。
【0029】文字列索引ブロック情報は、索引ブロック
番号と、物理的上位索引ブロックアドレスと、物理的下
位索引ブロックアドレスとから構成されている(物理的
上位索引ブロックアドレスおよび物理的下位索引ブロッ
クアドレスは索引検索を行う上では使用されないので、
以下の説明では言及しない)。また、文字列索引レコー
ド群は、キー値とPTR(ポインタ)とデータベース内
レコード番号とから構成されている文字列索引レコード
を複数含んでいる。
【0030】ここで、あるキー値に対応するPTRは、
当該キー値に継続する下位索引ブロック(下位の文字列
索引ブロック)が存在する場合には当該下位索引ブロッ
クを示す下位索引ブロックアドレスを持ち、存在しない
場合にはNULL値(存在しないことを示す値)を持
つ。また、あるキー値に対応するデータベース内レコー
ド番号は、当該キー値自身が索引キーとしてデータベー
スファイル11内に存在する場合にはその存在箇所(そ
の索引キーをフィールド値として有するデータベースレ
コードのアドレス)を示すデータベース内レコード番号
を持ち、存在しない場合にはNULL値を持つ。このと
き、PTRとデータベース内レコード番号とが共にNU
LL値となる文字列索引レコードは存在しない。これ
は、「そのキー値に継続する下位索引ブロックが存在せ
ず、かつ当該キー値を索引キーとして有するデータベー
スレコードがデータベースファイル11内に存在しな
い」ということはあり得ないからである。
【0031】図4(a)は文字列索引ファイル10内の
最上位索引ブロック(最上位の文字列索引ブロック)の
構成の一例を示す図であり、図4(b)は文字列索引フ
ァイル10内の最下位索引ブロック(最下位の文字列索
引ブロック)の構成の一例を示す図である。図4(b)
を参照すると、最下位索引ブロック内の文字列索引レコ
ード群中のPTRは、必ずNULL値となっている。ま
た、最下位索引ブロック内の文字列索引レコード群中の
データベース内レコード番号は、必ずNULL値以外の
値になっている(これは、PTRとデータベース内レコ
ード番号とが共にNULL値にはならないためであ
る)。
【0032】なお、図12は、文字列索引ファイル10
内の文字列索引ブロックの具体例を示す図である。図1
2においては、最長キー長が3の場合を示しているの
で、中間索引ブロックは第2位索引ブロックのみとなっ
ている。最下位索引ブロック内の文字列索引レコード群
中のPTRは必ずNULL値となっている。また、最上
位索引ブロック中の“A”に対応するPTR(PTR
a)には索引ブロック番号が“5”の文字列索引ブロッ
ク(中間索引ブロック)のアドレスが設定されており、
索引ブロック番号が“5”の文字列索引ブロック中の
“AA”に対応するPTR(PTRaa)には索引ブロ
ック番号が“90”の文字列索引ブロック(最下位索引
ブロック)のアドレスが設定されており、これによって
“A”,“AA”および“AAA”のキー値の間の関係
付けが実現されている。
【0033】図5は、キー長索引情報ファイル7の構成
の一例を示す図である。図5を参照すると、キー長索引
情報ファイル7は、複数のキー長索引情報レコードの集
合である。キー長索引情報レコードは、キー長と、当該
キー長に対応するキー長別平均検索回数とから構成され
ている。ここで、「キー長=k」に対応するキー長別平
均検索回数は、次式で算出される。 [log2 m] m:キー長=kの索引キーの総数
【0034】図6は、文字列索引情報ファイル8の構成
の一例を示す図である。図6を参照すると、文字列索引
情報ファイル8は、複数の文字列索引情報レコードの集
合である。文字列索引情報レコードは、先頭文字と、当
該先頭文字に対応する先頭文字別平均検索回数とから構
成されている。ここで、@で始まる索引キー(先頭文字
が@である索引キー)の平均検索回数は、次式で算出さ
れる。 {j=1 m Σ(k=1 j Σ[log2 k ])×Nj }÷(
j=1 m ΣNj ) m:@で始まる索引キーの最長キー長 nk (kは1〜mの正整数):@で始まる索引キーに関
する文字列索引ブロックであり、かつ対象となるキー長
がkである文字列索引ブロック(第k位索引ブロック)
内のキーの総数 Nj :@で始まりキー長がjである索引キーの個数(し
たがって、j=1 m ΣNjは@で始まる索引キーの総数と
なる)
【0035】図7は、索引保守手段2の処理を示す流れ
図である。この処理は、データベースファイル名,レコ
ード名,フィールド名受取りステップ71と、対情報書
込みステップ72と、対情報分類ステップ73と、キー
長索引ブロック書込みステップ74と、キー長別平均検
索回数書込みステップ75と、文字列索引ブロック作成
ステップ76と、文字列索引ブロック登録ステップ77
と、先頭文字別平均検索回数書込みステップ78とから
なる。
【0036】図8は、索引選択手段3の処理を示す流れ
図である。この処理は、要求索引キー受取りステップ8
1と、キー長別平均検索回数読込みステップ82と、先
頭文字別平均検索回数読込みステップ83と、両平均検
索回数比較判定ステップ84と、キー長索引検索手段呼
出しステップ85と、文字列索引検索手段呼出しステッ
プ86とからなる。
【0037】図9は、キー長索引検索手段4の処理を示
す流れ図である。この処理は、要求索引キー値・キー長
受取りステップ91と、キー長索引ブロック読込みステ
ップ92と、該当キー長索引レコード有無判定ステップ
93と、所定データベース内レコード番号引渡しステッ
プ94と、NULL値引渡しステップ95とからなる。
【0038】図10は、文字列索引検索手段5の処理を
示す流れ図である。この処理は、要求索引キー値受取り
ステップ101と、最上位索引ブロック読込みステップ
102と、検索キー値先頭文字転記ステップ103と、
処理対象文字列索引ブロック内検索キー値有無判定ステ
ップ104と、検索キー値・要求索引キー値同一判定ス
テップ105と、PTR判定ステップ106と、下位索
引ブロック読込みステップ107と、検索キー値追加ス
テップ108と、NULL値引渡しステップ109と、
所定データベース内レコード番号引渡しステップ101
0とからなる。
【0039】次に、このように構成された本実施例の索
引検索方式の動作について説明する。
【0040】第1に、索引ファイル作成時の動作につい
て説明する。
【0041】入出力手段1は、当該データベースシステ
ムの運用者等からの索引ファイル作成要求を入力した場
合に、当該索引ファイル作成要求によって指定されたデ
ータベースファイル名(ここでは、データベースファイ
ル11の識別名),レコード名およびフィールド名を索
引保守手段2に送る。
【0042】入出力手段1から制御を渡された索引保守
手段2は、次のような処理を行う(図7参照)。
【0043】まず、入出力手段1から、索引を作成する
対象となるデータベースファイル(ここでは、データベ
ースファイル11),データベースレコードおよびフィ
ールドを示すデータベースファイル名,レコード名およ
びフィールド名を受け取る(ステップ71)。
【0044】ステップ71で受け取った情報に基づい
て、データベースファイル11から、索引を作成する対
象となるデータベースレコードを順次読み込み、当該デ
ータベースレコードのデータベース内レコード番号と索
引を作成する対象となるフィールド値(索引キーとなる
値)との対(以下、対情報という)を作業領域に書き込
む(ステップ72)。
【0045】索引ファイル作成要求で指定された全ての
データベースレコードを読み込んで全ての対情報を作成
した後に、それらの対情報群をフィールド値の長さ(文
字数)に基づいて分類する(各対情報にフィールド値の
長さ(キー長)を示す情報を付加する)(ステップ7
3)。
【0046】ステップ73で分類した対情報群をキー長
によってソートし、同一のキー長を有する対情報の集合
によって各キー長索引ブロック(図2参照)を作成し、
それらのキー長索引ブロックをキー長索引ファイル9に
書き込む(ステップ74)。
【0047】さらに、各キー長索引ブロックにおける平
均検索回数(キー長別平均検索回数)を図5の説明にお
いて述べた式によって求め、キー長とキー長別平均検索
回数とからなるキー長索引情報レコードをキー長索引情
報ファイル7に書き込む(ステップ75)。
【0048】一方、ステップ72で作成した対情報群に
基づいて、図3に示すような文字列索引ブロックを複数
作成する(ステップ76)。この文字列索引ブロックの
作成については、従来技術における索引ブロックの作成
と同様の処理が行われる。すなわち、1つの最上位索引
ブロック,複数の中間索引ブロックおよび複数の最下位
索引ブロックの作成が行われる。
【0049】さらに、ステップ72で作成した対情報群
を再度用いて、ステップ76で作成した複数の文字列索
引ブロックを文字列に沿って最上位文字列索引ブロック
から最下位文字列索引ブロックに向かって順に文字列索
引ファイル10に登録していく(ステップ77)。この
際に、各文字列索引ブロックにおける文字列索引レコー
ド中のPTRの値が設定される。
【0050】最後に、ステップ76で作成した全ての文
字列索引ブロックに基づいて、索引キーの先頭文字別の
平均検索回数(先頭文字別平均検索回数)を図6の説明
において述べた式によって求め、先頭文字と先頭文字別
平均検索回数とからなる文字列索引情報レコードを文字
列索引情報ファイル8に書き込む(ステップ78)。
【0051】入出力手段1は、以上の一連の索引ファイ
ル作成処理が終了すると、その旨の通知を索引保守手段
2から受け取り、その旨を運用者等に通知するための索
引ファイル作成終了通知を出力する。この索引ファイル
作成終了通知の出力は、本発明において必須の処理では
ないが、マンマシンインタフェースの向上等の観点か
ら、行われるのが一般的な処理である。この出力によっ
て、索引ファイル作成時の処理が終了する。
【0052】第2に、索引検索時の動作について説明す
る。
【0053】入出力手段1は、当該データベースシステ
ムのユーザ等からの索引検索要求を入力した場合に、当
該索引検索要求によって指定された索引キー(要求索引
キー)を索引選択手段3に送る。
【0054】入出力手段1から制御を渡された索引選択
手段3は、次のような処理を行う(図8参照)。
【0055】まず、索引検索要求に係る要求索引キーを
入出力手段1から受け取る(ステップ81)。
【0056】次に、要求索引キーのキー長を求め、キー
長索引情報ファイル7を参照して当該キー長を持つキー
長索引情報レコードを読み込み、当該キー長に対応する
平均検索回数(当該キー長索引情報レコード中のキー長
別平均検索回数)を取り出す(ステップ82)。
【0057】また、要求索引キーの先頭文字を基に文字
列索引情報ファイル8を参照し、当該先頭文字を持つ文
字列参照情報レコードを読み込み、当該先頭文字に対応
する平均検索回数(当該文字列索引情報レコード中の先
頭文字別平均検索回数)を取り出す(ステップ83)。
【0058】さらに、ステップ82で取り出したキー長
別平均検索回数とステップ83で取り出した先頭文字別
平均検索回数とを比較し、どちらの平均検索回数が少な
いかを判定する(ステップ84)。
【0059】ステップ84で「キー長別平均検索回数の
方が少ない」と判定した場合には、キー長索引検索手段
4を呼び出す(ステップ85)。
【0060】また、ステップ84で「先頭文字別平均検
索回数の方が少ない」と判定した場合には、文字列索引
検索手段5を呼び出す(ステップ86)。
【0061】索引選択手段3から呼び出されたキー長索
引検索手段4は、次のような処理を行う(図9参照)。
【0062】まず、要求索引キーの値とキー長とを索引
選択手段3から受け取る(ステップ91)。
【0063】当該キー長を基に、キー長索引ファイル9
から当該キー長に対応するキー長索引ブロックを読み込
む(ステップ92)。
【0064】次に、ステップ92で読み込んだキー長索
引ブロック内のキー長索引レコード群を検索し、索引選
択手段3から受け取った要求索引キーの値をキー値に持
つキー長索引レコードが存在するか否かを判定(チェッ
ク)する(ステップ93)。
【0065】ステップ93で「要求索引キーの値をキー
値に持つキー長索引レコードが存在する」と判定した場
合には、要求索引キーの値をキー値に持つキー長索引レ
コードからデータベース内レコード番号を取り出し、そ
のデータベース内レコード番号をデータベース検索手段
6に渡す(ステップ94)。
【0066】また、ステップ93で「要求索引キーの値
をキー値に持つキー長索引レコードが存在しない」と判
定した場合には、検索したが見つからなかったという意
味を示すNULL値をデータベース内レコード番号とし
て、そのデータベース内レコード番号(NULL値)を
データベース検索手段6に渡す(ステップ95)。
【0067】索引選択手段3から呼び出された文字列索
引検索手段5は、次のような処理を行う(図10参
照)。
【0068】まず、要求索引キーの値を索引選択手段3
から受け取り(ステップ101)、文字列索引ファイル
10から最上位索引ブロックを読み込む(ステップ10
2)。
【0069】次に、検索キー値(最初は空の文字列であ
る検索処理作業用の値)に、要求索引キーの先頭文字を
転記する(ステップ103)。
【0070】処理対象の文字列索引ブロック(最初は、
ステップ102で読み込んだ最上位索引ブロック)内の
文字列索引レコード群の中に検索キー値と同じキー値を
持つ文字列索引レコードが存在するか否かを判定(チェ
ック)する(ステップ104)。
【0071】ステップ104で「検索キー値と同じキー
値を持つ文字列索引レコードが存在する」と判定した場
合には、検索キー値と要求索引キーの値とを比較し、両
者が等しいか否かを判定する(ステップ105)。
【0072】ステップ105で「両者が等しい」と判定
した場合(要求索引キーが見つかった場合)には、ステ
ップ104で検出した文字列索引レコード内のデータベ
ース内レコード番号をデータベース検索手段6に渡す
(ステップ1010)。
【0073】ステップ105で「両者が等しくない」と
判定した場合(要求索引キーの最終文字までまだ検索し
ていない場合)には、ステップ104で検索した文字列
索引レコード内のPTRがNULL値であるかNULL
値以外であるかを判定する(ステップ106)。
【0074】ステップ106で「当該PTRがNULL
値以外である」と判定した場合(まだ検索すべき下位索
引ブロックが存在する場合)には、当該PTRを基に文
字列索引ファイル10から当該下位索引ブロックを読み
込み(ステップ107)、要求索引キーの先頭からの文
字列のうちでまだ検索キー値に転記していない1文字分
を検索キー値に追加し(ステップ108)、ステップ1
04の判定を再度実行する。なお、この下位索引ブロッ
クが次の「処理対象の文字列索引ブロック」となる。
【0075】ステップ104で「検索キー値と同じキー
値を持つ文字列索引レコードが存在しない」と判定した
場合またはステップ106で「当該PTRがNULL値
である」と判定した場合(要求索引キーが見つからなか
った場合)には、NULL値(このNULL値は検索し
たが見つからなかったことを意味する)をデータベース
内レコード番号として設定し、そのデータベース内レコ
ード番号(NULL値)をデータベース検索手段6に渡
す(ステップ109)。
【0076】なお、ステップ104〜ステップ108の
処理および判定は、最多で索引選択手段3から受け取っ
た要求索引キーのキー長分繰り返されることとなる。
【0077】ここで、図12を参照して、図10に示す
検索処理を具体的に説明する。ここでは、図12に示す
文字列索引ファイル10に対して要求索引キーが“AA
A”である場合について説明する。
【0078】 まず、“AAA”の先頭文字の“A”
が着目され、最上位索引ブロックが検索される。この最
上位索引ブロック内の文字列索引レコードには、キー値
が“A”である文字列索引レコードが存在する。当該文
字列索引レコードのPTRは“PTRa”(索引ブロッ
ク番号が“5”の文字列索引ブロック(中間索引ブロッ
ク)のアドレス)となっている。
【0079】 したがって、次にキー値“AAA”の
先頭文字および第2文字の“AA”が着目され、索引ブ
ロック番号が“5”の中間索引ブロックが検索される。
この中間索引ブロック内の文字列索引レコードには、キ
ー値が“AA”である文字列索引レコードが存在する。
当該文字列索引レコードのPTRは“PTRaa”(索
引ブロック番号が“90”の文字列索引ブロック(最下
位索引ブロック)のアドレス)となっている。
【0080】 したがって、次にキー値“AAA”の
先頭文字,第2文字および最終文字の“AAA”が着目
され、索引ブロック番号が“90”の最下位索引ブロッ
クが検索される。この最下位索引ブロック内の文字列索
引レコードには要求索引キー“AAA”と同じキー値を
持つ文字列索引レコードが存在するので、当該文字列索
引レコードのデータベース内レコード番号の“1234
5667”が検索対象のデータベースレコードを示すデ
ータベース内レコード番号として検出される。
【0081】データベース検索手段6は、キー長索引検
索手段4または文字列索引検索手段5から、データベー
ス内レコード番号とともに制御を渡される。
【0082】データベース検索手段6は、キー長索引検
索手段4または文字列索引検索手段5から受け取ったデ
ータベース内レコード番号を基に、データベースファイ
ル11から当該データベース内レコード番号が指すデー
タベースレコードを検索し、検出したデータベースレコ
ードを入出力手段1に送る。ただし、キー長索引検索手
段4または文字列索引検索手段5から受け取ったデータ
ベース内レコード番号がNULL値である場合には、
「データベースファイル11内には検索対象のデータベ
ースレコードが存在しない」という主旨を示すメッセー
ジを入出力手段1に送る。
【0083】入出力手段1は、そのデータベースレコー
ドまたはメッセージを検索結果としてユーザ等に対して
出力する。これによって、索引検索時の処理が終了す
る。
【0084】
【発明の効果】以上説明したように本発明は、キー長索
引ファイルを文字列索引ファイルとともに設け、キー長
索引情報ファイルおよび文字列索引情報ファイルの参照
に基づいてキー長索引ファイルによる索引検索(キー長
索引検索)を行うべきか文字列索引ファイルによる索引
検索(文字列索引検索)を行うべきかを選択することに
より、索引キーの文字列やキー長のいかんを問わず、よ
り検索回数の少ない検索方法での索引検索を実現するこ
とができ、より高速な索引検索を実現することができる
(データベースファイルの検索効率を向上させることが
できる)という効果を有する。
【0085】すなわち、以下に示すような場合等にはキ
ー長索引検索が選択されることによって、高速な索引検
索が可能となる。 キー長が極端に長い索引キー値がある場合 特定のキー長の索引キー値だけが他より少ない場合
【0086】一方、以下に示すような場合等には文字列
索引検索が選択されることによって、高速な索引検索が
可能になる。 特定の先頭文字で始まる索引キー値が他の索引キー
値と比べて少ない場合 同一キー長の索引キーが多く存在し、同一の先頭文
字で始まる索引キーの数が少ない場合
【図面の簡単な説明】
【図1】本発明の一実施例に係る索引検索方式の構成を
示すブロック図である。
【図2】図1中のキー長索引ファイル内の索引ブロック
(キー長索引ブロック)の構成の一例を示す図である。
【図3】図1中の文字列索引ファイル内の索引ブロック
(文字列索引ブロック)の構成の一例を示す図である。
【図4】(a)は図1中の文字列索引ファイル内の最上
位索引ブロックの構成の一例を示す図であり、(b)は
図1中の文字列索引ファイル内の最下位索引ブロックの
構成の一例を示す図である。
【図5】図1中のキー長索引情報ファイルの構成の一例
を示す図である。
【図6】図1中の文字列索引情報ファイルの構成の一例
を示す図である。
【図7】図1中の索引保守手段の処理を示す流れ図であ
る。
【図8】図1中の索引選択手段の処理を示す流れ図であ
る。
【図9】図1中のキー長索引検索手段の処理を示す流れ
図である。
【図10】図1中の文字列索引検索手段の処理を示す流
れ図である。
【図11】図1中のキー長索引ファイル内のキー長索引
ブロックの具体例を示す図である。
【図12】図1中の文字列索引ファイル内の文字列索引
ブロックの具体例を示す図である。
【符号の説明】
1 入出力手段 2 索引保守手段 3 索引選択手段 4 キー長索引検索手段 5 文字列索引検索手段 6 データベース検索手段 7 キー長索引情報ファイル 8 文字列索引情報ファイル 9 キー長索引ファイル 10 文字列索引ファイル 11 データベースファイル

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 データベースファイルと索引ファイルと
    を備えたデータベースシステムにおける索引検索方式に
    おいて、 索引ファイル作成要求および索引検索要求を入力し検索
    結果を出力する入出力手段と、 この入出力手段から受け取った索引ファイル作成要求に
    基づいてキー長索引ファイルと文字列索引ファイルとを
    作成し、当該キー長索引ファイルに対するキー長別平均
    検索回数と当該文字列索引ファイルに対する先頭文字別
    平均検索回数とを求め、当該キー長別平均検索回数を有
    するキー長索引情報ファイルと当該先頭文字別平均検索
    回数を有する文字列索引情報ファイルとを作成する索引
    保守手段と、 前記入出力手段から受け取った索引検索要求に基づいて
    キー長索引情報ファイルから要求索引キーに対応するキ
    ー長別平均検索回数を取り出し、当該索引検索要求に基
    づいて文字列索引情報ファイルから要求索引キーに対応
    する先頭文字別平均検索回数を取り出し、両平均検索回
    数を比較してどちらの方が少ないかを判定する索引選択
    手段と、 この索引選択手段により「キー長別平均検索回数の方が
    少ない」と判定された場合に呼び出され、前記索引選択
    手段から要求索引キーの値とキー長とを受け取り、当該
    キー長に対応するキー長索引ファイル内のキー長索引ブ
    ロックを検索して要求索引キーに対応するデータベース
    内レコード番号を取り出すキー長索引検索手段と、 前記索引選択手段により「先頭文字別平均検索回数の方
    が少ない」と判定された場合に呼び出され、前記索引選
    択手段から要求索引キーの値を受け取り、文字列索引フ
    ァイルを検索して要求索引キーに対応するデータベース
    内レコード番号を取り出す文字列索引検索手段と、 前記キー長索引検索手段および前記文字列索引検索手段
    のいずれかからデータベース内レコード番号を受け取
    り、そのデータベース内レコード番号に基づいてデータ
    ベースファイルを検索してその検索結果を前記入出力手
    段に返すデータベース検索手段とを有することを特徴と
    する索引検索方式。
  2. 【請求項2】 キー長および索引ブロック番号を有する
    キー長索引ブロック情報と、キー値およびデータベース
    内レコード番号を有するキー長索引レコードの集合とを
    含むキー長索引ブロックを備えるキー長索引ファイル
    と、 キー長およびキー長別平均検索回数を有するキー長索引
    情報レコードの集合であるキー長索引情報ファイルとを
    有することを特徴とする請求項1記載の索引検索方式。
  3. 【請求項3】 索引ブロック番号を有する文字列索引ブ
    ロック情報と、キー値,PTRおよびデータベース内レ
    コード番号を有する文字列索引レコードの集合とを含む
    文字列索引ブロックを備える文字列索引ファイルと、 先頭文字および先頭文字別平均検索回数を有する文字列
    索引情報レコードの集合である文字列索引情報ファイル
    とを有することを特徴とする請求項1記載の索引検索方
    式。
  4. 【請求項4】 キー長索引ファイル,文字列索引ファイ
    ル,キー長索引情報ファイルおよび文字列索引情報ファ
    イルの作成の終了を示す索引ファイル作成終了通知を出
    力する入出力手段と、 キー長索引ファイル,文字列索引ファイル,キー長索引
    情報ファイルおよび文字列索引情報ファイルの作成が終
    了した時にその旨を前記入出力手段に通知する索引保守
    手段とを有することを特徴とする請求項1記載の索引検
    索方式。
JP6132627A 1994-05-23 1994-05-23 索引検索方式 Expired - Lifetime JP2682448B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6132627A JP2682448B2 (ja) 1994-05-23 1994-05-23 索引検索方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6132627A JP2682448B2 (ja) 1994-05-23 1994-05-23 索引検索方式

Publications (2)

Publication Number Publication Date
JPH07319888A true JPH07319888A (ja) 1995-12-08
JP2682448B2 JP2682448B2 (ja) 1997-11-26

Family

ID=15085752

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6132627A Expired - Lifetime JP2682448B2 (ja) 1994-05-23 1994-05-23 索引検索方式

Country Status (1)

Country Link
JP (1) JP2682448B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007193642A (ja) * 2006-01-20 2007-08-02 Nippon Telegr & Teleph Corp <Ntt> XPath処理装置、XPath処理方法、XPath処理プログラム、および、記憶媒体
US8095526B2 (en) 2003-12-02 2012-01-10 Nec Corporation Efficient retrieval of variable-length character string data
JP2012083863A (ja) * 2010-10-07 2012-04-26 Mitsubishi Electric Corp 情報検索装置および情報検索方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095526B2 (en) 2003-12-02 2012-01-10 Nec Corporation Efficient retrieval of variable-length character string data
US8200646B2 (en) 2003-12-02 2012-06-12 Nec Corporation Efficient retrieval of variable-length character string data
JP2007193642A (ja) * 2006-01-20 2007-08-02 Nippon Telegr & Teleph Corp <Ntt> XPath処理装置、XPath処理方法、XPath処理プログラム、および、記憶媒体
JP2012083863A (ja) * 2010-10-07 2012-04-26 Mitsubishi Electric Corp 情報検索装置および情報検索方法

Also Published As

Publication number Publication date
JP2682448B2 (ja) 1997-11-26

Similar Documents

Publication Publication Date Title
US5745745A (en) Text search method and apparatus for structured documents
JP2607818B2 (ja) コンピュータシステム内にレコードが記憶されているか否かを判定する方法及び装置
KR100451978B1 (ko) 정보 검색 방법과 정보 검색 장치
JP2832988B2 (ja) データ検索システム
JPH09134363A (ja) データベース検索方法及び装置
JP2008529138A (ja) 多重索引に基づく情報検索システム
JPH11110414A (ja) データベースからテキストを検索するための方法および装置
JPH11120203A (ja) データベースを合併する方法およびデータベースからドキュメントを検索する装置
JP2669601B2 (ja) 情報検索方法及びシステム
JPH09288676A (ja) 全文インデックス作成装置および全文データベース検索装置
JP3258063B2 (ja) データベース検索システム及び方法
JPH0782504B2 (ja) 情報検索処理方式および検索ファイル作成装置
JP2682448B2 (ja) 索引検索方式
JPH064584A (ja) 文章検索装置
JP3081093B2 (ja) 索引作成方法およびその装置と文書検索装置
JPH05257982A (ja) 文字列認識方法
JP3534471B2 (ja) マージソート方法及びマージソート装置
JP2519129B2 (ja) マルチキ―ワ―ド情報検索処理方式および検索ファイル作成装置
JP2002366576A (ja) データ検索の方法、システム、およびプログラム製品
JPH08314950A (ja) テキストの検索方法及び装置
JP3259781B2 (ja) データベース検索システムおよびデータベース検索方法
JPH1069490A (ja) 文書絞り込み検索装置、文書絞り込み検索方法及び文書検索装置
JP2921119B2 (ja) 数値検索装置および数値検索方法
JPH09212523A (ja) 全文検索方法
JPH07296005A (ja) 日本語テキスト登録・検索装置