(57)【要約】【課題】  ファイル結合の際に、結合キーの内容が一意でない場合でも、クレンジング処理や名寄せ処理を行うことなく、ファイル結合を行う。【解決手段】  制御部１０２が、ソートキーとして、結合キー項目と、結合キー項目に重複があった場合の優先順位決定のための優先データ項目とを指定し、ソート部１０５はファイル１０３に対して結合キー項目に基づくソートを行い、ファイル１０４に対して結合キー項目に基づくソートを行うとともに、結合キー項目が重複する重複レコードがある場合に、優先データ項目に基づくソートを行って重複レコード間の優先順位付けを行い、優先順位が最上位のレコードが重複レコード間で最初に出現するようにし、マージ部１０８は、ソート後のファイル１０６、１０７のマージを行い、ファイル１０７における重複レコードについては最初に出現するレコードのみをマージの対象とする。【選択図】        図１
2006268545.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ項目からなる複数のレコードを有する第一ファイルと、複数のデータ項目からなる複数のレコードを有する第二ファイルとを結合するファイル結合装置であって、
第一ファイル及び第二ファイルの双方に共通に含まれるいずれかのデータ項目を結合キー項目として指定する結合キー項目指定部と、
第二ファイル内に結合キー項目のデータ内容が重複する重複レコードが存在する場合の重複レコード間の優先順位の決定に用いられるデータ項目を優先データ項目として指定する優先データ項目指定部と、
第二ファイル内に重複レコードが存在する場合に、重複レコードの優先データ項目のデータ内容に基づいて重複レコード間の優先順位を決定するとともに、第一ファイル内のレコードごとに、結合キー項目のデータ内容が一致するレコードを第二ファイル内で検索し、結合キー項目のデータ内容が一致するレコードであって優先順位がより上位にあるレコードを第二ファイルから抽出し、抽出した第二ファイルのレコードを第一ファイル内の結合対象のレコードに結合する結合部とを有することを特徴とするファイル結合装置。
【請求項２】
前記優先データ項目指定部は、
複数のデータ項目を優先データ項目として指定し、
前記結合部は、
第二ファイル内に重複レコードが存在する場合に、重複レコードの複数の優先データ項目のそれぞれのデータ内容に基づいて重複レコード間の優先順位を決定することを特徴とする請求項１に記載のファイル結合装置。
【請求項３】
前記結合部は、
結合キー項目に基づき第一ファイルのソートを行う第一ソート部と、
結合キー項目に基づき第二ファイルのソートを行うとともに、第二ファイル内に重複レコードが存在する場合に、優先データ項目に基づき重複レコード間の優先順位を決定し、優先順位が最上位のレコードがレコード抽出時に最初に出現するように重複レコードを配置する第二ソート部と、
ソート後の第一ファイルのレコードごとに、結合キー項目のデータ内容が一致するレコードをソート後の第二ファイル内で検索し、結合キー項目のデータ内容が一致するレコードであって最初に出現したレコードをソート後の第二ファイルから抽出し、抽出したソート後の第二ファイルのレコードをソート後の第一ファイル内の結合対象のレコードに結合するマージ部とを有することを特徴とする請求項１に記載のファイル結合装置。
【請求項４】
複数のデータ項目からなる複数のレコードを有する第一ファイルと、複数のデータ項目からなる複数のレコードを有する第二ファイルとを結合するファイル結合方法であって、
第一ファイル及び第二ファイルの双方に共通に含まれるいずれかのデータ項目を結合キー項目として指定する結合キー項目指定ステップと、
第二ファイル内に結合キー項目のデータ内容が重複する重複レコードが存在する場合の重複レコード間の優先順位の決定に用いられるデータ項目を優先データ項目として指定する優先データ項目指定ステップと、
第二ファイル内に重複レコードが存在する場合に、重複レコードの優先データ項目のデータ内容に基づいて重複レコード間の優先順位を決定するとともに、第一ファイル内のレコードごとに、結合キー項目のデータ内容が一致するレコードを第二ファイル内で検索し、結合キー項目のデータ内容が一致するレコードであって優先順位がより上位にあるレコードを第二ファイルから抽出し、抽出した第二ファイルのレコードを第一ファイル内の結合対象のレコードに結合する結合ステップとを有することを特徴とするファイル結合方法。
【請求項５】
複数のデータ項目からなる複数のレコードを有する第一ファイルと、複数のデータ項目からなる複数のレコードを有する第二ファイルとの結合をコンピュータに実行させるプログラムであって、
第一ファイル及び第二ファイルの双方に共通に含まれるいずれかのデータ項目を結合キー項目として指定する結合キー項目指定処理と、
第二ファイル内に結合キー項目のデータ内容が重複する重複レコードが存在する場合の重複レコード間の優先順位の決定に用いられるデータ項目を優先データ項目として指定する優先データ項目指定処理と、
第二ファイル内に重複レコードが存在する場合に、重複レコードの優先データ項目のデータ内容に基づいて重複レコード間の優先順位を決定するとともに、第一ファイル内のレコードごとに、結合キー項目のデータ内容が一致するレコードを第二ファイル内で検索し、結合キー項目のデータ内容が一致するレコードであって優先順位がより上位にあるレコードを第二ファイルから抽出し、抽出した第二ファイルのレコードを第一ファイル内の結合対象のレコードに結合する結合処理とをコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数レコードからなるデータファイルの結合を効率的に行うファイル結合技術に関する。
【背景技術】
【０００２】
ファイルの結合を行うシステムにおいて、従来の結合処理では、結合する側の結合キーのデータ内容が一意でない場合、結合結果としては、結合される側のデータが複数レコードとなる（外部結合）。従って、レコードを重複させることなくファイルを結合するために、予め結合するファイルをクレンジングし一意性を確保しておくか、結合の結果のレコードから不要なレコードを除くなどの複雑な処理が必要であった。
【０００３】
この点、レコード結合前にファイルを正規化するか、結合後に結合処理のデータ格納用の待ち行列のデータ数が一定数を超えたとき、データを別に用意したバッファ領域に溜めるようにして、データをバッファ領域から数件まとめて一括して格納することによって、大量データが発生した場合もデータ格納処理の回数を削減することで、処理能力の向上を行う技術がある（例えば、特許文献１）。
【特許文献１】特開平０６−１６８１６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
データベースにデータを投入する際に、予め明細ファイルに（属性情報として）他のファイルを結合して投入データを作成する場合が多い。この時、結合するファイル側の結合キーの内容が一意でない事がある場合、従来は、予め結合するファイルをクレンジングし一意性を確保しておくか、結合の結果のレコードから不要なレコードを除くなどの複雑な処理が必要であった。
【０００５】
この発明は、上記のような問題点を解決することを主な目的としており、ファイル結合を行う処理において、結合するファイル側の結合キーの内容が一意でない場合でも、明細のレコードを重複させないことにより、クレンジング処理や名寄せ処理を省き、高速な結合処理を実現することを主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るファイル結合装置は、
複数のデータ項目からなる複数のレコードを有する第一ファイルと、複数のデータ項目からなる複数のレコードを有する第二ファイルとを結合するファイル結合装置であって、
第一ファイル及び第二ファイルの双方に共通に含まれるいずれかのデータ項目を結合キー項目として指定する結合キー項目指定部と、
第二ファイル内に結合キー項目のデータ内容が重複する重複レコードが存在する場合の重複レコード間の優先順位の決定に用いられるデータ項目を優先データ項目として指定する優先データ項目指定部と、
第二ファイル内に重複レコードが存在する場合に、重複レコードの優先データ項目のデータ内容に基づいて重複レコード間の優先順位を決定するとともに、第一ファイル内のレコードごとに、結合キー項目のデータ内容が一致するレコードを第二ファイル内で検索し、結合キー項目のデータ内容が一致するレコードであって優先順位がより上位にあるレコードを第二ファイルから抽出し、抽出した第二ファイルのレコードを第一ファイル内の結合対象のレコードに結合する結合部とを有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、第二ファイル内の重複レコードに対して優先データ項目に基づいて重複レコード間の優先順位を決定し、ファイル結合の際には、第二ファイル内の重複レコードについては優先順位が上位のレコードのみを抽出して結合するため、クレンジング処理や名寄せ処理を不要とし、このため、高速な結合処理を行うことが可能になる。
【発明を実施するための最良の形態】
【０００８】
実施の形態１．
図１は、本実施の形態に係るファイル結合装置１００の機能要素を示すシステムの構成図である。
【０００９】
図１において、ファイル結合装置１００は、ファイル結合に関する設定情報を入力する設定情報入力部１０１と、設定情報に従ってソート部１０５とマージ部１０８をコントロールする制御部１０２と、指定されたソートキーによりデータのソートを実行するソート部１０５と、指定された複数データのマージ（結合）を行うマージ部１０８とを有する。
【００１０】
結合されるファイル１０３及び結合するファイル１０４は、結合を実行する対象データである。結合されるファイル１０３及び結合するファイル１０４ともに、複数のデータ項目からなる複数のレコードを有するファイルである。結合されるファイル１０３は、例えば、売り上げ明細ファイルであり、結合するファイル１０４は、例えば、顧客マスタファイルである。図２に結合されるファイル１０３の具体例を示し、図３に結合するファイル１０４の具体例を示す。
【００１１】
ソート後の結合されるファイル１０６は、結合されるファイル１０３がソート部１０５にてソートされた結果出力であり、マージ部１０８に入力される。ソート後の結合するファイル１０７は、結合するファイル１０４がソート部１０５にてソートされた結果出力であり、マージ部１０８に入力される。図４にソート後の結合されるファイル１０６の具体例を示し、図５にソート後の結合するファイル１０７の具体例を示す。
【００１２】
結合結果１０９は、ソート後の結合されるファイル１０６とソート後の結合するファイル１０７をマージ部１０８にて結合した結果であり、本システムの結果データである。図６に結合結果の具体例を示す。
【００１３】
結合されるファイル１０３は、第一ファイルの例であり、結合するファイル１０４は、第二ファイルの例である。ソート後の結合されるファイル１０６は、ソート後の第一ファイルの例であり、ソート後の結合するファイル１０７は、ソート後の第二ファイルでの例である。
【００１４】
設定情報入力部１０１が入力する設定情報は制御部１０２に対するユーザの設定内容であり、具体的には、ファイルを結合する際の結合キー項目（項目名）、結合キー項目に重複があった場合の優先順位を決定するための優先データ項目（項目名）、優先データ項目の優先条件（昇順か降順か）などを含む情報である。そして、制御部１０２は、設定情報に基づいて、結合キー項目、優先データ項目、優先データ項目の優先条件をソート部１０５及びマージ部１０８に指定する。
【００１５】
制御部１０２は、結合キー項目指定部及び優先データ項目指定部の例であり、ソート部１０５は第一ソート部及び第二ソート部の例である。また、ソート部１０５とマージ部１０８を合わせたものが結合部の例に相当する。
【００１６】
次に動作について説明する。
【００１７】
まずファイル結合装置１００の稼動前の準備段階として、結合対象（結合されるファイル１０３及び結合するファイル１０４のファイル名）と、それぞれの結合キー項目（項目名）と、結合するファイル１０４の結合キー項目のデータが重複していた場合に優先するレコードを決定するための優先データ項目（項目名）を１つと優先条件（大きい方を優先するか小さい方を優先するか）を含む設定情報を設定情報入力部１０１がユーザから入力する。
【００１８】
次に、設定情報入力部１０１から制御部１０２に設定情報が渡され、制御部１０２は、ソート部１０５に対してソート対象ファイルとソートキーを指定し、ソート部１０５にソートを実行させる。この時、制御部１０２は、結合されるファイル１０３に対するソートキーとして“結合キー項目”のみを指定し、結合するファイル１０４に対するソートキーとしては“結合キー項目”と“優先データ項目”の双方を指定する。また、結合ファイル１０４に対しては、“優先条件”も指定する。ソート部１０５は、結合キー項目に基づいて結合するファイル１０４のソートを行うともに、結合キー項目が重複するレコードが存在する場合は、優先データ項目と優先条件に基づいてソートを行うことにより、重複するレコード間の優先順位を決定する。そして、この優先順位付けにより、優先順位の最上位のレコードがマージ部１０８におけるレコード抽出の際に重複レコード間で最初に出現することになる。なお、ソート部１０５のソート動作自体は、従来の技術と同様である。
【００１９】
また、制御部１０２は、両方のファイルのソート完了後、マージ部１０８に“結合キー項目”と“優先データ項目”の双方を指定する。
【００２０】
図７は本実施の形態のマージ部１０８による結合処理手順を示すフローチャートである。
【００２１】
マージ部１０８は、先ず、ソート後の結合されるファイル１０６とソート後の結合するファイル１０７を１レコードずつ入力する（処理Ｓ１２１、Ｓ１２２）。最初に１レコードずつ入力された時点では、“前回読込みレコードの情報”は無いので、“前回読込みレコードの情報”との比較は偽である（処理Ｓ１２３）。
【００２２】
次に入力済みの双方のレコードを結合キーによってマッチングをとり（処理Ｓ１２４）、一致していれば、双方のデータを結合したレコードを結合結果１０９に書き出し（処理Ｓ１２５）、ソートされた結合するファイル１０７を１レコード入力し（処理Ｓ１２１）、一致していなければ、ソートされた結合するファイル１０７を１レコード入力し（処理Ｓ１２２）、入力済みの双方のレコードを結合キーによってマッチングをとる（処理Ｓ１２４）。これをソートされた結合されるファイル１０６の全てのレコードを処理するまで繰り返す。
【００２３】
ここで、結合するファイル１０７の結合キーの内容が前回入力レコードと同じだった場合、結合するファイル１０７は“優先データ項目”においてもソートされているため、前回入力レコードが優先される結合対象レコードと判断する事ができる。これより、結合キーの内容が変化したかどうかを判断する（処理Ｓ１２３）事で、結合キーの内容が変化するまで結合するファイル１０７の入力を繰り返す事でマッチング処理を省略可能となる。また、一旦、重複内容とも結合したレコードを結合結果に書き出した後に改めて優先順位判定を実行する処理に比して、高速に結果を得る事が可能となる。
【００２４】
次に、図２〜図６のファイル例を用いて、動作を具体的に説明する。
【００２５】
図２は、結合されるファイル１０３の一例を示す。制御部１０２は、ソート部１０５に対して、結合されるファイル１０３のソートキーとして結合キー項目を指定する。ここで、結合キー項目は、図２のうちの“氏名”と“住所”の項目を指定する。ソート部１０５では、図２の結合されるファイル１０３を“氏名”と“住所”の項目に基づいてソートし、図４のソート後の結合されるファイル１０６が得られる。
【００２６】
図３は、結合するファイル１０４の一例を示す。図３では、氏名“かきくけこ”及び住所“東京都杉並区”に対してメンバＩＤが“１００２”と“１０２０５”の二つがが存在する。これは、同一人物が複数回ユーザ登録を実施し異なるＩＤを持つような場合である。制御部１０２は、ソート部１０５に対して、結合するファイル１０４のソートキーとして結合キー項目と優先データ項目を指定し、また、優先条件を指定する。ここで、結合キー項目として、図３のうちの“氏名”と“住所”の項目を指定し、優先データ項目として“登録日”を指定し、優先条件として降順（新しい日付を優先する）を指定する。ソート部１０５では、図３の結合するファイル１０４を“氏名”と“住所”の項目に基づいてソートするとともに、氏名“かきくけこ”及び住所“東京都杉並区”を有する二つの重複レコードに対しては、優先データ項目である“登録日”に基づいてソートする。この結果、図５のソート後の結合するファイル１０７が得られる。
【００２７】
これらソート後の結合されるファイル１０６とソート後の結合するファイル１０７に対するマージ部１０８の処理は、以下のようになる。
【００２８】
処理Ｓ１２１において、ソート後の結合されるファイル１０６の第１レコードを読み込み、処理Ｓ１２２において、ソート後の結合するファイル１０７の第１レコードを読み込み、処理Ｓ１２３において、前回読込みレコードの結合キー項目の内容と同じか否かを判断する。
【００２９】
処理Ｓ１２３においてＮｏなので（前回読み込みレコード無し）、処理Ｓ１２４において、両レコードの結合キー項目の内容が一致しているか否かを判断し、ＹＥＳなので（氏名＝あいうえお、住所＝東京都杉並区）、処理Ｓ１２５において、レコードを結合し、結合結果に書き出す。
【００３０】
そして、処理Ｓ１２６において、結合されるファイルに未読レコードは残っているか否かを判断し、ＹＥＳなので、処理Ｓ１２１に戻る。
【００３１】
次に、処理Ｓ１２１において、ソート後の結合されるファイル１０６の第２レコードを読み込み、処理Ｓ１２２において、ソート後の結合するファイル１０７の第１レコードを読み込み、処理Ｓ１２３において、前回読込みレコードの結合キー項目の内容と同じか否かを判断する。
【００３２】
処理Ｓ１２３においてＮＯなので（前回読み込みレコード無し）、処理Ｓ１２４において、両レコードの結合キー項目の内容が一致しているか否かを判断し、ＹＥＳなので（氏名＝あいうえお、住所＝東京都杉並区）、処理Ｓ１２５において、レコードを結合し、結合結果に書き出す。
【００３３】
次に、処理Ｓ１２１において、ソート後の結合されるファイル１０６の第３レコードを読み込み、処理Ｓ１２２において、ソート後の結合するファイル１０７の第１レコードを読み込み、処理Ｓ１２３において、前回読込みレコードの結合キー項目の内容と同じか否かを判断する。
【００３４】
処理Ｓ１２３においてＮＯなので（前回読み込みレコード無し）、処理Ｓ１２４において、両レコードの結合キー項目の内容が一致しているか否かを判断し、ＮＯなので（ソート後の結合されるファイル１０６の第３レコードの氏名＝かきくけこ、住所＝東京都杉並区、ソート後の結合するファイル１０７の第１レコードの氏名＝あいうえお、住所＝東京都杉並区）、処理Ｓ１２２において、ソート後の結合するファイル１０７の第２レコードを読み込み、処理Ｓ１２３において、前回読込みレコードの結合キー項目の内容と同じか否かを判断する。
【００３５】
処理Ｓ１２３においてＮＯなので（氏名＝かきくけこ、住所＝東京都杉並区）、処理Ｓ１２４において、両レコードの結合キー項目の内容が一致しているか否かを判断し、ＹＥＳなので（氏名＝かきくけこ、住所＝東京都杉並区）、処理Ｓ１２５において、レコードを結合し、結合結果に書き出す。
【００３６】
次に、処理Ｓ１２１において、ソート後の結合されるファイル１０６の第４レコードを読み込み、処理Ｓ１２２において、ソート後の結合するファイル１０７の第１レコードを読み込み、処理Ｓ１２３において、前回読込みレコードの結合キー項目の内容と同じか否かを判断する。
【００３７】
処理Ｓ１２３においてＮＯなので（前回読み込みレコード無し）、処理Ｓ１２４において、両レコードの結合キー項目の内容が一致しているか否かを判断し、ＮＯなので（ソート後の結合されるファイル１０６の第４レコードの氏名＝かきくけこ、住所＝東京都杉並区、ソート後の結合するファイル１０７の第１レコードの氏名＝あいうえお、住所＝東京都杉並区）、処理Ｓ１２２において、ソート後の結合するファイル１０７の第２レコードを読み込み、処理Ｓ１２３において、前回読込みレコードの結合キー項目の内容と同じか否かを判断する。
【００３８】
処理Ｓ１２３においてＮＯなので（氏名＝かきくけこ、住所＝東京都杉並区）、処理Ｓ１２４において、両レコードの結合キー項目の内容が一致しているか否かを判断し、ＹＥＳなので（氏名＝かきくけこ、住所＝東京都杉並区）、処理Ｓ１２５において、レコードを結合し、結合結果に書き出す。
【００３９】
次に、処理Ｓ１２１において、ソート後の結合されるファイル１０６の第５レコードを読み込み、処理Ｓ１２２において、ソート後の結合するファイル１０７の第１レコードを読み込み、処理Ｓ１２３において、前回読込みレコードの結合キー項目の内容と同じか否かを判断する。
【００４０】
処理Ｓ１２３においてＮＯなので（前回読み込みレコード無し）、処理Ｓ１２４において、両レコードの結合キー項目の内容が一致しているか否かを判断し、ＮＯなので（ソート後の結合されるファイル１０６の第５レコードの氏名＝かきくけこ、住所＝東京都杉並区、ソート後の結合するファイル１０７の第１レコードの氏名＝あいうえお、住所＝東京都杉並区）、処理Ｓ１２２において、ソート後の結合するファイル１０７の第２レコードを読み込み、処理Ｓ１２３において、前回読込みレコードの結合キー項目の内容と同じか否かを判断する。
【００４１】
処理Ｓ１２３においてＮＯなので（氏名＝かきくけこ、住所＝東京都杉並区）、処理Ｓ１２４において、両レコードの結合キー項目の内容が一致しているか否かを判断し、ＹＥＳなので（氏名＝かきくけこ、住所＝東京都杉並区）、処理Ｓ１２５において、レコードを結合し、結合結果に書き出す。
【００４２】
同様にして、処理Ｓ１２１において、ソート後の結合されるファイル１０６の第ｘレコードを読み込み（氏名＝さしすせそ、住所＝神奈川県横浜）、処理Ｓ１２２において、ソート後の結合するファイル１０７の第１レコードを読み込み、処理Ｓ１２３において、前回読込みレコードの結合キー項目の内容と同じか否かを判断する。処理Ｓ１２３においてＮＯなので（前回読み込みレコード無し）処理Ｓ１２４において、両レコードの結合キー項目の内容が一致しているか否かを判断し、ＮＯなので（ソート後の結合されるファイル１０６の第ｘレコードの氏名＝さしすせそ、住所＝神奈川県横浜、ソート後の結合するファイル１０７の第１レコードの氏名＝あいうえお、住所＝東京都杉並区）、処理Ｓ１２２において、ソート後の結合するファイル１０７の第２レコードを読み込み、処理Ｓ１２３において、前回読込みレコードの結合キー項目の内容と同じか否かを判断する。
【００４３】
処理Ｓ１２３においてＮＯなので（氏名＝かきくけこ、住所＝東京都杉並区）、処理Ｓ１２４において、両レコードの結合キー項目の内容が一致しているか否かを判断し、ＮＯなので（ソート後の結合されるファイル１０６の第ｘレコードの氏名＝さしすせそ、住所＝神奈川県横浜、ソート後の結合するファイル１０７の第２レコードの氏名＝かきくけこ、住所＝東京都杉並区）、処理Ｓ１２２において、ソート後の結合するファイル１０７の第３レコードを読み込み、処理Ｓ１２３において、前回読込みレコードの結合キー項目の内容と同じか否かを判断する。
【００４４】
処理Ｓ１２３においてＹＥＳなので（氏名＝かきくけこ、住所＝東京都杉並区）、処理Ｓ１２２において、ソート後の結合するファイル１０７の第４レコードを読み込み、以下上記と同様の処理を繰り返して、ソート後の結合されるファイル１０６とソート後の結合するファイル１０７をマージして、図６に示す結合結果を得る。
【００４５】
従来のファイル結合方法では、メンバＩＤを結合キー項目とし、結合した後に氏名と住所などで名寄せ処理を実施するという後処理が必要である。しかし、本実施の形態では、制御部１０２は、結合するファイル１０４に対するソートキーとして“結合キー項目”と“優先データ項目”の双方を指定し、ソート部１０５では、結合キー項目が重複したレコード間の優先順位付けを“優先データ項目”に従って行う。このため、氏名と住所を結合キー項目とし、予め優先データ項目として登録日を指定しておく事で、最新の顧客情報と結合された結果を高速に得る事が可能となる。
【００４６】
このように、本実施の形態に係るファイル結合装置は、複数ファイルを結合キーの内容のつき合わせにより結合する処理において、結合キーとして利用する項目の情報と、結合の優先条件として利用する項目の情報と、結合の優先条件の情報を設定可能なインタフェースを備え、結合キーと優先条件として利用する項目をキーとして結合対象ファイルをソートする手段と、ソートされたファイル同士を結合キーでマージする際に内容が重複したレコードが存在する場合に結合の優先条件に従って結合すべきレコードをマージする手段を備えたことを特徴とする。
【００４７】
すなわち、ソートキーとして、結合キー項目と、結合キー項目に重複があった場合の優先順位決定のための優先データ項目とを指定し、ソート処理において、ファイル１０３に対して結合キー項目に基づくソートを行い、ファイル１０４に対して結合キー項目に基づくソートを行うとともに、結合キー項目が重複する重複レコードがある場合に、優先データ項目に基づくソートを行って重複レコード間の優先順位付けを行い、優先順位が最上位のレコードが重複レコード間で最初に出現するようにし、マージ処理において、ソート後のファイル１０６、１０７のマージを行い、ファイル１０７における重複レコードについては最初に出現するレコードのみを抽出してマージの対象とすることを特徴とする。
【００４８】
以上のように、結合するファイルにおいて結合キー項目のデータが重複していた場合に優先するレコードを決定するための優先データ項目（項目名）と優先条件（大きい方を優先するか小さい方を優先するか）を設定しておく事により、重複データの複数レコードのうち結合時に優先するレコードを最初に出現するようにソートしておく事ができ、結合時に、最初にマッチングしたレコードを結合対象と判断できる。これにより、結合するファイルにおいて結合キー項目のデータが重複していた場合でも高速な結合を実現できる。
【００４９】
実施の形態２．
以上の実施の形態１では、優先データ項目を一つとしていたが、次に優先データ項目が複数存在する例を示す。
【００５０】
図８は本実施の形態の結合するファイル１０４ａ及び１０４ｂの一例を示す図である。図８のように、同一人物が複数回ユーザ登録を実施し異なるＩＤを持つような顧客マスタが複数有る場合、実施の形態１の方法では、同一の登録日に同一顧客が登録されていた場合は、どちらのレコードを優先するかの判断基準が明確ではない。本実施の形態では、複数の優先データ項目を指定可能とする事で、登録日が同一ならば店舗ＩＤが小さい方を優先するような条件設定が可能となる。
【００５１】
この結果、図８に示すような二つの結合するファイルが存在する場合でも、売り上げ明細などの結合されるファイルとスムーズに結合することができる。
【００５２】
このように、本実施の形態に係るファイル結合装置は、複数ファイルを結合キーの内容のつき合わせにより結合する処理において、結合キーとして利用する項目の情報と、結合の優先条件として利用する複数の項目の情報と、優先条件として利用するそれぞれの項目の優先条件の情報を設定可能なインタフェースを備え、結合キーと優先条件として利用する項目をキーとして結合対象ファイルをソートする手段と、ソートされたファイル同士を結合キーでマージする際に、内容が重複したレコードが存在する場合に結合の優先条件項目が先に出現したレコードをマージする手段を備えたことを特徴とする。
【００５３】
以上のように、結合するファイルにおいて結合キー項目のデータが重複していた場合に優先するレコードを決定するための優先データ項目（項目名）と優先条件（大きい方を優先するか小さい方を優先するか）を複数設定しておく事により、重複データの複数レコードのうち結合時に優先するレコードを最初に出現するようにソートしておく事ができ、結合時に、最初にマッチングしたレコードを結合対象と判断できる。これにより、結合するファイルにおいて結合キー項目のデータが重複していた場合でも高速な結合を実現できる。
【００５４】
前述した各実施の形態で、ファイル結合装置１００は、コンピュータで実現できるものである。
【００５５】
図示していないが、ファイル結合装置１００は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えている。
【００５６】
例えば、ＣＰＵは、バスを介して、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、フラッシュメモリ、通信ボード、表示装置、Ｋ／Ｂ（キーボード）、マウス、ＦＤＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＣＤＤ（コンパクトディスクドライブ）、磁気ディスク装置、光ディスク装置、プリンタ装置、スキャナ装置等と接続可能である。
【００５７】
ＲＡＭは、揮発性メモリの一例である。ＲＯＭ、フラッシュメモリ、ＦＤＤ、ＣＤＤ、磁気ディスク装置、光ディスク装置は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
【００５８】
前述した各実施の形態のファイル結合装置１００が扱うデータや情報は、記憶装置あるいは記憶部に保存され、ファイル結合装置１００の各部により、記録され読み出されるものである。
【００５９】
磁気ディスク装置には、オペレーティングシステム（ＯＳ）、ウィンドウシステム、プログラム群、ファイル群（データベース）が記憶されている。
【００６０】
プログラム群は、ＣＰＵ、ＯＳ、ウィンドウシステムにより実行される。
【００６１】
上記ファイル結合装置１００の各部は、一部或いはすべてコンピュータで動作可能なプログラムにより構成しても構わない。或いは、ＲＯＭに記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェア或いは、ハードウェア或いは、ソフトウェアとハードウェアとファームウェアとの組み合わせで実施されても構わない。
【００６２】
上記プログラム群には、実施の形態の説明において「〜部」として説明した処理をＣＰＵに実行させるプログラムが記憶される。これらのプログラムは、例えば、Ｃ言語やＨＴＭＬやＳＧＭＬやＸＭＬなどのコンピュータ言語により作成される。
【００６３】
また、上記プログラムは、磁気ディスク装置、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ）、光ディスク、ＣＤ（コンパクトディスク）、ＭＤ（ミニディスク）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のその他の記録媒体に記憶され、ＣＰＵにより読み出され実行される。
【図面の簡単な説明】
【００６４】
【図１】ファイル結合装置の構成例を示す図。
【図２】結合されるファイルの例を示す図。
【図３】結合するファイルの例を示す図。
【図４】ソート後の結合されるファイルの例を示す図。
【図５】ソート後の結合するファイルの例を示す図。
【図６】結合結果の例を示す図。
【図７】マージ処理の例を示す図。
【図８】結合するファイルの例を示す図。
【符号の説明】
【００６５】
１００  ファイル結合装置、１０１  設定情報入力部、１０２  制御部、１０３  結合されるファイル、１０４  結合するファイル、１０５  ソート部、１０６  ソート後の結合されるファイル、１０７  ソート後の結合するファイル、１０８  マージ部、１０９  結合結果。
【図１】
2006268545.tif 000003
【図２】
2006268545.tif 000004
【図３】
2006268545.tif 000005
【図４】
2006268545.tif 000006
【図５】
2006268545.tif 000007
【図６】
2006268545.tif 000008
【図７】
2006268545.tif 000009
【図８】
2006268545.tif 000010