JP2016136354A - データ連携推定装置、データ連携推定方法及びプログラム - Google Patents

データ連携推定装置、データ連携推定方法及びプログラム Download PDF

Info

Publication number
JP2016136354A
JP2016136354A JP2015011570A JP2015011570A JP2016136354A JP 2016136354 A JP2016136354 A JP 2016136354A JP 2015011570 A JP2015011570 A JP 2015011570A JP 2015011570 A JP2015011570 A JP 2015011570A JP 2016136354 A JP2016136354 A JP 2016136354A
Authority
JP
Japan
Prior art keywords
data
relationship
cooperation
column
tables
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015011570A
Other languages
English (en)
Other versions
JP6253601B2 (ja
Inventor
佐藤 彰洋
Akihiro Sato
彰洋 佐藤
理華 河端
Rika Kawabata
理華 河端
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2015011570A priority Critical patent/JP6253601B2/ja
Publication of JP2016136354A publication Critical patent/JP2016136354A/ja
Application granted granted Critical
Publication of JP6253601B2 publication Critical patent/JP6253601B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】テーブルの論理的な位置づけを認識した上で、データ連携の要件に応じた連携元テーブル群を的確に生成する。【解決手段】参照関係データ161を抽出する参照関係抽出部12と、スキーママッチング結果データ163を抽出するスキーママッチング処理部14と、参照関係データ161とスキーママッチング結果データ163とに基づいて、継承関係データ162を生成するデータ関係抽出部13と、継承関係データ162に基づいて、テーブルスコアを算出し、算出したテーブルスコアとテーブルとを対応付けた関係性情報171を生成する関係性抽出部15と、連携先テーブル定義情報を取得し、関係性情報171に基づいて、連携先テーブルの連携元である連携元テーブルの候補を連携元候補テーブル群として抽出するマッチング結果統合部18とを備える。【選択図】図1

Description

本発明は、データ連携推定装置、データ連携推定方法及びプログラムに関するものである。
システム統合などにより必要となるデータベースの統合処理や、複数システム間でデータを送受信する処理にともなって、システム別のデータベース間のデータ連携、あるいは、同じデータベース内の別々のテーブル間でのデータ連携が必要となる。データ連携では、連携先となるテーブルに対して、どのテーブルのカラムからデータを抽出すればよいかという連携元テーブルを定義する必要がある。データ連携関係を定義するためには、テーブル間の関係性、すなわち参照関係を特定する必要がある上に、テーブルの論理的な位置づけを特定する必要がある。
非特許文献1には、データベースに対して実施されたデータ操作として発行されたクエリを読み込み、発行されたクエリに含まれる結合条件を用いてテーブル間の参照関係を自動抽出する技術が開示されている。
非特許文献2には、テーブル定義情報のようなメタデータのみからスキーママッチング技術によりテーブル間の参照関係を抽出する技術が開示されている。
Hazem Elmeleegy and Jaewoo Lee and El Kindi Rezig and Mourad Ouzzani and Ahmed Elmagarmid,U−MAP:A System for Usage−Based Schema Matching and Mapping,SIGMOD’11 Proceedings of the 2011 ACM SIGMOD international conference on Management of data,2011 佐藤 彰洋、鹿島 理華、谷垣 宏一、山足 光義,スキーマ構成文字列と主キー制約情報に基づく外部参照関係の推定,The 28th Annual Conference of the Japanese Society for Artificial Intelligence,2014
非特許文献1のような発行クエリを利用する技術では、適用できるシステムの範囲が利用可能な発行クエリの数や、クエリ発行を媒介するアプリケーションにより制限され、全システムを対象として実施することが困難であるという課題がある。
またデータ連携関係の自動推薦のためには発行クエリの準備が必須であるため、例えば連携先テーブルが新規に作成するテーブルであり、まだ発行クエリが存在しない場合は利用できないという課題も存在する。
非特許文献2は、スキーママッチング技術は類似のデータ項目を見つけ出すという技術であるため、複数システムのデータベースを対象とする処理では、同義のカラムや類似の参照関係が多数存在する可能性がある。このため、スキーママッチング技術としては正しい対応関係であっても、データ連携関係としては使用できない関係が多数検出されてしまうという課題がある。
また、データ連携関係の自動推薦に固有の要件である、テーブルがマスタテーブルかトランザクションテーブルかという論理的な位置づけを認識したうえで、データ連携の要件に応じた連携元テーブル群を生成する必要がある点については考慮されていない。
本発明は、テーブルの論理的な位置づけを認識した上で、データ連携の要件に応じた連携元テーブル群を的確に生成することを目的とする。
本発明に係るデータ連携推定装置は、
カラムを有するテーブルを複数含むテーブル群からカラムの参照関係を表す参照関係データを抽出する参照関係抽出部と、
前記テーブル群から抽出される2つのテーブルのカラム同士の類似度を算出し、前記類似度が閾値以上である2つのテーブルのカラム同士をスキーママッチング結果データとして抽出するスキーママッチング処理部と、
前記参照関係データと前記スキーママッチング結果データとに基づいて、複数のテーブルの各テーブルのカラムのカラム特性を判定し、判定した結果を継承関係データとして生成するデータ関係抽出部と、
前記継承関係データに基づいて、前記テーブルのテーブル特性を表すテーブルスコアを算出し、算出したテーブルスコアと前記テーブルとを対応付けた関係性情報を生成する関係性抽出部と、
前記テーブル群に含まれる検索対象の連携先テーブルを定義する連携先テーブル定義情報を取得し、前記関係性情報に基づいて、前記連携先テーブルの連携元である連携元テーブルの候補を連携元候補テーブル群として抽出するマッチング結果統合部と
を備える。
本発明に係るデータ連携推定装置は、データ関係抽出部が、各テーブルのカラムのカラム特性を判定し、判定した結果を継承関係データとして生成し、関係性抽出部が、継承関係データに基づいて、テーブルのテーブル特性を表すテーブルスコアとテーブルとを対応付けた関係性情報を生成し、マッチング結果統合部が、関係性情報に基づいて、連携先テーブルの連携元である連携元テーブルの候補を連携元候補テーブル群として抽出するので、テーブルの論理的な位置づけであるテーブル特性を認識した上で、データ連携の要件に応じた連携元候補テーブル群を的確に生成することができる。
実施の形態1に係るデータ連携推定装置のブロック構成図。 実施の形態1に係るデータ連携推定装置のハードウェア構成図。 実施の形態1に係るデータ連携推定装置のデータ連携推定方法、データ連携推定処理の動作を示すフロー図。 実施の形態1に係るデータベース定義情報1211の構成図。 実施の形態1に係る参照関係データ161の構成図。 実施の形態1に係るスキーママッチング処理s130、データ関係抽出処理s130aのフロー図。 実施の形態1に係るスキーママッチング結果データ163の構成図。 実施の形態1に係る継承関係データ162の構成図。 実施の形態1に係る探索用参照元テーブルと探索用参照先テーブルとの構成図。 実施の形態1に係る関係性抽出処理s140のフロー図。 実施の形態1に係る関係性抽出部によるスコア計算を示す図であり、(a)はスコア算出式、(b)は継承項目及び被継承項目に基づくスコア151と固有項目に基づくスコア152とテーブルスコア1714の算出例。 実施の形態1に係る関係性情報の構成図。 実施の形態1に係るマッチング結果統合処理s150のフロー図。 実施の形態1に係る連携先テーブル定義情報入力例。 実施の形態1に係る連携元テーブル群検索処理s155のフロー図。 実施の形態1に係る連携元候補カラム群181の具体例。 実施の形態1に係る連携元候補カラム群の組み合わせ182の具体例。 実施の形態1に係る連携元候補カラム群の組み合わせに含まれるテーブルのペア183の具体例。 実施の形態1に係る最短経路探索部19が用いるノード情報191、辺情報192、最短経路情報193の具体例。 実施の形態1に係る最短経路情報の組み合わせ184の具体例。 実施の形態1に係る最短経路から連携可能なカラム群185の具体例。 実施の形態1に係る最短経路上ノード情報186の具体例。 実施の形態1に係るマスタテーブル優先の連携元テーブル定義情報出力例。 実施の形態1に係るトランザクションテーブル優先の連携元テーブル定義情報出力例。 実施の形態1に係るテーブル構成例の全体像を示す図。 実施の形態1に係る連携元候補カラム群の組み合わせに含まれるテーブルのペア183と期待する最短経路探索部での探索結果とを示す図。 最短経路情報193について任意の個数の組み合わせを生成し、連携元候補カラム群の識別子で示されるカラムが識別子ごとに1つ以上経路上に存在する最短経路情報の組み合わせを検索する方法を説明する図。 実施の形態1に係る合計値の算出例。
実施の形態1.
***構成の説明***
図1を用いて、本実施の形態に係るデータ連携推定装置100の構成について説明する。
データ連携推定装置100は、テーブル定義抽出部11、参照関係抽出部12、データ関係抽出部13、スキーママッチング処理部14、関係性抽出部15、データ蓄積部16、関係性情報格納部17、マッチング結果統合部18、最短経路探索部19を備える。
また、データ連携推定装置100には、連携元データベース定義情報101、連携先データベース定義情報102、表示装置200、入力装置300が接続される。
表示装置200は、データ連携推定装置100から出力される返却結果を画面表示するプログラムであってもよいし、返却結果を入力値として利用する別の装置であってもよい。
入力装置300は、データ連携推定装置100に対して、テーブル定義情報を入力するための入力装置たるキーボード、マウス、通信ボードであってもよいし、テーブル定義情報を出力する装置あるいはプログラムであってもよい。
連携元データベース定義情報101及び連携先データベース定義情報102には、連携元及び連携先となる複数のシステムのデータベースを定義するデータベース定義情報1211が格納される。
連携元データベース定義情報101及び連携先データベース定義情報102は、カラムを有するテーブルを複数含むテーブル群1000の例である。
テーブル定義抽出部11は、連携元データベース定義情報101及び連携先データベース定義情報102からデータベース定義情報1211を抽出し、参照関係抽出部12及びデータ関係抽出部13に出力する。データベース定義情報1211には、複数のテーブルが定義されている。
参照関係抽出部12は、カラムを有するテーブルを複数含むテーブル群1000からカラムの参照関係を表す参照関係データ161を抽出する。参照関係抽出部12は、テーブル定義抽出部11からデータベース定義情報1211を取得し、任意の2つのテーブル間の意味的な参照関係である参照関係データ161を抽出し、データ蓄積部16へ保存する。
データ関係抽出部13は、テーブル定義抽出部11からデータベース定義情報1211を取得し、任意の2テーブルの組み合わせを生成し、2テーブルの組み合わせのそれぞれのテーブル定義情報をスキーママッチング処理部14に引き渡す。データ関係抽出部13は、固有/継承関係抽出部とも称される。
スキーママッチング処理部14は、テーブル群1000から抽出される2つのテーブルのカラム同士の類似度を算出し、類似度が閾値以上である2つのテーブルのカラム同士をスキーママッチング結果データ163として抽出する。スキーママッチング処理部14は、スキーママッチング処理を実行することにより、類似度をスキーママッチングスコア1639として算出する。
スキーママッチング処理部14は、データ関係抽出部13からの2テーブルの組み合わせを入力としてスキーママッチング処理を実施し、スキーママッチング結果データ163を出力する。
データ関係抽出部13は、参照関係データ161とスキーママッチング結果データ163とに基づいて、複数のテーブルの各テーブルのカラムのカラム特性を判定し、判定した結果を継承関係データ162として生成する。データ関係抽出部13は、複数のテーブルの各テーブルのカラムが継承項目と被継承項目と固有項目とのいずれであるかを判定する。データ関係抽出部13は、この判定により、複数のテーブルの各テーブルのカラムのカラム特性を判定する。
データ関係抽出部13は、参照関係データ161とスキーママッチング結果データ163とに基づいて、継承関係データ162を生成する。継承関係データ162は、固有/継承関係データとも称される。
データ蓄積部16は、メモリあるいはハードディスクあるいはSSD(ソリッドステートドライブ)等により構成される記憶領域である。データ蓄積部16には、参照関係データ161、継承関係データ162、スキーママッチング結果データ163が存在する。
関係性抽出部15は、継承関係データ162に基づいて、テーブルのテーブル特性を表すテーブルスコア1714を算出し、算出したテーブルスコア1714とテーブルとを対応付けた関係性情報171を生成する。関係性抽出部15は、テーブル特性として、テーブルがマスタ系のテーブルであるかトランザクション系のテーブルであるかを表すテーブルスコア1714を算出する。
すなわち、関係性抽出部15は、継承関係データ162に基づいて、テーブルの仮想的な位置情報を数値化した関係性情報171を生成する。関係性情報171は、テーブルスコア情報、関係性データとも称される。
関係性情報格納部17は、メモリあるいはハードディスクあるいはSSD(ソリッドステートドライブ)等により構成される記憶領域である。関係性情報格納部17には、関係性情報171が存在する。
マッチング結果統合部18は、テーブル群1000に含まれる検索対象の連携先テーブルを定義する連携先テーブル定義情報3000を取得する。マッチング結果統合部18は、関係性情報171に基づいて、連携先テーブルの連携元である連携元テーブルの候補を連携元候補テーブル群として抽出する。マッチング結果統合部18は、関係性情報171に基づいて、連携元テーブルと連携先テーブルとのマッチングを実施し、連携元候補テーブル群を抽出する。
マッチング結果統合部18は、連携元候補テーブル群から、連携先テーブルのカラムの連携元をテーブル特性の異なるテーブル毎に出力する。マッチング結果統合部18は、連携先テーブルのカラムの連携元のカラムとして、マスタ系のテーブルのカラムとトランザクション系のテーブルのカラムとを出力する。
マッチング結果統合部18は、連携先テーブルのカラムの連携元がない場合、不足するカラムを有するテーブルと連携元候補テーブル群との結合可否を判断し、結合可能な場合に結合するためのキーとなる結合カラム群を報告する。
最短経路探索部19は、テーブル間が参照関係で結ばれている場合に2つのテーブルを結ぶ最短経路情報193を抽出する。
図2を用いて、データ連携推定装置100のハードウェア構成例について説明する。
データ連携推定装置100はコンピュータである。
データ連携推定装置100は、プロセッサ901、補助記憶装置902、メモリ903、通信装置904、入力インタフェース905、ディスプレイインタフェース906といったハードウェアを備える。
プロセッサ901は、信号線910を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
入力インタフェース905は、入力装置907に接続されている。
ディスプレイインタフェース906は、ディスプレイ908に接続されている。
プロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。
プロセッサ901は、例えば、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
補助記憶装置902は、例えば、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)である。
メモリ903は、例えば、RAM(Random Access Memory)である。
通信装置904は、データを受信するレシーバー9041及びデータを送信するトランスミッター9042を含む。
通信装置904は、例えば、通信チップ又はNIC(Network Interface Card)である。
入力インタフェース905は、入力装置907のケーブル911が接続されるポートである。
入力インタフェース905は、例えば、USB(Universal Serial Bus)端子である。
ディスプレイインタフェース906は、ディスプレイ908のケーブル912が接続されるポートである。
ディスプレイインタフェース906は、例えば、USB端子又はHDMI(登録商標)(High Definition Multimedia Interface)端子である。
入力装置907は、例えば、マウス、キーボード又はタッチパネルである。
ディスプレイ908は、例えば、LCD(Liquid Crystal Display)である。
補助記憶装置902には、図1に示すテーブル定義抽出部11、参照関係抽出部12、データ関係抽出部13、スキーママッチング処理部14、関係性抽出部15、マッチング結果統合部18、最短経路探索部19(以下、テーブル定義抽出部11、参照関係抽出部12、データ関係抽出部13、スキーママッチング処理部14、関係性抽出部15、マッチング結果統合部18、最短経路探索部19をまとめて「部」と表記する)の機能を実現するプログラムが記憶されている。
このプログラムは、メモリ903にロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。
更に、補助記憶装置902には、OS(Operating System)も記憶されている。
そして、OSの少なくとも一部がメモリ903にロードされ、プロセッサ901はOSを実行しながら、「部」の機能を実現するプログラムを実行する。
図2では、1つのプロセッサ901が図示されているが、データ連携推定装置100が複数のプロセッサ901を備えていてもよい。
そして、複数のプロセッサ901が「部」の機能を実現するプログラムを連携して実行してもよい。
また、「部」の処理の結果を示す情報やデータや信号値や変数値が、メモリ903、補助記憶装置902、又は、プロセッサ901内のレジスタ又はキャッシュメモリにファイルとして記憶される。
「部」を「サーキットリー」で提供してもよい。
また、「部」を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。また、「処理」を「回路」又は「工程」又は「手順」又は「部」に読み替えてもよい。
「回路」及び「サーキットリー」は、プロセッサ901だけでなく、ロジックIC又はGA(Gate Array)又はASIC(Application Specific Integrated Circuit)又はFPGA(Field−Programmable Gate Array)といった他の種類の処理回路をも包含する概念である。
なお、プログラムプロダクトと称されるものは、ブロック構成図に示す「部」の機能を実現するプログラムが記録された記憶媒体、記憶装置などであり、見た目の形式に関わらず、コンピュータ読み取り可能なプログラムをロードしているものである。
***動作の説明***
図3を用いて、本実施の形態に係るデータ連携推定装置100のデータ連携推定方法、データ連携推定処理の動作について説明する。
<データベース定義情報抽出処理s110>
s110において、テーブル定義抽出部11は、連携元データベース定義情報101および連携先データベース定義情報102から、テーブルを定義する情報をデータベース定義情報1211として抽出する。テーブル定義抽出部11は、データ連携設計の対象となる連携元データベース定義情報101および連携先データベース定義情報102から、データベース定義情報1211を、データ定義言語(DDL)、XMLファイルなどにより受け取る。あるいは、テーブル定義抽出部11は、データベースに接続してテーブル定義情報を取得するSQL文の発行などによって受け取り、参照関係抽出部12およびデータ関係抽出部13に引き渡す。
図25は、本実施の形態におけるテーブル構成例の全体像を示す図である。図4は、図25のテーブル構成に基づくデータベース定義情報1211を示す図である。
図25に示すように、本実施の形態では、発注システムが店舗テーブル、注文テーブル、商品テーブルを有し、人事システムはオーナテーブルを有するものとする。
図4に示すように、データベース定義情報1211は、テーブル所在情報111と、テーブル定義情報112とから構成される。
図4に示すテーブル所在情報111の第1行目は、「発注システム」というインスタンスの「SVR001」というスキーマにおける「店舗」テーブルであるという情報である。また、テーブル定義情報112には、「店舗」テーブルに所属するカラムとして「店舗ID」と「オーナID」と「オーナ名」と「店舗住所」とが存在し、「店舗ID」は単独で主キーであることが設定されている。
<参照関係抽出処理s120>
参照関係抽出処理s120において、参照関係抽出部12は、カラムを有するテーブルを複数含むテーブル群1000からカラムの参照関係を表す参照関係データ161を抽出する。
参照関係抽出部12は、テーブル定義抽出部11から引き渡されたテーブル定義情報の集合であるテーブル群におけるテーブル同士の組み合わせについて、テーブル所在情報111とテーブル定義情報112との情報を受け取る。テーブルについてのテーブル所在情報111及びテーブル定義情報112の情報を単にテーブル定義情報と称する場合もある。
参照関係抽出部12は、受け取ったテーブル同士の組み合わせについて参照関係データ161の情報を出力する。参照関係抽出部12は、レコードデータの値から推測する方法などの技術及び付加的な人的作業によって実現する。
図5を用いて、参照関係データ161の構成について説明する。
参照関係データ161は、参照先のテーブルのカラムと参照元のテーブルのカラムとで何らかの意味的な関係があることを示している。
参照関係抽出部12は、参照関係データ161の抽出方法として上記のような技術や作業を用い、2つのテーブル間で参照関係にあるカラムデータを抽出する。
本実施の形態では、図4に示すように、店舗、注文、商品、オーナの4つのテーブルがあるものとする。参照関係抽出部12は、これらのテーブルから2つを組み合わせ、各組み合わせの2つのテーブル間に関して参照関係の有無を抽出し、図5に示す参照関係データ161の結果を得る。図5に示す参照関係データ161では、以下の結果が得られている。
(1)店舗テーブル→オーナテーブル(オーナID)。
(2)注文テーブル→店舗テーブル(店舗ID)。
(3)注文テーブル→商品テーブル(商品ID)。
例えば、上記の(2)は、店舗IDについて店舗テーブルは注文テーブルより上位であることを示している。
<スキーママッチング処理s130>
スキーママッチング処理s130において、スキーママッチング処理部14は、テーブル群1000から抽出される2つのテーブルのカラム同士の類似度16301を算出する。スキーママッチング処理部14は、類似度16301が閾値以上である2つのテーブルのカラム同士をスキーママッチング結果データ163として抽出する。
<データ関係抽出処理s130a>
データ関係抽出処理s130aについて説明する。
データ関係抽出処理s130aにおいて、データ関係抽出部13は、参照関係データ161とスキーママッチング結果データ163とに基づいて、複数のテーブルの各テーブルのカラム16201のカラム特性16202を判定する。そして、データ関係抽出部13は、判定した結果を継承関係データ162として生成する。継承関係データ162の構成の例を図8に示し、後で説明する。
図6を用いて、スキーママッチング処理部14によるスキーママッチング処理s130及びデータ関係抽出部13によるデータ関係抽出処理s130aについて説明する。
s131において、データ関係抽出部13は、テーブル定義抽出部11からデータベース定義情報1211を受け取る。データベース定義情報1211は、複数のテーブルのテーブル定義情報を含むテーブル群である。
s132において、データ関係抽出部13は、データ蓄積部16から参照関係データ161を受け取る。
s133において、データ関係抽出部13は、テーブル群から任意の2テーブルの組み合わせを生成する。ただし、同じテーブル同士では組み合わせとしない。データ関係抽出部13は、生成した2つのテーブルの組み合わせのそれぞれのテーブル所在情報111およびテーブル定義情報112をスキーママッチング処理部14に引き渡す。
s134において、データ関係抽出部13は、スキーママッチング結果データ163を出力する。
図7を用いて、本実施の形態に係るスキーママッチング結果データ163の構成について説明する。
スキーママッチング処理部14は、2つのテーブルの組み合わせのそれぞれのテーブル所在情報111およびテーブル定義情報112を入力として、スキーママッチング処理を実行する。スキーママッチング処理部14は、スキーママッチング処理を実行し、各テーブルに属するカラム間の類似度16301を0〜1.0の間の数値で表現したスキーママッチングスコア1639を算出する。
スキーママッチング処理では、4つのテーブルから2つずつ組み合わせ、各組み合わせの2つのテーブル間に関してスキーママッチング処理を実行する。そして、スキーママッチングスコアが閾値以上のデータをスキーママッチング結果データ163として抽出する。図7の例では、スキーママッチング結果の中で、店舗テーブルの「店舗ID」と「オーナID」カラムに関する結果を抜粋して記載している。
データ関係抽出部13は、スキーママッチング処理部14によるスキーママッチング処理の結果を取得する。データ関係抽出部13は、スキーママッチング処理部14の結果に対して、一定の閾値を設け、スキーママッチングスコア1639の値が閾値以上となるスキーママッチング結果データ163をデータ蓄積部16に保存する。ここで得られるスキーママッチング結果データ163は、ある2つのテーブル間で、類似度が閾値以上となるカラムのペアとなる。
s135において、データ関係抽出部13は、スキーママッチングスコア1639の値が閾値以上となるスキーママッチング結果データ163が存在する場合、s136に進む。
s135において、データ関係抽出部13は、スキーママッチングスコア1639の値が閾値以上となるスキーママッチング結果データ163が存在しない場合、s138に進む。
s136において、データ関係抽出部13は、継承項目あるいは被継承項目のラベル付与を行う。
継承項目あるいは被継承項目のラベル付与では、参照関係データ161のインスタンス名、スキーマ名、テーブル名(1611〜1613、1615〜1617のペア)を参照する。参照した結果、スキーママッチング結果データ163のインスタンス名、スキーマ名、テーブル名(1631〜1633、1635〜1637のペア)に合致するものが存在する場合、継承関係データ162をデータ蓄積部16に保存する。
ここで、スキーママッチング結果データ163に含まれる2つのテーブルのうち、一方は参照関係データ161の「参照先」に合致し、もう一方は参照関係データ161の「参照元」に合致するが、いずれに合致するかで以降の処理が異なる。なお、スキーママッチング結果データ163に含まれる2つのテーブルは、インスタンス名、スキーマ名、テーブル名で特定される。よって、一方のテーブルは参照関係データ161の「参照先」となるインスタンス名、スキーマ名、テーブル名(1611〜1613)に合致する。また、もう一方のテーブルは参照関係データ161の「参照元」となるインスタンス名、スキーマ名、テーブル名(1615〜1617)に合致する。
参照関係データ161の「参照先」に合致した方は、スキーママッチング結果データ163のカラム名1634あるいはカラム名1638は被継承項目となる。そして、インスタンス名、スキーマ名、テーブル名、カラム名および被継承項目のラベルを、図8のように継承関係データ162の第1行目としてデータ蓄積部16に保存する。ここで、参照関係データ161の「参照先」のインスタンス名、スキーマ名、テーブル名(1611〜1613)にインスタンス名、スキーマ名、テーブル名(1631〜1633あるいは1635〜1637)が合致する。
ただし、既に同一のインスタンス名、スキーマ名、テーブル名、カラム名(1621〜1624)を持つ継承関係データ162が存在する場合、ラベル名を上書きする。この際、既にラベル名に継承項目が入っている場合は、継承項目/被継承項目とし、既に被継承項目が入っている場合には変更を行わない。既に固有項目が入っている場合には、被継承項目に上書きする。
一方、参照関係データ161の「参照元」のインスタンス名、スキーマ名、テーブル名(1615〜1617)にインスタンス名、スキーマ名、テーブル名(1631〜1633あるいは1635〜1637)が合致した方は、スキーママッチング結果データ163のカラム名1634あるいはカラム名1638は継承項目となる。この場合、「参照元」と合致しなかった方、すなわち「参照先」と合致したスキーママッチング結果データ163のインスタンス名、スキーマ名、テーブル名、カラム名は、継承関係データ162の継承元インスタンス名、継承元スキーマ名、継承元テーブル名、継承元カラム名(1626〜1629)に対応し、継承項目のラベルを図8のように継承関係データ162の2行目としてデータ蓄積部16に保存する。
ただし、既に同一のインスタンス名、スキーマ名、テーブル名、カラム名(1621〜1624)を持つ継承関係データ162が存在する場合、ラベル名を上書きする。この際、既にラベル名に継承項目が入っている場合は変更を行わない。被継承項目が入っている場合には継承項目/被継承項目とする。既に固有項目が入っている場合には、継承項目に上書きする。
次に、さらにデータ連携を探索するための探索処理について説明する。
図9は、探索用連携元と探索用連携先の構成を示す図である。
s137において、データ関係抽出部13は、インスタンス名、スキーマ名、テーブル名で特定される2つのテーブルそれぞれについて、参照関係データ161の「参照元」となるデータが存在する場合に、s137aにおいてこのテーブルを図7に示す探索用参照元テーブル121とする。また、データ関係抽出部13は、インスタンス名、スキーマ名、テーブル名で特定される2つのテーブルそれぞれについて、参照関係データ161の「参照先」となるテーブルを探索用参照先テーブル122に格納する。
この際、探索用参照先テーブル122のテーブルについても、参照関係データ161の「参照元」となるデータが存在する場合に、「参照先」となるテーブルを探索用参照先テーブル122に格納する。すなわち、探索用参照元テーブル121から、参照元から参照先という方向の参照関係によって到達することが可能なテーブルすべてが、探索用参照先テーブル122に格納される。
そして、データ関係抽出部13は、探索用参照元テーブル121と、探索用参照先テーブル122のテーブル間で、スキーママッチングを実施する。データ関係抽出部13は、s137bにおいて共通項目が存在する場合に、s137cにおいて継承項目/被継承項目のラベル付与を行う。s137cにおける継承項目/被継承項目のラベル付与の処理は、s136における継承項目/被継承項目のラベル付与の処理と同様である。
s138において、データ関係抽出部13は、2つのテーブル(インスタンス名、スキーマ名、テーブル名で特定される)それぞれについて、継承関係データ162に継承項目としても被継承項目としても保存されていないカラムを固有項目とし、インスタンス名、スキーマ名、テーブル名、カラム名および固有項目のラベルを図8の第4行目のように継承関係データ162としてデータ蓄積部16に保存する。
s139において、データ関係抽出部13は、任意の2テーブルの組み合わせについて、未処理の組み合わせが存在する場合、スキーママッチング処理部14への引渡し以後の処理を繰り返す。
以上で、データ関係抽出処理s130aの説明を終わる。
<関係性抽出処理s140>
図10を用いて、関係性抽出処理s140について説明する。
関係性抽出処理s140において、関係性抽出部15は、継承関係データ162に基づいて、テーブルのテーブル特性17101を表すテーブルスコアを算出し、算出したテーブルスコアとテーブルとを対応付けた関係性情報171を生成する。
関係性抽出部15は、データ関係抽出部13が保存した継承関係データ162に基づき、図12に示す関係性情報171を関係性情報格納部17に保存する。
s141において、関係性抽出部15は、インスタンス名、スキーマ名、テーブル名で特定される各テーブルについて、継承関係データ162を取得する。取得した継承関係データ162には、テーブルに属する各カラムについて、継承項目、被継承項目、固有項目等のラベル名と、継承項目である場合には継承元のインスタンス名、スキーマ名、テーブル名、カラム名が含まれる。
s142において、関係性抽出部15は、取得した継承関係データ162のうち、ラベル名が継承項目、被継承項目、となるデータの個数をもとに、図11(a)に示す継承項目及び被継承項目に基づくスコア151を算出する。ただし、ラベル名が「継承項目/被継承項目」のデータは計算に含めない。
s143において、関係性抽出部15は、取得した継承関係データ162のうち、ラベル名が固有項目となるデータの個数をもとに、図11(a)に示す固有項目に基づくスコア152を算出する。
ここで、スコアの算出に用いる重みは、重みに関する制約153を満たす任意の正の数とする。図11(b)に重みに関する制約153を満たす重みの具体例を示す。
s144において、関係性抽出部15は、継承項目及び被継承項目に基づくスコア151と固有項目に基づくスコア152を合計してテーブルスコア1714とする。
図12に示すように、関係性抽出部15は、算出したテーブルスコア1714に基づく関係性情報171を生成し、関係性情報格納部17に保存する。図11(b)に継承項目及び被継承項目に基づくスコア151と固有項目に基づくスコア152とテーブルスコア1714の算出例を示す。
s145において、関係性抽出部15は、すべてのテーブルに対して処理が行われたか否かを判定し、すべてのテーブルに対する処理が行われるまで、s141からs144までの処理を繰り返す。
被継承項目・固有項目が多く、継承項目が少ないテーブルはマスタ系のテーブルであり、被継承項目・固有項目が少なく、継承項目が多いテーブルはトランザクション系のテーブルである。関係性情報171は、各テーブルがマスタ系のテーブル、トランザクション系のテーブルのどちらに属するかをスコア151,152に基づき計算したテーブルスコア1714で表現するデータである。図12に示すように、テーブルスコア1714が高いほどマスタ系のテーブル17101aであり、テーブルスコア1714が低いほどトランザクション系のテーブル17101bと捉えられる。
<マッチング結果統合処理s150>
図13を用いて、マッチング結果統合処理s150について説明する。
マッチング結果統合処理s150において、マッチング結果統合部18は、テーブル群1000に含まれる検索対象の連携先テーブルを定義する連携先テーブル定義情報3000を取得する。マッチング結果統合部18は、関係性情報171に基づいて、連携先テーブルの連携元である連携元テーブルの候補を連携元候補テーブル群として抽出する。
マッチング結果統合部18は、入力装置300からの入力データと、データ蓄積部16および関係性情報格納部17に保存された情報とから、入力装置300から与えられたテーブル定義情報に対して、連携元として対応するテーブル定義情報を返却する。
s151において、マッチング結果統合部18は、入力装置300からデータ連携関係を探索する対象のテーブル定義情報、すなわち連携先テーブル定義情報を取得する。
また、入力装置300から入力される情報は、図14の連携先テーブル定義情報入力例31のようにインスタンス名、スキーマ名、テーブル名、カラム名からなるテーブルの定義情報であってもよいし、連携先テーブル定義情報入力例32のようにカラム名のみからなるテーブル定義情報であってもよい。
s152において、マッチング結果統合部18は、取得した連携先テーブル定義情報のインスタンス名、スキーマ名、テーブル名、カラム名に対して、データ蓄積部16に保存されているスキーママッチング結果データ163のインスタンス名、スキーマ名、テーブル名、カラム名(1631〜1634あるいは1635〜1638)が該当するデータが存在するかを検索する。取得した連携先テーブル定義情報に含まれていないインスタンス名、スキーマ名、テーブル名、カラム名は検索条件に含めない。
s153において、スキーママッチング結果データ163の検索結果が存在しない場合、s15Aに進む。
s15Aにおいて、マッチング結果統合部18は、表示装置200にスキーママッチング結果データ163の検索結果がない旨を出力する。
s153において、スキーママッチング結果データ163の検索結果が存在する場合、検索結果を検索対象データ群としてs154に進む。例えば、図14に示すように、3つ入力された連携先テーブル定義情報入力例32のどれか1つでもヒットするスキーママッチング結果データ163が存在すれば、s154の処理に進む。
s154において、マッチング結果統合部18は、関係性情報格納部17に保存されている関係性情報171から、各テーブルのテーブルスコア1714を取得する。
<連携元テーブル群検索処理s155>
s155において、マッチング結果統合部18は、参照関係データ161および関係性情報171から、次の3つの条件を満たすテーブルの組み合わせを検索する。マッチング結果統合部18は、3つの条件として「テーブル間が参照関係で結ばれている」、「連携先テーブル定義情報を構成するカラムすべてに連携元となるカラムが存在する」、「参照関係で結ばれるテーブルのテーブルスコア情報の合計値が最大あるいは最小である」を満たすテーブルの組み合わせを、連携元テーブル群1551として検索する。
図15を用いて、本実施の形態に係る連携元テーブル群検索処理s155について説明する。
s1551で、マッチング結果統合部18は、スキーママッチング結果データ163に含まれる2つのカラム(インスタンス名、スキーマ名、テーブル名、カラム名の組み合わせであり、1631〜1634、1635〜1638)それぞれについて、連携元候補カラム群181とする。
図16に連携元候補カラム群181の具体例を示す。
この際、連携先テーブル定義情報の同じカラムに対応するスキーママッチング結果データ163に含まれている連携元候補カラム群181は、同じ値の識別子を持つものとする。すなわち、連携先テーブル定義情報が5つのカラムからなる場合、連携元候補カラム群181は5種類の識別子を持つことになる。
s1552において、マッチング結果統合部18は、連携元候補カラム群181に含まれるデータから、識別子1815の値1つに対して1つずつデータを取り出して連携元候補カラム群の組み合わせ182を生成する。
図17に連携元候補カラム群の組み合わせ182の具体例を示す。連携元候補カラム群181において、P001は2つ、P002は3つ、P003は2つあり、これらの組み合わせとなるため、2×3×2=12パターンとなる。
s1553で、マッチング結果統合部18は、この連携元候補カラム群の組み合わせ182に含まれる各テーブル(インスタンス名、スキーマ名、テーブル名で特定される)のペアを連携元候補カラム群の組み合わせに含まれるテーブルのペア183として生成する。
図18に連携元候補カラム群の組み合わせに含まれるテーブルのペア183の具体例を示す。例えば、連携元候補カラム群の組み合わせ182の組み合わせID:COMB012から、「注文テーブルとオーナテーブル」、「注文テーブルと商品テーブル」、「オーナテーブルと商品テーブル」の3つのテーブルのペアを生成する。
s1554において、最短経路探索部19は、連携元候補カラム群の組み合わせに含まれるテーブルのペア183の各ペアについて、2つのテーブル間を結ぶ最短経路を探索する。
図19に、最短経路探索部19が用いるノード情報191、辺情報192、最短経路情報193の具体例を示す。最短経路探索部19は、ノード情報191、辺情報192を用いて、連携元候補カラム群の組み合わせに含まれるテーブルのペア183の各ペアについて、最短経路を探索し、最短経路情報193を生成する。
この際、最短経路探索問題におけるノードはテーブル(インスタンス名、スキーマ名、テーブル名で特定される)であり、ノード情報191のノードID1914で識別される。
また、ノード間を結ぶ辺が存在するかはテーブル間の参照関係、すなわち一方を参照元テーブル、もう一方を参照先テーブルとした場合に、参照元テーブルとなるテーブルの情報(インスタンス名、スキーマ名、テーブル名)が参照関係データ161に存在するかで定義され、辺が存在する場合は、辺情報192としてノード情報191のノードID1914のペアと、辺の重み1923が最短経路問題における辺となる。なお、辺の重み1923は全ノード間で等しい(常に1)であるものとする。
図26は、連携元候補カラム群の組み合わせに含まれるテーブルのペア183と、期待する最短経路探索部19での探索結果を示す図である。
マッチング結果統合部18は、最短経路探索部19による探索の結果、すべてのテーブルのペア間で最短経路が存在しない場合、s1552に処理を戻す。マッチング結果統合部18は、すべてのテーブルのペア間で最短経路が存在しない場合、連携元候補カラム群の組み合わせ182では「テーブル間が参照関係で結ばれている」条件が満たせないと判断する。そして、マッチング結果統合部18は、連携元候補カラム群の組み合わせ生成s1552以降の処理を再度実施する。
マッチング結果統合部18は、最短経路探索部19による探索の結果、最短経路が存在する場合、s1556に進む。
s1556において、マッチング結果統合部18は、最短経路探索部19から返却された最短経路情報193について、任意の個数の組み合わせを生成し、連携元候補カラム群181の識別子で示されるカラムが、識別子ごとに1つ以上経路上に存在する最短経路情報の組み合わせを検索する。
図27は、最短経路情報193について任意の個数の組み合わせを生成し、連携元候補カラム群の識別子で示されるカラムが、識別子ごとに1つ以上経路上に存在する最短経路情報の組み合わせを検索する方法を説明する図である。
s1557において、マッチング結果統合部18は、検索した各最短経路情報の組み合わせについて、固有の最短経路識別子を付与し、最短経路情報の組み合わせ184とする。
図20に、最短経路情報の組み合わせ184の具体例を示す。
また、マッチング結果統合部18は、この最短経路情報の組み合わせ184を生成すると共に、連携元候補カラム群の組み合わせ182に最短経路識別子1851を付与し、最短経路から連携可能なカラム群185とする。
図21に、最短経路から連携可能なカラム群185の具体例を示す。例えば、ROUTE001には「店舗」テーブルと「注文」テーブルが存在し、いずれのテーブルにも店舗ID、オーナ名が存在するため、どちらのテーブルから連携するかの組み合わせとなる。
s1558において、マッチング結果統合部18は、ノード情報191に含まれるノードIDのうち、最短経路情報の組み合わせ184の始点ノードID1842および終点ノードID1843および経由ノードID1844のいずれにも含まれないものを除外する。マッチング結果統合部18は、以上のように、最短経路上ノード情報186を生成する。
図22に、最短経路上ノード情報186の具体例を示す。
以上のように、連携元テーブル群検索処理s155は、最短経路情報の組み合わせ184と、最短経路から連携可能なカラム群185、最短経路上ノード情報186をマッチング結果統合部18に返却する。
次に、図13に戻り、マッチング結果統合処理s150についての説明を続ける。
s186において、マッチング結果統合部18は、返却された最短経路から連携可能なカラム群185について、以下のように処理を行う。マッチング結果統合部18は、最短経路識別子1851ごとに、経路上に存在するノードである始点ノードID1842および終点ノードID1843および経由ノードID1844を取得する。マッチング結果統合部18は、取得したこれらのノードIDを用いて最短経路上ノード情報186からインスタンス名、スキーマ名、テーブル名(1861〜1863)を取得し、関係性情報171のテーブルスコア1714を取得して合計値を算出する。ただし、始点ノードID1842あるいは終点ノードID1843あるいは経由ノードID1844に同じノードIDが複数含まれる場合、1個とみなして合計値を算出する。
図28は、合計値の算出の具体例を示す図である。
s187において、マッチング結果統合部18は、最短経路情報の組み合わせ184のなかで、もっともテーブルスコアの合計値が大きい最短経路情報の組み合わせを識別する最短経路識別子を用いて、最短経路から連携可能なカラム群185のデータを取り出す。マッチング結果統合部18は、取り出したインスタンス名、スキーマ名、テーブル名、カラム名(1854〜1857)をマスタテーブル優先の連携元テーブル定義情報として返却する。ただし、同じカラム名が複数含まれる場合、関係性情報171のテーブルスコア1714が大きいテーブルのカラムを選択する。
s188において、マッチング結果統合部18は、最短経路情報の組み合わせ184のなかで、もっともテーブルスコアの合計値が小さい最短経路情報の組み合わせを識別する最短経路識別子を用いて、最短経路から連携可能なカラム群185のデータを取り出す。マッチング結果統合部18は、取り出したインスタンス名、スキーマ名、テーブル名、カラム名(1854〜1857)をトランザクションテーブル優先の連携元テーブル定義情報として返却する。ただし、同じカラム名が複数含まれる場合、関係性情報171のテーブルスコア1714が小さいテーブルのカラムを選択する。
s189において、マッチング結果統合部18は、マスタテーブル優先の連携元テーブル群およびトランザクションテーブル優先の連携元テーブル群に関して、参照関係データ161をもとにテーブル間の参照カラム群を返却する。
すなわち、マスタテーブル優先の連携元テーブル群およびトランザクションテーブル優先の連携元テーブル群の最短経路情報の組み合わせ184に関して、以下のように参照カラム群に加える。始点ノードID1842から経由ノードID1844を経由して終点ノードID1843に到達するまでのインスタンス名、スキーマ名、テーブル名(1861〜1863)を順次参照関係データ161の参照元(1615〜1617)および参照先(1611〜1613)とする。また、参照元となるインスタンス名、スキーマ名、テーブル名、カラム名(1615〜1618)および参照先となるインスタンス名、スキーマ名、テーブル名、カラム名(1611〜1614)を参照カラム群に加える。
以上で、本実施の形態に係るマッチング結果統合処理s150についての説明を終わる。
次に、マッチング結果表示処理s160について説明する。
表示装置200は、マッチング結果統合部18の返却結果を、画面に表示してもよいし、他のプログラムに利用可能な形式でファイルとして保存してもよい。
図23は、マスタテーブル優先の連携元テーブル定義情報出力例を示す。また、図24は、トランザクションテーブル優先の連携元テーブル定義情報出力例を示す。
例えば、表示装置200は、マッチング結果統合部18から返却された、マスタテーブル優先の連携元テーブル定義情報を図23に示すマスタテーブル優先の連携元テーブル定義情報出力例21のように表示する。また、トランザクションテーブル優先の連携元テーブル定義情報を図24に示すトランザクションテーブル優先の連携元テーブル定義情報出力例23のように表示する。また、テーブル間の参照カラム群を図23に示すマスタテーブル優先の連携元テーブル定義情報に関する参照カラム群出力例22および図24に示すトランザクションテーブル優先の連携元テーブル定義情報に関する参照カラム群出力例24のように表示する。
以上で、本実施の形態に係るデータ連携推定装置100のデータ連携推定方法、データ連携推定処理の動作についての説明を終わる。
***効果の説明***
以上のように、本実施の形態に係るデータ連携推定装置100は、複数のシステムの複数のデータベーステーブル間のデータ連携定義をデータベーステーブル定義情報から自動的に推薦する。参照関係抽出部は、連携元として受けとったデータベーステーブルの定義情報から、データベーステーブル間に意味的に存在する参照関係を抽出する。固有/継承項目抽出部は、前記参照関係抽出部から提供された参照関係情報をもとに連携元のデータベーステーブル間で継承項目、被継承項目、固有項目を抽出する。テーブル間関係性抽出部は、前記固有/継承項目抽出部から提供された固有/継承項目情報をもとにテーブルの仮想的な位置情報を数値化する。マッチング結果統合部は、前記テーブル間関係性抽出部から提供されたテーブル間関係性情報をもとに、連携元テーブルと連携先テーブルとのマッチングを実施し連携元候補テーブル群を抽出する。
また、マッチング結果統合部は、前記連携元候補テーブル群と前記連携先テーブルとのマッチングにおいて見つからなかった項目について、不足する項目をもつデータベーステーブルと前記連携元候補テーブル群との結合可否を判断する。そして、マッチング結果統合部は、結合可能な場合に結合するための結合キーとなる結合カラム群を報告する。
データ連携推定装置によれば、データベースの定義情報のみから、連携先テーブル定義情報に対する連携元テーブル群として、マスタテーブルを優先した連携元テーブル群と、トランザクションテーブルを優先した連携元テーブル群とを返却することが可能となる。マスタテーブルを優先した連携元テーブル群は、参照される一方で自身が参照することは少なく、固有カラムが多い。トランザクションテーブルを優先した連携元テーブル群は、参照する一方で自身が参照されることは少なく、固有カラムが少ない。また、これらのテーブル群を結合するための結合キーとなるカラムの情報を併せて返却することが可能となる。
さらに、本実施の形態に係るデータ連携推定装置100の効果について、他の技術と比較することにより説明する。
例えば、発行されたクエリを処理するような処理形態を取る技術がある。この技術の場合、推定精度を高めるためにはすべての発行クエリを利用する必要があるが、一般に膨大な発行クエリをすべて保有しておくことはシステムの容量上現実的ではない場合が多い。また、発行クエリをすべて利用できたとしても利用者による試行錯誤的な発行クエリと、システムにより発行された正当なクエリの判別は困難であり、誤りが混入する可能性がある。
さらに、複数のデータベース間でのクエリ発行はアプリケーションが間に入り、クエリ発行を媒介するため、アプリケーション内でのデータ連携は発行クエリから読み取ることはできず、複数のデータベースに跨ったデータ連携の設計は困難である。
以上により、発行クエリを利用する技術では、適用できるシステムの範囲が利用可能な発行クエリの数や、クエリ発行を媒介するアプリケーションにより制限され、全システムを対象として実施することが困難である。また、データ連携関係の自動推薦のためには発行クエリの準備が必須であるため、例えば連携先テーブルが新規に作成するテーブルであり、まだ発行クエリが存在しない場合は利用できない。
なお、発行クエリの準備が必要なく、テーブル定義情報のようなメタデータのみからスキーママッチング技術によりテーブル間の参照関係を抽出する技術もある。このような技術では、テーブル定義情報は静的な情報のため、データ連携関係の推薦に必要なデータが入手しやすいという性質がある。また、テーブル定義情報を用いて対応関係を抽出するため、利用者によるクエリ発行や、アプリケーションによるクエリの媒介に影響されず、全システムを対象とした連携関係の自動推薦のようにスコープを広げた適用が可能である。
スキーママッチング技術は類似のデータ項目を見つけ出すという技術である。このため、複数システムのデータベースを対象とする処理では、同義のカラムや類似の参照関係が多数存在する可能性もあり、スキーママッチング技術としては正しい対応関係であっても、データ連携関係としては使用できない関係が多数検出されてしまう。
本実施の形態に係るデータ連携推定装置100によれば、データ連携関係の自動推薦を実施するために発行クエリが必要ではなく、テーブル定義情報などのメタデータのみで実施可能である。よって、データ連携関係を探索するシステム範囲を広く設定できる。この結果、データ連携の対象となるシステム全体を考慮した全体最適解を見つけ出し、検出漏れを最小限にできる効果がある。
また、データ連携関係の自動推薦では探索スコープを広く取ると、本来連携元とすべきテーブル群以外の候補が検出される可能性がある。そして、本来連携元とすべきテーブルのコピーや変形(例えば、マスタテーブルからデータを連携すべき場合に、類似項目がトランザクションテーブルに存在する場合)を連携元としてデータ連携定義を実施してしまう可能性がある。この結果、作成したデータ連携は本来連携元とすべきテーブルではなく、そのコピーや変形と依存関係を持ってしまうことが発生する。このように本来必要のないデータ連携が定義されてしまうこと、すなわち部分最適解を回避する効果がある。
上記の実施の形態では、テーブル定義抽出部、参照関係抽出部、データ関係抽出部、スキーママッチング処理部、関係性抽出部、マッチング結果統合部、最短経路探索部がそれぞれ独立した機能ブロックとしてデータ連携推定装置を構成している。しかし、データ連携推定装置は上記のような構成でなくてもよい。例えば、参照関係抽出部、データ関係抽出部、スキーママッチング処理部、関係性抽出部をひとつの機能ブロックで実現してもよい。また、マッチング結果統合部、最短経路探索部を1つの機能ブロックで実現してもよい。データ連携推定装置の構成は任意である。
また、データ連携推定装置は、1つの装置でなく、複数の装置から構成されたデータ連携推定システムでもよい。データ連携推定装置の機能ブロックは、実施の形態に記載した機能を実現することができれば、任意であり、これらの機能ブロックを、他のどのような組み合わせでデータ連携推定装置を構成しても構わない。
以上、本発明の実施の形態について説明したが、この実施の形態に含まれる発明を部分的に組み合わせて実施しても構わない。あるいは、この実施の形態のうち、1つの部分を実施しても構わない。あるいは、この実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
なお、以上の実施の形態は、本質的に好ましい例示であって、本発明、その適用物や用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。
11 テーブル定義抽出部、12 参照関係抽出部、13 データ関係抽出部、14 スキーママッチング処理部、15 関係性抽出部、16 データ蓄積部、17 関係性情報格納部、18 マッチング結果統合部、19 最短経路探索部、21,22,23,24 出力例、31,32 入力例、100 データ連携推定装置、101 連携元データベース定義情報、102 連携先データベース定義情報、111 テーブル所在情報、112 テーブル定義情報、121 探索用参照元テーブル、122 探索用参照先テーブル、151,152 スコア、153 制約、161 参照関係データ、162 継承関係データ、163 スキーママッチング結果データ、171 関係性情報、181 連携元候補カラム群、182 連携元候補カラム群の組み合わせ、183 テーブルのペア、184 最短経路情報の組み合わせ、185 最短経路から連携可能なカラム群、186 最短経路上ノード情報、191 ノード情報、192 辺情報、193 最短経路情報、200 表示装置、300 入力装置、901 プロセッサ、902 補助記憶装置、903 メモリ、904 通信装置、905 入力インタフェース、906 ディスプレイインタフェース、907 入力装置、908 ディスプレイ、910 信号線、911,912 ケーブル、9041 レシーバー、9042 トランスミッター、1000 テーブル群、1211 データベース定義情報、1551 テーブル群、1634,1638 カラム名、1639 スキーママッチングスコア、1714 テーブルスコア、1815 識別子、1842 始点ノード、1843 終点ノード、1844 経由ノード、1851 最短経路識別子、1914 ノードID、1923 辺の重み、3000 連携先テーブル定義情報、16201 複数のテーブルの各テーブルのカラム、16202 カラム特性、16301 類似度、17101 テーブル特性、17101a マスタ系のテーブル、17101b トランザクション系のテーブル、s110 データベース定義情報抽出処理、s120 参照関係抽出処理、s130 スキーママッチング処理、s130a データ関係抽出処理、s140 関係性抽出処理、s150 マッチング結果統合処理、s155 連携元テーブル群検索処理、s160 マッチング結果表示処理。

