(57)【特許請求の範囲】
【請求項１】
複数のデータベースシステムが接続され、ユーザシステムからの問合せ文に応じてデータが出力される仮想データベースシステム管理装置において、
前記データベースシステム単位に副問合せ文の生成及び副問合せ文によるデータ再配置に伴う前記問合せ文の変換を行う問合せ文生成部と、
前記問合せ文生成部が生成した副問合せ文の実行結果サイズを推定する実行結果推定部と、
前記問合せ文生成部が生成した副問合せ文及び変換した問合せ文に対して、前記実行結果推定部が推定した実行結果サイズに基づいて副問合せ文及び変換した問合せ文の実行順序並びに副問合せ文の実行結果のデータ配置を決定する問合せ入力解析部と、
前記問合せ入力解析部が決定した実行順序に基づいて副問合せ文及び変換した問合せ文を実行する問合せ実行部と、
前記データベースシステムに関連付けたエントリ番号を管理する物理データベース管理情報と、前記ユーザシステムからの問合せ対象となる論理データベース情報を定義し、前記物理データベース管理情報に対して、対応する前記各エントリ番号を紐付けて管理する論理データベース管理情報とが記憶されたデータベース管理部とを備え、
前記問合せ入力解析部は、前記副問合せ文の実行順序及び実行結果のデータ配置を決定して前記論理データベース管理情報を更新するとともに、
前記問合せ入力解析部は、
前記ユーザシステムからの問合せ文に対して、前記各データベースシステムの各データベースで閉じられる複数の単独データベース副問合せ文を生成し、前記各単独データベース副問合せ文から推定される実行結果サイズについて、予め決められた基準により「十分大きい」及び「ほぼ等しい」で区別される順序で整列させる機能を備え、
前記実行結果サイズの整列結果に「十分大きい」が１つ以上存在する場合で前記問合せ文において前記各データベースシステムの複数のデータベースで閉じられる複数データベース副問合せ文を生成し、
前記単独データベース副問合せ文から推定される実行結果サイズが前記複数データベース副問合せ文から推定される実行結果サイズに対して「十分大きい」場合に、
実行結果サイズが十分大きい方でない単独データベース副問合せ文に対する単独データベース副問合せ文の実行結果にリンクするテーブルを、前記論理データベース管理情報の実行結果サイズが十分大きい方に対応するデータベースに追加する機能を備え、
前記問合せ実行部は、
前記問合せ入力解析部が決定した実行順序に基づいて前記単独データベース副問合せ文の実行結果となるテーブルを前記物理データベース管理情報に追加するデータ再配置を行う機能を備えた
ことを特徴とする仮想データベースシステム管理装置。
【請求項２】
前記「十分大きい」は、前記実行結果サイズの相違が二桁以上である場合であり、
前記「ほぼ等しい」は、前記実行結果サイズの相違が一桁以下である場合である
請求項１に記載の仮想データベースシステム管理装置。
【請求項３】
複数のデータベースシステムが接続され、ユーザシステムからの問合せ文に応じてデータが出力される仮想データベースシステム管理方法において、
前記データベースシステムに関連付けたエントリ番号を管理する物理データベース管理情報と、前記ユーザシステムからの問合せ対象となる論理データベース情報を定義し、前記物理データベース管理情報に対して、対応する前記各エントリ番号を紐付けて管理する論理データベース管理情報とを記憶する手順と、
前記ユーザシステムからの問合せ文に対して、前記各データベースシステムの各データベースで閉じられる複数の単独データベース副問合せ文を生成し、前記各単独データベース副問合せ文から推定される実行結果サイズについて、予め決められた基準により「十分大きい」及び「ほぼ等しい」で区別される順序で整列させる機能を備えて、前記実行結果サイズの整列結果に「十分大きい」が１つ以上存在する場合で前記問合せ文において前記各データベースシステムの複数のデータベースで閉じられる複数データベース副問合せ文を生成し、前記単独データベース副問合せ文から推定される実行結果サイズが前記複数データベース副問合せ文から推定される実行結果サイズに対して「十分大きい」場合に、実行結果サイズが十分大きい方でない単独データベース副問合せ文に対する単独データベース副問合せ文の実行結果にリンクするテーブルを、前記論理データベース管理情報の実行結果サイズが十分大きい方に対応するデータベースに追加する一方、前記副問合せ文の実行順序及び実行結果のデータ配置を決定して前記論理データベース管理情報を更新する手順と、
前記問合せ入力解析部が決定した実行順序に基づいて前記単独データベース副問合せ文の実行結果となるテーブルを前記物理データベース管理情報に追加するデータ再配置を行う手順と、
を含むことを特徴とする仮想データベースシステム管理方法。
【請求項４】
請求項３に記載の各手順は、前記データベースシステム単位が一つになるまで繰り返して行う仮想データベースシステム管理方法。
【請求項５】
請求項１に記載の各部をコンピュータ上に構築し、問合せ文実行時に中間データサイズを推定してデータベースシステム間での適切なデータ配置を決定し、前記データ配置に合わせて問合せ文を変更して実行計画を生成する処理を行う仮想データベースシステム管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のデータベースシステムが存在する環境において、ユーザからの問合せ文に対して、各データベースシステムで実行される副問合せ文が生成され、各副問合せ文の結果を踏まえて問合せ文の残りの処理を実行する場合に、処理の効率化を図る仮想データベースシステム管理装置、管理方法及び管理プログラムに関する。
【背景技術】
【０００２】
データ仮想化システム（又はマルチデータベースシステム）は、例えば特許文献１〜４に示されるように、インタフェースやデータ管理方式が異なる複数のデータベースシステムを仮想的に一つのデータベースシステムに見せるために、各データベースシステムが持つデータを論理的に統合して管理し、与えられた問合せ文に対応するデータベースシステムに副問合せ文を出力し、各データベースシステムで実行された副問合せ文の処理結果を中央に収集し、仮想スキーマ（実際の物理テーブルをユーザに提供する論理テーブルに変換する処理を定義したもの）に従って一つに統合して結果を出力するシステムとなっている。
【０００３】
これらのデータ仮想化システムにおいては、基本的に複数のデータベースシステムと接続し、複数のデータベースを物理データベースモデルとして管理し、一方、論理データベースモデルを作成して物理データベースモデルと紐付けることによって、複数の物理データベースモデルを１つの論理データベースモデルとして扱い、論理データベースモデルに対する問合せ文の実行を可能としている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０９−０９１３０９号公報
【特許文献２】特開平１０−３０７７４３号公報
【特許文献３】特表２０１３−５０８８５７号公報
【特許文献４】特願２０１４−０５７０８０
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した仮想データベースシステムにおいては、ユーザから与えられた問合せ文に対して、仮想データベースシステムに接続された各データベースシステムにおいて実行可能な副問合せ文が生成・発行され、副問合せ文の処理結果を仮想データベースシステムが受け取り、さらに問合せ文の残りの処理を実行してユーザへ結果を返す。
しかしながら、問合せ文の残りの処理を実行するに際し、各データベースシステムにて実行する副問合せ文の結果によっては、仮想データベースシステムで処理すべきデータ量が膨大となり処理時間が長くなる、又は、リソース不足により処理を完了できずに異常終了することが起こり得るという問題があった。
【０００６】
本発明は上記実情に鑑みて提案されたものであり、複数のデータベースシステムが存在する仮想データベースシステム管理装置の環境下において、問合せ文から各データベースシステムに対する副問合せ文を生成する場合に、データ再配置とそれに伴う問合せ文変換により処理の効率化を実現する仮想データベースシステム管理装置、仮想データベースシステム管理方法及び仮想データベースシステム管理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
上記目的を達成するため本発明は、複数のデータベースシステムを扱う環境下の仮想データベースシステム管理装置において、副問合せ文の実行結果サイズを考慮した実行計画を生成することにより、仮想データベースシステム管理装置の問合せ処理を効率化する。
【０００８】
すなわち、請求項１は、複数のデータベースシステムが接続され、ユーザシステムからの問合せ文に応じてデータが出力される仮想データベースシステム管理装置において、次の構成を備えたことを特徴としている。
前記データベースシステム単位に副問合せ文の生成及び副問合せ文によるデータ再配置に伴う前記問合せ文の変換を行う問合せ文生成部。
前記問合せ文生成部が生成した副問合せ文の実行結果サイズを推定する実行結果推定部。
前記問合せ文生成部が生成した副問合せ文及び変換した問合せ文に対して、前記実行結果推定部が推定した実行結果サイズに基づいて副問合せ文及び変換した問合せ文の実行順序並びに副問合せ文の実行結果のデータ配置を決定する問合せ入力解析部。
前記問合せ入力解析部が決定した実行順序に基づいて副問合せ文及び変換した問合せ文を実行する問合せ実行部。
更に、前記データベースシステムに関連付けたエントリ番号を管理する物理データベース管理情報と、前記ユーザシステムからの問合せ対象となる論理データベース情報を定義し、前記物理データベース管理情報に対して、対応する前記各エントリ番号を紐付けて管理する論理データベース管理情報とが記憶されたデータベース管理部とを備え、
前記問合せ入力解析部は、前記副問合せ文の実行順序及び実行結果のデータ配置を決定して前記論理データベース管理情報を更新するとともに、
前記問合せ入力解析部は、
前記ユーザシステムからの問合せ文に対して、前記各データベースシステムの各データベースで閉じられる複数の単独データベース副問合せ文を生成し、前記各単独データベース副問合せ文から推定される実行結果サイズについて、予め決められた基準により「十分大きい」及び「ほぼ等しい」で区別される順序で整列させる機能を備え、
前記実行結果サイズの整列結果に「十分大きい」が１つ以上存在する場合で前記問合せ文において前記各データベースシステムの複数のデータベースで閉じられる複数データベース副問合せ文を生成し、
前記単独データベース副問合せ文から推定される実行結果サイズが前記複数データベース副問合せ文から推定される実行結果サイズに対して「十分大きい」場合に、
実行結果サイズが十分大きい方でない単独データベース副問合せ文に対する単独データベース副問合せ文の実行結果にリンクするテーブルを、前記論理データベース管理情報の実行結果サイズが十分大きい方に対応するデータベースに追加する機能を備え、
前記問合せ実行部は、
前記問合せ入力解析部が決定した実行順序に基づいて前記単独データベース副問合せ文の実行結果となるテーブルを前記物理データベース管理情報に追加するデータ再配置を行う機能を備えたことを特徴としている。
【００１１】
請求項２は、請求項１の仮想データベースシステム管理装置において、
前記「十分大きい」は、前記実行結果サイズの相違が二桁以上である場合であり、
前記「ほぼ等しい」は、前記実行結果サイズの相違が一桁以下である場合である
ことを特徴としている。
【００１２】
請求項３は、複数のデータベースシステムが接続され、ユーザシステムからの問合せ文に応じてデータが出力される仮想データベースシステム管理方法において、
前記データベースシステムに関連付けたエントリ番号を管理する物理データベース管理情報と、前記ユーザシステムからの問合せ対象となる論理データベース情報を定義し、前記物理データベース管理情報に対して、対応する前記各エントリ番号を紐付けて管理する論理データベース管理情報とを記憶する手順と、
前記ユーザシステムからの問合せ文に対して、前記各データベースシステムの各データベースで閉じられる複数の単独データベース副問合せ文を生成し、前記各単独データベース副問合せ文から推定される実行結果サイズについて、予め決められた基準により「十分大きい」及び「ほぼ等しい」で区別される順序で整列させる機能を備えて、前記実行結果サイズの整列結果に「十分大きい」が１つ以上存在する場合で前記問合せ文において前記各データベースシステムの複数のデータベースで閉じられる複数データベース副問合せ文を生成し、前記単独データベース副問合せ文から推定される実行結果サイズが前記複数データベース副問合せ文から推定される実行結果サイズに対して「十分大きい」場合に、実行結果サイズが十分大きい方でない単独データベース副問合せ文に対する単独データベース副問合せ文の実行結果にリンクするテーブルを、前記論理データベース管理情報の実行結果サイズが十分大きい方に対応するデータベースに追加する一方、前記副問合せ文の実行順序及び実行結果のデータ配置を決定して前記論理データベース管理情報を更新する手順と、
前記問合せ入力解析部が決定した実行順序に基づいて前記単独データベース副問合せ文の実行結果となるテーブルを前記物理データベース管理情報に追加するデータ再配置を行う手順と、
を含むことを特徴としている。
【００１３】
請求項４の仮想データベースシステム管理方法は、請求項３に記載の各手順について、前記データベースシステム単位が一つになるまで繰り返して行うことを特徴としている。
【００１４】
請求項５は、請求項１に記載の各部をコンピュータ上に構築し、問合せ文実行時に中間データサイズを推定してデータベースシステム間での適切なデータ配置を決定し、前記データ配置に合わせて問合せ文を変更して実行計画を生成する処理を行う仮想データベースシステム管理プログラムであることを特徴としている。
【発明の効果】
【００１５】
本発明によれば、複数のデータベースシステムが存在する環境下の仮想データベースシステム管理装置において、問合せ文から各データベースシステムに対する副問合せ文を生成するに際し、各副問合せ文の実行結果サイズ（中間データサイズ）を推定してデータベースシステム間での適切なデータ配置を決定し、そのデータ配置に応じて問合せ文を変更して実行計画を生成するので、仮想データベースシステム管理装置における問合せ文の処理効率を向上させることができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の仮想データベースシステム管理装置の構成を示すブロック図である。
【図２】問合せ入力解析部における処理手順を示すフローチャート図である。
【図３】仮想データベースシステム（データベースシステムが２個）におけるデータ保持状況を示すモデル図である。
【図４】問合せ文Ｑのデータ図である。
【図５】副問合せ文Ｑａのデータ図である。
【図６】副問合せ文Ｑｂのデータ図である。
【図７】副問合せ文Ｑａｂのデータ図である。
【図８】仮想データベースシステムにおけるデータ保持状況（ＴＢＬ＿Ｑｂ追加時）を示すモデル図である。
【図９】新たな問合せ文Ｑのデータ図である。
【図１０】仮想データベースシステムにおけるデータ保持状況（ＴＢＬ＿Ｑｂ追加及び論理テーブルとの紐付け時）を示すモデル図である。
【図１１】仮想データベースシステム（データベースシステムが３個）におけるデータ保持状況を示すモデル図である。
【図１２】副問合せ文Ｑａのデータ図である。
【図１３】副問合せ文Ｑｂのデータ図である。
【図１４】副問合せ文Ｑｃのデータ図である。
【図１５】副問合せ文Ｑａｂのデータ図である。
【図１６】仮想データベースシステムにおけるデータ保持状況（ＴＢＬ＿Ｑｂ追加時）を示すモデル図である。
【図１７】新たな問合せ文Ｑのデータ図である。
【図１８】副問合せ文Ｑａのデータ図である。
【図１９】副問合せ文Ｑｃのデータ図である。
【図２０】仮想データベースシステムにおけるデータ保持状況（ＴＢＬ＿Ｑａ追加）を示すモデル図である。
【図２１】新たな問合せ文Ｑのデータ図である。
【発明を実施するための形態】
【００１７】
本発明の仮想データベースシステム管理装置の実施形態の一例について、図面を参照して説明する。
仮想データベースシステムは、同一データを保有する複数のデータベースシステムが存在する環境において、ユーザの問合せ内容に応じてデータベースシステムを選択して問合せ内容を実行可能とするシステムであり、図１に示すように、ユーザが問合せ文の投稿を行うユーザシステム１と、仮想データシステム管理装置２と、仮想データシステム管理装置２が利用する１つ以上のデータベースシステム３から構成されている。ユーザシステム１、仮想データシステム管理装置２及びデータベースシステム３は、ネットワークを介して接続されている。仮想データシステム管理装置２は、仮想データベースシステム管理プログラムが格納された記録媒体やインターネットを介してソフトウエアのダウンロードによりインストールすることで、コンピュータ上に構築されている。
【００１８】
仮想データベースシステム管理装置が構築されるコンピュータは、オペレーティングシステム（ＯＳ）を含む基本プログラムや各種の基本デバイスが記憶されたＲＯＭと、各種のプログラムやデータが記憶されるハードディスクドライブ装置（ＨＤＤ）と、ＣＤ−ＲＯＭやＤＶＤ等の記憶媒体からプログラムやデータを読み出すメディアドライブ装置と、プログラムを実行するＣＰＵと、このＣＰＵにワークエリアを提供するＲＡＭと、入出力インターフェース（Ｉ／Ｆ）を介して接続されたディスプレイ、キーボードおよびマウス等のポインティングデバイスと、外部装置と通信するパラレル／シリアルＩ／Ｆとを主要部分とする一般的な構成を備えている。
本実施形態の仮想データベースシステム管理装置２では、仮想データベースシステム管理プログラムがシリアル／パラレルＩ／Ｆから入力、またはメディアドライブ装置で読み取られてＨＤＤに予め記憶される。仮想データベースシステム管理プログラムは記憶媒体に記憶され、メディアドライブ装置で読み取られてＨＤＤにインストールされる。
【００１９】
コンピュータ上に構築された仮想データベースシステム管理装置２は、複数のデータベースシステム３が存在する環境において、ユーザからのアクセス対象となる論理データベース情報（データベース、テーブル）を定義し、それらに対し、各データベースシステムにおける１つあるいは複数のデータベースマネジメントシステム、データベース、テーブルの組を割り当てる。
【００２０】
ユーザシステム１は、仮想データベースシステム管理装置２が提供する統合データモデルを利用した問合せ文を投稿することで、透過的に複数のデータベースシステム３に対する問合せ文の処理結果を取得する。
【００２１】
データベースシステム３は、実際にデータを保管するデータベース３１と、データに対する処理を提供するデータベースマネジメントシステム３２からなり、データベースマネジメントシステム３２が持つインタフェース経由でデータベース３１上のデータに対する処理を提供する。
【００２２】
仮想データベースシステム管理装置２は、複数のデータベースシステム３と接続されるデータベースインタフェース部２１と、データベースインタフェース部２１を介して各データベースシステム３の情報を取得し管理するデータベース管理部２２と、問合せ文生成部２５と、ユーザシステム１との入出力を行うユーザインタフェース部２３と、ユーザシステム１からの問合せ文の解析を行う問合せ入力解析部２４と、問合せ文から各データベースシステム３への副問合せ文の生成を行う問合せ文生成部２５と、副問合せ文の実行結果サイズを推定する実行結果推定部２６と、一連の副問合せ文の実行計画を生成する実行計画生成部２７と、副問合せ文を実行する問合せ実行部２８と、を備えて構成されている。
【００２３】
データベース管理部２２は、データベース３１に関連付けたエントリ番号を管理する物理データベース管理テーブル２２１と、ユーザシステム１からのアクセス対象となる論理データベース情報を定義し、物理データベース管理テーブル２２１のデータに対して、対応する各エントリ番号を紐付けて管理する論理データベース管理テーブル２２２を備えることで、各データベースシステム３の情報を管理している。
【００２４】
物理データベース管理テーブル２２１及び論理データベース管理テーブル２２２におけるデータ間の紐付け例を図３に示す。
仮想データベースシステム管理装置２に対して２つのデータベース３１（Ｄａ及びＤｂ）が接続され、データベースＤａはテーブルlineitemを、データベースＤｂはテーブルcustomer及びordersを有している。
物理データベース管理テーブル２２１では、紐付けを行うためのエントリ番号（Ｐ１〜Ｐ３）、データベースの種別（Ｄａ又はＤｂ）、データベースにおけるテーブルの種別（lineitem、customer、orders）がデータベース情報として管理されている。論理データベース管理テーブル２２２では、ユーザシステム１からアクセス対象となる論理データベース情報（データベース、テーブル）が管理され、物理データベース管理テーブル２２１のデータに対して、対応する各エントリ番号を紐付けて管理する情報としてリンク項目（Ｐ１〜Ｐ３）が設定されている。
【００２５】
問合せ入力解析部２４は、ユーザインタフェース部２３を介して入力された問合せ文の構文を解析し、解析結果を実行計画生成部２７へ出力する。また、問合せ入力解析部２４は、問合せ文の構文解析に際して、ユーザシステム１から入力された問合せ文に対して、副問合せ文の実行順序及び副問合せ文の実行結果のデータ配置を決定する。実行順序の決定及びデータ配置の決定に関する問合せ入力解析部２４における処理については後述する。
【００２６】
問合せ文生成部２５は、問合せ入力解析部２４から呼び出され、データベース単位の副問合せ文（単独データベース副問合せ文）の生成、及び、副問合せ文によるデータ再配置に伴う問合せ文の変換を行う。
実行結果推定部２６は、問合せ入力解析部２４から呼び出され、与えられた副問合せ文の実行結果サイズを推定する。
実行計画生成部２７は、問合せ入力解析部２４により決定された一連の問合せ文（副問合せ文と変換した問合せ文）の実行計画を生成する。
【００２７】
問合せ実行部２８は、実行計画生成部２７にて生成された実行計画を実行し、データベースインタフェース部２１を介して副問合せ文を実行し、実行結果についてユーザインタフェース部２３を介してユーザシステム１へ出力する。
【００２８】
次に、仮想データベースシステム管理装置２において、ユーザインタフェース部２３を介してユーザシステム１から入力された問合せ文に対する問合せ入力解析部２４での詳細処理（仮想データベースシステム管理方法）について、図２のフローチャートを参照して説明する。
【００２９】
先ず、ユーザシステム１から入力された問合せ文をＱとし、問合せ文Ｑを構成するデータベースシステムリストを｛Ｄｉ｝とし、問合せ文リストを｛ ｝とする（ステップ１０１）。データベースシステムリストは、仮想データベースシステム管理装置２に接続されるデータベース３１の要素で構成される。問合せ文リストは、当初、空集合となっている。
データベースシステムリスト｛Ｄｉ｝の要素数ｉが１より大きいか否かを判断する（ステップ１０２）。
要素数ｉが１より大きい場合、データベースシステムリスト｛Ｄｉ｝の各要素Ｄｉについて、問合せ文生成部２５により問合せ文ＱにおいてＤｉに対応する単独データベース副問合せ文Ｑｉを生成する（ステップ１０３）。「ＱにおいてＤｉに対応する」とは、問合せ文ＱにおいてＤｉに閉じた選択／射影／結合の演算を意味する。
【００３０】
次に、｛Ｑｉ｝の各要素Ｑｉについて、実行結果推定部２６よりＱｉの実行結果サイズＳｉを推定する（ステップ１０４）。実行結果サイズはオーダーが分かればよく、厳密である必要はない。
実行結果サイズ｛Ｓｉ｝の要素について、「≫（十分大きい）」、「≒（ほぼ等しい）」による順序を付けて整列する（ステップ１０５）。したがって、Ａ≫Ｂは、「ＡはＢより十分大きい」を意味し、Ａ≒Ｂは、「ＡはＢとほぼ等しい（Ａ≫ＢでもＢ≫Ａでもない）」を意味する。
なお、「≫（十分大きい）」及び「≒（ほぼ等しい）」は、予め決められた基準により分類される。例えば、「≫（十分大きい）」は、実行結果サイズがそれぞれ１ＭＢ以上で、２桁程度の違いを意味する。例えば、一方の実行結果サイズが１ＭＢの時、他方の実行結果サイズが１００ＭＢである場合は、「十分大きい」と判断する。また、実行結果サイズがそれぞれ１ＭＢより小さい、あるいは実行結果サイズの相違が１桁以下である場合は、「ほぼ等しい」に分類する。
また、実行結果サイズによっては、「≫（十分大きい）」が３桁程度の違いを意味し、「ほぼ等しい」が２桁以下の違いを意味する場合もある。
【００３１】
各要素Ｑｉの実行結果サイズＳｉを整列した結果、Ｓｉ間に１つ以上「≫」が存在するか否かを判断する（ステップ１０６）
【００３２】
Ｓｉの整列結果に「≫」が１つ以上存在する場合、最上位の要素を１つ選択しＳａとする。Ｓａ≫Ｓｂとなる全てのＳｂについて、以下（１）〜（３）の処理を実行する（ステップ１０７）。
（１）問合せ文生成部２５により、問合せ文ＱにおいてデータベースＤａ及びデータベースＤｂに対応（問合せ文ＱにおいてＤａ及びＤｂに閉じた選択／射影／結合の演算のみを対象とする）する複数データベース副問合せ文Ｑａｂを生成する。
（２）実行結果推定部２６により、複数データベース副問合せ文Ｑａｂの実行結果サイズＳａｂを推定する。
（３）Ｓａ≫Ｓａｂであれば、「Ｑｂ→ａ」を問合せ文リスト｛ ｝に追加する。「Ｑｂ→ａ」は、データベースＤｂにおける単独データベース副問合せ文Ｑｂの実行結果をデータベースＤａに追加することを意味し、データベース管理部２２の論理データベース管理テーブル２２２に項目を追加する。
【００３３】
データベースシステムリスト｛Ｄｉ｝より問合せ文リストの全ての要素に対するデータベースＤｂを削除し、問合せ文生成部２５により問合せ文Ｑにおいて｛Ｄｉ｝に対応する問合せ文を生成し（副問合せ文によるデータ再配置に伴う問い合わせ文の変換）、新たな問合せ文Ｑとする（ステップ１０８）。「問合せ文Ｑにおいて｛Ｄｉ｝に対応する」とは、問合せ文Ｑを｛Ｄｉ｝の要素のみで書き換えることを意味する。
【００３４】
ステップ１０６においてＳｉの整列結果に「≫」が１つも存在しない場合、又は、ステップ１０２において｛Ｄｉ｝の要素数ｉが１である場合、データベースシステムリスト｛Ｄｉ｝の各要素Ｄｉについて、問合せ文生成部２５により問合せ文ＱにおいてＤｉに対応する副問合せ文Ｑｉと、全ての副問合せ文Ｑｉを実行後に仮想データベースシステム上で実行する問合せ文Ｑｖを生成し、問合せ文リストに追加する（ステップ１０９）。ただし｛Ｄｉ｝の要素数が１の場合は、Ｑｉ＝ＱとなりＱのみを問合せ文リストに追加する。
【００３５】
以下、ＴＰＣ−ＨベンチマークのＱ３（ＴＰＣ−Ｈベンチマーク２２種のうちの一つ）を例として、図１の問合せ入力解析部２４における具体的な処理について、データベースシステム３が２個の場合の実施例（実施例１）、及び、データベースシステム３が３個の場合の実施例（実施例２）を説明する。
【００３６】
（実施例１）
図３に、仮想データベースシステム管理装置２におけるデータベース管理部２２の物理データベース管理テーブル２２１及び論理データベース管理テーブル２２２の構成を示す。図４に、ユーザシステム１から入力される問合せ文Ｑを示す。データベースシステムリストは、仮想データベースシステム管理装置２に接続されたデータベースの種類となる｛Ｄａ、Ｄｂ｝とする。
【００３７】
ステップ１０２におけるデータベースＤａ又はデータベースＤｂに対する単独データベース副問合せ文Ｑａ、Ｑｂは、図４の問合せ文Ｑに対して各データベース単独で実行できるように分解することで、それぞれ図５、図６となる。
ステップ１０３において、単独データベース副問合せ文Ｑａ、Ｑｂの実行結果サイズを推定してＳａ、Ｓｂとした時に、Ｓａ≫Ｓｂの関係が成り立つとする。Ｓａ≫Ｓｂの関係が成り立つ場合、副問合せ文Ｑａの実行結果が副問合せ文Ｑｂに比べて十分大きく、仮想データベースシステム管理装置２の処理におけるボトルネックになり得ることを示している。
【００３８】
ステップ１０７で生成されたデータベースＤａ及びＤｂに対応する複数データベース副問合せ文Ｑａｂは、図７のようになる。副問合せ文Ｑａｂの実行結果サイズを推定してＳａｂとした時に、Ｓａ≫Ｓａｂの関係が成り立つとする。
Ｓａ≫Ｓａｂの関係が成り立つ場合、データベースＤａ及びＤｂを対象とする複数データベース問合せ文の実行結果サイズが、データベースＤａのみを対象とする単独データベース問合せ文の結果よりも十分小さいことを示しているので、単独データベース副問合せ文Ｑｂの結果をデータベースＤａに移して複数データベース副問合せ文Ｑａｂを実行することにより、仮想データベースシステム管理装置２への負担を大幅に削減できる。
【００３９】
また、Ｓａ≫Ｓａｂの関係が成り立つ場合、問合せ文リストは｛Ｑｂ→ａ}となり、単独データベース副問合せ文Ｑｂの実行結果「ＴＢＬ＿Ｑｂ」をデータベースＤａに追加するため、論理データベース管理テーブル２２２のデータベースＤａに「ＴＢＬ＿Ｑｂ」を追加すると図８のようになる。
問合せ文リストよりデータベースシステムリストを更新して｛Ｄａ｝となり、新たな問合せ文Ｑ（Ｑ１）は、図９のようになり、データベースＤａからのみデータを取得する。
【００４０】
図２の処理フローの最初（ステップ１０２）に戻り、データベースシステムリストの要素が１より大きくないため、最終的に問合せ文リストはＱ１を追加して｛Ｑｂ→ａ、Ｑ１｝となり（ステップ１０９）、問合せ入力解析部２４の処理を終了する。問合せ文リスト｛Ｑｂ→ａ、Ｑ１｝は、Ｑｂの実行、この実行結果をＤａに追加、Ｑ１を実行、という実行計画による実行順序で行われる。
【００４１】
生成された問合せ文リストに基づき、実行計画生成部２７にて実行計画を策定し、問合せ実行部２８にて実行される。問合せ実行部２８では、「Ｑｂ→ａ」のようにテーブル追加が必要な場合に、図１０に示すように、該当するデータベースシステムＤａにテーブルを追加するとともに、データベース管理部２２の物理データベース管理テーブル２２１及び対応する論理データベース管理テーブル２２２の情報を更新する。追加したテーブルは、問合せ処理実行完了時に削除することができる。
【００４２】
（実施例２）
次に、図１の問合せ入力解析部２４における処理概要について、データベースシステム３が３個の場合について説明する。ユーザシステム１から入力される問合せ文Ｑについては、実施例１の場合と同じ図４に示されたものが使用される。
【００４３】
図１１に、仮想データベースシステム管理装置２におけるデータベース管理部２２の物理データベース管理テーブル２２１及び論理データベース管理テーブル２２２の構成を示す。データベースシステムリストを｛Ｄａ、Ｄｂ、Ｄｃ｝とする。
ステップ１０２におけるデータベースＤａ、Ｄｂ又はＤｃに対する単独データベース副問合せ文Ｑａ、Ｑｂ、Ｑｃは、図４の問合せ文Ｑに対してデータベース毎に分解することで、それぞれ図１２、図１３、図１４となる。
【００４４】
ステップ１０３において単独データベース副問合せ文Ｑａ、Ｑｂ又はＱｃの実行結果サイズを推定してＳａ、Ｓｂ、Ｓｃとした時に、Ｓａ≒Ｓｃ≫Ｓｂの関係が成り立つとする。
ステップ１０７における複数データベース副問合せ文Ｑａｂは、図１５のようになり、複数データベース副問合せ文Ｑａｂの実行結果サイズをＳａｂとした時に、Ｓａ≫Ｓａｂの関係が成り立つとする。
【００４５】
問合せ文リストは｛Ｑｂ→ａ｝となり、単独データベース副問合せ文Ｑｂの実行結果をデータベースＤａに追加するため、論理データベース管理テーブル２２２のデータベースＤａに「ＴＢＬ＿Ｑｂ」を追加し、図１６のようになる。
問合せ文リストよりデータベースシステムリストを更新し、Ｄｂが削除された｛Ｄａ、Ｄｃ｝となり、新たな問合せ文Ｑ（Ｑ１）は図１７となる。
【００４６】
図２の処理フローの最初（ステップ１０２）に戻り、以下同様に、データベースＤａ、Ｄｃに対する単独データベース副問合せ文Ｑａ、Ｑｃはそれぞれ図１８、図１９となり、単独データベース副問合せ文Ｑａ、Ｑｃの実行結果サイズをＳａ、Ｓｃとした時にＳｃ≫Ｓａの関係が成り立つとする。
問合せ文リストは｛Ｑｂ→ａ、Ｑａ→ｃ｝となり、単独データベース副問合せ文Ｑａの実行結果をデータベースＤｃに追加するため、論理データベース管理テーブルのデータベースＤｃに「ＴＢＬ＿Ｑａ」を追加し、図２０のようになる。
問合せ文リストよりデータベースシステムリストを更新し、Ｄａが削除された｛Ｄｃ｝となり、新たな問合せ文Ｑ（Ｑ２）は図２１となる。
【００４７】
再び図２の処理フローの最初（ステップ１０２）に戻り、データベースシステムリストの要素が１より大きくないため、最終的に問合せ文リストは、問合せ文Ｑ２を追加して｛Ｑｂ→ａ、Ｑａ→ｃ、Ｑ２｝となり、問合せ入力解析部２４の処理を終了する。
【００４８】
上述したように、問合せ文Ｑに対して、データベースＤｂでの問合せ結果をデータベースＤａに移し、次にデータベースＤａでの問合せ結果をデータベースＤｃに移し、最後にデータベースＤｃで残りの問合せ処理を実行することにより、仮想データベースシステム管理装置２と各データベースシステム３間のデータ転送量を大幅に減らすことができ、その結果処理時間の大幅な短縮を見込むことができる。
【００４９】
上述した仮想データベースシステム管理装置、管理方法及び管理プログラムによれば、複数のデータベースシステム３が存在しそれらを統合的に扱う場合に、従来の仮想データベースシステムではボトルネックとなっていた、仮想データベースシステム管理装置２及び各データベースシステム３間での大量データのやり取りを一部解消することが可能となる。
その結果、仮想データベースシステム管理装置２における問合せ処理が効率化され、処理に長時間を要していた事態、又は、リソース不足により異常終了するような事態を回避して問合せ結果を取得することが可能となる。
【符号の説明】
【００５０】
１…ユーザシステム、  ２…仮想データベースシステム管理装置、  ３…データベースシステム、  ２１…データベースインタフェース部、  ２２…データベース管理部、  ２３…ユーザインタフェース部、  ２４…問合せ入力解析部、  ２５…問合せ文生成部、  ２６…実行結果推定部、  ２７…実行計画生成部、  ２８…問合せ実行部、  ３１…データベースマネジメントシステム、  ３２…データベース、  ２２１…物理データベース管理テーブル、  ２２２…論理データベース管理テーブル。
【図１】
0006376947.tif 000002
【図２】
0006376947.tif 000003
【図３】
0006376947.tif 000004
【図４】
0006376947.tif 000005
【図５】
0006376947.tif 000006
【図６】
0006376947.tif 000007
【図７】
0006376947.tif 000008
【図８】
0006376947.tif 000009
【図９】
0006376947.tif 000010
【図１０】
0006376947.tif 000011
【図１１】
0006376947.tif 000012
【図１２】
0006376947.tif 000013
【図１３】
0006376947.tif 000014
【図１４】
0006376947.tif 000015
【図１５】
0006376947.tif 000016
【図１６】
0006376947.tif 000017
【図１７】
0006376947.tif 000018
【図１８】
0006376947.tif 000019
【図１９】
0006376947.tif 000020
【図２０】
0006376947.tif 000021
【図２１】
0006376947.tif 000022