(57)【要約】【課題】本発明の課題は、テーブル間の対応付けの確からしさの精度を向上させることを目的とする。【解決手段】上記課題は、第１テーブルのデータ項目と少なくとも一部のデータ項目が一致する複数の候補テーブルを複数の第２テーブルから選択し、複数の前記候補テーブルと前記第１テーブルのデータ項目の第１一致度をそれぞれ算出し、複数の前記候補テーブルのデータ項目と少なくとも一部のデータ項目が一致する複数の第３テーブルを複数の前記第２テーブルから選択し、複数の前記候補テーブルと複数の前記第３テーブルのデータ項目の第２一致度をそれぞれ算出し、前記第１一致度と前記第２一致度に基づいて、複数の前記候補テーブルの信頼度を算出する処理をコンピュータに実行させるデータ処理プログラムにより達成される。【選択図】図５
2018010450.tif 000002
【特許請求の範囲】
【請求項１】
第１テーブルのデータ項目と少なくとも一部のデータ項目が一致する複数の候補テーブルを複数の第２テーブルから選択し、複数の前記候補テーブルと前記第１テーブルのデータ項目の第１一致度をそれぞれ算出し、
複数の前記候補テーブルのデータ項目と少なくとも一部のデータ項目が一致する複数の第３テーブルを複数の前記第２テーブルから選択し、複数の前記候補テーブルと複数の前記第３テーブルのデータ項目の第２一致度をそれぞれ算出し、
前記第１一致度と前記第２一致度に基づいて、複数の前記候補テーブルの信頼度を算出する
処理をコンピュータに実行させるデータ処理プログラム。
【請求項２】
前記コンピュータは、
前記第１テーブルのデータ項目の総数に対する、前記候補テーブルのデータ項目が一致した一致数の割合を算出することによって、前記第１一致度を取得する
ことを特徴とする請求項１記載のデータ処理プログラム。
【請求項３】
前記コンピュータは、
各候補テーブル毎に、該候補テーブルのデータ項目の総数に対する、前記第３テーブルのデータ項目が一致した一致数の割合を算出することによって、前記第２一致度を取得する
ことを特徴とする請求項２記載のデータ処理プログラム。
【請求項４】
前記コンピュータは、
前記候補テーブル毎に、前記第１テーブルの前記データ項目の前記第１一致度と、前記第３テーブルのとの該データ項目の第２一致度とを合算して、各候補テーブルの前記信頼度を取得する
ことを特徴とする請求項１乃至３のいずれか一項記載のデータ処理プログラム。
【請求項５】
前記コンピュータは、
複数の前記候補テーブルのうち、最も高い信頼度の候補テーブルを、前記第１テーブルに最も結合され得る最尤テーブルであると判定する
ことを特徴とする請求項１乃至４のいずれか一項記載のデータ処理プログラム。
【請求項６】
前記コンピュータは、
複数の前記第１テーブルに対して、該第１テーブル毎に、前記信頼度に基づいて、複数の前記候補テーブルの１つを該第１テーブルに最も結合され得るテーブルであると判定し、
複数の前記第１テーブルの複数の前記最も結合され得るテーブルのうち、最も高い信頼度のテーブルを、複数の該第１テーブルに結合され得る最尤テーブルであると判定する
ことを特徴とする請求項５記載のデータ処理プログラム。
【請求項７】
第１テーブルのデータ項目と少なくとも一部のデータ項目が一致する複数の候補テーブルを複数の第２テーブルから選択し、複数の前記候補テーブルと前記第１テーブルのデータ項目の第１一致度をそれぞれ算出し、
複数の前記候補テーブルのデータ項目と少なくとも一部のデータ項目が一致する複数の第３テーブルを複数の前記第２テーブルから選択し、複数の前記候補テーブルと複数の前記第３テーブルのデータ項目の第２一致度をそれぞれ算出し、
前記第１一致度と前記第２一致度に基づいて、複数の前記候補テーブルの信頼度を算出する
処理をコンピュータに実行させるデータ処理方法。
【請求項８】
第１テーブルのデータ項目と少なくとも一部のデータ項目が一致する複数の候補テーブルを複数の第２テーブルから選択し、複数の前記候補テーブルと前記第１テーブルのデータ項目の第１一致度をそれぞれ算出する第１一致度取得部と、
複数の前記候補テーブルのデータ項目と少なくとも一部のデータ項目が一致する複数の第３テーブルを複数の前記第２テーブルから選択し、複数の前記候補テーブルと複数の前記第３テーブルのデータ項目の第２一致度をそれぞれ算出する第２一致度取得部と、
前記第１一致度と前記第２一致度に基づいて、複数の前記候補テーブルの信頼度を算出する信頼度取得部と
を有するデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理プログラム、データ処理方法、及びデータ処理装置に関する。
【背景技術】
【０００２】
企業や官公庁など、多くの組織の大規模システムでは、新しいマスタテーブルと古いマスタテーブルとが整理されないまま混在していたり、地域ごとに分けられたマスタテーブルが識別できない状態のまま放置されていたりすることがある。このような場合、トランザクションデータと対応付けられたマスタテーブルを選び出して結合することが困難なため、データの利活用が著しく制限されるといった問題がある。
【０００３】
クライアント装置から受信した検索要求から求めた管理データ・リポジトリ（ＭＤＲ）の組み合せの優先度に基づいて、ＭＤＲ毎に検索して取得したデータのうち検索要求の検索条件を満たすデータを特定する技術等が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−０２１７０４号公報
【特許文献２】特開２００６−１８９９２１号公報
【特許文献３】特開平１１−１９１１１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述した技術では、異なる名前で管理されている同一データに対して共通の名前を付け、同一データとして管理するため、データ間の対応付けが既知であることを前提としている。従って、データ間の対応付け、言い換えると、テーブル間の対応付けが不明な場合において、稼働中のトランザクションのようなテーブルと、蓄積され放置されたマスタのようなテーブルとの対応付けを行うことができないといった問題がある。
【０００６】
したがって、１つの側面では、本発明は、テーブル間の対応付けの確からしさの精度を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
一態様によれば、第１テーブルのデータ項目と少なくとも一部のデータ項目が一致する複数の候補テーブルを複数の第２テーブルから選択し、複数の前記候補テーブルと前記第１テーブルのデータ項目の第１一致度をそれぞれ算出し、複数の前記候補テーブルのデータ項目と少なくとも一部のデータ項目が一致する複数の第３テーブルを複数の前記第２テーブルから選択し、複数の前記候補テーブルと複数の前記第３テーブルのデータ項目の第２一致度をそれぞれ算出し、前記第１一致度と前記第２一致度に基づいて、複数の前記候補テーブルの信頼度を算出する処理をコンピュータに実行させるデータ処理プログラムが提供される。
【０００８】
また、上記課題を解決するための手段として、データ処理方法、及びデータ処理装置とすることもできる。
【発明の効果】
【０００９】
テーブル間の対応付けの確からしさの精度を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】結合処理を説明するための図である。
【図２】結合成功率に基づいてマスタを選択する例を説明するための図である。
【図３】データ処理装置のハードウェア構成を示す図である。
【図４】第１実施例におけるデータ処理装置の機能構成例を示す図である。
【図５】第１実施例における結合連鎖の例を示す図である。
【図６】第１実施例における結合率に基づく信頼度の計算例を説明するための図である。
【図７】第１実施例における統合マスタ選択処理を説明するための図である。
【図８】ステップＳ２０の結合処理を説明するためのフローチャート図である。
【図９】ステップＳ４０のマスタ探索処理を説明するためのフローチャート図である。
【図１０】図９のステップＳ４０４を説明するためのフローチャート図である。
【図１１】第２実施例におけるデータ処理装置の機能構成例を示す図である。
【図１２】第２実施例における結合連鎖の例を示す図である。
【図１３】第２実施例における生存数に基づく信頼度の計算例を説明するための図である。
【図１４】第１実施例における統合マスタ選択処理を説明するための図である。
【図１５】ステップＳ２０−２の結合処理を説明するためのフローチャート図である。
【図１６】ステップＳ４０−２のマスタ探索処理を説明するためのフローチャート図である。
【図１７】図１６のステップＳ４０４−２を説明するためのフローチャート図である。
【図１８】第３実施例を説明するための図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態を図面に基づいて説明する。大規模システムにおいて、新旧のマスタが整理されないまま混在していると、業務に伴って発生した取引先との受発注、支払、納品等のトランザクションデータに対応付けられるマスタを選定して結合することが困難な場合がある。このような状況では、データの利活用が著しく制限されるといった問題がある。
【００１２】
本実施例において、トランザクション（又は、トランザクションデータ）は、データが頻繁に追加される表形式のデータが相当する。マスタ（又は、マスタデータ）は、更新頻度が少ない表形式のデータが相当する。マスタは、業務に係る情報の登録（顧客、店員、製品等の登録情報）に利用される場合が多い。結合処理（又は、ＪＯＩＮ処理）は、キー項目に同一のキーワードをもつトランザクションとマスタの各レコードを合併する処理である。図１に、結合処理について説明する。
【００１３】
図１は、結合処理を説明するための図である。図１において、トランザクション７は、業務ＩＤ、顧客ＩＤ、店員ＩＤ等の項目を有するテーブルである。この例では、業務ＩＤ「１」のレコードでは、顧客ＩＤ「１１２」、店員ＩＤ「Ａ１２」等が示されている。業務ＩＤ「２」のレコードでは、顧客ＩＤ「８５１」、店員ＩＤ「Ｃ５４」等が示されている。業務ＩＤ「３」のレコードでは、顧客ＩＤ「２９４」、店員ＩＤ「Ｑ３９」等が示されている。
【００１４】
マスタ６は、店員ＩＤ、共通ＩＤ等の項目を有するテーブルである。店員ＩＤ「Ａ１２」のレコードでは、共通ＩＤ「009988」等が示されている。店員ＩＤ「Ｃ５４」のレコードでは、共通ＩＤ「123987」等が示されている。店員ＩＤ「Ｑ３９」のレコードでは、共通ＩＤ「357852」等が示されている。
【００１５】
トランザクション７及びマスタ６の店員ＩＤはキー項目３である場合、キー項目３の値が一致するレコードが結合され（結合演算）、結合テーブル９が生成される。
【００１６】
結合テーブル９は、業務ＩＤ、顧客ＩＤ、店員ＩＤ、共通ＩＤ等の項目を有する。この例では、業務ＩＤ「１」のレコードでは、顧客ＩＤ「１１２」、店員ＩＤ「Ａ１２」、共通ＩＤ「009988」等が示される。店員ＩＤ「Ａ１２」を同一とする、トランザクション７のレコードと、マスタ６のレコードとが結合される。業務ＩＤ「２」及び業務ＩＤ「３」のレコードについても同様である。
【００１７】
図１では、トランザクション７に対してキー項目３で対応付けされるマスタが１つの場合で説明したが、新旧のマスタが混在する場合には２以上のマスタが同じキー項目３で対応付けられる場合がある。対応付けが可能な２以上のマスタが存在する場合には、トランザクション７への対応付けとして最も確からしいマスタを選択することが望ましい。
【００１８】
トランザクション７に対して対応付け可能な２つのマスタ（「候補マスタ」という）が存在する場合について考察する。２つ候補マスタのうち、トランザクション７のレコード数に対して結合成功率が一番高いマスタを選択することが考えられる。
【００１９】
図２は、結合成功率に基づいてマスタを選択する例を説明するための図である。図２では、トランザクション７のレコードと店員ＩＤで対応付け可能な候補マスタとして、第１候補マスタ８１と、第２候補マスタ８２とが存在する場合を示している。第１候補マスタ８１と、第２候補マスタ８２とは共に、少なくとも店員ＩＤの項目を有するマスタである。
【００２０】
第１候補マスタ８１では、店員ＩＤ「Ａ１２」のレコードと、トランザクション７の店員ＩＤ「Ａ１２」のレコードとで対応付けられる。また、店員ＩＤ「Ｃ５４」のレコードと、トランザクション７の店員ＩＤ「Ｃ５４」のレコードとで対応付けられる。
【００２１】
しかしながら、第１候補マスタ８１は、店員ＩＤ「Ｑ３９」のレコードが存在しないため、トランザクション７の店員ＩＤ「Ｑ３９」のレコードには対応付けられない。よって、トランザクション７の３レコードに対して、２レコードが対応付け、トランザクション７と第１候補マスタ８１との結合成功率は「２／３」となる。
【００２２】
第２候補マスタ８２では、店員ＩＤ「Ｑ３９」のレコードと、トランザクション７の店員ＩＤ「Ｑ３９」のレコードとで対応付けられる。しかしながら、第２候補マスタ８２は、店員ＩＤ「Ａ１２」及び「Ｃ５４」のレコードが存在しないため、トランザクション７の店員ＩＤ「Ａ１２」及び「Ｃ５４」のレコードのいずれにも対応付けられない。よって、トランザクション７の３レコードに対して、１レコードが対応付け、トランザクション７と第２候補マスタ８２との結合成功率は「１／３」となる。
【００２３】
結合成功率に基づいた場合、第１候補マスタ８１の結合効率が第２候補マスタ８２の結合成功率より大きいため、第１候補マスタ８１が、トランザクション７に対応付けるマスタとして選択される。
【００２４】
しかしながら、通常のＤＢＭＳ（DataBase  Management  System）は、いくつものマスタを連鎖的に結合して活用するように設計されている。従って、トランザクション７と第１候補マスタ８１のようなあるマスタとの結合成功率（「結合率」ともいう）が高いだけでは、その対応付けが確からしいとはいえない。
【００２５】
即ち、トランザクション７と結合可能な候補マスタが、更に別のマスタとうまく結合できるかどうかを探索し、連鎖的に結合できる影響範囲の広さを定量化することが望ましい。連鎖的に結合できる影響範囲の広さを定量化することによって、トランザクション７の結合相手としてより確からしい候補マスタの選択が可能となる。このような観点に基づいて、発明者等によって、以下の手順が提案される。
【００２６】
＜手順１＞
トランザクション７と結合可能な候補マスタを列挙して結合率を計算する。
【００２７】
＜手順２＞
それぞれの候補マスタと、ＤＢＭＳ上のすべてのマスタとの間で、結合可能かのチェックを行い、結合可能なら結合率を計算する。
【００２８】
＜手順３＞
上記＜手順２＞で得られたマスタに対して、＜手順２＞と同じ処理を結合率が閾値以下となるまで再帰的に繰り返す。
【００２９】
＜手順４＞
それぞれの候補マスタに対する結合連鎖の影響範囲の広さを、結合連鎖における各結合の結合率の積（又は平均等）として算出して定量化する。
【００３０】
結合連鎖の影響範囲の広さを定量化するデータ処理装置１００は、図３に示すようなハードウェア構成を有する。
【００３１】
図３は、データ処理装置のハードウェア構成を示す図である。図３において、データ処理装置１００は、コンピュータによって制御される情報処理装置であって、ＣＰＵ（Central  Processing  Unit）１１と、主記憶装置１２と、補助記憶装置１３と、入力装置１４と、表示装置１５と、通信Ｉ／Ｆ（インターフェース）１７と、ドライブ装置１８とを有し、バスＢに接続される。
【００３２】
ＣＰＵ１１は、主記憶装置１２に格納されたプログラムに従ってデータ処理装置１００を制御するプロセッサに相当する。主記憶装置１２には、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）等が用いられ、ＣＰＵ１１にて実行されるプログラム、ＣＰＵ１１での処理に必要なデータ、ＣＰＵ１１での処理にて得られたデータ等を記憶又は一時保存する。
【００３３】
補助記憶装置１３には、ＨＤＤ（Hard  Disk  Drive）等が用いられ、各種処理を実行するためのプログラム等のデータを格納する。補助記憶装置１３に格納されているプログラムの一部が主記憶装置１２にロードされ、ＣＰＵ１１に実行されることによって、各種処理が実現される。
【００３４】
入力装置１４は、マウス、キーボード等を有し、ユーザがデータ処理装置１００による処理に必要な各種情報を入力するために用いられる。表示装置１５は、ＣＰＵ１１の制御のもとに必要な各種情報を表示する。入力装置１４と表示装置１５とは、一体化したタッチパネル等によるユーザインタフェースであってもよい。通信Ｉ／Ｆ１７は、有線又は無線などのネットワークを通じて通信を行う。通信Ｉ／Ｆ１７による通信は無線又は有線に限定されるものではない。
【００３５】
データ処理装置１００によって行われる処理を実現するプログラムは、例えば、ＣＤ−ＲＯＭ（Compact  Disc  Read‐Only  Memory）等の記憶媒体１９によってデータ処理装置１００に提供される。
【００３６】
ドライブ装置１８は、ドライブ装置１８にセットされた記憶媒体１９（例えば、ＣＤ−ＲＯＭ等）とデータ処理装置１００とのインターフェースを行う。
【００３７】
また、記憶媒体１９に、後述される本実施の形態に係る種々の処理を実現するプログラムを格納し、この記憶媒体１９に格納されたプログラムは、ドライブ装置１８を介してデータ処理装置１００にインストールされる。インストールされたプログラムは、データ処理装置１００により実行可能となる。
【００３８】
尚、プログラムを格納する記憶媒体１９はＣＤ−ＲＯＭに限定されず、コンピュータが読み取り可能な、構造（structure）を有する１つ以上の非一時的（non‐transitory）な、有形（tangible）な媒体であればよい。コンピュータ読取可能な記憶媒体として、ＣＤ−ＲＯＭの他に、ＤＶＤ（Digital  Versatile  Disk）、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリであっても良い。
【００３９】
結合率の積によって、結合連鎖の影響範囲の広さを定量化する第１実施例について説明する。図４は、第１実施例におけるデータ処理装置の機能構成例を示す図である。
【００４０】
図４において、データ処理装置１００は、主に、結合マスタ選択部４０ａを有する。結合マスタ選択部４０ａは、データ処理装置１００にインストールされたプログラムが、データ処理装置１００のＣＰＵ１１に実行させる処理により実現される。記憶部１３０には、トランザクション７、マスタ集合５０、候補マスタ８１、８２、・・・８ｎ（総称して、「候補マスタ８」と呼ぶ）、最尤マスタ８ｐ等が記憶される。
【００４１】
結合マスタ選択部４０ａは、キー項目３によりトランザクション７と結合するマスタとして最も確からしい最尤マスタ８ｐをマスタ集合５０から選択する処理部であり、更に、結合部４１ａと、候補マスタ抽出部４２ａと、マスタ探索部４３ａと、信頼度取得部４４ａと、最尤マスタ選択部４５ａとを含む。
【００４２】
結合部４１ａは、トランザクション７を受け付けて、マスタ集合５０の全てのマスタに対してトランザクション７との結合率を計算する。結合部４１ａは、トランザクション７の全レコード数に対して、マスタと結合したレコード数の割合を算出して結合率を取得する。
【００４３】
候補マスタ抽出部４２ａは、結合部４１ａによって計算された結合率に基づいて、複数の候補マスタ８を抽出する。結合率の高い順に予め定めた候補マスタ数分のマスタを選択して候補マスタ８とすればよい。又は、予め定めた結合率の閾値に基づいて閾値以上となるマスタを選択して候補マスタ８とすればよい。結合部４１ａと候補マスタ抽出部４２ａとが、第１の一致度取得部に相当する。
【００４４】
マスタ探索部４３ａは、各候補マスタ８から項目の値の一致により結合可能なマスタと、更に、そのマスタとの項目の値の一致により更に結合可能な次のマスタと、・・・、即ち、再帰的に結合連鎖によって対応付けられるマスタを探索し、マスタ間の結合率を求める。マスタ探索部４３ａは、第２一致度取得部に相当する。
【００４５】
信頼度取得部４４ａは、結合連鎖に従って結合率を乗算することで、トランザクション７と候補マスタ８との対応付けの確からしさを示す信頼度を算出する。最尤マスタ選択部４５ａは、候補マスタ選択部４４ａによって算出された信頼度のうち、最も高い信頼度を示す候補マスタ８を最尤マスタ８ｐとして選択する。
【００４６】
第１実施例における結合連鎖と結合率について図５及び図６で説明する。図５は、第１実施例における結合連鎖の例を示す図である。図５では、図２からの続きを示し、第１候補マスタ８１及び第２候補マスタ８２からの夫々の結合連鎖を示している。
【００４７】
第１候補マスタ８１からは、共通ＩＤの値の一致により、マスタＡ８Ａへと結合され得ると判断する。第１候補マスタ８１からマスタＡ８Ａへは、３レコードが結合され得る。その共通ＩＤで一致した値は、「009988」、「654456」、及び「052399」である。第１候補マスタ８１の全レコード数「４」に対して３レコードが連結されることから、結合率は「７５％」となる。
【００４８】
マスタＡ８Ａからは、マイナンバーの値の一致により、マスタＤ８Ｄへの結合が可能である。マスタＡ８ＡからマスタＤ８Ｄへは、１レコードが結合され、そのマイナンバーの値は、「123‐5678」である。マスタＡ８Ａの全レコード数「４」に対して１レコードが連結されることから、結合率は「２５％」となる。
【００４９】
マスタＡ８Ａからは、マイナンバーの値の一致により、マスタＣ８Ｃへの結合が可能である。マスタＡ８ＡからマスタＣ８Ｃへは、１レコードが結合され、そのマイナンバーの値は、「034‐2076」である。マスタＡ８Ａの全レコード数「４」に対して１レコードが連結されることから、結合率は「２５％」となる。
【００５０】
一方、第２候補マスタ８２からは、共通ＩＤの値の一致により、マスタＢ８Ｂへと結合され得る。第２候補マスタ８２からマスタＢ８Ｂへは２レコードが結合可能であり、その共通ＩＤの値は「991027」及び「351024」である。第２候補マスタ８２の全レコード数「４」に対して２レコードが連結されることから、結合率は「５０％」となる。
【００５１】
マスタＢ８Ｂからは、マイナンバーの値の一致により、マスタＤ８Ｄへと結合される。マスタＢ８ＢからマスタＤ８Ｄへは、１レコードが結合され、そのマイナンバーの値は、「123‐5678」である。マスタＢ８Ｂの全レコード数「４」に対して２レコードが連結されることから、結合率は「５０％」となる。
【００５２】
図６は、第１実施例における結合率に基づく信頼度の計算例を説明するための図である。図６を参照して、トランザクション７と対応付けられる最も確からしい候補マスタ８を選択するための信頼度の計算例について説明する。
【００５３】
トランザクション７からの結合連鎖において、トランザクション７から第１候補マスタ８１への結合率は、図２より、２／３＝６７％である。図５より、第１候補マスタ８１からマスタＡ８Ａへの結合率は７５％、マスタＡ８ＡからマスタＣ８Ｃへの結合率は２５％、及び、マスタＡ８ＡからマスタＤ８Ｄへの結合率は２５％である。
【００５４】
よって、これらの結合率から、トランザクション７から第１候補マスタ８１への結合の信頼度は、
６７％×７５％×２５％×２５％  ＝  ３．１％
である。
【００５５】
トランザクション７から第２候補マスタ８２への結合率は、図２より、１／３＝３３％である。図５より、第２候補マスタ８２からマスタＢ８Ｂへの結合率は７５％、マスタＢ８ＢからマスタＣ８Ｃへの結合率は５０％、及び、マスタＢ８ＢからマスタＤ８Ｄへの結合率は５０％である。
【００５６】
よって、これらの結合率から、トランザクション７から第２候補マスタ８２への結合の信頼度は、
３３％×５０％×５０％×５０％  ＝  ４．１％
である。
【００５７】
第１候補マスタ８１の信頼度「３．１％」に対して、第２候補マスタ８２の信頼度は「４．１％」であり、第１候補マスタ８１より高い。従って、トランザクション７と第２候補マスタ８２とを結合するのがより確からしいと判定する。第２候補マスタ８２を示す最尤マスタ８ｐが記憶部１３０に出力される。最尤マスタ８ｐは、表示装置１５に表示されてもよい。
【００５８】
第１実施例では、トランザクション７と直接接合するマスタとの結合率のみで結合の確からしさを判定するのではなく、トランザクション７から結合され、連結される複数のマスタを含めて、全体としての結合連鎖の確からしさに基づいて、トランザクション７とマスタとの対応付けの確からしさの精度を向上させることができる。
【００５９】
つまり、図２の例では、第１候補マスタ８１が選択されるのに対して、第１実施例では、第２候補マスタ８２が選択される。第２候補マスタ８２を選択することで、より確からしい対応付けにより、結合演算の結果として、複数のマスタから精度良くより多くの項目を結合することができる。
【００６０】
次に、第１実施例における、結合マスタ選択部４０ａによる、結合率を用いて最尤マスタ８ｐを選択する統合マスタ選択処理について説明する。図７は、第１実施例における統合マスタ選択処理を説明するための図である。
【００６１】
図７を参照すると、結合マスタ選択部４０ａにおいて、結合部４１ａは、トランザクション７の入力を受け付けると（ステップＳ１０）、マスタ集合５０の全マスタに対してトランザクション７との結合を行い、マスタ毎に結合率を計算する（ステップＳ２０）。結合部４１ａは、トランザクション７のレコード総数に対する、マスタに結合したレコード数の割合を算出する。
【００６２】
そして、候補マスタ抽出部４２ａは、トランザクション７とマスタとの対応付けの確からしさを示す結合率に基づいて、マスタ集合５０から候補マスタ８の集合を抽出する（ステップＳ３０）。
【００６３】
マスタ探索部４３ａは、候補マスタ８毎に、結合可能なマスタに対して、結合率の計算を再帰的に実行する（ステップＳ４０）。
【００６４】
信頼度取得部４４ａは、候補マスタ８毎に、結合連鎖に従って、各マスタの結合率を合算して信頼度を計算する（ステップＳ５０）。最尤マスタ選択部４５ａは、信頼度の最も高い候補マスタ８を最尤マスタ８ｐとして選択する（ステップＳ６０）。最尤マスタ８ｐは、記憶部１３０に記憶される。また、最尤マスタ８ｐは、表示装置１５に表示されてもよい。結合マスタ選択部４０ａは、第１実施例における統合マスタ選択処理を終了する。
【００６５】
ステップＳ２０の結合部４１ａによる、トランザクション７に結合され得る候補マスタ８を選択するための結合率を求める結合処理について説明する。図８は、ステップＳ２０の結合処理を説明するためのフローチャート図である。
【００６６】
図８において、記憶部１３０のマスタ集合５０をマスタ集合Ｍで示し、マスタ集合Ｍから選択した１つのマスタをマスタｍという。また、マスタｍを特定する識別子と求めた結合率ｓｒとを（ｍ、ｓｒ）で表し、（ｍ、ｓｒ）を要素とする集合は、候補決定用マスタ集合Ｍｃで表す。候補決定用マスタ集合Ｍｃは、トランザクション７から結合先の候補マスタ８を決定するために参照される。
【００６７】
結合部４１ａは、記憶部１３０のマスタ集合５０をマスタ集合Ｍに設定する（ステップＳ２０１）。そして、結合部４１ａは、マスタ集合Ｍにマスタｍが存在するか否かを判断する（ステップＳ２０２）。マスタｍが存在する場合（ステップＳ２０２のＹｅｓ）、結合部４１ａは、マスタ集合Ｍからマスタｍを１つ取得する（ステップＳ２０３）。
【００６８】
結合部４１ａは、トランザクション７の項目とマスタｍの項目との組合せ毎に、項目間で一致する値の数（以下、「一致数」という）を求め（ステップＳ２０４）、組合せ毎の一致数から最大数ｃを取得する（ステップＳ２０５）。
【００６９】
結合部４１ａは、トランザクション７のレコード総数と最大数ｃとから、マスタｍの結合率ｓｒを求め、候補決定用マスタ集合Ｍｃに（ｍ、ｓｒ）を加えた後（ステップＳ２０６）、マスタ集合Ｍからマスタｍを削除して（ステップＳ２０７）、ステップＳ２０２へと戻り、上述同様の処理を繰り返す。
【００７０】
一方、マスタ集合Ｍにマスタｍが存在しない場合（ステップＳ２０２のＮｏ）、結合部４１ａは、結合処理を終了する。
【００７１】
候補マスタ抽出部４２ａは、結合部４１ａによる結合処理の結果である候補決定用マスタ集合Ｍｃから結合率ｓｒがゼロでない（ｍ、ｓｒ）を取得する。候補マスタ抽出部４２ａは、結合率ｓｒの値の高い順に（ｍ、ｓｒ）を所定個数、又は、結合率ｓｒが閾値以上の（ｍ、ｓｒ）を取得してもよい。取得した複数の（ｍ、ｓｒ）で指定されるマスタｍを候補マスタ８として記憶部１３０に記憶する。
【００７２】
次に、ステップＳ４０のマスタ探索部４３ａによるマスタ探索処理について説明する。図９は、ステップＳ４０のマスタ探索処理を説明するためのフローチャート図である。
【００７３】
図９において、候補マスタ８を結合元のマスタとして結合元テーブルｔで表す。候補マスタ８を除く複数のマスタをマスタ集合Ｍで示し、マスタ集合Ｍから選択した１つのマスタをマスタｍという。また、マスタｍと求めた結合率ｓｒとを（ｍ、ｓｒ）で表し、（ｍ、ｓｒ）を要素とする集合は結合率付きマスタ集合Ｍｓｒで表す。即ち、
Ｍｓｒ  ＝  ｛（ｍ、ｓｒ）｜ｍ∈Ｍ、ｓｒ∈Ｒ｝
ここで、Ｒは実数集合である。
【００７４】
マスタ探索部４３ａは、候補マスタ８の１つを結合元テーブルｔに設定する（ステップＳ４０１）。また、マスタ探索部４３ａは、記憶部１３０のマスタ集合５０をマスタ集合Ｍに設定して初期化する（ステップＳ４０２）。
【００７５】
マスタ探索部４３ａは、結合テーブルｔからの結合連鎖での各マスタｍの結合率ｓｒを取得する結合率取得処理を行う（ステップＳ４０３）。結合率取得処理では、マスタ探索部４３ａは、マスタ集合Ｍにマスタｍが存在するか否かを判断する（ステップ４３１）。マスタｍが存在しない場合（ステップＳ４３１のＮｏ）、マスタ探索部４３ａは、結合率取得処理を終了する。
【００７６】
マスタｍが存在する場合（ステップＳ４３１のＹｅｓ）、マスタ探索部４３ａは、マスタ集合Ｍの各マスタｍに対して、結合元テーブルｔとの結合率ｓｒを付加した結合率付きマスタ集合Ｍｓｒを取得する（ステップＳ４３２）。結合率付きマスタ集合Ｍｓｒを取得する処理については、図１０で詳述する。
【００７７】
マスタ探索部４３ａは、取得した結合率付きマスタ集合Ｍｓｒの全てのマスタｍで結合率ｓｒがゼロか否かを判断する（ステップＳ４３３）。全てのマスタｍで結合率ｓｒがゼロでない場合（ステップＳ４３３のＮｏ）、マスタ探索部４３ａは、（ｍ、ｓｒ）毎に、マスタｍを結合元テーブルｔに設定して、マスタｍを除いてマスタ集合Ｍを設定し、結合率取得処理を再帰的に呼び出す（ステップＳ４３４）。
【００７８】
全てのマスタｍで結合率ｓｒがゼロである場合（ステップＳ４３３のＹｅｓ）、マスタ探索部４３ａは、結合率取得処理を終了する。結合率取得処理から復帰すると、マスタ探索部４３ａは、未処理の候補マスタ８が残っているか否かを判断する（ステップＳ４０４）。
【００７９】
未処理の候補マスタ８が残ってる場合（ステップＳ４０４のＹｅｓ）、マスタ探索部４３ａは、次の候補マスタ８を結合元テーブルｔに設定し（ステップＳ４０５）、ステップＳ４０２へと戻り、上述した同様の処理を繰り返す。未処理の候補マスタ８が残っていない場合（ステップＳ４０４のＮｏ）、マスタ探索部４３ａは、マスタ探索処理を終了する。
【００８０】
図１０は、図９のステップＳ４０４を説明するためのフローチャート図である。図１０において、マスタ探索部４３ａは、結合元テーブルｔを受け付けて、結合率付きマスタ集合Ｍｓｒを空集合（Φ）に設定して初期化する（ステップＳ４７１）。
【００８１】
マスタ探索部４３ａは、マスタ集合Ｍにマスタｍが存在するか否かを判断する（ステップＳ４７２）。マスタ集合Ｍに未処理のマスタｍが存在する場合（ステップＳ４７２のＹｅｓ）、マスタ探索部４３ａは、マスタ集合Ｍからマスタｍを１つ選択する（ステップＳ４７３）。ステップＳ４０４での処理において、未処理のマスタｍが１つ選択され、統合元テーブルｔに設定される。
【００８２】
マスタ探索部４３ａは、統合元テーブルｔの項目を１つ選択し、ステップＳ４７３で選択したマスタｍの各項目との組合せ毎に項目間で一致する値の数を求め（ステップＳ４７４）、結合元テーブルｔの未処理の項目があるか否かを判断する（ステップＳ４７５）。結合元テーブルｔの未処理の項目がある場合（ステップＳ４７５のＹｅｓ）、マスタ探索部４３ａは、ステップＳ４７４の処理を繰り返す。
【００８３】
一方、結合元テーブルｔの未処理の項目がない場合（ステップＳ４７５のＮｏ）、マスタ探索部４３ａは、全ての組合せに対して得られた一致数のうち、最大数ｃを取得する（ステップＳ４７６）。
【００８４】
マスタ探索部４３ａは、結合元テーブルｔのレコード総数と最大数ｃとから結合率ｓｒを求め、結合率付きマスタ集合Ｍｓｒに（ｍ、ｓｒ）を加える（ステップＳ４７７）。その後、マスタ探索部４３ａは、ステップＳ４７２へと戻り、上述同様の処理を繰り返す。
【００８５】
一方、マスタ集合Ｍにマスタｍが存在しない場合（ステップＳ４７２のＮｏ）、マスタ探索部４３ａは、結合率付きマスタ集合Ｍｓｒを出力する（ステップＳ４７８）。
【００８６】
第１実施例では、候補マスタ８毎に、トランザクション７から始まる結合連鎖上の結合毎に得た結合率ｓｒを乗算することで、候補マスタがトランザクション７と結合する確からしさを示す信頼度を求め、最も高い信頼度を示す候補マスタ８が、トランザクション７と結合するのが最も確からしい最尤マスタ８ｐであると判断する。結合率ｓｒを乗算する代わりに、重み付き和、平均値等により信頼度を求めてもよい。
【００８７】
第２実施例では、トランザクション１から始まる結合連鎖により生き残る生存数により信頼度を求める。生存数とは、項目の値の一致によりマスタ間のレコードを次々に結合した結合連鎖において、各マスタの、末端のマスタへの結合に寄与するレコード数に相当する。
【００８８】
図１１は、第２実施例におけるデータ処理装置の機能構成例を示す図である。図１１において、第２実施例におけるデータ処理装置１００は、主に、結合マスタ選択部４０ｂを有する。結合マスタ選択部４０ｂは、データ処理装置１００にインストールされたプログラムが、データ処理装置１００のＣＰＵ１１に実行させる処理により実現される。記憶部１３０には、第１実施例と同様に、トランザクション７、マスタ集合５０、複数の候補マスタ８、最尤マスタ８ｐ等が記憶される。
【００８９】
結合マスタ選択部４０ｂは、キー項目３によりトランザクション７と結合するマスタとして最も確からしい最尤マスタ８ｐをマスタ集合５０から選択する処理部であり、更に、結合部４１ｂと、候補マスタ抽出部４２ｂと、マスタ探索部４３ｂと、信頼度取得部４４ｂと、最尤マスタ選択部４５ｂとを含む。
【００９０】
結合部４１ｂは、トランザクション７を受け付けて、マスタ集合５０の全てのマスタに対してトランザクション７と結合できたレコード数（以下、「結合レコード数」という）を計算する。
【００９１】
候補マスタ抽出部４２ｂは、結合部４１ｂによって計算された結合レコード数に基づいて、複数の候補マスタ８を抽出する。生存数の高い順に予め定めた候補マスタ数分のマスタを選択して候補マスタ８の集合を抽出してもよい。又は、結合レコード数が１以上又は予め定めた閾値以上となるマスタを選択して候補マスタ８の集合を抽出してもよい。
【００９２】
マスタ探索部４３ｂは、各候補マスタ８から項目の値の一致により結合可能なマスタと、更に、そのマスタとの項目の値の一致により更に結合可能な次のマスタと、・・・、即ち、再帰的に結合連鎖によって対応付けられるマスタを探索した後、マスタ毎に、末端のマスタへの結合に寄与するレコード数を求めて、各マスタの生存数を求める。
【００９３】
信頼度取得部４４ｂは、結合連鎖に従って生存数を合算することで、トランザクション７と候補マスタ８との対応付けの確からしさを示す信頼度を算出する。最尤マスタ選択部４５ｂは、候補マスタ選択部４４ｂによって算出された信頼度のうち、最も高い信頼度を示す候補マスタ８を最尤マスタ８ｐとして選択する。
【００９４】
第２実施例における結合連鎖と生存数について図１２及び図１３で説明する。図１２は、第２実施例における結合連鎖の例を示す図である。図１２では、図２からの続きを示し、第１候補マスタ８１及び第２候補マスタ８２からの夫々の結合連鎖を示している。
【００９５】
項目の値の一致により、第１候補マスタ８１からは、マスタＡ８Ａのレコードへと結合でき、更に、マスタＡ８Ａの結合したレコードからマスタＤ８Ｄのレコードへと結合可能である。
【００９６】
共通ＩＤの値の一致により、第１候補マスタ８１からマスタＡ８Ａへは、３レコードが結合され得る。その共通ＩＤで一致した値は、「009988」、「654456」、及び「052399」である。
【００９７】
しかしながら、第１候補マスタ８１からの結合連鎖の末端となるマスタＤ８Ｄのレコードへの結合に寄与するマスタＡ８Ａのレコードは、共通ＩＤの値が「009988」の１レコードのみである。マスタＡ８Ａの生存数に「１」が与えられる。また、マスタＡ８Ａは、第１候補マスタ８１からのみ結合され得るため、マスタＡ８Ａの生存数は「１」となる。
【００９８】
マスタＡ８Ａの共通ＩＤの値が「009988」のレコードからは、マイナンバーの値の一致により、マスタＤ８Ｄへと結合され得る。マスタＡ８ＡからマスタＤ８Ｄへは、１レコードが結合され、そのマイナンバーの値は、「123‐5678」である。第１候補マスタ８１からの結合連鎖の末端となるマスタＤ８Ｄの生存数は「１」である。
【００９９】
一方、第２候補マスタ８２からは、共通ＩＤの値の一致により、マスタＢ８Ｂへと結合され得る。第２候補マスタ８２からマスタＢ８Ｂへは２レコードが結合可能であり、その共通ＩＤの値は「991027」及び「351024」である。
【０１００】
しかしながら、第２候補マスタ８２からの結合連鎖の末端となるマスタＣ８Ｃ及びマスタＤ８Ｄの少なくとも１つのマスタのレコードへの結合に寄与するマスタＢ８Ｂのレコードは、共通ＩＤの値が「351024」の１レコードのみである。マスタＢ８Ｂの生存数に「１」が与えられる。また、マスタＢ８Ｂは、第２候補マスタ８２からのみ結合され得るため、マスタＢ８Ｂの生存数は「１」となる。
【０１０１】
マスタＢ８Ｂの共通ＩＤの値が「351024」のレコードからは、マイナンバーの値の一致により、マスタＣ８ＣとマスタＤ８Ｄへと結合され得る。マイナンバーの値「682‐1206」の一致により、マスタＢ８Ｂの１レコードがマスタＣ８ＣとマスタＤ８Ｄとに結合可能である。第２候補マスタ８２からの結合連鎖の末端となるマスタＣ８Ｃ及びマスタＤ８Ｄの生存数は、夫々「１」である。
【０１０２】
このように、第２実施例では、第１候補マスタ８１から結合されるマスタＡ８Ａから生存数が与えられ、同様に、第２候補マスタ８２から結合されるマスタＢ８Ｂから生存数が与えられる。候補マスタ８毎に、候補マスタ８から結合連鎖され得る各マスタの生存数を合算して信頼度を算出する。最も高い信頼度を有する候補マスタ８が最尤マスタ８ｐとなる。
【０１０３】
図１３は、第２実施例における生存数に基づく信頼度の計算例を説明するための図である。図１３を参照して、トランザクション７と対応付けられる最も確からしい候補マスタ８を選択するための信頼度の計算例について説明する。
【０１０４】
トランザクション７からの結合連鎖において、第１候補マスタ８１から結合されるマスタＡ８Ａの生存数は「１」であり、マスタＤ８Ｄの生存数は「１」である。よって、これらの生存数から、トランザクション７から第１候補マスタ８１への結合の信頼度は、
１＋１  ＝  ２
である。
【０１０５】
第２候補マスタ８２から結合されるマスタＢ８Ｂの生存数は「１」であり、マスタＣ８Ｃの生存数は「１」であり、また、マスタＤ８Ｄの生存数は「１」である。よって、これらの生存数から、トランザクション７から第２候補マスタ８２への結合の信頼度は、
１＋１＋１  ＝  ３
である。
【０１０６】
第１候補マスタ８１の信頼度「２」に対して、第２候補マスタ８２の信頼度は「３」であり、第１候補マスタ８１より高い。従って、トランザクション７と第２候補マスタ８２とを結合するのがより確からしいと判定する。第２候補マスタ８２を示す最尤マスタ８ｐが記憶部１３０に出力される。最尤マスタ８ｐは、表示装置１５に表示されてもよい。
【０１０７】
第２実施例では、トランザクション７と直接接合するマスタの結合されるレコード数のみで結合の確からしさを判定するのではなく、トランザクション７から結合され、連結される複数のマスタを含めて、全体としての結合連鎖の確からしさに基づいて、トランザクション７とマスタとの対応付けの確からしさの精度を向上させることができる。
【０１０８】
つまり、図２の例では、第１候補マスタ８１が選択されるのに対して、第２実施例では、第２候補マスタ８２が選択される。第２候補マスタ８２を選択することで、より確からしい対応付けにより、結合演算の結果として、複数のマスタから精度良くより多くの項目を結合することができる。
【０１０９】
次に、第２実施例における、結合マスタ選択部４０ｂによる、生存数を用いて最尤マスタ８ｐを選択する統合マスタ選択処理について説明する。図１４は、第１実施例における統合マスタ選択処理を説明するための図である。
【０１１０】
図１４を参照すると、結合マスタ選択部４０ｂにおいて、結合部４１ｂは、トランザクション７の入力を受け付けると（ステップＳ１０−２）、マスタ集合５０の全マスタに対してトランザクション７との結合を行い、マスタ毎にトランザクション７と結合できた結合レコード数を計算する（ステップＳ２０−２）。結合部４１ｂによる結合処理は、図１５で詳述される。
【０１１１】
そして、候補マスタ抽出部４２ｂは、ステップＳ２０−２で算出した結合レコード数に基づいて、マスタ集合５０から候補マスタ８の集合を抽出する（ステップＳ３０−２）。
【０１１２】
候補マスタ抽出部４２ｂは、マスタ集合５０の各マスタの結合レコード数に基づいて、結合レコード数が１以上又は閾値以上の結合レコード数となったマスタを候補マスタ８として決定すればよい。
【０１１３】
マスタ探索部４３ｂは、候補マスタ８毎に、結合可能なマスタに対する生存数の計算を再帰的に実行し、結合連鎖における各マスタの生存数を求める（ステップＳ４０−２）。
【０１１４】
マスタ探索部４３ｂは、候補マスタ８毎に、結合可能なマスタに対する結合レコード数の計算を再帰的に実行することで、その候補マスタ８の結合連鎖を定め、定めた結合連鎖の末端のマスタから遡ることにより、各マスタ及び候補マスタ８の生存数を求める。マスタ探索部４３ｂは、マスタの識別子と、生存数とを記憶する。マスタ探索部４３ｂによるマスタ探索処理は、図１６で詳述される。
【０１１５】
信頼度取得部４４ｂは、候補マスタ８毎に、結合連鎖に従って、候補マスタ８の生存数から合算して信頼度を計算する（ステップＳ５０−２）。最尤マスタ選択部４５ｂは、信頼度取得部４４ｂによって求められた信頼度に基づいて、候補マスタ８の中から、信頼度が最も高い最尤マスタ８ｐを選択し記憶部１３０に記憶する（ステップＳ６０−２）。最尤マスタ選択部４５ｂは、最尤マスタ８ｐを表示装置１５に表示してもよい。その後、結合マスタ選択部４０ｂは、第２実施例における統合マスタ選択処理を終了する。
【０１１６】
ステップＳ２０−２の結合部４１ｂによる、トランザクション７に結合され得る候補マスタ８を選択するための結合レコード数を求める結合処理について説明する。図１５は、ステップＳ２０−２の結合処理を説明するためのフローチャート図である。
【０１１７】
図１５において、記憶部１３０のマスタ集合５０をマスタ集合Ｍで示し、マスタ集合Ｍから選択した１つのマスタをマスタｍという。また、マスタｍを特定する識別子と求めた結合レコード数ｎｒとを（ｍ、ｎｒ）で表し、（ｍ、ｎｒ）を要素とする集合は、候補決定用マスタ集合Ｍｃで表す。候補決定用マスタ集合Ｍｃは、トランザクション７から結合先の候補マスタ８を決定するために参照される。
【０１１８】
結合部４１ｂは、記憶部１３０のマスタ集合５０をマスタ集合Ｍに設定する（ステップＳ２０１−２）。そして、結合部４１ｂは、マスタ集合Ｍにマスタｍが存在するか否かを判断する（ステップＳ２０２−２）。マスタｍが存在する場合（ステップＳ２０２−２のＹｅｓ）、結合部４１ｂは、マスタ集合Ｍからマスタｍを１つ取得する（ステップＳ２０３−２）。
【０１１９】
結合部４１ｂは、トランザクション７の項目とマスタｍの項目との組合せ毎に、項目間で値の一致数を求め（ステップＳ２０４−２）、組合せ毎の一致数から最大数ｃを取得する（ステップＳ２０５−２）。
【０１２０】
結合部４１ｂは、トランザクション７のレコード総数と最大数ｃとから、マスタｍの結合レコード数ｎｒを求め、候補決定用マスタ集合Ｍｃに（ｍ、ｎｒ）を加えた後（ステップＳ２０６−２）、マスタ集合Ｍからマスタｍを削除して（ステップＳ２０７−２）、ステップＳ２０２−２へと戻り、上述同様の処理を繰り返す。
【０１２１】
一方、マスタ集合Ｍにマスタｍが存在しない場合（ステップＳ２０２−２のＮｏ）、結合部４１ｂは、結合処理を終了する。
【０１２２】
候補マスタ抽出部４２ｂは、結合部４１ｂによる結合処理の結果である候補決定用マスタ集合Ｍｃから結合レコード数ｎｒがゼロでない（ｍ、ｎｒ）を取得する。候補マスタ抽出部４２ｂは、結合レコード数ｎｒの値の高い順に（ｍ、ｎｒ）を所定個数、又は、結合レコード数ｎｒが閾値以上の（ｍ、ｎｒ）を取得してもよい。取得した複数の（ｍ、ｎｒ）で指定されるマスタｍを候補マスタ８として記憶部１３０に記憶する。
【０１２３】
次に、ステップＳ４０−２のマスタ探索部４３ｂによるマスタ探索処理について説明する。図１６は、ステップＳ４０−２のマスタ探索処理を説明するためのフローチャート図である。
【０１２４】
図１６において、候補マスタ８を結合元のマスタとして結合元テーブルｔで表す。候補マスタ８を除く複数のマスタをマスタ集合Ｍで示し、マスタ集合Ｍから選択した１つのマスタをマスタｍという。また、マスタｍと求めた生存数ｓｅとを（ｍ、ｓｅ、ｌｍ）で表し、（ｍ、ｓｅ、ｌｍ）を要素とする集合は生存数付きマスタ集合Ｍｓｅで表す。また、結合されるレコードのｉｄの一覧は、生存リストｌｍで示される。即ち、
Ｍｓｅ  ＝  ｛（ｍ、ｓｅ、ｌｍ）｜ｍ∈Ｍ、ｓｅ∈Ｎ、ｌｍはｍの生存リスト｝
ここで、Ｎは自然数集合である。
【０１２５】
マスタ探索部４３ｂは、候補マスタ８の１つを結合元テーブルｔに設定する（ステップＳ４０１−２）。また、マスタ探索部４３ｂは、記憶部１３０のマスタ集合５０をマスタ集合Ｍに設定して初期化する（ステップＳ４０２−２）。
【０１２６】
マスタ探索部４３ｂは、結合テーブルｔからの結合連鎖での各マスタｍの生存数ｓｅを取得する生存数取得処理を行う（ステップＳ４０３−２）。生存数取得処理では、マスタ探索部４３ｂは、マスタ集合Ｍにマスタｍが存在するか否かを判断する（ステップ４３１−２）。マスタｍが存在する場合（ステップＳ４３１−２のＮｏ）、マスタ探索部４３ｂは、生存数取得処理を終了する。
【０１２７】
マスタｍが存在する場合（ステップＳ４３１−２のＹｅｓ）、マスタ探索部４３ｂは、マスタ集合Ｍの各マスタｍに対して、結合元テーブルｔとの生存数ｓｅを付加した生存数付きマスタ集合Ｍｓｅを取得する（ステップＳ４３２−２）。生存数付きマスタ集合Ｍｓｅを取得する処理については、図１７で詳述する。
【０１２８】
マスタ探索部４３ｂは、取得した生存数付きマスタ集合Ｍｓｅの全てのマスタｍで結合率ｓｒがゼロか否かを判断する（ステップＳ４３３−２）。全てのマスタｍで生存数ｓｅがゼロでない場合（ステップＳ４３３−２のＮｏ）、マスタ探索部４３ｂは、（ｍ、ｓｒ、ｌｍ）毎に、マスタｍを結合元テーブルｔに設定して、マスタｍを除いてマスタ集合Ｍを設定し、生存数取得処理を再帰的に呼び出す（ステップＳ４３４−２）。
【０１２９】
全てのマスタｍで生存数ｓｅがゼロである場合（ステップＳ４３３のＹｅｓ）、マスタ探索部４３ｂは、生存数取得処理を終了する。生存数取得処理から復帰すると、マスタ探索部４３ｂは、未処理の候補マスタ８が残っているか否かを判断する（ステップＳ４０４）。
【０１３０】
未処理の候補マスタ８が残ってる場合（ステップＳ４０４−２のＹｅｓ）、マスタ探索部４３ｂは、次の候補マスタ８を結合元テーブルｔに設定し（ステップＳ４０５−２）、ステップＳ４０２−２へと戻り、上述した同様の処理を繰り返す。未処理の候補マスタ８が残っていない場合（ステップＳ４０４−２のＮｏ）、マスタ探索部４３ｂは、マスタ探索処理を終了する。
【０１３１】
図１７は、図１６のステップＳ４０４−２を説明するためのフローチャート図である。図１７において、マスタ探索部４３ｂは、結合元テーブルｔを受け付けて、生存数付きマスタ集合Ｍｓｅを空集合（Φ）に設定して初期化する（ステップＳ４７１−２）。
【０１３２】
マスタ探索部４３ｂは、マスタ集合Ｍに未処理のマスタｍが存在するか否かを判断する（ステップＳ４７２−２）。マスタ集合Ｍにマスタｍが存在する場合（ステップＳ４７２−２のＹｅｓ）、マスタ探索部４３ａは、マスタ集合Ｍからマスタｍを１つ選択する（ステップＳ４７３−２）。ステップＳ４０４−２での処理において、未処理のマスタｍが１つ選択され、統合元テーブルｔに設定される。
【０１３３】
マスタ探索部４３ｂは、統合元テーブルｔの項目を１つ選択し、結合元テーブルｔの生存リストｌで指定される生存レコードにおける項目値と、ステップＳ４７３‐2で選択したマスタｍの項目値の一致数を求め、また、マスタｍの生存リストｌに項目値が一致したレコードｉｄを追加する（ステップＳ４７４−２）。そして、マスタ探索部４３ｂは、結合元テーブルｔの未処理の項目があるか否かを判断する（ステップＳ４７５−２）。結合元テーブルｔの未処理の項目がある場合（ステップＳ４７５−２のＹｅｓ）、マスタ探索部４３ｂは、ステップＳ４７４−２の処理を繰り返す。
【０１３４】
一方、結合元テーブルｔの未処理の項目がない場合（ステップＳ４７５−２のＮｏ）、マスタ探索部４３ｂは、全ての組合せに対して得られた一致数のうち、最大数ｃを取得する（ステップＳ４７６−２）。
【０１３５】
マスタ探索部４３ｂは、最大数ｃのレコードｉｄの生存リストｌをｌｍとし、生存数付きマスタ集合Ｍｓｅに（ｍ、生存数ｓｅ、ｌｍ）を加える（ステップＳ４７７−２）。その後、マスタ探索部４３ｂは、ステップＳ４７２−２へと戻り、上述同様の処理を繰り返す。
【０１３６】
一方、マスタ集合Ｍにマスタｍが存在しない場合（ステップＳ４７２−２のＮｏ）、マスタ探索部４３ｂは、生存数付きマスタ集合Ｍｓｅを出力する（ステップＳ４７８−２）。
【０１３７】
第２実施例では、候補マスタ８毎に、トランザクション７から始まる結合連鎖上の結合毎に得た生存数ｓｅを加算することで、候補マスタがトランザクション７と結合する確からしさを示す信頼度を求め、最も高い信頼度を示す候補マスタ８が、トランザクション７と結合するのが確からしい最尤マスタ８ｐであると判断する。
【０１３８】
上述した第１実施例及び第２実施例では、１つのトランザクション７に対して、トランザクション７と結合され得る最も確からしい最尤マスタ８ｐを精度良く選択できる。次に、２以上のトランザクション７の全てに対して結合され得る最も確からしい最尤マスタ８ｐを選択する第３実施例について説明する。
【０１３９】
図１８は、第３実施例を説明するための図である。第３実施例において、トランザクションＡ７ａ及びトランザクションＢ７ｂのそれぞれに対して結合率を用いて最尤マスタ８ｐを求め、２つの最尤マスタ８ｐのうち、最も高い信頼度のマスタを、トランザクションＡ７ａ及びトランザクションＢ７ｂ全てに対する最尤マスタ８ｐとして決定する。
【０１４０】
トランザクションＡ７ａに結合され得る第１候補マスタ８１の信頼度は、
６７％×７５％×２５％×２５％  ＝  ３．１％
よって、３．１％である。
【０１４１】
トランザクションＡ７ａに結合され得る第２候補マスタ８２の信頼度は、
３３％×５０％×５０％×５０％  ＝  ４．１％
よって、４．１％である。
【０１４２】
トランザクションＢ７ｂに結合され得る第１候補マスタ８１の信頼度は、
７０％×７５％×２５％×２５％  ＝  ３．３％
よって、３．３％である。
【０１４３】
トランザクションＢ７ｂに結合され得る第２候補マスタ８２の信頼度は、
２０％×５０％×５０％×５０％  ＝  ２．５％
よって、２．５％である。
【０１４４】
上記結果より、トランザクションＡ７ａに対する最尤マスタ８ｐは、第２候補マスタ８２であると判定され、トランザクションＢ７ｂに対する最尤マスタ８ｐは、第１候補マスタ８１であると判定される。
【０１４５】
更に、トランザクションＡ７ａに対する最尤マスタ８ｐである第２候補マスタ８２の信頼度は「４．１％」であったのに対して、トランザクションＢ７ｂに対する最尤マスタ８ｐである第１候補マスタ８１の信頼度は「３．３％」である。従って、より信頼度の高い第２候補マスタ８２を、２つのトランザクションＡ７ａ及びＢ７ｂに結合され得る最尤マスタ８ｐとして選択する。
【０１４６】
上述したように、第１、第２、及び第３実施例では、複数のマスタを連鎖的に結合して活用するように設計されたＤＢＭＳにおいても、与えられたトランザクション７に対して、複数の候補マスタから、トランザクション７との対応付けとして最も確からしいマスタ選択することができる。
【０１４７】
第１、第２、及び第３実施例では、あるマスタのトランザクション７との結合率のみによる最尤マスタ８ｐの選択に比べて、トランザクション７とマスタの対応付けの確からしさの精度を上げることができる。
【０１４８】
本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、主々の変形や変更が可能である。
【０１４９】
以上の第１〜第３実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
第１テーブルのデータ項目と少なくとも一部のデータ項目が一致する複数の候補テーブルを複数の第２テーブルから選択し、複数の前記候補テーブルと前記第１テーブルのデータ項目の第１一致度をそれぞれ算出し、
複数の前記候補テーブルのデータ項目と少なくとも一部のデータ項目が一致する複数の第３テーブルを複数の前記第２テーブルから選択し、複数の前記候補テーブルと複数の前記第３テーブルのデータ項目の第２一致度をそれぞれ算出し、
前記第１一致度と前記第２一致度に基づいて、複数の前記候補テーブルの信頼度を算出する
処理をコンピュータに実行させるデータ処理プログラム。
（付記２）
前記コンピュータは、
前記第１テーブルのデータ項目の総数に対する、前記候補テーブルのデータ項目が一致した一致数の割合を算出することによって、前記第１一致度を取得する
ことを特徴とする付記１記載のデータ処理プログラム。
（付記３）
前記コンピュータは、
各候補テーブル毎に、該候補テーブルのデータ項目の総数に対する、前記第３テーブルのデータ項目が一致した一致数の割合を算出することによって、前記第２一致度を取得する
ことを特徴とする付記２記載のデータ処理プログラム。
（付記４）
前記コンピュータは、
前記候補テーブル毎に、前記第１テーブルの前記データ項目の前記第１一致度と、前記第３テーブルのとの該データ項目の第２一致度とを合算して、各候補テーブルの前記信頼度を取得する
ことを特徴とする付記１乃至３のいずれか一項記載のデータ処理プログラム。
（付記５）
前記コンピュータは、
複数の前記候補テーブルのうち、最も高い信頼度の候補テーブルを、前記第１テーブルに最も結合され得る最尤テーブルであると判定する
ことを特徴とする付記１乃至４のいずれか一項記載のデータ処理プログラム。
（付記６）
前記コンピュータは、
複数の前記第１テーブルに対して、該第１テーブル毎に、前記信頼度に基づいて、複数の前記候補テーブルの１つを該第１テーブルに最も結合され得るテーブルであると判定し、
複数の前記第１テーブルの複数の前記最も結合され得るテーブルのうち、最も高い信頼度のテーブルを、複数の該第１テーブルに結合され得る最尤テーブルであると判定する
ことを特徴とする付記５記載のデータ処理プログラム。
（付記７）
第１テーブルのデータ項目と少なくとも一部のデータ項目が一致する複数の候補テーブルを複数の第２テーブルから選択し、
複数の前記候補テーブルのデータ項目と少なくとも一部のデータ項目が一致する複数の第３テーブルを複数の前記第２テーブルから選択し、複数の前記候補テーブルと複数の前記第３テーブルのデータ項目の第１一致度をそれぞれ算出し、
複数の前記第３テーブルのデータ項目と少なくとも一部のデータ項目が一致する複数の第４テーブルを複数の前記第２テーブルから選択し、複数の前記第３テーブルと複数の前記第４テーブルのデータ項目の第２一致度をそれぞれ算出し、
前記第１一致度と前記第２一致度に基づいて、複数の前記候補テーブルの信頼度を算出する
処理をコンピュータに実行させるデータ処理プログラム。
（付記８）
第１テーブルのデータ項目と少なくとも一部のデータ項目が一致する複数の候補テーブルを複数の第２テーブルから選択し、複数の前記候補テーブルと前記第１テーブルのデータ項目の第１一致度をそれぞれ算出し、
複数の前記候補テーブルのデータ項目と少なくとも一部のデータ項目が一致する複数の第３テーブルを複数の前記第２テーブルから選択し、複数の前記候補テーブルと複数の前記第３テーブルのデータ項目の第２一致度をそれぞれ算出し、
前記第１一致度と前記第２一致度に基づいて、複数の前記候補テーブルの信頼度を算出する
処理をコンピュータに実行させるデータ処理方法。
（付記９）
第１テーブルのデータ項目と少なくとも一部のデータ項目が一致する複数の候補テーブルを複数の第２テーブルから選択し、複数の前記候補テーブルと前記第１テーブルのデータ項目の第１一致度をそれぞれ算出する第１一致度取得部と、
複数の前記候補テーブルのデータ項目と少なくとも一部のデータ項目が一致する複数の第３テーブルを複数の前記第２テーブルから選択し、複数の前記候補テーブルと複数の前記第３テーブルのデータ項目の第２一致度をそれぞれ算出する第２一致度取得部と、
前記第１一致度と前記第２一致度に基づいて、複数の前記候補テーブルの信頼度を算出する信頼度取得部と
を有するデータ処理装置。
【符号の説明】
【０１５０】
７            トランザクション
８            候補マスタ
８ｐ          最尤マスタ
１１          ＣＰＵ
１２          主記憶装置
１３          補助記憶装置
１４          入力装置
１５          表示装置
１７          通信Ｉ／Ｆ
１８          ドライブ装置
１９          記憶媒体
４０ａ、４０ｂ  結合マスタ選択部
４１ａ、４１ｂ  結合部
４２ａ、４２ｂ  候補マスタ抽出部
４３ａ、４３ｂ  マスタ探索部
４４ａ、４４ｂ  信頼度取得部
４５ａ、４５ｂ  最尤マスタ選択部
５０          マスタ集合
１００        データ処理装置
１３０        記憶部
【図１】
2018010450.tif 000003
【図２】
2018010450.tif 000004
【図３】
2018010450.tif 000005
【図４】
2018010450.tif 000006
【図５】
2018010450.tif 000007
【図６】
2018010450.tif 000008
【図７】
2018010450.tif 000009
【図８】
2018010450.tif 000010
【図９】
2018010450.tif 000011
【図１０】
2018010450.tif 000012
【図１１】
2018010450.tif 000013
【図１２】
2018010450.tif 000014
【図１３】
2018010450.tif 000015
【図１４】
2018010450.tif 000016
【図１５】
2018010450.tif 000017
【図１６】
2018010450.tif 000018
【図１７】
2018010450.tif 000019
【図１８】
2018010450.tif 000020