Claims (9)

  1. カラムを有するテーブルを複数含むテーブル群からカラムの参照関係を表す参照関係データを抽出する参照関係抽出部と、
    前記テーブル群から抽出される2つのテーブルのカラム同士の類似度を算出し、前記類似度が閾値以上である2つのテーブルのカラム同士をスキーママッチング結果データとして抽出するスキーママッチング処理部と、
    前記参照関係データと前記スキーママッチング結果データとに基づいて、複数のテーブルの各テーブルのカラムのカラム特性を判定し、判定した結果を継承関係データとして生成するデータ関係抽出部と、
    前記継承関係データに基づいて、前記テーブルのテーブル特性を表すテーブルスコアを算出し、算出したテーブルスコアと前記テーブルとを対応付けた関係性情報を生成する関係性抽出部と、
    前記テーブル群に含まれる検索対象の連携先テーブルを定義する連携先テーブル定義情報を取得し、前記関係性情報に基づいて、前記連携先テーブルの連携元である連携元テーブルの候補を連携元候補テーブル群として抽出するマッチング結果統合部と
    を備えるデータ連携推定装置。
  2. 前記マッチング結果統合部は、
    前記連携元候補テーブル群から、前記連携先テーブルのカラムの連携元を前記テーブル特性の異なるテーブル毎に出力する請求項1に記載のデータ連携推定装置。
  3. 前記データ関係抽出部は、
    前記複数のテーブルの各テーブルのカラムが継承項目と被継承項目と固有項目とのいずれであるかを判定することにより、前記複数のテーブルの各テーブルのカラムの前記カラム特性を判定する請求項1または2に記載のデータ連携推定装置。
  4. 前記関係性抽出部は、
    前記テーブル特性として、前記テーブルがマスタ系のテーブルであるかトランザクション系のテーブルであるかを表す前記テーブルスコアを算出する請求項1から3のいずれか1項に記載のデータ連携推定装置。
  5. 前記マッチング結果統合部は、
    前記連携先テーブルのカラムの連携元のカラムとして、前記マスタ系のテーブルのカラムと前記トランザクション系のテーブルのカラムとを出力する請求項4に記載のデータ連携推定装置。
  6. 前記スキーママッチング処理部は、
    スキーママッチング処理を実行することにより、前記類似度をスキーママッチングスコアとして算出する請求項1から5のいずれか1項に記載のデータ連携推定装置。
  7. 前記マッチング結果統合部は、
    前記連携先テーブルのカラムの連携元がない場合、不足するカラムを有するテーブルと前記連携元候補テーブル群との結合可否を判断し、結合可能な場合に結合するためのキーとなる結合カラム群を報告する請求項1から6のいずれか1項に記載のデータ連携推定装置。
  8. 参照関係抽出部が、カラムを有するテーブルを複数含むテーブル群からカラムの参照関係を表す参照関係データを抽出し、
    スキーママッチング処理部が、前記テーブル群から抽出される2つのテーブルのカラム同士の類似度を算出し、前記類似度が閾値以上である2つのテーブルのカラム同士をスキーママッチング結果データとして抽出し、
    データ関係抽出部が、前記参照関係データと前記スキーママッチング結果データとに基づいて、複数のテーブルの各テーブルのカラムのカラム特性を判定し、判定した結果を継承関係データとして生成し、
    関係性抽出部が、前記継承関係データに基づいて、前記テーブルのテーブル特性を表すテーブルスコアを算出し、算出したテーブルスコアと前記テーブルとを対応付けた関係性情報を生成し、
    マッチング結果統合部が、前記テーブル群に含まれる検索対象の連携先テーブルを定義する連携先テーブル定義情報を取得し、前記関係性情報に基づいて、前記連携先テーブルの連携元である連携元テーブルの候補を連携元候補テーブル群として抽出するデータ連携推定方法。
  9. カラムを有するテーブルを複数含むテーブル群からカラムの参照関係を表す参照関係データを抽出する参照関係抽出処理と、
    前記テーブル群から抽出される2つのテーブルのカラム同士の類似度を算出し、前記類似度が閾値以上である2つのテーブルのカラム同士をスキーママッチング結果データとして抽出するスキーママッチング処理と、
    前記参照関係データと前記スキーママッチング結果データとに基づいて、複数のテーブルの各テーブルのカラムのカラム特性を判定し、判定した結果を継承関係データとして生成するデータ関係抽出処理と、
    前記継承関係データに基づいて、前記テーブルのテーブル特性を表すテーブルスコアを算出し、算出したテーブルスコアと前記テーブルとを対応付けた関係性情報を生成する関係性抽出処理と、
    前記テーブル群に含まれる検索対象の連携先テーブルを定義する連携先テーブル定義情報を取得し、前記関係性情報に基づいて、前記連携先テーブルの連携元である連携元テーブルの候補を連携元候補テーブル群として抽出するマッチング結果統合処理とをコンピュータに実行させるプログラム。
