(57)【特許請求の範囲】
【請求項１】
複数のテーブルを有するデータベースのデータ連携を支援するデータ連携支援装置において、
前記複数のテーブルのそれぞれに含まれる複数のカラムのそれぞれが主キーになっているかどうかを示す主キー情報と、前記複数のテーブルのそれぞれに含まれる複数のカラムのそれぞれに格納されるデータの属性を示す属性情報とを記憶する情報記憶部と、
前記複数のテーブルのうち、データ連携の連携先となる１つのテーブルを選択するテーブル選択部と、
前記複数のテーブルのうち前記テーブル選択部により選択されたテーブル以外のテーブルのそれぞれについて、前記情報記憶部に記憶された主キー情報に基づき、テーブルに含まれる複数のカラムから、主キーになっている第１カラムと、主キーになっていない第２カラムとを特定するカラム特定部と、
前記複数のテーブルのうち前記テーブル選択部により選択されたテーブル以外のテーブルから、前記情報記憶部に記憶された属性情報に基づき、前記テーブル選択部により選択されたテーブルに、前記カラム特定部により特定された第１カラムと類似する第３カラムが含まれ、かつ、前記テーブル選択部により選択されたテーブルに、前記カラム特定部により特定された第２カラムと類似する第４カラムが含まれるテーブルを抽出するテーブル抽出部と、
前記テーブル選択部により選択されたテーブルと前記テーブル抽出部により抽出されたテーブルとの組み合わせをデータ連携に利用することを推奨する推奨情報を出力する情報出力部と
を備え、
前記テーブル抽出部は、前記カラム特定部により２つ以上の第２カラムが特定されたテーブルについては、前記テーブル選択部により選択されたテーブルに、最も多くの第２カラムに対して個別に前記第４カラムが存在するテーブルを抽出するデータ連携支援装置。
【請求項２】
前記テーブル抽出部は、前記カラム特定部により２つ以上の第１カラムが特定されたテーブルについては、前記テーブル選択部により選択されたテーブルに、全ての第１カラムに対して個別に前記第３カラムが存在するテーブルを抽出する請求項１に記載のデータ連携支援装置。
【請求項３】
前記テーブル抽出部は、前記テーブル選択部により選択されたテーブルと同じスキーマに属するテーブルと、前記テーブル選択部により選択されたテーブルと同じインスタンスの異なるスキーマに属するテーブルと、前記テーブル選択部により選択されたテーブルと異なるインスタンスのスキーマに属するテーブルとの３種類のテーブルのうち少なくとも２種類のテーブルを抽出し、
前記情報出力部は、前記テーブル抽出部により抽出されたテーブルの種類ごとに、前記テーブル選択部により選択されたテーブルと前記テーブル抽出部により抽出されたテーブルとの組み合わせをデータ連携に利用することを推奨する情報を前記推奨情報として出力する請求項１に記載のデータ連携支援装置。
【請求項４】
複数のテーブルを有するデータベースのデータ連携を支援するデータ連携支援方法において、
前記複数のテーブルのそれぞれに含まれる複数のカラムのそれぞれが主キーになっているかどうかを示す主キー情報と、前記複数のテーブルのそれぞれに含まれる複数のカラムのそれぞれに格納されるデータの属性を示す属性情報とを記憶する情報記憶部を備えるコンピュータを用いて、
前記複数のテーブルのうち、データ連携の連携先となる１つのテーブルを選択し、
前記複数のテーブルのうち前記選択により選択されたテーブル以外のテーブルのそれぞれについて、前記情報記憶部に記憶された主キー情報に基づき、テーブルに含まれる複数のカラムから、主キーになっている第１カラムと、主キーになっていない第２カラムとを特定し、
前記複数のテーブルのうち前記選択により選択されたテーブル以外のテーブルから、前記情報記憶部に記憶された属性情報に基づき、前記選択により選択されたテーブルに、前記特定により特定された第１カラムと類似する第３カラムが含まれ、かつ、前記選択により選択されたテーブルに、前記特定により特定された第２カラムと類似する第４カラムが含まれるテーブルを抽出し、
前記選択により選択されたテーブルと前記抽出により抽出されたテーブルとの組み合わせをデータ連携に利用することを推奨する推奨情報を出力し、
前記抽出では、前記特定により２つ以上の第２カラムが特定されたテーブルについては、前記選択により選択されたテーブルに、最も多くの第２カラムに対して個別に前記第４カラムが存在するテーブルを抽出するデータ連携支援方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ連携支援装置及びデータ連携支援方法に関するものである。
【背景技術】
【０００２】
システム間の連携、あるいは、システム同士の統合に伴って、システム別のデータベース間のデータ連携、あるいは、同じデータベース内の別々のテーブル間のデータ連携が必要となる。データ連携では、連携先となるテーブル（即ち、連携先テーブル）のカラムに格納するデータを、どのテーブル（即ち、連携元テーブル）のカラムから抽出すればよいかというデータ連携関係を定義する必要がある。【０００３】
データ連携関係を定義するためには、テーブル間のカラムの対応関係を何らかの手段で検出する必要がある。さらに、連携元テーブルから連携先テーブルのカラムの組み合わせであるテーブルレイアウトがテーブル操作によって作成できる必要がある。このようなデータ構造の変換が実施できないと、連携先テーブルにデータを格納することができない。連携先テーブルとレイアウトが一致する連携元テーブルがなく、２つ以上の連携元テーブルからデータを集めて連携先テーブルを作成する場合には、テーブル間のカラムの類似性によって対応関係を判断するだけでは不十分である。実際にそれら２つ以上の連携元テーブルに対して結合（例えば、ＪＯＩＮ）操作を実施できることが必要である。【０００４】
上記のように、データ連携では、連携元テーブルを結合（例えば、ＪＯＩＮ）して連携先テーブルを生成する必要がある。よって、データ連携関係を定義するためには、事前にテーブル間の参照関係を特定する必要がある。しかし、一般的なデータベースでは、主キー制約は付与されているものの、外部参照制約が付与されておらず、テーブル間の参照関係が明らかでないことが多い。そのため、従来は、テーブル間の参照関係を人手で抽出していた。その作業は、データベース技術と業務内容を理解した高度な技術者が労働集約的に実施する必要があった。【０００５】
テーブル間の参照関係を自動抽出する技術として、データベースのテーブルのレコード（即ち、実データ）を利用する技術が存在する（例えば、非特許文献１参照）。【０００６】
類似するカラムの対応関係を自動抽出する技術として、いわゆるスキーママッチング技術が存在する（例えば、非特許文献２参照）。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Ｌｉｎｇ  Ｌｉｎｇ  Ｙａｎ，  Ｒｅｎｅｅ  Ｊ．  Ｍｉｌｌｅｒ，  Ｌａｕｒａ  Ｍ．  Ｈａａｓ，  ａｎｄ  Ｒｏｎａｌｄ  Ｆａｇｉｎ，  “Ｄａｔａ−Ｄｒｉｖｅｎ  Ｕｎｄｅｒｓｔａｎｄｉｎｇ  ａｎｄ  Ｒｅｆｉｎｅｍｅｎｔ  ｏｆ  Ｓｃｈｅｍａ  Ｍａｐｐｉｎｇｓ”，  ＳＩＧＭＯＤ  ’０１  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２００１  ＡＣＭ  ＳＩＧＭＯＤ  ｉｎｔｅｒｎａｔｉｏｎａｌ  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｍａｎａｇｅｍｅｎｔ  ｏｆ  ｄａｔａ，  ２００１
【非特許文献２】Ｒｏｎａｌｄ  Ｆａｇｉｎ，  Ｌａｕｒａ  Ｍ．  Ｈａａｓ，  Ｍａｕｒｉｃｉｏ  Ｈｅｒｎａｎｄｅｚ，  Ｒｅｎｅｅ  Ｊ．  Ｍｉｌｌｅｒ，  Ｌｕｃｉａｎ  Ｐｏｐａ，  ａｎｄ  Ｙａｎｎｉｓ  Ｖｅｌｅｇｒａｋｉｓ，  “Ｃｌｉｏ：  Ｓｃｈｅｍａ  Ｍａｐｐｉｎｇ  Ｃｒｅａｔｉｏｎ  ａｎｄ  Ｄａｔａ  Ｅｘｃｈａｎｇｅ”，  Ｌｅｃｔｕｒｅ  Ｎｏｔｅｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  Ｖｏｌｕｍｅ  ５６００，  ２００９
【発明の概要】
【発明が解決しようとする課題】
【０００８】
非特許文献１では、データベースのテーブルのレコードを読み込み、レコード間の関係性及びテーブル間の結合関係を推測して、テーブル間の参照関係を自動抽出する。参照関係の抽出精度を高めるためには、全てのレコードを利用することが必要である。その場合、大量のレコードに対する処理が必要となる。そのような処理を大規模なシステムに対して実行した場合、処理時間が実用的な時間に収まらない可能性が高い。必然的に処理の対象とするシステムを絞り込まざるを得ない。【０００９】
利用するレコードの数を減らすためにサンプリング技術を活用することも可能である。しかし、テーブル間の参照関係を考慮しながらサンプリングを行うことは困難である。サンプリングの結果、本来は参照関係のあるテーブルが、参照関係のないように見えてしまう可能性がある。【００１０】
以上のように、非特許文献１のようなレコードの利用が必須となる技術は、レコードの量によって適用できるシステムの範囲が制限されるという課題がある。【００１１】
非特許文献２のようなスキーママッチング技術では、テーブル定義情報のようなメタデータのみから、類似するカラムの対応関係を抽出できる。そのため、レコードを利用する技術と比較すると、扱うデータ量が少なくて済むという利点がある。大規模なシステム全体を処理の対象とすることができる。【００１２】
しかし、スキーママッチング技術は、類似するカラムを見つけ出す技術である。そのため、テーブル間の参照関係を自動抽出するために、そのまま利用することはできない。特に、データベース内に同義のカラムが多数存在する場合、スキーママッチング技術の観点からは正しい対応関係であっても、参照関係ではない対応関係が多数検出されてしまう。【００１３】
また、スキーママッチング技術では、データ連携を行うために連携元テーブルから連携先テーブルのレイアウトをテーブル操作によって作成する必要がある点について考慮されていないという課題がある。【００１４】
本発明は、例えば、データ連携において、連携先となるテーブルと、どのテーブルとの間に参照関係があるかを、効率よく検出することを目的とする。
【課題を解決するための手段】
【００１５】
本発明の一の態様に係るデータ連携支援装置は、
複数のテーブルを有するデータベースのデータ連携を支援する装置であり、
前記複数のテーブルのそれぞれに含まれる複数のカラムのそれぞれが主キーになっているかどうかを示す主キー情報と、前記複数のテーブルのそれぞれに含まれる複数のカラムのそれぞれに格納されるデータの属性を示す属性情報とを記憶する情報記憶部と、
前記複数のテーブルのうち、データ連携の連携先となる１つのテーブルを選択するテーブル選択部と、
前記複数のテーブルのうち前記テーブル選択部により選択されたテーブル以外のテーブルのそれぞれについて、前記情報記憶部に記憶された主キー情報に基づき、該当するテーブルに含まれる複数のカラムから、主キーになっている第１カラムと、主キーになっていない第２カラムとを特定するカラム特定部と、
前記複数のテーブルのうち前記テーブル選択部により選択されたテーブル以外のテーブルから、前記情報記憶部に記憶された属性情報に基づき、前記テーブル選択部により選択されたテーブルに、前記カラム特定部により特定された第１カラムと類似する第３カラムが含まれ、かつ、前記テーブル選択部により選択されたテーブルに、前記カラム特定部により特定された第２カラムと類似する第４カラムが含まれるテーブルを抽出するテーブル抽出部と、
前記テーブル選択部により選択されたテーブルと前記テーブル抽出部により抽出されたテーブルとの組み合わせをデータ連携に利用することを推奨する推奨情報を出力する情報出力部とを備える。
【発明の効果】
【００１６】
本発明の一の態様によれば、データ連携支援装置が、データ連携において、連携先となるテーブルと、どのテーブルとの間に参照関係があるかを、効率よく検出することができる。
【図面の簡単な説明】
【００１７】
【図１】実施の形態１に係るデータ連携支援装置の構成を示すブロック図。
【図２】実施の形態１に係る連携元情報の例を示す表。
【図３】実施の形態１に係るデータ連携支援装置の動作の例を示すフローチャート。
【図４】実施の形態１に係る参照元情報及び主キー定義情報の例を示す表。
【図５】実施の形態１に係るスキーママッチングの結果の例を示す表。
【図６】実施の形態１に係る参照関係情報の例を示す表。
【図７】実施の形態１に係るデータ連携支援装置の動作の例を示すフローチャート。
【図８】実施の形態１に係る非外部キー定義情報及び非主キー定義情報の例を示す表。
【図９】実施の形態１に係るスキーママッチングの結果の例を示す表。
【図１０】実施の形態１に係る連携関係情報の例を示す表。
【図１１】実施の形態１に係るデータ連携支援装置の動作の例を示すフローチャート。
【図１２】実施の形態１に係る抽出結果の例を示す表。
【図１３】実施の形態１に係るデータ連携支援装置の動作の例を示すフローチャート。
【図１４】実施の形態１に係る入力情報及び推奨情報の例を示す表。
【図１５】実施の形態１に係るデータ連携支援装置のハードウェア構成の例を示す図。
【発明を実施するための形態】
【００１８】
以下、本発明の実施の形態について、図を用いて説明する。
【００１９】
実施の形態１．
図１は、本実施の形態に係るデータ連携支援装置１００の構成を示すブロック図である。
【００２０】
図１において、データ連携支援装置１００は、複数のテーブルを有するデータベースのデータ連携を支援する装置である。データ連携支援装置１００により支援されるデータ連携は、データベースの異なるインスタンス間のデータ連携であってもよいし、同じインスタンスの異なるスキーマ間のデータ連携であってもよいし、同じスキーマの異なるテーブル間のデータ連携であってもよい。
【００２１】
データ連携支援装置１００は、情報記憶部１０１、テーブル選択部１０２、カラム特定部１０３、テーブル抽出部１０４、情報蓄積部１０５、情報出力部１０６を備える。
【００２２】
図１には示していないが、データ連携支援装置１００は、処理装置、記憶装置、入力装置、出力装置等のハードウェアを備える。ハードウェアはデータ連携支援装置１００の各部によって利用される。例えば、処理装置は、データ連携支援装置１００の各部でデータ又は情報の演算、加工、読み取り、書き込み等を行うために利用される。記憶装置は、そのデータ又は情報を記憶するために利用される。入力装置は、そのデータ又は情報を入力するために利用される。出力装置は、そのデータ又は情報を出力するために利用される。
【００２３】
情報記憶部１０１は、連携元情報１１１、連携先情報１１２を、記憶装置を利用して記憶する。
【００２４】
連携元情報１１１は、データ連携の連携元となるデータベース（即ち、連携元データベース）の複数のテーブル（即ち、連携元テーブル）を定義する情報である。連携元情報１１１には、連携元データベースの主キー情報及び属性情報が含まれる。連携元データベースの主キー情報とは、複数の連携元テーブルのそれぞれに含まれる複数のカラムのそれぞれが主キーになっているかどうかを示す情報である。連携元データベースの属性情報とは、複数の連携元テーブルのそれぞれに含まれる複数のカラムのそれぞれに格納されるデータの属性（例えば、カラム名、データ型）を示す情報である。
【００２５】
連携先情報１１２は、データ連携の連携先となるデータベース（即ち、連携先データベース）の複数のテーブル（即ち、連携先テーブル）を定義する情報である。連携先情報１１２には、連携先データベースの主キー情報及び属性情報が含まれる。連携先データベースの主キー情報とは、複数の連携先テーブルのそれぞれに含まれる複数のカラムのそれぞれが主キーになっているかどうかを示す情報である。連携先データベースの属性情報とは、複数の連携先テーブルのそれぞれに含まれる複数のカラムのそれぞれに格納されるデータの属性（例えば、カラム名、データ型）を示す情報である。
【００２６】
連携元情報１１１及び連携先情報１１２は、入力装置を介して入力され、情報記憶部１０１に記憶される。
【００２７】
テーブル選択部１０２は、複数の連携先テーブルのうち、１つの連携先テーブルを選択する。
【００２８】
例えば、テーブル選択部１０２は、情報記憶部１０１に記憶された連携先情報１１２を読み取る。テーブル選択部１０２は、読み取った連携先情報１１２により定義された連携先テーブルから、１つの連携先テーブルを選択する。
【００２９】
カラム特定部１０３は、連携元データベース及び連携先データベースの複数のテーブルのうちテーブル選択部１０２により選択された連携先テーブル以外のテーブルのそれぞれについて、前述した主キー情報に基づき、該当するテーブルに含まれる複数のカラムから、主キーになっている第１カラムと、主キーになっていない第２カラムとを特定する。
【００３０】
例えば、カラム特定部１０３は、情報記憶部１０１に記憶された連携元情報１１１及び連携先情報１１２を読み取る。カラム特定部１０３は、読み取った連携元情報１１１により定義された連携元テーブルのそれぞれについて、読み取った連携元情報１１１に含まれる主キー情報に基づき、第１カラムと第２カラムとを特定する。また、カラム特定部１０３は、読み取った連携先情報１１２により定義された連携先テーブルのうちテーブル選択部１０２により選択された連携先テーブル以外の連携先テーブルのそれぞれについて、読み取った連携先情報１１２に含まれる主キー情報に基づき、第１カラムと第２カラムとを特定する。
【００３１】
テーブル抽出部１０４は、連携元データベース及び連携先データベースの複数のテーブルのうちテーブル選択部１０２により選択された連携先テーブル以外のテーブルのそれぞれについて、前述した属性情報に基づき、以下の（１）及び（２）の条件を満たすテーブルを抽出し、抽出結果１４１を出力する。
（１）テーブル選択部１０２により選択された連携先テーブルに、カラム特定部１０３により特定された第１カラムと類似する第３カラムが含まれる。
（２）テーブル選択部１０２により選択された連携先テーブルに、カラム特定部１０３により特定された第２カラムと類似する第４カラムが含まれる。
【００３２】
本実施の形態において、テーブル抽出部１０４は、カラム特定部１０３により２つ以上の第１カラムが特定されたテーブルについては、テーブル選択部１０２により選択された連携先テーブルに、全ての第１カラムに対して個別に第３カラムが存在するテーブルを抽出する。例えば、ある連携元テーブルに２個の第１カラムが存在していたとする。テーブル選択部１０２により選択された連携先テーブルに、当該２個の第１カラムの一方と類似する第３カラムと、当該２個の第１カラムの他方と類似する別の第３カラムとが存在していれば、その連携元テーブルは上記（１）の条件を満たしていることになる。なお、連携元テーブルだけでなく、テーブル選択部１０２により選択された連携先テーブルとは別の連携先テーブルが上記（１）の条件を満たすこともあり得る。
【００３３】
本実施の形態において、テーブル抽出部１０４は、カラム特定部１０３により２つ以上の第２カラムが特定されたテーブルについては、テーブル選択部１０２により選択された連携先テーブルに、最も多くの第２カラムに対して個別に第４カラムが存在するテーブルのみを抽出結果１４１に含める。例えば、ある連携元テーブルに５個の第２カラムが存在していたとする。テーブル選択部１０２により選択された連携先テーブルに、当該５個の第２カラムのうち１個と類似する第４カラムと、当該５個の第２カラムの他方と類似する別の第４カラムとが存在していたとする。他の連携元テーブルについて、２個より多くの第４カラムが存在せず、また、テーブル選択部１０２により選択された連携先テーブルとは別の連携先テーブルについても、２個より多くの第４カラムが存在しなければ、その連携元テーブルは上記（２）の条件を満たしていることになる。なお、連携元テーブルだけでなく、テーブル選択部１０２により選択された連携先テーブルとは別の連携先テーブルが上記（２）の条件を満たすこともあり得る。
【００３４】
本実施の形態において、テーブル抽出部１０４は、テーブル選択部１０２により選択された連携先テーブルと同じスキーマに属するテーブルと、テーブル選択部１０２により選択された連携先テーブルと同じインスタンスの異なるスキーマに属するテーブルと、テーブル選択部１０２により選択された連携先テーブルと異なるインスタンスのスキーマに属するテーブルとの３種類のテーブルを抽出結果１４１に含めることができる。
【００３５】
情報蓄積部１０５は、参照関係情報１５１、連携関係情報１５２を、記憶装置を利用して記憶する。
【００３６】
参照関係情報１５１は、テーブル選択部１０２により選択された連携先テーブルとテーブル抽出部１０４により抽出されたテーブルとの間で、参照関係をもたらすカラムの組を示す情報である。即ち、参照関係情報１５１は、第１カラムと第３カラムとの組を示す情報である。
【００３７】
連携関係情報１５２は、テーブル選択部１０２により選択された連携先テーブルとテーブル抽出部１０４により抽出されたテーブルとの間で、参照関係をもたらすカラム以外に、対応するカラムの組を示す情報である。即ち、参照関係情報１５１は、第２カラムと第４カラムとの組を示す情報である。
【００３８】
参照関係情報１５１及び連携関係情報１５２は、テーブル抽出部１０４により作成されて情報蓄積部１０５に記憶される。参照関係情報１５１及び連携関係情報１５２は、テーブル抽出部１０４により最終的な抽出結果１４１として出力されてもよいし、一時的に情報蓄積部１０５に保存されて最終的な抽出結果１４１を決定するために利用されてもよい。
【００３９】
情報出力部１０６は、テーブル抽出部１０４から出力された抽出結果１４１に基づき、テーブル選択部１０２により選択された連携先テーブルとテーブル抽出部１０４により抽出されたテーブルとの組み合わせをデータ連携に利用することを推奨する推奨情報１６１を生成する。情報出力部１０６は、生成した推奨情報１６１を、出力装置を介して出力する。
【００４０】
情報出力部１０６は、テーブル抽出部１０４から出力された抽出結果１４１に、前述した３種類のテーブルのうち少なくとも２種類のテーブルが含まれている場合、テーブルの種類ごとに、テーブル選択部１０２により選択された連携先テーブルとテーブル抽出部１０４により抽出されたテーブルとの組み合わせをデータ連携に利用することを推奨する情報を推奨情報１６１として出力する。
【００４１】
出力装置は、推奨情報１６１を画面に表示する表示装置であってもよいし、推奨情報１６１を利用して何らかの処理を実行するコンピュータであってもよい。
【００４２】
以下では、データ連携支援装置１００の動作（即ち、本実施の形態に係るデータ連携支援方法）の例を説明する。
【００４３】
図２は、連携元情報１１１の例を示す表である。
【００４４】
図２において、連携元情報１１１は、前述したように、連携元テーブルを定義する情報である。連携元情報１１１は、ＤＤＬ（Ｄａｔａ・Ｄｅｆｉｎｉｔｉｏｎ・Ｌａｎｇｕａｇｅ）又はＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ・Ｍａｒｋｕｐ・Ｌａｎｇｕａｇｅ）で記述されたファイルとして予め情報記憶部１０１に記憶される。あるいは、連携元情報１１１は、ＳＱＬ文の発行等によって連携元データベースから取得されて情報記憶部１０１に記憶される。連携元情報１１１には、テーブル所在情報２０１、テーブル定義情報２０２が含まれる。
【００４５】
テーブル所在情報２０１には、インスタンス名、スキーマ名、テーブル名の情報が含まれる。例えば、テーブル所在情報２０１では、「発注システム」というインスタンスの「ＳＶＲ００１」というスキーマに「店舗」テーブルがあることが定義されている。
【００４６】
テーブル定義情報２０２は、テーブル所在情報２０１で定義されている連携元テーブルごとに記憶される。テーブル定義情報２０２には、カラム名、データ型、主キーの情報（即ち、属性情報及び主キー情報）が含まれる。例えば、「発注システム」の「ＳＶＲ００１」にある「店舗」テーブルのテーブル定義情報２０２では、その「店舗」テーブルが「店舗ＩＤ」、「店舗名」、「住所」、「店長社員ＩＤ」というカラムを含み、「店舗ＩＤ」が単独で主キーになっていることが定義されている。
【００４７】
図示していないが、連携先情報１１２も、図２に示した連携元情報１１１と同様の形式の情報である。
【００４８】
図３は、データ連携支援装置１００の動作の例を示すフローチャートである。図４は、後述する参照元情報２１１及び主キー定義情報２１２の例を示す表である。図５は、スキーママッチングの結果２２１の例を示す表である。図６は、参照関係情報１５１の例を示す表である。
【００４９】
ステップＳ１１において、テーブル選択部１０２は、情報記憶部１０１から連携先情報１１２を読み取る。テーブル選択部１０２は、連携先情報１１２により定義された連携先テーブルの一覧を、出力装置を介して画面に表示する。テーブル選択部１０２は、この一覧を見たユーザの操作を、入力装置を介して受け付ける。テーブル選択部１０２は、ユーザの操作に従って、１つの連携先テーブルを選択する。テーブル選択部１０２は、テーブル定義情報２０２と同様の形式で、選択した連携先テーブルを定義する参照元情報２１１を生成する。
【００５０】
例えば、テーブル選択部１０２は、「発注システム」の「ＳＶＲ００１」にある「注文明細テーブル」について、図４に示すような参照元情報２１１を生成する。この参照元情報２１１では、「発注システム」の「ＳＶＲ００１」にある「注文明細テーブル」が「注文詳細ＩＤ」、「注文ＩＤ」、「店舗ＩＤ」、「注文数」、「店舗名」というカラムを含み、「注文詳細ＩＤ」及び「注文ＩＤ」が主キーになっていることが定義されている。
【００５１】
テーブル選択部１０２は、参照元情報２１１をテーブル抽出部１０４に引き渡す。
【００５２】
ステップＳ１２において、カラム特定部１０３は、情報記憶部１０１から連携元情報１１１を読み取る。カラム特定部１０３は、連携元情報１１１に含まれるテーブル所在情報２０１で定義されている連携元テーブルごとに、連携元情報１１１に含まれるテーブル定義情報２０２を参照する。カラム特定部１０３は、各連携元テーブルのテーブル定義情報２０２から、各連携元テーブルの主キーになっているカラム（即ち、第１カラム）を特定する。カラム特定部１０３は、テーブル定義情報２０２を、特定したカラムのみに絞り込んだ主キー定義情報２１２を生成する。
【００５３】
例えば、カラム特定部１０３は、「発注システム」の「ＳＶＲ００１」にある「店舗」テーブルについて、図４に示すような主キー定義情報２１２を生成する。この主キー定義情報２１２では、「発注システム」の「ＳＶＲ００１」にある「店舗」テーブルが主キーとして「店舗ＩＤ」というカラムを含むことが定義されている。
【００５４】
カラム特定部１０３は、各連携元テーブルについて、主キー定義情報２１２をテーブル抽出部１０４に引き渡す。
【００５５】
カラム特定部１０３は、連携先情報１１２についても同様の処理を行って、連携先テーブルごとに主キー定義情報２１２を生成する。ただし、カラム特定部１０３は、ステップＳ１１で選択された連携先テーブルについては、主キー定義情報２１２を生成しない。
【００５６】
カラム特定部１０３は、各連携先テーブルについて、主キー定義情報２１２をテーブル抽出部１０４に引き渡す。
【００５７】
ステップＳ１３において、テーブル抽出部１０４は、各連携元テーブルについて、テーブル選択部１０２から引き渡された参照元情報２１１と、カラム特定部１０３から引き渡された主キー定義情報２１２との組を設定する。テーブル抽出部１０４は、各連携先テーブルについても、テーブル選択部１０２から引き渡された参照元情報２１１と、カラム特定部１０３から引き渡された主キー定義情報２１２との組を設定する。
【００５８】
ステップＳ１４において、テーブル抽出部１０４は、ステップＳ１３で設定した組のうち、ステップＳ１４〜Ｓ１７の処理を未だ実行していない組を選択する。テーブル抽出部１０４は、選択した組の参照元情報２１１と主キー定義情報２１２とのスキーママッチングを実行する。例えば、テーブル抽出部１０４は、図５に示すようなスキーママッチングの結果２２１を得る。図５では、スキーママッチングの結果２２１が、主キー定義情報２１２のカラムと参照元情報２１１のカラムとの類似度を０〜１．０の間で示した表の形式になっている。図５の例において、主キー定義情報２１２の「店舗ＩＤ」カラムと参照元情報２１１の「注文数」カラムとの類似度は０である。一方、主キー定義情報２１２の「店舗ＩＤ」カラムと参照元情報２１１の「店舗ＩＤ」カラムとの類似度は１．０である。
【００５９】
ステップＳ１５において、テーブル抽出部１０４は、ステップＳ１４で得たスキーママッチングの結果２２１から、類似度が予め定められた閾値より高いカラムの組（即ち、第１カラムと第３カラムとの組）を抽出する。主キー定義情報２１２に複数のカラムがある場合、テーブル抽出部１０４は、主キー定義情報２１２のカラムの全てについて、参照元情報２１１のカラムに重複がないように、カラムの組を抽出しなければならない。主キー定義情報２１２の同じカラムに対して、類似度が閾値より高いカラムの組が２つ以上ある場合、テーブル抽出部１０４は、類似度が最も高いカラムの組を選択する。類似度が閾値より高いカラムの組が１つもない場合、テーブル抽出部１０４は、カラムの組を抽出しないでステップＳ１８に進む。図５の例において、閾値を０．８とすると、テーブル抽出部１０４は、主キー定義情報２１２の「店舗ＩＤ」カラムと参照元情報２１１の「店舗ＩＤ」カラムとの組を抽出することになる。
【００６０】
ステップＳ１５で抽出されたカラムの組がある場合、ステップＳ１６において、テーブル抽出部１０４は、抽出したカラムの組を示す参照関係情報１５１を生成する。テーブル抽出部１０４は、参照関係情報１５１を情報蓄積部１０５に保存する。
【００６１】
例えば、テーブル抽出部１０４は、図６に示すような参照関係情報１５１を生成する。この参照関係情報１５１には、参照先インスタンス名、参照先スキーマ名、参照先テーブル名、参照先カラム名、参照元インスタンス名、参照元スキーマ名、参照元テーブル名、参照元カラム名の情報が含まれる。この参照関係情報１５１では、「発注システム」の「ＳＶＲ００１」にある「店舗」テーブルと「発注システム」の「ＳＶＲ００１」にある「注文明細」テーブルとの間に参照関係があることが定義されている。また、「店舗」テーブルの「店舗ＩＤ」カラムが参照先であり、「注文明細」テーブルの「店舗ＩＤ」カラムが参照元（即ち、外部キー）であることが定義されている。
【００６２】
ステップＳ１７において、データ連携支援装置１００は、図７に示す動作を行う。
【００６３】
ステップＳ１８において、テーブル抽出部１０４は、ステップＳ１３で設定した組のうち、ステップＳ１４〜Ｓ１７の処理を未だ実行していない組があるかどうかを判定する。そのような組がある場合、テーブル抽出部１０４は、ステップＳ１４に戻る。そのような組がない場合、テーブル抽出部１０４は、処理を終了する。
【００６４】
図７は、ステップＳ１７におけるデータ連携支援装置１００の動作の例を示すフローチャートである。図８は、後述する非外部キー定義情報２３１及び非主キー定義情報２３２の例を示す表である。図９は、スキーママッチングの結果２４１の例を示す表である。図１０は、連携関係情報１５２の例を示す表である。
【００６５】
ステップＳ２１において、テーブル選択部１０２は、情報蓄積部１０５から参照関係情報１５１を読み取る。テーブル選択部１０２は、ステップＳ１１で生成した参照元情報２１１を、参照関係情報１５１で定義されている参照元カラム以外のカラムのみに絞り込んだ非外部キー定義情報２３１を生成する。
【００６６】
例えば、テーブル選択部１０２は、「発注システム」の「ＳＶＲ００１」にある「注文明細テーブル」について、図８に示すような非外部キー定義情報２３１を生成する。この非外部キー定義情報２３１では、「発注システム」の「ＳＶＲ００１」にある「注文明細テーブル」が非外部キーとして「注文詳細ＩＤ」、「注文ＩＤ」、「注文数」、「店舗名」というカラムを含み、「注文詳細ＩＤ」及び「注文ＩＤ」が主キーになっていることが定義されている。
【００６７】
テーブル選択部１０２は、非外部キー定義情報２３１をテーブル抽出部１０４に引き渡す。
【００６８】
ステップＳ２２において、カラム特定部１０３は、情報蓄積部１０５から参照関係情報１５１を読み取る。カラム特定部１０３は、参照関係情報１５１で定義されている参照先テーブルについて、ステップＳ１２で読み取った連携元情報１１１又は連携先情報１１２に含まれるテーブル定義情報２０２を参照する。カラム特定部１０３は、参照先テーブルのテーブル定義情報２０２から、参照先テーブルの主キーになっていないカラム（即ち、第２カラム）を特定する。カラム特定部１０３は、テーブル定義情報２０２を、特定したカラムのみに絞り込んだ非主キー定義情報２３２を生成する。
【００６９】
例えば、カラム特定部１０３は、「発注システム」の「ＳＶＲ００１」にある「店舗」テーブルについて、図８に示すような非主キー定義情報２３２を生成する。この非主キー定義情報２３２では、「発注システム」の「ＳＶＲ００１」にある「店舗」テーブルが非主キーとして「店舗名」、「住所」、「店長社員ＩＤ」というカラムを含むことが定義されている。
【００７０】
カラム特定部１０３は、非主キー定義情報２３２をテーブル抽出部１０４に引き渡す。
【００７１】
ステップＳ２３において、テーブル抽出部１０４は、テーブル選択部１０２から引き渡された非外部キー定義情報２３１と、カラム特定部１０３から引き渡された非主キー定義情報２３２との組を設定する。
【００７２】
ステップＳ２４において、テーブル抽出部１０４は、ステップＳ２３で設定した組の非外部キー定義情報２３１と非主キー定義情報２３２とのスキーママッチングを実行する。例えば、テーブル抽出部１０４は、図９に示すようなスキーママッチングの結果２４１を得る。図９では、スキーママッチングの結果２４１が、図５の例と同様に、非主キー定義情報２３２のカラムと非外部キー定義情報２３１のカラムとの類似度を０〜１．０の間で示した表の形式になっている。図９の例において、非主キー定義情報２３２の「店舗名」カラムと非外部キー定義情報２３１の「注文詳細ＩＤ」カラムとの類似度は０である。一方、非主キー定義情報２３２の「店舗名」カラムと非外部キー定義情報２３１の「店舗名」カラムとの類似度は１．０である。
【００７３】
ステップＳ２５において、テーブル抽出部１０４は、ステップＳ２４で得たスキーママッチングの結果２４１から、類似度が予め定められた閾値より高いカラムの組（即ち、第２カラムと第４カラムとの組）を抽出する。非主キー定義情報２３２に複数のカラムがある場合、テーブル抽出部１０４は、非外部キー定義情報２３１のカラムに重複がないように、カラムの組を抽出しなければならない。非主キー定義情報２３２の同じカラムに対して、類似度が閾値より高いカラムの組が２つ以上ある場合、テーブル抽出部１０４は、類似度が最も高いカラムの組を選択する。類似度が閾値より高いカラムの組が１つもない場合、テーブル抽出部１０４は、カラムの組を抽出しないで処理を終了する。図９の例において、閾値を０．８とすると、テーブル抽出部１０４は、非主キー定義情報２３２の「店舗名」カラムと非外部キー定義情報２３１の「店舗名」カラムとの組を抽出することになる。テーブル抽出部１０４は、非主キー定義情報２３２の「住所」カラム及び「店長社員ＩＤ」カラムについては、カラムの組を抽出しない。
【００７４】
ステップＳ２５で抽出されたカラムの組がある場合、ステップＳ２６において、テーブル抽出部１０４は、抽出したカラムの組を示す連携関係情報１５２を生成する。テーブル抽出部１０４は、連携関係情報１５２を情報蓄積部１０５に保存する。
【００７５】
例えば、テーブル抽出部１０４は、図１０に示すような連携関係情報１５２を生成する。この連携関係情報１５２には、連携元カラム名、連携先カラム名の情報が含まれる。連携関係情報１５２は、図６に示した参照関係情報１５１と合成される。即ち、参照関係情報１５１及び連携関係情報１５２が合成された情報には、参照先インスタンス名、参照先スキーマ名、参照先テーブル名、参照先カラム名、連携元カラム名、参照元インスタンス名、参照元スキーマ名、参照元テーブル名、参照元カラム名、連携先カラム名の情報が含まれる。この合成された情報では、「発注システム」の「ＳＶＲ００１」にある「店舗」テーブルの「店舗名」カラムが連携元であり、「発注システム」の「ＳＶＲ００１」にある「注文明細」テーブルの「店舗名」カラムが連携先であることが定義されている。連携元と連携先との組が２つ以上ある場合、連携元カラム名、連携先カラム名が同じ順番で記憶される。例えば、「店舗」テーブルの「店舗名」カラムと「注文明細」テーブルの「店舗名」カラムとが組であり、「店舗」テーブルの「住所」カラムと「注文明細」テーブルの「住所」カラムとが組であるとする。連携元カラム名が「店舗名」、「住所」の順番で記憶されていれば、連携先カラム名も「店舗名」、「住所」の順番で記憶される。
【００７６】
図１１は、図３の動作の後におけるデータ連携支援装置１００の動作の例を示すフローチャートである。図１２は、抽出結果１４１の例を示す表である。
【００７７】
ステップＳ３１において、テーブル抽出部１０４は、情報蓄積部１０５から参照関係情報１５１及び連携関係情報１５２を読み取る。テーブル抽出部１０４は、参照関係情報１５１及び連携関係情報１５２により示された参照先カラムと参照元カラムとの組（即ち、第１カラムと第３カラムとの組）を、参照先テーブルと参照元テーブルとがどのスキーマに属するかによってグループ分けする。具体的には、テーブル抽出部１０４は、参照先カラムと参照元カラムとの組を、参照先テーブルと参照元テーブルとが同じスキーマに属するグループと、参照先テーブルと参照元テーブルとが同じインスタンスの異なるスキーマに属するグループと、参照先テーブルと参照元テーブルとが異なるインスタンスのスキーマに属するグループとの３つのグループに分類する。
【００７８】
ステップＳ３２において、テーブル抽出部１０４は、前述した３つのグループのうち、ステップＳ３２及びＳ３３の処理を未だ実行していないグループを選択する。テーブル抽出部１０４は、ステップＳ３１で、選択したグループに分類した組のうち、対応する連携元カラムと連携先カラムとの組の個数が最も多いものを抽出する。
【００７９】
ステップＳ３３において、テーブル抽出部１０４は、参照関係情報１５１及び連携関係情報１５２を合成した情報と同様の形式で、ステップＳ３２で抽出した参照先カラムと参照元カラムとの組を示す抽出結果１４１を出力する。
【００８０】
例えば、テーブル抽出部１０４は、図１２に示すような抽出結果１４１を出力する。この抽出結果１４１では、「発注システム」の「ＳＶＲ００１」にある「店舗」テーブルと「発注システム」の「ＳＶＲ００１」にある「注文明細」テーブルとの間に参照関係があることが示されている。また、「店舗」テーブルの「店舗ＩＤ」カラムが参照先、「店舗名」が連携元であり、「注文明細」テーブルの「店舗ＩＤ」カラムが参照元（即ち、外部キー）、「店舗名」が連携先であることが示されている。
【００８１】
ステップＳ３４において、テーブル抽出部１０４は、前述した３つのグループのうち、ステップＳ３２及びＳ３３の処理を未だ実行していないグループがあるかどうかを判定する。そのようなグループがある場合、テーブル抽出部１０４は、ステップＳ３２に戻る。そのようなグループがない場合、テーブル抽出部１０４は、処理を終了する。
【００８２】
図１３は、図１１の動作の後におけるデータ連携支援装置１００の動作の例を示すフローチャートである。図１４は、後述する入力情報２５１及び推奨情報１６１の例を示す表である。
【００８３】
ステップＳ４１において、情報出力部１０６は、参照先を検索するためにユーザから入力される入力情報２５１を、入力装置を介して取得する。
【００８４】
例えば、情報出力部１０６は、図１４に示すような入力情報２５１を取得する。この入力情報２５１では、「発注システム」の「ＳＶＲ００１」にある「注文明細」テーブルの「店舗ＩＤ」カラムに対して、ユーザが参照先を検索したいことが示されている。カラム名が省略されている場合、情報出力部１０６は、「注文明細」テーブルの全てのカラムに対して、ユーザが参照先を検索したいことが示されていると解釈してもよい。
【００８５】
ステップＳ４２において、情報出力部１０６は、ステップＳ３３でテーブル抽出部１０４から出力された抽出結果１４１を参照する。情報出力部１０６は、抽出結果１４１から、ステップＳ４１で取得した入力情報２５１に一致する情報を抽出する。具体的には、情報出力部１０６は、抽出結果１４１で示されている参照元インスタンス、参照元スキーマ、参照元テーブル、参照元カラムの組み合わせのうち、入力情報２５１で示されているインスタンス、スキーマ、テーブル、カラムの組み合わせに一致するものを抽出する。
【００８６】
ステップＳ４３において、情報出力部１０６は、ステップＳ４２で抽出した情報があるかどうかを判定する。抽出した情報がある場合、情報出力部１０６は、ステップＳ４４に進む。抽出した情報がない場合、情報出力部１０６は、ステップＳ４５に進む。
【００８７】
ステップＳ４４において、情報出力部１０６は、ステップＳ４２で抽出した情報に基づき、前述した３つのグループのそれぞれについて、入力情報２５１に対応する参照先を推奨する推奨情報１６１を生成する。情報出力部１０６は、推奨情報１６１を、出力装置を介して出力し、処理を終了する。
【００８８】
例えば、情報出力部１０６は、図１４に示すような推奨情報１６１を画面に表示する。この推奨情報１６１では、参照先テーブルと参照元テーブルとが同じスキーマに属するグループ（即ち、「同一スキーマ」）について、「発注システム」の「ＳＶＲ００１」にある「店舗」テーブルの「店舗ＩＤ」カラムを参照先として推奨することが示されている。また、入力情報２５１で示されている「注文明細」テーブルの「店舗名」カラムに格納するデータを、「発注システム」の「ＳＶＲ００１」にある「店舗」テーブルの「店舗名」カラムから抽出すればよいことが示されている。
【００８９】
ステップＳ４５において、情報出力部１０６は、入力情報２５１に対応する参照先がないことを通知する情報を、出力装置を介して出力し、処理を終了する。
【００９０】
本実施の形態では、以上説明した動作により、データベースの定義情報のみから、テーブル間の参照関係及び外部キーとなるカラムを特定することができる。さらに、参照関係のあるテーブル間で共通するカラムを特定し、データ連携に利用するのに最適なテーブル（即ち、データ連携に利用できるカラムの数が最も多いテーブル）を抽出することができる。つまり、本実施の形態によれば、データ連携において、連携先となるテーブルと、どのテーブルとの間に参照関係があるかを、効率よく検出することができる。さらに、連携先となるテーブルのカラムに格納するデータを、どのテーブルのカラムから抽出すればよいかを、効率よく検出することができる。
【００９１】
前述したように、本実施の形態では、テーブル抽出部１０４が、カラム特定部１０３により２つ以上の第２カラムが特定されたテーブルについては、テーブル選択部１０２により選択された連携先テーブルに、最も多くの第２カラムに対して個別に第４カラムが存在するテーブルのみを抽出結果１４１に含める。本実施の形態の変形例において、テーブル抽出部１０４は、カラム特定部１０３により２つ以上の第２カラムが特定されたテーブルについて、テーブル選択部１０２により選択された連携先テーブルに、２番目に多くの第２カラムに対して個別に第４カラムが存在するテーブルも抽出結果１４１に含めることができる。あるいは、「２番目」だけでなく、「上位ｎ番目」まで含めることができる。「ｎ」には、２より大きい任意の数を設定可能である。
【００９２】
図１５は、実施の形態１に係るデータ連携支援装置１００のハードウェア構成の例を示す図である。
【００９３】
図１５において、データ連携支援装置１００は、コンピュータであり、ＬＣＤ９０１（Ｌｉｑｕｉｄ・Ｃｒｙｓｔａｌ・Ｄｉｓｐｌａｙ）、キーボード９０２（Ｋ／Ｂ）、マウス９０３、ＦＤＤ９０４（Ｆｌｅｘｉｂｌｅ・Ｄｉｓｋ・Ｄｒｉｖｅ）、ＣＤＤ９０５（Ｃｏｍｐａｃｔ・Ｄｉｓｃ・Ｄｒｉｖｅ）、プリンタ９０６といったハードウェアデバイスを備えている。これらのハードウェアデバイスはケーブルや信号線で接続されている。ＬＣＤ９０１の代わりに、ＣＲＴ（Ｃａｔｈｏｄｅ・Ｒａｙ・Ｔｕｂｅ）、あるいは、その他の表示装置が用いられてもよい。マウス９０３の代わりに、タッチパネル、タッチパッド、トラックボール、ペンタブレット、あるいは、その他のポインティングデバイスが用いられてもよい。
【００９４】
データ連携支援装置１００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）を備えている。ＣＰＵ９１１は、処理装置の例である。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）、ＲＡＭ９１４（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）、通信ボード９１５、ＬＣＤ９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、プリンタ９０６、ＨＤＤ９２０（Ｈａｒｄ・Ｄｉｓｋ・Ｄｒｉｖｅ）と接続され、これらのハードウェアデバイスを制御する。ＨＤＤ９２０の代わりに、ＳＳＤ（Ｓｏｌｉｄ・Ｓｔａｔｅ・Ｄｒｉｖｅ）、フラッシュメモリ、光ディスク装置、メモリカードリーダライタ、あるいは、その他の記録媒体が用いられてもよい。
【００９５】
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、ＨＤＤ９２０は、不揮発性メモリの一例である。これらは、記憶装置の例である。通信ボード９１５、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５は、入力装置の一例である。また、通信ボード９１５、ＬＣＤ９０１、プリンタ９０６は、出力装置の一例である。
【００９６】
通信ボード９１５は、ＬＡＮ（Ｌｏｃａｌ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）等に接続されている。通信ボード９１５は、ＬＡＮに限らず、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｅｔ・Ｐｒｏｔｏｃｏｌ・Ｖｉｒｔｕａｌ・Ｐｒｉｖａｔｅ・Ｎｅｔｗｏｒｋ）、広域ＬＡＮ、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ・Ｔｒａｎｓｆｅｒ・Ｍｏｄｅ）ネットワークといったＷＡＮ（Ｗｉｄｅ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）、あるいは、インターネットに接続されていても構わない。ＬＡＮ、ＷＡＮ、インターネットは、ネットワークの例である。
【００９７】
ＨＤＤ９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。プログラム群９２３には、本発明の実施の形態の説明において「〜部」として説明する機能を実行するプログラムが含まれている。プログラムは、ＣＰＵ９１１により読み出され実行される。ファイル群９２４には、本発明の実施の形態の説明において、「〜データ」、「〜情報」、「〜ＩＤ（識別子）」、「〜フラグ」、「〜結果」として説明するデータや情報や信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」や「〜テーブル」の各項目として含まれている。「〜ファイル」や「〜データベース」や「〜テーブル」は、ＲＡＭ９１４やＨＤＤ９２０等の記録媒体に記憶される。ＲＡＭ９１４やＨＤＤ９２０等の記録媒体に記憶されたデータや情報や信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったＣＰＵ９１１の処理（動作）に用いられる。抽出、検索、参照、比較、演算、計算、制御、出力、印刷、表示といったＣＰＵ９１１の処理中、データや情報や信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
【００９８】
本発明の実施の形態の説明において用いるブロック図やフローチャートの矢印の部分は主としてデータや信号の入出力を示す。データや信号は、ＲＡＭ９１４等のメモリ、ＦＤＤ９０４のフレキシブルディスク（ＦＤ）、ＣＤＤ９０５のコンパクトディスク（ＣＤ）、ＨＤＤ９２０の磁気ディスク、光ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｃ）、あるいは、その他の記録媒体に記録される。また、データや信号は、バス９１２、信号線、ケーブル、あるいは、その他の伝送媒体により伝送される。
【００９９】
本発明の実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアのみ、あるいは、素子、デバイス、基板、配線といったハードウェアのみで実現されていても構わない。あるいは、「〜部」として説明するものは、ソフトウェアとハードウェアとの組み合わせ、あるいは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実現されていても構わない。ファームウェアとソフトウェアは、プログラムとして、フレキシブルディスク、コンパクトディスク、磁気ディスク、光ディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。即ち、プログラムは、本発明の実施の形態の説明で述べる「〜部」としてコンピュータを機能させるものである。あるいは、プログラムは、本発明の実施の形態の説明で述べる「〜部」の手順や方法をコンピュータに実行させるものである。
【０１００】
以上、本発明の実施の形態について説明したが、本発明は、この実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【０１０１】
１００  データ連携支援装置、１０１  情報記憶部、１０２  テーブル選択部、１０３  カラム特定部、１０４  テーブル抽出部、１０５  情報蓄積部、１０６  情報出力部、１１１  連携元情報、１１２  連携先情報、１４１  抽出結果、１５１  参照関係情報、１５２  連携関係情報、１６１  推奨情報、２０１  テーブル所在情報、２０２  テーブル定義情報、２１１  参照元情報、２１２  主キー定義情報、２２１  結果、２３１  非外部キー定義情報、２３２  非主キー定義情報、２４１  結果、２５１  入力情報、９０１  ＬＣＤ、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  ＣＤＤ、９０６  プリンタ、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  ＨＤＤ、９２１  オペレーティングシステム、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群。
【図１】
0005972461.tif 000002
【図２】
0005972461.tif 000003
【図３】
0005972461.tif 000004
【図４】
0005972461.tif 000005
【図５】
0005972461.tif 000006
【図６】
0005972461.tif 000007
【図７】
0005972461.tif 000008
【図８】
0005972461.tif 000009
【図９】
0005972461.tif 000010
【図１０】
0005972461.tif 000011
【図１１】
0005972461.tif 000012
【図１２】
0005972461.tif 000013
【図１３】
0005972461.tif 000014
【図１４】
0005972461.tif 000015
【図１５】
0005972461.tif 000016