(57)【要約】【課題】異なるデータベースシステム間におけるデータ同士の結合処理をより高速に実行することができるデータベースシステムなどを提供することである。【解決手段】実施形態のデータベースシステムは、複数のデータベースシステムと統合サーバとを持つ。統合サーバはデータを結合する要求に基づき第１および第２データベースシステムに問い合わせる。第１および第２データベースシステムはデータをハッシュ値に変換する。第１データベースシステムはハッシュ値を第２データベースシステムに送信する。第２データベースシステムは、受信したハッシュ値と変換したハッシュ値とを照合し、照合結果および一致したハッシュ値の元データを統合サーバに送信し、一致したハッシュ値情報を第１データベースシステムに送信する。第１データベースシステムはハッシュ値情報に基づいてデータを統合サーバに送信する。統合サーバは照合結果に基づきデータ同士を結合する。【選択図】図１
2018010424.tif 000002
【特許請求の範囲】
【請求項１】
データベースを管理する複数のデータベースシステムと、
クライアントから複数のデータを結合する要求を受け付けた場合に、前記要求に基づいて、前記複数のデータベースシステムの一部または全部である複数のデータベースシステムに問い合わせを行う統合サーバと、を備え、
前記統合サーバから問い合わせを受け付けたデータベースシステムのそれぞれは、前記受け付けた問い合わせに基づいて前記データベースからデータを抽出し、抽出したデータをハッシュ値に変換し、
前記統合サーバから問い合わせを受け付けたデータベースシステムのうち第１のデータベースシステムは、前記変換したハッシュ値を、前記統合サーバから問い合わせを受け付けたデータベースシステムのうち第２のデータベースシステムに送信し、
前記第２のデータベースシステムは、前記第１のデータベースシステムから受信したハッシュ値と、自身が変換したハッシュ値とを照合し、照合結果、および一致したハッシュ値の元となったデータを前記統合サーバに送信すると共に、前記第１のデータベースシステムから受信したハッシュ値のうち、一致したハッシュ値に対応する情報を前記第１のデータベースシステムに送信し、
前記第１のデータベースシステムは、前記第２のデータベースシステムから受信した前記一致したハッシュ値に対応する情報に基づいて、一致したハッシュ値の元となったデータを前記統合サーバに送信し、
前記統合サーバは、前記照合結果に基づいて、前記前記第１のデータベースシステムおよび前記第２のデータベースシステムからそれぞれ受信したデータ同士を結合する、
データベースシステム。
【請求項２】
前記第１および第２のデータベースシステムは、それぞれ、前記抽出したデータをハッシュ値に変換する処理を非同期で行う、
請求項１に記載のデータベースシステム。
【請求項３】
前記統合サーバから問い合わせを受け付けたデータベースシステムのうちいずれかのデータベースシステムは、自身が前記第１のデータベースシステムとして動作するか、前記第２のデータベースシステムとして動作するかを決定し、決定した情報を、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに送信する、
請求項１または２に記載のデータベースシステム。
【請求項４】
前記統合サーバから問い合わせを受け付けたデータベースシステムのそれぞれは、前記決定した情報を受信していない場合において、前記抽出したデータをハッシュ値に変換する処理が完了した場合に、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに変換完了通知を送信し、
前記変換完了通知を受信したデータベースシステムは、自身が前記第１のデータベースシステムとして動作するか、前記第２のデータベースシステムとして動作するかを決定する、
請求項３に記載のデータベースシステム。
【請求項５】
前記統合サーバから問い合わせを受け付けたデータベースシステムのそれぞれは、前記抽出したデータをハッシュ値に変換する処理が完了した場合に、前記統合サーバから受け付けた問い合わせに基づいて抽出したデータのデータ量に基づく情報を、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに送信し、
前記統合サーバから問い合わせを受け付けた他のデータベースシステムは、前記データ量に基づく情報と、自身で抽出したデータ量に基づく情報とを比較し、比較結果に基づいて、自身が前記第１のデータベースシステムとして動作するか、前記第２のデータベースシステムとして動作するかを決定する、
請求項４に記載のデータベースシステム。
【請求項６】
前記統合サーバから問い合わせを受け付けたデータベースシステムのそれぞれは、前記抽出したデータをハッシュ値に変換する処理が完了した場合に、自装置の能力を表す情報を、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに送信し、
前記統合サーバから問い合わせを受け付けた他のデータベースシステムは、受信した前記能力を表す情報と、自装置における能力とを比較し、比較結果に基づいて、自身が前記第１のデータベースシステムとして動作するか、前記第２のデータベースシステムとして動作するかを決定する、
請求項４または５に記載のデータベースシステム。
【請求項７】
前記統合サーバから問い合わせを受け付けたデータベースシステムのそれぞれは、前記抽出したデータをハッシュ値に変換する処理が完了したタイミングで、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに通知を行い、
前記統合サーバから問い合わせを受け付けた他のデータベースシステムは、前記通知を受け付けたタイミングに基づいて、実施側装置および基点側装置を決定するルールに基づいて、自身が前記第１のデータベースシステムとして動作するか、前記第２のデータベースシステムとして動作するかを決定する、
請求項４に記載のデータベースシステム。
【請求項８】
統合サーバが、クライアントから複数のデータを結合する要求を受け付け、
前記統合サーバが、前記要求に基づいて前記複数のデータベースシステムの一部または全部である複数のデータベースシステムに問い合わせを行い、
前記統合サーバから問い合わせを受け付けたデータベースシステムのそれぞれが、受け付けた問い合わせに基づいてデータベースからデータを抽出し、抽出したデータをハッシュ値に変換し、
前記統合サーバから問い合わせを受け付けたデータベースシステムのうち第１のデータベースシステムが、変換したハッシュ値を、前記統合サーバから問い合わせを受け付けたデータベースシステムのうち第２のデータベースシステムに送信し、
前記第２のデータベースシステムが、前記第１のデータベースシステムから受信したハッシュ値と、自身が変換したハッシュ値とを照合し、照合結果、および一致したハッシュ値の元となったデータを前記統合サーバに送信すると共に、前記第１のデータベースシステムから受信したハッシュ値のうち、一致したハッシュ値に対応する情報を前記第１のデータベースシステムに送信し、
前記第１のデータベースシステムが、前記第２のデータベースシステムから受信した前記一致したハッシュ値に対応する情報に基づいて、一致したハッシュ値の元となったデータを前記統合サーバに送信し、
前記統合サーバが、前記照合結果に基づいて、前記第１のデータベースシステムおよび前記第２のデータベースシステムからそれぞれ受信したデータ同士を結合する、
データ結合方法。
【請求項９】
クライアント、および識別情報に対応付けられたデータを格納するデータベースを管理する複数のデータベースシステムと通信を行う通信部と、
複数のデータを結合する要求を前記クライアントから受け付けた場合に、前記要求に基づいて前記複数のデータベースシステムの一部または全部である複数のデータベースシステムに問い合わせを行い、問い合わせを行ったデータベースシステムのうち第１のデータベースシステムから、識別情報の組み合わせおよび前記識別情報の組み合わせのうち一つの識別情報に対応付けられたデータを受信すると共に、問い合わせを行ったデータベースシステムのうち第２のデータベースシステムから、前記識別情報の組み合わせのうち他の識別情報に対応付けられたデータを受信した場合に、前記識別情報の組み合わせに基づいて、問い合わせを行ったデータベースシステムのうち前記第１のデータベースシステムから受信したデータと、前記第２のデータベースシステムから受信したデータとを照合し、一致するデータ同士を結合した結果を前記クライアントに送信する実行部と、
を備える、統合サーバ。
【請求項１０】
前記実行部は、前記要求に基づく問い合わせを、前記複数のデータベースシステムの一部または全部である複数のデータベースシステムに対して同時に行う、
請求項９に記載の統合サーバ。
【請求項１１】
複数のデータを結合する要求をクライアントから受け付け、
前記要求に基づいて、識別情報に対応付けられたデータを格納するデータベースを管理する複数のデータベースシステムの一部または全部である複数のデータベースシステムに問い合わせを行い、
問い合わせを行ったデータベースシステムのうち第１のデータベースシステムから、識別情報の組み合わせおよび前記識別情報の組み合わせのうち一つの識別情報に対応付けられたデータを受信すると共に、問い合わせを行ったデータベースシステムのうち第２のデータベースシステムから、前記識別情報の組み合わせのうち他の識別情報に対応付けられたデータを受信し、
前記識別情報の組み合わせに基づいて、前記第１のデータベースシステムから受信したデータと、前記第２のデータベースシステムから受信したデータとを照合し、
一致したデータ同士を結合した結果を前記クライアントに送信する、
データ結合方法。
【請求項１２】
コンピュータに、
複数のデータを結合する要求をクライアントから受け付けさせ、
前記要求に基づいて、識別情報に対応付けられたデータを格納するデータベースを管理する複数のデータベースシステムの一部または全部である複数のデータベースシステムに問い合わせを行わせ、
問い合わせを行ったデータベースシステムのうち第１のデータベースシステムから、識別情報の組み合わせおよび前記識別情報の組み合わせのうち一つの識別情報に対応付けられたデータを受信させると共に、問い合わせを行ったデータベースシステムのうち第２のデータベースシステムから、前記識別情報の組み合わせのうち他の識別情報に対応付けられたデータを受信させ、
前記識別情報の組み合わせに基づいて、前記第１のデータベースシステムから受信したデータと、前記第２のデータベースシステムから受信したデータとを照合させ、
一致したデータ同士を結合させた結果を前記クライアントに送信させる、
データ結合プログラム。
【請求項１３】
データベースと、
データを結合する統合サーバ、および自装置とは異なる他のデータベースシステムと通信を行う通信部と、
前記通信部を用いて、前記統合サーバから、複数のデータを結合する要求に基づく問い合わせを受け付ける受付部と、
受け付けた問い合わせに基づいて前記データベースからデータを抽出する抽出部と、
前記抽出部により抽出されたデータをハッシュ値に変換する変換部と、
前記通信部を用いて、前記統合サーバから問い合わせを受け付けた他のデータベースシステムとの間で通信を行うことで、自装置が変換したハッシュ値を前記統合サーバから問い合わせを受け付けた他のデータベースシステムに送信する基点側装置と、前記統合サーバから問い合わせを受け付けた他のデータベースシステムが変換したハッシュ値と自装置が変換したハッシュ値とを照合する実施側装置との間で切り替える切替部と、
前記切替部により実施側装置に切り替えられた場合に、前記通信部を用いて基点側装置のデータベースシステムからハッシュ値を受信し、前記変換部により変換されたハッシュ値と受信したハッシュ値とを照合し、照合結果、および一致したハッシュ値の元となったデータを前記統合サーバに送信すると共に、受信したハッシュ値のうち、一致したハッシュ値に対応する情報を前記基点側装置のデータベースシステムに送信し、
前記切替部により基点側装置に切り替えられた場合に、前記変換部により変換されたハッシュ値を、前記通信部を用いて前記実施側装置のデータベースシステムに送信し、前記実施側装置のデータベースシステムから受信した、一致したハッシュ値に対応する情報に基づいて前記抽出部により抽出されたデータを、前記通信部を用いて前記統合サーバに送信する、実行部と、
を備える、データベースシステム。
【請求項１４】
データを結合する統合サーバから、複数のデータを結合する要求に基づく問い合わせを受け付け、
受け付けた問い合わせに基づいて、データベースからデータを抽出し、
抽出したデータをハッシュ値に変換し、
前記統合サーバから問い合わせを受け付けた他のデータベースシステムとの間で通信を行うことで、自装置が変換したハッシュ値を、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに送信する基点側装置と、前記統合サーバから問い合わせを受け付けた他のデータベースシステムが変換したハッシュ値と自装置が変換したハッシュ値とを照合する実施側装置との間で切り替え、
自装置を実施側装置に切り替えた場合に、基点側装置のデータベースシステムからハッシュ値を受信し、自装置で変換したハッシュ値と受信したハッシュ値とを照合し、照合結果、および一致したハッシュ値の元となったデータを前記統合サーバに送信すると共に、受信したハッシュ値のうち、一致したハッシュ値に対応する情報を前記基点側装置のデータベースシステムに送信し、
自装置を基点側装置に切り替えた場合に、自装置で変換したハッシュ値を、実施側装置のデータベースシステムに送信し、前記実施側装置のデータベースシステムから受信した、一致したハッシュ値に対応する情報に基づいて抽出したデータを、前記統合サーバに送信する、
データベースシステム連携方法。
【請求項１５】
コンピュータに、
データを結合する統合サーバから、複数のデータを結合する要求に基づく問い合わせを受け付けさせ、
受け付けた問い合わせに基づいて、データベースからデータを抽出させ、
抽出したデータをハッシュ値に変換させ、
前記統合サーバから問い合わせを受け付けた他のデータベースシステムとの間で通信を行わせることで、自装置が変換したハッシュ値を、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに送信する基点側装置と、前記統合サーバから問い合わせを受け付けた他のデータベースシステムが変換したハッシュ値と自装置が変換したハッシュ値とを照合する実施側装置との間で切り替えさせ、
自装置を実施側装置に切り替えさせた場合に、基点側装置のデータベースシステムからハッシュ値を受信させ、自装置で変換させたハッシュ値と受信させたハッシュ値とを照合させ、照合結果、および一致したハッシュ値の元となったデータを前記統合サーバに送信させると共に、受信させたハッシュ値のうち、一致したハッシュ値に対応する情報を前記基点側装置のデータベースシステムに送信させ、
自装置を基点側装置に切り替えさせた場合に、自装置で変換させたハッシュ値を、実施側装置のデータベースシステムに送信させ、前記実施側装置のデータベースシステムから受信させた、一致したハッシュ値に対応する情報に基づいて抽出させたデータを、前記統合サーバに送信させる、
データベースシステム連携プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、データベースシステム、データ結合方法、統合サーバ、データ結合プログラム、データベースシステム連携方法、および、データベースシステム連携プログラムに関する。
【背景技術】
【０００２】
クライアントから受信したクエリに基づいて、複数のデータサーバが連携してデータ同士を結合し、クライアントに応答するセミジョイン法と称される手法が知られている。
ハッシュセミジョイン法では、クライアントからクエリを受信した場合、結合対象となる列データのハッシュ値を、第１のデータベースシステムから第２のデータベースシステムに送信する。第２のデータベースシステムは、受信したハッシュ値と自身の列データのハッシュ値とを照合し、一致したハッシュ値に対応する行の識別情報を含む結合結果、および行データを抽出するための列データを第１のデータベースシステムに返信する。第１のデータベースシステムは、結合結果に基づいて行データ同士を結合することで最終結果を生成して、最終結果をクライアントに送信する。しかしながら、第２のデータベースシステムから第１のデータベースシステムに送信する列データのサイズが大きい場合、データベースシステム間の通信量が増加する可能性があった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２６２９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、異なるデータベースシステム間におけるデータ同士の結合処理を、より高速に実行することができるデータベースシステム、データ結合方法、統合サーバ、データ結合プログラム、データベースシステム連携方法、および、データベースシステム連携プログラムを提供することである。
【課題を解決するための手段】
【０００５】
実施形態のデータベースシステムは、複数のデータベースシステムと、統合サーバと、とを持つ。前記複数のデータベースシステムは、データベースを管理する。前記統合サーバは、クライアントから複数のデータを結合する要求を受け付けた場合に、前記要求に基づいて、前記複数のデータベースシステムの一部または全部である複数のデータベースシステムに問い合わせを行う。前記統合サーバから問い合わせを受け付けたデータベースシステムのそれぞれは、前記受け付けた問い合わせに基づいて前記データベースからデータを抽出し、抽出したデータをハッシュ値に変換する。前記統合サーバから問い合わせを受け付けたデータベースシステムのうち第１のデータベースシステムは、前記変換したハッシュ値を、前記統合サーバから問い合わせを受け付けたデータベースシステムのうち第２のデータベースシステムに送信する。前記第２のデータベースシステムは、前記第１のデータベースシステムから受信したハッシュ値と、自身が変換したハッシュ値とを照合し、照合結果、および一致したハッシュ値の元となったデータを前記統合サーバに送信すると共に、前記第１のデータベースシステムから受信したハッシュ値のうち、一致したハッシュ値に対応する情報を前記第１のデータベースシステムに送信する。前記第１のデータベースシステムは、前記第２のデータベースシステムから受信した前記一致したハッシュ値に対応する情報に基づいて、一致したハッシュ値の元となったデータを前記統合サーバに送信する。前記統合サーバは、前記照合結果に基づいて、前記前記第１のデータベースシステムおよび前記第２のデータベースシステムからそれぞれ受信したデータ同士を結合する。
【図面の簡単な説明】
【０００６】
【図１】実施形態のデータベースシステム１の一例を示す図。
【図２】ユーザ端末１００、データベース統合サーバ２００、データベースシステムＸ、およびデータベースシステムＹの機能構成の一例を示すブロック図。
【図３】実施形態における結合処理の概要を表す図。
【図４】実施形態のデータベースシステム１においてデータを結合する全体の処理の流れの一例を示すフローチャート。
【図５】ハッシュ表を生成する処理の概要を示す図。
【図６】結合基点および結合実施点を決定する処理の概要を示す図。
【図７】データベースシステムＸが結合基点、データベースシステムＹが結合実施点に決定された場合において、ハッシュ値を照合する処理の概要を示す図。
【図８】データベースシステムＸが結合基点、データベースシステムＹが結合実施点に決定された場合において、結合結果を送信する処理の概要を示す図。
【図９】データベースシステムＸが結合基点、データベースシステムＹが結合実施点に決定された場合において、最終結果を生成する処理の概要を示す図。
【図１０】データベースシステムＸが結合実施点、データベースシステムＹが結合基点に決定された場合において、ハッシュ値を照合する処理の概要を示す図。
【図１１】データベースシステムＸが結実施基点、データベースシステムＹが結合基点に決定された場合において、結合結果を送信する処理の概要を示す図。
【図１２】データベースシステムＸが結合実施点、データベースシステムＹが結合基点に決定された場合において、最終結果を生成する処理の概要を示す図。
【図１３】実施形態のデータベース統合サーバ２００における内部処理の流れの一例を示すフローチャート。
【図１４】実施形態のシステム連携装置における内部処理の流れの一例を示すフローチャート。
【図１５】相手のデータベースシステムよりも先にハッシュ表の作成が完了したデータベースシステムにおけるシステム連携装置３００の処理の流れの一例を示すフローチャート。
【図１６】相手のデータベースシステムからコスト情報を受信したデータベースシステムにおけるシステム連携装置３００の処理の流れの一例を示すフローチャート。
【図１７】相手のデータベースシステムからコスト情報を受信したデータベースシステムにおけるシステム連携装置３００の処理の流れの他の一例を示すフローチャート。
【図１８】データベースからデータを抽出したデータからハッシュ値する処理の実施例を示す図。
【図１９】結合基点および結合実施点を決定する処理の実施例を示す図。
【図２０】結合基点および結合実施点を決定する処理の実施例を示す図。
【図２１】ハッシュ値を照合する処理の実施例を示す図。
【図２２】ハッシュ値を照合する処理の実施例を示す図。
【図２３】中間結果および最終結果を生成する処理の実施例を示す図。
【発明を実施するための形態】
【０００７】
以下、実施形態のデータベースシステムおよびデータ結合方法、統合サーバ、およびデータ結合プログラム、データベースシステム連携方法、およびデータベースシステム連携プログラムを、図面を参照して説明する。
【０００８】
図１は、実施形態のデータベースシステム１の一例を示す図である。データベースシステム１は、例えば、ユーザ端末１００と、データベース統合サーバ２００と、データベースシステムＸおよびデータベースシステムＹとを備える。データベースシステムＸは、例えば、システム連携装置３００Ｘと、データベース管理装置４００Ｘと、データベース５００Ｘとを備える。データベースシステムＹは、例えば、システム連携装置３００Ｙと、データベース管理装置４００Ｙと、データベース５００Ｙとを備える。なお、実施形態においてデータベースシステムはデータベースシステムＸとデータベースシステムＹの２つであるが、これに限定されず、２以上の任意の自然数のデータベースシステムを備えていてもよい。データベースシステムＸとデータベースシステムＹとは、異なる内容のデータを管理および記憶する。また、データベースシステムＸとデータベースシステムＹとは、データの記録形式の種類等が異なるＤＢＭＳ（DataBase Management System）であるが、これに限定されず、同じＤＢＭＳであってもよい。
【０００９】
ユーザ端末１００と、データベース統合サーバ２００と、データベースシステムＸと、データベースシステムＹとは、ネットワークＮＷに接続されている。ネットワークＮＷは、例えば、無線基地局、Ｗｉ−Ｆｉアクセスポイント、通信回線、プロバイダ、インターネットなどを含む。なお、これらの構成要素の全ての組み合わせが相互に通信可能である必要はなく、ネットワークＮＷは、一部にローカルなネットワークを含んでもよい。
【００１０】
図２は、ユーザ端末１００、データベース統合サーバ２００、データベースシステムＸ、およびデータベースシステムＹの機能構成の一例を示すブロック図である。ユーザ端末１００は、データベース用アプリケーション１１０がインストールされたコンピュータである。ユーザ端末１００は、データベース統合サーバ２００に対するクライアントの一例である。データベース用アプリケーション１１０は、例えばユーザの操作に基づいてＳＱＬ（Structured Query Language）により記述したクエリを生成する。実施形態において、データベース用アプリケーション１１０は、データベースシステムＸに記憶されたデータと、データベースシステムＹに記憶されたデータとを結合した結果を要求するクエリを生成する。データベース用アプリケーション１１０は、生成したクエリを、ＮＩＣを用いてデータベース統合サーバ２００に送信する。また、データベース用アプリケーション１１０は、データベース統合サーバ２００からのクエリに対する応答を受け付ける。
【００１１】
データベース統合サーバ２００は、例えば、計画生成部２１０と、サーバ側計画実行部２２０と、サーバ側通信部２３０とを備える。これらの機能部は、例えばＣＰＵ（Central Processing Unit）等のプロセッサがプログラムメモリに格納されたプログラムを実行することにより実現される。また、これらの機能部のうち一部または全部は、ＬＳＩ（Large Scale Integration）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＦＰＧＡ（Field-Programmable Gate Array）等のハードウェアにより実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【００１２】
計画生成部２１０は、データベース用アプリケーション１１０から受信したクエリを受け付ける。計画生成部２１０は、受け付けたクエリを解釈して実行計画を生成する。
実行計画は、クエリにより指定されたデータをデータベースシステムＸおよびデータベースシステムＹからそれぞれ抽出し、抽出したデータのハッシュ値同士を照合した結果に基づいてデータ同士を結合する手順を表す。
【００１３】
サーバ側計画実行部２２０は、サーバ側通信部２３０を用いて、計画生成部２１０により生成された実行計画に基づいて、データベースシステムＸおよびデータベースシステムＹに問い合わせを行う。問い合わせを行うデータベースシステムは、複数のデータベースシステムの一部または全部である複数のデータベースシステム（Ｘ，Ｙ）である。サーバ側計画実行部２２０は、例えば、クエリにより指定されたデータを結合する要求を各データベースシステムに送信する。サーバ側計画実行部２２０は、サーバ側通信部２３０を用いて、問い合わせを行った結果としてデータベースシステムＸおよびデータベースシステムＹからデータを含む情報を受信する。サーバ側計画実行部２２０は、受信した情報に基づいてデータ同士を結合して、最終結果を生成する。サーバ側計画実行部２２０は、サーバ側通信部２３０を用いて、最終結果をユーザ端末１００に送信する。
【００１４】
サーバ側通信部２３０は、ＮＩＣ（Network Interface Card）や無線通信モジュールなどの通信インターフェースである。
【００１５】
システム連携装置３００Ｘは、例えば、データベースシステム側通信部３１０Ｘと、データベースシステム側計画実行部３２０Ｘと、ハッシュ表作成部３３０Ｘと、データベースシステムＡＰＩ（Application Programming Interface）４００Ｘとを備える。これらの機能部は、例えばＣＰＵ等のプロセッサがプログラムメモリに格納されたプログラムを実行することにより実現される。また、これらの機能部のうち一部または全部は、ＬＳＩ、ＡＳＩＣ、またはＦＰＧＡ等のハードウェアにより実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【００１６】
データベースシステム側通信部３１０Ｘは、ＮＩＣや無線通信モジュールなどの通信インターフェースである。
【００１７】
データベースシステム側計画実行部３２０Ｘは、データベース統合サーバ２００により生成された実行計画に基づいて、結合処理を行う。データベースシステム側計画実行部３２０Ｘは、結合処理において、データベース５００Ｘからデータを抽出し、抽出したデータのハッシュ値とデータベースシステムＹから受信したハッシュ値とを照合する。データベースシステム側計画実行部３２０Ｘは、照合した結果に基づく情報を、データベースシステム側通信部３１０Ｘを用いてデータベース統合サーバ２００に送信する。
【００１８】
データベースシステム側計画実行部３２０Ｘは、結合処理切替部３２２Ｘを備える。結合処理切替部３２２Ｘは、ハッシュ値同士を照合する処理を自身で行うか、データベースシステムＹで行うかを決定する。
【００１９】
ハッシュ表作成部３３０Ｘは、データベースシステム側計画実行部３２０Ｘにより抽出されたデータを、所定のハッシュ関数によりハッシュ値に変換する。ハッシュ表作成部３３０Ｘは、ハッシュ値を、データに対応付けられた識別情報に対応付けたハッシュ表を作成する。
【００２０】
データベースシステムＡＰＩ３４０Ｘは、データベースシステム側計画実行部３２０Ｘとデータベース管理装置４００Ｘにおけるアプリケーションプログラムとの間でデータおよび命令の受け渡しを行う。データベースシステムＡＰＩ３４０Ｘは、データベースシステム側計画実行部３２０Ｘから要求を受け付けることで、データベース管理装置４００Ｘによってデータベース５００Ｘからデータを抽出させる。
【００２１】
データベース管理装置４００Ｘは、例えばＣＰＵ等のプロセッサがプログラムメモリに格納されたＤＢＭＳを実行することにより実現される。また、これらの機能部のうち一部または全部は、ＬＳＩ、ＡＳＩＣ、またはＦＰＧＡ等のハードウェアにより実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。データベース管理装置４００Ｘは、外部装置から受け付けたクエリに基づいて、データベース５００Ｘの操作を行う。また、データベース管理装置４００Ｘは、データベースシステムＡＰＩ３４０Ｘから受信した要求に基づいて、データベース５００Ｘからデータを抽出し、抽出したデータをデータベースシステムＡＰＩ３４０Ｘに返信する。
【００２２】
データベース５００Ｘは、テーブルを格納する。テーブルは、各行に付加される識別情報としてのrowidXに、レコードを対応付けた情報である。rowidXは、データベースシステムＸに格納されたレコードを一意に特定する情報である。レコードは、一又は複数の列に対応付けられたデータを含む。これにより、各データは、一つのrowidXに対応付けられる。
【００２３】
システム連携装置３００Ｙは、例えば、データベースシステム側通信部３１０Ｙと、データベースシステム側計画実行部３２０Ｙと、ハッシュ表作成部３３０と、データベースシステムＡＰＩ４００Ｙとを備える。これらの機能部は、例えばＣＰＵ等のプロセッサがプログラムメモリに格納されたプログラムを実行することにより実現される。また、これらの機能部のうち一部または全部は、ＬＳＩ、ＡＳＩＣ、またはＦＰＧＡ等のハードウェアにより実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。
【００２４】
データベースシステム側通信部３１０Ｙは、ＮＩＣや無線通信モジュールなどの通信インターフェースである。
【００２５】
データベースシステム側計画実行部３２０Ｙは、データベース統合サーバ２００により生成された実行計画に基づいて、結合処理を行う。データベースシステム側計画実行部３２０Ｙは、結合処理において、データベース５００Ｙからデータを抽出し、抽出したデータのハッシュ値とデータベースシステムＸから受信したハッシュ値とを照合する。データベースシステム側計画実行部３２０Ｙは、照合した結果に基づく情報を、データベースシステム側通信部３１０Ｙを用いてデータベース統合サーバ２００に送信する。
【００２６】
データベースシステム側計画実行部３２０Ｙは、結合処理切替部３２２Ｙを備える。結合処理切替部３２２Ｙは、ハッシュ値同士を照合する処理を自身で行うか、データベースシステムＸで行うかを決定する。
【００２７】
ハッシュ表作成部３３０Ｙは、データベースシステム側計画実行部３２０Ｙにより抽出されたデータを、所定のハッシュ関数によりハッシュ値に変換する。ハッシュ表作成部３３０Ｙは、ハッシュ値を、データに対応付けられた識別情報に対応付けたハッシュ表を作成する。
【００２８】
データベースシステムＡＰＩ３４０Ｙは、データベースシステム側計画実行部３２０Ｙとデータベース管理装置４００Ｙにおけるアプリケーションプログラムとの間でデータおよび命令の受け渡しを行う。データベースシステムＡＰＩ３４０Ｙは、データベースシステム側計画実行部３２０Ｙから要求を受け付けることで、データベース管理装置４００Ｙによってデータベース５００Ｙからデータを抽出させる。
【００２９】
データベース管理装置４００Ｙは、例えばＣＰＵ等のプロセッサがプログラムメモリに格納されたＤＢＭＳを実行することにより実現される。また、これらの機能部のうち一部または全部は、ＬＳＩ、ＡＳＩＣ、またはＦＰＧＡ等のハードウェアにより実現されてもよいし、ソフトウェアとハードウェアが協働することで実現されてもよい。データベース管理装置４００Ｙは、外部装置から受け付けたクエリに基づいて、データベース５００Ｙの操作を行う。また、データベース管理装置４００Ｙは、データベースシステムＡＰＩ３４０Ｙから受信した要求に基づいて、データベース５００Ｙからデータを抽出し、抽出したデータをデータベースシステムＡＰＩ３４０Ｙに返信する。
【００３０】
データベース５００Ｙは、テーブルを格納する。テーブルは、各行に付加される識別情報としてのrowidYに、レコードを対応付けた情報である。rowidYは、データベースシステムＹに格納されたレコードを一意に特定する情報である。レコードは、一又は複数の列に対応付けられたデータを含む。これにより、各データは、一つのrowidYに対応付けられる。
【００３１】
以下、データベースシステムＸおよびデータベースシステムＹにおいて行われる結合処理の概要を説明する。図３は、実施形態における結合処理の概要を表す図である。データベース統合サーバ２００に下記のSELECT文が受け付けられたものとする。
SELECT＊FROM X, Y WHERE x1=y1
SELECT文におけるSELECT節以下の「＊」は結合対象のデータを指定する情報であり、FROM節以下の「X,Y」は結合対象のデータを抽出するデータベースを指定する情報であり、WHERE節以下の「x1=y1」は結合対象のデータを結合する条件を指定する情報である。すなわち、このSELECT文は、テーブルXおよびテーブルYにおける列の値が等しいという条件を満たすデータ同士を結合することを要求するクエリである。
【００３２】
データベースシステム側計画実行部３２０Ｘは、データベース５００ＸからテーブルＸを抽出する。テーブルＸは、rowidX「１」、「２」、および「３」にそれぞれ対応付けられた各レコードに一つのデータを含む。ハッシュ表作成部３３０Ｘは、テーブルＸに含まれるデータをハッシュ値に変換する。これにより、ハッシュ表作成部３３０Ｘは、データ「AAAAA」をハッシュ値「４」に変換し、データ「BBBBB」をハッシュ値「１」に変換し、データ「CCCCC」をハッシュ値「３」に変換する。ハッシュ表作成部３３０Ｘは、ハッシュ値を添え字とした配列を表すハッシュ表を作成する。
【００３３】
一方、データベースシステム側計画実行部３２０Ｙは、データベース５００ＹからテーブルＹを抽出する。テーブルＹは、rowidY「１」、「２」、「３」、および「４」にそれぞれ対応付けられた各レコードに一つのデータを含む。ハッシュ表作成部３３０Ｙは、テーブルＹに含まれるデータをハッシュ値に変換する。これにより、ハッシュ表作成部３３０Ｙは、データ「CCCCC」をハッシュ値「３」に変換し、データ「AAAAA」をハッシュ値「４」に変換し、データ「BBBBB」をハッシュ値「１」に変換し、データ「DDDDD」をハッシュ値「５」に変換する。ハッシュ表作成部３３０Ｙは、ハッシュ値「３」にrowidX「１」を対応付け、ハッシュ値「４」をrowidX「２」に対応付け、ハッシュ値「１」をrowidX「３」に対応付け、ハッシュ値「５」をrowidX「４」に対応付けたハッシュ結果を作成する。
【００３４】
データベースシステムＸとデータベースシステムＹとのいずれかは、ハッシュ結果に含まれるハッシュ値と、ハッシュ表に含まれるハッシュ値と照合する。データベースシステムＸとデータベースシステムＹとのいずれかは、一致したハッシュ値に対応するrowidXとrowidYとのペアを含む結合結果を作成する。言い換えれば、データベースシステムＸとデータベースシステムＹとのいずれかは、一致したハッシュ値に元となったデータに対応するrowidXとrowidYとのペアを作成する。
【００３５】
以下、実施形態のデータベースシステム１においてデータを結合する全体の処理について説明する。図４は、実施形態のデータベースシステム１においてデータを結合する全体の処理の流れの一例を示すフローチャートである。
【００３６】
まずデータベース統合サーバ２００は、ユーザ端末１００により送信されたクエリを受け付けたか否かを判定する（ステップＳ１００）。なお、この判定処理は、例えば、データベース統合サーバ２００において所定時間毎に繰り返して実行される。データベース統合サーバ２００は、クエリを受け付けた場合、データベースシステムＸおよびデータベースシステムＹにそれぞれ問い合わせを行う（ステップＳ１０２）。次に、データベースシステムＸおよびデータベースシステムＹは、それぞれハッシュ表の作成を開始する（ステップＳ１０４）。図５は、ハッシュ表を生成する処理の概要を示す図である。データベース統合サーバ２００は、略同時または２つの問い合わせを送信する処理の時間差で、クエリに基づく問い合わせをシステム連携装置３００Ｘおよびシステム連携装置３００Ｙに対して行う。これにより、データベースシステムＸおよびデータベースシステムＹは、それぞれ、抽出したデータをハッシュ値に変換する処理を非同期で行う。
【００３７】
次に、データベースシステム１は、データベースシステムＸおよびデータベースシステムＹのうちの一方でハッシュ表が完成したか否かを判定する（ステップＳ１０６）。次に、データベースシステム１は、データベースシステムＸおよびデータベースシステムＹのうちの一方でハッシュ表が完成したタイミングで、結合基点および結合実施点を決定する（ステップＳ１０８）。図６は、結合基点および結合実施点を決定する処理の概要を示す図である。結合処理切替部３２２Ｘは、ハッシュ表の作成が完了した場合、コスト情報をシステム連携装置３００Ｙに送信する。コスト情報は、抽出したデータをハッシュ値に変換する処理が完了することを通知する変換完了通知の一例でもある。コスト情報は、ハッシュ表のサイズ、データベースシステムＸにおける処理負荷、データベースシステムＸの性能の少なくとも一つを含む。結合処理切替部３２２Ｙは、システム連携装置３００Ｘから受信したコスト情報と、コスト情報に対応する自身の状態とを比較することで、結合基点および結合実施点を決定する。
【００３８】
結合基点のデータベースシステム（第１のデータベースシステム）は、データベースシステムＸおよびデータベースシステムＹのうち、ハッシュ表を相手側のデータベースシステムに送信する送信側装置として機能するデータベースシステムである。結合実施点のデータベースシステム（第２のデータベースシステム）は、データベースシステムＸおよびデータベースシステムＹのうち、相手側のデータベースシステムにより送信されたハッシュ結果におけるハッシュ値と自身が作成したハッシュ表におけるハッシュ値とを照合することで、照合結果を生成する照合側装置として機能するデータベースシステムである。
【００３９】
結合処理切替部３２２Ｙは、コスト情報としてハッシュ表のサイズを受信した場合において、受信したハッシュ値のサイズが、ハッシュ表作成部３３０Ｙが作成済みのハッシュ表のサイズより大きい場合には、データベースシステムＸを結合実施点と決定し、データベースシステムＹを結合基点と決定する。結合処理切替部３２２Ｙは、受信したハッシュ値のサイズが、ハッシュ表作成部３３０Ｙが作成済みのハッシュ表のサイズ以下である場合には、データベースシステムＹを結合実施点と決定し、データベースシステムＸを結合基点と決定する。ハッシュ値のサイズは、例えば、行数である。
【００４０】
結合処理切替部３２２Ｙは、コスト情報として処理負荷を受信した場合において、受信した処理負荷が、データベースシステムＹの処理負荷より高い場合には、データベースシステムＸを結合実施と決定し、データベースシステムＹを結合基点と決定する。結合処理切替部３２２Ｙは、受信した処理負荷が、データベースシステムＹの処理負荷と同じまたは低いである場合には、データベースシステムＹを結合実施点と決定し、データベースシステムＸを結合基点と決定する。処理負荷は、例えば、ＣＰＵの使用率である。
【００４１】
結合処理切替部３２２Ｙは、コスト情報として処理負荷を受信した場合において、受信した性能が、データベースシステムＹの性能より高い場合には、データベースシステムＸを結合実施点と決定し、自身を結合基点と決定する。結合処理切替部３２２Ｙは、受信した性能が、データベースシステムＹの性能と同じまたは低いである場合には、自身を結合実施点と決定し、データベースシステムＸを結合基点と決定する。
【００４２】
結合処理切替部３２２Ｙは、コスト情報として、ハッシュ値のサイズと、データベースシステムＸにおける処理負荷、およびデータベースシステムＸの性能を受信した場合において、ハッシュ値のサイズが小さく且つ処理負荷および性能に基づく計算能力が低い場合、またはハッシュ値のサイズが大きく且つ処理負荷および性能に基づく計算能力が高い場合、通信負荷またはＣＰＵ負荷に基づいて結合基点および結合実施点を決定する。結合処理切替部３２２Ｙは、通信負荷が重視される場合、ハッシュ値のサイズの小さい一方のデータベースシステムを結合基点と決定し、他方のデータベースシステムを結合実施点と決定する。結合処理切替部３２２Ｙは、ＣＰＵ負荷が重視される場合、計算能力が高い一方のデータベースシステムを結合実施点と決定し、他方のデータベースシステムを結合基点と決定する。また、結合処理切替部３２２Ｙは、ハッシュ値のサイズが小さく且つ計算能力が高い一方のデータベースシステムを結合基点と決定し、他方のデータベースシステムを結合実施点と決定してよい。さらに、結合処理切替部３２２Ｙは、ハッシュ値のサイズが大きく且つ計算能力が低い一方のデータベースシステムを結合実施点と決定し、他方のデータベースシステムを結合基点と決定してよい。
【００４３】
更に、結合処理切替部３２２Ｙは、予め設定されたルールに基づいて結合基点および結合実施点を決定してよい。結合処理切替部３２２Ｙは、ハッシュ表を先に完成させた一方のデータベースシステムを結合実施点と決定し、他方のデータベースシステムを結合基点と決定してよい。この場合、ハッシュ表作成部３３０Ｘおよびハッシュ表作成部３３０Ｙは、ハッシュ表を完成させたタイミングで、相手のデータベースシステムに通知を行う。これにより、結合処理切替部３２２Ｙは、ハッシュ表を先に完成させたデータベースシステムの計算能力が高いと見なして、結合基点および結合実施点を決定できる。また、結合処理切替部３２２Ｙは、ハッシュ表を先に完成させた一方のデータベースシステムを結合基点と決定し、他方のデータベースシステムを結合実施点と決定してよい。これにより、結合処理切替部３２２Ｙは、ハッシュ表を先に完成させたデータベースシステムにおけるハッシュ値のサイズが小さいと見なして、結合基点および結合実施点を決定できる。
【００４４】
データベースシステム側計画実行部３２０Ｙは、結合処理切替部３２２Ｙの判断結果をデータベースシステムＸに送信する。結合処理切替部３２２Ｘは、結合処理切替部３２２Ｙの判断結果に基づいて、データベースシステムＸを結合基点または結合実施点に切り替える。
【００４５】
次に、データベースシステム１は、データベースシステムＸおよびデータベースシステムＹのうちの他方でハッシュ表が完成したか否かを判定する（ステップＳ１１０）。次に、データベースシステム１は、データベースシステムＸおよびデータベースシステムＹのうちの他方でハッシュ表が完成したタイミングで、結合実施点のデータベースシステムでハッシュ値同士を照合して、結合結果を生成する（ステップＳ１１２）。
【００４６】
次に、データベース統合サーバ２００は、結合結果に基づいて最終結果を生成して、データベース用アプリケーション１１０に返信する（ステップＳ１１４）。
【００４７】
図７は、データベースシステムＸが結合基点、データベースシステムＹが結合実施点に決定された場合において、ハッシュ値を照合する処理の概要を示す図である。システム連携装置３００Ｘは、rowidXおよびハッシュ値を含むハッシュ表をシステム連携装置３００Ｙに送信する。システム連携装置３００Ｙは、ハッシュ表を受信した場合、ハッシュ表作成部３３０Ｙにおけるハッシュ表の作成処理を中断する。次に、システム連携装置３００Ｙは、ハッシュ表を生成して、生成したハッシュ表におけるハッシュ値と受信したハッシュ結果におけるハッシュ値とを照合する。なお、システム連携装置３００Ｙは、ハッシュ表を再計算することなく、作成途中のハッシュ表をそのままハッシュ結果として使用することができる。
【００４８】
図８は、データベースシステムＸが結合基点、データベースシステムＹが結合実施点に決定された場合において、結合結果を送信する処理の概要を示す図である。システム連携装置３００Ｙは、照合結果に基づいて、一致したハッシュ値に対応付けられたrowidXとrowidYのペア（結合結果）、および当該rowidYのレコードＹを、第１中間結果としてデータベース統合サーバ２００に送信する。また、システム連携装置３００Ｙは、受信したrowidXのうち、一致したハッシュ値に対応付けられたrowidX#をデータベースシステムＸに送信する。
【００４９】
図９は、データベースシステムＸが結合基点、データベースシステムＹが結合実施点に決定された場合において、最終結果を生成する処理の概要を示す図である。システム連携装置３００Ｘは、rowidX#を受信した場合、当該rowidX#に対応するrowidXとレコードＸとを第２中間結果としてデータベース統合サーバ２００に送信する。サーバ側計画実行部２２０は、結合結果に基づいて、第１中間結果に含まれるレコードＹと、第２中間結果に含まれるレコードＸとを比較する。サーバ側計画実行部２２０は、比較結果に基づいて、最終結果を生成する。サーバ側計画実行部２２０は、生成した最終結果をデータベース用アプリケーション１１０に送信する。
【００５０】
図１０は、データベースシステムＸが結合実施点、データベースシステムＹが結合基点に決定された場合において、ハッシュ値を照合する処理の概要を示す図である。システム連携装置３００Ｙは、ハッシュ表の作成を中断し、変換済のハッシュ値およびrowidYを含む情報をシステム連携装置３００Ｘに送信する。また、システム連携装置３００Ｙは、データをハッシュ値に変換する度に、ハッシュ値およびrowidYをシステム連携装置３００Ｘに送信する。なお、システム連携装置３００Ｙは、ハッシュ表を再計算することなく、作成途中のハッシュ表をそのままハッシュ結果として使用することができる。システム連携装置３００Ｙは、ハッシュ表の作成を中断せず、ハッシュ表の作成と情報の送信とを並列して処理してもよい。また、システム連携装置３００Ｙは、ハッシュ値を都度送信せずに、纏めて送信してもよい。
【００５１】
システム連携装置３００Ｘは、ハッシュ値およびrowidYを受信した場合、既に作成したハッシュ表におけるハッシュ値と、受信したハッシュ値とを照合することで結合結果を生成する。また、システム連携装置３００Ｘは、システム連携装置３００Ｙからハッシュ値およびrowidYを受信する度に、一致したハッシュ値のrowidのペアを結合結果に追加する。
【００５２】
図１１は、データベースシステムＸが結実施基点、データベースシステムＹが結合基点に決定された場合において、結合結果を送信する処理の概要を示す図である。システム連携装置３００Ｘは、照合結果に基づいて、一致したハッシュ値に対応付けられたrowidXとrowidYのペア（結合結果）、および当該rowidXのレコードＸを、第１中間結果としてデータベース統合サーバ２００に送信する。また、システム連携装置３００Ｘは、受信したrowidYのうち、一致したハッシュ値に対応付けられたrowidY#をデータベースシステムＹに送信する。
【００５３】
図１２は、データベースシステムＸが結合実施点、データベースシステムＹが結合基点に決定された場合において、最終結果を生成する処理の概要を示す図である。システム連携装置３００Ｙは、rowidY#を受信した場合、当該rowidY#に対応するrowidYとレコードＹとを第２中間結果としてデータベース統合サーバ２００に送信する。サーバ側計画実行部２２０は、結合結果に基づいて、第１中間結果に含まれるレコードＸと、第２中間結果に含まれるレコードＹとを比較する。サーバ側計画実行部２２０は、比較結果に基づいて、最終結果を生成する。サーバ側計画実行部２２０は、生成した最終結果をデータベース用アプリケーション１１０に送信する。
【００５４】
以下、データベース統合サーバ２００、およびデータベースシステムにおける内部処理について説明する。図１３は、実施形態のデータベース統合サーバ２００における内部処理の流れの一例を示すフローチャートである。なお、図１３に示したフローチャートの処理は、例えば、データベース統合サーバ２００において所定時間毎に繰り返して実行される。
【００５５】
まず、データベース統合サーバ２００は、ユーザ端末１００からクエリを受け付けたか否かを判定する（ステップＳ２００）。データベース統合サーバ２００は、クエリを受け付けた場合、実行計画を作成し、各データベースシステムに問い合わせを行う（ステップＳ２０２）。なお、データベース統合サーバ２００は、クエリを受け付けていない場合、本フローチャートの処理を終了する。
【００５６】
次に、データベース統合サーバ２００は、結合実施点のデータベースシステムから第１中間結果を受信する（ステップＳ２０４）。次に、データベース統合サーバ２００は、結合基点のデータベースシステムから第２中間結果を受信する（ステップＳ２０６）。次に、データベース統合サーバ２００は、結合結果におけるいずれかの行を指定するカーソルＡを作成し、カーソルＡを初期化する（ステップＳ２０８）。結合結果における各行には、rowidのペアが１つ含まれる。カーソルＡを初期化することで、カーソルＡは結合結果の先頭の行を指す。
【００５７】
次に、データベース統合サーバ２００は、カーソルＡが末尾であるか否かを判定する（ステップＳ２１０）。データベース統合サーバ２００は、カーソルＡが末尾ではない場合、カーソルＡが指すrowidのペアに対応する第１中間結果のレコードと第２中間結果のレコードとを比較し（ステップＳ２１２）、レコードが一致したか否かを判定する（ステップＳ２１４）。データベース統合サーバ２００は、第１中間結果のレコードと第２中間結果のレコードとが一致した場合、第１中間結果のレコードと第２中間結果のレコードとのペアを最終結果として記録する（ステップＳ２１６）。次に、データベース統合サーバ２００は、カーソルＡを一つ移動して（ステップＳ２１８）、処理をステップＳ２１０に戻す。
【００５８】
データベース統合サーバ２００は、第１中間結果のレコードと第２中間結果のレコードとが一致しない場合、第１中間結果のレコードと第２中間結果のレコードを最終結果として記録しない。これにより、データベース統合サーバ２００は、ハッシュ衝突により一致したハッシュ値を計算した元となったレコードが最終結果に含まれることを回避する。
【００５９】
データベース統合サーバ２００は、カーソルＡの値が末尾である場合、最終結果をデータベース用アプリケーション１１０に送信する（ステップＳ２２０）。
【００６０】
図１４は、実施形態のシステム連携装置における内部処理の流れの一例を示すフローチャートである。図１４に示したフローチャートの処理は、例えば、データベース統合サーバにおいて所定時間毎に繰り返して実行される。なお、上述した実施形態は、複数のデータベースシステムＸおよびＹにおけるシステム連携装置３００Ｘとシステム連携装置３００Ｙとを分けて説明したが、以下におけるシステム連携装置３００の処理の説明はシステム連携装置３００Ｘとシステム連携装置３００Ｙとで共通する処理を説明するので、システム連携装置３００Ｘおよびシステム連携装置３００Ｙを総称して「システム連携装置３００」と記載する。
【００６１】
まず、システム連携装置３００は、データベース統合サーバ２００から問い合わせを受信し（ステップＳ３００）、問い合わせに基づいて結合対象列（データ）を取得する（ステップＳ３０１）。このとき、システム連携装置３００は、結合対象列に対応付けられたrowidも取得する。次にシステム連携装置３００は、取得した結合対象列に対するカーソルＢを作成して初期化する（ステップＳ３０２）。システム連携装置３００は、カーソルＢが末尾であるか否かを判定する（ステップＳ２１０）。
【００６２】
システム連携装置３００は、カーソルＢが末尾ではない場合、カーソルＢが指すデータからハッシュ値を計算し（ステップＳ３０６）、ハッシュ表に追加する（ステップＳ３０８）。次にシステム連携装置３００は、カーソルＢを一つ移動する（ステップＳ３１０）。次にシステム連携装置３００は、相手のデータベースシステムからコスト情報を受信したか否かを判定する（ステップＳ３１２）。
【００６３】
システム連携装置３００は、相手のデータベースシステムからコスト情報を受信していない場合、ステップＳ３０４に処理を戻す。システム連携装置３００は、カーソルＢが末尾である場合、コスト情報を相手のデータベースシステムに送信する（ステップＳ３１４）。その後、システム連携装置３００は、相手のデータベースシステムにより送信された判断結果を受信する（ステップＳ３１６）。その後、システム連携装置３００は、図１５に示すフローチャートの処理に移行する。
【００６４】
システム連携装置３００は、相手のデータベースシステムからコスト情報を受信した場合、結合基点および結合実施点を決定し（ステップＳ３１８）、判断結果を相手のデータベースシステムに送信する（ステップＳ３２０）。その後、システム連携装置３００は、図１６に示すフローチャートの処理に移行する。
【００６５】
図１５は、相手のデータベースシステムよりも先にハッシュ表の作成が完了したデータベースシステムにおけるシステム連携装置３００の処理の流れの一例を示すフローチャートである。まず、システム連携装置３００は、受信した判断結果に基づいて、自身が結合基点か否かを判定する（ステップＳ４０２）。システム連携装置３００は、自身が結合基点である場合、ハッシュ表を相手のデータベースシステムに送信する（ステップＳ４０４）。その後、システム連携装置３００は、相手のデータベースシステムから自身のrowid#を受信する（ステップＳ４０６）。rowid#は、自身のデータベースに格納されたデータのうち、相手のデータベースシステムにおけるデータベースに格納されたデータと一致したデータに対応するrowidである。次にシステム連携装置３００は、rowid#に基づいてレコードを抽出することで第２中間結果を作成して、データベース統合サーバ２００に送信する（ステップＳ４０８）。
【００６６】
システム連携装置３００は、自身が結合実施点である場合、ハッシュ表の受信が完了したか否かを判定する（ステップＳ４１０）。システム連携装置３００は、ハッシュ表の受信が完了していない場合、相手のデータベースシステムにより都度送信されたハッシュ表を受信し、受信したハッシュ表に対してカーソルＣを作成する（ステップＳ４１２）。次にシステム連携装置３００は、カーソルＣが末尾であるか否かを判定する（ステップＳ２１０）。
【００６７】
システム連携装置３００は、カーソルＣが末尾である場合、処理をステップＳ４１０に戻す。システム連携装置３００は、カーソルＣが末尾ではない場合、カーソルＣが指すハッシュ値を、自身のハッシュ表作成部が作成したハッシュ表から探索する（ステップＳ４１６）。システム連携装置３００は、ハッシュ値が一致したか否かを判定する（ステップＳ４１８）。システム連携装置３００は、ハッシュ値が一致した場合、rowidのペア、および自身のrowidに対応するレコードを、記憶部（不図示）に記録する（ステップＳ４２０）。次にシステム連携装置３００は、カーソルＣを一つ移動して（ステップＳ４２２）、処理をステップＳ４１４に戻す。
【００６８】
システム連携装置３００は、ハッシュ表の受信が完了した場合、一致したハッシュ値に対応する相手のデータベースシステムのrowid#を、相手のデータベースシステムに送信する（ステップＳ４２４）。次にシステム連携装置３００は、一致したハッシュ値のrowidのペア（結合結果）、および自身のレコードを含む第１中間結果をデータベース統合サーバ２００に送信する（ステップＳ４２６）。これにより、先にハッシュ表の作成が完了したデータベースシステムにおけるシステム連携装置３００の処理は終了する。
【００６９】
図１６は、相手のデータベースシステムからコスト情報を受信したデータベースシステムにおけるシステム連携装置３００の処理の流れの一例を示すフローチャートである。まず、システム連携装置３００は、判断結果に基づいて、自身が結合基点か否かを判定する（ステップＳ５００）。システム連携装置３００は、自身が結合基点ではない場合、図１７の処理に移行する。システム連携装置３００は、自身が結合基点である場合、作成途中のハッシュ表を用いて、ハッシュ値およびrowidを相手のデータベースシステムに送信する（ステップＳ５０２）。
【００７０】
次にシステム連携装置３００は、結合対象列に対するカーソルＢが末尾であるか否かを判定する（ステップＳ５０４）。システム連携装置３００は、カーソルＢが末尾ではない場合、カーソルＢが指す行のハッシュ値を計算し、ハッシュ結果を生成する（ステップＳ５０６）。次にシステム連携装置３００は、生成したハッシュ結果を相手のデータベースシステムに送信し（ステップＳ５０８）、カーソルＢを一つ移動させて（ステップＳ５１０）、処理をステップＳ５０４に戻す。
【００７１】
システム連携装置３００は、カーソルＢが末尾である場合、相手のデータベースシステムからrowid#を受信し（ステップＳ５１２）、第２中間結果をデータベース統合サーバ２００に送信する（ステップＳ５１４）。これにより、相手のデータベースシステムからコスト情報を受信した結合基点のデータベースシステムにおけるシステム連携装置３００の処理は終了する。
【００７２】
図１７は、相手のデータベースシステムからコスト情報を受信したデータベースシステムにおけるシステム連携装置３００の処理の流れの他の一例を示すフローチャートである。システム連携装置３００は、判断結果により自身が結合実施点であると判定し（ステップＳ６００）、相手のデータベースシステムからハッシュ表を受信する（ステップＳ６０２）。次にシステム連携装置３００は、作成途中のハッシュ表に対するカーソルＣを作成し、カーソルＣを初期化する（ステップＳ６０４）。
【００７３】
次にシステム連携装置３００は、カーソルＣは末尾であるか否かを判定する（ステップＳ６０６）。システム連携装置３００は、カーソルＣが末尾ではない場合、カーソルＣが指す行のハッシュ値を、受信したハッシュ表から探索する（ステップＳ６０８）。システム連携装置３００は、ハッシュ値が一致したか否かを判定する（ステップＳ６１０）。システム連携装置３００は、ハッシュ値が一致した場合、結合結果（rowidのペア）、および自身のrowidに対応するレコードを、第１中間結果に追加する。（ステップＳ６１２）。次にシステム連携装置３００は、カーソルＣを一つ移動して（ステップＳ６１４）、処理をステップＳ６０６に戻す。これにより、システム連携装置３００は、既にハッシュ値が計算済の行に対してハッシュ値を結合する処理を行う。
【００７４】
システム連携装置３００は、カーソルＣが末尾である場合、カーソルＢが末尾であるか否かを判定する（ステップＳ６１６）。システム連携装置３００は、カーソルＢが末尾ではない場合、カーソルＢが指す行のハッシュ値を計算し（ステップＳ６１８）、計算したハッシュ値を、受信したハッシュ表から探索する（ステップＳ６２０）。次にシステム連携装置３００は、ハッシュ値が一致したか否かを判定する（ステップＳ６２２）。システム連携装置３００は、ハッシュ値が一致した場合、結合結果（rowidのペア）、および自身のrowidに対応するレコードを、第１中間結果に追加する。（ステップＳ６２４）。次にシステム連携装置３００は、カーソルＢを一つ移動して（ステップＳ６２６）、処理をステップＳ６１６に戻す。これにより、システム連携装置３００は、ハッシュ値が未計算の行に対してハッシュ値を結合する処理を行う。
【００７５】
システム連携装置３００は、カーソルＢが末尾である場合、一致したハッシュ値に対応する相手のデータベースシステムのrowid#を、相手のデータベースシステムに送信する（ステップＳ６２８）。次にシステム連携装置３００は、一致したハッシュ値のrowidのペア（結合結果）、および自身のレコードを含む第１中間結果をデータベース統合サーバ２００に送信する（ステップＳ６３０）。これにより、相手のデータベースシステムからコスト情報を受信した結合実施点のデータベースシステムにおけるシステム連携装置３００の処理は終了する。
【００７６】
以下、実施例について説明する。データベース統合サーバ２００は、下記のSELECT文のクエリを受信したものとする。
SELECT VALUE_X, VALUE_Y FROM X, Y WHERE X.dataID=Y.dataID
このSELECT文は、データベース５００Ｘに含まれるテーブルＸに格納されたデータＩＤと、データベース５００Ｙに含まれるテーブルＹに格納されたデータＩＤとが同じという条件を満たすバリューＸとバリューＹとを結合した結果を要求する情報である。例えば、データＩＤは氏名であり、バリューＸは会社住所であり、バリューＹは自宅住所である。
【００７７】
図１８は、データベースからデータを抽出したデータからハッシュ値する処理の実施例を示す図である。データベース統合サーバ２００は、データベースシステムＸおよびデータベースシステムＹにクエリに基づく問い合わせを行うことで、データベースシステムＸおよびデータベースシステムＹにハッシュ値の計算を開始させる。データベースシステムＸは、図１８の左図に示すように、データベース統合サーバ２００が受け付けたクエリに基づく問い合わせに応じて、データベース５００Ｘからテーブル５０２Ｘを抽出する。データベースシステムＸは、データＩＤからハッシュ値を３行分計算し、計算したハッシュ値にrowidXを対応付けたハッシュ表３３２Ｘを作成する。同様に、データベースシステムＹは、図１８の右図に示すように、データベース統合サーバ２００が受け付けたクエリに基づく問い合わせに応じて、データベース５００Ｙからテーブル５０２Ｙを抽出する。データベースシステムＹは、データＩＤからハッシュ値を４行分計算し、計算したハッシュ値にrowidYを対応付けたハッシュ表３３２Ｙを作成する。
【００７８】
図１９は、結合基点および結合実施点を決定する処理の実施例を示す図である。データベースシステムＸは、３行分のハッシュ値を計算することでテーブルＸについてのハッシュ値の計算を完了し、「３行」のハッシュ表サイズを表すコスト情報をデータベースシステムＹに送信する。データベースシステムＹは、コスト情報を受信した時点における計算済の行数が４行であるので、ハッシュ表のサイズが小さいデータベースシステムＸを結合基点、データベースシステムＹを結合実施点と決定する。データベースシステムＹは、判断結果として「データベースシステムＸが結合基点」という情報をデータベースシステムＸに送信する。
【００７９】
図２０は、結合基点および結合実施点を決定する処理の実施例を示す図である。データベースシステムＸは、判断結果を受信したことに応じて、データベースシステムＹにハッシュ表３３２Ｘを転送する。
【００８０】
図２１および図２２は、ハッシュ値を照合する処理の実施例を示す図である。データベースシステムＹは、作成途中のハッシュ表３３２Ｙをハッシュ結果３３２Ｙ＃とみなしてハッシュ値の照合を開始する。データベースシステムＹは、図２１に示すように、ハッシュ表３３２Ｘに含まれるハッシュ値と、ハッシュ結果３３２Ｙ＃に含まれるハッシュ値とを照合し、一致したハッシュ値に対応付けられたrowidXとrowidYのペアを結合結果３２４に追加する。データベースシステムＹは、図２２に示すように、ハッシュ値が計算されていないデータＩＤからハッシュ値を計算して、計算したハッシュ値がハッシュ表３３２Ｘに含まれるハッシュ値と一致しているか否かを判定する。データベースシステムＹは、データＩＤが「０６」のハッシュ値がハッシュ表３３２Ｘの「６」のハッシュ値と一致したことを判定し、rowidX「３」とrowidY「６」のペアを結合結果３２４＃に追加する。
【００８１】
図２３は、中間結果および最終結果を生成する処理の実施例を示す図である。データベースシステムＹは、結合結果３２４＃の作成を完了したことに応じて、結合結果３２８−１ａおよびレコード３２８−１ｂを含む第１中間結果３２８−１をデータベース統合サーバ２００に送信する宇。また、データベースシステムＹは、rowidX#をデータベースシステムＸに送信する。データベースシステムＸは、受信した一連のrowidXの情報３２６を受信する。データベースシステムＸは、rowidX#を受信したことに応じて、rowidX#に対応するrowidXとレコードとを含む第２中間結果３２８−２をデータベース統合サーバ２００に送信する。
【００８２】
データベース統合サーバ２００は、結合結果３２８−１ａを参照し、ペアになっているrowidXとrowidYに対応するデータＩＤを、レコード３２８−１ｂおよび第２中間結果３２８−２からそれぞれ抽出して、抽出したデータＩＤ同士を照合する。データベース統合サーバ２００は、データＩＤが一致した場合、データＩＤに対応するバリューＸおよびバリューＹをペアにして最終結果２２２に追加する。データベース統合サーバ２００は、結合結果３２８−１ａに含まれる全てのペアについて照合を行ったことに応じて、最終結果２２２をデータベース用アプリケーション１１０に送信する。
【００８３】
以上説明した実施形態のデータベースシステム１は、データベース用アプリケーション１１０からクエリを受け付けた場合に、データベース統合サーバ２００から複数のデータベースシステムに問い合わせを行うので、問い合わせを受け付けたデータベースシステムにおいて結合対象のデータからハッシュ値を計算する処理を開始することができる。すなわち、問い合わせを受け付けた複数のデータサーバは、それぞれ、抽出したデータをハッシュ値に変換する処理を非同期で、並行して行う。これにより、データベースシステム１によれば、異なるデータベースシステム間におけるデータ同士の結合処理をより高速に実行することができる。
【００８４】
データベースシステム１によれば、問い合わせを受け付けた複数のデータベースシステムからデータベース統合サーバ２００に転送するデータを、ハッシュ値が一致したデータに限定することができるので、データの転送する負荷を抑制することができる。さらに、データベースシステム１によれば、問い合わせを受け付けた複数のデータベースシステム間でハッシュ値を送受信するので、データの転送量を抑制することができる。
【００８５】
データベースシステム１によれば、データベース統合サーバ２００が処理することなしに、問い合わせを受け付けた複数のデータベースシステムを、結合基点と結合実施点との間で動的に切り替えることができる。すなわち、データベースシステム１によれば、予めデータベース統合サーバ２００により複数のデータベースシステムにおいて記録されたテーブルのサイズなどを認識していなくても、結合基点および結合実施点を設定することができる。
【００８６】
データベースシステム１によれば、ハッシュ表サイズが大きいデータベースシステムを結合実施点に切り替えることで、データベースシステム間のデータ転送量を抑制することができる。また、データベースシステム１によれば、計算能力が高いデータベースシステムを結合実施点に切り替えることでハッシュ値の照合処理をより短時間で完了することができる。さらに、データベースシステム１によれば、通信負荷またはＣＰＵ負荷のいずれかを重視するかによって、データベースシステムを結合基点にするか結合実施点にするかを切り替えることができる。さらに、データベースシステム１によれば、予め設定されたルールに基づいてデータベースシステムを結合基点にするか結合実施点にするかを切り替えることができ、結合基点にするか結合実施点にするかを決定する調停に要する処理および時間を抑制することができる。
【００８７】
以上説明した少なくともひとつの実施形態によれば、複数のデータベースシステム（Ｘ，Ｙを含む。）と、ユーザ端末１００から複数のデータを結合する要求を受け付けた場合に、要求に基づいて、複数のデータベースシステムの一部または全部である複数のデータベースシステムＸ，Ｙに問い合わせを行うデータベース統合サーバ２００と、を持ち、データベース統合サーバ２００から問い合わせを受け付けたデータベースシステムＸ，Ｙのそれぞれは、受け付けた問い合わせに基づいてデータベース５００Ｘ、５００Ｙからデータを抽出し、抽出したデータをハッシュ値に変換し、データベース統合サーバ２００から問い合わせを受け付けたデータベースシステムＸ，Ｙのうち第１のデータベースシステムは、変換したハッシュ値を、データベース統合サーバ２００から問い合わせを受け付けたデータベースシステムＸ，Ｙのうち第２のデータベースシステムに送信し、第２のデータベースシステムは、第１のデータベースシステムから受信したハッシュ値と、自身が変換したハッシュ値とを照合し、照合結果、および一致したハッシュ値の元となったデータをデータベース統合サーバ２００に送信すると共に、第１のデータベースシステムから受信したハッシュ値のうち、一致したハッシュ値に対応する情報を第１のデータベースシステムに送信し、第１のデータベースシステムは、第２のデータベースシステムから受信した、一致したハッシュ値に対応する情報に基づいて、一致したハッシュ値の元となったデータをデータベース統合サーバ２００に送信し、データベース統合サーバ２００は、照合結果に基づいて、第１のデータベースシステムおよび第２のデータベースシステムからそれぞれ受信したデータ同士を結合することにより、クライアントから受け付けたクエリに応じて第１および第２のデータベースシステムＸ，Ｙにおいてハッシュ値を計算する処理を開始することができる。これにより、少なくともひとつの実施形態によれば、異なるデータベースシステム間におけるデータ同士の結合処理を、より高速に実行することができる。
【００８８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【００８９】
上述した実施形態は、２つのデータベースシステムＸ，Ｙにおけるデータベースから抽出したデータ同士を結合することを説明したが、これに限定されず、２より多いデータベースシステムから抽出したデータ同士を結合してよい。３以上のデータを結合する場合、まず、２つのデータベースシステムから抽出したデータ同士を結合し、次に、他のデータベースシステムから抽出したデータ同士を結合する。
【符号の説明】
【００９０】
１…データベースシステム、１００…ユーザ端末、１１０…データベース用アプリケーション、２００…データベース統合サーバ、２１０…計画生成部、２２０…サーバ側計画実行部、２３０…サーバ側通信部、３００…システム連携装置、３００Ｘ、３００Ｙ…システム連携装置、３１０Ｘ、３１０Ｙ…データベースシステム側通信部、３２０Ｘ、３２０Ｙ…データベースシステム側計画実行部、３２２Ｘ、３２２Ｙ…結合処理切替部、３３０Ｘ、３３０Ｙ…ハッシュ表作成部、４００Ｘ、４００Ｙ…データベース管理装置、５００Ｘ、５００Ｙ…データベース
【図１】
2018010424.tif 000003
【図２】
2018010424.tif 000004
【図３】
2018010424.tif 000005
【図４】
2018010424.tif 000006
【図５】
2018010424.tif 000007
【図６】
2018010424.tif 000008
【図７】
2018010424.tif 000009
【図８】
2018010424.tif 000010
【図９】
2018010424.tif 000011
【図１０】
2018010424.tif 000012
【図１１】
2018010424.tif 000013
【図１２】
2018010424.tif 000014
【図１３】
2018010424.tif 000015
【図１４】
2018010424.tif 000016
【図１５】
2018010424.tif 000017
【図１６】
2018010424.tif 000018
【図１７】
2018010424.tif 000019
【図１８】
2018010424.tif 000020
【図１９】
2018010424.tif 000021
【図２０】
2018010424.tif 000022
【図２１】
2018010424.tif 000023
【図２２】
2018010424.tif 000024
【図２３】
2018010424.tif 000025
【手続補正書】
【提出日】平成29年7月26日(2017.7.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データベースを管理する複数のデータベースシステムと、
クライアントから複数のデータを結合する要求を受け付けた場合に、前記要求に基づいて、前記複数のデータベースシステムの一部または全部である二つのデータベースシステムに問い合わせを行う統合サーバと、を備え、
前記統合サーバから問い合わせを受け付けた二つのデータベースシステムのそれぞれは、前記受け付けた問い合わせに基づいて前記データベースからデータを抽出し、抽出したデータをハッシュ値に変換し、
前記統合サーバから問い合わせを受け付けた二つのデータベースシステムのそれぞれは、前記抽出したデータをハッシュ値に変換する処理が完了したタイミングで、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに変換完了通知を送信し、
前記変換完了通知を受信したデータベースシステムは、前記変換完了通知を受け付けたタイミングに基づいて、自身が第１のデータベースシステムとして動作するか、第２のデータベースシステムとして動作するかを決定し、決定した情報を、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに送信し、
前記第１のデータベースシステムは、前記変換したハッシュ値を、前記統合サーバから問い合わせを受け付けたデータベースシステムのうち第２のデータベースシステムに送信し、
前記第２のデータベースシステムは、前記第１のデータベースシステムから受信したハッシュ値と、自身が変換したハッシュ値とを照合し、照合結果、および一致したハッシュ値の元となったデータを前記統合サーバに送信すると共に、前記第１のデータベースシステムから受信したハッシュ値のうち、一致したハッシュ値に対応する情報を前記第１のデータベースシステムに送信し、
前記第１のデータベースシステムは、前記第２のデータベースシステムから受信した前記一致したハッシュ値に対応する情報に基づいて、一致したハッシュ値の元となったデータを前記統合サーバに送信し、
前記統合サーバは、前記照合結果に基づいて、前記前記第１のデータベースシステムおよび前記第２のデータベースシステムからそれぞれ受信したデータ同士を結合する、
データベースシステム。
【請求項２】
前記第１および第２のデータベースシステムは、それぞれ、前記抽出したデータをハッシュ値に変換する処理を非同期で行う、
請求項１に記載のデータベースシステム。
【請求項３】
前記統合サーバから問い合わせを受け付けたデータベースシステムのそれぞれは、前記抽出したデータをハッシュ値に変換する処理が完了した場合に、前記統合サーバから受け付けた問い合わせに基づいて抽出したデータのデータ量に基づく情報を、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに送信し、
前記統合サーバから問い合わせを受け付けた他のデータベースシステムは、更に、前記データ量に基づく情報と、自身で抽出したデータ量に基づく情報とを比較し、比較結果に基づいて、自身が前記第１のデータベースシステムとして動作するか、前記第２のデータベースシステムとして動作するかを決定する、
請求項１または２に記載のデータベースシステム。
【請求項４】
前記統合サーバから問い合わせを受け付けたデータベースシステムのそれぞれは、前記抽出したデータをハッシュ値に変換する処理が完了した場合に、自装置の能力を表す情報を、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに送信し、
前記統合サーバから問い合わせを受け付けた他のデータベースシステムは、更に、受信した前記能力を表す情報と、自装置における能力とを比較し、比較結果に基づいて、自身が前記第１のデータベースシステムとして動作するか、前記第２のデータベースシステムとして動作するかを決定する、
請求項１または２に記載のデータベースシステム。
【請求項５】
統合サーバが、クライアントから複数のデータを結合する要求を受け付け、
前記統合サーバが、前記要求に基づいて前記複数のデータベースシステムの一部または全部である二つのデータベースシステムに問い合わせを行い、
前記統合サーバから問い合わせを受け付けた二つのデータベースシステムのそれぞれが、受け付けた問い合わせに基づいてデータベースからデータを抽出し、抽出したデータをハッシュ値に変換し、
前記統合サーバから問い合わせを受け付けた二つのデータベースシステムのそれぞれが、前記抽出したデータをハッシュ値に変換する処理が完了したタイミングで、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに変換完了通知を送信し、
前記変換完了通知を受信したデータベースシステムが、前記変換完了通知を受け付けたタイミングに基づいて、自身が第１のデータベースシステムとして動作するか、第２のデータベースシステムとして動作するかを決定し、決定した情報を、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに送信し、
前記第１のデータベースシステムが、変換したハッシュ値を、前記統合サーバから問い合わせを受け付けたデータベースシステムのうち第２のデータベースシステムに送信し、
前記第２のデータベースシステムが、前記第１のデータベースシステムから受信したハッシュ値と、自身が変換したハッシュ値とを照合し、照合結果、および一致したハッシュ値の元となったデータを前記統合サーバに送信すると共に、前記第１のデータベースシステムから受信したハッシュ値のうち、一致したハッシュ値に対応する情報を前記第１のデータベースシステムに送信し、
前記第１のデータベースシステムが、前記第２のデータベースシステムから受信した前記一致したハッシュ値に対応する情報に基づいて、一致したハッシュ値の元となったデータを前記統合サーバに送信し、
前記統合サーバが、前記照合結果に基づいて、前記第１のデータベースシステムおよび前記第２のデータベースシステムからそれぞれ受信したデータ同士を結合する、
データ結合方法。
【請求項６】
データベースと、
データを結合する統合サーバ、および自装置とは異なる他のデータベースシステムと通信を行う通信部と、
前記通信部を用いて、前記統合サーバから、複数のデータを結合する要求に基づく問い合わせを受け付ける受付部と、
受け付けた問い合わせに基づいて前記データベースからデータを抽出する抽出部と、
前記抽出部により抽出されたデータをハッシュ値に変換し、前記抽出されたデータをハッシュ値に変換する処理が完了したタイミングで、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに変換完了通知を送信する変換部と、
前記通信部を用いて、前記統合サーバから問い合わせを受け付けた他のデータベースシステムから前記変換完了通知を受け付けたタイミングに基づいて、自装置が変換したハッシュ値を前記統合サーバから問い合わせを受け付けた他のデータベースシステムに送信する基点側装置と、前記統合サーバから問い合わせを受け付けた他のデータベースシステムが変換したハッシュ値と自装置が変換したハッシュ値とを照合する実施側装置との間で切り替える切替部と、
前記切替部により実施側装置に切り替えられた場合に、前記通信部を用いて基点側装置のデータベースシステムからハッシュ値を受信し、前記変換部により変換されたハッシュ値と受信したハッシュ値とを照合し、照合結果、および一致したハッシュ値の元となったデータを前記統合サーバに送信すると共に、受信したハッシュ値のうち、一致したハッシュ値に対応する情報を前記基点側装置のデータベースシステムに送信し、
前記切替部により基点側装置に切り替えられた場合に、前記変換部により変換されたハッシュ値を、前記通信部を用いて前記実施側装置のデータベースシステムに送信し、前記実施側装置のデータベースシステムから受信した、一致したハッシュ値に対応する情報に基づいて前記抽出部により抽出されたデータを、前記通信部を用いて前記統合サーバに送信する、実行部と、
を備える、データベースシステム。
【請求項７】
データベースシステムが、
データを結合する統合サーバから、複数のデータを結合する要求に基づく問い合わせを受け付け、
受け付けた問い合わせに基づいて、データベースからデータを抽出し、
抽出したデータをハッシュ値に変換し、前記抽出したデータをハッシュ値に変換する処理が完了したタイミングで、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに変換完了通知を送信し、
前記統合サーバから問い合わせを受け付けた他のデータベースシステムから前記変換完了通知を受け付けたタイミングに基づいて、自装置が変換したハッシュ値を、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに送信する基点側装置と、前記統合サーバから問い合わせを受け付けた他のデータベースシステムが変換したハッシュ値と自装置が変換したハッシュ値とを照合する実施側装置との間で自装置を切り替え、
自装置を実施側装置に切り替えた場合に、基点側装置のデータベースシステムからハッシュ値を受信し、自装置で変換したハッシュ値と受信したハッシュ値とを照合し、照合結果、および一致したハッシュ値の元となったデータを前記統合サーバに送信すると共に、受信したハッシュ値のうち、一致したハッシュ値に対応する情報を前記基点側装置のデータベースシステムに送信し、
自装置を基点側装置に切り替えた場合に、自装置で変換したハッシュ値を、実施側装置のデータベースシステムに送信し、前記実施側装置のデータベースシステムから受信した、一致したハッシュ値に対応する情報に基づいて抽出したデータを、前記統合サーバに送信する、
データベースシステム連携方法。
【請求項８】
コンピュータに、
データを結合する統合サーバから、複数のデータを結合する要求に基づく問い合わせを受け付けさせ、
受け付けた問い合わせに基づいて、データベースからデータを抽出させ、
抽出したデータをハッシュ値に変換させ、前記抽出したデータをハッシュ値に変換する処理が完了したタイミングで、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに変換完了通知を送信させ、
前記統合サーバから問い合わせを受け付けた他のデータベースシステムから前記変換完了通知を受け付けたタイミングに基づいて、自装置が変換したハッシュ値を、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに送信する基点側装置と、前記統合サーバから問い合わせを受け付けた他のデータベースシステムが変換したハッシュ値と自装置が変換したハッシュ値とを照合する実施側装置との間で自装置を切り替えさせ、
自装置を実施側装置に切り替えさせた場合に、基点側装置のデータベースシステムからハッシュ値を受信させ、自装置で変換させたハッシュ値と受信させたハッシュ値とを照合させ、照合結果、および一致したハッシュ値の元となったデータを前記統合サーバに送信させると共に、受信させたハッシュ値のうち、一致したハッシュ値に対応する情報を前記基点側装置のデータベースシステムに送信させ、
自装置を基点側装置に切り替えさせた場合に、自装置で変換させたハッシュ値を、実施側装置のデータベースシステムに送信させ、実施側装置のデータベースシステムから受信させた、一致したハッシュ値に対応する情報に基づいて抽出させたデータを、前記統合サーバに送信させる、
データベースシステム連携プログラム。
【手続補正書】
【提出日】平成29年10月16日(2017.10.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データベースを管理する複数のデータベースシステムと、
クライアントから複数のデータを結合する要求を受け付けた場合に、前記要求に基づいて、前記複数のデータベースシステムの一部または全部である二つのデータベースシステムに問い合わせを行う統合サーバと、を備え、
前記統合サーバから問い合わせを受け付けた二つのデータベースシステムのそれぞれは、前記受け付けた問い合わせに基づいて前記データベースからデータを抽出し、抽出したデータをハッシュ値に変換し、
前記統合サーバから問い合わせを受け付けた二つのデータベースシステムのそれぞれは、前記抽出したデータをハッシュ値に変換する処理が完了したタイミングで、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに変換完了通知を送信し、
前記変換完了通知を受信したデータベースシステムは、前記変換完了通知を受け付けたタイミングに基づいて、自身が第１のデータベースシステムとして動作するか、第２のデータベースシステムとして動作するかを決定し、決定した情報を、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに送信し、
前記第１のデータベースシステムは、前記変換したハッシュ値を、前記統合サーバから問い合わせを受け付けたデータベースシステムのうち第２のデータベースシステムに送信し、
前記第２のデータベースシステムは、前記第１のデータベースシステムから受信したハッシュ値と、自身が変換したハッシュ値とを照合し、照合結果、および一致したハッシュ値の元となったデータを前記統合サーバに送信すると共に、前記第１のデータベースシステムから受信したハッシュ値のうち、一致したハッシュ値に対応する情報を前記第１のデータベースシステムに送信し、
前記第１のデータベースシステムは、前記第２のデータベースシステムから受信した前記一致したハッシュ値に対応する情報に基づいて、一致したハッシュ値の元となったデータを前記統合サーバに送信し、
前記統合サーバは、前記照合結果に基づいて、前記前記第１のデータベースシステムおよび前記第２のデータベースシステムからそれぞれ受信したデータ同士を結合する、
データベースシステム。
【請求項２】
前記第１および第２のデータベースシステムは、それぞれ、前記抽出したデータをハッシュ値に変換する処理を非同期で行う、
請求項１に記載のデータベースシステム。
【請求項３】
前記統合サーバから問い合わせを受け付けたデータベースシステムのそれぞれは、前記抽出したデータをハッシュ値に変換する処理が完了した場合に、前記統合サーバから受け付けた問い合わせに基づいて抽出したデータのデータ量に基づく情報を、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに送信し、
前記統合サーバから問い合わせを受け付けた他のデータベースシステムは、更に、前記データ量に基づく情報と、自身で抽出したデータ量に基づく情報とを比較し、比較結果に基づいて、自身が前記第１のデータベースシステムとして動作するか、前記第２のデータベースシステムとして動作するかを決定する、
請求項１または２に記載のデータベースシステム。
【請求項４】
前記統合サーバから問い合わせを受け付けたデータベースシステムのそれぞれは、前記抽出したデータをハッシュ値に変換する処理が完了した場合に、自装置の能力を表す情報を、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに送信し、
前記統合サーバから問い合わせを受け付けた他のデータベースシステムは、更に、受信した前記能力を表す情報と、自装置における能力とを比較し、比較結果に基づいて、自身が前記第１のデータベースシステムとして動作するか、前記第２のデータベースシステムとして動作するかを決定する、
請求項１または２に記載のデータベースシステム。
【請求項５】
統合サーバが、クライアントから複数のデータを結合する要求を受け付け、
前記統合サーバが、前記要求に基づいて前記複数のデータベースシステムの一部または全部である二つのデータベースシステムに問い合わせを行い、
前記統合サーバから問い合わせを受け付けた二つのデータベースシステムのそれぞれが、受け付けた問い合わせに基づいてデータベースからデータを抽出し、抽出したデータをハッシュ値に変換し、
前記統合サーバから問い合わせを受け付けた二つのデータベースシステムのそれぞれが、前記抽出したデータをハッシュ値に変換する処理が完了したタイミングで、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに変換完了通知を送信し、
前記変換完了通知を受信したデータベースシステムが、前記変換完了通知を受け付けたタイミングに基づいて、自身が第１のデータベースシステムとして動作するか、第２のデータベースシステムとして動作するかを決定し、決定した情報を、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに送信し、
前記第１のデータベースシステムが、変換したハッシュ値を、前記統合サーバから問い合わせを受け付けたデータベースシステムのうち第２のデータベースシステムに送信し、
前記第２のデータベースシステムが、前記第１のデータベースシステムから受信したハッシュ値と、自身が変換したハッシュ値とを照合し、照合結果、および一致したハッシュ値の元となったデータを前記統合サーバに送信すると共に、前記第１のデータベースシステムから受信したハッシュ値のうち、一致したハッシュ値に対応する情報を前記第１のデータベースシステムに送信し、
前記第１のデータベースシステムが、前記第２のデータベースシステムから受信した前記一致したハッシュ値に対応する情報に基づいて、一致したハッシュ値の元となったデータを前記統合サーバに送信し、
前記統合サーバが、前記照合結果に基づいて、前記第１のデータベースシステムおよび前記第２のデータベースシステムからそれぞれ受信したデータ同士を結合する、
データ結合方法。
【請求項６】
データベースと、
データを結合する統合サーバ、および自装置とは異なる他のデータベースシステムと通信を行う通信部と、
前記通信部を用いて、前記統合サーバから、複数のデータを結合する要求に基づく問い合わせを受け付ける受付部と、
受け付けた問い合わせに基づいて前記データベースからデータを抽出する抽出部と、
前記抽出部により抽出されたデータをハッシュ値に変換し、前記抽出されたデータをハッシュ値に変換する処理が完了したタイミングで、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに変換完了通知を送信する変換部と、
前記通信部を用いて、前記統合サーバから問い合わせを受け付けた他のデータベースシステムから前記変換完了通知を受け付けたタイミングに基づいて、自装置が変換したハッシュ値を前記統合サーバから問い合わせを受け付けた他のデータベースシステムに送信する基点側装置と、前記統合サーバから問い合わせを受け付けた他のデータベースシステムが変換したハッシュ値と自装置が変換したハッシュ値とを照合する実施側装置との間で自装置を切り替える切替部と、
前記切替部により自装置が実施側装置に切り替えられた場合に、前記通信部を用いて基点側装置のデータベースシステムからハッシュ値を受信し、前記変換部により変換されたハッシュ値と受信したハッシュ値とを照合し、照合結果、および一致したハッシュ値の元となったデータを前記統合サーバに送信すると共に、受信したハッシュ値のうち、一致したハッシュ値に対応する情報を前記基点側装置のデータベースシステムに送信し、
前記切替部により自装置が基点側装置に切り替えられた場合に、前記変換部により変換されたハッシュ値を、前記通信部を用いて実施側装置のデータベースシステムに送信し、前記実施側装置のデータベースシステムから受信した、一致したハッシュ値に対応する情報に基づいて前記抽出部により抽出されたデータを、前記通信部を用いて前記統合サーバに送信する、実行部と、
を備える、データベースシステム。
【請求項７】
データベースシステムが、
データを結合する統合サーバから、複数のデータを結合する要求に基づく問い合わせを受け付け、
受け付けた問い合わせに基づいて、データベースからデータを抽出し、
抽出したデータをハッシュ値に変換し、前記抽出したデータをハッシュ値に変換する処理が完了したタイミングで、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに変換完了通知を送信し、
前記統合サーバから問い合わせを受け付けた他のデータベースシステムから前記変換完了通知を受け付けたタイミングに基づいて、自装置が変換したハッシュ値を、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに送信する基点側装置と、前記統合サーバから問い合わせを受け付けた他のデータベースシステムが変換したハッシュ値と自装置が変換したハッシュ値とを照合する実施側装置との間で自装置を切り替え、
自装置を実施側装置に切り替えた場合に、基点側装置のデータベースシステムからハッシュ値を受信し、自装置で変換したハッシュ値と受信したハッシュ値とを照合し、照合結果、および一致したハッシュ値の元となったデータを前記統合サーバに送信すると共に、受信したハッシュ値のうち、一致したハッシュ値に対応する情報を前記基点側装置のデータベースシステムに送信し、
自装置を基点側装置に切り替えた場合に、自装置で変換したハッシュ値を、実施側装置のデータベースシステムに送信し、前記実施側装置のデータベースシステムから受信した、一致したハッシュ値に対応する情報に基づいて抽出したデータを、前記統合サーバに送信する、
データベースシステム連携方法。
【請求項８】
コンピュータに、
データを結合する統合サーバから、複数のデータを結合する要求に基づく問い合わせを受け付けさせ、
受け付けた問い合わせに基づいて、データベースからデータを抽出させ、
抽出したデータをハッシュ値に変換させ、前記抽出したデータをハッシュ値に変換する処理が完了したタイミングで、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに変換完了通知を送信させ、
前記統合サーバから問い合わせを受け付けた他のデータベースシステムから前記変換完了通知を受け付けたタイミングに基づいて、自装置が変換したハッシュ値を、前記統合サーバから問い合わせを受け付けた他のデータベースシステムに送信する基点側装置と、前記統合サーバから問い合わせを受け付けた他のデータベースシステムが変換したハッシュ値と自装置が変換したハッシュ値とを照合する実施側装置との間で自装置を切り替えさせ、
自装置を実施側装置に切り替えさせた場合に、基点側装置のデータベースシステムからハッシュ値を受信させ、自装置で変換させたハッシュ値と受信させたハッシュ値とを照合させ、照合結果、および一致したハッシュ値の元となったデータを前記統合サーバに送信させると共に、受信させたハッシュ値のうち、一致したハッシュ値に対応する情報を前記基点側装置のデータベースシステムに送信させ、
自装置を基点側装置に切り替えさせた場合に、自装置で変換させたハッシュ値を、実施側装置のデータベースシステムに送信させ、実施側装置のデータベースシステムから受信させた、一致したハッシュ値に対応する情報に基づいて抽出させたデータを、前記統合サーバに送信させる、
データベースシステム連携プログラム。