JP2015011570A 2015-01-23 2015-01-23 データ連携推定装置、データ連携推定方法及びプログラム Expired - Fee Related JP6253601B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015011570A JP6253601B2 (ja) 2015-01-23 2015-01-23 データ連携推定装置、データ連携推定方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015011570A JP6253601B2 (ja) 2015-01-23 2015-01-23 データ連携推定装置、データ連携推定方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2016136354A true JP2016136354A (ja) 2016-07-28
JP6253601B2 JP6253601B2 (ja) 2017-12-27

Family

ID=56512991

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015011570A Expired - Fee Related JP6253601B2 (ja) 2015-01-23 2015-01-23 データ連携推定装置、データ連携推定方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6253601B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019109782A (ja) * 2017-12-19 2019-07-04 富士通株式会社 クエリ生成プログラム、クエリ生成方法およびクエリ生成装置
WO2020008848A1 (ja) * 2018-07-03 2020-01-09 株式会社日立製作所 データ利用支援装置、及びデータ利用支援方法
JP2020144457A (ja) * 2019-03-04 2020-09-10 株式会社日立製作所 データ選定システム、及びデータ選定方法
CN117352187A (zh) * 2023-12-04 2024-01-05 四川互慧软件有限公司 一种患者身份证号码匹配方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004086782A (ja) * 2002-08-29 2004-03-18 Hitachi Ltd 異種データベース統合支援装置
WO2014192116A1 (ja) * 2013-05-30 2014-12-04 三菱電機株式会社 データ連携支援装置及びデータ連携支援方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004086782A (ja) * 2002-08-29 2004-03-18 Hitachi Ltd 異種データベース統合支援装置
WO2014192116A1 (ja) * 2013-05-30 2014-12-04 三菱電機株式会社 データ連携支援装置及びデータ連携支援方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019109782A (ja) * 2017-12-19 2019-07-04 富士通株式会社 クエリ生成プログラム、クエリ生成方法およびクエリ生成装置
JP7081137B2 (ja) 2017-12-19 2022-06-07 富士通株式会社 クエリ生成プログラム、クエリ生成方法およびクエリ生成装置
WO2020008848A1 (ja) * 2018-07-03 2020-01-09 株式会社日立製作所 データ利用支援装置、及びデータ利用支援方法
JP2020008948A (ja) * 2018-07-03 2020-01-16 株式会社日立製作所 データ利用支援装置、及びデータ利用支援方法
JP7093244B2 (ja) 2018-07-03 2022-06-29 株式会社日立製作所 データ利用支援装置、及びデータ利用支援方法
JP2020144457A (ja) * 2019-03-04 2020-09-10 株式会社日立製作所 データ選定システム、及びデータ選定方法
JP7046859B2 (ja) 2019-03-04 2022-04-04 株式会社日立製作所 データ選定システム、及びデータ選定方法
CN117352187A (zh) * 2023-12-04 2024-01-05 四川互慧软件有限公司 一种患者身份证号码匹配方法
CN117352187B (zh) * 2023-12-04 2024-01-30 四川互慧软件有限公司 一种患者身份证号码匹配方法

