(57)【特許請求の範囲】
【請求項１】
複数のカラム名と、前記各カラム名に対応するデータとを有してテーブル名により識別される複数のテーブルを備えたＲＤＢに対して前記テーブル名、前記カラム名及びデータを含む要求ＳＱＬを送出して前記要求ＳＱＬに応じた戻り値を受ける既存システムに対し、前記要求ＳＱＬをキー／バリュー型ＤＢに対する要求に変換して実行処理するデータベース要求処理装置であって、
前記テーブル名及びテーブルＩＤを関連付けてなるテーブル一覧を記憶するテーブル一覧記憶手段と、
前記テーブルＩＤ、カラムＩＤ、前記カラム名及びデータ型を関連付けてなるカラム情報を記憶するカラム情報記憶手段と、
前記テーブルＩＤ、前記カラムＩＤ及び同一行識別子を含む座標キーと、データキーを示す値とを関連付けてなる第１のキー／バリュー型データを前記キー／バリュー型ＤＢに書き込む手段と、
前記データキーと、前記座標キーにより特定される前記データを示す値とを関連付けてなる第２のキー／バリュー型データを前記キー／バリュー型ＤＢに書き込む手段と、
要求ＳＱＬの種別毎に、変換モジュールセットを記憶しており、前記変換モジュールセットとしては、要求ＳＱＬを解析して前記種別に合う場合には解析が成功し、前記種別に合わない場合には解析が失敗する手段として前記データベース要求処理装置本体を機能させるための要求ＳＱＬ解析モジュールと、前記解析が成功した要求ＳＱＬ解析モジュールに起動され、前記要求ＳＱＬをキー／バリュー型ＤＢに対する要求に変換して当該キー／バリュー型ＤＢに対する要求を実行処理する手段として前記データベース要求処理装置本体を機能させるための要求実行モジュールと、前記キー／バリュー型ＤＢに対する要求の処理結果を示す戻り値を要求ＳＱＬの処理結果を示す戻り値に変換する手段として前記データベース要求処理装置本体を機能させるための戻り値変換モジュールとを備えている変換モジュールセット記憶手段と、
前記既存システムから送出された要求ＳＱＬに基づいて、前記変換モジュールセット内の要求ＳＱＬ解析モジュールを順次実行し、解析に成功した要求ＳＱＬ解析モジュールを備えた変換モジュールセットを使用する旨を判定する手段と、
前記判定された変換モジュールセットを用い、前記要求ＳＱＬをキー／バリュー型ＤＢに対する要求に変換して当該キー／バリュー型ＤＢに対する要求を実行処理した処理結果を示す戻り値を得る手段と、
前記判定された変換モジュールセットを用い、前記得られた戻り値を要求ＳＱＬの処理結果を示す戻り値に変換する手段と、
前記変換された戻り値を前記既存システムに送出する手段と、
を備えたことを特徴とするデータベース要求処理装置。
【請求項２】
請求項１に記載のデータベース要求処理装置において、
前記各テーブルを結合した結合テーブルに関し、前記テーブル一覧内のテーブルＩＤの値として当該結合テーブルのテーブルＩＤの値を書き込むと共に、当該書き込まれたテーブルＩＤの値に関連付けて結合元の各テーブルの各テーブルＩＤを示す結合情報を書き込む手段と、
前記結合テーブルのテーブルＩＤ、前記結合テーブルのカラムＩＤ、前記結合テーブルのカラム名、結合元のテーブルのテーブルＩＤを示す対応テーブルＩＤ、結合元のテーブルのカラムＩＤを示す対応カラムＩＤ、及び重複するデータに関する結合元の他のテーブルのテーブルＩＤとカラムＩＤとを示す結合条件、を関連付けてなるカラム対応関係情報を記憶するカラム関係情報記憶手段と、
前記結合テーブルのテーブルＩＤ、前記結合テーブルのカラムＩＤ及び同一行識別子を含む座標キーと、データキーを示す値とを関連付けてなる第３のキー／バリュー型データを前記キー／バリュー型ＤＢに書き込む手段と、
を更に備えたことを特徴とするデータベース要求処理装置。
【請求項３】
複数のカラム名と、前記各カラム名に対応するデータとを有してテーブル名により識別される複数のテーブルを備えたＲＤＢに対して前記テーブル名、前記カラム名及びデータを含む要求ＳＱＬを送出して前記要求ＳＱＬに応じた戻り値を受ける既存システムに対し、テーブル一覧記憶手段、カラム情報記憶手段及び変換モジュールセット記憶手段を備え、前記要求ＳＱＬをキー／バリュー型ＤＢに対する要求に変換して実行処理するデータベース要求処理装置に用いられるプログラムであって、
前記データベース要求処理装置を、
前記テーブル名及びテーブルＩＤを関連付けてなるテーブル一覧を前記テーブル一覧記憶手段に書き込む手段、
前記テーブルＩＤ、カラムＩＤ、前記カラム名及びデータ型を関連付けてなるカラム情報を前記カラム情報記憶手段に書き込む手段、
前記テーブルＩＤ、前記カラムＩＤ及び同一行識別子を含む座標キーと、データキーを示す値とを関連付けてなる第１のキー／バリュー型データを前記キー／バリュー型ＤＢに書き込む手段、
前記データキーと、前記座標キーにより特定される前記データを示す値とを関連付けてなる第２のキー／バリュー型データを前記キー／バリュー型ＤＢに書き込む手段、
要求ＳＱＬの種別毎に、要求ＳＱＬを解析して前記種別に合う場合には解析が成功し、前記種別に合わない場合には解析が失敗する手段として前記データベース要求処理装置を機能させるための要求ＳＱＬ解析モジュールと、前記解析が成功した要求ＳＱＬ解析モジュールに起動され、前記要求ＳＱＬをキー／バリュー型ＤＢに対する要求に変換して当該キー／バリュー型ＤＢに対する要求を実行処理する手段として前記データベース要求処理装置を機能させるための要求実行モジュールと、前記キー／バリュー型ＤＢに対する要求の処理結果を示す戻り値を要求ＳＱＬの処理結果を示す戻り値に変換する手段として前記データベース要求処理装置を機能させるための戻り値変換モジュールとを備えた複数の変換モジュールセットを前記変換モジュールセット記憶手段に書き込む手段、
前記既存システムから送出された要求ＳＱＬに基づいて、前記変換モジュールセット内の要求ＳＱＬ解析モジュールを順次実行し、解析に成功した要求ＳＱＬ解析モジュールを備えた変換モジュールセットを使用する旨を判定する手段、
前記判定された変換モジュールセットを用い、前記要求ＳＱＬをキー／バリュー型ＤＢに対する要求に変換して当該キー／バリュー型ＤＢに対する要求を実行処理した処理結果を示す戻り値を得る手段、
前記判定された変換モジュールセットを用い、前記得られた戻り値を要求ＳＱＬの処理結果を示す戻り値に変換する手段、
前記変換された戻り値を前記既存システムに送出する手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、データベース要求処理装置及びプログラムに関する。
【背景技術】
【０００２】
クラウドコンピューティング環境では、従来から広く用いられているＲＤＢ（Relational Database）ではなく、キー／バリュー（Key/Value）型のＤＢが用いられるようになってきている。このため、ＲＤＢを使用した既存システムをキー／バリュー型ＤＢを用いる環境に移行させる必要が出てきている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−３４４１４７号公報
【特許文献２】特開２００６−２０９７５６号公報
【特許文献３】特開２００７−５３１９４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＲＤＢを使用した既存システムをキー／バリュー型ＤＢを用いる環境に移行させる場合、既存システムにおけるＲＤＢにアクセスする部分のアプリケーションを改変する必要がある。この改変は、ＲＤＢにアクセスする全てのアプリケーションについて行う必要があるので、多くの労力と時間を要する不都合がある。
【０００５】
本明細書に開示した実施形態は、ＲＤＢの使用を前提とした既存システムを改変せずにキー／バリュー型ＤＢの環境へ移行させることが可能なデータベース要求処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
実施形態のデータベース要求処理装置は、複数のカラム名と、各カラム名に対応するデータとを有してテーブル名により識別される複数のテーブルを備えたＲＤＢに対してテーブル名、カラム名及びデータを含む要求ＳＱＬを送出して要求ＳＱＬに応じた戻り値を受ける既存システムに対し、要求ＳＱＬをキー／バリュー型ＤＢに対する要求に変換して実行処理する。
【０００７】
ここで、実施形態のデータベース要求処理装置は、ＲＤＢスキーマ情報管理部、ＲＤＢデータ変換登録部、変換モジュールセット管理部、変換モジュール判定部、ＤＢ呼び出し実行部、ＤＢ呼び出し結果変換部及びＤＢ要求処理部を備えている。
【０００８】
実施形態のＲＤＢスキーマ情報管理部は、テーブル名及びテーブルＩＤを関連付けてなるテーブル一覧を記憶する。また、実施形態のＲＤＢスキーマ情報管理部は、テーブルＩＤ、カラムＩＤ、カラム名及びデータ型を関連付けてなるカラム情報を記憶する。
【０００９】
実施形態のＲＤＢデータ変換登録部は、テーブルＩＤ、カラムＩＤ及び同一行識別子を含む座標キーと、データキーを示す値とを関連付けてなる第１のキー／バリュー型データをキー／バリュー型ＤＢに書き込む。また、実施形態のＲＤＢデータ変換登録部は、データキーと、座標キーにより特定される前記データを示す値とを関連付けてなる第２のキー／バリュー型データをキー／バリュー型ＤＢに書き込む。
【００１０】
実施形態の変換モジュールセット管理部は、要求ＳＱＬの種別毎に、変換モジュールセットを記憶している。変換モジュールセットとしては、要求ＳＱＬを解析して種別に合う場合には解析が成功し、種別に合わない場合には解析が失敗する手段としてデータベース要求処理装置本体を機能させるための要求ＳＱＬ解析モジュールと、解析が成功した要求ＳＱＬ解析モジュールに起動され、要求ＳＱＬをキー／バリュー型ＤＢに対する要求に変換して当該キー／バリュー型ＤＢに対する要求を実行処理する手段としてデータベース要求処理装置本体を機能させるための要求実行モジュールと、キー／バリュー型ＤＢに対する要求の処理結果を示す戻り値を要求ＳＱＬの処理結果を示す戻り値に変換する手段としてデータベース要求処理装置本体を機能させるための戻り値変換モジュールとを備えている。
【００１１】
実施形態の変換モジュール判定部は、既存システムから送出された要求ＳＱＬに基づいて、変換モジュールセット内の要求ＳＱＬ解析モジュールを順次実行し、解析に成功した要求ＳＱＬ解析モジュールを備えた変換モジュールセットを使用する旨を判定する。
【００１２】
実施形態のＤＢ呼び出し実行部は、判定された変換モジュールセットを用い、要求ＳＱＬをキー／バリュー型ＤＢに対する要求に変換して当該キー／バリュー型ＤＢに対する要求を実行処理した処理結果を示す戻り値を得る。
【００１３】
実施形態のＤＢ呼び出し結果変換部は、判定された変換モジュールセットを用い、得られた戻り値を要求ＳＱＬの処理結果を示す戻り値に変換する。
【００１４】
実施形態のＤＢ要求処理部は、変換された戻り値を既存システムに送出する。
【図面の簡単な説明】
【００１５】
【図１】実施形態に係るデータベース要求処理装置及びその周辺構成を示すブロック図である。
【図２】同実施形態における従業員テーブルの一例を示す模式図である。
【図３】同実施形態におけるテーマ管理テーブルの一例を示す模式図である。
【図４】同実施形態におけるテーブル一覧の一例を示す模式図である。
【図５】同実施形態におけるカラム情報の一例を示す模式図である。
【図６】同実施形態におけるカラム対応関係情報の一例を示す模式図である。
【図７】同実施形態におけるキー／バリュー型データの一例を示す模式図である。
【図８】同実施形態における結合テーブルの一例を示す模式図である。
【図９】同実施形態における結合関係の一例を示す模式図である。
【図１０】同実施形態におけるテーブル一覧内の結合情報の一例を示す模式図である。
【図１１】同実施形態における事前準備の動作を説明するためのフローチャートである。
【図１２】同実施形態におけるステップＳＴ７０の動作を詳細に説明するためのフローチャートである。
【図１３】同実施形態における同一行識別子を説明するための模式図である。
【図１４】同実施形態における同一行識別子を説明するための模式図である。
【図１５】同実施形態におけるデータベース要求処理の動作を説明するためのフローチャートである。
【図１６】同実施形態におけるステップＳＴ８０の動作を詳細に説明するためのフローチャートである。
【図１７】同実施形態における要求ＩＤを付加する動作を説明するための要求管理テーブルの模式図である。
【図１８】同実施形態における変換モジュールセットを登録する動作を説明するための要求管理テーブルの模式図である。
【図１９】同実施形態における呼び出し解析ルールの一例を示す模式図である。
【図２０】同実施形態におけるテーブル及びカラムと値の取得例を示す模式図である。
【図２１】同実施形態におけるデータ挿入の要求を生成する処理の動作を説明するためのフローチャートである。
【図２２】同実施形態におけるキー／バリュー型ＤＢへの要求の一例を示す模式図である。
【図２３】同実施形態におけるキー／バリュー型ＤＢからの戻り値の格納を説明するための要求管理テーブルの模式図である。
【図２４】同実施形態におけるＲＤＢからの戻り値の一例を示す模式図である。
【図２５】同実施形態におけるＲＤＢからの戻り値の格納を説明するための要求管理テーブルの模式図である。
【図２６】同実施形態における検索要求があった場合の要求ＳＱＬの一例を示す模式図である。
【発明を実施するための形態】
【００１６】
以下、実施形態について図面を用いて説明する。なお、以下のデータベース要求処理装置は、ハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体からデータベース要求処理装置となるコンピュータにインストールされ、データベース要求処理装置の機能を実現させるためのプログラムが用いられる。
【００１７】
図１は実施形態に係るデータベース要求処理装置及びその周辺構成を示すブロック図であり、図２乃至図１０は同実施形態における各情報を示す模式図である。このデータベース要求処理装置は、既存システム１と、既存のＲＤＢ２及びキー／バリュー型ＤＢ３との間に介在して設けられている。具体的には、データベース要求処理装置は、ＲＤＢスキーマ情報管理部１１、ＲＤＢスキーマ情報取得部１２、ＲＤＢデータ変換登録部１３、キー生成部１４、変換モジュールセット管理部１５、ＤＢ要求処理部１６、要求管理部１７、変換モジュール判定部１８、ＤＢ呼び出し実行部１９及びＤＢ呼び出し結果変換部２０を備えている。
【００１８】
既存システム１は、以前からＲＤＢ２に接続して処理を行なっていたシステムである。具体的には、既存システム１は、ＲＤＢ２に対してテーブル名、カラム名及びデータを含む要求ＳＱＬを送出して当該要求ＳＱＬに応じた戻り値を受けることにより、処理を実行している。
【００１９】
ＲＤＢ２は、複数のカラム名と、各カラム名に対応するデータとを有してテーブル名により識別される複数のテーブルを備えており、既存システム１から受けた要求ＳＱＬを受けると、この要求ＳＱＬに応じた戻り値を既存システム１に送出する機能をもっている。但し、この例では、この機能はデータベース要求処理装置が実行するので、ＲＤＢ２はこの機能を実行しない。ＲＤＢ２は、図２及び図３に一例を示すように、従業員テーブル２ａとテーマ管理テーブル２ｂの２つのテーブルを記憶している。
【００２０】
ＲＤＢスキーマ情報管理部１１は、ＲＤＢ２のスキーマとして、テーブル一覧１１ａ、カラム情報１１ｂ、カラム対応関係情報１１ｃを格納する。
【００２１】
ここで、テーブル一覧１１ａは、図４に示すように、ＲＤＢ２に格納されているテーブルのテーブル名を一覧して示すように、テーブル名及びテーブルＩＤが関連付けられており、ここでは更に結合情報が関連付けられている。テーブルＩＤは、テーブルごとに付けられたユニークなＩＤである。
【００２２】
カラム情報１１ｂは、図５に示すように、各テーブルのテーブルＩＤ、カラムＩＤ、カラム名及びデータ型を関連付けてなる情報であり、ここでは更に補足情報、主キーであることを示す情報及び外部キーを示す情報が関連付けられている。カラムＩＤは、各テーブルのカラムに付けられたユニークなＩＤである。
【００２３】
カラム対応関係情報１１ｃは、図６に一例を示すように、各テーブル（Table100，Table200）を結合した結合テーブル（Table300）がある場合に、結合テーブルの各カラムが元のテーブルのどのカラムに対応しているかを示す情報であり、図６に示すように、結合テーブルのテーブルＩＤ、結合テーブルのカラムＩＤ、結合テーブルのカラム名、結合元のテーブルのテーブルＩＤを示す対応テーブルＩＤ、結合元のテーブルのカラムＩＤを示す対応カラムＩＤ、及び重複するデータに関する結合元の他のテーブルのテーブルＩＤとカラムＩＤとを示す結合条件、を関連付けてなる情報である。
【００２４】
キー／バリュー型ＤＢ３は、通常のキー／バリュー型ＤＢ３であるが、本実施形態では主に、図７に示すように、座標キーをキーとしてデータキーを値（バリュー）とした第１のキー／バリュー型データ３ａと、データキーをキーとしてデータを値（バリュー）とした第２のキー／バリュー型データ３ｂとを記憶する。なお、図７中、両データ３ａ，３ｂ間の矢印は、同じデータキーを結んで対応関係を見易く表したものである。実際に両データ３ａ，３ｂ間に矢印のデータがあることを示したものではない。
【００２５】
ここで、座標キーは、テーブルＩＤ、カラムＩＤ及び同一行識別子という３つの値から構成されている。同一行識別子は、ＲＤＢ２の各テーブル内において、当該データが同一行にあることを示すＩＤであり、ユニークなＩＤである必要がある。このため、ＵＵＩＤ（Universally Unique Identifier）などを用い、キー／バリュー型ＤＢ３にデータを挿入する際にキー生成部１４により発行される。
【００２６】
ＲＤＢスキーマ情報取得部１２は、既存システム１が本来アクセスしていたＲＤＢ２が存在し、アクセスできる場合、ＲＤＢ２のスキーマ情報を収集し、テーブル一覧１１ａ、カラム情報１１ｂ及びカラム対応関係情報１１ｃをＲＤＢスキーマ情報管理部１１に書き込む機能をもっている。
【００２７】
また、ＲＤＢスキーマ情報取得部１２は、図８に示す如き、各テーブル２ａ，２ｂを結合した結合テーブル２ｃに関し、テーブル一覧１１ａ内のテーブルＩＤの値として当該結合テーブル２ｃのテーブルＩＤの値を書き込むと共に、当該書き込まれたテーブルＩＤの値に関連付けて結合元の各テーブルの各テーブルＩＤを示す結合情報を書き込む機能をもっている。なお、図８に示した例は、社員番号により結合している。結合関係のイメージを図９に示し、結合情報の例を図１０に示す。
【００２８】
ＲＤＢデータ変換登録部１３は、既存システム１が本来アクセスしていたＲＤＢ２が存在し、アクセスできる場合、ＲＤＢ２に格納されているデータを取得し、キー／バリュー型ＤＢ３へ格納する。
【００２９】
具体的には、ＲＤＢデータ変換登録部１３は、ＲＤＢ２内のデータに関し、テーブルＩＤ、カラムＩＤ及びデータをキー生成部１４に送出し、キー生成部１４から座標キーとデータキーとを受ける機能と、テーブルＩＤ、カラムＩＤ及び同一行識別子を含む座標キーと、データキーを示す値とを関連付けてなる第１のキー／バリュー型データ３ａをキー／バリュー型ＤＢ３に書き込む機能と、データキーと、座標キーにより特定されるデータを示す値とを関連付けてなる第２のキー／バリュー型データ３ｂをキー／バリュー型ＤＢ３に書き込む機能とをもっている。
【００３０】
また、ＲＤＢデータ変換登録部１３は、結合テーブル２ｃのテーブルＩＤ（Table300）、結合テーブル２ｃのカラムＩＤ及び同一行識別子を含む座標キーと、データキーを示す値とを関連付けてなる第３のキー／バリュー型データをキー／バリュー型ＤＢ３に書き込む機能とをもっている。
【００３１】
キー生成部１４は、ＲＤＢデータ変換登録部１３から受けるテーブルＩＤ、カラムＩＤ及びデータに基づいて、キー／バリュー型ＤＢ３へ当該データを登録する際のデータキーと座標キーを生成する機能をもっている。
【００３２】
変換モジュールセット管理部１５は、変換モジュールセットを管理する。変換モジュールセットＭＳｉの追加、削除、変更などの管理を行う。また、変換モジュール判定部１８、ＤＢ呼び出し実行部１９、ＤＢ呼び出し結果変換部２０からの要求により変換モジュールセットＭＳｉを実行する。
【００３３】
変換モジュールセットＭＳｉは、要求ＳＱＬ解析モジュールＭｉａ、要求実行モジュールＭｉｂ、戻り値変換モジュールＭｉｃからなり（但し、ｉ＝１，２，…）、要求ＳＱＬの種別ごとに用意される。
【００３４】
要求ＳＱＬ解析モジュールＭｉａは、要求ＳＱＬを解析し、当該変換モジュールセットで処理できるか否かを判断する。また、要求実行モジュールＭｉｂからの要求に対し、対象となるテーブルやカラムなどのデータを要求ＳＱＬから抽出する。
【００３５】
戻り値変換モジュールＭｉｃは、キー／バリュー型ＤＢ３からの戻り値をあたかもＲＤＢ２からの戻り値のように変換するモジュールである。
【００３６】
換言すると、変換モジュールセット管理部１５は、要求ＳＱＬの種別毎に、変換モジュールセットＭＳ１，ＭＳ２，…を記憶している。変換モジュールセットＭＳ１，ＭＳ２，…としては、要求ＳＱＬを解析して種別に合う場合には解析が成功し、種別に合わない場合には解析が失敗する手段としてデータベース要求処理装置本体を機能させるための要求ＳＱＬ解析モジュールＭ１ａ，Ｍ２ａ，…と、解析が成功した要求ＳＱＬ解析モジュールＭｉａに起動され、要求ＳＱＬをキー／バリュー型ＤＢに対する要求に変換して当該キー／バリュー型ＤＢに対する要求を実行処理する手段としてデータベース要求処理装置本体を機能させるための要求実行モジュールＭｉｂと、キー／バリュー型ＤＢ３に対する要求の処理結果を示す戻り値を要求ＳＱＬの処理結果を示す戻り値に変換する手段としてデータベース要求処理装置本体を機能させるための戻り値変換モジュールＭｉｃとを備えている。
【００３７】
ＤＢ要求処理部１６は、既存システム１からＲＤＢ２向けの要求ＳＱＬを受け取り、ＤＢ呼び出し結果変換部２０により変換された戻り値を（あたかもＲＤＢ２からの戻り値であるように）既存システム１に送出する機能をもっている。
【００３８】
要求管理部１７は、既存システム１からの要求に対し、要求ＩＤを発行し、この要求ＩＤ、要求のＳＱＬ（Structured Query Language）、当該要求を処理する変換モジュールセットＭＳ１，ＭＳ２，…の名称、キー／バリュー型ＤＢ３からの戻り値、及び要求ＳＱＬに対する戻り値、を関連付けて要求管理テーブル１７ａに格納する。
【００３９】
変換モジュール判定部１８は、既存システム１からの要求ＳＱＬをどの変換モジュールセットＭＳ１，ＭＳ２，…で処理するかを判定する。判定方法としては、各変換モジュールセットＭＳ１，ＭＳ２，…が持つ要求ＳＱＬ解析モジュールを用いて要求ＳＱＬを解析して解析に成功する変換モジュールセットＭＳｉを使用する。
【００４０】
換言すると、変換モジュール判定部１８は、既存システム１から送出された要求ＳＱＬに基づいて、変換モジュールセット内の要求ＳＱＬ解析モジュールＭ１ａ，Ｍ２ａ，…を順次実行し、解析に成功した要求ＳＱＬ解析モジュールＭｉａを備えた変換モジュールセットＭＳｉを使用する旨を判定する機能をもっている。
【００４１】
ＤＢ呼び出し実行部１９は、判定された変換モジュールセットＭＳｉを用い、要求ＳＱＬをキー／バリュー型ＤＢ３に対する要求に変換して当該キー／バリュー型ＤＢ３に対する要求を実行処理した処理結果を示す戻り値を得る機能をもっている。
【００４２】
ＤＢ呼び出し結果変換部２０は、判定された変換モジュールセットＭＳｉを用い、ＤＢ呼び出し実行部１９により得られた戻り値を要求ＳＱＬの処理結果を示す戻り値に変換する機能をもっている。
【００４３】
次に、以上のように構成されたデータベース要求処理装置の動作について説明する。
【００４４】
始めに、キー／バリュー型ＤＢ３をＲＤＢ２のように見せかけるには、元のＲＤＢ２のスキーマ情報をＲＤＢスキーマ情報管理部１１に格納しておく必要がある。 
このとき、図１１に事前準備の動作を示すように、既存のＲＤＢ２にアクセスできる場合（ＳＴ１０：ＹＥＳ）には、ＲＤＢスキーマ情報取得部１２が既存のＲＤＢ２から情報を収集し、ＲＤＢスキーマ情報管理部１１にテーブル一覧１１ａ及びカラム情報１１ｂを格納する（ＳＴ２０）。
【００４５】
既存のＲＤＢ２にアクセスできない場合には、ＲＤＢスキーマ情報取得部１２は、ユーザの操作に応じて、ＲＤＢスキーマ情報管理部１１にテーブル一覧１１ａ及びカラム情報１１ｂを格納する（ＳＴ３０）。
【００４６】
また、ＲＤＢスキーマ情報取得部１２は、テーブルを結合してアクセスする必要がある場合（ＳＴ４０：ＹＥＳ）、テーブルの結合に対応するため結合されたテーブルのスキーマも合わせて登録しておく（ＳＴ５０）。例えば、先に挙げた従業員テーブル２ａとテーマ管理テーブル２ｂを結合し、図８に示したように、結合したテーブルとしてアクセスする場合が該当する。結合の関係のイメージは図９に示した通りである。
【００４７】
ステップＳＴ５０では、結合したテーブルのスキーマとして、図１０に示したように、元のテーブルとの対応関係を合わせて格納する。この例の対応関係は、Table300というテーブルがTable100とTable200を結合させたものである旨を示している。また、カラム対応関係情報１１ｃも登録される。
【００４８】
このようにしてＲＤＢスキーマ情報管理部１１にテーブル一覧１１ａ及びカラム情報１１ｂ等の情報が格納された場合、キー／バリュー型ＤＢ３にデータが移行可能となる。
【００４９】
ＲＤＢデータ変換登録部１３は、ＲＤＢ２のデータを抽出し、キー／バリュー型ＤＢ３に格納する（ＳＴ７０）。データ格納イメージは図７に示した通りである。
【００５０】
ステップＳＴ７０は、図１２に詳細に示すように、ステップＳＴ７１〜ＳＴ７７までの処理により実行される。すなわち、ＲＤＢデータ変換登録部１３は、ＲＤＢ２の全ての行についてステップＳＴ７２〜ＳＴ７７の処理を実行する（ＳＴ７１）と共に、現在実行中の当該行の全てのカラムについてステップＳＴ７３〜ＳＴ７７の処理を実行する（ＳＴ７２）。
【００５１】
ＲＤＢデータ変換登録部１３は、図７に示したように、データの値そのものにデータキーを付けた第２のキー／バリュー型データ３ｂをキー／バリュー型ＤＢ３に格納する（ＳＴ７３）。
【００５２】
また、ＲＤＢデータ変換登録部１３は、個々のデータが元のＲＤＢ２に格納された場合、どのテーブルのどのカラムに格納されるのかが分かるようにキー生成部１４に座標キーを生成させ、キー生成部１４から受けた座標キーをキーとし、データキーを値とした第１のキー／バリュー型データ３ａをキー／バリュー型ＤＢ３に格納する（ＳＴ７４）。
【００５３】
座標キーは、例えば、テーブルＩＤが「Table100」、カラムＩＤが「Column1」、同一行識別子が「abcd0001」である場合、例えば、これらを組み合わせて「Table100-Column1-abcd0001」のように生成される。
【００５４】
次に、ＲＤＢデータ変換登録部１３は、当該テーブルが結合されている場合（ＳＴ７５：結合されている）には、当該カラムのデータが結合条件となって既に登録されていなければ（ＳＴ７６：登録されていない）、キー生成部１４によって結合テーブル２ｃの座標キーを生成し、この座標キーに対してもデータキーを値とした第１のキー／バリュー型データ３ａをキー／バリュー型ＤＢ３に格納する（ＳＴ７７）
なお、キー生成部１４は、結合されているテーブルの座標キーを生成する場合、カラム対応関係情報１１ｃにある結合条件から同じ行になるデータを判別し、既に同一行識別子が発行されている場合は同じ同一行識別子を使う。例えば、Table300は、Table100とTable200を結合したものとする。Table100のデータを格納する際、Table100用の座標キーとTable300用の座標キーを生成する。このとき、同一行識別子は、それぞれ別個に発行する。Table200用のデータを格納する場合、Table200用には新規に同一行識別子を発行するが、Table300用には既に同一行となるデータが格納されていればそのデータの同一行識別子を使用する。同一行となるデータが格納されていなければ新規に同一行識別子を発行する。
【００５５】
例えば、Table200に先に登録して、その後でTable100に登録を行なった場合について述べる。Table200のデータを登録する場合、図１３に示すように、Table200とTable300について登録することになる。このとき、同一行識別子として、「ccccc」と「eeeee」の２つが発番されている。次に、Table100のデータを登録する。このときもTable100とTable300について登録される。この登録は図１４に示すように行われる。このとき、新たに同一行識別子として「aaaaa」を発番している。Table300の部分に関しては、「Table300-Column3-eeeee」の行Ｌ１は、結合キーとして既に登録されているので新たな登録を行なわない。これに対し、「Table300-Column7-eeeee」と「Table300-Column8-eeeee」の行Ｌ２は新規に登録するが、既に同じ行となるデータが登録されているので同一行識別子「eeeee」をそのまま使用し、新たな同一行識別子を発行しない。
【００５６】
以上により、ＲＤＢデータ変換登録部１３は、図７に示したように、キー／バリュー型データ３ａ，３ｂをキー／バリュー型ＤＢ３に書き込む。
【００５７】
以上により、ステップＳＴ７０が終了して事前準備が完了する。続いて、データベース要求処理の動作について述べる。
【００５８】
ＤＢ要求処理部１６は、図１５に示すように、ＲＤＢ２向けの要求を既存システム１から受け付ける（ＳＴ８０）。
【００５９】
具体的には、ＤＢ要求処理部１６では、図１６に示すように、データ挿入用の要求ＳＱＬを受け付けると（ＳＴ８１）、要求ＩＤを発行し、図１７に示すように、要求ＩＤを要求ＳＱＬに付加して要求管理部１７内の要求管理テーブル１７ａに格納する。
【００６０】
しかる後、ＤＢ要求処理部１６は、要求ＩＤ及び要求ＳＱＬを変換モジュール判定部１８に送出する（ＳＴ８３）。これにより、ステップＳＴ８０に関連した処理が終了する。
【００６１】
次に、変換モジュール判定部１８は、当該要求を処理すべき変換モジュールセットを判定する（ＳＴ９０）。
【００６２】
ステップＳＴ９０において、変換モジュール判定部１８は、受け取ったＳＱＬがどのようなものかを解析するため、変換モジュールセット管理部１５に登録されている要求ＳＱＬ解析モジュールＭ１ａ，Ｍ２ａ，…を使って解析を行なう。このとき、複数登録されている要求ＳＱＬ解析モジュールＭ１ａ，Ｍ２ａ，…で順次解析を行い、当該ＳＱＬを処理可能な変換モジュールセットＭＳｉの判定を行う。例えば、まず第１の変換モジュールセットＭＳ１内の第１の要求ＳＱＬ解析モジュールＭ１ａで要求ＳＱＬの解析を行なう。このとき、第１の要求ＳＱＬ解析モジュールＭ１ａで解析できれば以後の処理で第１の変換モジュールセットＭＳ１を使用する。解析できなければ次の第２の要求ＳＱＬ解析モジュールＭ２ａを使って要求ＳＱＬの解析を行なう。第２の要求ＳＱＬ解析モジュールＭ２ａで解析できれば以後の処理で第２の変換モジュールセットＭＳ２を使用する。どの変換モジュールセットＭＳｉを使用するのかを示す変換モジュールセット名を図１８に示すように要求管理部１７内の要求管理テーブル１７ａに登録しておく。ステップＳＴ９０は、このように実行される。
【００６３】
次に、ＤＢ呼び出し実行部１９では、選択された変換モジュールセットを利用してＲＤＢ２向けの要求であるＳＱＬを解析し、キー／バリュー型ＤＢ３への要求に変換し、変換後の要求を実行し、キー／バリュー型ＤＢ３からの戻り値を得る（ＳＴ１００）。
【００６４】
ステップＳＴ１００において、ＤＢ呼び出し実行部１９は、要求に対応する変換モジュールセットＭＳｉを使用する。まず、要求ＳＱＬ解析モジュールＭｉａにより要求ＳＱＬを解析し、その結果を用いて要求実行モジュールＭｉｂでキー／バリュー型ＤＢ３に要求を行なう。
【００６５】
この例では、第２の要求ＳＱＬ解析モジュールＭＳ２がデータ挿入のＳＱＬに対応しているものとする。第２の要求ＳＱＬ解析モジュールＭ２ａでは、ＳＱＬの文法を持っており、挿入対象となるテーブル及びカラムを特定する。この処理は、ルールをＢＮＦ（Backus Naur Form）記法などで記述することにより、既存の構文解析の技術で行うことで実現できる。例えば図１９に示すような呼び出し解析ルールを用いる。この例では、ＳＱＬでのデータ挿入の構文がＢＮＦをベースにした記法で記載されている。＠テーブル名、＠カラム名、＠値が取得したいデータとなる。挿入対象となるテーブル及びカラムと値の取得例を図２０に示す。
【００６６】
次に、ＤＢ呼び出し実行部１９は、第２の要求実行モジュールＭ２ｂを使ってキー／バリュー型ＤＢ３への要求を行なう。第２の要求実行モジュールＭ２ｂの例の場合、データ挿入の要求を生成する。ここで、データ挿入の要求を生成する処理は、図２１に示すように、ステップＳＴ１０１〜ＳＴ１０７までの処理により実行される。すなわち、ＤＢ呼び出し実行部１９は、挿入対象のデータの全ての行についてステップＳＴ１０２〜ＳＴ１０７の処理を実行する（ＳＴ１０１）と共に、現在実行中の当該行の全てのカラムについてステップＳＴ１０３〜ＳＴ１０７の処理を実行する（ＳＴ１０２）。
【００６７】
ＤＢ呼び出し実行部１９は、データの値そのものにデータキーを付けてキー／バリュー型ＤＢ３に挿入する要求を生成する（ＳＴ１０３）。また、ＤＢ呼び出し実行部１９は、カラム毎に座標キーを生成し、座標キーに対し、データキーを値としてキー／バリュー型ＤＢ３に挿入する要求を生成する（ＳＴ１０４）。
【００６８】
次に、ＤＢ呼び出し実行部１９は、当該テーブルが結合されている場合（ＳＴ１０５：結合されている）には、当該カラムのデータが結合条件となって既に登録されていなければ（ＳＴ１０６：登録されていない）、結合テーブル２ｃの座標キーを生成し、この座標キーに対しても、データキーを値としてキー／バリュー型ＤＢ３に挿入する要求を生成する（ＳＴ１０７）。
【００６９】
これらステップＳＴ１０１〜ＳＴ１０７の処理により生成されたキー／バリュー型ＤＢ３への要求の例を図２２に示す。
【００７０】
ＤＢ呼び出し実行部１９は、生成されたキー／バリュー型ＤＢ３への要求を実行する。
【００７１】
ＤＢ呼び出し実行部１９は、キー／バリュー型ＤＢ３に要求を行なった結果である戻り値をキー／バリュー型ＤＢ３から受ける。ＤＢ呼び出し実行部１９は、この戻り値をＤＢ呼び出し結果変換部２０に送出する。ＤＢ呼び出し結果変換部２０は、図２３に一例を示すように、この戻り値を対応する要求ＩＤに関連付けて要求管理テーブル１７ａに格納する。ステップＳＴ１００は、このように実行される。
【００７２】
また、ＤＢ呼び出し結果変換部２０は、この戻り値をＲＤＢ２からの戻り値に変換する（ＳＴ１１０）。
【００７３】
ステップＳＴ１１０において、ＤＢ呼び出し結果変換部２０では、図２４に一例を示すように、第２の戻り値変換モジュールＭ２ｃによりＲＤＢ２の戻り値を生成する。この例では、キー／バリュー型ＤＢ３への要求が９個になっており、戻り値が９個あったが、もともとのＲＤＢデータが１行に格納されるため一つの戻り値としている。ＤＢ呼び出し結果変換部２０では、図２５に示すように、ＲＤＢ２の戻り値を要求ＩＤに関連付けて要求管理テーブル１７ａに格納する。
【００７４】
しかる後、ＤＢ要求処理部１６では、既存システム１に対し、要求ＳＱＬに対応した戻り値をＲＤＢ２からの戻り値として返す（ＳＴ１２０）。
【００７５】
以上により、要求ＳＱＬがデータ挿入の場合の要求ＳＱＬに対する処理が終了する。
【００７６】
なお、本実施形態のデータベース要求処理装置は、要求ＳＱＬの種類が変わっても基本的に同様な処理を行なう。例えば図２６に示すような検索要求があった場合について説明する。
【００７７】
ステップＳＴ８０で受け付けた要求ＳＱＬの種類（検索要求）が、前述した要求ＳＱＬの種類（データ挿入の要求）とは異なるため、ステップＳＴ９０において、先ほどとは異なる変換モジュールセットＭＳｉが選択される。
【００７８】
例えば第１の変換モジュールセットＭＳ１が選択されたとする。第１の要求実行モジュールＭ１ｂでは、まず値として「042-340-abcd」を格納しているデータのデータキーを取得する。ここでは、「Data-3」を得る。
【００７９】
次に、当該データキーを値として持つ座標キーを取得する。ここでは、「Table100-Column3-aaaaa」と「Table300-Column8-eeeee」を得る。
【００８０】
「従業員テーブル」のテーブルＩＤは「Table100」、「電話番号」のカラムＩＤは「Column3」であるため、座標キーの中に「Table100」と「Column3」を含むものを選択する。ここでは、「Table100-Column3-aaaa」が選ばれる。当該座標キーの同一行識別子を取得する。ここでは「aaaaa」となる。
【００８１】
ここで、改めて検索対象である社員番号の座標キーを生成する。従業員テーブルのテーブルＩＤは「Table100」、「社員番号」のカラムＩＤは「Column1」、同一行識別子は「aaaaa」となる。これから座標キーを生成すると「Table100-Column1-aaaaa」となる。
【００８２】
この座標キーを持つ値を検索すると「Data-1」が得られる。「Data-1」をデータキーとして持つ値を検索すると「012345678」が得られる。これが検索結果の社員番号となる。
【００８３】
このように要求ＳＱＬの種類ごとに要求ＳＱＬ解析モジュールＭｉａ、要求実行モジュールＭｉｂ、戻り値変換モジュールＭｉｃが用意されている。
【００８４】
上述したように本実施形態によれば、ＲＤＢ２の使用を前提とした既存システム１を改変せずにキー／バリュー型ＤＢ３の環境へ移行させることができる。
【００８５】
補足すると、既存システム１からキー／バリュー型ＤＢ３をＲＤＢ２に見せかけることにより、ＲＤＢ２を用いた既存システム１をキー／バリュー型ＤＢ３を用いた環境に容易に移行させることができる。また、複数のスキーマ間の関連を定義することにより、一つのデータを複数のスキーマから参照できるようになる。
【００８６】
なお、上記実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピー（登録商標）ディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、光磁気ディスク（ＭＯ）、半導体メモリなどの記憶媒体に格納して頒布することもできる。
【００８７】
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
【００８８】
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワークソフト等のＭＷ（ミドルウェア）等が上記実施形態を実現するための各処理の一部を実行しても良い。
【００８９】
さらに、実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、ＬＡＮやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
【００９０】
また、記憶媒体は１つに限らず、複数の媒体から上記実施形態における処理が実行される場合も実施形態における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
【００９１】
尚、実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記実施形態における各処理を実行するものであって、パソコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
【００９２】
また、実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって実施形態の機能を実現することが可能な機器、装置を総称している。
【００９３】
なお、本願発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組合せにより種々の変形例を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。
【符号の説明】
【００９４】
１…既存システム、２…ＲＤＢ、３…キー／バリュー型ＤＢ、１１…ＲＤＢスキーマ情報管理部、１２…ＲＤＢスキーマ情報取得部、１３…ＲＤＢデータ変換登録部、１４…キー生成部、１５…変換モジュールセット管理部、１６…ＤＢ要求処理部、１７…要求管理部、１８…変換モジュール判定部、１９…ＤＢ呼び出し実行部、２０…ＤＢ呼び出し結果変換部。
【図１】
0005444302.tif 000002
【図２】
0005444302.tif 000003
【図３】
0005444302.tif 000004
【図４】
0005444302.tif 000005
【図５】
0005444302.tif 000006
【図６】
0005444302.tif 000007
【図７】
0005444302.tif 000008
【図８】
0005444302.tif 000009
【図９】
0005444302.tif 000010
【図１０】
0005444302.tif 000011
【図１１】
0005444302.tif 000012
【図１２】
0005444302.tif 000013
【図１３】
0005444302.tif 000014
【図１４】
0005444302.tif 000015
【図１５】
0005444302.tif 000016
【図１６】
0005444302.tif 000017
【図１７】
0005444302.tif 000018
【図１８】
0005444302.tif 000019
【図１９】
0005444302.tif 000020
【図２０】
0005444302.tif 000021
【図２１】
0005444302.tif 000022
【図２２】
0005444302.tif 000023
【図２３】
0005444302.tif 000024
【図２４】
0005444302.tif 000025
【図２５】
0005444302.tif 000026
【図２６】
0005444302.tif 000027