特許第6523823号(P6523823)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ KDDI株式会社の特許一覧

特許6523823仮想データベースシステム管理装置、管理方法及び管理プログラム
<>
  • 特許6523823-仮想データベースシステム管理装置、管理方法及び管理プログラム 図000002
  • 特許6523823-仮想データベースシステム管理装置、管理方法及び管理プログラム 図000003
  • 特許6523823-仮想データベースシステム管理装置、管理方法及び管理プログラム 図000004
  • 特許6523823-仮想データベースシステム管理装置、管理方法及び管理プログラム 図000005
  • 特許6523823-仮想データベースシステム管理装置、管理方法及び管理プログラム 図000006
  • 特許6523823-仮想データベースシステム管理装置、管理方法及び管理プログラム 図000007
  • 特許6523823-仮想データベースシステム管理装置、管理方法及び管理プログラム 図000008
  • 特許6523823-仮想データベースシステム管理装置、管理方法及び管理プログラム 図000009
  • 特許6523823-仮想データベースシステム管理装置、管理方法及び管理プログラム 図000010
  • 特許6523823-仮想データベースシステム管理装置、管理方法及び管理プログラム 図000011
  • 特許6523823-仮想データベースシステム管理装置、管理方法及び管理プログラム 図000012
  • 特許6523823-仮想データベースシステム管理装置、管理方法及び管理プログラム 図000013
  • 特許6523823-仮想データベースシステム管理装置、管理方法及び管理プログラム 図000014
  • 特許6523823-仮想データベースシステム管理装置、管理方法及び管理プログラム 図000015
  • 特許6523823-仮想データベースシステム管理装置、管理方法及び管理プログラム 図000016
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6523823
(24)【登録日】2019年5月10日
(45)【発行日】2019年6月5日
(54)【発明の名称】仮想データベースシステム管理装置、管理方法及び管理プログラム
(51)【国際特許分類】
   G06F 16/00 20190101AFI20190527BHJP
   G06F 12/00 20060101ALI20190527BHJP
【FI】
   G06F17/30 419B
   G06F12/00 513J
   G06F17/30 110C
   G06F17/30 340C
