JPWO2015052812A1 - データ連携支援装置及びデータ連携支援方法 - Google Patents

データ連携支援装置及びデータ連携支援方法 Download PDF

Info

Publication number
JPWO2015052812A1
JPWO2015052812A1 JP2015541381A JP2015541381A JPWO2015052812A1 JP WO2015052812 A1 JPWO2015052812 A1 JP WO2015052812A1 JP 2015541381 A JP2015541381 A JP 2015541381A JP 2015541381 A JP2015541381 A JP 2015541381A JP WO2015052812 A1 JPWO2015052812 A1 JP WO2015052812A1
Authority
JP
Japan
Prior art keywords
unit
tables
information
columns
data
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
JP2015541381A
Other languages
English (en)
Other versions
JP6017055B2 (ja
Inventor
光輝 柴
光輝 柴
光義 山足
光義 山足
範之 熊沢
範之 熊沢
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
Application granted granted Critical
Publication of JP6017055B2 publication Critical patent/JP6017055B2/ja
Publication of JPWO2015052812A1 publication Critical patent/JPWO2015052812A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

データ連携において、連携先となるテーブルのカラムに格納するデータを、どのテーブルのカラムから抽出すればよいかを、効率よく、的確に判断するために、データ連携支援装置を提供する。データ連携支援装置は、連携先となるテーブル以外のテーブルから、参照関係によって結ばれた2つ以上のテーブルの組み合わせであって、連携先となるテーブルの主キーになっている2つ以上のカラムと対応するカラムが当該2つ以上のテーブルに分かれて各テーブルの主キーとして存在する組み合わせを抽出する。データ連携支援装置は、連携先となるテーブルと、抽出した組み合わせに含まれるテーブルを結合したテーブルとのスキーママッチングの結果に基づき、抽出した組み合わせを、連携先となるテーブルのデータ連携に利用することを推奨するかどうか判断する。

Description

本発明は、データ連携支援装置及びデータ連携支援方法に関するものである。
システム間の連携、あるいは、システム同士の統合に伴って、システム別のデータベース間のデータ連携、あるいは、同じデータベース内の別々のテーブル間のデータ連携が必要となる。データ連携では、連携先となるテーブル(即ち、連携先テーブル)のカラムに格納するデータを、どのテーブル(即ち、連携元テーブル)のカラムから抽出すればよいかというデータ連携関係を定義する必要がある。
データ連携関係を定義するためには、テーブル間のカラムの対応関係を何らかの手段で検出する必要がある。さらに、連携元テーブルから連携先テーブルのカラムの組み合わせであるテーブルレイアウトがテーブル操作によって作成できる必要がある。このようなデータ構造の変換が実施できないと、連携先テーブルにデータを格納することができない。連携先テーブルとレイアウトが一致する連携元テーブルがなく、2つ以上の連携元テーブルからデータを集めて連携先テーブルを作成する場合には、テーブル間のカラムの類似性によって対応関係を判断するだけでは不十分である。実際にそれら2つ以上の連携元テーブルに対して結合(例えば、JOIN)操作を実施できることが必要である。結合される連携元テーブルは、それぞれ結合操作のための共通カラム(即ち、結合キー)を持つ必要がある。
データ連携関係の定義は、一般的に、人間が各システムのデータベースのテーブル定義書に記述されたテーブル定義情報等を参照して作成する。その作業は、データベース技術と業務内容を理解した高度な技術者が労働集約的に実施する必要があった。
データ連携関係を自動抽出する技術として、データベースのテーブルのレコード(即ち、実データ)を利用する技術が存在する(例えば、特許文献1参照)。
特許文献1では、連携元テーブルと連携先テーブルの全て又はサンプリングしたレコードのデータを取り込む。データの内容を解析し、対応関係を推測しながら、連携元テーブルのレコードから連携先テーブルのレコードを作成する。ただし、テーブル定義情報の利用は限定的である。
類似するカラムの対応関係を自動抽出する技術として、いわゆるスキーママッチング技術が存在する(例えば、非特許文献1参照)。
スキーママッチング技術では、例えば、2つのテーブル、あるいは、それぞれテーブルの集合体である2つのスキーマの構造に関するテーブル定義情報を入力として受け取る。テーブルのカラムの名称及びデータ型、テーブル間の関係等から、カラムの類似度を判断する。これにより、異なるテーブルのカラム間の対応関係を抽出する。
スキーママッチング技術では、主にテーブル定義情報を利用する。レコード(即ち、実データ)を利用する場合もあるが、利用は限定的である。一般的に、レコードから年月日のデータが「YYMMDD」なのか「YYYY/MM/DD」なのかというようなカラムのフォーマット情報を抽出し、メタデータとして利用する。ここで、「Y」は年の1桁数値、「M」は月の1桁数値、「D」は日の1桁数値である。例えば、2013年4月1日は「YYYY/MM/DD」のフォーマットで表すと「2013/04/01」となる。
スキーママッチング技術では、類似度の判断基準としてカラムの名称が最もよく利用されてきた。システム間ではカラムの命名規則が異なることが多いため、スキーママッチング技術は、システム間のデータ連携関係を自動抽出する処理には向かないと考えられてきた。しかし、命名規則の差異を吸収するためのデータ項目辞書の整備により、命名規則が異なるシステム間で類似するカラムの抽出が可能となっている。データ項目辞書の整備は、以前は人手で行われていたが、近年は辞書の自動生成技術が発展してきている。そのため、データ連携関係の自動抽出のような分野でも、スキーママッチング技術の利用が可能になってきている。
米国特許第8082243号明細書
Ronald Fagin, Laura M. Haas, Mauricio Hernandez, Renee J. Miller, Lucian Popa, and Yannis Velegrakis, "Clio: Schema Mapping Creation and Data Exchange", Lecture Notes in Computer Science Volume 5600, 2009
特許文献1では、連携元テーブルと連携先テーブルのレコードを利用してデータ連携関係を自動抽出する。データ連携関係の抽出精度を高めるためには、全てのレコードを利用することが必要である。その場合、大量のレコードに対する処理が必要となる。そのような処理を大規模なシステムに対して実行した場合、処理時間が実用的な時間に収まらない可能性が高い。必然的に処理の対象とするシステムを絞り込まざるを得ない。その結果、自動抽出されるデータ連携関係は局所的な解となり、全体的な視点で見直した場合、不要なデータ連携が発見されることになる。
利用するレコードの数を減らすためにサンプリング技術を活用することも可能である。しかし、テーブル間の参照関係を考慮しながらサンプリングを行うことは困難である。サンプリングの結果、本来は参照関係のあるテーブルが、参照関係のないように見えてしまう可能性がある。
以上のように、特許文献1のようなレコードの利用が必須となる技術は、レコードの量によって適用できるシステムの範囲が制限されるという課題がある。
また、特許文献1のような技術では、事前にレコードの準備が必須であるという課題がある。例えば、連携先テーブルが新規に作成するテーブルであるとすると、利用できるレコードが存在しないため、データ連携関係を自動抽出できない。
非特許文献1のようなスキーママッチング技術では、レコードの準備は必須ではない。テーブル定義情報のようなメタデータのみから、類似するカラムの対応関係を抽出できる。そのため、レコードを利用する技術と比較すると、扱うデータ量が少なくて済むという利点がある。大規模なシステム全体を処理の対象とすることができる。
しかし、スキーママッチング技術は、類似するカラムを見つけ出す技術である。そのため、データ連携関係のみではなく、テーブル間の参照整合性制約及び意味的な参照関係も区別なしに抽出してしまうという課題がある。特に、データベース内に同義のカラムが多数存在する場合、スキーママッチング技術の観点からは正しい対応関係であっても、データ連携関係ではない対応関係が多数検出されてしまう。
また、スキーママッチング技術では、データ連携を行うために連携元テーブルから連携先テーブルのレイアウトをテーブル操作によって作成する必要がある点について考慮されていないという課題がある。
本発明は、例えば、データ連携において、連携先となるテーブルのカラムに格納するデータを、どのテーブルのカラムから抽出すればよいかを、効率よく、的確に判断することを目的とする。
本発明の一の態様に係るデータ連携支援装置は、
複数のテーブルを有するデータベースのデータ連携を支援する装置であり、
前記複数のテーブルのそれぞれに含まれる複数のカラムのそれぞれが主キーになっているかどうかを示す主キー情報と、前記複数のテーブルのそれぞれに含まれる複数のカラムのそれぞれに格納されるデータの属性を示す属性情報と、前記複数のテーブル間の参照関係を示す参照関係情報とを記憶する情報記憶部と、
前記複数のテーブルから、主キーになっている2つ以上のカラムを含みデータ連携の連携先となる1つのテーブルを選択するテーブル選択部と、
前記情報記憶部に記憶された主キー情報に基づき、前記テーブル選択部により選択されたテーブルに含まれる複数のカラムから、前記2つ以上のカラムを特定するカラム特定部と、
前記情報記憶部に記憶された主キー情報と属性情報と参照関係情報とに基づき、前記複数のテーブルのうち前記テーブル選択部により選択されたテーブル以外のテーブルから、参照関係によって結ばれた2つ以上のテーブルの組み合わせであって、前記カラム特定部により特定されたカラムと対応するカラムが当該2つ以上のテーブルに分かれて各テーブルの主キーとして存在する組み合わせを抽出するテーブル抽出部と、
前記テーブル抽出部により抽出された組み合わせに含まれるテーブルを結合して1つのテーブルを作成するテーブル結合部と、
前記テーブル選択部により選択されたテーブルと前記テーブル結合部により作成されたテーブルとのスキーママッチングを行い、スキーママッチングの結果に基づき、前記テーブル抽出部により抽出された組み合わせを、前記テーブル選択部により選択されたテーブルのデータ連携に利用することを推奨するかどうか判断する推奨判断部とを備える。
本発明の一の態様によれば、データ連携支援装置が、データ連携において、連携先となるテーブルのカラムに格納するデータを、どのテーブルのカラムから抽出すればよいかを、効率よく、的確に判断することができる。
実施の形態1に係るデータ連携支援装置の構成を示すブロック図。 実施の形態1に係る入力情報の例を示す表。 実施の形態1に係る入力情報と参照関係情報とが合成された情報の例を示す表。 実施の形態1に係るデータ連携支援装置の動作の例を示すフローチャート。 実施の形態1に係る連携元情報と参照関係情報とが合成された情報と、暫定仮想テーブル情報との例を示す表。 実施の形態1に係る連携元情報と参照関係情報とが合成された情報の別の例を示す表。 実施の形態1に係る連携元情報と参照関係情報とが合成された情報と、暫定仮想テーブル情報との別の例を示す表。 実施の形態1に係るデータ連携支援装置の動作の例を示すフローチャート。 実施の形態1に係る仮想テーブルと目標テーブルとのスキーママッチングを示す概念図。 実施の形態1に係るデータ連携支援装置の動作の例を示すフローチャート。 実施の形態1に係る連携元テーブルと目標テーブルとのスキーママッチングを示す概念図。 実施の形態1に係る連携元テーブルと仮想テーブルとのスキーママッチングを示す概念図。 実施の形態1に係るデータ連携支援装置のハードウェア構成の一例を示す図。
以下、本発明の実施の形態について、図を用いて説明する。
実施の形態1.
図1は、本実施の形態に係るデータ連携支援装置100の構成を示すブロック図である。
図1において、データ連携支援装置100は、複数のテーブルを有するデータベースのデータ連携を支援する装置である。データ連携支援装置100により支援されるデータ連携は、データベースの異なるインスタンス間のデータ連携であってもよいし、同じインスタンスの異なるスキーマ間のデータ連携であってもよいし、同じスキーマの異なるテーブル間のデータ連携であってもよい。
データ連携支援装置100は、情報記憶部101、テーブル選択部102、カラム特定部103、テーブル抽出部104、テーブル結合部105、推奨判断部106を備える。
図1には示していないが、データ連携支援装置100は、処理装置、記憶装置、入力装置、出力装置等のハードウェアを備える。ハードウェアはデータ連携支援装置100の各部によって利用される。例えば、処理装置は、データ連携支援装置100の各部でデータ又は情報の演算、加工、読み取り、書き込み等を行うために利用される。記憶装置は、そのデータ又は情報を記憶するために利用される。入力装置は、そのデータ又は情報を入力するために利用される。出力装置は、そのデータ又は情報を出力するために利用される。
情報記憶部101は、連携元情報111、連携先情報112、参照関係情報113、入力情報114を、記憶装置を利用して記憶する。
連携元情報111は、データ連携の連携元となるデータベース(即ち、連携元データベース)の複数のテーブル(即ち、連携元テーブル)を定義する情報である。連携元情報111には、連携元データベースの主キー情報及び属性情報が含まれる。連携元データベースの主キー情報とは、複数の連携元テーブルのそれぞれに含まれる複数のカラムのそれぞれが主キーになっているかどうかを示す情報である。連携元データベースの属性情報とは、複数の連携元テーブルのそれぞれに含まれる複数のカラムのそれぞれに格納されるデータの属性(例えば、カラム名、データ型)を示す情報である。
連携先情報112は、データ連携の連携先となるデータベース(即ち、連携先データベース)の複数のテーブル(即ち、連携先テーブル)を、前述したデータ連携関係が既に与えられた範囲内で定義する情報である。1つの連携先テーブルの各カラムに格納するデータを、どのテーブル(即ち、連携元テーブル、他の連携先テーブル、あるいは、これらのテーブルの組み合わせ)のカラムから抽出すればよいかが既に決まっている場合、その連携先テーブルは、データ連携関係が既に与えられた連携先テーブルとなる。連携先情報112には、連携先データベースの主キー情報及び属性情報のうち、データ連携関係が既に与えられた連携先テーブルの主キー情報及び属性情報が含まれる。連携先データベースの主キー情報とは、複数の連携先テーブルのそれぞれに含まれる複数のカラムのそれぞれが主キーになっているかどうかを示す情報である。連携先データベースの属性情報とは、複数の連携先テーブルのそれぞれに含まれる複数のカラムのそれぞれに格納されるデータの属性(例えば、カラム名、データ型)を示す情報である。
参照関係情報113は、テーブル間の参照関係を示す情報である。本実施の形態では、テーブル間の参照整合性制約だけでなく、意味的な参照関係も「参照関係」とみなすものとする。2つのテーブルのうち一方のテーブルに含まれるカラムが他方のテーブルに含まれるカラムに対応しており、当該一方のテーブルのカラムが外部キーに設定されている場合、参照整合性制約があることになる。2つのテーブルのうち一方のテーブルに含まれるカラムが他方のテーブルに含まれるカラムに対応しているが、当該一方のテーブルのカラムが外部キーに設定されていない場合、意味的な参照関係があることになる。参照関係情報113は、任意の方法で作成することができる。
入力情報114は、クライアント装置200(例えば、パーソナルコンピュータ)のユーザにより手動で作成されるか、あるいは、クライアント装置200で実行されるクライアントプログラムにより自動的に作成される。入力情報114は、クライアント装置200から入力装置を介して入力される。入力情報114は、データ連携関係が未だ与えられていない連携先テーブル(即ち、目標テーブル)を定義する情報である。入力情報114には、目標テーブルの主キー情報及び属性情報が含まれる。
テーブル選択部102は、情報記憶部101に記憶された入力情報114を読み取る。テーブル選択部102は、読み取った入力情報114により定義された目標テーブルを選択する。本実施の形態では、目標テーブルに含まれる複数のカラムのうち、2つ以上のカラムが主キーになっているものとする。よって、テーブル選択部102は、連携元データベース及び連携先データベースの複数のテーブルから、主キーになっている2つ以上のカラムを含みデータ連携の連携先となる1つのテーブルを選択することになる。
カラム特定部103は、テーブル選択部102により読み取られた入力情報114に含まれる主キー情報に基づき、テーブル選択部102により選択された目標テーブルに含まれる複数のカラムから、主キーになっているカラム(即ち、前述した2つ以上のカラム)を特定する。
テーブル抽出部104は、情報記憶部101に記憶された連携元情報111と連携先情報112と参照関係情報113とを読み取る。テーブル抽出部104は、読み取った連携元情報111及び連携先情報112に含まれる主キー情報及び属性情報と、読み取った参照関係情報113とに基づき、連携元データベース及び連携先データベースの複数のテーブルのうちテーブル選択部102により選択された目標テーブル以外のテーブルから、以下の(1)及び(2)の条件を満たす2つ以上のテーブルの組み合わせを抽出する。
(1)当該2つ以上のテーブルが参照関係によって結ばれている。例えば、3つのテーブルのうち1つ目のテーブルが2つ目のテーブルを参照し、当該2つ目のテーブルが3つ目のテーブルを参照しているとき、当該3つのテーブルは参照関係によって結ばれていることになる。
(2)カラム特定部103により特定されたカラムと対応するカラムが当該2つ以上のテーブルに分かれて各テーブルの主キーとして存在する。例えば、2つのカラムがカラム特定部103により特定され、2つのテーブルの一方に、当該2つのカラムの一方と類似するカラムが主キーとして存在し、当該2つのテーブルの他方に、当該2つのカラムの他方と類似するカラムが主キーとして存在しているとき、当該2つのカラムと対応するカラムが当該2つのテーブルに分かれて各テーブルの主キーとして存在していることになる。
テーブル結合部105は、テーブル抽出部104により抽出された組み合わせに含まれるテーブルを結合して1つのテーブル(即ち、仮想テーブル)を作成する。
推奨判断部106は、テーブル選択部102により選択された目標テーブルとテーブル結合部105により作成された仮想テーブルとのスキーママッチングを行う。推奨判断部106は、そのスキーママッチングの結果に基づき、テーブル抽出部104により抽出された組み合わせを、テーブル選択部102により選択された目標テーブルのデータ連携に利用することを推奨すべきかどうか判断する。「推奨すべき」場合、推奨判断部106は、テーブル抽出部104により抽出された組み合わせを、テーブル選択部102により選択された目標テーブルのデータ連携に利用することを推奨する推奨情報161を、出力装置を介してクライアント装置200へ出力する。「推奨すべきでない」場合、推奨判断部106は、テーブル選択部102により選択された目標テーブルのデータ連携に利用できるテーブルがない旨、あるいは、テーブル抽出部104により抽出された組み合わせを、テーブル選択部102により選択された目標テーブルのデータ連携に利用することを推奨しない旨を示す情報を、出力装置を介してクライアント装置200へ出力する。
本実施の形態において、テーブル抽出部104により2つ以上の組み合わせが抽出された場合、テーブル結合部105は、テーブル抽出部104により抽出された組み合わせごとに、組み合わせに含まれるテーブルを結合して仮想テーブルを作成する。推奨判断部106は、テーブル抽出部104により抽出された組み合わせごとに、テーブル選択部102により選択された目標テーブルとテーブル結合部105により作成された仮想テーブルとのスキーママッチングを行う。推奨判断部106は、そのスキーママッチングの結果に基づき、テーブル抽出部104により抽出された組み合わせのうち1つの組み合わせを、テーブル選択部102により選択された目標テーブルのデータ連携に利用することを推奨する推奨情報161を出力する。
本実施の形態において、推奨判断部106は、テーブル抽出部104により抽出された組み合わせを、テーブル選択部102により選択された目標テーブルのデータ連携に利用することを推奨する場合、テーブル選択部102により選択された目標テーブルに含まれる複数のカラムから、テーブル結合部105により作成された仮想テーブルに、対応するカラムが存在しないカラムを抽出する。推奨判断部106は、そのようなカラムを抽出した場合、連携元データベース及び連携先データベースの複数のテーブルのうちテーブル選択部102により選択された目標テーブル以外のテーブルから、抽出したカラムと対応するカラムを含み、テーブル結合部105により作成された仮想テーブルに結合可能なテーブルを検出する。具体的には、推奨判断部106は、情報記憶部101に記憶された連携元情報111と連携先情報112とを読み取る。推奨判断部106は、読み取った連携元情報111及び連携先情報112に含まれる主キー情報及び属性情報に基づき、連携元データベース及び連携先データベースの複数のテーブルのうちテーブル選択部102により選択された目標テーブル以外のテーブルから、抽出したカラムと対応するカラムを含むテーブルを検出する。推奨判断部106は、そのようなテーブルを検出した場合、検出したテーブルとテーブル結合部105により作成された仮想テーブルとが結合できるかどうか判断する。「結合できる」場合、推奨判断部106は、検出したテーブルを、テーブル抽出部104により抽出された組み合わせに追加した上で、推奨情報161を出力する。「結合できない」場合、推奨判断部106は、検出したテーブルを無視して、推奨情報161を出力する。即ち、推奨判断部106は、抽出したカラムと対応するカラムを含み、テーブル結合部105により作成された仮想テーブルに結合可能なテーブルを検出した場合、検出したテーブルとテーブル抽出部104により抽出されたテーブルとの組み合わせを、テーブル選択部102により選択された目標テーブルのデータ連携に利用することを推奨する推奨情報161を出力する。
本実施の形態において、推奨判断部106のスキーママッチングを行う部分には、従来のスキーママッチング技術を実装することができる。
前述したように、本実施の形態では、入力情報114により定義された目標テーブルに含まれる複数のカラムのうち、2つ以上のカラムが主キーになっている。目標テーブルに含まれる複数のカラムのうち、1つのカラムのみが主キーになっている場合、その目標テーブルについては、任意の方法を用いてデータ連携関係を抽出することができる。
以下では、データ連携支援装置100の動作(即ち、本実施の形態に係るデータ連携支援方法)の例を説明する。
図2は、入力情報114の例を示す表である。
図2において、入力情報114には、カラム名、データ型、主/外部キーの情報(即ち、属性情報及び主キー情報)が含まれる。前述したように、入力情報114は、目標テーブルを定義する情報である。例えば、入力情報114では、目標テーブルの「会社コード」、「注文詳細ID」、「注文ID」カラムが主キーであることが示されている。
図2に示した入力情報114がクライアント装置200によって入力され、情報記憶部101に記憶されると、テーブル選択部102は、その入力情報114を読み取る。テーブル選択部102は、読み取った入力情報114により定義された目標テーブルを選択する。
図3は、入力情報114と参照関係情報113とが合成された情報の例を示す表である。
図3において、入力情報114に含まれる主/外部キーの情報は、目標テーブルの参照関係情報113でもある。前述したように、参照関係情報113は、テーブル間の参照関係を示す情報である。例えば、参照関係情報113では、目標テーブルの主キーである「会社コード」、「注文詳細ID」、「注文ID」カラムが外部キーでもあることが示されている。参照関係情報113では、「店舗ID」、「商品コード」、「ブランドID」カラムも外部キーであることが示されている。
図3で黒塗りされている項目は、外部キーの参照先のテーブルに、対応するカラムが存在するカラムである。例えば、「店舗ID」カラムの参照先のテーブルには、「店舗名」、「店舗住所」、「店長_社員ID」、「店長名」カラムに対応するカラムが存在する。
参照関係情報113は、前述したように、任意の方法で作成することができる。例えば、カラム特定部103に、参照関係情報113を作成する機能を実装することができる。その場合、カラム特定部103は、図2に示した入力情報114に基づき、テーブル選択部102により選択された目標テーブルに含まれる複数のカラムのそれぞれについて、他のテーブルのカラムを参照できるかどうか判断する。例えば、カラム特定部103は、目標テーブルと他のテーブルとのスキーママッチングを行う。スキーママッチングの結果、「店舗ID」カラムと対応するカラムを主キーとして含み、かつ、「店舗名」、「店舗住所」、「店長_社員ID」、「店長名」カラムと対応するカラムを非主キーとして含むテーブルが抽出されると、カラム特定部103は、「店舗ID」、「店舗名」、「店舗住所」、「店長_社員ID」、「店長名」カラムについて、参照関係情報113を作成又は更新する。参照関係情報113では、「店舗ID」カラムが外部キーに設定される。参照関係情報113では、「店舗名」、「店舗住所」、「店長_社員ID」、「店長名」カラムが「店舗ID」カラムに紐付けられる。
図4は、データ連携支援装置100の動作の例を示すフローチャートである。図5は、連携元情報111と参照関係情報113とが合成された情報と、後述する暫定仮想テーブル情報301との例を示す表である。
ステップS11において、カラム特定部103は、入力情報114に含まれる主/外部キーの情報(即ち、目標テーブルの主キー情報)を参照する。カラム特定部103は、参照した情報に基づき、テーブル選択部102により選択された目標テーブルの主キーになっているカラムを特定する。カラム特定部103は、特定したカラムの一覧を示すキー項目情報302を生成する。
例えば、カラム特定部103は、図3に示した入力情報114に含まれる主/外部キーの情報から、図5に示すようなキー項目情報302を生成する。キー項目情報302では、目標テーブルの「会社コード」、「注文詳細ID」、「注文ID」カラムが主キーであることが示されている。
ステップS12において、テーブル抽出部104は、情報記憶部101から連携元情報111と連携先情報112と参照関係情報113とを取得する。また、テーブル抽出部104は、カラム特定部103からキー項目情報302を取得する。
例えば、テーブル抽出部104は、図5に示すような連携元情報111と参照関係情報113とが合成された情報を取得する。連携元情報111は、図3に示した入力情報114と同様の形式で、各連携元テーブルを定義する情報である。参照関係情報113は、図3に示した参照関係情報113と同様の形式で、テーブル間の参照関係を示す情報である。注文テーブルの連携元情報111では、注文テーブルの「注文ID」カラムが主キーであることが示されている。注文テーブルの参照関係情報113では、注文テーブルの「会社コード」カラムが外部キーであることが示されている。注文テーブルの参照関係情報113には、注文テーブルの「会社コード」カラムが会社テーブルの「会社コード」カラムを参照することを示す参照関係レコード303が含まれている。会社テーブルの連携元情報111では、会社テーブルの「会社コード」カラムが主キーであることが示されている。会社テーブルの参照関係情報113では、会社テーブルに外部キーがないことが示されている。注文詳細テーブルの連携元情報111では、注文詳細テーブルの「注文詳細ID」、「注文ID」カラムが主キーであることが示されている。注文詳細テーブルの参照関係情報113では、注文詳細テーブルの「注文ID」、「店舗ID」カラムが外部キーであることが示されている。注文詳細テーブルの参照関係情報113には、注文詳細テーブルの「注文ID」カラムが注文テーブルの「注文ID」カラムを参照することを示す参照関係レコード304が含まれている。
ステップS13において、テーブル抽出部104は、ステップS12で取得した連携元情報111と連携先情報112とキー項目情報302とを参照して、目標テーブルの主キーになっているカラムの全て又は一部と対応するカラムが含まれるテーブルを選択する。テーブル抽出部104は、選択したテーブルを現時点の仮想テーブルとみなす。
例えば、テーブル抽出部104は、キー項目情報302で示されている「注文ID」カラムと、注文テーブルの連携元情報111で示されている「注文ID」カラムとが類似すると判定し、注文テーブルを選択する。テーブル抽出部104は、注文テーブルを現時点の仮想テーブルとみなす。この例では、注文テーブルは、連携元テーブルの1つであるが、目標テーブルとは異なる連携先テーブルの1つであってもよい。
ステップS14において、テーブル抽出部104は、ステップS12で取得した連携元情報111と連携先情報112とキー項目情報302とを参照して、目標テーブルの主キーになっているカラムのうち、現時点の仮想テーブルに含まれていないカラムがあるかどうか判定する。テーブル抽出部104は、現時点の仮想テーブルに含まれていないカラムがあれば、ステップS15に進む。テーブル抽出部104は、目標テーブルの主キーになっているカラムの全てが現時点の仮想テーブルに含まれていれば、ステップS17に進む。
例えば、テーブル抽出部104は、キー項目情報302で示されている「会社コード」、「注文詳細ID」カラムが現時点の仮想テーブルに含まれていないと判定する。
ステップS15において、テーブル抽出部104は、ステップS12で取得した連携元情報111と連携先情報112と参照関係情報113とキー項目情報302とを参照して、ステップS13で選択したテーブルと直接あるいは間接的に(即ち、他の選択済のテーブルを介して)参照関係によって結ばれており、かつ、現時点の仮想テーブルに含まれていないカラムと対応するカラムが含まれるテーブルがあるかどうか判定する。テーブル抽出部104は、そのようなテーブルがあれば、そのテーブルを選択し、ステップS16に進む。テーブル抽出部104は、そのようなテーブルがなければ、現時点の仮想テーブルをキャンセルして、ステップS18に進む。
例えば、テーブル抽出部104は、参照関係レコード303で注文テーブルの参照先として示されている会社テーブルの連携元情報111を参照する。テーブル抽出部104は、キー項目情報302で示されている「会社コード」カラムと、会社テーブルの連携元情報111で示されている「会社コード」カラムとが類似すると判定し、会社テーブルを選択する。この例では、会社テーブルは、連携元テーブルの1つであるが、目標テーブルとは異なる連携先テーブルの1つであってもよい。
ステップS16において、テーブル結合部105は、現時点の仮想テーブルとステップS15で選択されたテーブルとを結合して1つのテーブルを作成する。テーブル結合部105は、作成したテーブルを現時点の仮想テーブルとみなし(即ち、現時点の仮想テーブルを更新し)、ステップS14に戻る。
例えば、テーブル結合部105は、注文テーブルである現時点の仮想テーブルと会社テーブルとを結合して、新たに現時点の仮想テーブルを作成する。その後のステップS14において、テーブル抽出部104は、キー項目情報302で示されている「注文詳細ID」カラムが現時点の仮想テーブルに含まれていないと判定する。ステップS15において、テーブル抽出部104は、参照関係レコード304で注文テーブルの参照元として示されている注文詳細テーブルの連携元情報111を参照する。テーブル抽出部104は、キー項目情報302で示されている「注文詳細ID」カラムと、注文詳細テーブルの連携元情報111で示されている「注文詳細ID」カラムとが類似すると判定し、注文詳細テーブルを選択する。ステップS16において、テーブル結合部105は、注文テーブルと会社テーブルとを結合して得られた現時点の仮想テーブルと注文詳細テーブルとを結合して、新たに現時点の仮想テーブルを作成する。さらに、その後のステップS14において、テーブル抽出部104は、キー項目情報302で示されているカラムの全てが現時点の仮想テーブルに含まれていると判定し、ステップS17に進む。
ステップS17において、テーブル結合部105は、暫定仮想テーブル情報301を作成する。暫定仮想テーブル情報301は、現時点の仮想テーブルを定義する情報である。暫定仮想テーブル情報301には、仮想テーブルの主キー情報と属性情報と参照関係情報が含まれる。仮想テーブルの主キー情報とは、仮想テーブルに含まれる複数のカラムのそれぞれが主キーになっているかどうかを示す情報である。仮想テーブルの主キー情報は、目標テーブルの主キー情報と一致していなければならない。仮想テーブルの属性情報とは、仮想テーブルに含まれる複数のカラムのそれぞれに格納されるデータの属性(例えば、カラム名、データ型)を示す情報である。仮想テーブルの参照関係情報とは、仮想テーブルと他のテーブルとの間の参照関係を示す情報である。
例えば、テーブル結合部105は、図5に示すような暫定仮想テーブル情報301を作成する。暫定仮想テーブル情報301は、図5に示した連携元情報111と参照関係情報113とが合成された情報と同様の形式で、仮想テーブルを定義する情報である。暫定仮想テーブル情報301では、仮想テーブルの「会社コード」、「注文詳細ID」、「注文ID」カラムが主キーであることが示されている。暫定仮想テーブル情報301では、仮想テーブルの「注文ID」カラムが外部キーであることが示されている。
ステップS18において、テーブル抽出部104は、ステップS13で選択したテーブルを含むテーブルの組み合わせの全てについて、ステップS14〜S17の処理が完了したかどうか判定する。テーブル抽出部104は、処理が完了していれば、ステップS19に進む。テーブル抽出部104は、処理が完了していなければ、ステップS13で選択したテーブルを新たに現時点の仮想テーブルとみなし、ステップS14に戻る。テーブル結合部105は、ステップS17の処理が実行される度に、新たに(即ち、仮想テーブルごとに)暫定仮想テーブル情報301を作成する。
ステップS19において、テーブル抽出部104は、ステップS13で他に選択可能なテーブルがあるかどうか判定する。テーブル抽出部104は、そのようなテーブルがあれば、ステップS13に戻る。テーブル抽出部104は、そのようなテーブルがなければ、処理を終了する。
以下では、スコープという概念について説明する。
図5の例では、結合されるテーブル群が同一データベース(即ち、同一インスタンス)の同一スキーマに属することを想定している。しかし、通常、データ連携は複数のシステム間で行われる。そのため、異なるスキーマ間の参照関係、あるいは、異なるデータベース間の参照関係も考慮する必要がある。
図6は、連携元情報111と参照関係情報113とが合成された情報の別の例を示す表である。
図6の例では、図5の例と同様のテーブルが複数のスキーマ、あるいは、複数のデータベースに分かれて存在している。DB−1というデータベースのスキーマAには、図5の例と同様の注文テーブル及び注文詳細テーブルが存在する。同じデータベースのスキーマBには、図5の例と同様の会社テーブルが存在する。DB−2という別のデータベースのスキーマ1には、別の会社テーブルが存在する。
注文テーブルの参照関係情報113には、注文テーブルの「会社コード」カラムがDB−1のスキーマBに属する会社テーブルの「会社コード」カラムを参照することを示す参照関係レコード303が含まれている。注文テーブルの参照関係情報113には、さらに、注文テーブルの「会社コード」カラムがDB−2のスキーマ1に属する会社テーブルの「会社コード」カラムを参照することを示す参照関係レコード305が含まれている。
参照関係レコード303,304,305には、スコープに関する情報が含まれている。ステップS15において、テーブル抽出部104は、この情報に基づいて、テーブルを抽出する。即ち、テーブル抽出部104は、選択済のテーブルとの参照関係を有するテーブルを、そのテーブルが選択済のテーブルと同一スキーマ内に存在するのか、同一データベース内に存在するのか、異なるデータベースに属するのかを区別しながら、抽出する。
図7は、連携元情報111と参照関係情報113とが合成された情報と、暫定仮想テーブル情報301との別の例を示す表である。
ステップS15において、テーブル抽出部104は、参照関係レコード305で注文テーブルの参照先として示されている別のデータベースに属する会社テーブルの連携元情報111を参照することができる。テーブル抽出部104は、キー項目情報302で示されている「会社コード」カラムと、DB−2のスキーマ1に属する会社テーブルの連携元情報111で示されている「会社コード」カラムとが類似すると判定し、この会社テーブルを選択する。
ステップS17において、テーブル結合部105は、図5に示した暫定仮想テーブル情報301とは別に、図7に示すような暫定仮想テーブル情報301を作成することができる。図7の例における仮想テーブルは、図5の例における仮想テーブルと比べて、「ブランドID」カラムが追加されている。図3に示した入力情報114では、目標テーブルに「ブランドID」カラムが含まれることが示されている。よって、図7の例における仮想テーブルは、図5の例における仮想テーブルと比べて、目標テーブルに対応するカラム数が多いという点で優っている。
ステップS15では、スコープ(例えば、同一データベース内、同一スキーマ内)が指定されてもよい。その場合、テーブル抽出部104は、指定されたスコープ内でテーブルを抽出する。
図4の動作により、目標テーブルと主キーのカラムが類似する複数の仮想テーブルが作成された場合、これら複数の仮想テーブルの中で、目標テーブルとなるべく多くの非主キーのカラムが類似する仮想テーブルがデータ連携に適している。そのような仮想テーブルを検出するために、スキーママッチング技術を利用することができる。
図8は、図4の動作の後におけるデータ連携支援装置100の動作の例を示すフローチャートである。図9は、仮想テーブルと目標テーブルとのスキーママッチングを示す概念図である。
ステップS21において、推奨判断部106は、情報記憶部101から入力情報114と、ステップS17で作成された暫定仮想テーブル情報301とを取得する。
例えば、推奨判断部106は、図9に示すように、図3に示した情報(即ち、入力情報114と参照関係情報113とが合成された情報)と、図7に示した暫定仮想テーブル情報301とを取得する。
ステップS22において、推奨判断部106は、ステップS21で取得した入力情報114により定義された目標テーブルと、ステップS21で取得した暫定仮想テーブル情報301により定義された仮想テーブルとのスキーママッチングを行う。目標テーブルと仮想テーブルとの間で主キーは可能な限り一致している。そのため、非主キーのカラムの類似性が確認される。カラムの類似性を判断するために、既存のスキーママッチング技術が活用できる。
例えば、推奨判断部106は、図3に示した情報により定義された目標テーブルと、図7に示した暫定仮想テーブル情報301により定義された仮想テーブルとのスキーママッチングを行う。前述したように、図3で黒塗りされている項目は、他のテーブルを参照すれば取得できるカラムである。よって、これらのカラムについてのスキーママッチングの結果は無視される。あるいは、これらのカラムについてはスキーママッチングが省略される。
ステップS23において、推奨判断部106は、ステップS22で行ったスキーママッチングの結果(即ち、マッチングスコア)を集計し、仮想テーブルのいずれのカラムが、目標テーブルの非主キーのカラムと類似するか判断する。
例えば、推奨判断部106は、スキーママッチングの結果に基づき、仮想テーブルの「顧客コード」、「店舗ID」、「ブランドID」カラムが、それぞれ目標テーブルの同名のカラムと類似すると判断する。
図4の動作により複数の仮想テーブルが作成されている場合は、ステップS21〜S23の処理が仮想テーブルごとに実行される。
図10は、図8の動作の後におけるデータ連携支援装置100の動作の例を示すフローチャートである。図11は、連携元テーブルと目標テーブルとのスキーママッチングを示す概念図である。図12は、連携元テーブルと仮想テーブルとのスキーママッチングを示す概念図である。
ステップS31において、推奨判断部106は、情報記憶部101から連携元情報111と連携先情報112と参照関係情報113とを取得する。
例えば、推奨判断部106は、図11に示すような連携元情報111と参照関係情報113とが合成された情報を取得する。注文テーブルの連携元情報111では、社員テーブルの「社員ID」カラムが主キーであることが示されている。社員テーブルの参照関係情報113では、社員テーブルに外部キーがないことが示されている。ディスカウントテーブルの連携元情報111では、ディスカウントテーブルの「注文詳細ID」、「注文ID」カラムが主キーであることが示されている。ディスカウントテーブルの参照関係情報113では、ディスカウントテーブルの「注文ID」、「店舗ID」、「商品コード」カラムが外部キーであることが示されている。
ステップS32において、推奨判断部106は、ステップS21で取得した入力情報114により定義された目標テーブルに含まれる複数のカラムから、ステップS21で取得した暫定仮想テーブル情報301により定義された仮想テーブルに、対応するカラムが存在しないカラムを抽出する。即ち、推奨判断部106は、目標テーブルの非主キーのカラムのうち、ステップS23で仮想テーブルのカラムと類似すると判断したカラム以外のカラムを抽出する。
図11で黒塗りされている項目は、主キーになっているカラムと、外部キーの参照先のテーブルと仮想テーブルとのいずれかに、対応するカラムが存在するカラムである。
ステップS33において、推奨判断部106は、ステップS32で抽出したカラムと、ステップS31で取得した情報により定義された連携元テーブル及び連携先テーブルとのスキーママッチングを行う。
例えば、推奨判断部106は、図3に示した情報により定義された目標テーブルと、図11に示した情報により定義された社員テーブル及びディスカウントテーブルとのスキーママッチングを行う。前述したように、図11で黒塗りされている項目は、主キーのカラム、あるいは、他のテーブルを参照すれば取得できるカラムである。よって、これらのカラムについてのスキーママッチングの結果は無視される。あるいは、これらのカラムについてはスキーママッチングが省略される。
ステップS34において、推奨判断部106は、ステップS33で行ったスキーママッチングの結果(即ち、マッチングスコア)を集計し、いずれかの連携元テーブル又はいずれかの連携先テーブルのいずれのカラムが、目標テーブルの残りのカラムと類似するか判断する。
例えば、推奨判断部106は、スキーママッチングの結果に基づき、社員テーブルの「社員名」カラムが、目標テーブルの「担当営業」カラムと類似すると判断する。推奨判断部106は、ディスカウントテーブルの「ディスカウント」、「商品コード」カラムが、目標テーブルの同名のカラムと類似すると判断する。
ステップS35において、推奨判断部106は、ステップS34で目標テーブルの残りのカラムと類似すると判断したカラムを含む連携元テーブル又は連携先テーブルと、ステップS21で取得した暫定仮想テーブル情報301により定義された仮想テーブルとのスキーママッチングを行う。
例えば、推奨判断部106は、図12に示すように、図11に示した情報により定義された社員テーブル及びディスカウントテーブルと、図9に示した暫定仮想テーブル情報301により定義された仮想テーブルとのスキーママッチングを行う。
ステップS36において、推奨判断部106は、ステップS35で行ったスキーママッチングの結果(即ち、マッチングスコア)を集計し、ステップS34で目標テーブルの残りのカラムと類似すると判断したカラムを含む連携元テーブル又は連携先テーブルと、ステップS21で取得した暫定仮想テーブル情報301により定義された仮想テーブルとが結合できるかどうか判断する。推奨判断部106は、両テーブルが結合できる場合、ステップS37に進む。推奨判断部106は、両テーブルが結合できない場合、ステップS21で取得した暫定仮想テーブル情報301により定義された仮想テーブルを最終的な仮想テーブルとみなし、ステップS38に進む。ただし、推奨判断部106は、最終的な仮想テーブルから、対応するカラムが目標テーブルにないカラムを除外する。
ステップS37において、推奨判断部106は、ステップS34で目標テーブルの残りのカラムと類似すると判断したカラムを含む連携元テーブル又は連携先テーブルと、ステップS21で取得した暫定仮想テーブル情報301により定義された仮想テーブルとを結合して1つのテーブルを作成する。推奨判断部106は、作成したテーブルを最終的な仮想テーブルとみなし、ステップS38に進む。ただし、推奨判断部106は、最終的な仮想テーブルから、対応するカラムが目標テーブルにないカラムを除外する。
例えば、推奨判断部106は、図12に示した暫定仮想テーブル情報301により定義された仮想テーブルと、図12に示した情報により定義された社員テーブル及びディスカウントテーブルとを結合して、最終的な仮想テーブルを作成する。
ステップS38において、推奨判断部106は、最終的な仮想テーブルの基になったテーブルの組み合わせを、目標テーブルのデータ連携に利用することを推奨する推奨情報161を、出力装置を介してクライアント装置200へ出力する。
図4の動作により複数の仮想テーブルが作成されている場合は、ステップS31〜S37の処理が仮想テーブルごとに実行される。ステップS38において、推奨判断部106は、仮想テーブルごとに、目標テーブルと最終的な仮想テーブルとのスキーママッチングを行う。推奨判断部106は、そのスキーママッチングのスコアが最も高い(又はそのスキーママッチングのスコアが上位n番目(n>1)までの)最終的な仮想テーブルを選択する。推奨判断部106は、選択した最終的な仮想テーブルの基になったテーブルの組み合わせを、目標テーブルのデータ連携に利用することを推奨する推奨情報161を、出力装置を介してクライアント装置200へ出力する。
目標テーブルの一部のカラムと対応するカラムが最終的な仮想テーブルに含まれないことがある。即ち、目標テーブルが既存のテーブルのみを利用したデータ連携では実現できないことがある。そのような場合、仮想テーブルと連携元テーブルを結合するための情報を関連テーブルとして手動で作成することが考えられる。この場合、どのような関連テーブルを作成すればよいか調査する必要があるが、推奨情報161をクライアント装置200へ提供することにより、調査量の削減に寄与することができる。
本実施の形態では、データ連携関係の自動推奨にあたってレコードデータが必須ではなく、テーブル定義情報等のメタデータのみあればよい。そのため、データ連携関係を探索するシステムの範囲を広く設定できる。その結果として、システム全体を考慮したデータ連携関係の全体最適解を見つけ出すことが可能となる。つまり、本実施の形態によれば、データ連携において、連携先となるテーブルのカラムに格納するデータを、どのテーブルのカラムから抽出すればよいかを、効率よく、的確に判断することができる。
本実施の形態では、システム全体という広いスコープでデータ連携関係を探索することができるため、検出漏れを最小限にできるという効果が得られる。
データ連携関係の自動推奨では、探索スコープが狭くなると、本来連携元とすべきテーブルが排除される可能性がある。本来連携元とすべきテーブルのコピーあるいは変形を連携元として誤検出してしまう可能性がある。そのような誤検出があると、定義したデータ連携関係において、本来連携元とすべきテーブルからそのコピーあるいは変形を作成する別のデータ連携処理との依存関係が生じてしまう。本実施の形態によれば、そのように本来必要のないデータ連携関係が定義されてしまう事態(即ち、部分最適解)を回避することができる
本実施の形態では、データ連携関係の自動推奨という目的に固有の要件である、連携先テーブルのレコードレイアウトを連携元テーブル群から結合操作等により再現できるという要件に対応するために、仮想テーブルを作成して、仮想テーブルと連携先テーブルに対してスキーママッチング技術を適用する。このため、データ連携に使用できない対応関係は自動的に出力から省かれる。本実施の形態では、通常のスキーママッチング技術で大量に発生するデータ連携関係の候補の中からデータ連携に使用できるカラム間の対応関係のみを抽出して提供する。このため、自動推奨結果が人間により確認される際に、人間の作業量が大幅に削減される。
さらに、本実施の形態では、スコープを広げるだけではなく、データベーススキーマ内、データベース内、データベース外のように複数のスコープを明示的に分けて、それぞれについて仮想テーブルを作成する。このため、データ連携関係の候補をスコープ別に確認することが可能である。例えば、データベーススキーマ内では取得することができないデータ項目についてデータベース外までスコープを広げると取得できることが確認できる。よって、データベース外とのデータ連携コストとデータベーススキーマ内のデータ連携コストとを比較しながら、状況に応じたデータ連携関係を定義することが可能となる。
図13は、本実施の形態に係るデータ連携支援装置100のハードウェア構成の一例を示す図である。
図13において、データ連携支援装置100は、コンピュータであり、LCD901(Liquid・Crystal・Display)、キーボード902(K/B)、マウス903、FDD904(Flexible・Disk・Drive)、CDD905(Compact・Disc・Drive)、プリンタ906といったハードウェアデバイスを備えている。これらのハードウェアデバイスはケーブルや信号線で接続されている。LCD901の代わりに、CRT(Cathode・Ray・Tube)、あるいは、その他の表示装置が用いられてもよい。マウス903の代わりに、タッチパネル、タッチパッド、トラックボール、ペンタブレット、あるいは、その他のポインティングデバイスが用いられてもよい。
データ連携支援装置100は、プログラムを実行するCPU911(Central・Processing・Unit)を備えている。CPU911は、処理装置の一例である。CPU911は、バス912を介してROM913(Read・Only・Memory)、RAM914(Random・Access・Memory)、通信ボード915、LCD901、キーボード902、マウス903、FDD904、CDD905、プリンタ906、HDD920(Hard・Disk・Drive)と接続され、これらのハードウェアデバイスを制御する。HDD920の代わりに、フラッシュメモリ、光ディスク装置、メモリカードリーダライタ、あるいは、その他の記録媒体が用いられてもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、HDD920は、不揮発性メモリの一例である。これらは、記憶装置の一例である。通信ボード915、キーボード902、マウス903、FDD904、CDD905は、入力装置の一例である。また、通信ボード915、LCD901、プリンタ906は、出力装置の一例である。
通信ボード915は、LAN(Local・Area・Network)等に接続されている。通信ボード915は、LANに限らず、IP−VPN(Internet・Protocol・Virtual・Private・Network)、広域LAN、ATM(Asynchronous・Transfer・Mode)ネットワークといったWAN(Wide・Area・Network)、あるいは、インターネットに接続されていても構わない。LAN、WAN、インターネットは、ネットワークの一例である。
HDD920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。プログラム群923には、本発明の実施の形態の説明において「〜部」として説明する機能を実行するプログラムが含まれている。プログラムは、CPU911により読み出され実行される。ファイル群924には、本発明の実施の形態の説明において、「〜データ」、「〜情報」、「〜ID(識別子)」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として含まれている。「〜ファイル」や「〜データベース」や「〜テーブル」は、RAM914やHDD920等の記録媒体に記憶される。RAM914やHDD920等の記録媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったCPU911の処理(動作)に用いられる。抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったCPU911の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
本発明の実施の形態の説明において用いるブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示す。データや信号は、RAM914等のメモリ、FDD904のフレキシブルディスク(FD)、CDD905のコンパクトディスク(CD)、HDD920の磁気ディスク、光ディスク、DVD(Digital・Versatile・Disc)、あるいは、その他の記録媒体に記録される。また、データや信号は、バス912、信号線、ケーブル、あるいは、その他の伝送媒体により伝送される。
本発明の実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアのみ、あるいは、素子、デバイス、基板、配線といったハードウェアのみで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアとハードウェアとの組み合わせ、あるいは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、フレキシブルディスク、コンパクトディスク、磁気ディスク、光ディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。即ち、プログラムは、本発明の実施の形態の説明で述べる「〜部」としてコンピュータを機能させるものである。あるいは、プログラムは、本発明の実施の形態の説明で述べる「〜部」の手順や方法をコンピュータに実行させるものである。
以上、本発明の実施の形態について説明したが、本発明は、この実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
100 データ連携支援装置、101 情報記憶部、102 テーブル選択部、103 カラム特定部、104 テーブル抽出部、105 テーブル結合部、106 推奨判断部、111 連携元情報、112 連携先情報、113 参照関係情報、114 入力情報、161 推奨情報、200 クライアント装置、301 暫定仮想テーブル情報、302 キー項目情報、303,304,305 参照関係レコード、901 LCD、902 キーボード、903 マウス、904 FDD、905 CDD、906 プリンタ、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 HDD、921 オペレーティングシステム、922 ウィンドウシステム、923 プログラム群、924 ファイル群。

Claims (4)

  1. 複数のテーブルを有するデータベースのデータ連携を支援するデータ連携支援装置において、
    前記複数のテーブルのそれぞれに含まれる複数のカラムのそれぞれが主キーになっているかどうかを示す主キー情報と、前記複数のテーブルのそれぞれに含まれる複数のカラムのそれぞれに格納されるデータの属性を示す属性情報と、前記複数のテーブル間の参照関係を示す参照関係情報とを記憶する情報記憶部と、
    前記複数のテーブルから、主キーになっている2つ以上のカラムを含みデータ連携の連携先となる1つのテーブルを選択するテーブル選択部と、
    前記情報記憶部に記憶された主キー情報に基づき、前記テーブル選択部により選択されたテーブルに含まれる複数のカラムから、前記2つ以上のカラムを特定するカラム特定部と、
    前記情報記憶部に記憶された主キー情報と属性情報と参照関係情報とに基づき、前記複数のテーブルのうち前記テーブル選択部により選択されたテーブル以外のテーブルから、参照関係によって結ばれた2つ以上のテーブルの組み合わせであって、前記カラム特定部により特定されたカラムと対応するカラムが当該2つ以上のテーブルに分かれて各テーブルの主キーとして存在する組み合わせを抽出するテーブル抽出部と、
    前記テーブル抽出部により抽出された組み合わせに含まれるテーブルを結合して1つのテーブルを作成するテーブル結合部と、
    前記テーブル選択部により選択されたテーブルと前記テーブル結合部により作成されたテーブルとのスキーママッチングを行い、スキーママッチングの結果に基づき、前記テーブル抽出部により抽出された組み合わせを、前記テーブル選択部により選択されたテーブルのデータ連携に利用することを推奨するかどうか判断する推奨判断部と
    を備えることを特徴とするデータ連携支援装置。
  2. 前記テーブル抽出部により2つ以上の組み合わせが抽出された場合、
    前記テーブル結合部は、前記テーブル抽出部により抽出された組み合わせごとに、組み合わせに含まれるテーブルを結合して1つのテーブルを作成し、
    前記推奨判断部は、前記テーブル抽出部により抽出された組み合わせごとに、前記テーブル選択部により選択されたテーブルと前記テーブル結合部により作成されたテーブルとのスキーママッチングを行い、
    前記推奨判断部は、スキーママッチングの結果に基づき、前記テーブル抽出部により抽出された組み合わせのうち1つの組み合わせを、前記テーブル選択部により選択されたテーブルのデータ連携に利用することを推奨する推奨情報を出力することを特徴とする請求項1のデータ連携支援装置。
  3. 前記推奨判断部は、前記テーブル抽出部により抽出された組み合わせを、前記テーブル選択部により選択されたテーブルのデータ連携に利用することを推奨する場合、前記テーブル選択部により選択されたテーブルに含まれる複数のカラムから、前記テーブル結合部により作成されたテーブルに、対応するカラムが存在しないカラムを抽出し、前記複数のテーブルのうち前記テーブル選択部により選択されたテーブル以外のテーブルから、抽出したカラムと対応するカラムを含み、前記テーブル結合部により作成されたテーブルに結合可能なテーブルを検出し、検出したテーブルを、前記テーブル抽出部により抽出された組み合わせに追加することを特徴とする請求項1のデータ連携支援装置。
  4. 複数のテーブルを有するデータベースのデータ連携を支援するデータ連携支援方法において、
    前記複数のテーブルのそれぞれに含まれる複数のカラムのそれぞれが主キーになっているかどうかを示す主キー情報と、前記複数のテーブルのそれぞれに含まれる複数のカラムのそれぞれに格納されるデータの属性を示す属性情報と、前記複数のテーブル間の参照関係を示す参照関係情報とを記憶する情報記憶部を備えるコンピュータを用いて、
    前記複数のテーブルから、主キーになっている2つ以上のカラムを含みデータ連携の連携先となる1つのテーブルを選択し、
    前記情報記憶部に記憶された主キー情報に基づき、前記選択により選択されたテーブルに含まれる複数のカラムから、前記2つ以上のカラムを特定し、
    前記情報記憶部に記憶された主キー情報と属性情報と参照関係情報とに基づき、前記複数のテーブルのうち前記選択により選択されたテーブル以外のテーブルから、参照関係によって結ばれた2つ以上のテーブルの組み合わせであって、前記特定により特定されたカラムと対応するカラムが当該2つ以上のテーブルに分かれて各テーブルの主キーとして存在する組み合わせを抽出し、
    前記抽出により抽出された組み合わせに含まれるテーブルを結合して1つのテーブルを作成し、
    前記選択により選択されたテーブルと前記結合により作成されたテーブルとのスキーママッチングを行い、スキーママッチングの結果に基づき、前記抽出により抽出された組み合わせを、前記選択により選択されたテーブルのデータ連携に利用することを推奨するかどうか判断することを特徴とするデータ連携支援方法。
JP2015541381A 2013-10-10 2013-10-10 データ連携支援装置及びデータ連携支援方法 Active JP6017055B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/077628 WO2015052812A1 (ja) 2013-10-10 2013-10-10 データ連携支援装置及びデータ連携支援方法

Publications (2)

Publication Number Publication Date
JP6017055B2 JP6017055B2 (ja) 2016-10-26
JPWO2015052812A1 true JPWO2015052812A1 (ja) 2017-03-09

Family

ID=52812659

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015541381A Active JP6017055B2 (ja) 2013-10-10 2013-10-10 データ連携支援装置及びデータ連携支援方法

Country Status (2)

Country Link
JP (1) JP6017055B2 (ja)
WO (1) WO2015052812A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6181250B1 (ja) * 2016-07-11 2017-08-16 株式会社東芝 データベース統合装置、データベース統合方法、およびデータベース統合プログラム
JP7046859B2 (ja) * 2019-03-04 2022-04-04 株式会社日立製作所 データ選定システム、及びデータ選定方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005063261A (ja) * 2003-08-18 2005-03-10 Ntt Comware Corp データ連携ルール生成システム及び方法、ならびに、コンピュータプログラム
US7426520B2 (en) * 2003-09-10 2008-09-16 Exeros, Inc. Method and apparatus for semantic discovery and mapping between data sources

Also Published As

Publication number Publication date
WO2015052812A1 (ja) 2015-04-16
JP6017055B2 (ja) 2016-10-26

Similar Documents

Publication Publication Date Title
RU2427896C2 (ru) Аннотирование документов в совместно работающих приложениях данными в разрозненных информационных системах
CN102959578B (zh) 取证系统、取证方法及取证程序
JP2009187414A (ja) 分析用属性項目抽出プログラム、分析用属性項目抽出方法、及び情報分析装置
JP4832952B2 (ja) データベース解析システム及びデータベース解析方法及びプログラム
US11244109B2 (en) Information processing device and information processing method
CN107958023A (zh) 数据同步方法、数据同步装置和计算机可读存储介质
JP2011076396A (ja) メタデータ設定方法及びメタデータ設定システム、並びにプログラム
JP4855080B2 (ja) スキーマ統合支援装置、スキーマ統合支援装置のスキーマ統合支援方法およびスキーマ統合支援プログラム
US20180329873A1 (en) Automated data extraction system based on historical or related data
US20240143634A1 (en) System and methods for categorizing captured data
JP6017055B2 (ja) データ連携支援装置及びデータ連携支援方法
JP6782275B2 (ja) データカタログ自動生成システム及びその自動生成方法
JP5972461B2 (ja) データ連携支援装置及びデータ連携支援方法
JP2014013470A (ja) 電子帳票の管理方法及び電子帳票システム並びに電子帳票の管理プログラム
JP2005321849A (ja) データ分析支援プログラム、データ分析支援方法、およびデータ分析支援装置
JP5202655B2 (ja) 業務フローチャート検索装置及びプログラム
JP6897168B2 (ja) 情報処理装置及び情報処理プログラム
JP6293083B2 (ja) データ処理プログラム、データ処理方法および情報処理装置
JP5606303B2 (ja) 情報処理装置及び情報処理方法及びプログラム
JP5393582B2 (ja) 文書管理プログラム、文書管理方法及び文書管理装置
JP5971069B2 (ja) 情報処理装置、タイトル抽出方法及びプログラム
JP6849904B2 (ja) 検索プログラム、検索装置および検索方法
CN117151129A (zh) 翻译数据处理方法以及相关设备
JP2024077309A (ja) データ管理支援装置、データ管理支援方法、プログラム及び記録媒体
JP5585145B2 (ja) 修正箇所判別装置、修正箇所判別プログラム、および修正箇所判別方法

Legal Events

Date Code Title Description
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: 20160830

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160927

R150 Certificate of patent or registration of utility model

Ref document number: 6017055

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250