(57)【特許請求の範囲】
【請求項１】
複数種のデータベースを参照可能なデータ処理システムにおいて、
上位層システムと下位層システムとを有し、
前記上位層システムに、
複数の問い合わせ項目と、該複数の問い合わせ項目の回答が満たすべき回答条件と、該複数の問い合わせ項目に対する互いに異なる複数の回答項目をそれぞれの項目の互いに異なる値同士が満たすべき関係に基づいて結合するための結合条件とを含む、スクリプト形式による問い合わせを受け取る問合受取手段と、
前記問い合わせを解釈し、プリミティブ形式による制御情報群を発行する制御情報発行手段と、
前記問い合わせに対する前記プリミティブ形式による複数種のデータベースからの回答を前記下位層システムより受け取り、前記結合条件に基づいて結合する結合手段と、
前記結合手段により結合された回答を前記スクリプト形式に変換して出力する出力手段とを備え、
前記下位層システムに、
前記制御情報発行手段より発行された前記プリミティブ形式による制御情報群の各制御情報を、それぞれに対応する種類のデータベースに対して、当該種類に対応する制御命令に変換して出力する命令出力手段と、
複数種のデータベースによる前記制御命令のそれぞれの処理結果を前記プリミティブ形式により前記上位層システムに回答する回答手段とを備えることを特徴とするデータ処理システム。
【請求項２】
前記上位層システムに、前記制御情報発行手段により発行される制御情報の発行対象となるデータベースの管理情報を記憶する管理情報記憶手段を備えることを特徴とする請求項１に記載のデータ処理システム。
【請求項３】
前記管理情報記憶手段が、
管理情報を記憶した管理情報データベースと、
該管理情報データベースに対し、前記制御情報発行手段より発行された前記プリミティブ形式による制御情報を当該管理情報データベースに対応する制御命令に変換して出力する管理命令出力手段と、
前記管理情報データベースによる前記制御命令の処理結果を前記プリミティブ形式により出力する管理情報出力手段とを備えることを特徴とする請求項２に記載のデータ処理システム。
【請求項４】
前記上位層システムに、前記問い合わせに対して前記下位層システムより受け取る回答に対する補填情報を記憶する補填情報記憶手段を備えることを特徴とする請求項１に記載のデータ処理システム。
【請求項５】
前記補填情報記憶手段が、
補填情報を記憶した補填情報データベースと、
該補填情報データベースに対し、前記制御情報発行手段より発行された前記プリミティブ形式による制御情報を当該補填情報データベースに対応する制御命令に変換して出力する補填命令出力手段と、
前記補填情報データベースによる前記制御命令の処理結果を前記プリミティブ形式により出力する補填情報出力手段とを備えることを特徴とする請求項４に記載のデータ処理システム。
【請求項６】
前記補填情報記憶手段が、種類の異なる複数種のデータベースによる処理結果を結合するための結合補填情報を備え、
前記結合手段が、更に前記結合補填情報を参照して、種類の異なる複数のデータベースによる処理結果を前記プリミティブ形式において結合することを特徴とする請求項４に記載のデータ処理システム。
【請求項７】
前記複数種のデータベースのうち少なくとも１つは関係型データベースであることを特徴とする請求項１に記載のデータ処理システム。
【請求項８】
前記複数種のデータベースを前記下位層システム内に設けたことを特徴とする請求項１に記載のデータ処理システム。
【請求項９】
前記上位層システムに、ユーザからの問い合わせに対して、前記スクリプト形式によるデータベースに対する問い合わせを発行する問い合わせ発行手段を設けたことを特徴とする請求項１に記載のデータ処理システム。
【請求項１０】
上位層システムと下位層システムとを有し、複数種のデータベースを参照可能なデータ処理システムにおけるデータ処理方法であって、
前記上位層システムにおいて、複数の問い合わせ項目と、該複数の問い合わせ項目の回答が満たすべき回答条件と、該複数の問い合わせ項目に対する互いに異なる複数の回答項目をそれぞれの項目の互いに異なる値同士が満たすべき関係に基づいて結合するための結合条件とを含む、スクリプト形式による問い合わせを受け取る問合受取工程と、
前記上位層システムにおいて、前記問い合わせを解釈し、プリミティブ形式による制御情報群を発行する制御情報発行工程と、
前記下位層システムにおいて、前記プリミティブ形式による制御情報群の各制御情報を、それぞれに対応する種類のデータベースに対して、当該種類に対応する制御命令に変換して出力する命令出力工程と、
前記下位層システムにおいて、複数種のデータベースによる前記制御命令のそれぞれの処理結果を、前記プリミティブ形式により前記上位層システムに回答する回答工程と、
前記上位層システムにおいて、前記問い合わせに対する前記プリミティブ形式による複数種のデータベースからの回答を前記下位層システムより受け取り、前記結合条件に基づいて結合する結合工程と、
前記上位層システムにおいて、前記結合工程により結合された回答を前記スクリプト形式に変換して出力する出力工程とを備えることを特徴とするデータ処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数種のデータベースを用いて情報処理を行なうことを目的とした統合的なデータベースシステムに関するものである。
【０００２】
【従来の技術】
データベースの共有や共同利用を必要とする範囲は、組織体内、組織体間、および、個人間などに広がっている。また、ネットワークの広域化により、データベース群を共有する地域も広がっている。このような環境で、既にデータベースの共有と共同利用に関する試みや、限られた範囲での実用的商用化がなされている。
【０００３】
上記のように限られた範囲だけでなく、データベース群の共有と共同利用を広く可能とするためには、広域の高速コンピュータネットワークを介して、多数のデータベースシステムが接続された環境に適したマルチデータベースシステムの実現が必要となる。さらに、このようなマルチデータベース構築にあたっての構築費用は極力低廉に押さえ、また構築後の変更に自由度が高く、必要な維持管理に柔軟な構成でなければならない。
【０００４】
ここで、「マルチデータベースシステム」とは、分散システムあるいは、ネットワークシステムにおける情報の共有を広く実現するシステムを総称するものである。また、マルチデータベースシステムによって作られた環境を「マルチデータベース環境」と称す。
【０００５】
【発明が解決しようとする課題】
しかしながら、データベースの共有及び共同利用を行う場合には、一般に以下のような問題が生じる。
１：異なるデータベースに含まれる情報は、同じ表現形式であっても、意味が異なる場合がある。
２：１とは逆に、異なるデータベースに含まれる情報は、同じ意味をもっていたとしても、表現形式が異なる場合がある。
３：異なるデータベースにおいて、従来型結合が可能であるが、結合属性に関する表現形式が異なる。ここで、従来型結合とは、従来のデータベースシステムにおいて用いられてきたパターンマッチングによる結合を表し、結合属性とは、結合のとき注目する属性を表す。
４：統合対象データベースにおいて、結合に必要な情報が不足している。
５：複数の異なるデータベースを結合したとしても、それによって、新しい情報を生成することはできない。
【０００６】
上述の問題１〜４の部分的解決策として、従来は、以下のような処理が行なわれていた。
１）異なるデータベースにおける、情報の意味の違い、表現形式の違い、結合属性の違いなどを変換もしくは吸収するコードを、アプリケーションプログラムに埋め込む。
２）不足する情報については、アプリケーションプログラムにデータもしくは定数値として埋め込む、もしくは、不足情報を補填するデータベースを新たに追加する。
【０００７】
しかし、上記の対策が行われてきた結果、以下のような更なる問題を引き起こすことになる。
６：上述のアプリケーションプログラムは、データベースの共有や共同利用に関する要求が生じる度に、個別に作成することになるため、対応に時間がかかる。
７：上記のデータベースの共有や共同利用の要求の変化に対し、多くの場合、上述したアプリケーションプログラムの再利用が困難もしくは不可能である。
【０００８】
【課題を解決するための手段】
上記課題を解決するために、本発明によれば、複数種のデータベースを参照可能なデータ処理システムにおいて、上位層システムと下位層システムとを有し、前記上位層システムに、複数の問い合わせ項目と、該複数の問い合わせ項目の回答が満たすべき回答条件と、該複数の問い合わせ項目に対する互いに異なる複数の回答項目をそれぞれの項目の互いに異なる値同士が満たすべき関係に基づいて結合するための結合条件とを含む、スクリプト形式による問い合わせを受け取る問合受取手段と、前記問い合わせを解釈し、プリミティブ形式による制御情報群を発行する制御情報発行手段と、前記問い合わせに対する前記プリミティブ形式による複数種のデータベースからの回答を前記下位層システムより受け取り、前記結合条件に基づいて結合する結合手段と、前記結合手段により結合された回答を前記スクリプト形式に変換して出力する出力手段とを備え、前記下位層システムに、前記制御情報発行手段より発行された前記プリミティブ形式による制御情報群の各制御情報を、それぞれに対応する種類のデータベースに対して、当該種類に対応する制御命令に変換して出力する命令出力手段と、複数種のデータベースによる前記制御命令のそれぞれの処理結果を前記プリミティブ形式により前記上位層システムに回答する回答手段とを備える。
【０００９】
また、本発明の他の態様によれば、上位層システムと下位層システムとを有し、複数種のデータベースを参照可能なデータ処理システムにおけるデータ処理方法であって、前記上位層システムにおいて、複数の問い合わせ項目と、該複数の問い合わせ項目の回答が満たすべき回答条件と、該複数の問い合わせ項目に対する互いに異なる複数の回答項目をそれぞれの項目の互いに異なる値同士が満たすべき関係に基づいて結合するための結合条件とを含む、スクリプト形式による問い合わせを受け取る問合受取工程と、前記上位層システムにおいて、前記問い合わせを解釈し、プリミティブ形式による制御情報群を発行する制御情報発行工程と、前記下位層システムにおいて、前記プリミティブ形式による制御情報群の各制御情報を、それぞれに対応する種類のデータベースに対して、当該種類に対応する制御命令に変換して出力する命令出力工程と、前記下位層システムにおいて、複数種のデータベースによる前記制御命令のそれぞれの処理結果を、前記プリミティブ形式により前記上位層システムに回答する回答工程と、前記上位層システムにおいて、前記問い合わせに対する前記プリミティブ形式による複数種のデータベースからの回答を前記下位層システムより受け取り、前記結合条件に基づいて結合する結合工程と、前記上位層システムにおいて、前記結合工程により結合された回答を前記スクリプト形式に変換して出力する出力工程とを備える。
【００１０】
【発明の実施の形態】
＜システムの構成＞
図１は、本発明に係わる異種データベース統合システム（以下、「本システム」と称す）の構成を表す図である。
本システムは、大別すると３種類の層（レベル）から構成される。すなわち、アプリケーションレベル１、ローカルレベル３、そしてその中間に介在するメタレベル２である。
【００１１】
（アプリケーションレベル）
アプリケーションレベル１は、本システムのユーザ（利用者）が直接関わる層であって、本システムを用いたマルチデータベース環境を利用対象とした、アプリケーションソフトウェア12を構築するレベルである。ユーザはアプリケーションソフトウェア12を介して、情報の問い合わせを行い、その結果を得る。前述のアプリケーションソフトウェア12は、ユーザからの問い合わせを、まず本システムにおいてあらかじめ定義する形式（以下、「スクリプト形式」と称す）に記述もしくは変換した上で、メタレベル２に発行し、その問い合わせの結果を取得する。以下、スクリプト形式で表した問い合わせを単に「スクリプト」と称す。
【００１２】
（ローカルレベル）
ローカルレベル３は、本システムを用いたマルチデータベース環境に接続される、１つまたは複数のデータベース11、およびデータベース管理システム10（以下、データベースシステムと総称する）が存在する層である。それぞれのデータベースシステムは、その閉じた環境または閉じた系において、個別に問い合わせ、更新、管理などの運用が行われている。つまり、従来型のデータベース技術によっても個別に管理運用可能なデータベースシステムである。ローカルレベル３に存在するデータベースシステムを、特に「ローカルデータベースシステム」14と称する。ただし、それぞれのデータベースシステムには、一般に、そのシステム固有のデータベース処理系があり、個々のデータベースに対する操作手順について同一性が保証されているものではない。
【００１３】
（メタレベル）
メタレベル２は、前述したアプリケーションレベル１とローカルレベル３の中間に介在し、スクリプト解釈装置8 、メタデータベース7 、およびメタデータベース管理システム6 から構成されるメタデータベースシステム4 を備えるシステム（以下、「メタレベルシステム」15と称する）である。メタレベルシステム15では、アプリケーションレベル１から受信したスクリプト101 による問い合わせを、まずスクリプト解釈装置8 において解釈し、メタデータベースシステム4 およびローカルデータベースシステム14と交信する。即ち、スクリプト解釈装置8 によって、本システムにおいてさらに定義する形式（以下、「メタプリミティブ形式」と称す）に変換した上で、これをメタデータベースシステム4 およびローカルデータベースシステム14に問い合わせ発行し、その結果を取得する。以下、メタプリミティブ形式に変換した問い合わせを単に「プリミティブ」106 と称す。
【００１４】
＜各層間における接続＞
（アプリケーションレベルとメタレベルの接続）
図２は、アプリケーションレベル１とメタレベル２の接続を説明する図である。アプリケーションレベル１とメタレベル２は、前述したスクリプト101 でインターフェイスを行う。ユーザはアプリケーションレベル１に存在するアプリケーションソフトウェア12を操作することにより、問い合わせを入力する。このアプリケーションソフトウェア12は、上記問い合わせをスクリプト変換装置102 によりスクリプト形式に変換し、スクリプト形式による問い合わせであるスクリプト101 をメタレベルシステム15に発行する。メタレベルシステム15は、発行された各スクリプトによる問い合わせ処理を行い、その結果をアプリケーションソフトウェア12に返す。
【００１５】
上記アプリケーションソフトウェア12は、単に上記スクリプト101 の編集、発行、結果出力を行う機能のみのソフトウェア103 であっても、また、前述スクリプト変換装置102 に加え、グラフィカル・インターフェイスなどを備えるPCもしくはワークステーション用のパッケージソフトウェア104 などであっても良い。
（メタレベルとローカルレベルの接続）
メタレベル２とローカルレベル３は、前述したプリミティブ106 をインターフェイスとする。スクリプト解釈装置8 によってスクリプト101 より解釈されたプリミティブ106 は、必要に応じ、
（１）メタデータベースシステム4 に宛てて発行され、メタデータベースシステム4 に存在するプリミティブ処理装置5 により、解釈実行される。
（２）ローカルデータベースシステム14に宛てて発行され、ローカルデータベースシステム14に存在するプリミティブ処理装置9 により、解釈実行される。
【００１６】
107 は、メタデータベースシステム4 のプリミティブ処理装置5 に発行されたプリミティブの1 つを示している。同様に105 は、ローカルデータベースシステム14のプリミティブ処理装置9 に発行されたプリミティブの１つを示している。
＜スクリプト発行とプリミティブ実行＞
図３のフローチャートは、アプリケーションレベル１にあるアプリケーションソフトウェア12の動作、メタレベル２にあるスクリプト解釈装置8 の動作、そして、プリミティブ106 が発行された先のプリミティブ処理装置5 および9 における動作を表わすフローチャートである。これらは、図３中の破線で示すフローのごとく互いに関連しながら動作する。
【００１７】
（アプリケーションソフトウェアの動作）
まず、ステップＳ1.1 にて、ユーザからの問い合わせにより、スクリプトを生成する。次にステップＳ1.2 にて、スクリプト101 をファイル形式でメタレベル２に発行する。（以下、ファイル形式のスクリプトを「スクリプトファイル」と称す）。スクリプトファイルの内容は、メタレベル２にあるスクリプト解釈装置8 により一行単位に解釈実行され、その結果はステップＳ1.2 で発行したスクリプトファイルによる問い合わせ結果としてアプリケーションソフトウェア12に返される。ステップＳ1.3 でその問い合わせの結果を出力し、動作を完了する。
【００１８】
図９には、スクリプトの記述文法（シンタックス）を示す。
（スクリプト解釈装置の動作）
ステップＳ2.1 にて、スクリプトファイル101 をアプリケーションソフトウェア12より取得する。この時、スクリプトファイルに記述されるスクリプトを行単位に逐次解釈実行するため、ステップＳ2.2 で、制御変数群を初期化する。ステップＳ2.3 にて、処理対象スクリプトの現在行を確定する。ステップＳ2.4 にて、スクリプト行の内容がスクリプト終了を表わすかどうか判定し、終了を表わす場合、ステップＳ2.8 で示す終了処理の後、スクリプト解釈動作を終了する。
【００１９】
スクリプト行の内容がスクリプト終了でない場合、ステップＳ2.5 にて、１行解析処理を行う。１行解析処理においては、当該スクリプト行をプリミティブの形式に変換し、ステップＳ2.6 で対応するローカルデータベースシステム14、もしくはメタデータベースシステム4 に宛てて、このプリミティブを発行する。ステップＳ2.7 は、スクリプト処理対象行を１つ進めるため、制御変数群を更新する処理であり、その後ステップＳ2.3 に戻る。
【００２０】
図５は、上述したスクリプト解釈装置8 の動作をより詳細に説明するフローチャートである。ステップＳ2.1.1-2.1.3 が上述ステップＳ2.1 に、ステップＳ2.3.1-2.3.5 が上述ステップＳ2.3 に、ステップＳ2.8.1-2.8.2 が上述ステップＳ2.8 に、それぞれ対応している。ステップＳ2.3.2 に示す制御コードとは、例えば、改行コードなど、図９に示すスクリプトのシンタックスに影響のない文字を指し、これをステップＳ2.3.3 でスキップする。なお、図５のフローチャートでは、コメント行を無視する処理の説明を省略している。
【００２１】
図６は、上述ステップＳ2.5 の１行解析処理をさらに詳細に説明するフローチャートである。上述のごとく１行解析処理には、スクリプト解析装置が読み込んだスクリプトファイルの内容より、スクリプトの各行が１行単位に転送されてくる。図６のSTART に示すline_memは、上位の処理の結果、スクリプト内容を格納するメモリの先頭アドレスが格納され、同様に、p0 には処理すべき行の先頭メモリポインタが、p1には処理すべき行の最終メモリポインタが格納されている。
【００２２】
まずステップＳ4.1 で初期化を行い、ステップＳ4.2 、4.3 、4.6 、4.7 ではスクリプト行のオペレーション部分を切り出す。ステップＳ4.3 のチェックがYes であれば、オペレーションがSSTARTであるかの判定を行った後、ステップＳ4.5 の対応処理ルーチンへ制御を渡す。ステップＳ4.4 、4.8 、4.10、4.12、4.14、4.16、4.18で使用する関数string_chrck( ) は、引数として指定されたメモリアドレスと、その先頭メモリポインタ、最終メモリポインタで区切られた部分に、第４引数で指定した" " で囲まれる文字列が存在するかをパターンマッチング法で照合する処理であって、合致する場合にはリターン値１を、合致しない場合にはリターン値０を返す。ステップＳ4.6 の判定がYes の場合には、SSTART以外のオペレーションであることが確定し、各オペレーションに対応したステップＳ4.9 、4.11、4.13、4.15、4.17、4.19で示す対応処理ルーチンへそれぞれ接続が渡る。
【００２３】
図１０は、上述スクリプト行の各オペレーションに対応した処理ルーチンにおいて発生させるプリミティブとその発行先決定方法などを説明するものである。本システムでは、図１０に記述する各行の形式で表される処理単位をプリミティブと呼んでおり、これらはサービスの要求先（つまり、プリミティブの発行先）によって、以下の４種類に分類する。
【００２４】
mmdb_XXX( ) の形式（XXX は任意。以下も同様）のプリミティブ群は、メタデータベースシステム4 に存在するプリミティブ処理装置5 へ発行される。メタデータベースシステムには、本システムで使用可能な複数のデータベースの存在場所や管理情報をデータベース化したデータベース管理情報及び異種データベース間の結合を行うために必要となる補填情報データベースをメタデータベースとして備える。つまり、複数のローカルデータベースのアクセス及び異種データベース間の結合を行うにあたって必要な情報が上記メタデータベースシステムに存在する。
【００２５】
1db_XXX( )の形式のプリミティブ群は、メタデータベースシステムから得た情報をもとに、対応するローカルデータベースシステム14に存在するプリミティブ処理装置9 へ発行されるローカルデータベース問い合わせのためのプリミティブである。
mm_XXX( ) の形式のプリミティブ群は、複数のデータベースから得た1db_XXX( )プリミティブ群による問い合わせ結果をもとに、本システム独自の結合処理や演算処理を行うプリミティブ群であって、メタデータベースシステム4 に存在するプリミティブ処理装置5 に発行される。
【００２６】
gen_XXX( )の形式のプリミティブ群は、上述プリミティブ以外の、本システムにおけるメタレベルで一般的汎用的に必要な機能を実現するためのプリミティブ群であって、例えば、問い合わせ結果や表の結合に必要な内部メモリ獲得の処理などを含む。
ステップＳ4.5 に示すfunc_sstart( )は、スクリプトSSTARTに対応するプリミティブとして、mmdb_open( )を発行する。これはプリミティブ処理装置5 へ発行され、MDB7に存在するローカルデータベース管理情報データベースのオープン要求をし、リターン値mmdb_staを返す。
【００２７】
ステップＳ4.9 に示すfunc_open( )は、スクリプトm_openに対応するプリミティブとして、３種類のプリミティブを発行する。図１０において「」で囲んだ文字列は、図９で示したスクリプトのシンタックスに対応させてあり、ステップＳ4.9 、4.11、4.13、4.15、4.17、4.19に示した各対応ルーチンの引数として渡されたスクリプト行メモリから切り出して転送する。
【００２８】
プリミティブmmdb_service( ) は、スクリプト行で指定された「データベース名」、「表名」をプリミティブ処理装置5 に引き渡し、該当するローカルデータペースに関する情報を構造体（複数の情報を構造的にグループ化した情報格納メモリ）1dbinfに格納させる。構造体1dbinfには、該当するデータベースの存在場所や管理情報、および表を展開するために必要なメモリサイズなどの情報が格納される。
【００２９】
プリミティブgen_memalloc( ) は、構造体1dbinfで取得した表の展開に必要な内部メモリ獲得要求をプリミティブ処理装置5 に発行する。リターン値mmsta は、確保された内部メモリの先頭アドレスである。さらに、プリミティブ1db_open( ) で目的となるローカルデータベースシステムに存在するプリミティブ処理装置9 に問い合わせを発行する。
【００３０】
ステップＳ4.11に示すfunc_sleect( )は、プリミティブ1db_open( ) によりすでにオープンされているローカルデータベースに対し、検索要求のプリミティブ1db_select( ) を発行する。引数には、構造体1dbinf、内部メモリ先頭アドレスmmsta 、およびスクリプトオペレータm-selectより渡された4 個の引数「検索対象表名」、「属性名」、「条件演算操作」、「条件比較値」をセットする。
【００３１】
（プリミティブ処理装置の動作）
プリミティブ処理装置は、ステップＳ2.6 にて発行された各プリミティブを解釈実行する装置であり、ローカルデータベースシステム10に存在するプリミティブ処理装置9 とメタデータベースシステム6 に存在するプリミティブ処理装置5 がある。本システムが扱うすべてのデータベースシステムには、それぞれに対応するプリミティブ処理装置を備える。一般的に、複数のデータベースシステムは、それぞれに異なる処理系を持っており、その個々に対応したプリミティブ処理装置によって当該データベースシステム固有のコマンドに変換する。この変換操作によって、前述した個々の処理系による処理操作の違いを吸収する。
【００３２】
ステップＳ3.1 〜3.5 は、各プリミティブ処理装置がスクリプト解釈装置より発行されたプリミティブ１個を受信し、実行結果を返すまでの処理を説明している。
ステップＳ3.1 にて、プリミティブを取得する。ステップＳ3.2 にて、そのプリミティブを解釈する。ステップＳ3.3 にて、そのプリミティブ処理装置に対応するデータベースシステムのコマンドへ変換する。プリミティブ処理装置はステップＳ3.4 にて、そのコマンドを対応するデータベースシステムへ発行する。つまり、そのデータベースシステムにおいてコマンドを実行する。ステップＳ3.5 にて、その実行結果をスクリプト解釈装置に返し、動作を終了する。
【００３３】
＜メタレベルシステム＞
メタレベルシステムは、以下の役割を果たす。
１：複数のローカルデータベースシステム間で異なっている情報の表現形式や属性定義の差違を吸収する。
２：ローカルデータベース間結合の基本機能群を提供する。
３：ローカルデータベース間結合を補助するデータを管理する。
【００３４】
（メタ形式とメタデータ）
上記の役割１を実現するため、メタレベルシステムは結合対象となるローカルデータベースに含まれているデータの標準的な表現形式を提供する。左記、標準的な表現形式を「メタ形式」、メタ形式で表現されたデータを「メタデータ」と称す。
【００３５】
（メタデータベースとメタデータベースシステム）
上記の役割２を実現するために、前述のmm_XXX( ) に分類されたプリミティブ群により、本システム独自の結合処理や演算処理を行なう。
さらに、上記の役割３を実現するために、メタレベルシステムはメタデータベースおよびメタデータベース管理システムを備える。例えば、メタデータベースは、操作対象となるローカルデータベースの位置情報を待つ。また、ユーザからの問い合わせに対し、ローカルデータベースの結合操作だけでは解決しないデータを補填するデータベースを備える。前述のmmdb_XXX( ) に分類されるプリミティブとメタデータベースシステムに備えるデータベース管理情報がこれを実現する。
【００３６】
＜システム構築の例＞
図４は、本システムの一構築例を説明するシステム構築図である。なお、本システムの構築に際しては図４の構成に限る必要はなく、論理的に構築可能なこの図以外の構成で構築しても実施可能であることは言うまでもない。
（アプリケーションレベルのシステム構成）
図４において、202 および207 は、中央演算装置（以下、「CPU 」と称す）、内部メモリ、周辺機器制御装置、オペレーティングシステムなどを備えたコンピュータ装置である。アプリケーションソフトウェア12、スクリプト変換装置102 は、ディスク装置201 、206 の記憶媒体であるディスクにプログラムとして格納されており、入出力端末203 、204 、208 からのユーザによる入力指示により、コンピュータ装置202 、207 に呼び出され実行される。
【００３７】
（メタレベルのシステム構成）
図４において、211 は202 、207 と同様な構成をもつコンピュータ装置であり、スクリプト解釈装置8 として機能する。スクリプト解釈処理のためのソフトウェアはディスク装置210 の記憶媒体であるディスクに格納され、アプリケーションレベルより受信したスクリプト101 による問い合わせに呼応して、コンピュータ装置211 に呼び出され実行される。
【００３８】
213 、214 、217 、および218 は、メタデータベースシステム4 を構成するための装置群であって、213 、217 はメタデータベース７およびメタデータベース管理システム6 のためのコンピュータ装置である。図４において、メタデータベースは物理的にディスク装置214 、218 のファイルとして存在し、さらにコンピュータ装置213 はメタデータベース214 を制御するデータベースシステム、およびこれに対応するプリミティブ処理装置である。同様に、コンピュータ装置217 はメタデータベース218 を制御するデータベースシステム、およびこれに対応するプリミティブ処理装置である。
【００３９】
プリミティブ処理のためのソフトウェアはディスク装置214 および218 の記憶媒体であるディスクに格納され、スクリプト解釈装置より受信したプリミティブ107 による問い合わせに呼応して、コンピュータ装置213 および217 に呼び出され実行される。
（ローカルレベルのシステム構成）
図４において、ローカルデータベースはディスク装置222 、223 、224 、および227 のファイルとして存在し、コンピュータ装置220 はデータベース222 、223 、224 を制御するローカルデータベースシステム、およびこれに対応するプリミティブ処理装置である。同様に、コンピュータ装置226 はデータベース227 を制御するローカルデータベースシステム、およびこれに対応するプリミティブ処理装置である。
【００４０】
プリミティブ処理のためのソフトウェアはディスク装置221 および227 の記憶媒体であるディスクに格納され、スクリプト解釈装置より受信したプリミティブ105 による問い合わせに呼応して、コンピュータ装置220 および226  に呼び出されて実行される。
（各レベル間の接続）
251 〜256 は、各レベルにおけるシステムを構成する各装置を接続する構内ネットワークのラインであり、ネットワーク接続装置205 、209 、215 、216 、219 、225 、および228 によって外部システムと接続されている。構内ネットワークと外部との接続には、例えば、高速のデジタル専用線などを用いるが、アプリケーションレベルの入出力端末からの接続には、通常のアナログ公衆回線などを経由したダイヤルアップなどを用いることも可能である。例えば、ライン252 を省略し、端末208 をコンピュータ装置207 に直結し、さらに209 をコンピュータ207 と公衆回線を結ぶモデム装置などの回線アダプタに置き換えた構成においても実施可能である。
【００４１】
アプリケーションレベルとメタレベル間におけるスクリプトの送受信、メタレベルとメタデータベースシステム、ローカルデータベースシステムにあるプリミティブ処理装置間のプリミティブの送受信は上記接続方法により可能となる。
＜本システムによるデータベース結合＞
本システムによるデータベース結合について、以下の問い合わせ例とその結果を用いて、より具体的に説明する。
【００４２】
（問い合わせ例）
アプリケーションレベルにあるユーザの問い合わせ背景として、「日曜日に成田を出発しニューヨークに行くため、前日より東京のホテルに宿泊する。宿泊費予算の範囲で東京のホテルを決定したい。成田空港行き列車の東京出発時刻とニューヨーク行き便の成田フライト時刻を知りたい。」を例題とする。
【００４３】
この時、問い合わせ内容（出力したい項目と情報）として、
（１）ホテルに関して：東京駅に対して地理的に便利で、かつ宿泊費予算におさまるホテルのホテル名、
（２）成田空港行き列車に関して：列車名と東京発時刻、
（３）ニューヨーク行き飛行機に関して：日曜日に出発する便名と成田発時刻、を得たいものとする。
【００４４】
ここに、「東京駅に対して地理的に便利」を例えば「ホテル所在地が千代田区内」、「宿泊費予算」を例えば「シングル料金\10,000 以上、\19,000 以下」とし、問い合わせの条件として入力する。さらにこの例の場合、成田空港での乗り換え所要時間に対する考慮が重要であり、例えば「列車の成田空港駅到着時刻から飛行機の成田出発時刻までの時間差40分以上、２時間以内」のような条件を加える必要がある。上記、問い合わせ内容を整理して図７に示す。
【００４５】
（スクリプトによる問い合わせの発行）
図７に示す問い合わせにあたって、アプリケーションソフトウェアは、図８のようなスクリプトを作成し、これをファイル形式でメタレベルシステムに発行する。"/*"と"*/"に囲まれた文字はコメント文字であり、実際の処理や動作には何も影響を与えない。説明のため、図８においてコメント行でない行には10単位の行番号を付与してある。
【００４６】
スクリプトの各行は、行終了子";" 、およびファイル終了子"." で区切られる。スクリプトはアプリケーションレベルにおける記述を最小限に押さえるためのシンタックスで構成されており、スクリプト解釈装置8 において、対応するプリミティブに変換される。
前述スクリプトにおけるシンタックスは、本例では(1) オペレーションの種類、(2) オペレーションの対象、操作などに関する１個または複数個の引数、(3) 出力対象、(4) 終了子の４から構成されており、(2) 全体は前後を"#" で囲むことにより、個々の引数は"." で区切ることにより、さらに各終了子は前述のごとく";" または"." で判別される。
【００４７】
（スクリプト解釈とプリミティブの発行）
前述のごとく、メタレベルシステムでは、アプリケーションレベルより発行されたスクリプトを問い合わせ解釈装置8 によって、行単位に解釈し、プリミティブに変換し、これを該当するデータベースに発行する。即ち、この例においては、ホテル情報を処理対象とするプリミティブはホテルデータベースに発行する。同様に、成田空港行き列車情報を処理対象とするプリミティブは、JR時刻表データベースに発行する。そして、国際線飛行機便情報を処理対象とするプリミティブは、国際線時刻表データベースに発行する。本例では、ホテルデータベース、JR時刻表データベース、国際線時刻表データベースを、それぞれリレーショナル形式のデータベースとして説明する。
【００４８】
図１１の表hotel はホテルデータベースの内容例を、図１４の表nex はJR時刻表データベースの内容例を、図１５〜１８の表air は国際線時刻表データベースの内容例をそれぞれ示している。また、例題に示す問い合わせをするためのスクリプトが実行される経過を示すものとして、図１２は、図８のスクリプト行050 終了後の表hotel の内容を、図１８は同様にスクリプト行120 終了後の表air の内容を、図１９は全てのスクリプト終了後の本システムによる出力の例を示している。
【００４９】
なお、本発明は、複数の機器（例えばホストコンピュータ，インタフェイス機器，リーダ，プリンタなど）から構成されるシステムに適用されても、一つの機器からなる装置に適用されてもよい。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００５０】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００５１】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００５２】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した各フローチャートに対応するプログラムコードを各レベル別々に、あるいは共通に格納することになる。
【００５３】
【発明の効果】
以上説明したように、本発明によれば、データベース群の共有と共同利用が広く可能となるという効果がある。
特に、異なる種類のデータベースを結合して利用することが容易となる。
【図面の簡単な説明】
【図１】本発明に係る一実施の形態のデータベースシステムの構成を表す図である。
【図２】アプリケーションレベルとメタレベルの接続を説明する図である。
【図３】アプリケーションソフトウェア、スクリプト解釈装置、プリミティブ処理装置における動作を表わすフローチャートである。
【図４】本発明に係る一実施の形態のデータベースシステムのシステム構築図である。
【図５】スクリプト解釈装置の動作をより詳細に説明するフローチャートを示す図である。
【図６】スクリプト解釈装置における１行解析処理を詳細に説明するフローチャートを示す図である。
【図７】問い合わせ内容を示す図である。
【図８】スクリプト変換例を示す図である。
【図９】スクリプトのシンタックスを示す図である。
【図１０】スクリプト解釈装置が発生するプリミティブの例を示す図である。
【図１１】ホテルデータベースの例を示す図である。
【図１２】ホテルデータベースの例を示す図である。
【図１３】地理情報データベースの例を示す図である。
【図１４】JR時刻表データベースの例を示す図である。
【図１５】国際線時刻表データベースの例を示す図である。
【図１６】国際線時刻表データベースの例を示す図である。
【図１７】国際線時刻表データベースの例を示す図である。
【図１８】国際線時刻表データベースの例を示す図である。
【図１９】本システムによる出力の例を示す図である。
【符号の説明】
１ アプリケーションレベル
２ メタレベル
３ ローカルレベル
４ メタデータベースシステム
５ プリミティブ処理装置
６ メタデータベース管理システム
７ メタデータベース
８ スクリプト解釈装置
９ プリミティブ解釈装置
１０ データベース管理システム
１１ ローカルデータベース
１２ アプリケーションソフトウェア
１４ ローカルデータベースシステム
１５ メタレベルシステム
101  スクリプト
105、106、107  プリミティブ
201、206、210、214、218、221-224、227  ディスク装置
202、207、211、213、217、220、226  コンピュータ装置
203、204、208  入出力端末
251-256  ネットワークライン
205、209、215、216、219、225、228  ネットワーク接続装置。
【図１】
0004533974.tif 000002
【図２】
0004533974.tif 000003
【図３】
0004533974.tif 000004
【図４】
0004533974.tif 000005
【図５】
0004533974.tif 000006
【図６】
0004533974.tif 000007
【図７】
0004533974.tif 000008
【図８】
0004533974.tif 000009
【図９】
0004533974.tif 000010
【図１０】
0004533974.tif 000011
【図１１】
0004533974.tif 000012
【図１２】
0004533974.tif 000013
【図１３】
0004533974.tif 000014
【図１４】
0004533974.tif 000015
【図１５】
0004533974.tif 000016
【図１６】
0004533974.tif 000017
【図１７】
0004533974.tif 000018
【図１８】
0004533974.tif 000019
【図１９】
0004533974.tif 000020