【請求項の数】6
【全頁数】16
(21)【出願番号】特願2015-129265(P2015-129265)
(22)【出願日】2015年6月26日
(65)【公開番号】特開2017-16208(P2017-16208A)
(43)【公開日】2017年1月19日
【審査請求日】2018年2月13日
(73)【特許権者】
【識別番号】000208891
【氏名又は名称】KDDI株式会社
(74)【代理人】
【識別番号】100092772
【弁理士】
【氏名又は名称】阪本 清孝
(74)【代理人】
【識別番号】100119688
【弁理士】
【氏名又は名称】田邉 壽二
(72)【発明者】
【氏名】米田 信之
(72)【発明者】
【氏名】渡邊 泰之
【審査官】 鹿野 博嗣
(56)【参考文献】
【文献】 特開2015−045995(JP,A)
【文献】 特開2000−082080(JP,A)
【文献】 特開昭62−211727(JP,A)
【文献】 特開2003−316811(JP,A)
【文献】 齋藤 和広、川島 英之、米田 信之、村松 茂樹、渡辺 泰之、小林 亜令,データ仮想化システムにおけるクエリ分割実行方式の提案,第7回データ工学と情報マネジメントに関するフォーラム (第13回日本データベース学会年次大会) [online],日本,電子情報通信学会データ工学研究専門委員会 日本データベース学会 情報処理学会データベースシステム研究会,2015年 3月 4日,Internet<URL:http://db-event.jpn.org/deim2015/paper/250.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
複数のデータベースシステムが接続され、ユーザシステムからの問合せ文に応じてデータが出力される仮想データベースシステム管理装置において、
前記各データベースシステムのデータに関連付けたエントリ番号を管理する物理テーブル情報と、前記ユーザシステムからのアクセス対象となる論理テーブル情報とから、前記物理テーブル情報と前記論理テーブル情報に対して各エントリ番号を紐付けて管理するとともに、前記データベースシステムで管理される各テーブルに対する定義情報を保有する一方、
エントリ番号とデータベースの種別とデータベースにおけるテーブル種別を対応付けて管理する物理テーブル情報、前記エントリ番号に紐づけたリンク項目とテーブル種別を対応付けて管理する論理テーブル情報、各テーブルが他のテーブルに対する一意性制約の有無が定義されるテーブル定義情報を参照して、前記ユーザシステムから入力される問合せ文からクエリグラフを生成し、前記クエリグラフは、問合せ文のテーブルをグラフノードとし、問合せ文のテーブル同士を紐づけるリレーションをグラフノード間のエッジとし、グラフノード間の関係について物理データベースが異なるエッジを削除し、テーブルを紐づけるためのリレーションがどちらも一意性制約のない項目の場合に多対多の関係と判断して多対多となるエッジを削除することで前記クエリグラフに対して分解処理を行って対応する副問合せ文を決める問合せ文解析部と、
前記問合せ文解析部から呼び出され、前記副問合せ文の結果サイズを推定する結果サイズ推定部と、
前記問合せ文解析部から呼び出され、前記副問合せ文を生成する問合せ文生成部と、
前記問合せ文解析部の出力結果を基に実行計画を生成する実行計画生成部と、
前記実行計画生成部が出力する実行計画を基に前記データベースシステムへの問い合わせを実行する実行制御部と、
を備えたことを特徴とする仮想データベースシステム管理装置。
【請求項2】
前記問合せ文解析部は、
前記ユーザシステムからの問合せ文に対して、前記クエリグラフの分解処理を行って各グラフに対応する副問合せ文を作成し、前記各副問合せ文から推定される結果サイズについて、予め決められた基準により「十分大きい」及び「ほぼ等しい」で区別される順序で整列させる機能を備え、前記結果サイズの整列結果に「十分大きい」が1つ以上存在する場合に、もっとも大きい副問合せ文に対し、他の副問合せ文の結果との結合により、結果サイズを小さくできると推定された副問合せ文を1つ選択し、選択された分解グラフの副問合せ文の実行結果にリンクするテーブルを前記論理テーブル情報に追加する機能を備え、
前記実行制御部は、
前記問合せ文解析部が決定した実行順序に基づいて前記副問合せ文の実行結果となるテーブルを前記物理テーブル情報に追加するデータ再配置を行う機能を備えた
請求項1に記載の仮想データベースシステム管理装置。
【請求項3】
前記「十分大きい」は、前記結果サイズの相違が二桁以上である場合であり、
前記「ほぼ等しい」は、前記結果サイズの相違が一桁以下である場合である
請求項2に記載の仮想データベースシステム管理装置。
【請求項4】
複数のデータベースシステムが接続され、ユーザシステムからの問合せ文に応じてデータが出力される仮想データベースシステム管理方法において、
前記各データベースシステムのデータに関連付けたエントリ番号を管理する物理テーブル情報と、前記ユーザシステムからのアクセス対象となる論理テーブル情報とから、前記物理テーブル情報と前記論理テーブル情報に対して各エントリ番号を紐付けて管理するとともに、前記データベースシステムで管理される各テーブルに対する定義情報を保有する一方、
エントリ番号とデータベースの種別とデータベースにおけるテーブル種別を対応付けて管理する物理テーブル情報、前記エントリ番号に紐づけたリンク項目とテーブル種別を対応付けて管理する論理テーブル情報、各テーブルが他のテーブルに対する一意性制約の有無が定義されるテーブル定義情報を参照して、前記ユーザシステムから入力される問合せ文からクエリグラフを生成し、前記クエリグラフは、問合せ文のテーブルをグラフノードとし、問合せ文のテーブル同士を紐づけるリレーションをグラフノード間のエッジとし、グラフノード間の関係について物理データベースが異なるエッジを削除し、テーブルを紐づけるためのリレーションがどちらも一意性制約のない項目の場合に多対多の関係と判断して多対多となるエッジを削除することで前記クエリグラフに対して分解処理を行って対応する副問合せ文を生成する手順と、
前記副問合せ文の結果サイズを推定する手順と、
前記副問合せ文に対して、前記推定された結果サイズに基づいて副問合せ文の実行順序及び実行結果のデータ配置を決定する手順と、
前記決定した実行順序に基づいて副問合せ文を実行する手順と
を含むことを特徴とする仮想データベースシステム管理方法。
【請求項5】
請求項4に記載の各手順は、前記クエリグラフに対して分解処理を行ったグラフ(要素)が一つになるまで繰り返して行う仮想データベースシステム管理方法。
【請求項6】
請求項1に記載の各部をコンピュータ上に構築し、
グラフノード間の関係について、物理データベースが異なるエッジの削除、及び、前記テーブル定義情報を参照して多対多となるエッジの削除により前記クエリグラフが分解され、分解されたクエリグラフに対応する副問合せ文を生成する機能が行われることで前記クエリグラフに対する分解処理を行わせる
仮想データベースシステム管理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数のデータベースシステムが存在する環境において、ユーザからの問合せ文に対して、各データベースシステムで実行される副問合せ文が生成され、各副問合せ文の結果を踏まえて問合せ文の残りの処理を実行する場合に、処理の効率化を図る仮想データベースシステム管理装置、管理方法及び管理プログラムに関する。
【背景技術】
【0002】
データ仮想化システム(又はマルチデータベースシステム)は、例えば特許文献1〜4に示されるように、インタフェースやデータ管理方式が異なる複数のデータベースシステムを仮想的に一つのデータベースシステムに見せるために、各データベースシステムが持つデータを論理的に統合して管理し、与えられた問合せ文に対応するデータベースシステムに副問合せ文を出力し、各データベースシステムで実行された副問合せ文の処理結果を中央に収集し、仮想スキーマ(実際の物理テーブルをユーザに提供する論理テーブルに変換する処理を定義したもの)に従って一つに統合して結果を出力するシステムとなっている。
【0003】
これらのデータ仮想化システムにおいては、基本的に複数のデータベースシステムと接続し、複数のデータベースを物理データベースモデルとして管理し、一方、論理データベースモデルを作成して物理データベースモデルと紐付けることによって、複数の物理データベースモデルを1つの論理データベースモデルとして扱い、論理データベースモデルに対する問合せ文の実行を可能としている。
【0004】
上述した仮想データベースシステムにおいては、ユーザから与えられた問合せ文に対して、仮想データベースシステムに接続された各データベースシステムにおいて実行可能な副問合せ文が生成・発行され、副問合せ文の処理結果を仮想データベースシステムが受け取り、さらに問合せ文の残りの処理を実行してユーザへ結果を返す。
しかしながら、問合せ文の残りの処理を実行するに際し、各データベースシステムにて実行する副問合せ文の結果によっては、仮想データベースシステムで処理すべきデータ量が膨大となり処理時間が長くなる、又は、リソース不足により処理を完了できずに異常終了することが起こり得るという問題があった。
【0005】
そこで本発明者らは、特許文献5に示すように、複数のデータベースシステムが存在する仮想データベースシステム管理装置の環境下において、問合せ文から各データベースシステムに対する副問合せ文を生成する場合に、データ再配置とそれに伴う問合せ文変換により処理の効率化を実現する仮想データベースシステム管理装置を提案するに至った。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平09−091309号公報
【特許文献2】特開平10−307743号公報
【特許文献3】特表2013−508857号公報
【特許文献4】特願2014−057080
【特許文献5】特願2014−226050
【発明の概要】
【発明が解決しようとする課題】
【0007】
この仮想データベースシステム管理装置による場合、ユーザシステムが仮想データベースシステムに問合せ文を入力すると、仮想データベースシステムは、各データベースシステムに対応する副問合せ文を生成する。
そのため、仮想データベースシステムで生成される副問合せ文は、各データベースシステムと1対1に対応するため、直積を含む副問合せ文となる可能性があった。もし、直積を含む副問合せ文となった場合には、処理結果が膨大となり、処理時間が長くなることで、システムがリソース不足を引き起こし、異常終了を引き起こすという問題があった。
【0008】
本発明は上記実情に鑑みて提案されたものであり、仮想データベースシステムにおいて副問合せ文を生成する場合に、分解処理を施したクエリグラフを用いることで、副問合せ文の生成単位を細分化し、直積の発生を防ぐことで処理の効率化を実現する仮想データベースシステム管理装置、仮想データベースシステム管理方法及び仮想データベースシステム管理プログラムを提供することを目的としている。
【課題を解決するための手段】
【0009】
上記目的を達成するため本発明は、仮想データベースシステムにおいて、ユーザから入力された問合せ文からクエリグラフを生成し、非効率となる関係(複数存在する各データベースシステム間を跨ぐ関係や、多対多の関係)を基準にクエリグラフを分解し、分解されたクエリグラフに対応する副問合せ文を生成するように処理することにより、仮想データベースシステム管理装置の問合せ処理を効率化する。
【0010】
すなわち、請求項1は、複数のデータベースシステムが接続され、ユーザシステムからの問合せ文に応じてデータが出力される仮想データベースシステム管理装置において、前記各データベースシステムのデータに関連付けたエントリ番号を管理する物理テーブル情報と、前記ユーザシステムからのアクセス対象となる論理テーブル情報とから、前記物理テーブル情報と前記論理テーブル情報に対して各エントリ番号を紐付けて管理するとともに、前記データベースシステムで管理される各テーブルに対する定義情報を保有する一方、次の構成を備えたことを特徴としている。
問合せ文解析部。この問合せ文解析部は、エントリ番号とデータベースの種別とデータベースにおけるテーブル種別を対応付けて管理する物理テーブル情報、前記エントリ番号に紐づけたリンク項目とテーブル種別を対応付けて管理する論理テーブル情報、各テーブルが他のテーブルに対する一意性制約の有無が定義されるテーブル定義情報を参照して、前記ユーザシステムから入力される問合せ文からクエリグラフを生成し、前記クエリグラフは、問合せ文のテーブルをグラフノードとし、問合せ文のテーブル同士を紐づけるリレーションをグラフノード間のエッジとし、グラフノード間の関係について物理データベースが異なるエッジを削除し、テーブルを紐づけるためのリレーションがどちらも一意性制約のない項目の場合に多対多の関係と判断して多対多となるエッジを削除することで前記クエリグラフに対して分解処理を行って対応する副問合せ文を決める
結果サイズ推定部。この結果サイズ推定部は、前記問合せ文解析部から呼び出され、前記副問合せ文の結果サイズを推定する。
問合せ文生成部。この実行計画生成部は、前記問合せ文解析部から呼び出され、前記副問合せ文を生成する。
実行計画生成部。この実行計画生成部は、前記問合せ文解析部の出力結果を基に実行計画を生成する。
実行制御部。実行計画生成部は、前記実行計画生成部が出力する実行計画を基に前記データベースシステムへの問い合わせを実行する。
【0013】
請求項2は、請求項1の仮想データベースシステム管理装置において、
前記問合せ文解析部は、
前記ユーザシステムからの問合せ文に対して、前記クエリグラフの分解処理を行って各グラフに対応する副問合せ文を作成し、前記各副問合せ文から推定される結果サイズについて、予め決められた基準により「十分大きい」及び「ほぼ等しい」で区別される順序で整列させる機能を備え、
前記結果サイズの整列結果に「十分大きい」が1つ以上存在する場合に、もっとも大きい副問合せ文に対し、他の副問合せ文の結果との結合により、結果サイズを小さくできると推定された副問合せ文を1つ選択し、選択された分解グラフの副問合せ文の実行結果にリンクするテーブルを前記論理テーブル情報に追加する機能を備え、
前記実行制御部は、
前記問合せ文解析部が決定した実行順序に基づいて前記副問合せ文の実行結果となるテーブルを前記物理テーブル情報に追加するデータ再配置を行う機能を備えることを特徴としている。
【0014】
請求項3は、請求項2の仮想データベースシステム管理装置において、
前記「十分大きい」は、前記結果サイズの相違が二桁以上である場合であり、
前記「ほぼ等しい」は、前記結果サイズの相違が一桁以下である場合である
ことを特徴としている。
【0015】
請求項4は、複数のデータベースシステムが接続され、ユーザシステムからの問合せ文に応じてデータが出力される仮想データベースシステム管理方法において、
前記各データベースシステムのデータに関連付けたエントリ番号を管理する物理テーブル情報と、前記ユーザシステムからのアクセス対象となる論理テーブル情報とから、前記物理テーブル情報と前記論理テーブル情報に対して各エントリ番号を紐付けて管理するとともに、前記データベースシステムで管理される各テーブルに対する定義情報を保有する一方、
エントリ番号とデータベースの種別とデータベースにおけるテーブル種別を対応付けて管理する物理テーブル情報、前記エントリ番号に紐づけたリンク項目とテーブル種別を対応付けて管理する論理テーブル情報、各テーブルが他のテーブルに対する一意性制約の有無が定義されるテーブル定義情報を参照して、前記ユーザシステムから入力される問合せ文からクエリグラフを生成し、前記クエリグラフは、問合せ文のテーブルをグラフノードとし、問合せ文のテーブル同士を紐づけるリレーションをグラフノード間のエッジとし、グラフノード間の関係について物理データベースが異なるエッジを削除し、テーブルを紐づけるためのリレーションがどちらも一意性制約のない項目の場合に多対多の関係と判断して多対多となるエッジを削除することで前記クエリグラフに対して分解処理を行って対応する副問合せ文を生成する手順と、
前記副問合せ文の結果サイズを推定する手順と、
前記副問合せ文に対して、前記推定された結果サイズに基づいて副問合せ文の実行順序及び実行結果のデータ配置を決定する手順と、
前記決定した実行順序に基づいて副問合せ文を実行する手順と
を含むことを特徴としている。
【0016】
請求項5は、仮想データベースシステム管理方法において、
請求項4に記載の各手順は、前記クエリグラフに対して分解処理を行ったグラフ(要素)が一つになるまで繰り返して行うことを特徴としている。
【0017】
請求項6は、請求項1に記載の各部をコンピュータ上に構築する仮想データベースシステム管理プログラムであり、
グラフノード間の関係について、物理データベースが異なるエッジの削除、及び、前記テーブル定義情報を参照して多対多となるエッジの削除により前記クエリグラフが分解され、分解されたクエリグラフに対応する副問合せ文を生成する機能が行われることで前記クエリグラフに対する分解処理を行わせることを特徴としている。
【発明の効果】
【0018】
本発明によれば、複数のデータベースシステムが存在する環境下の仮想データベースシステム管理装置において、問合せ文から各データベースシステムに対する副問合せ文を生成するに際し、問合せ文からから生成されるクエリグラフに対して、グラフノード間の関係について、物理データベースが異なるエッジや、多対多となるエッジを削除して分解処理を行って各副問合せ文を作成して実行計画を生成する。
そのため、問合せ文から副問合せ文を生成するに際し、直積による中間結果の肥大化を避けた副問合せ文を生成するため、仮想データベースシステムにおける問合せ文の処理効率を向上させることができる。
【図面の簡単な説明】
【0019】
図1】本発明の仮想データベースシステム管理装置の構成を示すブロック図である。
図2】問合せ文解析部における処理手順を示すフローチャート図である。
図3】問合せ文Qの例である。
図4】論理テーブル情報、物理テーブル情報、テーブル定義情報が表示された仮想データベースシステム構成図である。
図5】問合せ文から生成したクエリグラフの例である。
図6】分解後のクエリグラフの例である。
図7】副問合せ文の例である。
図8】接続後のクエリグラフの例である。
図9】データ保持状況(TBL_Q3追加時)が表示された仮想データベースシステム構成図である。
図10】副問合せ文(ループ2回目)の例である。
図11】接続後(ループ2回目)のクエリグラフの例である。
図12】データ保持状況(TBL_Q2追加時)が表示された仮想データベースシステム構成図である。
図13】最後に得られる副問合せ文の例である。
図14】書き換え後の副問合せ文の例である。
図15】データ保持状況(TBL_Q1追加時)が表示された仮想データベースシステム構成図である。
【発明を実施するための形態】
【0020】
本発明の仮想データベースシステム管理装置の実施形態の一例について、図面を参照して説明する。
仮想データベースシステムは、同一データを保有する複数のデータベースシステムが存在する環境において、ユーザの問合せ内容に応じてデータベースシステムを選択して問合せ内容を実行可能とするシステムであり、図1に示すように、ユーザが問合せ文の投稿を行うユーザシステム1と、仮想データシステム管理装置2と、仮想データシステム管理装置2が利用する1つ以上のデータベースシステム3から構成されている。ユーザシステム1、仮想データシステム管理装置2及びデータベースシステム3は、ネットワークを介して接続されている。仮想データシステム管理装置2は、仮想データベースシステム管理プログラムが格納された記録媒体やインターネットを介してソフトウエアのダウンロードによりインストールすることで、コンピュータ上に構築されている。
【0021】
仮想データベースシステム管理装置が構築されるコンピュータは、オペレーティングシステム(OS)を含む基本プログラムや各種の基本デバイスが記憶されたROMと、各種のプログラムやデータが記憶されるハードディスクドライブ装置(HDD)と、CD−ROMやDVD等の記憶媒体からプログラムやデータを読み出すメディアドライブ装置と、プログラムを実行するCPUと、このCPUにワークエリアを提供するRAMと、入出力インターフェース(I/F)を介して接続されたディスプレイ、キーボードおよびマウス等のポインティングデバイスと、外部装置と通信するパラレル/シリアルI/Fとを主要部分とする一般的な構成を備えている。
本実施形態の仮想データベースシステム管理装置2では、仮想データベースシステム管理プログラムがシリアル/パラレルI/Fから入力、またはメディアドライブ装置で読み取られてHDDに予め記憶される。仮想データベースシステム管理プログラムは記憶媒体に記憶され、メディアドライブ装置で読み取られてHDDにインストールされる。
【0022】
コンピュータ上に構築された仮想データベースシステム管理装置2は、複数のデータベースシステム3が存在する環境において、ユーザからのアクセス対象となる論理データベース情報(データベース、テーブル)を定義し、それらに対し、各データベースシステムにおける1つあるいは複数のデータベースマネジメントシステム、データベース、テーブルの組を割り当てる。
【0023】
ユーザシステム1は、仮想データベースシステム管理装置2が提供する統合データモデルを利用した問合せ文を投稿することで、透過的に複数のデータベースシステム3に対する問合せ文の処理結果を取得する。
【0024】
データベースシステム3は、実際にデータを保管するデータベース31と、データに対する処理を提供するデータベースマネジメントシステム32からなり、データベースマネジメントシステム32が持つインタフェース経由でデータベース31上のデータに対する処理を提供する。
【0025】
仮想データベースシステム管理装置2は、複数のデータベースシステム3と接続されるデータベースインタフェース部21と、データベースインタフェース部21を介して各データベースシステム3の情報を取得し管理するデータベース管理部22と、ユーザシステム1との入出力を行うユーザインタフェース部23と、ユーザシステム1からの問合せ文の解析を行う問合せ入力解析部24と、問合せ文から各データベースシステム3への副問合せ文の生成を行う問合せ文生成部25と、副問合せ文の結果サイズを推定する結果サイズ推定部26と、一連の副問合せ文の実行計画を生成する実行計画生成部27と、副問合せ文を実行する実行制御部28と、を備えて構成されている。
【0026】
ユーザインタフェース部23は、ユーザシステム1からの問合せ文を受け付け、問合せ文解析部24へ出力する。
【0027】
データベース管理部22は、データベース31に関連付けたエントリ番号を管理する物理テーブル情報と、ユーザシステム1からのアクセス対象となる論理データベースを定義し、物理テーブルのデータに対して、対応する各エントリ番号を紐付けて管理する論理テーブル情報とを格納するテーブル情報データベース221と、データベース31で管理されるテーブルに対する定義情報を格納するテーブル定義情報データベース222とを備えることで、各データベースシステム3の情報を管理している。
【0028】
問合せ文解析部24は、ユーザインタフェース部23を経由して入力される問合せ文の構文を解析し、解析結果を実行計画生成部27へ出力する。また、問合せ文分解析部24は、問合せ文の構文解析に際して、データベース管理部22に格納されたデータベースシステム3の論理テーブル情報、物理テーブル情報、テーブル定義情報を参照し、適切な副問合せ文とデータ再配置を決定する。適切な副問合せ文とは、問合せ文に対して分解処理を施したクエリグラフの要素(グラフ)単位の副問合せ文を意味する。クエリグラフの要素(グラフ)単位の副問合せ文とすることで、直積を含む副問合せ文となることを防止できる。
適切な副問合せ文の算出及びデータ再配置の決定に関する問合せ文解析部24における処理については後述する。
【0029】
問合せ文生成部25は、問合せ文解析部24から呼び出され、問合せ文に対して分解処理を施したクエリグラフの要素(グラフ)単位の副問合せ文の生成、及び、副問合せ文によるデータ再配置に伴う問合せ文の変換を行う。
結果サイズ推定部26は、問合せ文解析部24から呼び出され、与えられた副問合せ文を実行する場合の結果サイズを推定する。
実行計画生成部27は、問合せ文解析部24の出力結果を基に、決定された一連の問合せ文(副問合せ文と変換した問合せ文)の実行計画を生成する。
【0030】
実行制御部28は、実行計画生成部27にて生成された実行計画を実行し、データベースインタフェース部21を介して副問合せ文を実行し、実行結果についてユーザインタフェース部23を介してユーザシステム1へ出力する。
【0031】
次に、仮想データベースシステム管理装置2において、ユーザインタフェース部23を介してユーザシステム1から入力された問合せ文に対する問合せ文解析部24での詳細処理(仮想データベースシステム管理方法)について、図2のフローチャートを参照して説明する。
ユーザシステム1は、仮想データベースシステム管理装置2のユーザインタフェース部23へ問合せ文Qを入力する。仮想データベースシステム管理装置2の問合せ文解析部24は、ユーザインタフェース部21から問合せ文が入力されると、図2に示す処理フローを実行する。
以下、図3に示したTPC−Hベンチマークの問合せ文Q5(TPC−Hベンチマーク22種のうちの一つ)を例として、問合せ文解析部24における処理手順について説明する。
【0032】
図1に対して、論理テーブル情報と物理テーブル情報とを紐づける対応関係、及び、テーブル定義情報が明示された仮想データベースシステムの構成図を図4に示す。
仮想データベースシステム管理装置2に対して2つのデータベース31(DB1及びDB2)が接続され、データベースDB1にはテーブルlineitemが配置され、データベースDB2にはテーブルcustomer,orders,supplier,nation,regionが配置されているものとする。
そして、テーブル情報データベース221には、紐付けを行うためのエントリ番号(P1〜P6)、データベース31の種別(DB1又はDB2)、データベース31におけるテーブルの種別(lineitem、customer,orders,supplier,nation,region)を対応づけた物理テーブル情報と、ユーザシステム1からアクセス対象となる論理テーブル情報とが管理されている。論理テーブル情報では、テーブル種別(lineitem、customer,orders,supplier,nation,region)に対して、対応する各エントリ番号を紐付けたリンク項目(P1〜P6)が設定されることで、保存先のデータベース31(データベースDB1又はデータベースDB2)を対応づけている。
【0033】
テーブル定義情報データベース222としては、各テーブル種別(lineitem、customer,orders,supplier,nation,region)に対する定義情報が保存されている。例えば、テーブルcustomerに対して、「C_CUSTKEY INTEGER NOT NULL unique」、「C_NATIONKEY INTEGER NOT NULL」等の複数個の定義情報が保存されている。ここで、定義情報に「unique」又は「primary key」等が存在する場合、他のテーブルに対して一意性制約があることを意味し、「unique」及び「primary key」等のない場合は、一意性制約がなく複数のテーブルと接続可能なテーブルであることを意味している。
【0034】
先ず、問合せ文解析部24へ問合せ文が入力されると、問合わせ文のデータ入手元となるcustomer, orders, lineitem, supplier, nation, regionに対して、図5のようなクエリグラフが生成される(ステップ101)。グラフノードは、問合せ文のテーブルに対応し、グラフノード間のエッジは、問合せ文のテーブル同士を紐づけるリレーションで構成される。
すなわち、図3のfrom以下のデータ列から、customer, orders, lineitem, supplier, nation, regionがグラフノード(問合せ文のテーブルに対応)となり、where以下のデータから、customerとorders、lineitemとorders、、lineitemと supplier、customerとsupplier、supplierと nation、nationとregionが紐づけられる。また、図3のwhere以下のデータ列から、regionとordersのテーブルにおいては、データの範囲が指定される。
【0035】
次に、生成したクエリグラフ(図5)に対して、分解処理をする(ステップ102)。分解処理に際しては、先ず、テーブル情報データベース221の論理テーブル情報及び物理テーブル情報を参照し、物理的なテーブル配置先を確認する。グラフノード間の関係について、物理データベースが異なるエッジを削除し、クエリグラフを分解する。図5のクエリグラフでは、lineitem がデータベースDB1に格納され、他のグラフノード(テーブル)がデータベースDB2に格納されているので、lineitemとorders間、lineitemとsupplier間が分解点となる。すなわち、lineitemとorders、lineitemとsupplierでは、物理データベースが異なるので、エッジを削除してエリグラフを分解する。
【0036】
また、テーブル定義情報データベース222のテーブル定義情報を参照し、多対多となるエッジを削除し、同様にクエリグラフを分解する。多対多の関係とは、テーブルを紐づけるためのリレーションが、どちらも一意性制約のない項目の場合を指す。
例えば、customer−orders のリレーションである c_custkey = o_custkey は、テーブル定義情報(図4)によると、c_custkey に unique が含まれいるので、一意性制約があるのでcustomer−orders間では分解しない。
一方、customer−supplier のリレーションである c_nationkey = s_nationkey は、どちらの項目も、unique などの一意性制約を確認できないため、多対多と判断する。この操作により、customerとsupplier 間を分解点としてエッジを削除してクエリグラフを分解する。
【0037】
上記処理による分解後のクエリグラフG1〜G3を、図6に示す。この分解されたクエリグラフに対応する副問合せ文は、直積などの中間結果サイズが膨大になる副問合せ文が排除されるので、仮想データベースシステム管理装置において効率的な問合せ処理が可能となる。
【0038】
続いて、分解されたクエリグラフを用いて、問合せ文Qに対する副問合せ文の結果再配置を考慮した実行順序が組み立てられる。
問合せ文Qに対して分解されたクエリグラフの分解グラフリストを{Gi}とし、問合せ文リストを{φ}とする(ステップ103)。分解グラフリスト{Gi}は、前処理のステップ102で得られた{G1、G2、G3}である。問合せ文リスト{φ}は、当初、空集合となっている。問合せ文Qは、ユーザシステム1から入力された問合せ文である。
【0039】
先ず、分解グラフリスト{Gi}の要素数iが1より大きいか否かを判断する(ステップ104)。
図3の問合せ文(TPCH−Q5)の場合、対応する分解グラフリスト{Gi}の要素数は「3」であり「2」つ以上となる(要素数iが1より大きい)ので、分解グラフリスト{Gi}の各要素Giに対応する副問合せ文Qiを生成する(ステップ105)。
要素(グラフ)に対応する副問合せ文とは、問合せ文Qを各グラフのノードに含まれるテーブルのみで問合せ文を書き表すことである。各要素Giに対応して生成される副問合せ文Qは、図7のようになる。図6における分解グラフリストG1、G2、G3は、それぞれ副問合せ文Q1、Q2、Q3に対応している。
【0040】
次に、生成された各副問合せ文{Qi}について、結果サイズ推定部26より出力結果サイズ{Size(Qi)}を推定し、順序整列する(ステップ106)。出力結果サイズはオーダーが分かればよく、厳密である必要はない。サイズによる順序整列は、出力結果サイズ{Qi}の要素について、「≫(十分大きい)」、「≒(ほぼ等しい)」により行われる。したがって、A≫Bは、「AはBより十分大きい」を意味し、A≒Bは、「AはBとほぼ等しい(A≫BでもB≫Aでもない)」を意味する。
なお、「≫(十分大きい)」及び「≒(ほぼ等しい)」は、予め決められた基準により分類される。例えば、「≫(十分大きい)」は、結果サイズがいずれかが1MB以上で、2桁程度以上の違いを意味する。例えば、一方の結果サイズが1MBの時、他方の結果サイズが100MBである場合は、「十分大きい」と判断する。また、結果サイズがそれぞれ1MBより小さい、あるいは結果サイズの相違が1桁以下である場合は、「ほぼ等しい」に分類する。
また、結果サイズによっては、「≫(十分大きい)」が3桁程度の違いを意味し、「ほぼ等しい」が2桁以下の違いを意味する場合もある。
【0041】
生成された各副問合せ文{Qi}のサイズに関して、≫が1つ以上存在しているかを判断し(ステップ107)、1つ以上存在している場合は、もっとも大きい副問合せ文に対し、他の副問合せ文の結果との結合により、結果サイズを小さくできると推定された副問合せ文を一つ選択、選択された副問合せ文に対応するグラフを結合、分解グラフリストGiから対象グラフを削除、問合せ文リストに選択した副問合せ文を追加、論理テーブル情報/物理テーブル情報の更新、の各処理が順次行われる(ステップ108)。
【0042】
すなわち、この例では、生成された各副問合せ文{Qi}について、Size(Q1)≫Size(Q2)≫Size(Q3)であったと仮定すると、順序整列の結果、≫が1つ以上存在しており、Q1の結果サイズがもっとも大きいことが分かる。これは、Q1の実行結果が膨大であり、問合せ処理をする上で、Q1の処理や中間結果転送がボトルネックになり得ることを示している。
【0043】
そして、同じく順序整列結果より、Size(Q1)より結果サイズが小さいと推定される副問合せ文を{Qj}として、Size(Join(Q1、{Qj})の結果サイズを推定し、もっとも小さくなるQjを選択する。この例では、Size(Q1) ≫ Size(Join(Q1,Q2)) ≫ Size(Join(Q1,Q3))の順序整列であるので、Q3が選択されることになる。これは、データベースDB2で実行されたQ3結果を、Q1が実行されるデータベースDB1へ配置し、Join操作をすることで、処理ボトルネックであったQ1の結果サイズを小さくし、処理効率の改善が期待できることを意味する。
【0044】
分解グラフリストGiに対して、「TBL Q3」を接続し、G3を除外処理する。「TBL Q3」は、Q3の結果を一時的に格納するテーブルである。その結果、処理後のグラフは、図8に示すようになる。
【0045】
続いて、問合せ文リストへ{Q3→1}を追加する。これは、Q3結果をデータベースDB1に再配置することを意味する。
【0046】
データベースDB1に対して、Q3結果を一時的に再配置するため、データベース管理部22における論理テーブル情報及び物理テーブル情報を更新し、図9に示すように、論理テ−ブル情報に「TBL Q3」をP7に紐づけ、物理テーブル情報にP7とデータベースDB1を関連づけし、「TBL Q3」がデータベースDB1に再配置された状態になる。
【0047】
続いて、処理フローのループ開始(ステップ104)へ戻り、分解グラフリストGi要素数が2つ以上であるかを判断する。
分解グラフリストGi要素数は2つであるので、各グラフに対応する副問合せ文を生成する。生成された副問合せ文を、図10に示す。副問合せ文のサイズ推定と順序整列により、Size(Q1)≫ Size(Q2)であったと仮定する。順序整列の結果、≫が1つ以上存在する。結果サイズを小さくできる組み合わせを探し、結果がSize(Join(Q1、Q2))であり、Q2を選択する。分解グラフリストG1に対して、「TBL Q2」を接続し、G2を除外する。
処理後のグラフを図11に示す。問合せ文リストに{Q2→1}を追加する。データベースDB1に対して、Q2結果を一時的に再配置するため、論理テーブル情報および物理テーブル情報を更新し、論理テーブル情報、物理テーブル情報、テーブル定義情報が明示された仮想データベースシステムの構成図は、図12のような状態になる。
【0048】
再び、処理フローのループ開始(ステップ104)へ戻り、分解グラフリストGi要素数が2つ以上であるかを判断する。
分解グラフリストが{G1}の1つのみとなるため、ループを終了する。残ったグラフから、対応する副問合せ文を生成して、問合せ文リストに、Q1→DVSを追加する(ステップ109)。これは、Q1の結果を、仮想データベースシステム上に取得することを意味する。生成される副問合せ文を図13に示す。
【0049】
問合せ文を、仮想データベースシステムに配置する「TBL Q1」に対応して書き換える(ステップ109)。書き換え後の問合せ文を図14に示す。論理テーブル情報、物理テーブル情報を更新し(ステップ109)、最終的な状態として、Q1の情報がテーブル定義情報に反映された仮想データベースシステムの構成図は、図15のようになる。
【0050】
図2に示す一連の処理フローを実行することにより、副問合せ文および、副問合せ文の結果再配置と順序、書き換えられた問合せ文が得られる。
【0051】
上述した仮想データベースシステム管理装置、管理方法及び管理プログラムによれば、複数のデータベースシステム3が存在しそれらを統合的に扱う場合に、従来の仮想データベースシステムではボトルネックとなっていた、仮想データベースシステム管理装置2及び各データベースシステム3間での大量データのやり取りを一部解消することが可能となる。
そして、仮想データベースシステムにおいて、問合せ文から副問合せ文を生成するに際し、物理データベースが異なるエッジの削除、及び、前記テーブル定義情報を参照して多対多となるエッジの削除によりクエリグラフを分解するので、直積による中間結果の肥大化を避けた副問合せ文が生成でき、仮想データベースシステムにおける問合せ処理効率を向上することができる。
その結果、仮想データベースシステム管理装置2における問合せ処理が効率化され、処理に長時間を要していた事態、又は、リソース不足により異常終了するような事態を回避して問合せ結果を取得することが可能となる。
【符号の説明】
【0052】
1…ユーザシステム、 2…仮想データベースシステム管理装置、 3…データベースシステム、 21…データベースインタフェース部、 22…データベース管理部、 23…ユーザインタフェース部、 24…問合せ文解析部、 25…問合せ文生成部、 26…結果サイズ推定部、 27…実行計画生成部、 28…実行制御部、 31…データベースマネジメントシステム、 32…データベース、 221…テーブル情報データベース、 222…テーブル定義情報データベース。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15