(57)【要約】【課題】テーブルの論理的な位置づけを認識した上で、データ連携の要件に応じた連携元テーブル群を的確に生成する。【解決手段】参照関係データ１６１を抽出する参照関係抽出部１２と、スキーママッチング結果データ１６３を抽出するスキーママッチング処理部１４と、参照関係データ１６１とスキーママッチング結果データ１６３とに基づいて、継承関係データ１６２を生成するデータ関係抽出部１３と、継承関係データ１６２に基づいて、テーブルスコアを算出し、算出したテーブルスコアとテーブルとを対応付けた関係性情報１７１を生成する関係性抽出部１５と、連携先テーブル定義情報を取得し、関係性情報１７１に基づいて、連携先テーブルの連携元である連携元テーブルの候補を連携元候補テーブル群として抽出するマッチング結果統合部１８とを備える。【選択図】図１
2016136354.tif 000002
【特許請求の範囲】
【請求項１】
カラムを有するテーブルを複数含むテーブル群からカラムの参照関係を表す参照関係データを抽出する参照関係抽出部と、
前記テーブル群から抽出される２つのテーブルのカラム同士の類似度を算出し、前記類似度が閾値以上である２つのテーブルのカラム同士をスキーママッチング結果データとして抽出するスキーママッチング処理部と、
前記参照関係データと前記スキーママッチング結果データとに基づいて、複数のテーブルの各テーブルのカラムのカラム特性を判定し、判定した結果を継承関係データとして生成するデータ関係抽出部と、
前記継承関係データに基づいて、前記テーブルのテーブル特性を表すテーブルスコアを算出し、算出したテーブルスコアと前記テーブルとを対応付けた関係性情報を生成する関係性抽出部と、
前記テーブル群に含まれる検索対象の連携先テーブルを定義する連携先テーブル定義情報を取得し、前記関係性情報に基づいて、前記連携先テーブルの連携元である連携元テーブルの候補を連携元候補テーブル群として抽出するマッチング結果統合部と
を備えるデータ連携推定装置。
【請求項２】
前記マッチング結果統合部は、
前記連携元候補テーブル群から、前記連携先テーブルのカラムの連携元を前記テーブル特性の異なるテーブル毎に出力する請求項１に記載のデータ連携推定装置。
【請求項３】
前記データ関係抽出部は、
前記複数のテーブルの各テーブルのカラムが継承項目と被継承項目と固有項目とのいずれであるかを判定することにより、前記複数のテーブルの各テーブルのカラムの前記カラム特性を判定する請求項１または２に記載のデータ連携推定装置。
【請求項４】
前記関係性抽出部は、
前記テーブル特性として、前記テーブルがマスタ系のテーブルであるかトランザクション系のテーブルであるかを表す前記テーブルスコアを算出する請求項１から３のいずれか１項に記載のデータ連携推定装置。
【請求項５】
前記マッチング結果統合部は、
前記連携先テーブルのカラムの連携元のカラムとして、前記マスタ系のテーブルのカラムと前記トランザクション系のテーブルのカラムとを出力する請求項４に記載のデータ連携推定装置。
【請求項６】
前記スキーママッチング処理部は、
スキーママッチング処理を実行することにより、前記類似度をスキーママッチングスコアとして算出する請求項１から５のいずれか１項に記載のデータ連携推定装置。
【請求項７】
前記マッチング結果統合部は、
前記連携先テーブルのカラムの連携元がない場合、不足するカラムを有するテーブルと前記連携元候補テーブル群との結合可否を判断し、結合可能な場合に結合するためのキーとなる結合カラム群を報告する請求項１から６のいずれか１項に記載のデータ連携推定装置。
【請求項８】
参照関係抽出部が、カラムを有するテーブルを複数含むテーブル群からカラムの参照関係を表す参照関係データを抽出し、
スキーママッチング処理部が、前記テーブル群から抽出される２つのテーブルのカラム同士の類似度を算出し、前記類似度が閾値以上である２つのテーブルのカラム同士をスキーママッチング結果データとして抽出し、
データ関係抽出部が、前記参照関係データと前記スキーママッチング結果データとに基づいて、複数のテーブルの各テーブルのカラムのカラム特性を判定し、判定した結果を継承関係データとして生成し、
関係性抽出部が、前記継承関係データに基づいて、前記テーブルのテーブル特性を表すテーブルスコアを算出し、算出したテーブルスコアと前記テーブルとを対応付けた関係性情報を生成し、
マッチング結果統合部が、前記テーブル群に含まれる検索対象の連携先テーブルを定義する連携先テーブル定義情報を取得し、前記関係性情報に基づいて、前記連携先テーブルの連携元である連携元テーブルの候補を連携元候補テーブル群として抽出するデータ連携推定方法。
【請求項９】
カラムを有するテーブルを複数含むテーブル群からカラムの参照関係を表す参照関係データを抽出する参照関係抽出処理と、
前記テーブル群から抽出される２つのテーブルのカラム同士の類似度を算出し、前記類似度が閾値以上である２つのテーブルのカラム同士をスキーママッチング結果データとして抽出するスキーママッチング処理と、
前記参照関係データと前記スキーママッチング結果データとに基づいて、複数のテーブルの各テーブルのカラムのカラム特性を判定し、判定した結果を継承関係データとして生成するデータ関係抽出処理と、
前記継承関係データに基づいて、前記テーブルのテーブル特性を表すテーブルスコアを算出し、算出したテーブルスコアと前記テーブルとを対応付けた関係性情報を生成する関係性抽出処理と、
前記テーブル群に含まれる検索対象の連携先テーブルを定義する連携先テーブル定義情報を取得し、前記関係性情報に基づいて、前記連携先テーブルの連携元である連携元テーブルの候補を連携元候補テーブル群として抽出するマッチング結果統合処理とをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ連携推定装置、データ連携推定方法及びプログラムに関するものである。
【背景技術】
【０００２】
システム統合などにより必要となるデータベースの統合処理や、複数システム間でデータを送受信する処理にともなって、システム別のデータベース間のデータ連携、あるいは、同じデータベース内の別々のテーブル間でのデータ連携が必要となる。データ連携では、連携先となるテーブルに対して、どのテーブルのカラムからデータを抽出すればよいかという連携元テーブルを定義する必要がある。データ連携関係を定義するためには、テーブル間の関係性、すなわち参照関係を特定する必要がある上に、テーブルの論理的な位置づけを特定する必要がある。
【０００３】
非特許文献１には、データベースに対して実施されたデータ操作として発行されたクエリを読み込み、発行されたクエリに含まれる結合条件を用いてテーブル間の参照関係を自動抽出する技術が開示されている。
非特許文献２には、テーブル定義情報のようなメタデータのみからスキーママッチング技術によりテーブル間の参照関係を抽出する技術が開示されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｈａｚｅｍ  Ｅｌｍｅｌｅｅｇｙ  ａｎｄ  Ｊａｅｗｏｏ  Ｌｅｅ  ａｎｄ  Ｅｌ  Ｋｉｎｄｉ  Ｒｅｚｉｇ  ａｎｄ  Ｍｏｕｒａｄ  Ｏｕｚｚａｎｉ  ａｎｄ  Ａｈｍｅｄ  Ｅｌｍａｇａｒｍｉｄ，Ｕ−ＭＡＰ：Ａ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｕｓａｇｅ−Ｂａｓｅｄ  Ｓｃｈｅｍａ  Ｍａｔｃｈｉｎｇ  ａｎｄ  Ｍａｐｐｉｎｇ，ＳＩＧＭＯＤ’１１  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２０１１  ＡＣＭ  ＳＩＧＭＯＤ  ｉｎｔｅｒｎａｔｉｏｎａｌ  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｍａｎａｇｅｍｅｎｔ  ｏｆ  ｄａｔａ，２０１１
【非特許文献２】佐藤  彰洋、鹿島  理華、谷垣  宏一、山足  光義，スキーマ構成文字列と主キー制約情報に基づく外部参照関係の推定，Ｔｈｅ  ２８ｔｈ  Ａｎｎｕａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｆ  ｔｈｅ  Ｊａｐａｎｅｓｅ  Ｓｏｃｉｅｔｙ  ｆｏｒ  Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ，２０１４
【発明の概要】
【発明が解決しようとする課題】
【０００５】
非特許文献１のような発行クエリを利用する技術では、適用できるシステムの範囲が利用可能な発行クエリの数や、クエリ発行を媒介するアプリケーションにより制限され、全システムを対象として実施することが困難であるという課題がある。
またデータ連携関係の自動推薦のためには発行クエリの準備が必須であるため、例えば連携先テーブルが新規に作成するテーブルであり、まだ発行クエリが存在しない場合は利用できないという課題も存在する。
【０００６】
非特許文献２は、スキーママッチング技術は類似のデータ項目を見つけ出すという技術であるため、複数システムのデータベースを対象とする処理では、同義のカラムや類似の参照関係が多数存在する可能性がある。このため、スキーママッチング技術としては正しい対応関係であっても、データ連携関係としては使用できない関係が多数検出されてしまうという課題がある。
また、データ連携関係の自動推薦に固有の要件である、テーブルがマスタテーブルかトランザクションテーブルかという論理的な位置づけを認識したうえで、データ連携の要件に応じた連携元テーブル群を生成する必要がある点については考慮されていない。
【０００７】
本発明は、テーブルの論理的な位置づけを認識した上で、データ連携の要件に応じた連携元テーブル群を的確に生成することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るデータ連携推定装置は、
カラムを有するテーブルを複数含むテーブル群からカラムの参照関係を表す参照関係データを抽出する参照関係抽出部と、
前記テーブル群から抽出される２つのテーブルのカラム同士の類似度を算出し、前記類似度が閾値以上である２つのテーブルのカラム同士をスキーママッチング結果データとして抽出するスキーママッチング処理部と、
前記参照関係データと前記スキーママッチング結果データとに基づいて、複数のテーブルの各テーブルのカラムのカラム特性を判定し、判定した結果を継承関係データとして生成するデータ関係抽出部と、
前記継承関係データに基づいて、前記テーブルのテーブル特性を表すテーブルスコアを算出し、算出したテーブルスコアと前記テーブルとを対応付けた関係性情報を生成する関係性抽出部と、
前記テーブル群に含まれる検索対象の連携先テーブルを定義する連携先テーブル定義情報を取得し、前記関係性情報に基づいて、前記連携先テーブルの連携元である連携元テーブルの候補を連携元候補テーブル群として抽出するマッチング結果統合部と
を備える。
【発明の効果】
【０００９】
本発明に係るデータ連携推定装置は、データ関係抽出部が、各テーブルのカラムのカラム特性を判定し、判定した結果を継承関係データとして生成し、関係性抽出部が、継承関係データに基づいて、テーブルのテーブル特性を表すテーブルスコアとテーブルとを対応付けた関係性情報を生成し、マッチング結果統合部が、関係性情報に基づいて、連携先テーブルの連携元である連携元テーブルの候補を連携元候補テーブル群として抽出するので、テーブルの論理的な位置づけであるテーブル特性を認識した上で、データ連携の要件に応じた連携元候補テーブル群を的確に生成することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係るデータ連携推定装置のブロック構成図。
【図２】実施の形態１に係るデータ連携推定装置のハードウェア構成図。
【図３】実施の形態１に係るデータ連携推定装置のデータ連携推定方法、データ連携推定処理の動作を示すフロー図。
【図４】実施の形態１に係るデータベース定義情報１２１１の構成図。
【図５】実施の形態１に係る参照関係データ１６１の構成図。
【図６】実施の形態１に係るスキーママッチング処理ｓ１３０、データ関係抽出処理ｓ１３０ａのフロー図。
【図７】実施の形態１に係るスキーママッチング結果データ１６３の構成図。
【図８】実施の形態１に係る継承関係データ１６２の構成図。
【図９】実施の形態１に係る探索用参照元テーブルと探索用参照先テーブルとの構成図。
【図１０】実施の形態１に係る関係性抽出処理ｓ１４０のフロー図。
【図１１】実施の形態１に係る関係性抽出部によるスコア計算を示す図であり、（ａ）はスコア算出式、（ｂ）は継承項目及び被継承項目に基づくスコア１５１と固有項目に基づくスコア１５２とテーブルスコア１７１４の算出例。
【図１２】実施の形態１に係る関係性情報の構成図。
【図１３】実施の形態１に係るマッチング結果統合処理ｓ１５０のフロー図。
【図１４】実施の形態１に係る連携先テーブル定義情報入力例。
【図１５】実施の形態１に係る連携元テーブル群検索処理ｓ１５５のフロー図。
【図１６】実施の形態１に係る連携元候補カラム群１８１の具体例。
【図１７】実施の形態１に係る連携元候補カラム群の組み合わせ１８２の具体例。
【図１８】実施の形態１に係る連携元候補カラム群の組み合わせに含まれるテーブルのペア１８３の具体例。
【図１９】実施の形態１に係る最短経路探索部１９が用いるノード情報１９１、辺情報１９２、最短経路情報１９３の具体例。
【図２０】実施の形態１に係る最短経路情報の組み合わせ１８４の具体例。
【図２１】実施の形態１に係る最短経路から連携可能なカラム群１８５の具体例。
【図２２】実施の形態１に係る最短経路上ノード情報１８６の具体例。
【図２３】実施の形態１に係るマスタテーブル優先の連携元テーブル定義情報出力例。
【図２４】実施の形態１に係るトランザクションテーブル優先の連携元テーブル定義情報出力例。
【図２５】実施の形態１に係るテーブル構成例の全体像を示す図。
【図２６】実施の形態１に係る連携元候補カラム群の組み合わせに含まれるテーブルのペア１８３と期待する最短経路探索部での探索結果とを示す図。
【図２７】最短経路情報１９３について任意の個数の組み合わせを生成し、連携元候補カラム群の識別子で示されるカラムが識別子ごとに１つ以上経路上に存在する最短経路情報の組み合わせを検索する方法を説明する図。
【図２８】実施の形態１に係る合計値の算出例。
【発明を実施するための形態】
【００１１】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１を用いて、本実施の形態に係るデータ連携推定装置１００の構成について説明する。
データ連携推定装置１００は、テーブル定義抽出部１１、参照関係抽出部１２、データ関係抽出部１３、スキーママッチング処理部１４、関係性抽出部１５、データ蓄積部１６、関係性情報格納部１７、マッチング結果統合部１８、最短経路探索部１９を備える。
また、データ連携推定装置１００には、連携元データベース定義情報１０１、連携先データベース定義情報１０２、表示装置２００、入力装置３００が接続される。
【００１２】
表示装置２００は、データ連携推定装置１００から出力される返却結果を画面表示するプログラムであってもよいし、返却結果を入力値として利用する別の装置であってもよい。
入力装置３００は、データ連携推定装置１００に対して、テーブル定義情報を入力するための入力装置たるキーボード、マウス、通信ボードであってもよいし、テーブル定義情報を出力する装置あるいはプログラムであってもよい。
【００１３】
連携元データベース定義情報１０１及び連携先データベース定義情報１０２には、連携元及び連携先となる複数のシステムのデータベースを定義するデータベース定義情報１２１１が格納される。
連携元データベース定義情報１０１及び連携先データベース定義情報１０２は、カラムを有するテーブルを複数含むテーブル群１０００の例である。
【００１４】
テーブル定義抽出部１１は、連携元データベース定義情報１０１及び連携先データベース定義情報１０２からデータベース定義情報１２１１を抽出し、参照関係抽出部１２及びデータ関係抽出部１３に出力する。データベース定義情報１２１１には、複数のテーブルが定義されている。
【００１５】
参照関係抽出部１２は、カラムを有するテーブルを複数含むテーブル群１０００からカラムの参照関係を表す参照関係データ１６１を抽出する。参照関係抽出部１２は、テーブル定義抽出部１１からデータベース定義情報１２１１を取得し、任意の２つのテーブル間の意味的な参照関係である参照関係データ１６１を抽出し、データ蓄積部１６へ保存する。
【００１６】
データ関係抽出部１３は、テーブル定義抽出部１１からデータベース定義情報１２１１を取得し、任意の２テーブルの組み合わせを生成し、２テーブルの組み合わせのそれぞれのテーブル定義情報をスキーママッチング処理部１４に引き渡す。データ関係抽出部１３は、固有／継承関係抽出部とも称される。
【００１７】
スキーママッチング処理部１４は、テーブル群１０００から抽出される２つのテーブルのカラム同士の類似度を算出し、類似度が閾値以上である２つのテーブルのカラム同士をスキーママッチング結果データ１６３として抽出する。スキーママッチング処理部１４は、スキーママッチング処理を実行することにより、類似度をスキーママッチングスコア１６３９として算出する。
スキーママッチング処理部１４は、データ関係抽出部１３からの２テーブルの組み合わせを入力としてスキーママッチング処理を実施し、スキーママッチング結果データ１６３を出力する。
【００１８】
データ関係抽出部１３は、参照関係データ１６１とスキーママッチング結果データ１６３とに基づいて、複数のテーブルの各テーブルのカラムのカラム特性を判定し、判定した結果を継承関係データ１６２として生成する。データ関係抽出部１３は、複数のテーブルの各テーブルのカラムが継承項目と被継承項目と固有項目とのいずれであるかを判定する。データ関係抽出部１３は、この判定により、複数のテーブルの各テーブルのカラムのカラム特性を判定する。
データ関係抽出部１３は、参照関係データ１６１とスキーママッチング結果データ１６３とに基づいて、継承関係データ１６２を生成する。継承関係データ１６２は、固有／継承関係データとも称される。
【００１９】
データ蓄積部１６は、メモリあるいはハードディスクあるいはＳＳＤ（ソリッドステートドライブ）等により構成される記憶領域である。データ蓄積部１６には、参照関係データ１６１、継承関係データ１６２、スキーママッチング結果データ１６３が存在する。
【００２０】
関係性抽出部１５は、継承関係データ１６２に基づいて、テーブルのテーブル特性を表すテーブルスコア１７１４を算出し、算出したテーブルスコア１７１４とテーブルとを対応付けた関係性情報１７１を生成する。関係性抽出部１５は、テーブル特性として、テーブルがマスタ系のテーブルであるかトランザクション系のテーブルであるかを表すテーブルスコア１７１４を算出する。
すなわち、関係性抽出部１５は、継承関係データ１６２に基づいて、テーブルの仮想的な位置情報を数値化した関係性情報１７１を生成する。関係性情報１７１は、テーブルスコア情報、関係性データとも称される。
関係性情報格納部１７は、メモリあるいはハードディスクあるいはＳＳＤ（ソリッドステートドライブ）等により構成される記憶領域である。関係性情報格納部１７には、関係性情報１７１が存在する。
【００２１】
マッチング結果統合部１８は、テーブル群１０００に含まれる検索対象の連携先テーブルを定義する連携先テーブル定義情報３０００を取得する。マッチング結果統合部１８は、関係性情報１７１に基づいて、連携先テーブルの連携元である連携元テーブルの候補を連携元候補テーブル群として抽出する。マッチング結果統合部１８は、関係性情報１７１に基づいて、連携元テーブルと連携先テーブルとのマッチングを実施し、連携元候補テーブル群を抽出する。
マッチング結果統合部１８は、連携元候補テーブル群から、連携先テーブルのカラムの連携元をテーブル特性の異なるテーブル毎に出力する。マッチング結果統合部１８は、連携先テーブルのカラムの連携元のカラムとして、マスタ系のテーブルのカラムとトランザクション系のテーブルのカラムとを出力する。
マッチング結果統合部１８は、連携先テーブルのカラムの連携元がない場合、不足するカラムを有するテーブルと連携元候補テーブル群との結合可否を判断し、結合可能な場合に結合するためのキーとなる結合カラム群を報告する。
【００２２】
最短経路探索部１９は、テーブル間が参照関係で結ばれている場合に２つのテーブルを結ぶ最短経路情報１９３を抽出する。
【００２３】
図２を用いて、データ連携推定装置１００のハードウェア構成例について説明する。
データ連携推定装置１００はコンピュータである。
データ連携推定装置１００は、プロセッサ９０１、補助記憶装置９０２、メモリ９０３、通信装置９０４、入力インタフェース９０５、ディスプレイインタフェース９０６といったハードウェアを備える。
プロセッサ９０１は、信号線９１０を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
入力インタフェース９０５は、入力装置９０７に接続されている。
ディスプレイインタフェース９０６は、ディスプレイ９０８に接続されている。
【００２４】
プロセッサ９０１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。
プロセッサ９０１は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
補助記憶装置９０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。
メモリ９０３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
通信装置９０４は、データを受信するレシーバー９０４１及びデータを送信するトランスミッター９０４２を含む。
通信装置９０４は、例えば、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
入力インタフェース９０５は、入力装置９０７のケーブル９１１が接続されるポートである。
入力インタフェース９０５は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子である。
ディスプレイインタフェース９０６は、ディスプレイ９０８のケーブル９１２が接続されるポートである。
ディスプレイインタフェース９０６は、例えば、ＵＳＢ端子又はＨＤＭＩ（登録商標）（Ｈｉｇｈ  Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）端子である。
入力装置９０７は、例えば、マウス、キーボード又はタッチパネルである。
ディスプレイ９０８は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）である。
【００２５】
補助記憶装置９０２には、図１に示すテーブル定義抽出部１１、参照関係抽出部１２、データ関係抽出部１３、スキーママッチング処理部１４、関係性抽出部１５、マッチング結果統合部１８、最短経路探索部１９（以下、テーブル定義抽出部１１、参照関係抽出部１２、データ関係抽出部１３、スキーママッチング処理部１４、関係性抽出部１５、マッチング結果統合部１８、最短経路探索部１９をまとめて「部」と表記する）の機能を実現するプログラムが記憶されている。
このプログラムは、メモリ９０３にロードされ、プロセッサ９０１に読み込まれ、プロセッサ９０１によって実行される。
更に、補助記憶装置９０２には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。
そして、ＯＳの少なくとも一部がメモリ９０３にロードされ、プロセッサ９０１はＯＳを実行しながら、「部」の機能を実現するプログラムを実行する。
図２では、１つのプロセッサ９０１が図示されているが、データ連携推定装置１００が複数のプロセッサ９０１を備えていてもよい。
そして、複数のプロセッサ９０１が「部」の機能を実現するプログラムを連携して実行してもよい。
また、「部」の処理の結果を示す情報やデータや信号値や変数値が、メモリ９０３、補助記憶装置９０２、又は、プロセッサ９０１内のレジスタ又はキャッシュメモリにファイルとして記憶される。
【００２６】
「部」を「サーキットリー」で提供してもよい。
また、「部」を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。また、「処理」を「回路」又は「工程」又は「手順」又は「部」に読み替えてもよい。
「回路」及び「サーキットリー」は、プロセッサ９０１だけでなく、ロジックＩＣ又はＧＡ（Ｇａｔｅ  Ａｒｒａｙ）又はＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）又はＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）といった他の種類の処理回路をも包含する概念である。
なお、プログラムプロダクトと称されるものは、ブロック構成図に示す「部」の機能を実現するプログラムが記録された記憶媒体、記憶装置などであり、見た目の形式に関わらず、コンピュータ読み取り可能なプログラムをロードしているものである。
【００２７】
＊＊＊動作の説明＊＊＊
図３を用いて、本実施の形態に係るデータ連携推定装置１００のデータ連携推定方法、データ連携推定処理の動作について説明する。
【００２８】
＜データベース定義情報抽出処理ｓ１１０＞
ｓ１１０において、テーブル定義抽出部１１は、連携元データベース定義情報１０１および連携先データベース定義情報１０２から、テーブルを定義する情報をデータベース定義情報１２１１として抽出する。テーブル定義抽出部１１は、データ連携設計の対象となる連携元データベース定義情報１０１および連携先データベース定義情報１０２から、データベース定義情報１２１１を、データ定義言語（ＤＤＬ）、ＸＭＬファイルなどにより受け取る。あるいは、テーブル定義抽出部１１は、データベースに接続してテーブル定義情報を取得するＳＱＬ文の発行などによって受け取り、参照関係抽出部１２およびデータ関係抽出部１３に引き渡す。
【００２９】
図２５は、本実施の形態におけるテーブル構成例の全体像を示す図である。図４は、図２５のテーブル構成に基づくデータベース定義情報１２１１を示す図である。
図２５に示すように、本実施の形態では、発注システムが店舗テーブル、注文テーブル、商品テーブルを有し、人事システムはオーナテーブルを有するものとする。
図４に示すように、データベース定義情報１２１１は、テーブル所在情報１１１と、テーブル定義情報１１２とから構成される。
図４に示すテーブル所在情報１１１の第１行目は、「発注システム」というインスタンスの「ＳＶＲ００１」というスキーマにおける「店舗」テーブルであるという情報である。また、テーブル定義情報１１２には、「店舗」テーブルに所属するカラムとして「店舗ＩＤ」と「オーナＩＤ」と「オーナ名」と「店舗住所」とが存在し、「店舗ＩＤ」は単独で主キーであることが設定されている。
【００３０】
＜参照関係抽出処理ｓ１２０＞
参照関係抽出処理ｓ１２０において、参照関係抽出部１２は、カラムを有するテーブルを複数含むテーブル群１０００からカラムの参照関係を表す参照関係データ１６１を抽出する。
参照関係抽出部１２は、テーブル定義抽出部１１から引き渡されたテーブル定義情報の集合であるテーブル群におけるテーブル同士の組み合わせについて、テーブル所在情報１１１とテーブル定義情報１１２との情報を受け取る。テーブルについてのテーブル所在情報１１１及びテーブル定義情報１１２の情報を単にテーブル定義情報と称する場合もある。
参照関係抽出部１２は、受け取ったテーブル同士の組み合わせについて参照関係データ１６１の情報を出力する。参照関係抽出部１２は、レコードデータの値から推測する方法などの技術及び付加的な人的作業によって実現する。
【００３１】
図５を用いて、参照関係データ１６１の構成について説明する。
参照関係データ１６１は、参照先のテーブルのカラムと参照元のテーブルのカラムとで何らかの意味的な関係があることを示している。
参照関係抽出部１２は、参照関係データ１６１の抽出方法として上記のような技術や作業を用い、２つのテーブル間で参照関係にあるカラムデータを抽出する。
本実施の形態では、図４に示すように、店舗、注文、商品、オーナの４つのテーブルがあるものとする。参照関係抽出部１２は、これらのテーブルから２つを組み合わせ、各組み合わせの２つのテーブル間に関して参照関係の有無を抽出し、図５に示す参照関係データ１６１の結果を得る。図５に示す参照関係データ１６１では、以下の結果が得られている。
（１）店舗テーブル→オーナテーブル（オーナＩＤ）。
（２）注文テーブル→店舗テーブル（店舗ＩＤ）。
（３）注文テーブル→商品テーブル（商品ＩＤ）。
例えば、上記の（２）は、店舗ＩＤについて店舗テーブルは注文テーブルより上位であることを示している。
【００３２】
＜スキーママッチング処理ｓ１３０＞
スキーママッチング処理ｓ１３０において、スキーママッチング処理部１４は、テーブル群１０００から抽出される２つのテーブルのカラム同士の類似度１６３０１を算出する。スキーママッチング処理部１４は、類似度１６３０１が閾値以上である２つのテーブルのカラム同士をスキーママッチング結果データ１６３として抽出する。
【００３３】
＜データ関係抽出処理ｓ１３０ａ＞
データ関係抽出処理ｓ１３０ａについて説明する。
データ関係抽出処理ｓ１３０ａにおいて、データ関係抽出部１３は、参照関係データ１６１とスキーママッチング結果データ１６３とに基づいて、複数のテーブルの各テーブルのカラム１６２０１のカラム特性１６２０２を判定する。そして、データ関係抽出部１３は、判定した結果を継承関係データ１６２として生成する。継承関係データ１６２の構成の例を図８に示し、後で説明する。
【００３４】
図６を用いて、スキーママッチング処理部１４によるスキーママッチング処理ｓ１３０及びデータ関係抽出部１３によるデータ関係抽出処理ｓ１３０ａについて説明する。
ｓ１３１において、データ関係抽出部１３は、テーブル定義抽出部１１からデータベース定義情報１２１１を受け取る。データベース定義情報１２１１は、複数のテーブルのテーブル定義情報を含むテーブル群である。
ｓ１３２において、データ関係抽出部１３は、データ蓄積部１６から参照関係データ１６１を受け取る。
【００３５】
ｓ１３３において、データ関係抽出部１３は、テーブル群から任意の２テーブルの組み合わせを生成する。ただし、同じテーブル同士では組み合わせとしない。データ関係抽出部１３は、生成した２つのテーブルの組み合わせのそれぞれのテーブル所在情報１１１およびテーブル定義情報１１２をスキーママッチング処理部１４に引き渡す。
【００３６】
ｓ１３４において、データ関係抽出部１３は、スキーママッチング結果データ１６３を出力する。
図７を用いて、本実施の形態に係るスキーママッチング結果データ１６３の構成について説明する。
スキーママッチング処理部１４は、２つのテーブルの組み合わせのそれぞれのテーブル所在情報１１１およびテーブル定義情報１１２を入力として、スキーママッチング処理を実行する。スキーママッチング処理部１４は、スキーママッチング処理を実行し、各テーブルに属するカラム間の類似度１６３０１を０〜１．０の間の数値で表現したスキーママッチングスコア１６３９を算出する。
【００３７】
スキーママッチング処理では、４つのテーブルから２つずつ組み合わせ、各組み合わせの２つのテーブル間に関してスキーママッチング処理を実行する。そして、スキーママッチングスコアが閾値以上のデータをスキーママッチング結果データ１６３として抽出する。図７の例では、スキーママッチング結果の中で、店舗テーブルの「店舗ＩＤ」と「オーナＩＤ」カラムに関する結果を抜粋して記載している。
【００３８】
データ関係抽出部１３は、スキーママッチング処理部１４によるスキーママッチング処理の結果を取得する。データ関係抽出部１３は、スキーママッチング処理部１４の結果に対して、一定の閾値を設け、スキーママッチングスコア１６３９の値が閾値以上となるスキーママッチング結果データ１６３をデータ蓄積部１６に保存する。ここで得られるスキーママッチング結果データ１６３は、ある２つのテーブル間で、類似度が閾値以上となるカラムのペアとなる。
【００３９】
ｓ１３５において、データ関係抽出部１３は、スキーママッチングスコア１６３９の値が閾値以上となるスキーママッチング結果データ１６３が存在する場合、ｓ１３６に進む。
ｓ１３５において、データ関係抽出部１３は、スキーママッチングスコア１６３９の値が閾値以上となるスキーママッチング結果データ１６３が存在しない場合、ｓ１３８に進む。
【００４０】
ｓ１３６において、データ関係抽出部１３は、継承項目あるいは被継承項目のラベル付与を行う。
継承項目あるいは被継承項目のラベル付与では、参照関係データ１６１のインスタンス名、スキーマ名、テーブル名（１６１１〜１６１３、１６１５〜１６１７のペア）を参照する。参照した結果、スキーママッチング結果データ１６３のインスタンス名、スキーマ名、テーブル名（１６３１〜１６３３、１６３５〜１６３７のペア）に合致するものが存在する場合、継承関係データ１６２をデータ蓄積部１６に保存する。
ここで、スキーママッチング結果データ１６３に含まれる２つのテーブルのうち、一方は参照関係データ１６１の「参照先」に合致し、もう一方は参照関係データ１６１の「参照元」に合致するが、いずれに合致するかで以降の処理が異なる。なお、スキーママッチング結果データ１６３に含まれる２つのテーブルは、インスタンス名、スキーマ名、テーブル名で特定される。よって、一方のテーブルは参照関係データ１６１の「参照先」となるインスタンス名、スキーマ名、テーブル名（１６１１〜１６１３）に合致する。また、もう一方のテーブルは参照関係データ１６１の「参照元」となるインスタンス名、スキーマ名、テーブル名（１６１５〜１６１７）に合致する。
【００４１】
参照関係データ１６１の「参照先」に合致した方は、スキーママッチング結果データ１６３のカラム名１６３４あるいはカラム名１６３８は被継承項目となる。そして、インスタンス名、スキーマ名、テーブル名、カラム名および被継承項目のラベルを、図８のように継承関係データ１６２の第１行目としてデータ蓄積部１６に保存する。ここで、参照関係データ１６１の「参照先」のインスタンス名、スキーマ名、テーブル名（１６１１〜１６１３）にインスタンス名、スキーマ名、テーブル名（１６３１〜１６３３あるいは１６３５〜１６３７）が合致する。
ただし、既に同一のインスタンス名、スキーマ名、テーブル名、カラム名（１６２１〜１６２４）を持つ継承関係データ１６２が存在する場合、ラベル名を上書きする。この際、既にラベル名に継承項目が入っている場合は、継承項目／被継承項目とし、既に被継承項目が入っている場合には変更を行わない。既に固有項目が入っている場合には、被継承項目に上書きする。
【００４２】
一方、参照関係データ１６１の「参照元」のインスタンス名、スキーマ名、テーブル名（１６１５〜１６１７）にインスタンス名、スキーマ名、テーブル名（１６３１〜１６３３あるいは１６３５〜１６３７）が合致した方は、スキーママッチング結果データ１６３のカラム名１６３４あるいはカラム名１６３８は継承項目となる。この場合、「参照元」と合致しなかった方、すなわち「参照先」と合致したスキーママッチング結果データ１６３のインスタンス名、スキーマ名、テーブル名、カラム名は、継承関係データ１６２の継承元インスタンス名、継承元スキーマ名、継承元テーブル名、継承元カラム名（１６２６〜１６２９）に対応し、継承項目のラベルを図８のように継承関係データ１６２の２行目としてデータ蓄積部１６に保存する。
ただし、既に同一のインスタンス名、スキーマ名、テーブル名、カラム名（１６２１〜１６２４）を持つ継承関係データ１６２が存在する場合、ラベル名を上書きする。この際、既にラベル名に継承項目が入っている場合は変更を行わない。被継承項目が入っている場合には継承項目／被継承項目とする。既に固有項目が入っている場合には、継承項目に上書きする。
【００４３】
次に、さらにデータ連携を探索するための探索処理について説明する。
図９は、探索用連携元と探索用連携先の構成を示す図である。
ｓ１３７において、データ関係抽出部１３は、インスタンス名、スキーマ名、テーブル名で特定される２つのテーブルそれぞれについて、参照関係データ１６１の「参照元」となるデータが存在する場合に、ｓ１３７ａにおいてこのテーブルを図７に示す探索用参照元テーブル１２１とする。また、データ関係抽出部１３は、インスタンス名、スキーマ名、テーブル名で特定される２つのテーブルそれぞれについて、参照関係データ１６１の「参照先」となるテーブルを探索用参照先テーブル１２２に格納する。
この際、探索用参照先テーブル１２２のテーブルについても、参照関係データ１６１の「参照元」となるデータが存在する場合に、「参照先」となるテーブルを探索用参照先テーブル１２２に格納する。すなわち、探索用参照元テーブル１２１から、参照元から参照先という方向の参照関係によって到達することが可能なテーブルすべてが、探索用参照先テーブル１２２に格納される。
そして、データ関係抽出部１３は、探索用参照元テーブル１２１と、探索用参照先テーブル１２２のテーブル間で、スキーママッチングを実施する。データ関係抽出部１３は、ｓ１３７ｂにおいて共通項目が存在する場合に、ｓ１３７ｃにおいて継承項目／被継承項目のラベル付与を行う。ｓ１３７ｃにおける継承項目／被継承項目のラベル付与の処理は、ｓ１３６における継承項目／被継承項目のラベル付与の処理と同様である。
【００４４】
ｓ１３８において、データ関係抽出部１３は、２つのテーブル（インスタンス名、スキーマ名、テーブル名で特定される）それぞれについて、継承関係データ１６２に継承項目としても被継承項目としても保存されていないカラムを固有項目とし、インスタンス名、スキーマ名、テーブル名、カラム名および固有項目のラベルを図８の第４行目のように継承関係データ１６２としてデータ蓄積部１６に保存する。
【００４５】
ｓ１３９において、データ関係抽出部１３は、任意の２テーブルの組み合わせについて、未処理の組み合わせが存在する場合、スキーママッチング処理部１４への引渡し以後の処理を繰り返す。
以上で、データ関係抽出処理ｓ１３０ａの説明を終わる。
【００４６】
＜関係性抽出処理ｓ１４０＞
図１０を用いて、関係性抽出処理ｓ１４０について説明する。
関係性抽出処理ｓ１４０において、関係性抽出部１５は、継承関係データ１６２に基づいて、テーブルのテーブル特性１７１０１を表すテーブルスコアを算出し、算出したテーブルスコアとテーブルとを対応付けた関係性情報１７１を生成する。
関係性抽出部１５は、データ関係抽出部１３が保存した継承関係データ１６２に基づき、図１２に示す関係性情報１７１を関係性情報格納部１７に保存する。
【００４７】
ｓ１４１において、関係性抽出部１５は、インスタンス名、スキーマ名、テーブル名で特定される各テーブルについて、継承関係データ１６２を取得する。取得した継承関係データ１６２には、テーブルに属する各カラムについて、継承項目、被継承項目、固有項目等のラベル名と、継承項目である場合には継承元のインスタンス名、スキーマ名、テーブル名、カラム名が含まれる。
【００４８】
ｓ１４２において、関係性抽出部１５は、取得した継承関係データ１６２のうち、ラベル名が継承項目、被継承項目、となるデータの個数をもとに、図１１（ａ）に示す継承項目及び被継承項目に基づくスコア１５１を算出する。ただし、ラベル名が「継承項目／被継承項目」のデータは計算に含めない。
ｓ１４３において、関係性抽出部１５は、取得した継承関係データ１６２のうち、ラベル名が固有項目となるデータの個数をもとに、図１１（ａ）に示す固有項目に基づくスコア１５２を算出する。
ここで、スコアの算出に用いる重みは、重みに関する制約１５３を満たす任意の正の数とする。図１１（ｂ）に重みに関する制約１５３を満たす重みの具体例を示す。
【００４９】
ｓ１４４において、関係性抽出部１５は、継承項目及び被継承項目に基づくスコア１５１と固有項目に基づくスコア１５２を合計してテーブルスコア１７１４とする。
図１２に示すように、関係性抽出部１５は、算出したテーブルスコア１７１４に基づく関係性情報１７１を生成し、関係性情報格納部１７に保存する。図１１（ｂ）に継承項目及び被継承項目に基づくスコア１５１と固有項目に基づくスコア１５２とテーブルスコア１７１４の算出例を示す。
【００５０】
ｓ１４５において、関係性抽出部１５は、すべてのテーブルに対して処理が行われたか否かを判定し、すべてのテーブルに対する処理が行われるまで、ｓ１４１からｓ１４４までの処理を繰り返す。
【００５１】
被継承項目・固有項目が多く、継承項目が少ないテーブルはマスタ系のテーブルであり、被継承項目・固有項目が少なく、継承項目が多いテーブルはトランザクション系のテーブルである。関係性情報１７１は、各テーブルがマスタ系のテーブル、トランザクション系のテーブルのどちらに属するかをスコア１５１，１５２に基づき計算したテーブルスコア１７１４で表現するデータである。図１２に示すように、テーブルスコア１７１４が高いほどマスタ系のテーブル１７１０１ａであり、テーブルスコア１７１４が低いほどトランザクション系のテーブル１７１０１ｂと捉えられる。
【００５２】
＜マッチング結果統合処理ｓ１５０＞
図１３を用いて、マッチング結果統合処理ｓ１５０について説明する。
マッチング結果統合処理ｓ１５０において、マッチング結果統合部１８は、テーブル群１０００に含まれる検索対象の連携先テーブルを定義する連携先テーブル定義情報３０００を取得する。マッチング結果統合部１８は、関係性情報１７１に基づいて、連携先テーブルの連携元である連携元テーブルの候補を連携元候補テーブル群として抽出する。
マッチング結果統合部１８は、入力装置３００からの入力データと、データ蓄積部１６および関係性情報格納部１７に保存された情報とから、入力装置３００から与えられたテーブル定義情報に対して、連携元として対応するテーブル定義情報を返却する。
【００５３】
ｓ１５１において、マッチング結果統合部１８は、入力装置３００からデータ連携関係を探索する対象のテーブル定義情報、すなわち連携先テーブル定義情報を取得する。
また、入力装置３００から入力される情報は、図１４の連携先テーブル定義情報入力例３１のようにインスタンス名、スキーマ名、テーブル名、カラム名からなるテーブルの定義情報であってもよいし、連携先テーブル定義情報入力例３２のようにカラム名のみからなるテーブル定義情報であってもよい。
【００５４】
ｓ１５２において、マッチング結果統合部１８は、取得した連携先テーブル定義情報のインスタンス名、スキーマ名、テーブル名、カラム名に対して、データ蓄積部１６に保存されているスキーママッチング結果データ１６３のインスタンス名、スキーマ名、テーブル名、カラム名（１６３１〜１６３４あるいは１６３５〜１６３８）が該当するデータが存在するかを検索する。取得した連携先テーブル定義情報に含まれていないインスタンス名、スキーマ名、テーブル名、カラム名は検索条件に含めない。
【００５５】
ｓ１５３において、スキーママッチング結果データ１６３の検索結果が存在しない場合、ｓ１５Ａに進む。
ｓ１５Ａにおいて、マッチング結果統合部１８は、表示装置２００にスキーママッチング結果データ１６３の検索結果がない旨を出力する。
【００５６】
ｓ１５３において、スキーママッチング結果データ１６３の検索結果が存在する場合、検索結果を検索対象データ群としてｓ１５４に進む。例えば、図１４に示すように、３つ入力された連携先テーブル定義情報入力例３２のどれか１つでもヒットするスキーママッチング結果データ１６３が存在すれば、ｓ１５４の処理に進む。
ｓ１５４において、マッチング結果統合部１８は、関係性情報格納部１７に保存されている関係性情報１７１から、各テーブルのテーブルスコア１７１４を取得する。
【００５７】
＜連携元テーブル群検索処理ｓ１５５＞
ｓ１５５において、マッチング結果統合部１８は、参照関係データ１６１および関係性情報１７１から、次の３つの条件を満たすテーブルの組み合わせを検索する。マッチング結果統合部１８は、３つの条件として「テーブル間が参照関係で結ばれている」、「連携先テーブル定義情報を構成するカラムすべてに連携元となるカラムが存在する」、「参照関係で結ばれるテーブルのテーブルスコア情報の合計値が最大あるいは最小である」を満たすテーブルの組み合わせを、連携元テーブル群１５５１として検索する。
【００５８】
図１５を用いて、本実施の形態に係る連携元テーブル群検索処理ｓ１５５について説明する。
ｓ１５５１で、マッチング結果統合部１８は、スキーママッチング結果データ１６３に含まれる２つのカラム（インスタンス名、スキーマ名、テーブル名、カラム名の組み合わせであり、１６３１〜１６３４、１６３５〜１６３８）それぞれについて、連携元候補カラム群１８１とする。
【００５９】
図１６に連携元候補カラム群１８１の具体例を示す。
この際、連携先テーブル定義情報の同じカラムに対応するスキーママッチング結果データ１６３に含まれている連携元候補カラム群１８１は、同じ値の識別子を持つものとする。すなわち、連携先テーブル定義情報が５つのカラムからなる場合、連携元候補カラム群１８１は５種類の識別子を持つことになる。
【００６０】
ｓ１５５２において、マッチング結果統合部１８は、連携元候補カラム群１８１に含まれるデータから、識別子１８１５の値１つに対して１つずつデータを取り出して連携元候補カラム群の組み合わせ１８２を生成する。
図１７に連携元候補カラム群の組み合わせ１８２の具体例を示す。連携元候補カラム群１８１において、Ｐ００１は２つ、Ｐ００２は３つ、Ｐ００３は２つあり、これらの組み合わせとなるため、２×３×２＝１２パターンとなる。
【００６１】
ｓ１５５３で、マッチング結果統合部１８は、この連携元候補カラム群の組み合わせ１８２に含まれる各テーブル（インスタンス名、スキーマ名、テーブル名で特定される）のペアを連携元候補カラム群の組み合わせに含まれるテーブルのペア１８３として生成する。
図１８に連携元候補カラム群の組み合わせに含まれるテーブルのペア１８３の具体例を示す。例えば、連携元候補カラム群の組み合わせ１８２の組み合わせＩＤ：ＣＯＭＢ０１２から、「注文テーブルとオーナテーブル」、「注文テーブルと商品テーブル」、「オーナテーブルと商品テーブル」の３つのテーブルのペアを生成する。
【００６２】
ｓ１５５４において、最短経路探索部１９は、連携元候補カラム群の組み合わせに含まれるテーブルのペア１８３の各ペアについて、２つのテーブル間を結ぶ最短経路を探索する。
図１９に、最短経路探索部１９が用いるノード情報１９１、辺情報１９２、最短経路情報１９３の具体例を示す。最短経路探索部１９は、ノード情報１９１、辺情報１９２を用いて、連携元候補カラム群の組み合わせに含まれるテーブルのペア１８３の各ペアについて、最短経路を探索し、最短経路情報１９３を生成する。
この際、最短経路探索問題におけるノードはテーブル（インスタンス名、スキーマ名、テーブル名で特定される）であり、ノード情報１９１のノードＩＤ１９１４で識別される。
また、ノード間を結ぶ辺が存在するかはテーブル間の参照関係、すなわち一方を参照元テーブル、もう一方を参照先テーブルとした場合に、参照元テーブルとなるテーブルの情報（インスタンス名、スキーマ名、テーブル名）が参照関係データ１６１に存在するかで定義され、辺が存在する場合は、辺情報１９２としてノード情報１９１のノードＩＤ１９１４のペアと、辺の重み１９２３が最短経路問題における辺となる。なお、辺の重み１９２３は全ノード間で等しい（常に１）であるものとする。
図２６は、連携元候補カラム群の組み合わせに含まれるテーブルのペア１８３と、期待する最短経路探索部１９での探索結果を示す図である。
【００６３】
マッチング結果統合部１８は、最短経路探索部１９による探索の結果、すべてのテーブルのペア間で最短経路が存在しない場合、ｓ１５５２に処理を戻す。マッチング結果統合部１８は、すべてのテーブルのペア間で最短経路が存在しない場合、連携元候補カラム群の組み合わせ１８２では「テーブル間が参照関係で結ばれている」条件が満たせないと判断する。そして、マッチング結果統合部１８は、連携元候補カラム群の組み合わせ生成ｓ１５５２以降の処理を再度実施する。
マッチング結果統合部１８は、最短経路探索部１９による探索の結果、最短経路が存在する場合、ｓ１５５６に進む。
【００６４】
ｓ１５５６において、マッチング結果統合部１８は、最短経路探索部１９から返却された最短経路情報１９３について、任意の個数の組み合わせを生成し、連携元候補カラム群１８１の識別子で示されるカラムが、識別子ごとに１つ以上経路上に存在する最短経路情報の組み合わせを検索する。
図２７は、最短経路情報１９３について任意の個数の組み合わせを生成し、連携元候補カラム群の識別子で示されるカラムが、識別子ごとに１つ以上経路上に存在する最短経路情報の組み合わせを検索する方法を説明する図である。
【００６５】
ｓ１５５７において、マッチング結果統合部１８は、検索した各最短経路情報の組み合わせについて、固有の最短経路識別子を付与し、最短経路情報の組み合わせ１８４とする。
図２０に、最短経路情報の組み合わせ１８４の具体例を示す。
また、マッチング結果統合部１８は、この最短経路情報の組み合わせ１８４を生成すると共に、連携元候補カラム群の組み合わせ１８２に最短経路識別子１８５１を付与し、最短経路から連携可能なカラム群１８５とする。
図２１に、最短経路から連携可能なカラム群１８５の具体例を示す。例えば、ＲＯＵＴＥ００１には「店舗」テーブルと「注文」テーブルが存在し、いずれのテーブルにも店舗ＩＤ、オーナ名が存在するため、どちらのテーブルから連携するかの組み合わせとなる。
【００６６】
ｓ１５５８において、マッチング結果統合部１８は、ノード情報１９１に含まれるノードＩＤのうち、最短経路情報の組み合わせ１８４の始点ノードＩＤ１８４２および終点ノードＩＤ１８４３および経由ノードＩＤ１８４４のいずれにも含まれないものを除外する。マッチング結果統合部１８は、以上のように、最短経路上ノード情報１８６を生成する。
図２２に、最短経路上ノード情報１８６の具体例を示す。
【００６７】
以上のように、連携元テーブル群検索処理ｓ１５５は、最短経路情報の組み合わせ１８４と、最短経路から連携可能なカラム群１８５、最短経路上ノード情報１８６をマッチング結果統合部１８に返却する。
【００６８】
次に、図１３に戻り、マッチング結果統合処理ｓ１５０についての説明を続ける。
ｓ１８６において、マッチング結果統合部１８は、返却された最短経路から連携可能なカラム群１８５について、以下のように処理を行う。マッチング結果統合部１８は、最短経路識別子１８５１ごとに、経路上に存在するノードである始点ノードＩＤ１８４２および終点ノードＩＤ１８４３および経由ノードＩＤ１８４４を取得する。マッチング結果統合部１８は、取得したこれらのノードＩＤを用いて最短経路上ノード情報１８６からインスタンス名、スキーマ名、テーブル名（１８６１〜１８６３）を取得し、関係性情報１７１のテーブルスコア１７１４を取得して合計値を算出する。ただし、始点ノードＩＤ１８４２あるいは終点ノードＩＤ１８４３あるいは経由ノードＩＤ１８４４に同じノードＩＤが複数含まれる場合、１個とみなして合計値を算出する。
図２８は、合計値の算出の具体例を示す図である。
【００６９】
ｓ１８７において、マッチング結果統合部１８は、最短経路情報の組み合わせ１８４のなかで、もっともテーブルスコアの合計値が大きい最短経路情報の組み合わせを識別する最短経路識別子を用いて、最短経路から連携可能なカラム群１８５のデータを取り出す。マッチング結果統合部１８は、取り出したインスタンス名、スキーマ名、テーブル名、カラム名（１８５４〜１８５７）をマスタテーブル優先の連携元テーブル定義情報として返却する。ただし、同じカラム名が複数含まれる場合、関係性情報１７１のテーブルスコア１７１４が大きいテーブルのカラムを選択する。
【００７０】
ｓ１８８において、マッチング結果統合部１８は、最短経路情報の組み合わせ１８４のなかで、もっともテーブルスコアの合計値が小さい最短経路情報の組み合わせを識別する最短経路識別子を用いて、最短経路から連携可能なカラム群１８５のデータを取り出す。マッチング結果統合部１８は、取り出したインスタンス名、スキーマ名、テーブル名、カラム名（１８５４〜１８５７）をトランザクションテーブル優先の連携元テーブル定義情報として返却する。ただし、同じカラム名が複数含まれる場合、関係性情報１７１のテーブルスコア１７１４が小さいテーブルのカラムを選択する。
【００７１】
ｓ１８９において、マッチング結果統合部１８は、マスタテーブル優先の連携元テーブル群およびトランザクションテーブル優先の連携元テーブル群に関して、参照関係データ１６１をもとにテーブル間の参照カラム群を返却する。
すなわち、マスタテーブル優先の連携元テーブル群およびトランザクションテーブル優先の連携元テーブル群の最短経路情報の組み合わせ１８４に関して、以下のように参照カラム群に加える。始点ノードＩＤ１８４２から経由ノードＩＤ１８４４を経由して終点ノードＩＤ１８４３に到達するまでのインスタンス名、スキーマ名、テーブル名（１８６１〜１８６３）を順次参照関係データ１６１の参照元（１６１５〜１６１７）および参照先（１６１１〜１６１３）とする。また、参照元となるインスタンス名、スキーマ名、テーブル名、カラム名（１６１５〜１６１８）および参照先となるインスタンス名、スキーマ名、テーブル名、カラム名（１６１１〜１６１４）を参照カラム群に加える。
以上で、本実施の形態に係るマッチング結果統合処理ｓ１５０についての説明を終わる。
【００７２】
次に、マッチング結果表示処理ｓ１６０について説明する。
表示装置２００は、マッチング結果統合部１８の返却結果を、画面に表示してもよいし、他のプログラムに利用可能な形式でファイルとして保存してもよい。
図２３は、マスタテーブル優先の連携元テーブル定義情報出力例を示す。また、図２４は、トランザクションテーブル優先の連携元テーブル定義情報出力例を示す。
例えば、表示装置２００は、マッチング結果統合部１８から返却された、マスタテーブル優先の連携元テーブル定義情報を図２３に示すマスタテーブル優先の連携元テーブル定義情報出力例２１のように表示する。また、トランザクションテーブル優先の連携元テーブル定義情報を図２４に示すトランザクションテーブル優先の連携元テーブル定義情報出力例２３のように表示する。また、テーブル間の参照カラム群を図２３に示すマスタテーブル優先の連携元テーブル定義情報に関する参照カラム群出力例２２および図２４に示すトランザクションテーブル優先の連携元テーブル定義情報に関する参照カラム群出力例２４のように表示する。
【００７３】
以上で、本実施の形態に係るデータ連携推定装置１００のデータ連携推定方法、データ連携推定処理の動作についての説明を終わる。
【００７４】
＊＊＊効果の説明＊＊＊
以上のように、本実施の形態に係るデータ連携推定装置１００は、複数のシステムの複数のデータベーステーブル間のデータ連携定義をデータベーステーブル定義情報から自動的に推薦する。参照関係抽出部は、連携元として受けとったデータベーステーブルの定義情報から、データベーステーブル間に意味的に存在する参照関係を抽出する。固有／継承項目抽出部は、前記参照関係抽出部から提供された参照関係情報をもとに連携元のデータベーステーブル間で継承項目、被継承項目、固有項目を抽出する。テーブル間関係性抽出部は、前記固有／継承項目抽出部から提供された固有／継承項目情報をもとにテーブルの仮想的な位置情報を数値化する。マッチング結果統合部は、前記テーブル間関係性抽出部から提供されたテーブル間関係性情報をもとに、連携元テーブルと連携先テーブルとのマッチングを実施し連携元候補テーブル群を抽出する。
【００７５】
また、マッチング結果統合部は、前記連携元候補テーブル群と前記連携先テーブルとのマッチングにおいて見つからなかった項目について、不足する項目をもつデータベーステーブルと前記連携元候補テーブル群との結合可否を判断する。そして、マッチング結果統合部は、結合可能な場合に結合するための結合キーとなる結合カラム群を報告する。
【００７６】
データ連携推定装置によれば、データベースの定義情報のみから、連携先テーブル定義情報に対する連携元テーブル群として、マスタテーブルを優先した連携元テーブル群と、トランザクションテーブルを優先した連携元テーブル群とを返却することが可能となる。マスタテーブルを優先した連携元テーブル群は、参照される一方で自身が参照することは少なく、固有カラムが多い。トランザクションテーブルを優先した連携元テーブル群は、参照する一方で自身が参照されることは少なく、固有カラムが少ない。また、これらのテーブル群を結合するための結合キーとなるカラムの情報を併せて返却することが可能となる。
【００７７】
さらに、本実施の形態に係るデータ連携推定装置１００の効果について、他の技術と比較することにより説明する。
例えば、発行されたクエリを処理するような処理形態を取る技術がある。この技術の場合、推定精度を高めるためにはすべての発行クエリを利用する必要があるが、一般に膨大な発行クエリをすべて保有しておくことはシステムの容量上現実的ではない場合が多い。また、発行クエリをすべて利用できたとしても利用者による試行錯誤的な発行クエリと、システムにより発行された正当なクエリの判別は困難であり、誤りが混入する可能性がある。
さらに、複数のデータベース間でのクエリ発行はアプリケーションが間に入り、クエリ発行を媒介するため、アプリケーション内でのデータ連携は発行クエリから読み取ることはできず、複数のデータベースに跨ったデータ連携の設計は困難である。
以上により、発行クエリを利用する技術では、適用できるシステムの範囲が利用可能な発行クエリの数や、クエリ発行を媒介するアプリケーションにより制限され、全システムを対象として実施することが困難である。また、データ連携関係の自動推薦のためには発行クエリの準備が必須であるため、例えば連携先テーブルが新規に作成するテーブルであり、まだ発行クエリが存在しない場合は利用できない。
【００７８】
なお、発行クエリの準備が必要なく、テーブル定義情報のようなメタデータのみからスキーママッチング技術によりテーブル間の参照関係を抽出する技術もある。このような技術では、テーブル定義情報は静的な情報のため、データ連携関係の推薦に必要なデータが入手しやすいという性質がある。また、テーブル定義情報を用いて対応関係を抽出するため、利用者によるクエリ発行や、アプリケーションによるクエリの媒介に影響されず、全システムを対象とした連携関係の自動推薦のようにスコープを広げた適用が可能である。
スキーママッチング技術は類似のデータ項目を見つけ出すという技術である。このため、複数システムのデータベースを対象とする処理では、同義のカラムや類似の参照関係が多数存在する可能性もあり、スキーママッチング技術としては正しい対応関係であっても、データ連携関係としては使用できない関係が多数検出されてしまう。
【００７９】
本実施の形態に係るデータ連携推定装置１００によれば、データ連携関係の自動推薦を実施するために発行クエリが必要ではなく、テーブル定義情報などのメタデータのみで実施可能である。よって、データ連携関係を探索するシステム範囲を広く設定できる。この結果、データ連携の対象となるシステム全体を考慮した全体最適解を見つけ出し、検出漏れを最小限にできる効果がある。
また、データ連携関係の自動推薦では探索スコープを広く取ると、本来連携元とすべきテーブル群以外の候補が検出される可能性がある。そして、本来連携元とすべきテーブルのコピーや変形（例えば、マスタテーブルからデータを連携すべき場合に、類似項目がトランザクションテーブルに存在する場合）を連携元としてデータ連携定義を実施してしまう可能性がある。この結果、作成したデータ連携は本来連携元とすべきテーブルではなく、そのコピーや変形と依存関係を持ってしまうことが発生する。このように本来必要のないデータ連携が定義されてしまうこと、すなわち部分最適解を回避する効果がある。
【００８０】
上記の実施の形態では、テーブル定義抽出部、参照関係抽出部、データ関係抽出部、スキーママッチング処理部、関係性抽出部、マッチング結果統合部、最短経路探索部がそれぞれ独立した機能ブロックとしてデータ連携推定装置を構成している。しかし、データ連携推定装置は上記のような構成でなくてもよい。例えば、参照関係抽出部、データ関係抽出部、スキーママッチング処理部、関係性抽出部をひとつの機能ブロックで実現してもよい。また、マッチング結果統合部、最短経路探索部を１つの機能ブロックで実現してもよい。データ連携推定装置の構成は任意である。
【００８１】
また、データ連携推定装置は、１つの装置でなく、複数の装置から構成されたデータ連携推定システムでもよい。データ連携推定装置の機能ブロックは、実施の形態に記載した機能を実現することができれば、任意であり、これらの機能ブロックを、他のどのような組み合わせでデータ連携推定装置を構成しても構わない。
【００８２】
以上、本発明の実施の形態について説明したが、この実施の形態に含まれる発明を部分的に組み合わせて実施しても構わない。あるいは、この実施の形態のうち、１つの部分を実施しても構わない。あるいは、この実施の形態のうち、２つ以上を部分的に組み合わせて実施しても構わない。
なお、以上の実施の形態は、本質的に好ましい例示であって、本発明、その適用物や用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【００８３】
１１  テーブル定義抽出部、１２  参照関係抽出部、１３  データ関係抽出部、１４  スキーママッチング処理部、１５  関係性抽出部、１６  データ蓄積部、１７  関係性情報格納部、１８  マッチング結果統合部、１９  最短経路探索部、２１，２２，２３，２４  出力例、３１，３２  入力例、１００  データ連携推定装置、１０１  連携元データベース定義情報、１０２  連携先データベース定義情報、１１１  テーブル所在情報、１１２  テーブル定義情報、１２１  探索用参照元テーブル、１２２  探索用参照先テーブル、１５１，１５２  スコア、１５３  制約、１６１  参照関係データ、１６２  継承関係データ、１６３  スキーママッチング結果データ、１７１  関係性情報、１８１  連携元候補カラム群、１８２  連携元候補カラム群の組み合わせ、１８３  テーブルのペア、１８４  最短経路情報の組み合わせ、１８５  最短経路から連携可能なカラム群、１８６  最短経路上ノード情報、１９１  ノード情報、１９２  辺情報、１９３  最短経路情報、２００  表示装置、３００  入力装置、９０１  プロセッサ、９０２  補助記憶装置、９０３  メモリ、９０４  通信装置、９０５  入力インタフェース、９０６  ディスプレイインタフェース、９０７  入力装置、９０８  ディスプレイ、９１０  信号線、９１１，９１２  ケーブル、９０４１  レシーバー、９０４２  トランスミッター、１０００  テーブル群、１２１１  データベース定義情報、１５５１  テーブル群、１６３４，１６３８  カラム名、１６３９  スキーママッチングスコア、１７１４  テーブルスコア、１８１５  識別子、１８４２  始点ノード、１８４３  終点ノード、１８４４  経由ノード、１８５１  最短経路識別子、１９１４  ノードＩＤ、１９２３  辺の重み、３０００  連携先テーブル定義情報、１６２０１  複数のテーブルの各テーブルのカラム、１６２０２  カラム特性、１６３０１  類似度、１７１０１  テーブル特性、１７１０１ａ  マスタ系のテーブル、１７１０１ｂ  トランザクション系のテーブル、ｓ１１０  データベース定義情報抽出処理、ｓ１２０  参照関係抽出処理、ｓ１３０  スキーママッチング処理、ｓ１３０ａ  データ関係抽出処理、ｓ１４０  関係性抽出処理、ｓ１５０  マッチング結果統合処理、ｓ１５５  連携元テーブル群検索処理、ｓ１６０  マッチング結果表示処理。
【図１】
2016136354.tif 000003
【図２】
2016136354.tif 000004
【図３】
2016136354.tif 000005
【図４】
2016136354.tif 000006
【図５】
2016136354.tif 000007
【図６】
2016136354.tif 000008
【図７】
2016136354.tif 000009
【図８】
2016136354.tif 000010
【図９】
2016136354.tif 000011
【図１０】
2016136354.tif 000012
【図１１】
2016136354.tif 000013
【図１２】
2016136354.tif 000014
【図１３】
2016136354.tif 000015
【図１４】
2016136354.tif 000016
【図１５】
2016136354.tif 000017
【図１６】
2016136354.tif 000018
【図１７】
2016136354.tif 000019
【図１８】
2016136354.tif 000020
【図１９】
2016136354.tif 000021
【図２０】
2016136354.tif 000022
【図２１】
2016136354.tif 000023
【図２２】
2016136354.tif 000024
【図２３】
2016136354.tif 000025
【図２４】
2016136354.tif 000026
【図２５】
2016136354.tif 000027
【図２６】
2016136354.tif 000028
【図２７】
2016136354.tif 000029
【図２８】
2016136354.tif 000030