(57)【特許請求の範囲】
【請求項１】
複数のデータベースを利用可能な情報検索装置であって、
入力されたスクリプト形式の検索クエリーをユーザープリミティブを含む１つ以上のプリミティブに展開する展開手段と、
展開された各プリミティブにつき、評価を担当するデータベースを選択し、該データベースを特定する評価担当データベース情報と、当該プリミティブの評価のために評価すべき更なるプリミティブを特定するプリミティブ情報とを登録する構築手段と、
前記評価担当データベース情報を参照して、各プリミティブを該プリミティブの評価を担当するデータベースを用いて評価する評価手段と、
前記プリミティブ情報を参照して、前記評価手段により、前記ユーザープリミティブの評価のために評価すべきプリミティブの各々を評価するように制御する制御手段と、
前記ユーザープリミティブの評価結果を、前記検索クエリーの結果として出力する出力手段とを有することを特徴とする情報検索装置。
【請求項２】
前記構築手段が、各プリミティブに対して選択したデータベースに、当該プリミティブに対応するビューを生成して保持するように指示することを特徴とする請求項１に記載の情報検索装置。
【請求項３】
前記評価担当データベース情報において、評価すべきプリミティブの評価を担当するデータベースと、当該プリミティブの評価のために評価すべき更なるプリミティブの評価を担当するデータベースとが同一である場合、前記制御手段が、更なるプリミティブの評価を抑止するように制御することを特徴とする請求項１に記載の情報検索装置。
【請求項４】
前記プリミティブが作用モード変数を持ち、該作用モード変数に基づいて、前記構築手段が、前記評価手段による評価を実行するか否かを決定することを特徴とする請求項１に記載の情報検索装置。
【請求項５】
前記複数のデータベースに対して問い合わせを送信し、該問い合わせに対する回答を受信する通信手段を有し、
前記評価手段は、評価を担当するデータベースの情報を含む問い合わせ情報と、該問い合わせを要求したプリミティブの情報とを、前記通信手段に送信した時点でＣＰＵの占有権を開放し、
前記通信手段は、前記問い合わせ情報に基づいて全ての問い合わせを行い、データベースからの回答待ち状態に移行し、前記プリミティブの情報に基づいて、当該プリミティブの評価のために受信した順に回答を送信することを特徴とする請求項１に記載の情報検索装置。
【請求項６】
前記評価手段が、評価を行なったプリミティブについて評価済みであることを評価状況情報に記録し、該評価状況情報を評価の実行に先立って参照し、評価済みのプリミティブの評価を回避することを特徴とする請求項１に記載の情報検索装置。
【請求項７】
前記構築手段が、現在の処理対象であるプリミティブに対する評価担当データベース情報が登録済みか否かを検査し、登録済みである場合に再度の登録を回避することを特徴とする請求項１に記載の情報検索装置。
【請求項８】
展開手段と、構築手段と、評価手段と、制御手段と、出力手段とを備え、複数のデータベースを利用可能な情報検索装置における情報検索方法であって、
前記展開手段が、入力されたスクリプト形式の検索クエリーをユーザープリミティブを含む１つ以上のプリミティブに展開する展開工程と、
前記構築手段が、展開された各プリミティブにつき、評価を担当するデータベースを選択し、該データベースを特定する評価担当データベース情報と、当該プリミティブの評価のために評価すべき更なるプリミティブを特定するプリミティブ情報とを登録する構築工程と、
前記評価手段が、前記評価担当データベース情報を参照して、各プリミティブを該プリミティブの評価を担当するデータベースを用いて評価する評価工程と、
前記制御手段が、前記プリミティブ情報を参照して、前記評価手段により、前記ユーザープリミティブの評価のために評価すべきプリミティブの各々を評価するように制御する制御工程と、
前記出力手段が、前記ユーザープリミティブの評価結果を、前記検索クエリーの結果として出力する出力工程とを有することを特徴とする情報検索方法。
【請求項９】
前記構築手段が、前記構築工程において、各プリミティブに対して選択したデータベースに、当該プリミティブに対応するビューを生成して保持するように指示することを特徴とする請求項８に記載の情報検索方法。
【請求項１０】
前記評価担当データベース情報において、評価すべきプリミティブの評価を担当するデータベースと、当該プリミティブの評価のために評価すべき更なるプリミティブの評価を担当するデータベースとが同一である場合、前記制御工程では、前記制御手段が、更なるプリミティブの評価を抑止するように制御することを特徴とする請求項８に記載の情報検索方法。
【請求項１１】
前記プリミティブが作用モード変数を持ち、該作用モード変数に基づいて、前記構築工程において、前記構築手段が、前記評価手段による評価を実行するか否かを決定することを特徴とする請求項８に記載の情報検索方法。
【請求項１２】
前記評価工程においては、前記評価手段が、評価を担当するデータベースの情報を含む問い合わせ情報と、該問い合わせを要求したプリミティブの情報とを通信部に送信した時点でＣＰＵの占有権を開放し、
前記通信部が、前記問い合わせ情報に基づいてデータベースに対して全ての問い合わせを行い、データベースからの回答待ち状態に移行し、前記問い合わせに対する回答を受信すると、前記プリミティブの情報に基づいて、当該プリミティブの評価のために受信した順に回答を送信することを特徴とする請求項８に記載の情報検索方法。
【請求項１３】
前記評価手段が、前記評価工程において、評価を行なったプリミティブについて評価済みであることを評価状況情報に記録し、該評価状況情報を評価の実行に先立って参照し、評価済みのプリミティブの評価を回避することを特徴とする請求項８に記載の情報検索方法。
【請求項１４】
前記構築手段が、前記構築工程において、現在の処理対象であるプリミティブに対する評価担当データベース情報が登録済みか否かを検査し、登録済みである場合に再度の登録を回避することを特徴とする請求項８に記載の情報検索方法。
【請求項１５】
コンピュータに、
入力されたスクリプト形式の検索クエリーをユーザープリミティブを含む１つ以上のプリミティブに展開する展開工程と、
展開された各プリミティブにつき、評価を担当するデータベースを選択し、該データベースを特定する評価担当データベース情報と、当該プリミティブの評価のために評価すべき更なるプリミティブを特定するプリミティブ情報とを登録する構築工程と、
前記評価担当データベース情報を参照して、各プリミティブを該プリミティブの評価を担当するデータベースを用いて評価する評価工程と、
前記プリミティブ情報を参照して、前記評価手段により、前記ユーザープリミティブの評価のために評価すべきプリミティブの各々を評価するように制御する制御工程と、
前記ユーザープリミティブの評価結果を、前記検索クエリーの結果として出力する出力工程とを実行させることを特徴とする情報検索プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報検索装置及びその方法に関し、特に異種データベース統合システム、或いはデータベース（以後DBと略記する）システムと検索者とのインターフェース及びその検索方法に関するものである。
【０００２】
【従来の技術】
コンピュータネットワークが普及することによって、個人の端末から種々のDBにアクセスすることが可能になってきた。ネットワークからアクセスできるDBは様々な言語で記述された管理システムで管理されている。これら様々なDBに格納されている書式や意味の異なるデータを統一的に扱うことができれば、ネットワークにつながったDBの利用価値は更に高くなる。異なる言語や環境で構築されているコンピュータシステムをユーザーに意識させずにアクセスする技術は、マルチメディアDB、分散コンピューティングシステム等と称して提供されている。
【０００３】
例えば、特開平７−６５０３２号公報記載の技術では、以下のように実現されている。ただし、以下では、ユーザー端末で使用できる問い合わせ言語を標準言語と呼び、そこでのデータ表現形式を標準形式と呼ぶ。マルチデータベースシステム（以後MDBシステムと略記する）は、以下のライブラリ及びテーブルを予め持っている。
(1) ユーザー端末で使っている標準言語と、検索対象DBで使われているDB言語との言語変換用ライブラリ
(2) 標準形式で表現されたデータを、それぞれのDB固有の表現形式に変換する、あるいは逆の変換を行うデータ変換用ライブラリ
(3) DB名と、対応する言語変換用ライブラリ、データ変換用ライブラリとを対応付ける管理テーブル
【０００４】
上記技術では、ユーザーは、検索対象DB名と問い合わせを標準言語で記述する。すると、システムは、対象DB名から管理テーブルを用いて、対象DBに対応する言語変換ライブラリとデータ変換ライブラリの番号を取得する。そして、ユーザーが標準言語で記述した問い合わせを、言語変換ライブラリを用いて対象DBで用いられている言語に変換して、対象DBへ送信する。この問い合わせに対する結果が対象DBから送信されると、システムは、データ変換ライブラリを用いて標準形式に変換し、ユーザーに送信する。
【０００５】
また別の実現方法として、特開平５−３４２１２３号公報記載の技術では、ネットワークシステムのコマンド転送方式を実現している。ここで実現しているシステムでは、ユーザーが入力したコマンド列を解析し、要求された処理を実行するためのコンピュータネットワーク上のシステムを決定し、そのシステムでサポートされているコマンドにユーザー指定のコマンドを変換することができる。このようなシステムは、コマンドを問い合わせ文、対象とするシステムをDB管理システムと考えれば、MDBシステムに応用できる。
【０００６】
【発明が解決しようとしている課題】
しかしながら、従来方式には以下のような課題がある。
【０００７】
まず、従来方式において、ユーザーが記述したスクリプトを適用順（ applicative-order ）で評価する場合には、ユーザーが要求している最終結果を得るために何ら貢献しない手続きやデータも評価（実行）してしまう。
【０００８】
通常のプログラムの場合、不必要な評価の実行による計算量の増大よりも、インタープリタのコンパクト性の方が効果が大きいので、このような適用順評価は好まれる傾向にある。しかし、分散DB統合システムでは、ネットワークの通信量が重大な評価項目となるので、不必要な手続きやデータを評価するために通信チャネルを使用することは極力避けることが望ましい。
【０００９】
更に、商用DBでは、部分問い合わせを組み合わせた問い合わせに対して、それらの評価順を、処理速度が最も速くなるような順に並べ替える最適化機構が提供されている。ところが、MDBシステムが部分問い合わせを適用順で評価してしまうと、各DBが提供している最適化機構が利用できなくなってしまう。
【００１０】
【課題を解決するための手段】
上記課題を解決するために、本発明によれば、複数のデータベースを利用可能な情報検索装置に、入力されたスクリプト形式の検索クエリーをユーザープリミティブを含む１つ以上のプリミティブに展開する展開手段と、展開された各プリミティブにつき、評価を担当するデータベースを選択し、該データベースを特定する評価担当データベース情報と、当該プリミティブの評価のために評価すべき更なるプリミティブを特定するプリミティブ情報とを登録する構築手段と、前記評価担当データベース情報を参照して、各プリミティブを該プリミティブの評価を担当するデータベースを用いて評価する評価手段と、前記プリミティブ情報を参照して、前記評価手段により、前記ユーザープリミティブの評価のために評価すべきプリミティブの各々を評価するように制御する制御手段と、前記ユーザープリミティブの評価結果を、前記検索クエリーの結果として出力する出力手段とを備える。
【００１１】
また、本発明の他の態様によれば、展開手段と、構築手段と、評価手段と、制御手段と、出力手段とを備え、複数のデータベースを利用可能な情報検索装置における情報検索方法に、前記展開手段が、入力されたスクリプト形式の検索クエリーをユーザープリミティブを含む１つ以上のプリミティブに展開する展開工程と、前記構築手段が、展開された各プリミティブにつき、評価を担当するデータベースを選択し、該データベースを特定する評価担当データベース情報と、当該プリミティブの評価のために評価すべき更なるプリミティブを特定するプリミティブ情報とを登録する構築工程と、前記評価手段が、前記評価担当データベース情報を参照して、各プリミティブを該プリミティブの評価を担当するデータベースを用いて評価する評価工程と、前記制御手段が、前記プリミティブ情報を参照して、前記評価手段により、前記ユーザープリミティブの評価のために評価すべきプリミティブの各々を評価するように制御する制御工程と、前記出力手段が、前記ユーザープリミティブの評価結果を、前記検索クエリーの結果として出力する出力工程とを備える。
【００１２】
また、本発明の他の態様によれば、コンピュータ読み取り可能な記憶媒体に、コンピュータに、入力されたスクリプト形式の検索クエリーをユーザープリミティブを含む１つ以上のプリミティブに展開する展開工程と、展開された各プリミティブにつき、評価を担当するデータベースを選択し、該データベースを特定する評価担当データベース情報と、当該プリミティブの評価のために評価すべき更なるプリミティブを特定するプリミティブ情報とを登録する構築工程と、前記評価担当データベース情報を参照して、各プリミティブを該プリミティブの評価を担当するデータベースを用いて評価する評価工程と、前記プリミティブ情報を参照して、前記評価手段により、前記ユーザープリミティブの評価のために評価すべきプリミティブの各々を評価するように制御する制御工程と、前記ユーザープリミティブの評価結果を、前記検索クエリーの結果として出力する出力工程とを実行させることを特徴とする情報検索プログラムを記憶している。
【００１３】
【発明の実施の形態】
（実施形態１）
図１は、本発明の１実施形態である異種データベース統合システムの機能構成を表す図である。装置の各部は、以下に説明する機能を実現するものであれば、それぞれが専用のプログラムメモリやプロセッサを含む機器であってもよいし、複数の機能部を、同一のＣＰＵがＲＯＭやディスクメモリ等に記憶された各機能プログラムを実行することにより、あるいは各機能に対応する特定のハードウェアを制御する制御プログラムを実行することにより実現してもよい。
【００１４】
以下、図１の各部について説明する。
【００１５】
＜異種DB統合システム１０１＞
異種DB統合システム１０１は、通信制御装置１１０、プリミティブ解釈装置１１１、DB選択装置１１２、リソース表１１３、ライブラリ１１４、パラメタ表１１５、LDBプロパティ表１１６を備える。詳細は後述する。リソース表１１３はDB選択装置１１２で利用され、ライブラリ１１４、パラメタ表１１５、及びLDBプロパティ表１１６はプリミティブ解釈装置１１１で利用される。
【００１６】
図６は、異種DB統合システム１０１のハードウェア構成を示すブロック図である。
【００１７】
同図において、601は、バスを介してシステム各部を制御し、各種プログラムを実行するＣＰＵである。602は、Ｉ／Ｏであり、ユーザからの検索クエリーを受け取ったり、データベースに問い合わせを出し、その結果を受信する。603は、ＲＯＭであり、固定データや固定プログラムを記憶する。604は、ＲＡＭであり、ユーザからの入力データや内部変数、検索結果など、処理に必要なデータを一時記憶するためのデータエリアを有し、補助記憶装置605からロードされる各種プログラムを記憶するためのプログラムエリアを有する。605は、補助記憶装置であり、フロッピーディスクやハードディスクなどの記憶媒体を用いて、各種プログラムやテーブルなどを記憶する。
【００１８】
＜ローカルデータベースシステムおよびローカルデータベース＞
ローカルデータベースシステム（LDBS−n）１０２〜１０５は、ローカルデータベース（LDB−ｎ）１０６〜１０９を管理するシステムであり、コンピュータネットワーク１１７を介して送信される問い合わせ文を解釈実行し、処理結果を返送する。ローカルDBはリレーショナルDB等であり、ローカルDBシステムはSQLサーバ等で実現されている通常のDBとDB管理システムである。
【００１９】
＜通信制御装置１１０＞
通信制御装置１１０は、異種DB統合システム１０１とコンピュータネットワーク１１７との信号の送受信を制御する装置であり、マルチタスク・マルチユーザ対応のミドルウェアを含む。
【００２０】
＜プリミティブ解釈装置１１１＞
プリミティブ解釈装置１１１は、ユーザー端末１１８からコンピュータネットワーク１１７、及び通信制御装置１１０を介して送信されるスクリプトをプリミティブに変換し実行する。ここでスクリプトとはいわゆる高級言語であり、プリミティブの組み合わせで実現される処理である。
【００２１】
図２は、プリミティブ解釈装置の処理の流れを示すフローチャートである。プリミティブ解釈装置１１１の処理の流れを図２を用いて説明する。
【００２２】
ステップＳ２０１では、スクリプトを1行取得する。
【００２３】
ステップＳ２０２では、ライブラリ１１４をもとにしてスクリプトをプリミティブに展開し、スクリプトの引数を、各プリミティブの引数に構成し直す。以下、プリミティブの個数をKとする。
【００２４】
ここで言うプリミティブとは、引数リストarg、及び作用モード変数modeという内部変数と、構築const()（コンストラクタと呼ぶ）、評価eval()（エバリュエータと呼ぶ）という２つのメソッドを含むオブジェクトとして実現されるものである。プリミティブは2つ以下の引数を持つ。作用モード変数は、LAZYとEAGERという２値を取り、コンストラクタconst()はプリミティブが宣言されたときに実行されるメソッドであり、エバリュエータeval()はプリミティブの戻り値を評価するメソッドである。エバリュエータでは、データベース検索の基本オペレーションであるセレクション、プロジェクション、ジョイン等を実行する。
【００２５】
ステップＳ２０３では、Jに１を設定する。ステップＳ２０４では、図3につき後述する手順で、J番目のプリミティブのコンストラクタを実行する。その結果、パラメタ表１１５にJ番目のプリミティブ名が、評価状況及び評価担当LDBのアドレスと共に登録される。
【００２６】
ステップＳ２０５では、JをJ+１に更新する。ステップＳ２０６では、JがKを超えたかどうか検査し、超えていればステップＳ２０７に進み、超えていなければステップＳ２０４からステップＳ２０６までの処理を繰り返す。
【００２７】
ステップＳ２０７では、変換すべきスクリプトが残っているかどうかを検査し、残っていなければ処理を終了する。残っていればステップＳ２０１からステップＳ２０７までの処理を繰り返す。
【００２８】
コンストラクタconst()の処理の流れを図3を用いて説明する。
【００２９】
ステップＳ３０１では、メッセージを引数リストargに保存する。引数リストは、プリミティブを評価するときに評価すべきプリミティブ名の列として与えられる。
【００３０】
ステップＳ３０２では、Jを１に設定する。ステップＳ３０３では、J番目のプリミティブ名（以下PRMJ と書く）がパラメタ表１１５に登録されているかどうかを検査し、登録されていればステップＳ３０６に進み、登録されていなければステップＳ３０４に進む。
【００３１】
ステップＳ３０４では、DB選択装置１１２でPRMJを評価できるLDBを選択し、LDBプロパティ表１１６を用いて、選択したLDBのアドレスを取得し、当該LDBに、PRMJのビューを生成するためのコマンドを送信する。これにより、引数がLDBSにビューの形式で格納される。ステップＳ３０５では、 PRMJをパラメタ表に追加し、その評価状況を“未”に設定し、評価担当LDBのアドレスとして取得したLDBのアドレスを設定する。
【００３２】
ステップＳ３０６では、JをJ+1に更新する。ステップＳ３０７では、JがKを超えたかどうか検査し、超えていればステップＳ３０８へ進み、超えていなければステップＳ３０３からステップＳ３０７までを繰り返す。
【００３３】
ステップＳ３０８では、作用モード変数がLAZYかどうか検査し、そうであれば処理を終了し、そうでなければステップＳ３０９に進む。ステップＳ３０９では、エバリュエータeval()を実行する。
【００３４】
図４は、エバリュエータeval()の処理手順を示すフローチャートである。プリミティブXのエバリュエータX.eval()の処理の流れを図４を用いて説明する。
【００３５】
ステップＳ４０１では、パラメタ表１１５を用いて、Ｘの評価状況を取得する。ステップＳ４０２では、Ｘの評価状況が“未”ならステップＳ４０４へ進み、“済”ならステップＳ４０３へ進む。
【００３６】
ステップＳ４０４では、引数リストに格納されている各プリミティブの評価担当LDBアドレスを取得する。
【００３７】
ステップＳ４０５では、取得した評価担当LDBアドレスが全てXと同じであればステップＳ４０６へ、そうでなければステップＳ４０７へ進む。
【００３８】
ステップＳ４０６では、Xを評価するために必要な引数の評価担当LDBがXと同じであるので、これら引数を個々に評価する必要が無い。直接Xを評価することによって、LDBSにビューの形式で格納されている引数が自動的に評価されるからである。よって、直接Ｘを評価し、その結果をポインタvalueの内容として格納し、ステップＳ４０３へ進む。
【００３９】
ステップＳ４０７では、Jを１に設定する。ステップＳ４０８では、引数リストのJ番目のプリミティブ名PRMJを取得する。ステップＳ４０９では、 PRMJ.eval()を実行する。ステップＳ４１０では、評価状況を“済”に変更する。
【００４０】
ステップＳ４１１では、JをJ+１に更新する。ステップＳ４１２では、JがKを超えるかどうか検査し、超えればステップＳ４１２に進み、超えなければステップＳ４０７からステップＳ４１２を繰り返す。
【００４１】
ステップＳ４１３では、引数の値をもとにプリミティブを評価する。例えば引数が2個の場合は、X(PRM1, PRM2）を評価する。具体的にはX(PRM1, PRM2）を対応するLDBSの言語に変換して、そのLDBSに送信する。このとき、エバリュエータは、対象LDBの情報を含む問い合わせ情報と、エバリュエータ自身の情報を、通信制御装置１１０に送信した時点でCPUの占有権を放棄し、通信制御装置１１０は、このような問い合わせ情報に基づいて全ての問い合わせを行い、LDBからの回答待ち状態に移行し、回答を受信した順に、エバリュエータの情報に基づいてそのエバリュエータへ回答の送信を実行する。エバリュエータは、そのLDBから受信した結果をポインタvalueの内容として格納し、ステップＳ４０３へ進む。
【００４２】
ステップＳ４０３では、プリミティブＸの戻り値にポインタvalueが指す内容を格納し、終了する。
【００４３】
ところで、プリミティブの特殊なクラスとして自由変数プリミティブ、ユーザープリミティブがある。自由変数プリミティブでは、作用モード変数はLAZY、const()では受け取ったプリミティブ名を自分自身の関数値valueとして設定し、eval()では、その関数値valueを返す。自由変数プリミティブは、例えばユーザーのスクリプトの、例えば、“x = 12”のxに対して生成される。
【００４４】
ユーザープリミティブの作用モード変数はEAGERである。ユーザーから与えられた検索クエリーの最終結果を与える部分問い合わせがユーザープリミティブに展開される。従って、ユーザーの検索クエリーを展開したプリミティブ列の中には、必ず１つのユーザープリミティブが含まれており、しかもユーザープリミティブを評価することによって与えられた検索クエリーの結果が得られることになる。逆に、ユーザープリミティブの評価に関わりのないプリミティブの評価は検索クエリーの結果を求める上で不要である。また、ユーザープリミティブの作用モード変数はEAGERであるので、ユーザープリミティブのコンストラクタconst()を実行する際に、ユーザープリミティブのエバリュエータeval()が実行される。
【００４５】
＜データベース選択装置１１２＞
DB選択装置１１２は、リソース表１１３を参照して、プリミティブXの引数PRM1, PRM2をデータとして含むDBのリストを返信する。リソース表１１３には、データ名と、それを含むDB名のリストとの対応が格納されている。
【００４６】
図５は、検索処理の流れを示すフローチャートである。以上説明した構成要素をもとに、図５につき、検索処理の流れを説明する。
【００４７】
まず、ステップＳ５０１で、ユーザー端末１１８から異種DB統合システム１０１に、検索のクエリーが送信される。
【００４８】
次に、ステップＳ５０２で、プリミティブ解釈装置１１１で、スクリプトである検索クエリーをプリミティブに展開し、ステップＳ５０３で、各プリミティブのコンストラクタを実行する。
【００４９】
そして、ステップＳ５０４で、検索のクエリーの結果に必要なユーザープリミティブを評価し、ステップＳ５０５で、結果をユーザー端末に送信する。
【００５０】
尚、本発明は、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、装置あるいはシステムに供給し、装置あるいはシステム内のコンピュータが記憶媒体に格納されたプログラムコードを読み出して実行することによって達成してもよい。
【００５１】
更に、装置あるいはシステム内のコンピュータが記憶媒体に格納されたプログラムコードを読み出して実行することによって、上述した実施形態の機能を直接実現するばかりでなく、そのプログラムコードの指示に基づいて、コンピュータ上で稼動しているＯＳなどの処理により、上述の機能を実現される場合も含まれる。
【００５２】
これらの場合、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００５３】
【発明の効果】
以上説明したように、本発明によれば、ユーザーが要求する最終結果を得るために不要な手続きおよびデータの評価を回避することができる。これにより、評価のための通信のトラヒックを減少させることができる。
【００５４】
更に、各データベースに対する部分問い合わせをそのデータベースにビューとして格納し、これらビューとして格納された複数の部分問い合わせを一括して処理することにより、データベースに固有の最適化機能を十分に利用することができる。
【００５５】
更に、それぞれのプリミティブの評価の実行が、それぞれのプリミティブの評価の実行によって制御されるので、プリミティブのインタープリタがプリミティブのスケジューリングを行う必要が無くなった。これによってインタープリタの設計が容易になり、プログラムサイズが小さくできる。
【００５６】
更に、プリミティブが作用モード変数を持ち、該作用モード変数に基づいて、プリミティブの評価を実行するかどうかを決定するようにしたことにより、適用順評価のもとでの遅延評価を選択することが可能となる。
【００５７】
更に、評価を担当するデータベースの情報を含む問い合わせ情報と、該問い合わせを要求したプリミティブの情報とを、前記通信手段に送信した時点でCPUの占有権を開放し、前記問い合わせ情報に基づいて全ての問い合わせを行い、データベースからの回答待ち状態に移行し、前記プリミティブの情報に基づいて、当該プリミティブの評価のために受信した順に回答を送信するようにしたことによって、複数のデータベースへの問い合わせを並列に実行することができる。
【図面の簡単な説明】
【図１】実施形態の異種データベース統合システムの機能構成図である。
【図２】プリミティブ解釈装置の処理の流れを示すフローチャートである。
【図３】プリミティブのコンストラクタの処理の流れを示すフローチャートである。
【図４】プリミティブのエバリュエータの処理の流れを示すフローチャートである。
【図５】検索処理の流れを示すフローチャートである。
【図６】異種DB統合システムのハードウェア構成を示すブロック図である。
【図１】
0003907295.tif 000002
【図２】
0003907295.tif 000003
【図３】
0003907295.tif 000004
【図４】
0003907295.tif 000005
【図５】
0003907295.tif 000006
【図６】
0003907295.tif 000007