JP3907295B2 - Information retrieval apparatus and method, and computer-readable storage medium - Google Patents
Information retrieval apparatus and method, and computer-readable storage medium Download PDFInfo
- Publication number
- JP3907295B2 JP3907295B2 JP34271197A JP34271197A JP3907295B2 JP 3907295 B2 JP3907295 B2 JP 3907295B2 JP 34271197 A JP34271197 A JP 34271197A JP 34271197 A JP34271197 A JP 34271197A JP 3907295 B2 JP3907295 B2 JP 3907295B2
- Authority
- JP
- Japan
- Prior art keywords
- evaluation
- primitive
- information
- database
- evaluated
- 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.)
- Expired - Lifetime
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、情報検索装置及びその方法に関し、特に異種データベース統合システム、或いはデータベース(以後DBと略記する)システムと検索者とのインターフェース及びその検索方法に関するものである。
【0002】
【従来の技術】
コンピュータネットワークが普及することによって、個人の端末から種々のDBにアクセスすることが可能になってきた。ネットワークからアクセスできるDBは様々な言語で記述された管理システムで管理されている。これら様々なDBに格納されている書式や意味の異なるデータを統一的に扱うことができれば、ネットワークにつながったDBの利用価値は更に高くなる。異なる言語や環境で構築されているコンピュータシステムをユーザーに意識させずにアクセスする技術は、マルチメディアDB、分散コンピューティングシステム等と称して提供されている。
【0003】
例えば、特開平7−65032号公報記載の技術では、以下のように実現されている。ただし、以下では、ユーザー端末で使用できる問い合わせ言語を標準言語と呼び、そこでのデータ表現形式を標準形式と呼ぶ。マルチデータベースシステム(以後MDBシステムと略記する)は、以下のライブラリ及びテーブルを予め持っている。
(1) ユーザー端末で使っている標準言語と、検索対象DBで使われているDB言語との言語変換用ライブラリ
(2) 標準形式で表現されたデータを、それぞれのDB固有の表現形式に変換する、あるいは逆の変換を行うデータ変換用ライブラリ
(3) DB名と、対応する言語変換用ライブラリ、データ変換用ライブラリとを対応付ける管理テーブル
【0004】
上記技術では、ユーザーは、検索対象DB名と問い合わせを標準言語で記述する。すると、システムは、対象DB名から管理テーブルを用いて、対象DBに対応する言語変換ライブラリとデータ変換ライブラリの番号を取得する。そして、ユーザーが標準言語で記述した問い合わせを、言語変換ライブラリを用いて対象DBで用いられている言語に変換して、対象DBへ送信する。この問い合わせに対する結果が対象DBから送信されると、システムは、データ変換ライブラリを用いて標準形式に変換し、ユーザーに送信する。
【0005】
また別の実現方法として、特開平5−342123号公報記載の技術では、ネットワークシステムのコマンド転送方式を実現している。ここで実現しているシステムでは、ユーザーが入力したコマンド列を解析し、要求された処理を実行するためのコンピュータネットワーク上のシステムを決定し、そのシステムでサポートされているコマンドにユーザー指定のコマンドを変換することができる。このようなシステムは、コマンドを問い合わせ文、対象とするシステムをDB管理システムと考えれば、MDBシステムに応用できる。
【0006】
【発明が解決しようとしている課題】
しかしながら、従来方式には以下のような課題がある。
【0007】
まず、従来方式において、ユーザーが記述したスクリプトを適用順( applicative-order )で評価する場合には、ユーザーが要求している最終結果を得るために何ら貢献しない手続きやデータも評価(実行)してしまう。
【0008】
通常のプログラムの場合、不必要な評価の実行による計算量の増大よりも、インタープリタのコンパクト性の方が効果が大きいので、このような適用順評価は好まれる傾向にある。しかし、分散DB統合システムでは、ネットワークの通信量が重大な評価項目となるので、不必要な手続きやデータを評価するために通信チャネルを使用することは極力避けることが望ましい。
【0009】
更に、商用DBでは、部分問い合わせを組み合わせた問い合わせに対して、それらの評価順を、処理速度が最も速くなるような順に並べ替える最適化機構が提供されている。ところが、MDBシステムが部分問い合わせを適用順で評価してしまうと、各DBが提供している最適化機構が利用できなくなってしまう。
【0010】
【課題を解決するための手段】
上記課題を解決するために、本発明によれば、複数のデータベースを利用可能な情報検索装置に、入力されたスクリプト形式の検索クエリーをユーザープリミティブを含む1つ以上のプリミティブに展開する展開手段と、展開された各プリミティブにつき、評価を担当するデータベースを選択し、該データベースを特定する評価担当データベース情報と、当該プリミティブの評価のために評価すべき更なるプリミティブを特定するプリミティブ情報とを登録する構築手段と、前記評価担当データベース情報を参照して、各プリミティブを該プリミティブの評価を担当するデータベースを用いて評価する評価手段と、前記プリミティブ情報を参照して、前記評価手段により、前記ユーザープリミティブの評価のために評価すべきプリミティブの各々を評価するように制御する制御手段と、前記ユーザープリミティブの評価結果を、前記検索クエリーの結果として出力する出力手段とを備える。
【0011】
また、本発明の他の態様によれば、展開手段と、構築手段と、評価手段と、制御手段と、出力手段とを備え、複数のデータベースを利用可能な情報検索装置における情報検索方法に、前記展開手段が、入力されたスクリプト形式の検索クエリーをユーザープリミティブを含む1つ以上のプリミティブに展開する展開工程と、前記構築手段が、展開された各プリミティブにつき、評価を担当するデータベースを選択し、該データベースを特定する評価担当データベース情報と、当該プリミティブの評価のために評価すべき更なるプリミティブを特定するプリミティブ情報とを登録する構築工程と、前記評価手段が、前記評価担当データベース情報を参照して、各プリミティブを該プリミティブの評価を担当するデータベースを用いて評価する評価工程と、前記制御手段が、前記プリミティブ情報を参照して、前記評価手段により、前記ユーザープリミティブの評価のために評価すべきプリミティブの各々を評価するように制御する制御工程と、前記出力手段が、前記ユーザープリミティブの評価結果を、前記検索クエリーの結果として出力する出力工程とを備える。
【0012】
また、本発明の他の態様によれば、コンピュータ読み取り可能な記憶媒体に、コンピュータに、入力されたスクリプト形式の検索クエリーをユーザープリミティブを含む1つ以上のプリミティブに展開する展開工程と、展開された各プリミティブにつき、評価を担当するデータベースを選択し、該データベースを特定する評価担当データベース情報と、当該プリミティブの評価のために評価すべき更なるプリミティブを特定するプリミティブ情報とを登録する構築工程と、前記評価担当データベース情報を参照して、各プリミティブを該プリミティブの評価を担当するデータベースを用いて評価する評価工程と、前記プリミティブ情報を参照して、前記評価手段により、前記ユーザープリミティブの評価のために評価すべきプリミティブの各々を評価するように制御する制御工程と、前記ユーザープリミティブの評価結果を、前記検索クエリーの結果として出力する出力工程とを実行させることを特徴とする情報検索プログラムを記憶している。
【0013】
【発明の実施の形態】
(実施形態1)
図1は、本発明の1実施形態である異種データベース統合システムの機能構成を表す図である。装置の各部は、以下に説明する機能を実現するものであれば、それぞれが専用のプログラムメモリやプロセッサを含む機器であってもよいし、複数の機能部を、同一のCPUがROMやディスクメモリ等に記憶された各機能プログラムを実行することにより、あるいは各機能に対応する特定のハードウェアを制御する制御プログラムを実行することにより実現してもよい。
【0014】
以下、図1の各部について説明する。
【0015】
<異種DB統合システム101>
異種DB統合システム101は、通信制御装置110、プリミティブ解釈装置111、DB選択装置112、リソース表113、ライブラリ114、パラメタ表115、LDBプロパティ表116を備える。詳細は後述する。リソース表113はDB選択装置112で利用され、ライブラリ114、パラメタ表115、及びLDBプロパティ表116はプリミティブ解釈装置111で利用される。
【0016】
図6は、異種DB統合システム101のハードウェア構成を示すブロック図である。
【0017】
同図において、601は、バスを介してシステム各部を制御し、各種プログラムを実行するCPUである。602は、I/Oであり、ユーザからの検索クエリーを受け取ったり、データベースに問い合わせを出し、その結果を受信する。603は、ROMであり、固定データや固定プログラムを記憶する。604は、RAMであり、ユーザからの入力データや内部変数、検索結果など、処理に必要なデータを一時記憶するためのデータエリアを有し、補助記憶装置605からロードされる各種プログラムを記憶するためのプログラムエリアを有する。605は、補助記憶装置であり、フロッピーディスクやハードディスクなどの記憶媒体を用いて、各種プログラムやテーブルなどを記憶する。
【0018】
<ローカルデータベースシステムおよびローカルデータベース>
ローカルデータベースシステム(LDBS−n)102〜105は、ローカルデータベース(LDB−n)106〜109を管理するシステムであり、コンピュータネットワーク117を介して送信される問い合わせ文を解釈実行し、処理結果を返送する。ローカルDBはリレーショナルDB等であり、ローカルDBシステムはSQLサーバ等で実現されている通常のDBとDB管理システムである。
【0019】
<通信制御装置110>
通信制御装置110は、異種DB統合システム101とコンピュータネットワーク117との信号の送受信を制御する装置であり、マルチタスク・マルチユーザ対応のミドルウェアを含む。
【0020】
<プリミティブ解釈装置111>
プリミティブ解釈装置111は、ユーザー端末118からコンピュータネットワーク117、及び通信制御装置110を介して送信されるスクリプトをプリミティブに変換し実行する。ここでスクリプトとはいわゆる高級言語であり、プリミティブの組み合わせで実現される処理である。
【0021】
図2は、プリミティブ解釈装置の処理の流れを示すフローチャートである。プリミティブ解釈装置111の処理の流れを図2を用いて説明する。
【0022】
ステップS201では、スクリプトを1行取得する。
【0023】
ステップS202では、ライブラリ114をもとにしてスクリプトをプリミティブに展開し、スクリプトの引数を、各プリミティブの引数に構成し直す。以下、プリミティブの個数をKとする。
【0024】
ここで言うプリミティブとは、引数リストarg、及び作用モード変数modeという内部変数と、構築const()(コンストラクタと呼ぶ)、評価eval()(エバリュエータと呼ぶ)という2つのメソッドを含むオブジェクトとして実現されるものである。プリミティブは2つ以下の引数を持つ。作用モード変数は、LAZYとEAGERという2値を取り、コンストラクタconst()はプリミティブが宣言されたときに実行されるメソッドであり、エバリュエータeval()はプリミティブの戻り値を評価するメソッドである。エバリュエータでは、データベース検索の基本オペレーションであるセレクション、プロジェクション、ジョイン等を実行する。
【0025】
ステップS203では、Jに1を設定する。ステップS204では、図3につき後述する手順で、J番目のプリミティブのコンストラクタを実行する。その結果、パラメタ表115にJ番目のプリミティブ名が、評価状況及び評価担当LDBのアドレスと共に登録される。
【0026】
ステップS205では、JをJ+1に更新する。ステップS206では、JがKを超えたかどうか検査し、超えていればステップS207に進み、超えていなければステップS204からステップS206までの処理を繰り返す。
【0027】
ステップS207では、変換すべきスクリプトが残っているかどうかを検査し、残っていなければ処理を終了する。残っていればステップS201からステップS207までの処理を繰り返す。
【0028】
コンストラクタconst()の処理の流れを図3を用いて説明する。
【0029】
ステップS301では、メッセージを引数リストargに保存する。引数リストは、プリミティブを評価するときに評価すべきプリミティブ名の列として与えられる。
【0030】
ステップS302では、Jを1に設定する。ステップS303では、J番目のプリミティブ名(以下PRMJ と書く)がパラメタ表115に登録されているかどうかを検査し、登録されていればステップS306に進み、登録されていなければステップS304に進む。
【0031】
ステップS304では、DB選択装置112でPRMJを評価できるLDBを選択し、LDBプロパティ表116を用いて、選択したLDBのアドレスを取得し、当該LDBに、PRMJのビューを生成するためのコマンドを送信する。これにより、引数がLDBSにビューの形式で格納される。ステップS305では、 PRMJをパラメタ表に追加し、その評価状況を“未”に設定し、評価担当LDBのアドレスとして取得したLDBのアドレスを設定する。
【0032】
ステップS306では、JをJ+1に更新する。ステップS307では、JがKを超えたかどうか検査し、超えていればステップS308へ進み、超えていなければステップS303からステップS307までを繰り返す。
【0033】
ステップS308では、作用モード変数がLAZYかどうか検査し、そうであれば処理を終了し、そうでなければステップS309に進む。ステップS309では、エバリュエータeval()を実行する。
【0034】
図4は、エバリュエータeval()の処理手順を示すフローチャートである。プリミティブXのエバリュエータX.eval()の処理の流れを図4を用いて説明する。
【0035】
ステップS401では、パラメタ表115を用いて、Xの評価状況を取得する。ステップS402では、Xの評価状況が“未”ならステップS404へ進み、“済”ならステップS403へ進む。
【0036】
ステップS404では、引数リストに格納されている各プリミティブの評価担当LDBアドレスを取得する。
【0037】
ステップS405では、取得した評価担当LDBアドレスが全てXと同じであればステップS406へ、そうでなければステップS407へ進む。
【0038】
ステップS406では、Xを評価するために必要な引数の評価担当LDBがXと同じであるので、これら引数を個々に評価する必要が無い。直接Xを評価することによって、LDBSにビューの形式で格納されている引数が自動的に評価されるからである。よって、直接Xを評価し、その結果をポインタvalueの内容として格納し、ステップS403へ進む。
【0039】
ステップS407では、Jを1に設定する。ステップS408では、引数リストのJ番目のプリミティブ名PRMJを取得する。ステップS409では、 PRMJ.eval()を実行する。ステップS410では、評価状況を“済”に変更する。
【0040】
ステップS411では、JをJ+1に更新する。ステップS412では、JがKを超えるかどうか検査し、超えればステップS412に進み、超えなければステップS407からステップS412を繰り返す。
【0041】
ステップS413では、引数の値をもとにプリミティブを評価する。例えば引数が2個の場合は、X(PRM1, PRM2)を評価する。具体的にはX(PRM1, PRM2)を対応するLDBSの言語に変換して、そのLDBSに送信する。このとき、エバリュエータは、対象LDBの情報を含む問い合わせ情報と、エバリュエータ自身の情報を、通信制御装置110に送信した時点でCPUの占有権を放棄し、通信制御装置110は、このような問い合わせ情報に基づいて全ての問い合わせを行い、LDBからの回答待ち状態に移行し、回答を受信した順に、エバリュエータの情報に基づいてそのエバリュエータへ回答の送信を実行する。エバリュエータは、そのLDBから受信した結果をポインタvalueの内容として格納し、ステップS403へ進む。
【0042】
ステップS403では、プリミティブXの戻り値にポインタvalueが指す内容を格納し、終了する。
【0043】
ところで、プリミティブの特殊なクラスとして自由変数プリミティブ、ユーザープリミティブがある。自由変数プリミティブでは、作用モード変数はLAZY、const()では受け取ったプリミティブ名を自分自身の関数値valueとして設定し、eval()では、その関数値valueを返す。自由変数プリミティブは、例えばユーザーのスクリプトの、例えば、“x = 12”のxに対して生成される。
【0044】
ユーザープリミティブの作用モード変数はEAGERである。ユーザーから与えられた検索クエリーの最終結果を与える部分問い合わせがユーザープリミティブに展開される。従って、ユーザーの検索クエリーを展開したプリミティブ列の中には、必ず1つのユーザープリミティブが含まれており、しかもユーザープリミティブを評価することによって与えられた検索クエリーの結果が得られることになる。逆に、ユーザープリミティブの評価に関わりのないプリミティブの評価は検索クエリーの結果を求める上で不要である。また、ユーザープリミティブの作用モード変数はEAGERであるので、ユーザープリミティブのコンストラクタconst()を実行する際に、ユーザープリミティブのエバリュエータeval()が実行される。
【0045】
<データベース選択装置112>
DB選択装置112は、リソース表113を参照して、プリミティブXの引数PRM1, PRM2をデータとして含むDBのリストを返信する。リソース表113には、データ名と、それを含むDB名のリストとの対応が格納されている。
【0046】
図5は、検索処理の流れを示すフローチャートである。以上説明した構成要素をもとに、図5につき、検索処理の流れを説明する。
【0047】
まず、ステップS501で、ユーザー端末118から異種DB統合システム101に、検索のクエリーが送信される。
【0048】
次に、ステップS502で、プリミティブ解釈装置111で、スクリプトである検索クエリーをプリミティブに展開し、ステップS503で、各プリミティブのコンストラクタを実行する。
【0049】
そして、ステップS504で、検索のクエリーの結果に必要なユーザープリミティブを評価し、ステップS505で、結果をユーザー端末に送信する。
【0050】
尚、本発明は、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、装置あるいはシステムに供給し、装置あるいはシステム内のコンピュータが記憶媒体に格納されたプログラムコードを読み出して実行することによって達成してもよい。
【0051】
更に、装置あるいはシステム内のコンピュータが記憶媒体に格納されたプログラムコードを読み出して実行することによって、上述した実施形態の機能を直接実現するばかりでなく、そのプログラムコードの指示に基づいて、コンピュータ上で稼動しているOSなどの処理により、上述の機能を実現される場合も含まれる。
【0052】
これらの場合、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0053】
【発明の効果】
以上説明したように、本発明によれば、ユーザーが要求する最終結果を得るために不要な手続きおよびデータの評価を回避することができる。これにより、評価のための通信のトラヒックを減少させることができる。
【0054】
更に、各データベースに対する部分問い合わせをそのデータベースにビューとして格納し、これらビューとして格納された複数の部分問い合わせを一括して処理することにより、データベースに固有の最適化機能を十分に利用することができる。
【0055】
更に、それぞれのプリミティブの評価の実行が、それぞれのプリミティブの評価の実行によって制御されるので、プリミティブのインタープリタがプリミティブのスケジューリングを行う必要が無くなった。これによってインタープリタの設計が容易になり、プログラムサイズが小さくできる。
【0056】
更に、プリミティブが作用モード変数を持ち、該作用モード変数に基づいて、プリミティブの評価を実行するかどうかを決定するようにしたことにより、適用順評価のもとでの遅延評価を選択することが可能となる。
【0057】
更に、評価を担当するデータベースの情報を含む問い合わせ情報と、該問い合わせを要求したプリミティブの情報とを、前記通信手段に送信した時点でCPUの占有権を開放し、前記問い合わせ情報に基づいて全ての問い合わせを行い、データベースからの回答待ち状態に移行し、前記プリミティブの情報に基づいて、当該プリミティブの評価のために受信した順に回答を送信するようにしたことによって、複数のデータベースへの問い合わせを並列に実行することができる。
【図面の簡単な説明】
【図1】実施形態の異種データベース統合システムの機能構成図である。
【図2】プリミティブ解釈装置の処理の流れを示すフローチャートである。
【図3】プリミティブのコンストラクタの処理の流れを示すフローチャートである。
【図4】プリミティブのエバリュエータの処理の流れを示すフローチャートである。
【図5】検索処理の流れを示すフローチャートである。
【図6】異種DB統合システムのハードウェア構成を示すブロック図である。[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an information search apparatus and method, and more particularly to an interface between a heterogeneous database integration system or a database (hereinafter abbreviated as DB) system and a searcher and a search method thereof.
[0002]
[Prior art]
With the spread of computer networks, it has become possible to access various DBs from personal terminals. DBs accessible from the network are managed by management systems written in various languages. If data with different formats and meanings stored in these various DBs can be handled in a unified manner, the utility value of the DB connected to the network will be even higher. A technology for accessing a computer system constructed in a different language or environment without the user's awareness is provided as a multimedia DB, a distributed computing system, or the like.
[0003]
For example, the technique described in Japanese Patent Laid-Open No. 7-65032 is realized as follows. However, in the following, an inquiry language that can be used on the user terminal is referred to as a standard language, and a data representation format there is referred to as a standard format. A multi-database system (hereinafter abbreviated as MDB system) has the following libraries and tables in advance.
(1) Library for language conversion between the standard language used in the user terminal and the DB language used in the search target database
(2) Data conversion library that converts data expressed in the standard format into the representation format specific to each DB, or reverse conversion
(3) Management table for associating DB names with corresponding language conversion libraries and data conversion libraries [0004]
In the above technique, a user describes a search target DB name and a query in a standard language. Then, the system acquires the numbers of the language conversion library and the data conversion library corresponding to the target DB using the management table from the target DB name. Then, the query described in the standard language by the user is converted into the language used in the target DB by using the language conversion library, and transmitted to the target DB. When the result for this inquiry is transmitted from the target DB, the system converts it to a standard format using the data conversion library and transmits it to the user.
[0005]
As another implementation method, the technique described in Japanese Patent Laid-Open No. 5-342123 implements a command transfer method for a network system. In the system realized here, the command sequence input by the user is analyzed, the system on the computer network for executing the requested processing is determined, and the command specified by the system is specified as the command supported by the system. Can be converted. Such a system can be applied to an MDB system if the command is a query statement and the target system is a DB management system.
[0006]
[Problems to be solved by the invention]
However, the conventional method has the following problems.
[0007]
First, in the conventional method, when the script written by the user is evaluated in the application order (applicative-order), the procedure and data that do not contribute at all to obtain the final result requested by the user are evaluated (executed). End up.
[0008]
In the case of a normal program, since the compactness of the interpreter is more effective than the increase in the amount of calculation due to the execution of unnecessary evaluation, such application order evaluation tends to be preferred. However, in a distributed DB integrated system, the amount of network traffic becomes a critical evaluation item, so it is desirable to avoid using communication channels to evaluate unnecessary procedures and data as much as possible.
[0009]
Further, the commercial DB provides an optimization mechanism that rearranges the evaluation order of queries that combine partial queries in the order in which the processing speed is the fastest. However, if the MDB system evaluates partial queries in the order of application, the optimization mechanism provided by each DB cannot be used.
[0010]
[Means for Solving the Problems]
In order to solve the above-described problem, according to the present invention, an information retrieval apparatus that can use a plurality of databases, an expansion means for expanding an input search query in script format into one or more primitives including user primitives; For each developed primitive, a database in charge of evaluation is selected, and database information for evaluation in which the database is specified and primitive information in which a further primitive to be evaluated for evaluation of the primitive is registered. A construction means, an evaluation means for evaluating each primitive using a database in charge of evaluation of the primitive with reference to the evaluation person in charge database information, and the user primitive by the evaluation means with reference to the primitive information. Of primitives to be evaluated for evaluation of And a control means for controlling so as to evaluate the people, the evaluation result of the user primitive, and output means for outputting as a result of the search query.
[0011]
According to another aspect of the present invention, there is provided an information search method in an information search apparatus including an expansion means, a construction means, an evaluation means, a control means, and an output means, and is capable of using a plurality of databases. The expansion means expands the input script-type search query into one or more primitives including user primitives, and the construction means selects a database in charge of evaluation for each expanded primitive. A construction step of registering database information for evaluating the database for identifying the database and primitive information for identifying further primitives to be evaluated for evaluating the primitive, and the evaluation means refers to the database information for the evaluation And evaluate each primitive using the database responsible for evaluating the primitive. A control step in which the control means refers to the primitive information so that the evaluation means evaluates each primitive to be evaluated for the evaluation of the user primitive; and the output means And an output step of outputting the evaluation result of the user primitive as a result of the search query.
[0012]
Further, according to another aspect of the present invention, an expansion step of expanding an input script-type search query into one or more primitives including user primitives on a computer-readable storage medium. For each primitive, a construction step of selecting a database in charge of evaluation and registering database information of an evaluation person specifying the database and primitive information specifying a further primitive to be evaluated for evaluation of the primitive; An evaluation step of evaluating each primitive using a database in charge of evaluation of the primitive with reference to the evaluation person database information, and evaluation of the user primitive by the evaluation means with reference to the primitive information. Each of the primitives to be evaluated for And a control step of controlling so as to evaluate the results of evaluation of user primitive, stores information retrieval program characterized by executing the output step of outputting as a result of the search query.
[0013]
DETAILED DESCRIPTION OF THE INVENTION
(Embodiment 1)
FIG. 1 is a diagram showing a functional configuration of a heterogeneous database integration system according to an embodiment of the present invention. Each unit of the device may be a device including a dedicated program memory or processor as long as it realizes the functions described below, or a plurality of functional units are connected to a ROM or disk memory by the same CPU. It may be realized by executing each function program stored in the above or by executing a control program for controlling specific hardware corresponding to each function.
[0014]
Hereinafter, each part of FIG. 1 will be described.
[0015]
<Heterogeneous
The heterogeneous
[0016]
FIG. 6 is a block diagram showing a hardware configuration of the heterogeneous
[0017]
In the figure,
[0018]
<Local database system and local database>
The local database system (LDBS-n) 102 to 105 is a system for managing the local database (LDB-n) 106 to 109, interprets and executes a query sent via the
[0019]
<
The
[0020]
<Primitive interpretation device 111>
The primitive interpretation device 111 converts a script transmitted from the
[0021]
FIG. 2 is a flowchart showing the flow of processing of the primitive interpretation device. A processing flow of the primitive interpretation device 111 will be described with reference to FIG.
[0022]
In step S201, one line of script is acquired.
[0023]
In step S202, the script is expanded into primitives based on the
[0024]
The primitive mentioned here is realized as an object that includes an argument list arg, an internal variable called operation mode variable mode, and two methods called construction const () (called a constructor) and evaluation eval () (called an evaluator). Is. A primitive has no more than two arguments. The action mode variable takes two values, LAZY and EAGER, the constructor const () is a method that is executed when a primitive is declared, and the evaluator eval () is a method that evaluates the return value of the primitive. The evaluator executes selection, projection, join, etc., which are basic operations for database search.
[0025]
In step S203, J is set to 1. In step S204, the constructor of the Jth primitive is executed in the procedure described later with reference to FIG. As a result, the Jth primitive name is registered in the parameter table 115 together with the evaluation status and the address of the evaluation LDB.
[0026]
In step S205, J is updated to J + 1. In step S206, it is checked whether or not J exceeds K. If it exceeds, the process proceeds to step S207, and if not, the processes from step S204 to step S206 are repeated.
[0027]
In step S207, it is checked whether or not there remains a script to be converted, and if not, the process ends. If it remains, the processing from step S201 to step S207 is repeated.
[0028]
The processing flow of the constructor const () will be described with reference to FIG.
[0029]
In step S301, the message is stored in the argument list arg. The argument list is given as a sequence of primitive names to be evaluated when evaluating the primitives.
[0030]
In step S302, J is set to 1. In step S303, it is checked whether or not the J-th primitive name (hereinafter referred to as PRM J ) is registered in the parameter table 115. If it is registered, the process proceeds to step S306.
[0031]
In step S304, the
[0032]
In step S306, J is updated to J + 1. In step S307, it is checked whether J exceeds K. If it exceeds, the process proceeds to step S308, and if not, steps S303 to S307 are repeated.
[0033]
In step S308, it is checked whether or not the action mode variable is LAZY. If so, the process ends. If not, the process proceeds to step S309. In step S309, the evaluator eval () is executed.
[0034]
FIG. 4 is a flowchart showing a processing procedure of the evaluator eval (). The flow of processing of the evaluator X.eval () of the primitive X will be described with reference to FIG.
[0035]
In step S401, the evaluation status of X is acquired using the parameter table 115. In step S402, if the evaluation status of X is “not yet”, the process proceeds to step S404, and if “completed”, the process proceeds to step S403.
[0036]
In step S404, the LDB address in charge of evaluation of each primitive stored in the argument list is acquired.
[0037]
In step S405, if all the acquired LDB addresses for evaluation are the same as X, the process proceeds to step S406, and if not, the process proceeds to step S407.
[0038]
In step S406, since the LDB in charge of evaluating the arguments necessary for evaluating X is the same as X, it is not necessary to evaluate these arguments individually. This is because by directly evaluating X, the arguments stored in the view format in LDBS are automatically evaluated. Therefore, X is directly evaluated, the result is stored as the content of the pointer value, and the process proceeds to step S403.
[0039]
In step S407, J is set to 1. In step S408, the J-th primitive name PRM J in the argument list is acquired. In step S409, PRM J .eval () is executed. In step S410, the evaluation status is changed to “Done”.
[0040]
In step S411, J is updated to J + 1. In step S412, it is checked whether J exceeds K. If it exceeds, the process proceeds to step S412. If not, step S407 to step S412 are repeated.
[0041]
In step S413, the primitive is evaluated based on the argument value. For example, when there are two arguments, X (PRM 1 , PRM 2 ) is evaluated. Specifically, X (PRM 1 , PRM 2 ) is converted into the corresponding LDBS language and transmitted to the LDBS. At this time, the evaluator gives up the right to occupy the CPU when the inquiry information including the information of the target LDB and the information of the evaluator itself are transmitted to the
[0042]
In step S403, the contents indicated by the pointer value are stored in the return value of the primitive X, and the process ends.
[0043]
There are free variable primitives and user primitives as special classes of primitives. For free variable primitives, the action mode variable sets the received primitive name as its own function value value in LAZY and const (), and returns the function value value in eval (). Free variable primitives are generated, for example, for x in the user's script, for example “x = 12”.
[0044]
The user primitive action mode variable is EAGER. A partial query that gives the final result of the search query given by the user is expanded into user primitives. Therefore, a primitive string in which a user search query is expanded always includes one user primitive, and a given search query result can be obtained by evaluating the user primitive. On the other hand, evaluation of primitives that are not related to evaluation of user primitives is unnecessary for obtaining a search query result. Also, since the user primitive action mode variable is EAGER, the user primitive evaluator eval () is executed when the user primitive constructor const () is executed.
[0045]
<
The
[0046]
FIG. 5 is a flowchart showing the flow of search processing. Based on the components described above, the flow of search processing will be described with reference to FIG.
[0047]
First, in step S501, a search query is transmitted from the
[0048]
In step S502, the primitive interpretation device 111 expands the search query, which is a script, into primitives. In step S503, the constructor of each primitive is executed.
[0049]
In step S504, user primitives necessary for the search query result are evaluated, and in step S505, the result is transmitted to the user terminal.
[0050]
According to the present invention, a storage medium storing software program codes for realizing the functions of the above-described embodiments is supplied to an apparatus or system, and a computer in the apparatus or system reads out the program codes stored in the storage medium. It may be achieved by executing.
[0051]
Further, the computer in the apparatus or system reads out and executes the program code stored in the storage medium, thereby not only directly realizing the functions of the above-described embodiments but also on the computer based on the instruction of the program code. The case where the above-described functions are realized by processing of an OS or the like that is running on is also included.
[0052]
In these cases, the storage medium storing the program code constitutes the present invention.
[0053]
【The invention's effect】
As described above, according to the present invention, it is possible to avoid unnecessary procedures and data evaluation in order to obtain the final result requested by the user. As a result, communication traffic for evaluation can be reduced.
[0054]
Furthermore, the partial query for each database is stored as a view in the database, and a plurality of partial queries stored as these views are processed at once, so that the optimization function unique to the database can be fully utilized. .
[0055]
Furthermore, the execution of each primitive evaluation is controlled by the execution of each primitive evaluation, eliminating the need for the primitive interpreter to schedule primitives. This facilitates the design of the interpreter and reduces the program size.
[0056]
In addition, since the primitive has an operation mode variable, and based on the operation mode variable, it is determined whether to perform the evaluation of the primitive, so that it is possible to select lazy evaluation under application order evaluation. It becomes possible.
[0057]
Furthermore, when the inquiry information including the information of the database in charge of the evaluation and the information of the primitive that requested the inquiry are transmitted to the communication means, the exclusive right of the CPU is released, and all the information based on the inquiry information is released. Inquiries are made, the system shifts to a response waiting state from the database, and based on the information of the primitive, the responses are transmitted in the order received for evaluation of the primitive, so that inquiries to a plurality of databases are performed in parallel. Can be executed.
[Brief description of the drawings]
FIG. 1 is a functional configuration diagram of a heterogeneous database integration system according to an embodiment.
FIG. 2 is a flowchart showing a flow of processing of a primitive interpretation device.
FIG. 3 is a flowchart showing a process flow of a primitive constructor.
FIG. 4 is a flowchart showing a process flow of a primitive evaluator.
FIG. 5 is a flowchart showing a flow of search processing.
FIG. 6 is a block diagram showing a hardware configuration of a heterogeneous DB integration system.
Claims (15)
入力されたスクリプト形式の検索クエリーをユーザープリミティブを含む1つ以上のプリミティブに展開する展開手段と、
展開された各プリミティブにつき、評価を担当するデータベースを選択し、該データベースを特定する評価担当データベース情報と、当該プリミティブの評価のために評価すべき更なるプリミティブを特定するプリミティブ情報とを登録する構築手段と、
前記評価担当データベース情報を参照して、各プリミティブを該プリミティブの評価を担当するデータベースを用いて評価する評価手段と、
前記プリミティブ情報を参照して、前記評価手段により、前記ユーザープリミティブの評価のために評価すべきプリミティブの各々を評価するように制御する制御手段と、
前記ユーザープリミティブの評価結果を、前記検索クエリーの結果として出力する出力手段とを有することを特徴とする情報検索装置。An information search apparatus that can use a plurality of databases,
Expansion means for expanding an input script-style search query into one or more primitives including user primitives;
A construction that selects a database in charge of evaluation for each developed primitive, and registers database information for evaluation that specifies the database and primitive information that specifies a further primitive to be evaluated for evaluation of the primitive. Means,
With reference to the evaluation person database information, evaluation means for evaluating each primitive using a database in charge of evaluation of the primitive;
Control means for referring to the primitive information and controlling the evaluation means to evaluate each primitive to be evaluated for evaluation of the user primitive;
And an output means for outputting the evaluation result of the user primitive as a result of the search query.
前記評価手段は、評価を担当するデータベースの情報を含む問い合わせ情報と、該問い合わせを要求したプリミティブの情報とを、前記通信手段に送信した時点でCPUの占有権を開放し、
前記通信手段は、前記問い合わせ情報に基づいて全ての問い合わせを行い、データベースからの回答待ち状態に移行し、前記プリミティブの情報に基づいて、当該プリミティブの評価のために受信した順に回答を送信することを特徴とする請求項1に記載の情報検索装置。Communication means for sending an inquiry to the plurality of databases and receiving an answer to the inquiry;
The evaluation unit releases the exclusive right of the CPU when the inquiry information including the information of the database in charge of the evaluation and the information of the primitive that requested the inquiry are transmitted to the communication unit,
The communication means makes all inquiries based on the inquiry information, shifts to a response waiting state from a database, and transmits responses in the order received for evaluation of the primitive based on the primitive information. The information search device according to claim 1.
前記展開手段が、入力されたスクリプト形式の検索クエリーをユーザープリミティブを含む1つ以上のプリミティブに展開する展開工程と、
前記構築手段が、展開された各プリミティブにつき、評価を担当するデータベースを選択し、該データベースを特定する評価担当データベース情報と、当該プリミティブの評価のために評価すべき更なるプリミティブを特定するプリミティブ情報とを登録する構築工程と、
前記評価手段が、前記評価担当データベース情報を参照して、各プリミティブを該プリミティブの評価を担当するデータベースを用いて評価する評価工程と、
前記制御手段が、前記プリミティブ情報を参照して、前記評価手段により、前記ユーザープリミティブの評価のために評価すべきプリミティブの各々を評価するように制御する制御工程と、
前記出力手段が、前記ユーザープリミティブの評価結果を、前記検索クエリーの結果として出力する出力工程とを有することを特徴とする情報検索方法。 An information search method in an information search apparatus comprising a deployment means, a construction means, an evaluation means, a control means, and an output means, and is capable of using a plurality of databases ,
The expanding means expands the input script-type search query into one or more primitives including user primitives;
The construction means selects a database in charge of evaluation for each developed primitive, database information for evaluation for specifying the database, and primitive information for specifying a further primitive to be evaluated for evaluation of the primitive. And a construction process for registering
The evaluation means refers to the evaluation database information, and evaluates each primitive using a database in charge of evaluation of the primitive; and
A control step in which the control means controls the evaluation means to evaluate each primitive to be evaluated for evaluation of the user primitive with reference to the primitive information ;
An information search method comprising: an output step in which the output means outputs an evaluation result of the user primitive as a result of the search query.
前記通信部が、前記問い合わせ情報に基づいてデータベースに対して全ての問い合わせを行い、データベースからの回答待ち状態に移行し、前記問い合わせに対する回答を受信すると、前記プリミティブの情報に基づいて、当該プリミティブの評価のために受信した順に回答を送信することを特徴とする請求項8に記載の情報検索方法。In the evaluation step, the evaluation means releases the exclusive right of the CPU at the time when the inquiry information including the information of the database in charge of the evaluation and the information of the primitive that requested the inquiry are transmitted to the communication unit,
The communication unit makes all inquiries to the database based on the inquiry information, transitions to a response waiting state from the database, and receives an answer to the inquiry. 9. The information search method according to claim 8 , wherein the responses are transmitted in the order received for evaluation.
入力されたスクリプト形式の検索クエリーをユーザープリミティブを含む1つ以上のプリミティブに展開する展開工程と、
展開された各プリミティブにつき、評価を担当するデータベースを選択し、該データベースを特定する評価担当データベース情報と、当該プリミティブの評価のために評価すべき更なるプリミティブを特定するプリミティブ情報とを登録する構築工程と、
前記評価担当データベース情報を参照して、各プリミティブを該プリミティブの評価を担当するデータベースを用いて評価する評価工程と、
前記プリミティブ情報を参照して、前記評価手段により、前記ユーザープリミティブの評価のために評価すべきプリミティブの各々を評価するように制御する制御工程と、
前記ユーザープリミティブの評価結果を、前記検索クエリーの結果として出力する出力工程とを実行させることを特徴とする情報検索プログラムを記憶したコンピュータ読み取り可能な記憶媒体。 On the computer,
Expanding a scripted search query into one or more primitives including user primitives;
A construction that selects a database in charge of evaluation for each developed primitive, and registers database information for evaluation that specifies the database and primitive information that specifies a further primitive to be evaluated for evaluation of the primitive. Process,
An evaluation step of evaluating each primitive using a database in charge of evaluation of the primitive with reference to the evaluation person database information;
A control step of referring to the primitive information and controlling the evaluation means to evaluate each of the primitives to be evaluated for the evaluation of the user primitive;
A computer-readable storage medium storing an information search program, wherein an output step of outputting the evaluation result of the user primitive as a result of the search query is executed .
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34271197A JP3907295B2 (en) | 1997-12-12 | 1997-12-12 | Information retrieval apparatus and method, and computer-readable storage medium |
US09/207,022 US6347315B1 (en) | 1997-12-12 | 1998-12-08 | Method and apparatus for selecting and utilizing one of computers or databases |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34271197A JP3907295B2 (en) | 1997-12-12 | 1997-12-12 | Information retrieval apparatus and method, and computer-readable storage medium |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11175554A JPH11175554A (en) | 1999-07-02 |
JP3907295B2 true JP3907295B2 (en) | 2007-04-18 |
Family
ID=18355903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34271197A Expired - Lifetime JP3907295B2 (en) | 1997-12-12 | 1997-12-12 | Information retrieval apparatus and method, and computer-readable storage medium |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3907295B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100625422B1 (en) | 1999-12-07 | 2006-09-18 | 주식회사 케이티 | Method for integrating schema using multidatabase query language |
JP7059929B2 (en) * | 2016-05-30 | 2022-04-26 | ソニーグループ株式会社 | Information processing equipment |
-
1997
- 1997-12-12 JP JP34271197A patent/JP3907295B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH11175554A (en) | 1999-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6728758B2 (en) | Agent for performing process using service list, message distribution method using service list, and storage medium storing program for realizing agent | |
US7779050B2 (en) | Method, apparatus, and system for data modeling and processing | |
US6741982B2 (en) | System and method for retrieving data from a database system | |
US6212516B1 (en) | Parallel database management method and parallel database management system | |
US7451136B2 (en) | System and method for searching multiple disparate search engines | |
US6347315B1 (en) | Method and apparatus for selecting and utilizing one of computers or databases | |
JPH10240590A (en) | Method for executing parallel database system routine | |
US6732360B1 (en) | System and method for providing connection between client and heterogeneous database management systems | |
CN109240758A (en) | A kind of method and microkernel architecture for supporting card i/f synchronous asynchronous unified call | |
US20020144020A1 (en) | Method for transparent, location-independent, remote procedure calls in a hetrogeneous network environment | |
US7028313B2 (en) | Method for transmitting function parameters to a remote node for execution of the function thereon | |
US7933948B2 (en) | Computer-readable medium to multiplex multiple application server requests over a single database connection | |
JP3907295B2 (en) | Information retrieval apparatus and method, and computer-readable storage medium | |
US20050125413A1 (en) | Data transfer method and server computer system | |
CN100466578C (en) | Communication system and communication control apparatus and method | |
US5062046A (en) | Multiple processor system having a correspondence table for transferring processing control between instruction processors | |
JPH04177441A (en) | System program loading system | |
US7487405B1 (en) | Method and mechanism for dynamically configuring logical paths of state machines | |
JPH09160847A (en) | Client server-type distribution processing system | |
US20020165865A1 (en) | Data operating device for providing schema with freedom in data operation of object-oriented database | |
JP2001034616A (en) | Information intermediation and integration device | |
CN108268561A (en) | The method and apparatus for inquiring database | |
Jerraya et al. | Towards System level modeling and synthesis | |
CA2365571C (en) | System and method for retrieving data from a database system | |
JPH08328980A (en) | Equipment and method for communicating information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040527 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20040705 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060926 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061127 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070109 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070116 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110126 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120126 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130126 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140126 Year of fee payment: 7 |
|
EXPY | Cancellation because of completion of term |