(57)【特許請求の範囲】
【請求項１】
階層構造を有する文字列情報を含む複数のレコードがそれぞれ格納された複数のデータベースの突合処理を行う突合処理装置であって、
前記複数のデータベースのうちの第１データベース内のレコードに含まれる文字列情報と、前記複数のデータベースのうちの第２データベース内のレコードに含まれる文字列情報とを比較して、相互の文字列情報の一致又は不一致を検出するレコード比較部と、
前記階層構造の所定の上層から所定の下層までの所定の範囲で共通の文字列情報を含むレコードが前記第１及び第２データベースの両方に存在する場合には、前記所定の範囲で共通の文字列情報を含む前記第１データベース内のレコード数に基づく情報、前記所定の範囲で共通の文字列情報を含む前記第２データベース内のレコード数に基づく情報、並びに、前記所定の範囲で共通の文字列情報を含むことを示す情報を、前記所定の範囲で共通の文字列情報を含む前記第１及び第２データベース内のレコードのそれぞれに関連付ける突合結果生成部とを、
有する突合処理装置。
【請求項２】
前記レコード比較部は、最初に前記所定の範囲で前記第１及び第２のデータベース内のレコードに含まれる文字列情報の比較を行い、その後、前記文字列情報を比較する範囲を、前記階層構造の階層単位で前記所定の範囲から段階的に狭くしながら前記文字列情報の比較を行うよう構成されている請求項１に記載の突合処理装置。
【請求項３】
前記突合結果生成部は、前記所定の範囲より狭い範囲で共通の文字列情報を含むレコードが前記第１及び第２データベースの両方に存在する場合には、前記所定の範囲より狭い範囲で共通の文字列情報を含む前記第１データベース内のレコード数に基づく情報、前記所定の範囲より狭い範囲で共通の文字列情報を含む前記第２データベース内のレコード数に基づく情報、並びに、前記所定の範囲より狭い範囲で共通の文字列情報を含むことを示す情報を、前記所定の範囲より狭い範囲で共通の文字列情報を含む前記第１及び第２データベース内のレコードのそれぞれに関連付けるよう構成されている請求項２に記載の突合処理装置。
【請求項４】
前記レコード比較部は、前記第１及び第２データベース内のレコードのうち、前記相互の文字列情報の一致が既に検出されているレコードを比較対象から除外するよう構成されている請求項２又は３に記載の突合処理装置。
【請求項５】
前記レコード比較部は、最初に前記所定の範囲より狭い範囲で前記第１及び第２のデータベース内のレコードに含まれる文字列情報の比較を行い、その後、前記文字列情報を比較する範囲を、前記階層構造の階層単位で前記所定の範囲まで段階的に広くしながら前記文字列情報の比較を行うよう構成されている請求項１に記載の突合処理装置。
【請求項６】
前記突合結果生成部は、前記所定の範囲より狭い範囲で共通の文字列情報を含むレコードが前記第１及び第２データベースの両方に存在する場合には、前記所定の範囲より狭い範囲で共通の文字列情報を含む前記第１データベース内のレコード数に基づく情報、前記所定の範囲より狭い範囲で共通の文字列情報を含む前記第２データベース内のレコード数に基づく情報、並びに、前記所定の範囲より狭い範囲で共通の文字列情報を含むことを示す情報を、前記所定の範囲より狭い範囲で共通の文字列情報を含む前記第１及び第２データベース内のレコードのそれぞれに関連付けるよう構成されている請求項５に記載の突合処理装置。
【請求項７】
前記突合結果生成部は、前記所定の範囲で共通の文字列情報を含む前記第１データベース内のレコード数に基づく情報、前記所定の範囲で共通の文字列情報を含む前記第２データベース内のレコード数に基づく情報、並びに、前記所定の範囲で共通の文字列情報を含むことを示す情報を統合したコード情報を生成するよう構成されている請求項１から６のいずれか１つに記載の突合処理装置。
【請求項８】
前記第１及び第２データベース内のレコード数に基づく情報として、前記第１及び第２データベース内のレコード数自体、又は、前記第１及び第２データベース内のレコード数が単数か複数かを示す情報を用いる請求項１から７のいずれか１つに記載の突合処理装置。
【請求項９】
前記階層構造を有する文字列情報が住所情報である請求項１から８のいずれか１つに記載の突合処理装置。
【請求項１０】
階層構造を有する文字列情報を含む複数のレコードがそれぞれ格納された複数のデータベースの突合処理を行う突合処理方法であって、
前記複数のデータベースのうちの第１データベース内のレコードに含まれる文字列情報と、前記複数のデータベースのうちの第２データベース内のレコードに含まれる文字列情報とを比較して、相互の文字列情報の一致又は不一致を検出するレコード比較ステップと、
前記階層構造の所定の上層から所定の下層までの所定の範囲で共通の文字列情報を含むレコードが前記第１及び第２データベースの両方に存在する場合には、前記所定の範囲で共通の文字列情報を含む前記第１データベース内のレコード数に基づく情報、前記所定の範囲で共通の文字列情報を含む前記第２データベース内のレコード数に基づく情報、並びに、前記所定の範囲で共通の文字列情報を含むことを示す情報を、前記所定の範囲で共通の文字列情報を含む前記第１及び第２データベース内のレコードのそれぞれに関連付ける突合結果生成ステップとを、
有する突合処理方法。
【請求項１１】
階層構造を有する文字列情報を含む複数のレコードがそれぞれ格納された複数のデータベースの突合処理を行う突合処理方法をコンピュータにより実行させるための突合処理プログラムであって、
前記複数のデータベースのうちの第１データベース内のレコードに含まれる文字列情報と、前記複数のデータベースのうちの第２データベース内のレコードに含まれる文字列情報とを比較して、相互の文字列情報の一致又は不一致を検出するレコード比較ステップと、
前記階層構造の所定の上層から所定の下層までの所定の範囲で共通の文字列情報を含むレコードが前記第１及び第２データベースの両方に存在する場合には、前記所定の範囲で共通の文字列情報を含む前記第１データベース内のレコード数に基づく情報、前記所定の範囲で共通の文字列情報を含む前記第２データベース内のレコード数に基づく情報、並びに、前記所定の範囲で共通の文字列情報を含むことを示す情報を、前記所定の範囲で共通の文字列情報を含む前記第１及び第２データベース内のレコードのそれぞれに関連付ける突合結果生成ステップとを、
有する突合処理方法をコンピュータにより実行させるための突合処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のレコードがそれぞれ格納された複数のデータベースの突合処理を行う突合処理装置及び突合処理方法並びに突合処理プログラムに関する。
【背景技術】
【０００２】
従来、複数のデータベース（例えば、データベースＡ及びデータベースＢ）のそれぞれに含まれている複数のレコードを突合した場合、突合状態を区分するコードを各レコードへ付与することによって突合結果を得ている。なお、本明細書におけるレコードとは、データベース内に格納されているデータのかたまりであって、例えば住所情報などのような固有の情報を示すデータのかたまりを指している。また、本明細書における突合とは、複数のデータベースのそれぞれのレコードに含まれているデータの一部又は全部が一致するか否かを調べるために、データベース同士（あるいは、データベースの各レコード同士）を照合することである。
【０００３】
従来の突合処理では、例えば、データベースＡ内のレコードとデータベースＢ内のレコードが一致した場合や何らかの関連付けが得られた場合には、そのレコードに対して一致したレコードであることを示すコード『１』を付与し、レコードが不一致となった場合には不一致のレコードであることを示すコード『−１』を付与するなど、単純なコードによってレコードの一致／不一致の識別を行っている。
【０００４】
また、従来技術として、下記の特許文献１〜３に開示されている技術が存在する。特許文献１には、文字列階層データ（住所名など）や符号文字列データ（郵便番号など）が記憶された複数のデータベースを合成して、ツリー構造を持つ合成データベースを作成する技術が開示されている。特許文献１の開示技術によれば、文字列階層データは住所名などの階層構造を持つデータであり、文字列階層データを階層単位（ノード単位）で比較することで一致／不一致を判定する。
【０００５】
また、特許文献２には、住所コードデータベース（数字の配列で表される住所情報を含む）と、住所データベース（地名情報を含む）とをマージ（統合）して、マージデータベースを作成する技術が開示されている。特許文献２の開示技術によれば、データベースのマージを行う際、住所（町村名の部分）を右端から１文字ずつ削除して検索し、ヒットした箇所の文字列までコード化されていると判断して記憶する。この際、コード化されている箇所を識別するために、例えば記号『／』を挿入する。
【０００６】
また、特許文献３には、ユーザにより入力された検索住所文字列に基づいて、住所データベースの中から該当する住所データを検索する技術が開示されている。特許文献３の開示技術によれば、ユーザの入力した検索住所文字列に該当する住所が存在しない場合は、１つ以上の住所がヒットするまで、検索住所文字列を後方から所定量（例えば、住所表記単位）ずつ削除して検索を繰り返す。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−１３４８２８号公報（要約書、段落［０１１６］、図１、図３０、図３１、図３４）
【特許文献２】特開２００３−１６７９１２号公報（要約書、段落［００２８］、図６）
【特許文献３】特開２００３−１８６８８０号公報（要約書）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来技術では、各レコードにおける一致／不一致の状況の識別（例えば、上述したコード『１』、『−１』の付与）や、不一致となった各レコードについて修正すべき箇所の特定及び修正（例えば、上述した特許文献１、２の開示技術）を試みている。しかしながら、各レコードについて修正すべき箇所が特定されたとしても、適切な修正値を見つけ出すことは容易ではない。また、不一致となったレコードが特定されたとしても、不一致となった要因がどこにあり、データベース内のレコード全体において同様の理由で不一致となったレコードがどのくらい生じているのかなどを把握できなければ、不一致となったレコードを効率良くかつ適切に修正することは困難である。
【０００９】
上記の問題点を考慮して、本発明は、複数のデータベースのそれぞれに含まれている複数のレコードを突合し、その突合結果を定量的な値（例えば、データベース間で一致したレコード数など）として示すことで、データベース同士の各レコードの一致／不一致の状況を明確に示すことができる突合処理装置及び突合処理方法並びに突合処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の目的を達成するため、本発明の突合処理装置は、階層構造を有する文字列情報を含む複数のレコードがそれぞれ格納された複数のデータベースの突合処理を行う突合処理装置であって、
前記複数のデータベースのうちの第１データベース内のレコードに含まれる文字列情報と、前記複数のデータベースのうちの第２データベース内のレコードに含まれる文字列情報とを比較して、相互の文字列情報の一致又は不一致を検出するレコード比較部と、
前記階層構造の所定の上層から所定の下層までの所定の範囲で共通の文字列情報を含むレコードが前記第１及び第２データベースの両方に存在する場合には、前記所定の範囲で共通の文字列情報を含む前記第１データベース内のレコード数、前記所定の範囲で共通の文字列情報を含む前記第２データベース内のレコード数、並びに、前記所定の範囲で共通の文字列情報を含むことを示す情報を、前記所定の範囲で共通の文字列情報を含む前記第１及び第２データベース内のレコードのそれぞれに関連付ける突合結果生成部とを、
有する。
【００１１】
また、上記の目的を達成するため、本発明の突合処理方法は、階層構造を有する文字列情報を含む複数のレコードがそれぞれ格納された複数のデータベースの突合処理を行う突合処理方法であって、
前記複数のデータベースのうちの第１データベース内のレコードに含まれる文字列情報と、前記複数のデータベースのうちの第２データベース内のレコードに含まれる文字列情報とを比較して、相互の文字列情報の一致又は不一致を検出するレコード比較ステップと、
前記階層構造の所定の上層から所定の下層までの所定の範囲で共通の文字列情報を含むレコードが前記第１及び第２データベースの両方に存在する場合には、前記所定の範囲で共通の文字列情報を含む前記第１データベース内のレコード数、前記所定の範囲で共通の文字列情報を含む前記第２データベース内のレコード数、並びに、前記所定の範囲で共通の文字列情報を含むことを示す情報を、前記所定の範囲で共通の文字列情報を含む前記第１及び第２データベース内のレコードのそれぞれに関連付ける突合結果生成ステップとを、
有する。
【００１２】
また、上記の目的を達成するため、本発明の突合処理プログラムは、階層構造を有する文字列情報を含む複数のレコードがそれぞれ格納された複数のデータベースの突合処理を行う突合処理方法をコンピュータにより実行させるための突合処理プログラムであって、
前記複数のデータベースのうちの第１データベース内のレコードに含まれる文字列情報と、前記複数のデータベースのうちの第２データベース内のレコードに含まれる文字列情報とを比較して、相互の文字列情報の一致又は不一致を検出するレコード比較ステップと、
前記階層構造の所定の上層から所定の下層までの所定の範囲で共通の文字列情報を含むレコードが前記第１及び第２データベースの両方に存在する場合には、前記所定の範囲で共通の文字列情報を含む前記第１データベース内のレコード数に基づく情報、前記所定の範囲で共通の文字列情報を含む前記第２データベース内のレコード数に基づく情報、並びに、前記所定の範囲で共通の文字列情報を含むことを示す情報を、前記所定の範囲で共通の文字列情報を含む前記第１及び第２データベース内のレコードのそれぞれに関連付ける突合結果生成ステップとを、
有する突合処理方法をコンピュータにより実行させるための突合処理プログラムである。
【発明の効果】
【００１３】
本発明は、上記の構成又は処理を有しており、複数のデータベースのそれぞれに含まれている複数のレコードを突合し、その突合結果を定量的な値（例えば、データベース間で突合したレコード数など）として示すことで、データベース同士の各レコードの一致／不一致の状況を明確に示すことができるという効果を有する。また、本発明は、データベース同士の各レコードの一致／不一致の状況を定量的に示すことで、この一致／不一致の状況の内訳を確認できるようにするという効果を有する。さらに、本発明は、不一致となったレコードについて、データベース間の不整合を解決するための作業を迅速に進めることができるようにするという効果を有する。
【００１４】
また、本発明は、特に、住所情報を含む台帳データベースと、地図などを表す画像情報に関連付けられて同じく住所情報を含む地図データベースとの突合処理に適用された場合において著しい効果を有する。住所情報を含む複数のデータベースにおいては、特に、国土における地番などに不整合が生じているという課題があり、こうした不整合の解決作業を的確かつ迅速に行うことが、行政や土地開発上の課題となっていた。本発明は、土地台帳と住所の突合検討において、本発明の実施の形態において説明するような一致／不一致の状況を明確に示すコード体系を用いて、適切なキー項目の値を迅速に見つけ出すことを可能とし、不突合となった要因を知ることができるという効果を有する。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１〜第３の実施の形態に共通する突合処理装置の構成の一例を示すブロック図である。
【図２Ａ】本発明の第１〜第３の実施の形態に共通する突合処理の概要を示すフローチャートである。
【図２Ｂ】本発明の第１〜第３の実施の形態に共通する突合処理における事前設定処理の一例を示すフローチャートである。
【図２Ｃ】本発明の第１〜第３の実施の形態に共通する突合処理における突合コード設定処理の一例を示すフローチャートである。
【図３】本発明の第１〜第３の実施の形態における突合処理を説明するために用いられるデータベースＡ及びＢの一例を示す図である。
【図４】本発明の第１及び第２の実施の形態における突合処理の処理過程におけるデータベースＡ及びＢの状態の一例を示す図である。
【図５】本発明の第１の実施の形態における突合処理の処理過程におけるデータベースＡ及びＢの第１の状態の一例を示す図である。
【図６】本発明の第１の実施の形態における突合処理の処理過程におけるデータベースＡ及びＢの第２の状態の一例を示す図である。
【図７】本発明の第１の実施の形態における突合処理において得られる最終的な突合結果を含むデータベースＡ及びＢの状態の一例を示す図である。
【図８】本発明の第１の実施の形態において、最終的な突合結果から特定の突合コードが設定されたレコードのみを抽出した状態の一例を示す図である。
【図９】本発明の第２の実施の形態における突合処理の処理過程におけるデータベースＡ及びＢの第１の状態の一例を示す図である。
【図１０】本発明の第２の実施の形態における突合処理の処理過程におけるデータベースＡ及びＢの第２の状態の一例を示す図である。
【図１１】本発明の第２の実施の形態における突合処理の処理過程におけるデータベースＡ及びＢの第３の状態の一例を示す図である。
【図１２】本発明の第２の実施の形態における突合処理において得られる最終的な突合結果を含むデータベースＡ及びＢの状態の一例を示す図である。
【図１３】本発明の第２の実施の形態において、突合処理の処理過程において得られる突合結果と最終的に得られる突合結果とを含んだデータベースＡ及びＢの状態の一例を示す図である。
【図１４】本発明の第３の実施の形態における突合処理において得られる最終的な突合結果を含むデータベースＡ及びＢの状態の一例を示す図である。
【図１５】本発明の第１の実施の形態に係る実施例において、最終的な突合結果から特定の突合コード『１０１０１』が設定されたレコードのみを抽出した状態の一例を示す図である。
【図１６】本発明の第１の実施の形態に係る実施例において、最終的な突合結果から特定の突合コード『１０２０１』が設定されたレコードのみを抽出した状態の一例を示す図である。
【図１７】本発明の第１の実施の形態に係る実施例において、最終的な突合結果から特定の突合コード『１１００１』が設定されたレコードのみを抽出した状態の一例を示す図である。
【図１８】本発明の第１の実施の形態に係る実施例において、最終的な突合結果から特定の突合コード『２０１０１』が設定されたレコードのみを抽出した状態の一例を示す図である。
【図１９】本発明の第１の実施の形態に係る実施例において、最終的な突合結果から特定の突合コード『２０２０１』が設定されたレコードのみを抽出した状態の一例を示す図である。
【図２０】本発明の第１の実施の形態に係る実施例において、最終的な突合結果から特定の突合コード『２０４０４』が設定されたレコードのみを抽出した状態の一例を示す図である。
【図２１】本発明の第１の実施の形態に係る実施例において、最終的な突合結果から特定の突合コード『２１００２』が設定されたレコードのみを抽出した状態の一例を示す図である。
【図２２】図１５に図示されているテーブルから１〜６番目のレコード（第１〜第６レコード）を抽出した状態の一例を示す図である。
【図２３】図１５に図示されているテーブルから１〜６番目のレコード（第１〜第６レコード）を抽出し、さらに「面積」フィールドが表示された状態の一例を示す図である。
【図２４】本発明に係る突合処理によって２つのデータベース（台帳データベース及び地図データベース）で１対１に対応していると判断されたレコードについて、当該対応していると判断された各レコードの共通の項目（「面積」フィールド）の値を用いて作成された散布図の一例を示す図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照しながら、本発明の第１〜第３の実施の形態について説明する。
【００１７】
図１は、本発明の第１〜第３の実施の形態に共通する突合処理装置の構成の一例を示すブロック図である。図１に図示されている突合処理装置１０は、データベース読み取り部１１、突合処理部１２を有している。また、突合処理装置１０には、複数のデータベースが記憶された記憶媒体２０、操作入力部３０、表示部４０が接続されている。
【００１８】
データベース読み取り部１１は、記憶媒体２０に記憶されている複数のデータベース（図１のデータベースＡ及びＢ）を読み取る機能を有している。突合処理装置１０によって読み取られたデータベースは、突合処理部１２が処理を行うために、例えば突合処理装置１０内の主記憶装置（メインメモリ、図１には不図示）などに一時的に記憶される。
【００１９】
突合処理部１２は、データベース読み取り部１１によって読み取られた複数のデータベース（図１のデータベースＡ及びＢ）内の各レコードの突合処理を行う機能を有しており、レコード比較部１３、突合結果生成部１４、突合結果出力部１５を備えている。
【００２０】
レコード比較部１３は、複数のデータベース（図１のデータベースＡ及びＢ）のそれぞれの各レコードに含まれる文字列情報を相互に比較して、文字列情報の一致又は不一致を検出する突合処理を行う機能を有している。突合結果生成部１４は、レコード比較部１３による比較結果に基づいて、複数のデータベース（図１のデータベースＡ及びＢ）のそれぞれの各レコードに関する突合結果を生成する機能を有している。突合結果生成部１４は、複数のデータベース（図１のデータベースＡ及びＢ）のそれぞれの各レコードの突合結果を、例えば後述する突合コード（突合結果を統合したコード情報）として生成することが可能である。突合結果出力部１５は、突合結果生成部１４によって生成された突合結果を出力して、データベース内のデータとして記録させたり表示部４０に表示させたりする機能を有している。
【００２１】
また、記憶媒体２０は、データベースを記憶する機能を有しており、例えば、ハードディスク、光記録媒体、磁気記録媒体、不揮発性メモリなどにより実現可能である。なお、記憶媒体２０は、ネットワークなどを介して突合処理装置１０がアクセス可能な場所に配置されていてもよい。なお、図１には複数のデータベースとして２つのデータベース（データベースＡ及びＢ）が同一の記憶媒体２０に記憶されている状態が図示されているが、複数のデータベースはそれぞれ異なる記憶媒体２０に記憶されていてもよい。以下では、２つのデータベースにおける突合処理が行われる場合について主に説明するが、３つ以上のデータベースにおける突合処理が行われてもよい。
【００２２】
記憶媒体２０に記憶されているデータベースはデータの集合体であり、文字列情報を含む複数のデータを有している。データベースに含まれているデータは、例えば、所定の格納形式（例えば、表形式）に基づいて、レコード単位でデータベースに格納されている。なお、各レコードには、例えば階層構造を有する文字列情報が含まれている。文字列情報の一例としては、例えば市町村、大字、小字、地番、枝番などの階層構造を有する住所情報などが挙げられるが、その他の任意の種類の情報が利用可能である。また、複数のデータベースに含まれるレコード数は同一であってもよく、異なっていてもよい。
【００２３】
また、操作入力部３０は、突合処理装置１０におけるユーザ操作を可能とする機能を有しており、例えばマウスやキーボードなどの入力インタフェースにより実現可能である。操作入力部３０を用いることで、ユーザは、突合処理装置１０に読み取らせるデータベースの指定、突合処理における設定、突合処理の開始指示、表示部４０における情報の表示指示などを始めとした様々な設定及び指示を突合処理装置１０に入力することが可能である。
【００２４】
また、表示部４０は、複数のデータベースのそれぞれに格納されているデータや突合処理部１２によって生成された突合結果などを、ユーザが視認可能な情報として提供する機能を有しており、例えばモニタ又はディスプレイなどによって実現可能である。また、操作入力部３０及び表示部４０は、操作入力機能と表示機能が一体化されたタッチパネルなどによって実現されてもよい。
【００２５】
なお、図１では、突合処理装置１０の各機能がブロックによって模式的に図示されているが、これらのブロックで表されている各機能は、例えば、ハードウェア又はＣＰＵ（Central Processing Unit：中央処理装置）がソフトウェア（プログラム）を実行することによって実現可能である。突合処理装置１０は、例えば汎用ＰＣ（Personal Computer：パーソナルコンピュータ）によって実現可能であり、突合処理装置１０における各処理は、本発明の第１〜第３の実施の形態における各処理（例えば、後述の図２Ａ〜２Ｃに示すフローチャートに含まれる各処理）の実行命令が記述されたプログラムをＣＰＵが実行することで実現可能である。
【００２６】
また、図１には不図示であるが、汎用ＰＣで実現される突合処理装置１０は、データやプログラムなどを一時的に記憶する主記憶装置（メインメモリ）を備えており、例えば、データベース読み取り部１１によって読み込まれたデータベース内のデータ、処理中に変更又は生成されたデータ、ＣＰＵで実行すべきプログラムなどを主記憶装置に一時的に記憶しながら、本発明の第１〜第３の実施の形態における処理を行うことが可能である。
【００２７】
次に、図２Ａ〜２Ｃを参照しながら、本発明の第１〜第３の実施の形態における突合処理について説明する。図２Ａは本発明の第１〜第３の実施の形態に共通する突合処理の概要を示すフローチャート、図２Ｂは本発明の第１〜第３の実施の形態に共通する突合処理における事前設定処理（図２Ａに示すステップＳ１００の事前設定処理）の一例を示すフローチャート、図２Ｃは本発明の第１〜第３の実施の形態に共通する突合処理における突合コード設定処理（図２Ａに示すステップＳ２００の突合コード設定処理）の一例を示すフローチャートである。なお、図２Ａ〜２Ｃに示すフローチャートの各処理は、図１に図示されている突合処理装置１０により実行される。
【００２８】
図２Ａ〜２Ｃに示すフローチャートは、後述する本発明の第１〜第３の実施の形態における突合処理のそれぞれの動作を包含する。具体的には、図２ＣのステップＳ２２５において処理対象レベルを変更する処理が行われるが、このとき、処理対象レベルを上げる態様（後述の第１の実施の形態）、処理対象レベルを下げる態様（後述の第２の実施の形態）、これらの態様の組み合わせ（後述の第３の実施の形態）のいずれかを採用することが可能である。
【００２９】
以下、第１〜第３の実施の形態のそれぞれについて詳細に説明する。なお、本発明に対する理解が容易となるよう、突合処理を行う対象とする２つのデータベースＡ及びＢの各レコードに、図３に示す階層構造を有する文字列情報が含まれている場合を一例に挙げながら説明する。
【００３０】
＜第１の実施の形態＞
まず、本発明の第１の実施の形態における突合処理について説明する。図２Ａに示すように、本発明の第１の実施の形態における突合処理は、事前設定処理（ステップＳ１００）と、突合コード設定処理（ステップＳ２００）とに大別される。ステップＳ１００の事前設定処理では、後続の突合コード設定処理において使用されるパラメータなどの設定が行われる。また、ステップＳ２００の突合コード設定処理では、実際に突合処理の対象となる複数のデータベース（例えば、データベースＡ及びＢ）内のレコードを比較し、各レコードに対して突合結果を示す情報（例えば、突合コード）を付与する処理が行われる。
【００３１】
事前設定処理では、図２Ｂに示すように、突合処理装置１０は、記憶媒体２０に記憶されている２つのデータベースＡ及びＢを読み出し、これらのデータベースＡ及びＢに含まれている各レコードの突合コード欄を初期化するとともに（例えば、初期値として『０』を設定）、レコードの階層構造に従って突合を行う階層（突合レベル）を設定する（ステップＳ１０１）。なお、設定された突合レベルは、後続の処理で用いるために突合処理装置１０によって保持される。また、例えば図４に示すように、レコード内のデータが３つの階層（４桁の数字を持つ上層、３桁の数字を持つ中層、３桁の数字を持つ下層の３層）で構成された文字列情報の場合、突合処理装置１０は、上層、中層、下層のすべてを含む階層構造をレベル１とし、上層及び中層を含む階層構造をレベル２とし、上層のみを含む階層構造をレベル３とすることが可能である。
【００３２】
突合処理装置１０は、最初に処理を行う対象となる初期レベルを決定し、この初期レベルを変数ＬＶＬ（処理対象レベル）として設定する（ステップＳ１０３）。例えば、初期レベルとしてレベル１（変数ＬＶＬ＝１）が設定される。このとき、初期レベルの設定と共に、最後に処理を行う対象となる最終レベルをユーザが設定してもよい。また、自動的に、文字列情報の最下層が初期レベルとして設定され、文字列情報の最上層が最終レベルとして設定されてもよい。例えば図４に示すデータベースＡ及びＢの例において、初期レベルとしてレベル１が設定され、最終レベルとしてレベル３が設定された場合には、後続の処理において、レベル１〜３のすべてのレベルにおいて突合処理が行われることになる。なお、初期レベルをレベル１と設定して最終レベルをレベル２と設定したり、初期レベルをレベル２と設定して最終レベルをレベル３と設定したりするなど、初期レベル及び最終レベルを設定することで突合処理を行うレベルの範囲を設定することが可能である。本第１の実施の形態では、後続の処理において処理対象レベルを徐々に上げていくため（すなわち、比較する文字列情報の長さを階層単位で徐々に短くするため）、初期レベルよりも最終レベルを大きくする（初期レベルのほうがより下層の文字列を含む）必要がある。
【００３３】
上述の事前設定処理においてパラメータなどの設定が完了した後、突合コード設定処理では、図２Ｃに示すように、突合処理装置１０は、データベースＡ及びＢのそれぞれにおいて、処理対象レベルにおいて同一の文字列情報を含むレコード数を算出し、そのレコード数の最大値を抽出する（ステップＳ２０１）。例えば、処理対象レベルとしてレベル１（変数ＬＶＬ＝１）が設定されている場合には、図４に示すデータベースＡの例では、処理対象レベル（レベル１）において同一の文字列情報を含むレコードはレコードＮｏ．１、２、３のレコード（同一のレコード数＝３）とレコードＮｏ．５、６のレコード（同一のレコード数＝２）であり、すなわち、レコード数の最大値は３となる。また同様に、図４に示すデータベースＢの例では、処理対象レベル（レベル１）において同一の文字列情報を含むレコードはレコードＮｏ．８、９のレコード（同一のレコード数＝２）であり、レコード数の最大値は２となる。データベースＡのレコード数の最大値は値ｖＡＭＡＸに設定され、データベースＢのレコード数の最大値は値ｖＢＭＡＸに設定される。これらの値ｖＡＭＡＸ及びｖＢＭＡＸは、後述するループ処理のループ回数として利用される。なお、後述するループ処理においては、そのループ回数をそれぞれのデータベースＡ及びＢのレコードの総数とした場合であっても適切に処理が行われるが、事前に、レコード数の最大値である値ｖＡＭＡＸ及びｖＢＭＡＸをループ回数として設定することで、ループ処理に要する処理時間を低減させることが可能となる。
【００３４】
以上のように、初期レベル及び最終レベル、データベースＡ及びＢのそれぞれのレコード数の最大値（ループ回数の値ｖＡＭＡＸ及びｖＢＭＡＸ）の設定が完了すると、突合処理装置１０は、データベースＡ及びＢの各レコードの突合処理を行うことが可能となる。突合処理装置１０は、例えば、まずデータベースＡ内の同一レコード数（変数Ａ１）を１に設定するとともに（ステップＳ２０３）、データベースＢ内の同一レコード数（変数Ｂ１）を１に設定して（ステップＳ２０５）、これらの条件に合ったレコードをデータベースＡ及びＢのそれぞれから抽出し、共通するレコード（すなわち、同一の文字列情報によって構成されているレコード）を検索する（ステップＳ２０７）。なお、ステップＳ２０７において、共通の文字列情報を持つ共通のレコードが検出されなかった場合には、突合コードを設定すべきレコードは存在しないと判断し（ステップＳ２０９）、ステップＳ２１１及びＳ２１３の処理は実行されない。
【００３５】
図４に示すデータベースＡ及びＢの例を参照すると、データベースＡ内に含まれている同一レコード数が１のレコードはレコードＮｏ．４、７、８のレコードであり、データベースＢ内に含まれている同一レコード数が１のレコードはレコードＮｏ．１〜７のレコードである。これらのレコードを比較することで、突合処理装置１０は、データベースＡ内のレコードＮｏ．７のレコードとデータベースＢ内のレコードＮｏ．６のレコードとが共通の文字列情報『１３５６７８９０１２』を持つ共通のレコードであることを検出する。
【００３６】
そして、突合処理装置１０は、データベースＡ及びＢで共通するこれらのレコードに対し、変数ＬＶＬ、変数Ａ１、変数Ｂ１の３つの変数の値を用いて表される突合コードを設定する（ステップＳ２１１）。突合コードは様々な方法によって表現することが可能であるが、例えば、突合コード＝ＬＶＬ＊１００００＋Ａ１＊１００＋Ｂ１などの計算式から突合コードを得ることが可能である。上述した例では、変数ＬＶＬ＝１、変数Ａ１＝１、変数Ｂ１＝１であることから、データベースＡ内のレコードＮｏ．７のレコードとデータベースＢ内のレコードＮｏ．６のレコードに対しては、突合コード＝１＊１００００＋１＊１００＋１＝１０１０１が設定される。このようにして得られた突合コードは、対応するレコードの突合コード欄に書き込まれ（ステップＳ２１３）、その結果、データベースＡ内のレコードＮｏ．７の突合コード欄とデータベースＢ内のレコードＮｏ．６のレコードＮｏ．６の突合コード欄には『１０１０１』が設定される。
【００３７】
突合処理装置１０は、変数Ａ１＝１、変数Ｂ１＝１の検索を終了すると、続いて変数Ｂ１が値ｖＢＭＡＸに等しいか否かを判断し（ステップＳ２１５）、変数Ｂ１が値ｖＢＭＡＸに達していない場合には、変数Ｂ１を１だけ増加（インクリメント）して（ステップＳ２１７）、ステップＳ２０７以降の処理を再び行う。また、ステップＳ２１５で変数Ｂ１が値ｖＢＭＡＸに達したと判断した場合には、変数Ａ１が値ｖＡＭＡＸに等しいか否かを判断し（ステップＳ２１９）、変数Ａ１が値ｖＡＭＡＸに達していない場合には、変数Ａ１をインクリメントして（ステップＳ２２１）、ステップＳ２０５以降の処理を再び行う。このように、ステップＳ２０３〜Ｓ２２１の処理により、ある特定の処理対象レベルにおいて、１からｖＡＭＡＸまでの範囲にある変数Ａ１と、１からｖＢＭＡＸまでの範囲に存在する変数Ｂ１との各組み合わせにおいて、データベースＡとデータベースＢとの間に共通するレコードが存在するか否かが検索され、共通するレコードに対しては、そのレコードの突合コード欄に突合コードが設定される。
【００３８】
この一連の処理によって、図４のデータベースＡ及びＢの例では、上述した突合コード『１０１０１』の設定に加え、データベースＡ内のレコードＮｏ．５、６のレコードとデータベースＢ内のレコードＮｏ．４のレコードに対して突合コード『１０２０１』が設定され（変数Ａ１＝２、変数Ｂ１＝１の条件で得られる）、データベースＡ内のレコードＮｏ．１、２、３のレコードとデータベースＢ内のレコードＮｏ．１のレコードに対して突合コード『１０３０１』が設定される（変数Ａ１＝３、変数Ｂ１＝１の条件で得られる）。この結果、例えばデータベースＡ及びＢは、図５に示す状態となる。
【００３９】
変数Ａ１がｖＡＭＡＸに達し変数Ｂ１がｖＢＭＡＸに達して、すべての同一レコード数についての処理が終了すると、突合処理装置１０は、処理対象レベル（変数ＬＶＬ）が最終レベルに等しいか否かを判断し（ステップＳ２２３）、変数ＬＶＬが最終レベルに達していない場合には、変数ＬＶＬを変更して（ステップＳ２２５）、ステップＳ２０１以降の処理を再び行う。なお、本第１の実施の形態では、ステップＳ２２５において突合レベルを上げる処理が行われ、すなわち、突合処理装置１０は、ステップＳ２２５において変数ＬＶＬをインクリメントする。
【００４０】
変数ＬＶＬをインクリメントしてレベル２（変数ＬＶＬ＝２）とした場合に実行されるステップＳ２０１以降の処理、さらに突合レベルを上げた状態で実行されるステップＳ２０１以降の処理では、既に突合コード欄に突合コードが設定されているレコードについては、ステップＳ２０７における検索処理において検索対象から除外する。すなわち、本第１の実施の形態では、処理の過程でレコードに突合コードがいったん設定された場合、そのレコードの突合コードは変更されないよう制御される。
【００４１】
図５のデータベースＡ及びＢの例では、レベル１における突合コードの設定状態から、さらにレベル２において、データベースＡ内のレコードＮｏ．４のレコードとデータベースＢ内のレコードＮｏ．２、３のレコードに対して突合コード『２０１０２』が設定され（変数ＬＶＬ＝２、変数Ａ１＝１、変数Ｂ１＝２の条件で得られる）、レベル３において、データベースＡ内のレコードＮｏ．８のレコードとデータベースＢ内のレコードＮｏ．８、９のレコードに対して突合コード『３０１０２』が設定される（変数ＬＶＬ＝３、変数Ａ１＝１、変数Ｂ１＝２の条件で得られる）。この結果、例えばデータベースＡ及びＢは、図６に示す状態となる。
【００４２】
そして、初期レベル（例えばレベル１に設定）から最終レベル（例えばレベル３に設定）までの突合処理が終了すると、突合処理装置１０は、突合コード欄が初期値『０』のまま残っているレコードについて、どのレベルにおいても一致する文字列情報が検索されなかったことを示す突合コード（完全不一致コードと呼ぶ）を設定する（ステップＳ２２７）。完全不一致コードは、例えば完全不一致コード＝９＊１００００＋９９＊１００＋９９＝『９９９９９』などのようにすることが可能であるが、その他の任意の文字列又は記号としてもよく、あるいは初期値『０』をそのまま残しておいてもよい（この場合、完全不一致コードは『０』）。この結果、例えばデータベースＡ及びＢは図７に示す状態となり、これによって突合処理は完了する。
【００４３】
なお、データベースＡ及びＢの各レコードへの突合コードは、最初に読み出された元のデータベースＡ及びＢ内に設定されてもよく、あるいは、元のデータベースＡ及びＢを複製した新たなデータベース内に設定されてもよい。さらに、元のデータベースＡ及びＢを複製して新たなデータベースを作成する場合、これらのデータベースＡ及びＢの内容を統合した１つの統合データベースを作成し、その中の各レコードに突合コードが設定されてもよい。
【００４４】
図７に示すようにデータベースＡ及びＢの各レコードに設定された突合コードは、データベースＡ及びＢ内のそれぞれに含まれる文字列情報に関して、どのレベルにおいて共通する文字列情報が存在しているのか（ＬＶＬの値）、データベースＡ内に共通の文字列情報を有するレコード数が何個存在しているのか（Ａ１の値）、データベースＢ内に共通の文字列情報を有するレコード数が何個存在しているのか（Ｂ１の値）を表しており、一致／不一致の状況を容易に読み取ることができるようになっている。また、上述のように突合コードを『ＬＶＬ＊１００００＋Ａ１＊１００＋Ｂ１』の計算式から得られる１つの情報として加工することで、一致／不一致の状況をより直感的に理解できるような情報を提供することが可能となる。例えば突合コードが『１０１０１』のレコードについては、データベースＡとデータベースＢとにおいて１対１に対応（完全一致）していることが容易に理解でき、また、例えば突合コードが『２０１０２』のレコードについては、データベースＡとデータベースＢとにおいて、レベル１で一致するレコードは存在しないものの、レベル２で一致するレコードがデータベースＡに１個、データベースＢに２個存在していることが容易に理解できる。なお、上記の計算式によれば、突合コードの万の位がＬＶＬの値を表し、千及び百の位がＡ１の値を表し、十及び一の位がＢ１の値を表しているが、これらの値を表す桁数は任意に変更可能である。
【００４５】
また、上述のように『ＬＶＬ＊１００００＋Ａ１＊１００＋Ｂ１』の計算式から得られる突合コードでは、データベース内に共通の文字列情報を有するレコードが複数存在している場合にその個数を表すようにしているが、データベース内に共通の文字列情報を有する複数のレコード（２個以上のレコード）が存在している場合には、複数存在していることのみを示すようにしてもよい。この場合、具体的には、例えば上記の計算式を用いると突合コードが『２０１０４』と表されるレコード（レベル１で一致するレコードは存在しないものの、レベル２で一致するレコードがデータベースＡに１個、データベースＢに４個存在しているレコード）について、突合コード『２１２』（左端の『２』はＬＶＬの値を表し、真ん中の『１』はデータベースＡに１個存在していることを表し、右端の『２』はデータベースＢに複数（２個以上）存在していることを表す）が設定される。なお、この突合コードの表記方法によれば、例えば突合コードが『２０１０３』と表されるレコード（レベル１で一致するレコードは存在しないものの、レベル２で一致するレコードがデータベースＡに１個、データベースＢに３個存在しているレコード）などに対しても同一の突合コード『２１２』が設定されることになるが、データベースに単数のレコード（１個のレコード）のみが存在しているのか、あるいは複数のレコード（２個以上のレコード）が存在しているのかが容易に理解できるようになる点で有用である。
【００４６】
また、突合処理装置１０は、各レコードに突合データが設定されたデータベースＡ及びＢの中から、特定の突合コードが設定されているレコードのみを抽出して、そのレコードのみを表示画面上に表示したり、そのレコードのみを含むデータベースを新たに作成及び保存したりしてもよい。例えば図７に示すように突合コードが設定されたデータベースＡ及びＢの例において、突合処理装置１０がユーザ入力や他の装置又はプログラムから特定の突合コード『２０１０２』の出力指示を受けた場合には、図８に示すように、データベースＡ内のレコードＮｏ．４のレコードとデータベースＢ内のレコードＮｏ．２、３のレコードとを抽出し、それぞれのレコードが存在するデータベースの識別子を付与した状態で表示してもよい。異なるデータベースＡ及びＢにおいて同一の突合コードが設定されたレコードは相互に関連している可能性が高く、このように１つの表示画面にまとめて表示することで、ユーザがレコードの一致／不一致の状況を容易に把握できるようになり、不一致となったレコードの修正を行う際の作業効率を向上させることが可能となる。
【００４７】
なお、図２Ａ〜２Ｃに示すフローチャートを拡張することで、３つ以上のデータベースにおける突合処理を行う場合にも対応可能であることは明らかである。例えばデータベースＡ及びＢに加えて、さらにデータベースＣを含む３つのデータベースにおける突合処理を行う場合には、ステップＳ２０１においてデータベースＣのレコードの最大値ｖＣＭＡＸを抽出し、データベースＣ内のレコード数の変数Ｃ１を１からｖＣＭＡＸまでインクリメントしながら、ステップＳ２０７においてデータベースＡ、Ｂ及びＣで共通するレコードを検索できるようなループ処理を実行することによって、各データベース内のレコード同士の組み合わせを漏れなく比較できるようにすることが望ましい。なお、突合コードはデータベース数に応じて桁をずらせばよく、３つのデータベースにおける突合コードの計算式は、例えば突合コード＝ＬＶＬ＊１００００００＋Ａ１＊１００００＋Ｂ１＊１００＋Ｃ１などのようにすることが可能である。
【００４８】
＜第２の実施の形態＞
次に、本発明の実施の形態における突合処理の第２の実施の形態について説明する。上述の第１の実施の形態では、図２ＣのステップＳ２２５において処理対象レベルを変更する際に、処理対象レベルを上げる態様（第１の実施の形態）が採用されているが、本第２の実施の形態では、処理対象レベルを下げる態様（第２の実施の形態）を採用する。以下、第１の実施の形態と同様に、図２Ａ〜２Ｃのフローチャートを参照しながら本第２の実施の形態について説明する。なお、本第２の実施の形態では、第１の実施の形態と同様の処理が行われる点についての説明を省略することがある。また、第１の実施の形態における説明と同様に、本発明に対する理解が容易となるよう、２つのデータベースＡ及びＢの各レコードに、図３に示す階層構造を有する文字列情報が含まれている場合を一例に挙げながら説明する。
【００４９】
本第１の実施の形態では、上述の第１の実施の形態と同様、図２Ｂに示す事前設定処理において、突合処理装置１０は、記憶媒体２０に記憶されている２つのデータベースＡ及びＢを読み出し、これらのデータベースＡ及びＢに含まれている各レコードの突合コード欄を初期化するとともに（例えば、初期値として『０』を設定）、レコードの階層構造に従って階層のレベルを設定する（ステップＳ１０１）。ステップＳ１０１の処理の結果を図４に示す。
【００５０】
突合処理装置１０は、最初に処理を行う対象となる初期レベルを決定し、この初期レベルを変数ＬＶＬ（処理の対象レベルを表す）として設定する（ステップＳ１０３）。例えば、初期レベルとしてレベル３（変数ＬＶＬ＝３）が設定される。このとき、初期レベルの設定と共に、最後に処理を行う対象となる最終レベルをユーザが設定してもよい。また、自動的に、文字列情報の最下層が初期レベルとして設定され、文字列情報の最上層が最終レベルとして設定されてもよい。例えば図４に示すデータベースＡ及びＢの例において、初期レベルとしてレベル３が設定され、最終レベルとしてレベル１が設定された場合には、後続の処理において、レベル１〜３のすべてのレベルにおいて突合処理が行われることになる。なお、初期レベルをレベル３と設定して最終レベルをレベル２と設定したり、初期レベルをレベル２と設定して最終レベルをレベル１と設定したりすることなど、初期レベル及び最終レベルを設定することで突合処理を行うレベルの範囲を設定することが可能である。本第２の実施の形態では、後続の処理において処理対象レベルを徐々に下げていくため（すなわち、比較する文字列情報の長さを階層単位で徐々に長くするため）、初期レベルよりも最終レベルを小さくする（最終レベルのほうがより下層の文字列を含む）必要がある。
【００５１】
次に、図２Ｃに示す突合コード設定処理において、突合処理装置１０は、データベースＡ及びＢのそれぞれにおいて、最終レベルから対象レベルまで同一の文字列情報を含むレコード数を算出し、そのレコード数の最大値を抽出する（ステップＳ２０１）。例えば、処理対象レベルとしてレベル３（変数ＬＶＬ＝３）が設定されている場合には、図４に示すデータベースＡの例では、処理対象レベル（レベル３）において同一の文字列情報を含むレコードはレコードＮｏ．１〜６のレコード（同一のレコード数＝６）であり、すなわち、レコード数の最大値は６となる。また同様に、図４に示すデータベースＢの例では、処理対象レベル（レベル３）において同一の文字列情報を含むレコードはレコードＮｏ．１〜４のレコード（同一のレコード数＝４）、レコードＮｏ．６、７のレコード（同一のレコード数＝２）、レコードＮｏ．８、９のレコード（同一のレコード数＝２）であり、レコード数の最大値は４となる。データベースＡのレコード数の最大値は値ｖＡＭＡＸに設定され、データベースＢのレコード数の最大値は値ｖＢＭＡＸに設定される。これらの値ｖＡＭＡＸ及びｖＢＭＡＸは、後述するループ処理のループ回数として利用される。なお、後述するループ処理においては、そのループ回数をそれぞれのデータベースＡ及びＢのレコードの総数とした場合であっても適切に処理が行われるが、事前に、レコード数の最大値を値ｖＡＭＡＸ及びｖＢＭＡＸとして設定することで、ループ処理の回数及び処理時間を低減させることが可能となる。
【００５２】
以上のように、初期レベル及び最終レベル、データベースＡ及びＢのそれぞれのレコード数の最大値（ループ回数の値ｖＡＭＡＸ及びｖＢＭＡＸ）の設定が完了すると、突合処理装置１０は、データベースＡ及びＢの各レコードの突合処理を行うことが可能となる。突合処理装置１０は、例えば、まずデータベースＡ内の同一レコード数（変数Ａ１）を１に設定するとともに（ステップＳ２０３）、データベースＢ内の同一レコード数（変数Ｂ１）を１に設定して（ステップＳ２０５）、これらの条件に合ったレコードをデータベースＡ及びＢのそれぞれから抽出し、共通するレコード（すなわち、同一の文字列情報によって構成されているレコード）を検索する（ステップＳ２０７）。なお、ステップＳ２０７において、共通の文字列情報を持つ共通のレコードが検出されなかった場合には、突合コードを設定すべきレコードは存在しないと判断し（ステップＳ２０９）、ステップＳ２１１及びＳ２１３の処理は実行されない。
【００５３】
図４に示すデータベースＡ及びＢの例を参照すると、データベースＡ内に含まれている同一レコード数が１のレコードはレコードＮｏ．７、８のレコードであり、データベースＢ内に含まれている同一レコード数が１のレコードはレコードＮｏ．５のレコードであるが、これらのレコードは共通の文字列情報を有していない。したがって、突合コードを設定すべきレコードは存在せず、ステップＳ２１１及びＳ２１３の処理は実行されない。
【００５４】
突合処理装置１０は、変数Ａ１＝１、変数Ｂ１＝１の検索を終了すると、続いて変数Ｂ１が値ｖＢＭＡＸに等しいか否かを判断し（ステップＳ２１５）、変数Ｂ１が値ｖＢＭＡＸに達していない場合には、変数Ｂ１をインクリメントして（ステップＳ２１７）、ステップＳ２０７以降の処理を再び行う。すなわち、突合処理装置１０は、ステップ変数Ａ１＝１、変数Ｂ１＝２の条件で、再びステップＳ２０７の処理を実行する。
【００５５】
図４に示すデータベースＡ及びＢの例を参照すると、データベースＡ内に含まれている同一レコード数が１のレコードはレコードＮｏ．７、８のレコードであり、データベースＢ内に含まれている同一レコード数が２のレコードはレコードＮｏ．６、７のレコードとレコードＮｏ．８、９のレコードである。これらのレコードを比較することで、突合処理装置１０は、データベースＡ内のレコードＮｏ．７のレコードとデータベースＢ内のレコードＮｏ．６、７のレコードとが共通の文字列情報『１３５６』を持つ共通のレコードであることを検出し、データベースＡ内のレコードＮｏ．８のレコードとデータベースＢ内のレコードＮｏ．８、９のレコードとが共通の文字列情報『１３５７』を持つ共通のレコードであることを検出する。
【００５６】
そして、突合処理装置１０は、データベースＡ及びＢで共通するこれらのレコードに対し、変数ＬＶＬ、変数Ａ１、変数Ｂ１の３つの変数の値を用いて表される突合コードを設定する（ステップＳ２１１）。このとき、上述の第１の実施の形態と同様に、突合コード＝ＬＶＬ＊１００００＋Ａ１＊１００＋Ｂ１などの計算式から突合コードを得ることが可能である。上述した例では、変数ＬＶＬ＝３、変数Ａ１＝１、変数Ｂ１＝２であることから、データベースＡ内のレコードＮｏ．７、８のレコードとデータベースＢ内のレコードＮｏ．６〜９のレコードに対しては、突合コード＝３＊１００００＋１＊１００＋２＝３０１０２が設定される。このようにして得られた突合コードは、対応するレコードの突合コード欄に書き込まれ（ステップＳ２１３）、その結果、データベースＡ内のレコードＮｏ．７、８の突合コード欄とデータベースＢ内のレコードＮｏ．６〜９の突合コード欄には『３０１０２』が設定される（図９）。
【００５７】
このようにして、突合処理装置１０は、変数Ｂ１をインクリメントして、再びステップＳ２０７の処理を繰り返し実行する。そして、ステップＳ２１５で変数Ｂ１が値ｖＢＭＡＸに達したと判断した場合には、変数Ａ１が値ｖＡＭＡＸに等しいか否かを判断し（ステップＳ２１９）、変数Ａ１が値ｖＡＭＡＸに達していない場合には、変数Ａ１をインクリメントして（ステップＳ２２１）、ステップＳ２０５以降の処理を再び行う。このように、ステップＳ２０３〜Ｓ２２１の処理により、ある特定の処理対象レベルにおいて、１からｖＡＭＡＸまでの範囲にある変数Ａ１と、１からｖＢＭＡＸまでの範囲に存在する変数Ｂ１との各組み合わせにおいて、データベースＡとデータベースＢとの間に共通するレコードが存在するか否かが検索され、共通するレコードに対しては、そのレコードの突合コード欄に突合コードが設定される。
【００５８】
この一連の処理によって、図４のデータベースＡ及びＢの例では、上述した突合コード『３０１０２』の設定に加え、データベースＡ内のレコードＮｏ．１〜６のレコードとデータベースＢ内のレコードＮｏ．１〜４のレコードに対して突合コード『３０６０４』が設定される（変数Ａ１＝６、変数Ｂ１＝４の条件で得られる）。この結果、例えばデータベースＡ及びＢは、図９に示す状態となる。
【００５９】
変数Ａ１がｖＡＭＡＸに達し変数Ｂ１がｖＢＭＡＸに達して、すべての同一レコード数についての処理が終了すると、突合処理装置１０は、処理対象レベル（変数ＬＶＬ）が最終レベルに等しいか否かを判断し（ステップＳ２２３）、変数ＬＶＬが最終レベルに達していない場合には、変数ＬＶＬを変更して（ステップＳ２２５）、ステップＳ２０１以降の処理を再び行う。なお、本第２の実施の形態では、ステップＳ２２５において突合レベルを下げる処理が行われ、すなわち、突合処理装置１０は、ステップＳ２２５において変数ＬＶＬを１だけ減少する（デクリメント）。
【００６０】
なお、本第２の実施の形態では、上述の第１の実施の形態とは異なり、変数ＬＶＬをデクリメントしてレベル２（変数ＬＶＬ＝２）とした場合に実行されるステップＳ２０１以降の処理、さらに突合レベルを下げた状態で実行されるステップＳ２０１以降の処理においても、既に突合コード欄に突合コードが設定されているレコードを除外せずに突合コードを設定し、新たに設定された突合コードで、対応するレコードの突合コード欄内の突合コードを置き換える（上書き処理）。なお、後述のように、突合コードの上書き処理を行わずに、各処理対象レベルにおいて得られる突合コードの履歴を残すことも可能である（図１３を参照）。
【００６１】
図９のデータベースＡ及びＢの例では、レベル３における突合コードの設定状態から、さらにレベル２において、データベースＡ内のレコードＮｏ．７のレコードとデータベースＢ内のレコードＮｏ．６のレコードに対して突合コード『２０１０１』が設定され（変数ＬＶＬ＝２、変数Ａ１＝１、変数Ｂ１＝１の条件で得られる）、データベースＡ内のレコードＮｏ．１〜３のレコードとデータベースＢ内のレコードＮｏ．１のレコードに対して突合コード『２０３０１』が設定され（変数ＬＶＬ＝２、変数Ａ１＝３、変数Ｂ１＝１の条件で得られる）、データベースＡ内のレコードＮｏ．４〜６のレコードとデータベースＢ内のレコードＮｏ．２〜４のレコードに対して突合コード『２０３０３』が設定される（変数ＬＶＬ＝２、変数Ａ１＝３、変数Ｂ１＝３の条件で得られる）。なお、突合コードの上書きが行われなかったレコードの突合コード欄には、前の処理によって設定された突合コードがそのまま残る。この結果、例えばデータベースＡ及びＢは、図１０に示す状態となる。
【００６２】
さらに、レベル１において、データベースＡ内のレコードＮｏ．７のレコードとデータベースＢ内のレコードＮｏ．６のレコードに対して突合コード『１０１０１』が設定され（変数ＬＶＬ＝１、変数Ａ１＝１、変数Ｂ１＝１の条件で得られる）、データベースＡ内のレコードＮｏ．５、６のレコードとデータベースＢ内のレコードＮｏ．４のレコードに対して突合コード『１０２０１』が設定され（変数ＬＶＬ＝１、変数Ａ１＝２、変数Ｂ１＝１の条件で得られる）、データベースＡ内のレコードＮｏ．１〜３のレコードとデータベースＢ内のレコードＮｏ．１のレコードに対して突合コード『１０３０１』が設定される（変数ＬＶＬ＝１、変数Ａ１＝３、変数Ｂ１＝１の条件で得られる）。この結果、例えばデータベースＡ及びＢは、図１１に示す状態となる。
【００６３】
そして、初期レベル（例えばレベル３に設定）から最終レベル（例えばレベル１に設定）までの突合処理が終了すると、突合処理装置１０は、突合コード欄が初期値『０』のまま残っているレコードについて、どのレベルにおいても一致する文字列情報が検索されなかったことを示す完全不一致コードを設定する（ステップＳ２２７）。完全不一致コードとしては、上述の第１の実施の形態と同様に、完全不一致コード＝９＊１００００＋９９＊１００＋９９＝９９９９９とすることが可能である。この結果、例えばデータベースＡ及びＢは図１２に示す状態となり、これによって突合処理は完了する。
【００６４】
なお、データベースＡ及びＢの各レコードへの突合コードは、最初に読み出された元のデータベースＡ及びＢ内に設定されてもよく、あるいは、元のデータベースＡ及びＢを複製した新たなデータベース内に設定されてもよい。さらに、元のデータベースＡ及びＢを複製して新たなデータベースを作成する場合、これらのデータベースＡ及びＢの内容を統合した１つの統合データベースを作成し、その中の各レコードに突合コードが設定されてもよい。
【００６５】
また、上述の第１の実施の形態と同様に、本第２の実施の形態においても、突合処理装置１０は、各レコードに突合データが設定されたデータベースＡ及びＢの中から、特定の突合コードが設定されているレコードのみを抽出して、そのレコードのみを表示画面上に表示したり、そのレコードのみを含むデータベースを新たに作成及び保存したりすることが可能である。
【００６６】
図１２に示すように、本第２の実施の形態によって得られる突合コードは、上述の第１の実施の形態で得られる突合コードとは異なり、どの階層レベルにおいて共通する文字列が存在しているのか、データベースＡ内に共通の文字列情報を有するレコード数が何個存在しているのか、データベースＢ内に共通の文字列情報を有するレコード数が何個存在しているのかを正確に表す情報ではない。ただし、上述の第１の実施の形態では、例えばデータベースＢのレコードＮｏ．７のレコードには突合コード『９９９９９』が設定されている一方、本第２の実施の形態では、例えばデータベースＢのレコードＮｏ．７のレコードに突合コード『３０１０２』（すなわち、レベル３において共通の文字列情報を有するレコードが存在する）が設定されるなど、上述の第１の実施の形態の突合結果からは得ることができない一致／不一致の状況を把握することが可能である。このように、本第２の実施の形態で得られる突合コードを参照した場合には、ユーザは、上述の第１の実施の形態で得られる突合コードを参照した場合とは異なる視点で、一致／不一致の状況を把握できるようになる。
【００６７】
なお、図７及び図１２を比較すれば分かるとおり、最も低いレベルで共通する文字列情報が存在しているレコード（すなわち、レベル１において共通する文字列情報が存在しているレコードであって、突合コードにおいてＬＶＬ＝１の値を有するレコード）については、上述の第１及び第２の実施の形態のどちらの突合処理においても同一の突合コードが出力される。
【００６８】
また、本第２の実施の形態では、突合処理の過程で得られる突合コードも、一致／不一致の状況を把握するための有用な情報となり得る。上述の動作説明では、突合処理の過程で突合コードの上書き処理を行っているが、各処理対象レベルにおいて得られる突合コードの履歴を残し、例えば図１３に示すように、これらの履歴をまとめて表示してもよい。
【００６９】
＜第３の実施の形態＞
上述の第１の実施の形態では処理対象レベルを上げる処理（すなわち、比較する文字列情報の長さを階層単位で徐々に短くしながら、各レコードの一致／不一致を比較する処理）を行うのに対し、上述の本発明の第２の実施の形態では処理対象レベルを下げる処理（すなわち、比較する文字列情報の長さを階層単位で徐々に長くしながら、各レコードの一致／不一致を比較する処理）を行っている。
【００７０】
このように第１及び第２の実施の形態における動作は異なっており、これらの動作によって得られる突合結果も異なっている。上述の第１及び第２の実施の形態における各処理によって得られた異なる突合結果は、例えばデータベース内に含まれる情報の種類や一致／不一致の状況などに応じて、どちらか一方の突合結果がより有用である場合もあり、また、両方の突合結果を比較することで不一致となった要因をより明確に把握できるようになる場合もある。
【００７１】
本第３の実施の形態では、突合処理装置１０が、上述の第１及び第２の実施の形態の両方における処理を行うよう構成し、例えば、これらの両方の処理を並行して行って両方の突合結果を出力することが可能である。この結果、例えば図１４に示すように、本第３の実施の形態における突合処理装置１０は、例えば上述の第１の実施の形態によって得られた突合コード（図７に示す突合コード）と、上述の第２の実施の形態によって得られた突合コード（図１２に示す突合コード）とを各レコードに関連付けて出力することが可能である。なお、上述の第１及び第２の実施の形態の両方によって得られる突合コードと共に、さらに上述の第２の実施の形態で得られる突合コードの履歴（図１３を参照）を表示してもよい。
【００７２】
また、本発明の第３の実施の形態における突合処理装置１０では、例えばユーザによる操作入力部３０からの指示に基づき、上述の第１及び第２の実施の形態における処理を切り替えられるようにしてもよい。
【００７３】
＜実施例＞
本発明に係る突合処理装置１０は、２つのデータベース間の差異を発見することができる。こうした差異は、例えば、本来は同一の情報を持つべき２つのデータベースの一方に含まれているタイプミスやＯＣＲ（Optical Character Recognition：光学文字認識）による読み取りのミスや、データベース管理者やデータ更新時期の違いによって生じたものである。
【００７４】
また、本発明に係る突合処理装置１０が処理対象とするデータベースの各レコードに含まれている階層構造を有する文字列情報は、例えば、数字のみによって構成されていてもよく、あるいは、漢字、仮名、アルファベット、記号などによって構成されていてもよい。さらに、本発明では、文字列情報が階層構造を有することを前提としているが、この階層構造は、住所情報などのように元から階層的に設定されている構造であってもよく、あるいは、突合処理装置１０のユーザが文字列情報に対して独自に設定した階層構造であってもよい。
【００７５】
また、本発明に係る突合処理装置１０が処理対象とするデータベースの種類は特に限定されるものではない。例えば、住所情報を含むデータベース、ネットワークアドレス情報やドメイン情報を含むデータベース、マイナンバーなどの個人情報を含むデータベース、顧客管理情報を含むデータベース、財務会計情報を含むデータベース、商品の在庫情報を含むデータベースなどを始めとした様々な種類のデータベースを処理対象とすることが可能である。
【００７６】
以下では、住所情報を含む台帳データベースと、地図などを表す画像情報に関連付けられて同じく住所情報を含む地図データベースを用意し、本発明の第１の実施の形態における突合処理装置１０によって実際に突合処理を行った実施例について説明する。
【００７７】
この実施例において用意された台帳データベース及び地図データベースには、同一地域の住所情報が同一の格納形式で格納されている。ただし、それぞれのデータベースの管理者及び更新時期などが異なっており、相互のデータベースにおける各レコードは完全には一致していない。また、それぞれのデータベースにおいてレコードの追加や削除が行われた結果、レコード数が異なっていることも考えられる。
【００７８】
各レコードには、階層構造を有する住所情報が文字列情報として格納されている。なお、文字列情報は２０桁の数字の配列であり、最初の３桁は市町村、次の５桁は大字、次の４桁は小字、次の５桁は地番、最後の３桁は枝番にそれぞれ対応している。例えば、文字列情報『２０６００４０５００７７０００３５００２』は、最初の『２０６』が市町村、次の『００４０５』が大字、次の『００７７』が小字、次の『０００３５』が地番、最後の『００２』が枝番を表している。本実施例における突合処理では、この住所情報が持つ階層構造に基づいて、レベル１『市町村、大字、小字、地番、枝番』、レベル２『市町村、大字、小字、地番』、レベル３『市町村、大字、小字』、レベル４『市町村、大字』、レベル５『市町村』の５つの突合レベルを設定している。
【００７９】
本発明の第１の実施の形態における突合処理装置１０により、上記の条件下で実際に突合処理を行った結果を図１５〜図２１に示す。図１５〜図２１には、ユーザによって指定された突合コードが設定されているレコードのみを台帳データベース及び地図データベースのそれぞれから抽出し、表形式で表示画面上に表示した状態が示されている。これらの表示状態は、上述した図８の表示状態に相当するものである。
【００８０】
図１５〜図２１のフィールド『ＦＬＧ』の値『１』は台帳データベース内のレコードであることを表し、値『２』は地図データベース内のレコードであることを表している。また、図１５〜図２１のフィールド『ＫＥＹ１』は各レコードの文字列情報（住所情報）を含み、フィールド『ＣＯＤＥ』は突合コードを含んでいる。
【００８１】
図１５には、突合コード『１０１０１』が設定されているレコードを抽出して表示画面上に表示した状態が図示されている。例えば、図１５のテーブルの１番目及び２番目のレコードは台帳データベース及び地図データベース内の文字列情報『２０６０００２１００００００３５６００１』を含むレコードである。突合コード『１０１０１』が示すように、この文字列情報を含むレコードが台帳データベース及び地図データベースにそれぞれ１個ずつ存在している。
【００８２】
また、図１６には、突合コード『１０２０１』が設定されているレコードを抽出して表示画面上に表示した状態が図示されている。例えば、図１６のテーブルの１〜３番目のレコードは台帳データベース及び地図データベース内の文字列情報『２０６０００２３０００００５４０２０００』を含むレコードである。突合コード『１０２０１』が示すように、この文字列情報を含むレコードが台帳データベースに２個、地図データベースに１個存在している。
【００８３】
また、図１７には、突合コード『１１００１』が設定されているレコードを抽出して表示画面上に表示した状態が図示されている。例えば、図１７のテーブルの１〜１１番目のレコードは台帳データベース及び地図データベース内の文字列情報『２０６００４０５００７７０００３５００２』を含むレコードである。突合コード『１１００１』が示すように、この文字列情報を含むレコードが台帳データベースに１０個、地図データベースに１個存在している。
【００８４】
また、図１８には、突合コード『２０１０１』が設定されているレコードを抽出して表示画面上に表示した状態が図示されている。例えば、図１８のテーブルの１番目のレコードは台帳データベース内の文字列情報『２０６０００２１００００００２３２０００』を含むレコード、２番目のレコードは地図データベース内の文字列情報『２０６０００２１００００００２３２００１』を含むレコードである。突合コード『２０１０１』が示すように、それぞれの文字列情報を含むレコードは他方のデータベース上には存在しないが、レベル２において共通の文字列情報『２０６０００２１００００００２３２』を含むレコードが台帳データベース及び地図データベースにそれぞれ１個ずつ存在している。
【００８５】
また、図１９には、突合コード『２０２０１』が設定されているレコードを抽出して表示画面上に表示した状態が図示されている。例えば、図１９のテーブルの１番目及び２番目のレコードは台帳データベース内の文字列情報『２０６００１０３０００２０００６６０００』を含むレコード、３番目のレコードは地図データベース内の文字列情報『２０６００１０３０００２０００６６００１』を含むレコードである。突合コード『２０２０１』が示すように、それぞれの文字列情報を含むレコードは他方のデータベース上には存在しないが、レベル２において共通の文字列情報『２０６００１０３０００２０００６６』を含むレコードが台帳データベースに２個、地図データベースに１個存在している。
【００８６】
また、図２０には、突合コード『２０４０４』が設定されているレコードを抽出して表示画面上に表示した状態が図示されている。例えば、図２０のテーブルの１〜４番目のレコードは台帳データベース内の文字列情報『２０６００３１８０００１０００１８０００』を含むレコード、５番目のレコードは地図データベース内の文字列情報『２０６００３１８０００１０００１８００８』を含むレコード、６番目のレコードは地図データベース内の文字列情報『２０６００３１８０００１０００１８０１４』を含むレコード、７番目のレコードは地図データベース内の文字列情報『２０６００３１８０００１０００１８０１５』を含むレコード、８番目のレコードは地図データベース内の文字列情報『２０６００３１８０００１０００１８０１６』を含むレコードである。突合コード『２０４０４』が示すように、それぞれの文字列情報を含むレコードは他方のデータベース上には存在しないが、レベル２において共通の文字列情報『２０６００３１８０００１０００１８』を含むレコードが台帳データベース及び地図データベースにそれぞれ４個ずつ存在している。
【００８７】
また、図２１には、突合コード『２１００２』が設定されているレコードを抽出して表示画面上に表示した状態が図示されている。例えば、図２１のテーブルの１〜１０番目のレコードは台帳データベース内の文字列情報『２０６００７０１０１８１０００５１０００』を含むレコード、１１番目のレコードは地図データベース内の文字列情報『２０６００７０１０１８１０００５１００１』を含むレコード、１２番目のレコードは地図データベース内の文字列情報『２０６００７０１０１８１０００５１００２』を含むレコードである。突合コード『２１００２』が示すように、それぞれの文字列情報を含むレコードは他方のデータベース上には存在しないが、レベル２において共通の文字列情報『２０６００７０１０１８１０００５１』を含むレコードが台帳データベースに１０個、地図データベースに２個存在している。
【００８８】
なお、本発明に係る動作によって得られた突合コードは、図１５〜図２１のようなテーブルで表示するだけではなく、他の様々な態様で表示されてもよい。例えば上述した実施例では、地図データベース内の住所情報は地図などを表す画像情報と関連付けられており、表示部４０の表示画面に地図を表示するとともに、突合コードを地図上の対応する位置に重ね合わせて表示したり、不一致となったレコードに対応する地点や不一致となったレベルなどを地図上に色分けして表示したりすることも可能である。
【００８９】
また、図１５〜図２１に示すテーブルには、突合処理によって得られた突合結果を表示する際に、ユーザによるレコードの比較を容易とする特徴が含まれている。以下、突合処理を行った結果を表示するテーブルにおいて、ユーザの視認性及び利便性を向上させるための特徴について説明する。図２２は、本発明の第１〜第３の実施の形態において突合処理によって得られた突合結果とデータベース内のレコードとを表示するためのテーブルの一例において、当該テーブルに含まれる特徴を説明するための図である。なお、図２２は、突合コード『２０２０１』が設定されているレコードを抽出して表示画面上に表示したテーブル（図１８に示すテーブル）の一部（上から６番目までのレコード）を抜き出し、当該テーブルにおいて、ユーザの視認性及び利便性を向上させるための特徴を強調して示したものである。
【００９０】
図２２には、突合コード『２０２０１』を抽出したテーブル（図１９のテーブル）の１〜６番目のレコード（以下、上から順に第１〜第６レコードと呼ぶ）が抜き出されている。図２２のテーブルには、各行にレコードが配置され、各列にレコードに含まれる情報を記載したフィールドが配置されている。各フィールドは左から順に「ＦＬＧ」、「ＫＥＹ１」、「ＤＣＨＩＢＡＮ１」、「ＤＣＨＩＢＡＮ２」、「ＣＯＤＥ」、「ＭＣＨＩＢＡＮ１」、「ＭＣＨＩＢＡＮ２」である。
【００９１】
「ＦＬＧ」フィールドには、レコードが台帳データベース及び地図データベースのどちらに含まれているものであるかを示す情報が表示される。値「１」は台帳データベースを表し、値「２」は地図データベースを表している。「ＫＥＹ１」フィールドには、レコードの文字列情報が表示される。「ＤＣＨＩＢＡＮ１」及び「ＤＣＨＩＢＡＮ２」フィールドには、レコードが台帳データベースに含まれている場合に、それぞれ文字列情報の地番（下８桁〜下４桁までの数字）及び枝番（下３桁〜下１桁までの数字）が表示される。同様に、「ＭＣＨＩＢＡＮ１」及び「ＭＣＨＩＢＡＮ２」フィールドには、レコードが地図データベースに含まれている場合に、それぞれ文字列情報の地番（下８桁〜下４桁までの５桁の数字）及び枝番（下３桁〜下１桁までの３桁の数字）が表示される。「ＣＯＤＥ」フィールドには、本発明に係る突合処理によって得られた突合コードが表示される。
【００９２】
図２２に図示されている第１〜第６レコードのうち、第１〜第３レコードはレベル２において共通の文字列情報『２０６００１０３０００２０００６６』を含み、第１及び第２レコードでは文字列情報の最下層（地番）が『０００』であり、第３レコードでは『００１』である。また、第４〜第６レコードはレベル２において共通の文字列情報『２０６００１０３０００２０００８１』を含み、第４レコードでは文字列情報の最下層（地番）が『０００』であり、第５レコードでは『００１』であり、第６レコードでは『００２』である。また、第１、第２、第５及び第６レコードは台帳データベース内のレコードであり、第３及び第４レコードは地図データベース内のレコードである。
【００９３】
なお、上述のように文字列情報の地番は５桁の数字であるが、図２２のテーブル（及び図２２が基づく図１９のテーブル）の表示では、数字『０』は省略されている。例えば、第１レコードの地番を表す文字列情報『０００６６』であるが、第１レコードの『ＤＣＨＩＢＡＮ１』フィールドには『６６』と表示されている。また、枝番を表す文字列情報が『０００』の場合、図１９のテーブルでは表示そのものが省略されているが、図２２のテーブルでは、説明のため、その対応箇所に『（０）』が挿入されている。
【００９４】
図２２のテーブルは、「ＫＥＹ１」フィールドを基準としたソート表示を行うという特徴を有している。この特徴により、共通の文字列情報を持つレコードが隣接した行に表示され、共通の文字列情報を持つレコード同士を比較する際におけるユーザの視認性を向上させることが可能となる。なお、例えば突合コード『２０２０１』の場合には、台帳データベース内の２つのレコード及び地図データベース内の１つのレコードが１まとまりとなるが、その結果、テーブル全体では、台帳データベース内のレコード（「ＦＬＧ」＝『１』）と、地図データベース内のレコード（「ＦＬＧ」＝『２』）が入れ子になって表示されるという特徴がある。
【００９５】
また、図２２のテーブルは、比較した２つのデータベース（台帳データベース及び地図データベース）のそれぞれのレコード内の文字列情報を異なるフィールドに表示するという特徴を有する。具体的には、各レコードの地番及び枝番が、そのレコードが台帳データベース内のレコードである場合には「ＤＣＨＩＢＡＮ１」及び「ＤＣＨＩＢＡＮ２」に表示され、地図データベース内のレコードである場合には「ＭＣＨＩＢＡＮ１」及び「ＭＣＨＩＢＡＮ２」に表示されるようにする。このように、台帳データベースのレコードに含まれる文字列情報を表示するフィールドと、地図データベースのレコードに含まれる文字列情報を表示するフィールドとをそれぞれ分けることによって、ユーザは、各レコードが台帳データベース及び地図データベースのどちらに含まれているものであるかを即座に判断できるようになる。
【００９６】
また、本発明に係る突合処理の結果として、データベースＡとデータベースＢとにおいて１対１に対応しているレコード（すなわち、上述の例で突合コード『１０１０１』が設定されるレコード）が得られた場合であっても、その突合結果が必ずしも正しいと言えないこともある。そこで、このように１対１に対応していると判断されたレコードに関して、さらに、この突合結果が正しいかどうかを定量的に検証できるようにしてもよい。
【００９７】
１対１に対応していると判断されたレコードに関する突合結果を確認する場合、例えば、比較した２つのデータベース（台帳データベース及び地図データベース）のそれぞれのレコード内に含まれている共通の項目を利用することが可能である。以下、図２３及び図２４を参照しながら説明する。
【００９８】
図２３には、突合コード『１０１０１』を抽出したテーブル（図１５のテーブル）の１〜６番目のレコード（以下、上から順に第１〜第６レコードと呼ぶ）が抜き出されている。ただし、図２３のテーブルには、各レコードに含まれている「面積」フィールドが設定されている。この「面積」フィールドは、台帳データベース及び地図データベース内のそれぞれのレコードに設定されており、「面積」フィールドには、各レコードに格納された住所情報に関連する土地の面積（地図面積）が格納されている。台帳データベース及び地図データベースにおいて１対１に対応しているレコードであるならば、共通の項目である「面積」フィールドの数値（土地面積）も等しいはずである。この関係を利用して、台帳データベース及び地図データベースにおいて１対１に対応していると判断されたレコードについて、さらに「面積」フィールド内の数値を比較し、両者が一致している場合には１対１の突合結果は正しいと判断することによって、突合結果の検証を行うことが可能である。
【００９９】
なお、共通の項目に含まれる情報が等しいか否かを判断する際、例えば数値の差が所定の範囲（例えば、数パーセント）内に収まる場合には、共通の項目に含まれる情報は実質的に等しい（すなわち、１対１の突合結果は正しい）と判断してもよい。この所定の範囲は、ユーザが自由に設定することが可能である。
【０１００】
図２３に図示されている第１〜第６レコードのうち、第１及び第２レコードはレベル１において共通の文字列情報『２０６０００２１００００００３５６００１』を含み、第３及び第４レコードはレベル１において共通の文字列情報『２０６０００２１００００００３５６００２』を含み、第５及び第６レコードはレベル１において共通の文字列情報『２０６０００２１００００００３５６００３』を含む。また、第１、第３及び第６レコードは台帳データベース内のレコードであり、第２、第４及び第５レコードは地図データベース内のレコードである。また、図２３のテーブルでは、レベル１において共通の文字列情報を持つレコードが隣接した行に表示されている。なお、図２３のテーブルは、「ＫＥＹ１」フィールドを基準としてソート表示を行った結果である。
【０１０１】
上述のように、図２３のテーブルには、各レコードの「面積」フィールドが表示されている。例えば、第１及び第２レコードは突合処理において１対１に対応していると判断されたレコードであるが、第１レコードの「面積」フィールド及び第２レコードの「面積」フィールドの数値は共に『９４６』で等しいことから、第１及び第２レコードが１対１に対応しているという突合結果は正しいと判断することができる。また、第３レコードの「面積」フィールドの数値は『１４７０』、第４レコードの「面積」フィールドの数値は『１４５２』であり、両方の数値はほぼ等しいことから、第３及び第４レコードが１対１に対応しているという突合結果は正しいと判断することができる。また、第５レコードの「面積」フィールドの数値は『１６０３』、第６レコードの「面積」フィールドの数値は『８１０』であり、両方の数値は大きく異なることから、第５及び第６レコードが１対１に対応しているという突合結果は誤りであると判断することができる。
【０１０２】
なお、上記では、例えば第３レコードの「面積」フィールドの数値『１４７０』と、第４レコードの「面積」フィールドの数値『１４５２』がほぼ等しいと判断しているが、この判断は、ユーザが自由に設定可能な判断基準に依存する。例えば、両方の数値の差（ここでは『１８』）がどちらか一方の数値又は両方の数値の平均値の５パーセント以内であれば、両方の数値は実質的に等しいと判断する場合には、第３及び第４レコードが１対１に対応しているという突合結果は正しいと判断される。一方、例えば、両方の数値の差（ここでは『１８』）がどちらか一方の数値又は両方の数値の平均値の１パーセント以内であれば、両方の数値は実質的に等しいと判断する場合には、第３及び第４レコードが１対１に対応しているという突合結果は誤りであると判断される。
【０１０３】
なお、１対１に対応していると判断されたレコードに対して上記の検証を行い、その検証結果を各レコードに設定してもよい。例えば、１対１に対応しているという突合結果が誤りであると判断されたレコードにフラグを設定したり、テーブルで表示する際にレコードの色を変えて強調表示したりすることが可能である。
【０１０４】
また、図２４に示すように、「面積」フィールドの数値をプロットした散布図を作成し、突合結果が正しいかどうかをユーザが視覚的に判別できるようにしてもよい。図２４には、１対１に対応していると判断された２つのレコードの「面積」フィールドの数値をＸ座標及びＹ座標とした点が多数プロットされている。具体的には、プロットされた１つの点は、１対１に対応していると判断された１組のレコードのセット（２つのレコード）を表しており、台帳データベース内のレコードの「面積」フィールドの数値をＸ座標とし、地図データベース内のレコードの「面積」フィールドの数値をＹ座標とした点が、散布図内にプロットされている。
【０１０５】
１対１に対応していると判断された２つのレコードの「面積」フィールドの数値がほぼ等しい場合には、プロットされた点は、Ｙ＝Ｘの直線上又はこの直線に近い位置に配置される。したがって、Ｙ＝Ｘの直線から大きく離れた位置にプロットされた点は、誤った突合結果を表しているとみなすことができる。
【０１０６】
なお、図２４に示すような散布図において、例えば、ユーザが設定した判断基準を示す直線を表示してもよく、当該判断基準を超えて突合結果が誤りであると判断される点の色を変えて強調表示してもよい。
【０１０７】
なお、上述の例では、台帳データベース内のレコードと地図データベース内のレコードに共通の項目として「面積」フィールドを利用する場合について説明したが、比較する複数のデータベース内のレコードに設定されている共通の項目であれば、その他の項目を用いてもよい。台帳データベース及び地図データベースの例では、土地の面積のほかに、例えば、その土地で栽培されている作物、その土地の用途を表す地目、その土地の周囲長、などを始めとして、様々な項目を利用することが可能である。また、ここでは台帳データベース及び地図データベースの例を挙げて説明しているが、他の任意の種類のデータデータベースにおいても同様に、比較するデータベース内のレコードに設定されている共通の項目を適宜選択することが可能である。
【産業上の利用可能性】
【０１０８】
本発明は、複数のレコードがそれぞれ格納された複数のデータベースの突合処理を行う技術に適用可能である。また、本発明は、任意の種類のデータが格納されたデータベースを処理対象とすることが可能であり、データベース管理技術全般に適用可能である。
【符号の説明】
【０１０９】
１０  突合処理装置
１１  データベース読み取り部
１２  突合処理部
１３  レコード比較部
１４  突合結果生成部
１５  突合結果出力部
２０  記憶媒体
３０  操作入力部
４０  表示部
【図１】
0006623040.tif 000002
【図２Ａ】
0006623040.tif 000003
【図２Ｂ】
0006623040.tif 000004
【図２Ｃ】
0006623040.tif 000005
【図３】
0006623040.tif 000006
【図４】
0006623040.tif 000007
【図５】
0006623040.tif 000008
【図６】
0006623040.tif 000009
【図７】
0006623040.tif 000010
【図８】
0006623040.tif 000011
【図９】
0006623040.tif 000012
【図１０】
0006623040.tif 000013
【図１１】
0006623040.tif 000014
【図１２】
0006623040.tif 000015
【図１３】
0006623040.tif 000016
【図１４】
0006623040.tif 000017
【図１５】
0006623040.tif 000018
【図１６】
0006623040.tif 000019
【図１７】
0006623040.tif 000020
【図１８】
0006623040.tif 000021
【図１９】
0006623040.tif 000022
【図２０】
0006623040.tif 000023
【図２１】
0006623040.tif 000024
【図２２】
0006623040.tif 000025
【図２３】
0006623040.tif 000026
【図２４】
0006623040.tif 000027