(57)【要約】【課題】クライアント端末装置からの検索要求に基いて分散された複数のデータベースに対して検索を行うデータベース検索方法を提供する。【解決手段】  本発明によると、分散された複数のデータベースに含まれるデータを表す点と該データ間の検索関係を示す矢印からなるツリー構造のグラフを表示した検索画面をクライアント端末装置に送信し、クライアント端末装置からの入力データより、グラフ上にて指定された検索対象点とデータ取得対象点を抽出し、両者間の最短経路を求め、該最短経路に沿ってグラフ上の点にマッピングされたデータベースに対して検索を行い、検索結果として取得されたデータをグラフ上の経路の距離によって優先順を付して表示した検索結果画面をクライアント端末装置に送信する。【選択図】    図１
2006260346.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末装置からの検索要求に基いて分散された複数のデータベースに対して検索を行うデータベース検索装置において、
上記分散された複数のデータベースに含まれるデータを表す点と該データ間の検索関係を示す矢印からなるツリー構造のグラフを管理するデータ管理部と、上記グラフを表示した検索画面をクライアント端末装置に送信し該クライアント端末装置から上記検索画面上の入力データを受信し該入力データに基いて上記分散された複数のデータベースに対して検索を実行する検索実行部と、を有し、該検索実行部によって実行された検索結果を上記クライアント端末装置に送信することを特徴とするデータベース検索装置。
【請求項２】
請求項１記載のデータベース検索装置において、上記検索実行部は、上記グラフ上にて指定された検索対象点とデータ取得対象点の間の最短経路を上記グラフ上にて求め、該最短経路に沿って上記グラフ上の点にマッピングされたデータベースに対して検索を行うことを特徴とするデータベース検索装置。
【請求項３】
クライアント端末装置からの検索要求に基いて分散された複数のデータベースに対して検索を行うデータベース検索方法において、
上記分散された複数のデータベースに含まれるデータを表す点と該データ間の検索関係を示す矢印からなるツリー構造のグラフを表示した検索画面をクライアント端末装置に送信する検索画面送信ステップと、
上記クライアント端末装置から上記検索画面上にて入力された入力データを受信する入力データ受信ステップと、
上記入力データより、上記グラフ上にて指定された検索対象点とデータ取得対象点を抽出し、両者間の最短経路を求め、該最短経路に沿って上記グラフ上の点にマッピングされたデータベースに対して検索を行う検索ステップと、
該検索ステップの検索結果として取得されたデータを上記グラフ上の経路の距離によって優先順を付して表示した検索結果画面を上記クライアント端末装置に送信する検索結果送信ステップと、
を有するデータベース検索方法。
【請求項４】
請求項３に記載のデータベース検索方法をコンピュータに実行させるためにコンピュータに読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散した複数のデータベースを検索する技術に係わり、特に、データ形式及び検索言語が異なるヘテロな環境における検索処理に関する。
【背景技術】
【０００２】
図１２に示すように、データ形式及び検索言語が異なる様々な検索システム３０１〜３０４が存在する。例えば、検索システム３０１は、テーブル形式のデータからなるリレーショナルデータベース(RDB)３１１を扱うシステム、検索システム３０２は、XML（eXtensible Markup Language）形式のデータからなるXMLデータベース（XMLDB）３１２を扱うシステム、検索システム３０３は、XMLベースのメッセージングを行うWEBサービス３１３を利用するシステム、検索システム３０４は、WEBサーバ上からプログラム実行を行うCGI（Common Gateway Interface）３１４を利用するシステムである。
【０００３】
これらの検索システム３０１〜３０４を利用するには、互いに異なる検索言語を用いて検索条件を設定する。例えば、RDB検索システム３０１では、SQL、XMLDB検索システム３０２では、XPath、 XQueryを使用する。WEBサービスを利用する検索システム３０３では、RPCの引数、XMLドキュメントを用いる。CGIを利用する検索システム３０４では、HTTP Request のパラメータを使用する。
【０００４】
ユーザは、検索システム３０１〜３０４を利用する場合、クライアント端末装置１００から通信ネットワーク４００を介して、検索システム３０１〜３０４のいずれかにアクセスし、検索システム毎に異なる検索言語で検索条件を設定しなければならない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来のデータ検索システムでは、ユーザは、利用する検索システム毎に異なる検索アプリケーションを使用し、検索言語にて検索条件を設定しなければならない。またユーザは、取得したデータの内容を見ながら必要なデータが揃うまで順次検索システムを使用する必要があった。
【０００６】
本発明の目的は、これらの問題を解決し、分散した複数の検索システムを利用してデータ検索を行う場合にユーザの処理を簡単化する手段を提供することにある。
【課題を解決するための手段】
【０００７】
本発明によると、クライアント端末装置からの検索要求に基いて分散された複数のデータベースに対して検索を行うデータベース検索方法において、
上記分散された複数のデータベースに含まれるデータを表す点と該データ間の検索関係を示す矢印からなるツリー構造のグラフを表示した検索画面をクライアント端末装置に送信する検索画面送信ステップと、
上記クライアント端末装置から上記検索画面上にて入力された入力データを受信する入力データ受信ステップと、
上記入力データより、上記グラフ上にて指定された検索対象点とデータ取得対象点を抽出し、両者間の最短経路を求め、該最短経路に沿って上記グラフ上の点にマッピングされたデータベースに対して検索を行う検索ステップと、
該検索ステップの検索結果として取得されたデータを上記グラフ上の経路の距離によって優先順を付して表示した画面を上記クライアント端末装置に送信する検索結果送信ステップと、を有する。
【発明の効果】
【０００８】
本発明によれば、複数のデータベースを対象とした検索条件を容易に指定し、検索処理を自動実行することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明を実施する場合の一形態を、図面を参照して具体的に説明する。図１は、本発明によるデータベース検索システムの構成例を示す。本例のデータベース検索システムは、クライアント端末装置１００、検索サーバ２００及び複数の検索システム３０１〜３０４を有する。例えば、第１の検索システム３０１は、リレーショナルデータベース３１１を検索対象データベースとし、第２の検索システム３０２は、XMLデータベース３１２を検索対象データベースとする。第３の検索システム３０３は、WEBサービス３１３を用いた検索システムであり、第４の検索システム３０４は、CGI３１４を用いた検索システムである。クライアント端末装置１００は、インターネット等のネットワーク４００を介して検索サーバ２００に接続されている。検索サーバ２００はインターネット等のネットワーク４００を介して検索システム３０１〜３０４に接続されている。
【００１０】
クライアント端末装置１００は、WEBブラウザ１０１と検索アプリケーション１０２を有する。検索アプリケーション１０２は、検索サーバ２００からクライアント端末装置１００に自動的にダウンロードされ、自動的に起動する。しかしながら、検索アプリケーション１０２をクライアント端末装置１００のローカルストレージに格納しておき、そこからインストールしてもよい。
【００１１】
検索サーバ２００は、検索実行・データ管理部２１０とデータ変換部２１１〜２１４を有し、更にメタデータベース２２０が設けられている。検索実行・データ管理部２１０とデータ変換部２１１〜２１４は、WEBサービスコンテナ２０１上で実行されるプログラムである。ここでは、検索サーバ２００は、WEBサービスコンテナを用いて実装されているが、そのほかの分散オブジェクト環境を用いてもよい。
【００１２】
メタデータベース２２０には、分散された複数のデータベースに含まれるデータを１つのツリー構造に変換したグラフが保存されている。このグラフは、分散された複数のデータベースに含まれるデータのフィールドを表す点と、データ間の検索関係を示す矢印からなる。グラフの詳細に後に説明する。
【００１３】
こうして本例によると、クライアント端末装置１００は、１つの検索アプリケーション１０２を使用して分散された複数のデータベースを利用することができる。
【００１４】
図２は、図１のクライアント端末装置１００、検索サーバ２００、検索システム３０１〜３０４の構成例を示すブロック図である。クライアント端末装置１００、検索サーバ２００、検索システム３０１〜３０４は、それぞれ、図２に示す情報処理装置１０によって構成されてよい。この情報処理装置は、CPU（Central Processing Unit）１、主メモリ２、LANカード等からなる通信装置３、キーボード、マウス、ポインティングデバイス等からなる入力装置４、CRT（Cathode Ray Tube）、LCD（Liquid Crystal Display）等からなる表示装置５、HDD（Hard Disk Drive）やフラッシュメモリ等からなる記憶装置６を有する。
【００１５】
図３は、検索サーバ２００にてWEBサービスコンテナを用いて実装されたプログラムの構造の例を示す。このプログラムは、検索実行・データ管理部２１０とデータ変換部２１１〜２１４を有する。検索実行・データ管理部２１０は分散された複数のデータベースに含まれるデータを１つのツリー構造に変換したグラフをメタデータベース２２０に保存し、それを管理すると共に、更に、検索対象全体の検索可能項目の管理、検索の実行及び検索結果の送信を行う。
【００１６】
データ変換部２１１〜２１４は、検索対象のデータベースに対する入出力を共通化するためのものであり、それぞれのデータベースシステム毎に用意する。これらはWEBサービスを用いて実装されたメディエータであり、同一マシン上にある必要はなく、それぞれのデータベースシステムを管理している組織がメンテナンスしても良い。
【００１７】
図４は、RDBの情報をグラフ構造に変換する方法の例を示す。ここでは、２つのテーブル４０１、４０２をツリー構造に変換する場合を説明する。例えば、第１のテーブル４０１は、人物のデータであり、第２のテーブル４０２は、会社のデータである。第１のテーブル４０１のカラム欄には、Ａ（氏名）、Ｂ（年齢）、Ｃ（会社名）等が記述される。第２のテーブル４０２のカラム欄には、Ｄ（会社名）、Ｅ（会社の住所）、Ｆ（会社の電話番号）等が記述される。２つのテーブルは、外部キーでリンクされている。各テーブルの第１行は主キーである。このようなスキーマ情報をグラフ４０３に変換する。グラフでは、第１及び第２のテーブル４０１、４０２のデータが点と矢印からなるツリー構造によって表される。主キーは、ツリーの頂点となり、外部キーは、２つのツリーの合成点となる。こうして、全てのRDBの情報はグラフ構造に変換される。
【００１８】
図５は、XMLデータベースの情報をグラフ構造に変換する例を示す。XMLデータは、スキーマ言語によって表されている。従って、スキーマ言語をグラフ構造５０２に変換する。XMLのスキーマ言語には、DTD(Document Type Definition)やXMLSchemaがあるが、図５ではＤＴＤ５０１が使用されている例を示す。XMLデータはツリー構造を有するから、項目は１対１の関係に変換される。
【００１９】
図６は、CGIによる検索結果をグラフ構造に変換する例を示す。CGIでは、検索条件６０１はhttpのGETあるいはPOSTメソッドで送信され、検索結果６０２はHTML形式で取得される。HTML形式ではデータ自体は通常構造を持っていないが、データの内容を考慮してグラフ構造６０３に変換する。検索システムがWEBサービスで検索する場合には様々な場合が考えられるのでCGIの場合と同様に個別に対応する。
【００２０】
こうして作成したグラフを１つのグラフ上にマッピングして、全てのデータベースの内容を表すグラフを生成する。また、検索対象のデータベース毎にそれぞれ検索条件を指定できる項目が限定されている場合には、そのような情報も付加しておく。こうして生成されたグラフは、図７に示す検索画面として表示される。
【００２１】
図７は、クライアント端末装置１００に表示された検索画面の例を示す。検索画面７００は、分散された複数のデータベースのデータを検索条件指定用グラフ７０１として表示する。検索条件指定用グラフ７０１は、分散された複数のデータベースに含まれるデータのフィールドを表す点と、データ間の検索関係を示す矢印からなる。検索条件指定用グラフ７０１を作成するには、先ず、検索対象全体のデータのフィールドを点、データ間の検索関係を辺とした全体グラフを用意し、複数のデータベースが有するデータのフィールドを点、検索関係を辺とした部分グラフを用意する。次に、部分グラフを全体グラフの部分として対応させることによって検索条件指定用グラフ７０１が得られる。
【００２２】
上述したように、点は、氏名、年齢、会社名、会社の住所、会社の電話番号等のデータを表す。従って、点の下に、これらのデータ名を表示してもよく、又は、点にカーソルを近づけると、その点に対応したデータ名を小ウインドウに表示してもよい。検索画面７００は、更に、検索条件指定フィールド７０２と検索実行ボタン７０３を有する。
【００２３】
ユーザは、検索画面７００上にて検索条件の指定と取得対象データの設定を行い、検索実行ボタンを押す。検索条件の指定を行うには、検索条件指定用グラフ７０１上の点、即ち、検索対象点を指定し、検索条件指定フィールド７０２内に、検索キーワードと範囲を入力する。範囲は、「イコール」、「以上」、「以下」等の条件である。例えば、検索キーワードとして「年齢」を設定し、範囲として「３０歳」「イコール」を設定する。それによって、年齢が３０歳という条件が設定される。取得対象データは、検索結果として検索結果画面上に表示したい項目である。取得対象データの設定を行うには、検索条件指定用グラフ７０１上の点、即ち、データ取得対象点を指定する。例えば、検索対象点が「会社」を表し、データ取得対象点が「Ａ大学出身者名」を表す場合、「会社」に所属する年齢が３０歳である人のうちＡ大学出身者名が検索結果として表示される。検索対象点からデータ取得対象点まで、矢印に沿って最短距離の経路が求められる。この経路に沿って、データベースを検索することにより、目的とするデータが得られる。取得されたデータはグラフ上の経路の距離によって優先順がつけられて表示される。
【００２４】
図８を参照してクライアント端末装置１００における処理を説明する。ステップＳ１０１にて、クライアント端末装置１００にて検索画面を表示する。本例では、先ず、クライアント端末装置１００は、検索サーバ２００に検索画面を要求する。ユーザは、クライアント端末装置１００のWEBブラウザ１０１を用いて、検索サーバ２００が提供する検索用WEBページにアクセスする。それによって、検索アプリケーション１０２は自動的にダウンロードされる。検索アプリケーション１０２は自動的に起動し、クライアント端末装置１００にて検索画面を表示する。
【００２５】
検索画面は、図７に示すように、検索対象データベースの全体の項目と検索方向を点と矢印によって表示する検索条件指定用グラフ７０１を含む。
【００２６】
ステップＳ１０２にて、ユーザは、検索条件指定用グラフ７０１上にて検索対象点を指定し、検索条件指定フィールド７０２にて、検索キーワードと範囲を指定することによって、検索条件を指定する。上述のように、例えば、検索対象点として「会社」を指定し、検索キーワードとして「年齢」を指定し、範囲として「３０歳」「イコール」を指定した場合、会社に所属する年齢が３０歳という検索条件が設定される。
【００２７】
ステップＳ１０３にて、ユーザは、検索条件指定用グラフ７０１上にてデータ取得対象点を指定することによって、取得対象データを設定する。ユーザは、検索条件の指定と取得対象データの設定を行うと、検索実行ボタンを押す。ステップＳ１０４にて、クライアント端末装置１００の検索アプリケーション１０２は、検索サーバ２００に送信するための検索条件を生成する。
【００２８】
ステップＳ１０５にて、クライアント端末装置１００は、検索サーバ２００に検索条件を送信する。ステップＳ１０６にて、クライアント端末装置１００は、検索サーバ２００からの検索結果を取得する。ステップＳ１０７にて、クライアント端末装置１００は、画面上に検索結果として取得対象データを表示する。
【００２９】
図９を参照して検索サーバ２００における検索処理を説明する。ステップＳ２０１にて、検索サーバ２００は、クライアント端末装置１００から検索画面の要求を受信する。ステップＳ２０２にて、検索サーバ２００は、メタデータベース２２０からグラフを読み込み、それを含む検索画面を生成し、クライアント端末装置１００に送信する。ステップＳ２０３にて、クライアント端末装置１００から検索要求を受信する。ステップＳ２０４にて、検索サーバ２００は、検索を実行する。ステップＳ２０４の検索処理の詳細は図１０を参照して説明する。ステップＳ２０５にて、検索サーバ２００は、クライアント端末装置１００に検索結果を送信する。本例では、検索対象のデータベースは異なる検索言語を用いるが、ユーザが入力した１つの検索条件によって複数の検索システムに対して同時に検索を実行させる。
【００３０】
図１０を参照して、ステップＳ２０４の検索処理を説明する。ステップＳ３０１にて、クライアント端末装置１００から送信された入力データから、グラフ上の検索対象点、データ取得対象点、検索キーワード及び範囲（一致、以上、以下）の組を取り出して検索条件リストに入れる。ステップＳ３０２、３０３、３０４にて、１周目の検索処理を実行する。先ず、ステップＳ３０２にて、検索対象点とデータ取得対象点の間の最短経路を取得する。ステップＳ３０３にて、最短経路に沿って、グラフの点にマッピングされているデータベースに対して検索を行う。ステップＳ３０４にて、検索結果をマッピングする。ステップＳ３０５にて、取得したデータの点がグラフ上で連結しているか否かをチェックする。連結していない場合には、ステップＳ３０９、Ｓ３１０、Ｓ３１１、Ｓ３１２に進み、２周目以降の検索を行う。この処理ではステップＳ３０２で取得した最短経路に沿って検索を実行する。ステップＳ３０９にて、検索条件リストを空にする。ステップＳ３１０にて、最短経路上の点のうち、データ未取得点に隣接しているデータ取得済点とその点にマッピングされているデータを検索条件リストに追加する。ステップＳ３１１にて、検索条件リストから検索済の条件を除去する。ステップＳ３１２にて、検索条件リストが空か否かを判定する。ステップＳ３１２で検索条件リストが空の場合には検索結果が０件ということで終了処理を行う。ステップＳ３０５にて、取得したデータがグラフ上で連結している場合には、ステップＳ３０６にて、取得対象データの取得を行う。ステップＳ３０６の取得対象データの取得処理は図１１を参照して説明する。これは検索条件を満たすデータを取得しただけでは取得対象データをすべて取得できるとは限らないためである。ステップＳ３０７にてデータ形式を変換し、ステップＳ３０８にて検索結果をクライアント端末装置１００に送信する。
【００３１】
図１１を参照して、ステップＳ３０６の、取得対象データの取得を行う処理を説明する。ステップＳ４０１にて、取得対象データをすべて取得したかどうかを判定する。即ち、取得対象として指定された点が全て取得済リストに入っているか否かを判定する。データが不足している場合には、ステップＳ４０２にて、データ取得対象点からデータ取得済み点までの最短経路を取得する。これはどのデータをキーとして検索を続ければよいかを判定するための指標として使用される。ステップＳ４０３にて、最短経路上の終点とその値を検索条件リストに追加する。これは、取得対象点から一番近い距離にある取得済み点を選択し、そのデータを次の検索キーとする。実際の検索処理はステップＳ４０７、Ｓ４０８で実行される。
【００３２】
ステップＳ４０４にて、検索条件リストから検索済の条件を除去する。ステップＳ４０５にて、検索条件リストが空か否かを判定する。検索条件リストが空でない場合には、ステップＳ４０７にて、検索条件リスト内の点にマッピングされているデータベースに対して検索処理を実行する。ステップＳ４０８にて、検索結果をグラフ上にマッピングする。次に、ステップＳ４０１からＳ４０４に戻る。ステップＳ４０５にて、検索条件リストが空の場合には、ステップＳ４０６にて、データ形式を変換する。
【００３３】
このようにして、本例では、複数のデータベースを対象とした検索条件を容易に指定し、検索処理を自動的に実行することができる。
【００３４】
尚、本発明は本例説明したものに限定されるものではなく、その要旨を逸脱しない範囲において変更可能である。
【図面の簡単な説明】
【００３５】
【図１】本発明による分散データベース検索システムの構成例を示すブロック図である。
【図２】検索サーバ、クライアント端末装置、及び、検索システムのハードウェア構成例を示すブロック図である。
【図３】検索サーバのWEBサービスコンテナを用いて実装されたプログラムの詳細を示す図である。
【図４】RDBのスキーマをグラフに変換する例を表した図である。
【図５】XMLDBの情報をグラフに変換する例を表した図である。
【図６】CGIを用いて検索したデータをグラフに変換する例を表した図である。
【図７】クライアント端末装置の表示装置に表示される検索画面の例を示す図である。
【図８】クライアント端末装置の処理手順を示す流れ図である。
【図９】検索サーバの処理手順を示す流れ図である。
【図１０】図９の検索処理の詳細を示す流れ図である。
【図１１】図１０の取得対象データの取得を行う処理の詳細を示す流れ図である。
【図１２】従来の分散データベース検索システムの構成例を示す図である。
【符号の説明】
【００３６】
１…CPU、２…主メモリ、３…通信装置、４…入力装置、５…表示装置、６…記憶装置、１０…情報処理装置、１００…クライアント、１０１…WEBブラウザ、１０２…クライアントアプリケーション、２００…検索サーバ、２０１…WEBサービスコンテナ、２１０…検索実行・データ管理部、２１１〜２１４…データ変換部、２２０…メタデータベース、３０１…検索システム（RDB）、３０２…検索システム（XMLDB）、３０３…検索システム（WEBサービス）、３０４…検索システム（CGI）、４００…ネットワーク
【図１】
2006260346.tif 000003
【図２】
2006260346.tif 000004
【図３】
2006260346.tif 000005
【図４】
2006260346.tif 000006
【図５】
2006260346.tif 000007
【図６】
2006260346.tif 000008
【図７】
2006260346.tif 000009
【図８】
2006260346.tif 000010
【図９】
2006260346.tif 000011
【図１０】
2006260346.tif 000012
【図１１】
2006260346.tif 000013
【図１２】
2006260346.tif 000014