Also Published As

Publication number Publication date
JP6253601B2 (ja) 2017-12-27

Similar Documents

Publication Publication Date Title
TWI564737B (zh) Web search methods and devices
US20190074072A1 (en) System and method for dynamic document matching and merging
JP6253601B2 (ja) データ連携推定装置、データ連携推定方法及びプログラム
US11204707B2 (en) Scalable binning for big data deduplication
US10482169B2 (en) Recommending form fragments
JP6042974B2 (ja) データ管理装置、データ管理方法及び非一時的な記録媒体
CN109710603B (zh) 数据清洗方法、系统、存储介质及电子设备
JP5844895B2 (ja) データの分散検索システム、データの分散検索方法及び管理計算機
US20140280084A1 (en) Using structured data for search result deduplication
US11550792B2 (en) Systems and methods for joining datasets
CN104199924B (zh) 选择具有快照关系的网络表格的方法及装置
CN107735781A (zh) 存储查询结果的方法和装置、计算设备
US20170109402A1 (en) Automated join detection
JP2019109782A (ja) クエリ生成プログラム、クエリ生成方法およびクエリ生成装置
CN104050264A (zh) 一种生成sql语句的方法和装置
JP2022012940A (ja) 計算機システムおよび貢献度計算方法
JP6145562B2 (ja) 情報構造化システム及び情報構造化方法
TWI547888B (zh) A method of recording user information and a search method and a server
JP5954742B2 (ja) 文書を検索する装置及び方法
JP2010086437A (ja) 検索システム
CN110678854B (zh) 数据查询的方法和装置
WO2016132472A1 (ja) データ検索装置及びデータ検索方法及びデータ検索プログラム
CN115458103B (zh) 医疗数据处理方法、装置、电子设备及可读存储介质
TW201416890A (zh) 文章資訊提供方法以及系統
US11151158B2 (en) Data duplication device and computer readable medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170123

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171013

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171031

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171128

R150 Certificate of patent or registration of utility model

Ref document number: 6253601

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees