JP2001060197A - リレーショナルデータベースにおける検索方法及びそのプログラムを記録した記録媒体 - Google Patents
リレーショナルデータベースにおける検索方法及びそのプログラムを記録した記録媒体Info
- Publication number
- JP2001060197A JP2001060197A JP11234120A JP23412099A JP2001060197A JP 2001060197 A JP2001060197 A JP 2001060197A JP 11234120 A JP11234120 A JP 11234120A JP 23412099 A JP23412099 A JP 23412099A JP 2001060197 A JP2001060197 A JP 2001060197A
- Authority
- JP
- Japan
- Prior art keywords
- search
- character string
- character
- index
- string
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】
【課題】 インデックス機能と先頭文字検索機能とを利
用して、検索を高速に行うことが可能なリレーショナル
データベースにおける検索方法を提供する。 【解決手段】 リレーショナルデータベース5における
検索方法であって、検索対象として指定された属性中の
文字列毎に、文字列を構成する各文字から末尾文字まで
を切り出して検索用文字列を作成し、検索用文字列と、
検索用文字列の元の文字列が格納されたレコードを特定
する情報とを対応付けて格納する検索用テーブル8を作
成し、検索用テーブル8の検索用文字列に、その検索用
文字列を構成する各文字の文字コードを先頭文字から順
にキーとしたインデックスを設定し、そして、インデッ
クスにおいて、検索対象として与えられた文字列を先頭
文字検索し、該当する検索用文字列に基づいて検索用テ
ーブル8から検索対象文字列を含むレコードを特定する
ものである。
用して、検索を高速に行うことが可能なリレーショナル
データベースにおける検索方法を提供する。 【解決手段】 リレーショナルデータベース5における
検索方法であって、検索対象として指定された属性中の
文字列毎に、文字列を構成する各文字から末尾文字まで
を切り出して検索用文字列を作成し、検索用文字列と、
検索用文字列の元の文字列が格納されたレコードを特定
する情報とを対応付けて格納する検索用テーブル8を作
成し、検索用テーブル8の検索用文字列に、その検索用
文字列を構成する各文字の文字コードを先頭文字から順
にキーとしたインデックスを設定し、そして、インデッ
クスにおいて、検索対象として与えられた文字列を先頭
文字検索し、該当する検索用文字列に基づいて検索用テ
ーブル8から検索対象文字列を含むレコードを特定する
ものである。
Description
【0001】
【発明の属する技術分野】この発明は、リレーショナル
データベースにおける検索方法及びそのプログラムを記
録した記録媒体に関するものである。
データベースにおける検索方法及びそのプログラムを記
録した記録媒体に関するものである。
【0002】
【従来の技術】従来、リレーショナルデータベースにお
いては、指定した属性に格納された複数の文字データか
ら、所望の文字列を検索する検索機能を持っている。こ
の検索は、検索操作者により入力された検索文字列とリ
レーショナルデータベースの指定した属性に格納された
全ての文字列とが比較され、一致する文字列、すなわち
検索文字列が含まれる文字列を出力するものである。
いては、指定した属性に格納された複数の文字データか
ら、所望の文字列を検索する検索機能を持っている。こ
の検索は、検索操作者により入力された検索文字列とリ
レーショナルデータベースの指定した属性に格納された
全ての文字列とが比較され、一致する文字列、すなわち
検索文字列が含まれる文字列を出力するものである。
【0003】図8はリレーショナルデータベースの一例
を示す図である。このようなデータベースにおいて検索
を行う場合には、まず、検索対象となる属性と、検索文
字を指定する。ここでは、例えば属性として「キーワー
ド」のカラムを指定し、検索文字「特許法」を指定した
ものとして説明すると、まずは検索対象の属性中の文字
列『米国特許法』と検索文字「特許法」の先頭文字から
順に一致するか否かを比較する。すなわち、『米』と
「特」で比較し、このように一致しない場合には検索開
始位置を一文字ずらして比較する。この場合、『国』と
「特」で一致しないため、同様に検索開始位置を1文字
ずらして『特』で比較する。ここで、検索文字の先頭文
字「特」と一致するが、このように一致した場合には次
の文字で比較し、この場合には両方とも『許』で一致す
るので同様に次の文字で比較する。これも『法』で一致
するので、検索文字の末尾文字まで一致したこととな
り、すなわち検索文字と一致する文字が検索され、当該
文字を検索結果として出力するようになっている。
を示す図である。このようなデータベースにおいて検索
を行う場合には、まず、検索対象となる属性と、検索文
字を指定する。ここでは、例えば属性として「キーワー
ド」のカラムを指定し、検索文字「特許法」を指定した
ものとして説明すると、まずは検索対象の属性中の文字
列『米国特許法』と検索文字「特許法」の先頭文字から
順に一致するか否かを比較する。すなわち、『米』と
「特」で比較し、このように一致しない場合には検索開
始位置を一文字ずらして比較する。この場合、『国』と
「特」で一致しないため、同様に検索開始位置を1文字
ずらして『特』で比較する。ここで、検索文字の先頭文
字「特」と一致するが、このように一致した場合には次
の文字で比較し、この場合には両方とも『許』で一致す
るので同様に次の文字で比較する。これも『法』で一致
するので、検索文字の末尾文字まで一致したこととな
り、すなわち検索文字と一致する文字が検索され、当該
文字を検索結果として出力するようになっている。
【0004】このように、データベースにおける検索で
は、検索対象属性中の文字列の先頭文字と、検索文字の
先頭文字とが一致しているかどうか調べ、一致していれ
ば次の文字、と順次比較していき、検索文字の末尾文字
まで一致したら一致、途中で一致しなくなれば検索開始
位置を一文字ずらして同じことを繰り返し、検索文字を
検索するようになっている。つまり、指定された属性に
格納された文字を順次スキャンし、検索文字を検索する
ようになっている。
は、検索対象属性中の文字列の先頭文字と、検索文字の
先頭文字とが一致しているかどうか調べ、一致していれ
ば次の文字、と順次比較していき、検索文字の末尾文字
まで一致したら一致、途中で一致しなくなれば検索開始
位置を一文字ずらして同じことを繰り返し、検索文字を
検索するようになっている。つまり、指定された属性に
格納された文字を順次スキャンし、検索文字を検索する
ようになっている。
【0005】一方、その他の検索方法として、特開平7
−56943号公報や特開昭63−237128号公報
に示されるように、インデックスを利用して検索を行う
方法や、リレーショナルデータベースに備わっている先
頭文字検索機能を用いて検索を行う方法がある。この先
頭文字検索は、検索文字列をリレーショナルデータベー
スに格納された複数の各文字データの先頭文字から比較
し、一致する文字列を検索していく方法であって、各文
字データと完全一致でなくとも、検索文字列を各文字デ
ータの先頭文字から含めば、その一致する文字列を抽出
するといった方法である。
−56943号公報や特開昭63−237128号公報
に示されるように、インデックスを利用して検索を行う
方法や、リレーショナルデータベースに備わっている先
頭文字検索機能を用いて検索を行う方法がある。この先
頭文字検索は、検索文字列をリレーショナルデータベー
スに格納された複数の各文字データの先頭文字から比較
し、一致する文字列を検索していく方法であって、各文
字データと完全一致でなくとも、検索文字列を各文字デ
ータの先頭文字から含めば、その一致する文字列を抽出
するといった方法である。
【0006】
【発明が解決しようとする課題】上記のような従来の検
索方法では、検索文字列と、指定した属性に含まれる文
字列とが比較されるため、検索対象の文字数がn、指定
された属性の全文字数がmとすると、検索できるまでに
最悪、n×mオーダーとなり、時間がかかるという問題
点があった。
索方法では、検索文字列と、指定した属性に含まれる文
字列とが比較されるため、検索対象の文字数がn、指定
された属性の全文字数がmとすると、検索できるまでに
最悪、n×mオーダーとなり、時間がかかるという問題
点があった。
【0007】一方、先頭文字検索は、インデックスを設
定して検索を実行する場合に、高速に検索を行う方法と
して知られている。そこで、この機能をリレーショナル
データベースにおける検索に利用すれば、高速に検索を
行えることが期待できる。
定して検索を実行する場合に、高速に検索を行う方法と
して知られている。そこで、この機能をリレーショナル
データベースにおける検索に利用すれば、高速に検索を
行えることが期待できる。
【0008】このようなことから、インデックス機能と
先頭文字検索機能を利用して、検索を高速に行うことが
可能なリレーショナルデータベースにおける検索方法の
開発が望まれていた。
先頭文字検索機能を利用して、検索を高速に行うことが
可能なリレーショナルデータベースにおける検索方法の
開発が望まれていた。
【0009】
【課題を解決するための手段】本発明に係るリレーショ
ナルデータベースにおける検索方法は、リレーショナル
データベースにおける検索方法であって、検索対象とし
て指定された属性中の文字列毎に、文字列を構成する各
文字から末尾文字までを切り出して検索用文字列を作成
する工程と、検索用文字列と、検索用文字列の元の文字
列が格納されたレコードを特定する情報とを対応付けて
格納する検索用テーブルを作成する工程と、検索用テー
ブルの検索用文字列に、その検索用文字列を構成する各
文字の文字コードを先頭文字から順にキーとしたインデ
ックスを設定する工程とを有し、インデックスにおい
て、検索対象として与えられた文字列を先頭文字検索
し、該当する検索用文字列に基づいて検索用テーブルか
ら検索対象文字列を含むレコードを特定するものであ
る。
ナルデータベースにおける検索方法は、リレーショナル
データベースにおける検索方法であって、検索対象とし
て指定された属性中の文字列毎に、文字列を構成する各
文字から末尾文字までを切り出して検索用文字列を作成
する工程と、検索用文字列と、検索用文字列の元の文字
列が格納されたレコードを特定する情報とを対応付けて
格納する検索用テーブルを作成する工程と、検索用テー
ブルの検索用文字列に、その検索用文字列を構成する各
文字の文字コードを先頭文字から順にキーとしたインデ
ックスを設定する工程とを有し、インデックスにおい
て、検索対象として与えられた文字列を先頭文字検索
し、該当する検索用文字列に基づいて検索用テーブルか
ら検索対象文字列を含むレコードを特定するものであ
る。
【0010】本発明に係る媒体は、リレーショナルデー
タベースにおける検索方法であって、検索対象として指
定された属性中の文字列毎に、文字列を構成する各文字
から末尾文字までを切り出して検索用文字列を作成する
工程と、検索用文字列と、検索用文字列の元の文字列が
格納されたレコードを特定する情報とを対応付けて格納
する検索用テーブルを作成する工程と、検索用テーブル
の検索用文字列に、その検索用文字列を構成する各文字
の文字コードを先頭文字から順にキーとしたインデック
スを設定する工程とを有し、インデックスにおいて、検
索対象として与えられた文字列を先頭文字検索し、該当
する検索用文字列に基づいて検索用テーブルから検索対
象文字列を含むレコードを特定するリレーショナルデー
タベースにおける検索方法をコンピュータに実行させる
ためのプログラムを記録したものである。
タベースにおける検索方法であって、検索対象として指
定された属性中の文字列毎に、文字列を構成する各文字
から末尾文字までを切り出して検索用文字列を作成する
工程と、検索用文字列と、検索用文字列の元の文字列が
格納されたレコードを特定する情報とを対応付けて格納
する検索用テーブルを作成する工程と、検索用テーブル
の検索用文字列に、その検索用文字列を構成する各文字
の文字コードを先頭文字から順にキーとしたインデック
スを設定する工程とを有し、インデックスにおいて、検
索対象として与えられた文字列を先頭文字検索し、該当
する検索用文字列に基づいて検索用テーブルから検索対
象文字列を含むレコードを特定するリレーショナルデー
タベースにおける検索方法をコンピュータに実行させる
ためのプログラムを記録したものである。
【0011】本発明においては、先頭文字検索を利用す
べく、検索対象として指定された属性中の文字列毎に、
当該文字列を構成する各文字が先頭となる検索用文字列
を作成し、この検索用文字列と当該検索用文字列の元の
文字列が格納されたレコードを特定する情報とを対応付
けて格納する検索用テーブルの検索用文字列に木構造に
よるインデックスを設定することで、インデックス機能
及び先頭文字検索機能の両方を利用して、高速に与えら
れた文字列が含まれるレコードを特定する。
べく、検索対象として指定された属性中の文字列毎に、
当該文字列を構成する各文字が先頭となる検索用文字列
を作成し、この検索用文字列と当該検索用文字列の元の
文字列が格納されたレコードを特定する情報とを対応付
けて格納する検索用テーブルの検索用文字列に木構造に
よるインデックスを設定することで、インデックス機能
及び先頭文字検索機能の両方を利用して、高速に与えら
れた文字列が含まれるレコードを特定する。
【0012】
【発明の実施の形態】図1は本発明の一実施の形態のシ
ステム構成を示す図である。図1において、1はサーバ
で、LAN(Local Area Network)
等のネットワーク2を介してクライアント3と接続され
ており、クライアント3からの検索要求に応じて検索処
理を行い、検索結果をクライアント3に応答するもので
ある。このサーバ1は、サーバ1全体を制御するCPU
4と、リレーショナル型のテーブルが格納されるデータ
ベース5とを備え、CPU4には、検索対象の元テーブ
ル6から所定の方法で文字を切り出して検索用文字列を
作成する切り出し部7と、切り出し部7により作成され
た検索用文字列によって検索用テーブル8を作成する検
索用テーブル作成部9とが備えられている。なお、元テ
ーブル6及び検索用テーブル8はデータベース5に格納
される。
ステム構成を示す図である。図1において、1はサーバ
で、LAN(Local Area Network)
等のネットワーク2を介してクライアント3と接続され
ており、クライアント3からの検索要求に応じて検索処
理を行い、検索結果をクライアント3に応答するもので
ある。このサーバ1は、サーバ1全体を制御するCPU
4と、リレーショナル型のテーブルが格納されるデータ
ベース5とを備え、CPU4には、検索対象の元テーブ
ル6から所定の方法で文字を切り出して検索用文字列を
作成する切り出し部7と、切り出し部7により作成され
た検索用文字列によって検索用テーブル8を作成する検
索用テーブル作成部9とが備えられている。なお、元テ
ーブル6及び検索用テーブル8はデータベース5に格納
される。
【0013】本実施の形態の検索方法では、検索処理に
先だって、検索用テーブル8の作成とインデックスの設
定とを行う。以下、順に説明する。
先だって、検索用テーブル8の作成とインデックスの設
定とを行う。以下、順に説明する。
【0014】(1)検索用テーブル8の作成 図2は元テーブルの具体例を示す図、図3は検索用テー
ブルを作成する際の処理の流れを示すフローチャート、
図4は検索用文字列の切り出し方法を説明する図であ
る。なお、この検索用テーブル8は、元テーブル6の属
性のうち、検索対象となりそうな属性(例えば属性の型
が文字列であるもので、1つでも複数でも良い)に対し
てあらかじめ作成されるものである。
ブルを作成する際の処理の流れを示すフローチャート、
図4は検索用文字列の切り出し方法を説明する図であ
る。なお、この検索用テーブル8は、元テーブル6の属
性のうち、検索対象となりそうな属性(例えば属性の型
が文字列であるもので、1つでも複数でも良い)に対し
てあらかじめ作成されるものである。
【0015】切り出し部7は、検索対象となりそうな属
性(ここでは、属性1とする)から文字列、すなわち
「AZBYCXDW」を読み出し、図4に示すように、
文字列を構成する各文字から末尾文字までを切り出し
て、検索用文字列を作成する(S1)。次に、検索用テ
ーブル作成部9が、切り出し部7によって作成された検
索用文字列を用いて検索用テーブル8を作成する(S
2)。
性(ここでは、属性1とする)から文字列、すなわち
「AZBYCXDW」を読み出し、図4に示すように、
文字列を構成する各文字から末尾文字までを切り出し
て、検索用文字列を作成する(S1)。次に、検索用テ
ーブル作成部9が、切り出し部7によって作成された検
索用文字列を用いて検索用テーブル8を作成する(S
2)。
【0016】図5は図2の元テーブルに基づいて作成さ
れた検索用テーブルの一例を示す図で、図に示すよう
に、検索用テーブル8は、レコードID(以下、RID
と記す)と、該当検索用文字列の元の文字列の元テーブ
ル6におけるRID(元RID)と、検索用文字列の3
つのカラムで構成される。
れた検索用テーブルの一例を示す図で、図に示すよう
に、検索用テーブル8は、レコードID(以下、RID
と記す)と、該当検索用文字列の元の文字列の元テーブ
ル6におけるRID(元RID)と、検索用文字列の3
つのカラムで構成される。
【0017】(2)インデックスの設定 そして、検索用テーブル8の検索用文字列にインデック
スを設定する。ここでは、そのインデックスとしてBツ
リーを用いるものとする。図6は、図5に示した検索用
テーブル8について、検索用文字列をキーとして大小関
係を設定したBツリーの一例を示す図である。ここで、
Bツリーとは、枝が一方に偏よることなく高さが一定に
なるように構成された木で、親は左の子より大きく、右
の子より小さいという性質を有しているものである。な
お、ここでは英文字A〜Zには昇順にユニークな文字コ
ードが付与されているものとし、Bツリーを構築するた
めのその大小は、各検索用文字列の先頭の文字コードに
よって決められるものとする。但し、その文字コードが
同じ場合には、後続する文字の文字コードで比較するも
のとし、これも同一の場合には、順次、文字を繰り下げ
て比較するものとする。また、図6において検索用文字
列の右隣の数字は、当該検索用文字列の検索用テーブル
8におけるRIDを示している。
スを設定する。ここでは、そのインデックスとしてBツ
リーを用いるものとする。図6は、図5に示した検索用
テーブル8について、検索用文字列をキーとして大小関
係を設定したBツリーの一例を示す図である。ここで、
Bツリーとは、枝が一方に偏よることなく高さが一定に
なるように構成された木で、親は左の子より大きく、右
の子より小さいという性質を有しているものである。な
お、ここでは英文字A〜Zには昇順にユニークな文字コ
ードが付与されているものとし、Bツリーを構築するた
めのその大小は、各検索用文字列の先頭の文字コードに
よって決められるものとする。但し、その文字コードが
同じ場合には、後続する文字の文字コードで比較するも
のとし、これも同一の場合には、順次、文字を繰り下げ
て比較するものとする。また、図6において検索用文字
列の右隣の数字は、当該検索用文字列の検索用テーブル
8におけるRIDを示している。
【0018】(3)検索処理 検索処理は、上述のようにして設定されたインデック
ス、すなわちBツリーに対して先頭文字検索を行い、検
索対象として与えられた文字列(以下、検索対象文字列
という)を検索するものであり、この動作について図面
を参照しながら説明する。
ス、すなわちBツリーに対して先頭文字検索を行い、検
索対象として与えられた文字列(以下、検索対象文字列
という)を検索するものであり、この動作について図面
を参照しながら説明する。
【0019】図7は検索実施時の処理の流れを示すフロ
ーチャートである。以下、元テーブル6の「属性1」か
ら「CX」を検索する場合を例に説明する。
ーチャートである。以下、元テーブル6の「属性1」か
ら「CX」を検索する場合を例に説明する。
【0020】クライアント3は、検索対象文字列「C
X」を含む検索要求をサーバ1に送信する(S11)。
サーバ1はこれを受信すると、Bツリーを先頭文字検索
して先頭が「CX」で始まる文字列の有無を調べる(S
12)。すなわち、まず、検索対象文字列の「CX」と
Bツリーの根である「DW」のそれぞれの先頭文字の文
字コードを比較する。この場合、一致しておらず、C<
Dのため左側の木をたどる。次に、「BYCXDW」で
同様に先頭文字の比較を行う。この場合も一致しておら
ず、C>Bのため右側の木をたどる。次に「CXDW」
で同様に先頭文字を比較すると、C=Cで一致する。そ
こで、後続する文字で比較するとX=Xで一致する。こ
のため、当該検索用文字列は検索対象文字列「CX」を
先頭から含む文字列であると判断される。そして、その
検索用文字列に対応するRID5によって検索用テーブ
ル8から元テーブル6におけるRID(元RID)が1
00であることが認識され、検索対象文字列「CX」が
含まれるレコードを特定する。そして、元テーブル6か
ら「AZBYCXDW」を抽出して(S13)、これを
検索結果としてサーバ1からクライアント3へ送信す
る。クライアント3では、サーバ1からの検索結果が表
示される(S14)。
X」を含む検索要求をサーバ1に送信する(S11)。
サーバ1はこれを受信すると、Bツリーを先頭文字検索
して先頭が「CX」で始まる文字列の有無を調べる(S
12)。すなわち、まず、検索対象文字列の「CX」と
Bツリーの根である「DW」のそれぞれの先頭文字の文
字コードを比較する。この場合、一致しておらず、C<
Dのため左側の木をたどる。次に、「BYCXDW」で
同様に先頭文字の比較を行う。この場合も一致しておら
ず、C>Bのため右側の木をたどる。次に「CXDW」
で同様に先頭文字を比較すると、C=Cで一致する。そ
こで、後続する文字で比較するとX=Xで一致する。こ
のため、当該検索用文字列は検索対象文字列「CX」を
先頭から含む文字列であると判断される。そして、その
検索用文字列に対応するRID5によって検索用テーブ
ル8から元テーブル6におけるRID(元RID)が1
00であることが認識され、検索対象文字列「CX」が
含まれるレコードを特定する。そして、元テーブル6か
ら「AZBYCXDW」を抽出して(S13)、これを
検索結果としてサーバ1からクライアント3へ送信す
る。クライアント3では、サーバ1からの検索結果が表
示される(S14)。
【0021】このように、本実施の形態では、検索対象
に指定された属性の各文字列毎に、当該文字列を構成す
る各文字から末尾文字までの切り出しを行い、各文字が
先頭となる検索用文字列を作成することによってリレー
ショナルデータベースが持つ先頭文字検索機能を利用で
きるようにすると共に、その検索用文字列と該検索用文
字列の元テーブルにおけるRID(元RID)とを含む
検索用テーブル8の検索用文字列にBツリー型のインデ
ックスを設定し、当該Bツリーにおいて検索対象文字列
を先頭文字検索するようにしたので、インデックス機能
により、全レコードをスキャンすることなく、検索対象
文字列が含まれるレコードを高速に特定することができ
る。
に指定された属性の各文字列毎に、当該文字列を構成す
る各文字から末尾文字までの切り出しを行い、各文字が
先頭となる検索用文字列を作成することによってリレー
ショナルデータベースが持つ先頭文字検索機能を利用で
きるようにすると共に、その検索用文字列と該検索用文
字列の元テーブルにおけるRID(元RID)とを含む
検索用テーブル8の検索用文字列にBツリー型のインデ
ックスを設定し、当該Bツリーにおいて検索対象文字列
を先頭文字検索するようにしたので、インデックス機能
により、全レコードをスキャンすることなく、検索対象
文字列が含まれるレコードを高速に特定することができ
る。
【0022】しかしながら、上記の方法では、検索対象
となりそうな属性毎に検索用テーブル8を作成すること
となるため、この作成コスト(時間、領域確保等)は無
視できないものとなってしまう。従って、本実施の形態
は同じ検索用テーブル8に対してある程度の回数、繰り
返し検索を行う場合に特に有効である。
となりそうな属性毎に検索用テーブル8を作成すること
となるため、この作成コスト(時間、領域確保等)は無
視できないものとなってしまう。従って、本実施の形態
は同じ検索用テーブル8に対してある程度の回数、繰り
返し検索を行う場合に特に有効である。
【0023】なお、上記のように指定した属性から、与
えられた文字列を検索するプログラムをユーザ自身が作
成することも可能である。この場合、当該プログラムに
より上記の方法と同等またはそれ以上の速度で検索を行
うことが可能な場合もある。しかしながら、本実施の形
態はリレーショナルデータベースに標準的に備わってい
るインデックス作成機能、先頭文字検索機能を利用する
ことができるため、利用者が応用プログラムを書く手間
を省くことができる。
えられた文字列を検索するプログラムをユーザ自身が作
成することも可能である。この場合、当該プログラムに
より上記の方法と同等またはそれ以上の速度で検索を行
うことが可能な場合もある。しかしながら、本実施の形
態はリレーショナルデータベースに標準的に備わってい
るインデックス作成機能、先頭文字検索機能を利用する
ことができるため、利用者が応用プログラムを書く手間
を省くことができる。
【0024】また、本実施の形態の説明に際しては、文
字コードの順序が感覚的にわかりやすくなるように、英
文字A〜Zでなる文字列で構成されたリレーショナルデ
ータベース5(元テーブル6)を例に挙げて説明した
が、例えば図9に示すような文献データベースでももち
ろんよい。この場合も同様に検索用テーブル8を作成
し、各文字に付与されたユニークな文字コードによって
Bツリー型のインデックスを作成して検索が行なわれ
る。また、上記には、検索結果として、指定された属性
中の文字列のうち検索文字列が含まれる文字列を返す場
合を例に説明したが、例えば、図9に示すように、「文
献名」、「要約文」、「掲載頁、行」の3つの属性で構
成された文献データベース5において、例えば属性「要
約文」から検索文字列「適用」が検索された場合、当該
「適用」が掲載されている頁及び行、ここでは「P14
L7」を返すようにしても良い。なお、該当する文字列
が存在しない場合には、その旨を通知する。
字コードの順序が感覚的にわかりやすくなるように、英
文字A〜Zでなる文字列で構成されたリレーショナルデ
ータベース5(元テーブル6)を例に挙げて説明した
が、例えば図9に示すような文献データベースでももち
ろんよい。この場合も同様に検索用テーブル8を作成
し、各文字に付与されたユニークな文字コードによって
Bツリー型のインデックスを作成して検索が行なわれ
る。また、上記には、検索結果として、指定された属性
中の文字列のうち検索文字列が含まれる文字列を返す場
合を例に説明したが、例えば、図9に示すように、「文
献名」、「要約文」、「掲載頁、行」の3つの属性で構
成された文献データベース5において、例えば属性「要
約文」から検索文字列「適用」が検索された場合、当該
「適用」が掲載されている頁及び行、ここでは「P14
L7」を返すようにしても良い。なお、該当する文字列
が存在しない場合には、その旨を通知する。
【0025】なお、本実施の形態においては、インデッ
クスの構造を木構造として説明したが、これに限られた
ものではなく、先頭文字検索を利用できる構造であっ
て、且つ全レコードをスキャンすることなく、検索対象
文字列を含むレコードを特定できる構造であれば良い。
クスの構造を木構造として説明したが、これに限られた
ものではなく、先頭文字検索を利用できる構造であっ
て、且つ全レコードをスキャンすることなく、検索対象
文字列を含むレコードを特定できる構造であれば良い。
【0026】
【発明の効果】以上に説明したように、本発明によれ
ば、検索対象として指定された属性中の文字列毎に、各
文字から末尾文字までを切り出して、文字列を構成する
各文字が先頭文字となる検索用文字列を作成し、検索用
文字列と、検索用文字列の元の文字列が格納されたレコ
ードを特定する情報とを対応付けて格納する検索用テー
ブルを作成し、検索用テーブルの検索用文字列に、その
検索用文字列を構成する各文字の文字コードを先頭文字
から順にキーとしたインデックスを設定し、インデック
スにおいて、検索対象として与えられた文字列を先頭文
字検索するので、インデックスの機能により全レコード
をスキャンすることなく、検索対象文字列を含むレコー
ドを高速に特定することができる。
ば、検索対象として指定された属性中の文字列毎に、各
文字から末尾文字までを切り出して、文字列を構成する
各文字が先頭文字となる検索用文字列を作成し、検索用
文字列と、検索用文字列の元の文字列が格納されたレコ
ードを特定する情報とを対応付けて格納する検索用テー
ブルを作成し、検索用テーブルの検索用文字列に、その
検索用文字列を構成する各文字の文字コードを先頭文字
から順にキーとしたインデックスを設定し、インデック
スにおいて、検索対象として与えられた文字列を先頭文
字検索するので、インデックスの機能により全レコード
をスキャンすることなく、検索対象文字列を含むレコー
ドを高速に特定することができる。
【図1】本発明の一実施の形態のシステム構成を示す図
である。
である。
【図2】元テーブルの具体例を示す図である。
【図3】検索用テーブルを作成する際の処理の流れを示
すフローチャートである。
すフローチャートである。
【図4】検索用文字列の切り出し方法を説明する図であ
る。
る。
【図5】図4の元テーブルに基づいて作成した検索用テ
ーブルの一例を示す図である。
ーブルの一例を示す図である。
【図6】Bツリーの一例を示す図である。
【図7】検索実施時のクライアントとサーバ間の処理の
流れを示すフローチャートである。
流れを示すフローチャートである。
【図8】リレーショナルデータベースの一例を示す図で
ある。
ある。
【図9】リレーショナルデータベースの他の例を示す図
である。
である。
6 元テーブル(リレーショナルデータベース) 8 検索用テーブル
Claims (6)
- 【請求項1】 リレーショナルデータベースにおける検
索方法であって、 検索対象として指定された属性中の文字列毎に、当該文
字列を構成する各文字から末尾文字までを切り出して検
索用文字列を作成する工程と、 該検索用文字列と、当該検索用文字列の元の文字列が格
納されたレコードを特定する情報とを対応付けて格納す
る検索用テーブルを作成する工程と、 該検索用テーブルの検索用文字列に、その検索用文字列
を構成する各文字の文字コードを先頭文字から順にキー
としたインデックスを設定する工程とを有し、 前記インデックスにおいて、検索対象として与えられた
文字列を先頭文字検索し、該当する検索用文字列に基づ
いて検索用テーブルから検索対象文字列を含むレコード
を特定することを特徴とするリレーショナルデータベー
スにおける検索方法。 - 【請求項2】 前記インデックスを木構造としたことを
特徴とする請求項1記載のリレーショナルデータベース
における検索方法。 - 【請求項3】 前記指定された属性に既にインデックス
が設定されている場合、前記木構造によるインデックス
を設定する工程を省略して、既に設定されているインデ
ックスの木構造において、前記検索対象文字列を含むレ
コードを特定することを特徴とする請求項2記載のリレ
ーショナルデータベースにおける検索方法。 - 【請求項4】 リレーショナルデータベースにおける検
索方法であって、 検索対象として指定された属性中の文字列毎に、当該文
字列を構成する各文字から末尾文字までを切り出して検
索用文字列を作成する工程と、 該検索用文字列と、当該検索用文字列の元の文字列が格
納されたレコードを特定する情報とを対応付けて格納す
る検索用テーブルを作成する工程と、 該検索用テーブルの検索用文字列に、その検索用文字列
を構成する各文字の文字コードを先頭文字から順にキー
としたインデックスを設定する工程とを有し、 前記インデックスにおいて、検索対象として与えられた
文字列を先頭文字検索し、該当する検索用文字列に基づ
いて検索用テーブルから検索対象文字列を含むレコード
を特定するリレーショナルデータベースにおける検索方
法をコンピュータに実行させるためのプログラムを記録
したコンピュータ読み取り可能な記録媒体。 - 【請求項5】 前記インデックスを木構造としたリレー
ショナルデータベースにおける検索方法をコンピュータ
に実行させるためのプログラムを記録した請求項4記載
のコンピュータ読み取り可能な記録媒体。 - 【請求項6】 前記指定された属性に既にインデックス
が設定されている場合、前記木構造によるインデックス
を設定する工程を省略して、既に設定されているインデ
ックスの木構造において、前記検索対象文字列を含むレ
コードを特定するリレーショナルデータベースにおける
検索方法をコンピュータに実行させるためのプログラム
を記録した請求項5記載のコンピュータ読み取り可能な
記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11234120A JP2001060197A (ja) | 1999-08-20 | 1999-08-20 | リレーショナルデータベースにおける検索方法及びそのプログラムを記録した記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP11234120A JP2001060197A (ja) | 1999-08-20 | 1999-08-20 | リレーショナルデータベースにおける検索方法及びそのプログラムを記録した記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2001060197A true JP2001060197A (ja) | 2001-03-06 |
Family
ID=16965957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP11234120A Pending JP2001060197A (ja) | 1999-08-20 | 1999-08-20 | リレーショナルデータベースにおける検索方法及びそのプログラムを記録した記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2001060197A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014186545A (ja) * | 2013-03-22 | 2014-10-02 | Yahoo Japan Corp | 検索装置、検索プログラム、および検索方法 |
-
1999
- 1999-08-20 JP JP11234120A patent/JP2001060197A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014186545A (ja) * | 2013-03-22 | 2014-10-02 | Yahoo Japan Corp | 検索装置、検索プログラム、および検索方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2365984C2 (ru) | Поиск произвольного текста и поиск по атрибутам в данных электронного руководства по программам | |
US6886016B2 (en) | Method and system for supporting multivalue attributes in a database system | |
JP4247108B2 (ja) | 構造化文書検索方法、構造化文書検索装置、及びプログラム | |
JP4247135B2 (ja) | 構造化文書記憶方法、構造化文書記憶装置、構造化文書検索方法 | |
JP4237813B2 (ja) | 構造化文書管理システム | |
US20030225787A1 (en) | System and method for storing and retrieving thesaurus data | |
JP2004220176A (ja) | データベース検索システム、その検索方法及び検索に用いられるデータファイルの作成方法並びにデータファイルを格納した記録媒体 | |
CN115203445A (zh) | 多媒体资源搜索方法、装置、设备及介质 | |
JP2004145706A (ja) | マルチメディアデータ検索システム | |
JP2001060197A (ja) | リレーショナルデータベースにおける検索方法及びそのプログラムを記録した記録媒体 | |
JP4091586B2 (ja) | 構造化文書管理システム、索引構築方法及びプログラム | |
JPH10307835A (ja) | 情報処理装置及びその方法 | |
JP2000231560A (ja) | 文書自動分類方式 | |
JP4304226B2 (ja) | 構造化文書管理システム、構造化文書管理方法及びプログラム | |
JPH10283368A (ja) | 情報処理装置及びその方法 | |
JPH0991305A (ja) | 情報処理方法及び装置 | |
JPH1153400A (ja) | 構造化文書検索装置及びプログラムを記録した機械読み取り可能な記録媒体 | |
JP2001092831A (ja) | 文書検索装置及び文書検索方法 | |
JP3279002B2 (ja) | 情報管理装置 | |
JP2990314B2 (ja) | データ管理装置 | |
JPH0816617A (ja) | 文書検索方法及び装置 | |
JP2838972B2 (ja) | 自動索引作成装置 | |
JP2008077673A (ja) | 構造化文書管理システム | |
JPH1097542A (ja) | 全文検索装置及び全文検索方法 | |
JPH05313971A (ja) | リレーショナル・データベースにおけるキーワード管理方式 |