(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-01
(45)【発行日】2024-07-09
(54)【発明の名称】統合装置、データテーブル統合方法、プログラム
(51)【国際特許分類】
G06F 16/22 20190101AFI20240702BHJP
【FI】
G06F16/22
(21)【出願番号】P 2022522413
(86)(22)【出願日】2020-05-13
(86)【国際出願番号】 JP2020019121
(87)【国際公開番号】W WO2021229724
(87)【国際公開日】2021-11-18
【審査請求日】2022-11-01
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】横山 晴道
【審査官】原 秀人
(56)【参考文献】
【文献】米国特許第05664172(US,A)
【文献】特開平09-325888(JP,A)
【文献】的野 晃整 外,範囲マージ結合:読み飛し可能なB+木間結合アルゴリズム,第2回データ工学と情報マネジメントに関するフォーラム-DEIM 2010-論文集 [online],日本,電子情報通信学会データ工学研究専門委員会,2010年05月25日,pp. 1-8
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
少なくとも大小比較のできるデータ要素を一つの行の情報として含む2つのデータテーブルのうちの第一データテーブルのデータ要素それぞれがユニークであるかを判定し、 前記2つのデータテーブルのうちの一方のデータテーブルを前記第一データテーブルとして定義して前記第一データテーブルのデータ要素それぞれがユニークであるかを判定した結果、当該第一データテーブルのデータ要素それぞれがユニークでない場合、前記2つのデータテーブルのうちの他方のデータテーブルを前記第一データテーブルとして新たに定義して前記第一データテーブルのデータ要素それぞれがユニークであるかを判定するユニーク判定手段と、
前記第一データテーブルのデータ要素それぞれがユニークである場合には、前記2つのデータテーブルのうちの第二データテーブルの各行のデータ要素と前記第一データテーブルの各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行って、前記昇順ソートに適合するように前記第二データテーブルの行を前記昇順ソート後の前記第一データテーブルの最下行に加えることのできる下限位置を特定する位置特定手段と、
前記第二データテーブルの行のデータ要素と、当該行のデータ要素を用いて特定した前記昇順ソート後の前記第一データテーブルにおける前記下限位置の前記昇順ソートにおける次の行のデータ要素とが一致する場合に、それらデータ要素を示す統合対象行を、前記第二データテーブルと前記第一データテーブルとにおいて特定し、少なくともそれら前記第二データテーブルと前記第一データテーブルとの前記統合対象行を統合した統合データテーブルを生成する統合手段と、
を備える統合装置。
【請求項2】
前記統合手段は、前記第二データテーブルの行のデータ要素と、当該行のデータ要素を用いて特定した前記昇順ソート後の前記第一データテーブルにおける前記下限位置の前記昇順ソートにおける次の行のデータ要素とが一致しない場合には、当該第二データテーブルの行を、
前記第一データテーブルにおける前記下限位置の前記昇順ソートにおける次の行と統合せずに、前記統合データテーブルにマージする
請求項1に記載の統合装置。
【請求項3】
前記統合手段は、前記第二データテーブルの行のデータ要素と、当該行のデータ要素を用いて特定した前記昇順ソート後の前記第一データテーブルにおける前記下限位置の前記昇順ソートにおける次の行のデータ要素とが一致しない場合には、当該第一データテーブルにおける前記下限位置の前記昇順ソートにおける次の行を、前記第二データテーブルの行と統合せずに、前記統合データテーブルにマージする
請求項1または請求項2に記載の統合装置。
【請求項4】
二分探索を用いて前記大小比較を行う請求項1から請求項3の何れか一項に記載の統合装置。
【請求項5】
少なくとも大小比較のできるデータ要素を一つの行の情報として含む2つのデータテーブルのうちの第一データテーブルのデータ要素それぞれがユニークであるかを判定し、
前記2つのデータテーブルのうちの一方のデータテーブルを前記第一データテーブルとして定義して前記第一データテーブルのデータ要素それぞれがユニークであるかを判定した結果、当該第一データテーブルのデータ要素それぞれがユニークでない場合、前記2つのデータテーブルのうちの他方のデータテーブルを前記第一データテーブルとして新たに定義して前記第一データテーブルのデータ要素それぞれがユニークであるかを判定し、
前記第一データテーブルのデータ要素の配列において当該データ要素それぞれがユニークである場合には、前記2つのデータテーブルのうちの第二データテーブルの各行のデータ要素と前記第一データテーブルの各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行って、前記第二データテーブルの各行のデータ要素についての前記昇順ソート後の前記第一データテーブルの各行のデータ要素の配列における下限位置を特定し、
前記第二データテーブルの行のデータ要素と、当該行のデータ要素を用いて特定した前記下限位置であって前記昇順ソート後の前記第一データテーブルの配列における前記下限位置を持つ行のデータ要素とが一致する統合対象行を、前記第二データテーブルと前記第一データテーブルとにおいて特定し、少なくともそれら前記第二データテーブルと前記第一データテーブルとの前記統合対象行を統合した統合データテーブルを生成する
データテーブル統合方法。
【請求項6】
統合装置のコンピュータを、
少なくとも大小比較のできるデータ要素を一つの行の情報として含む2つのデータテーブルのうちの第一データテーブルのデータ要素それぞれがユニークであるかを判定し、 前記2つのデータテーブルのうちの一方のデータテーブルを前記第一データテーブルとして定義して前記第一データテーブルのデータ要素それぞれがユニークであるかを判定した結果、当該第一データテーブルのデータ要素それぞれがユニークでない場合、前記2つのデータテーブルのうちの他方のデータテーブルを前記第一データテーブルとして新たに定義して前記第一データテーブルのデータ要素それぞれがユニークであるかを判定するユニーク判定手段、
前記第一データテーブルのデータ要素の配列において当該データ要素それぞれがユニークである場合には、前記2つのデータテーブルのうちの第二データテーブルの各行のデータ要素と前記第一データテーブルの各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行って、前記第二データテーブルの各行のデータ要素についての前記昇順ソート後の前記第一データテーブルの各行のデータ要素の配列における下限位置を特定する位置特定手段、
前記第二データテーブルの行のデータ要素と、当該行のデータ要素を用いて特定した前記下限位置であって前記昇順ソート後の前記第一データテーブルの配列における前記下限位置を持つ行のデータ要素とが一致する統合対象行を、前記第二データテーブルと前記第一データテーブルとにおいて特定し、少なくともそれら前記第二データテーブルと前記第一データテーブルとの前記統合対象行を統合した統合データテーブルを生成する統合手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、統合装置、データテーブル統合方法、プログラムに関する。
【背景技術】
【0002】
少なくとも大小比較のできるデータ要素を一つの行の情報として含む2つのデータテーブルを統合して新たなデータテーブルを生成する技術が存在する。
【0003】
関連する技術が特許文献1に開示されている。特許文献1には、アウタジョイン(外結合)処理を行って、新たな出力テーブルを生成する技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述した統合データテーブルの生成において、処理量を軽減できる技術が求められていた。
【0006】
そこでこの発明は、上述課題を解決する統合装置、データテーブル統合方法、プログラムを提供することを目的としている。
【課題を解決するための手段】
【0007】
本発明の第1の態様によれば、統合装置は、少なくとも大小比較のできるデータ要素を一つの行の情報として含む2つのデータテーブルのうちの第一データテーブルのデータ要素それぞれがユニークであるかを判定するユニーク判定手段と、前記第一データテーブルのデータ要素それぞれがユニークである場合には、前記2つのデータテーブルのうちの第二データテーブルの各行のデータ要素と前記第一データテーブルの各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行って、前記昇順ソートに適合するように前記第二データテーブルの行を前記昇順ソート後の前記第一データテーブルの最下行に加えることのできる下限位置を特定する位置特定手段と、前記第二データテーブルの行のデータ要素と、当該行のデータ要素を用いて特定した前記昇順ソート後の前記第一データテーブルにおける前記下限位置の前記昇順ソートにおける次の行のデータ要素とが一致する場合に、それらデータ要素を示す統合対象行を、前記第二データテーブルと前記第一データテーブルとにおいて特定し、少なくともそれら前記第二データテーブルと前記第一データテーブルとの前記統合対象行を統合した統合データテーブルを生成する統合手段と、を備える。
【0008】
本発明の第2の態様によれば、データテーブル統合方法は、少なくとも大小比較のできるデータ要素を一つの行の情報として含む2つのデータテーブルのうちの第一データテーブルのデータ要素それぞれがユニークであるかを判定し、前記第一データテーブルのデータ要素の配列において当該データ要素それぞれがユニークである場合には、前記2つのデータテーブルのうちの第二データテーブルの各行のデータ要素と前記第一データテーブルの各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行って、前記第二データテーブルの各行のデータ要素についての前記昇順ソート後の前記第一データテーブルの各行のデータ要素の配列における下限位置を特定し、前記第二データテーブルの行のデータ要素と、当該行のデータ要素を用いて特定した前記下限位置であって前記昇順ソート後の前記第一データテーブルの配列における前記下限位置を持つ行のデータ要素とが一致する統合対象行を、前記第二データテーブルと前記第一データテーブルとにおいて特定し、少なくともそれら前記第二データテーブルと前記第一データテーブルとの前記統合対象行を統合した統合データテーブルを生成する。
【0009】
本発明の第3の態様によれば、プログラムは、統合装置のコンピュータを、少なくとも大小比較のできるデータ要素を一つの行の情報として含む2つのデータテーブルのうちの第一データテーブルのデータ要素それぞれがユニークであるかを判定するユニーク判定手段、前記第一データテーブルのデータ要素の配列において当該データ要素それぞれがユニークである場合には、前記2つのデータテーブルのうちの第二データテーブルの各行のデータ要素と前記第一データテーブルの各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行って、前記第二データテーブルの各行のデータ要素についての前記昇順ソート後の前記第一データテーブルの各行のデータ要素の配列における下限位置を特定する位置特定手段、前記第二データテーブルの行のデータ要素と、当該行のデータ要素を用いて特定した前記下限位置であって前記昇順ソート後の前記第一データテーブルの配列における前記下限位置を持つ行のデータ要素とが一致する統合対象行を、前記第二データテーブルと前記第一データテーブルとにおいて特定し、少なくともそれら前記第二データテーブルと前記第一データテーブルとの前記統合対象行を統合した統合データテーブルを生成する統合手段、として機能させる。
【発明の効果】
【0010】
本発明によれば、統合データテーブルの生成において、処理量を軽減することができる。
【図面の簡単な説明】
【0011】
【
図1】本実施形態による統合装置を備えた情報処理システムの構成を示す図である。
【
図2】本実施形態による統合装置のハードウェア構成を示す図である。
【
図3】本実施形態による統合装置の機能ブロック図である。
【
図4】本実施形態による統合データテーブルの生成例を示す図である。
【
図5】本実施形態による統合対象の2つのデータテーブルの例を示す第一の図である。
【
図6】本実施形態による統合装置の処理フローを示す図である。
【
図7】本実施形態による統合装置の処理概要を示す第一の図である。
【
図8】本実施形態による統合対象の2つのデータテーブルの例を示す第二の図である。
【
図9】本実施形態による統合装置の処理概要を示す第二の図である。
【
図10】本実施形態による統合装置の最小構成を示す図である。
【
図11】本実施形態による最小構成による統合装置の処理フローを示す図である。
【発明を実施するための形態】
【0012】
以下、本発明の一実施形態による統合装置を図面を参照して説明する。
図1は同実施形態による統合装置を備えた情報処理システムの構成を示す図である。
図1が示すように、情報処理システム100は、統合装置1と端末2とを通信ネットワークにより接続して構成されてよい。統合装置1は、あらかじめ自装置などで記憶する少なくとも2つのデータテーブルを、1つのデータテーブルへと統合した統合データテーブルを生成する。端末2は統合装置1を操作するユーザが利用する。統合装置1と端末2とはそれぞれコンピュータである。
【0013】
図2は統合装置のハードウェア構成を示す図である。
図2で示すように、統合装置1は、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、データベース104、通信モジュール105等の各ハードウェアを備えたコンピュータである。なお、端末2も、同様のハードウェアを備えたコンピュータである。
【0014】
図3は統合装置の機能ブロック図である。
統合装置1は、統合データテーブル生成プログラムを実行する。これにより統合装置1は、制御部11、ソート部12、ユニーク判定部13、位置特定部14、統合部15の各機能を発揮する。
【0015】
制御部11は、統合装置1の各機能部を制御する。
ソート部12は、少なくとも大小比較のできるデータ要素を一つの行の情報として含むデータテーブルの各行を、当該行に含まれるデータ要素に基づいてソートする。
【0016】
ユニーク判定部13は、少なくとも大小比較のできるデータ要素を一つの行の情報として含む2つのデータテーブルのうちの第一データテーブルのデータ要素それぞれがユニークであるかを判定する。
【0017】
位置特定部14は、第一データテーブルのデータ要素それぞれがユニークである場合には、2つのデータテーブルのうちの第二データテーブルの各行のデータ要素と第一データテーブルの各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行う。位置特定部14は、その大小比較を行って、昇順ソートに適合するように第二データテーブルの行を昇順ソート後の第一データテーブルの最下行に加えることのできる下限位置を特定する。
【0018】
統合部15は、第二データテーブルの行のデータ要素と、当該行のデータ要素を用いて特定した昇順ソート後の第一データテーブルにおける下限位置の昇順ソートにおける次の行のデータ要素とが一致する場合に、それらデータ要素を示す統合対象行を、第二データテーブルと第一データテーブルとにおいて特定する。統合部15は、少なくともそれら第二データテーブルと第一データテーブルとの統合対象行を統合した統合データテーブルを生成する。
【0019】
図4は統合データテーブルの生成例を示す図である。
図4で示す統合データテーブルの生成例では、購入履歴テーブル41と、購入者テーブル42の2つのデータテーブルを統合した統合データテーブル43を生成する例を示している。購入履歴テーブル41と、購入者テーブル42の2つのデータテーブルは、それぞれ大小比較のできるデータ要素として購入者IDを、各行のデータ要素として含んでいる。なお、購入履歴テーブル41は2つのデータテーブルのうちの第一データテーブル、購入者テーブル42を2つのデータテーブルのうちの第二データテーブルと見做すことができる。購入者テーブル42を2つのデータテーブルのうちの第一データテーブル、購入履歴テーブル41を2つのデータテーブルのうちの第二データテーブルと見做してもよい。
【0020】
購入履歴テーブル41は、購入者ID、その購入者IDが示す購入者の購入した商品の名称(商品名)、商品の価格、購入日を示す日付、を紐づけたデータテーブルである。購入者テーブル42は、購入者ID、その購入者IDの購入者の名前、年齢、を紐づけたデータテーブルである。購入者IDに基づいて、それら二つのデータテーブルを統合することにより、購入者ID、商品名、価格、日付、名前、年齢を紐づけた、統合データテーブル43を生成することができる。ここで、統合データテーブル43には、購入者テーブル42に含まれる購入者ID;2、名前;ハナコ、年齢;45を含む行が統合されていない。これは、購入履歴テーブル41において、購入者ID;2、名前;ハナコ、年齢;45で示される人物の購入履歴がない為である。以下、このような統合データテーブルの生成について順を追って説明する。なお統合データテーブルには、購入者ID;2、名前;ハナコ、年齢;45で示される人物の情報を統合してもよい。この場合、当該人物の情報としての商品名、価格、日付の欄に情報が含まれない(NULL)状態となる場合がある。
【0021】
図5は統合対象の2つのデータテーブルの例を示す第一の図である。
本実施形態による統合対象の2つのデータテーブルである、右テーブル51(第一データテーブル)と左テーブル52(第二データテーブル)とを
図5に示す。右テーブル51と左テーブル52のそれぞれは、行IDとキーとを紐づけた行を複数行有している。本実施形態において、右テーブル51と、左テーブル52の2つのデータテーブルは、それぞれ大小比較のできるデータ要素となるキーを、各行のデータ要素として含んでいる。
【0022】
図6は統合装置の処理フローを示す図である。
図7は統合装置の処理概要を示す第一の図である。
ユーザは端末2を操作して統合装置1にアクセスする。そしてユーザは端末2を操作して、統合装置1に統合対象となる2つのデータテーブルの指定と、それらデータテーブルにおいて大小比較のできるデータ要素の指定と、統合開始の指示を与える。これにより、統合装置1は2つのデータテーブルの統合処理を開始する(ステップS101)。2つのデータテーブルは、
図5で示した右テーブル51(第一データテーブル)と、左テーブル52(第二データテーブル)であるとする。なお2つのデータテーブルにおいて大小比較のできるデータ要素の種類は同じであるとする。
図6においてはキーが大小比較のできるデータ要素である。2つのデータテーブルにおけるキーの情報は、同じ種類の情報である。
【0023】
統合装置1の制御部10は統合開始の指示を受け付けると、ソート部12に対して、大小比較のできるデータ要素の昇順ソートを指示する。ソート部12は、右テーブルと左テーブルのそれぞれの各行を、キーを用いて昇順にソートする(ステップS102)。これによりソート部12は、
図7(1)で示すように、右テーブル51の各行のキーが、上から順に「1」、「2」、「3」、「6」となるよう右テーブル51の各行を昇順に並び替える。またソート部12は、
図7(1)で示すように、左テーブル52の各行のキーが、上から順に「1」、「3」、「3」、「5」となるよう左テーブル52を並び替える。
【0024】
ソートが完了すると制御部10は、ユニーク判定部13に処理を指示する。ユニーク判定部13は、右テーブル51の各行の大小比較のできるデータ要素としてのキーがそれぞれユニークかを判定する(ステップS103)。ユニーク判定部13は、判定結果を制御部10へ出力する。制御部10は、右テーブル51の各行の大小比較のできるデータ要素としてのキーがそれぞれユニークである場合、そのまま右テーブル51を第一データテーブル、左テーブル52を第二データテーブルと定義して、処理負荷軽減手法による以下のデータテーブルの統合処理を開始する。
【0025】
ユニーク判定部13は、右テーブル51の各行の大小比較のできるデータ要素としてのキーがそれぞれユニークでない場合、次に左テーブル52の各行の大小比較のできるデータ要素としてのキーがそれぞれユニークかを判定する(ステップS104)。ユニーク判定部13は、判定結果を制御部10へ出力する。制御部10は、右テーブル51の各行の大小比較のできるデータ要素としてのキーがそれぞれユニークである場合、右テーブル51と左テーブル52の第一データテーブルと第二データテーブルの定義を逆に入れ替えて、左テーブル52を第一データテーブル、右テーブル51を第二データテーブルと定義し、処理負荷軽減手法による以下のデータテーブルの統合処理を開始する。今、左テーブル52の各行の大小比較のできるデータ要素としてのキーがそれぞれユニークでない。つまり、左テーブル52においてキー「3」を有する行が2行ある。従って、右テーブル51を第一データテーブル、左テーブル52を第二データテーブルと定義して、処理負荷軽減手法による以下のデータテーブルの統合処理を開始する場合の説明を続ける。
【0026】
なお、ユニーク判定部13は、右テーブル51の各行の大小比較のできるデータ要素としてのキーがそれぞれユニークでなく、左テーブル52の各行の大小比較のできるデータ要素としてのキーもそれぞれユニークでない場合、その判定結果を制御部10へ出力する。制御部10は、いずれのデータテーブルも各行の大小比較のできるデータ要素としてのキーがそれぞれユニークでない場合、処理負荷を軽減することができないデータテーブルの統合処理へ切り替えると判定する(ステップS105)。
【0027】
なお上述の処理においては、ソート部12が、右テーブル51と左テーブル52の両方のデータテーブルにおいて、各行の大小比較のできるデータ要素としてのキーを昇順にソートしているが、少なくとも、大小比較のできるデータ要素としてのキーがそれぞれユニークとなるデータテーブルを、ソートすればよい。
【0028】
制御部10は、処理負荷軽減手法によるデータテーブルの統合処理を開始した場合、その処理負荷軽減手法によるデータテーブルの統合処理を位置特定部14へ出力する。位置特定部14は、n=1と設定し、左テーブル52のn=1行目を特定する。左テーブル52の1(n=1)行目は行ID=L3の行である。位置特定部14は、L3行のキー「1」を取得する。位置特定部14は、左テーブル52のL3の行のデータ要素であるキー「1」と、右テーブル51の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル52のL3行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置を特定する。ここで、
図7の(1)で示すように、右テーブル51において各行の間をそれぞれ境界位置B0~B4と呼ぶこととする。左テーブル52のL3の行のデータ要素であるキー「1」と、右テーブル51の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル52のL3行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置は、境界位置B0となる。つまりこの場合、下限位置はB0である。
【0029】
同様に位置特定部14は、n=n+1によりn=2と設定し、左テーブル52のn=2行目を特定する。左テーブル52の2(n=2)行目は行ID=L0の行である。位置特定部14は、L0行のキー「3」を取得する。位置特定部14は、左テーブル52のL0の行のデータ要素であるキー「3」と、右テーブル51の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル52のL0行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置を特定する。左テーブル52のL0の行のデータ要素であるキー「3」と、右テーブル51の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル52のL0行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置は、境界位置B2となる。つまりこの場合、下限位置はB2である。
【0030】
同様に位置特定部14は、n=n+1によりn=3と設定し、左テーブル52のn=3行目を特定する。左テーブル52の3(n=3)行目は行ID=L2の行である。位置特定部14は、L2行のキー「3」を取得する。位置特定部14は、左テーブル52のL2の行のデータ要素であるキー「3」と、右テーブル51の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル52のL2行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置を特定する。左テーブル52のL2の行のデータ要素であるキー「3」と、右テーブル51の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル52のL2行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置は、境界位置B2となる。つまりこの場合、下限位置はB2である。
【0031】
同様に位置特定部14は、n=n+1によりn=4と設定し、左テーブル52のn=4行目を特定する。左テーブル52の4(n=4)行目は行ID=L1の行である。位置特定部14は、L1行のキー「5」を取得する。位置特定部14は、左テーブル52のL1の行のデータ要素であるキー「5」と、右テーブル51の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル52のL1行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置を特定する。左テーブル52のL1の行のデータ要素であるキー「5」と、右テーブル51の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル52のL1行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置は、境界位置B3となる。つまりこの場合、下限位置はB3である。
【0032】
これにより位置特定部14は、左テーブル52のL3行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置をB0と特定する。また位置特定部14は、左テーブル52のL0行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置をB2と特定する。また位置特定部14は、左テーブル52のL2行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置をB2と特定する。また位置特定部14は、左テーブル52のL1行を昇順ソート後の右テーブル51の最下行に加えることのできる下限位置をB3と特定する。つまり、位置特定部14は、左テーブル52の全ての行についての、昇順ソート後の右テーブル51の最下行に加えることのできる下限位置を特定する(ステップS106)。そして位置特定部14は、左テーブル52の行IDと、その行IDについて特定した下限位置とを紐づけた位置特定テーブル53を生成する。そして、位置特定部14は、制御部10へ処理終了を出力する。
【0033】
当該位置特定部14の処理は、第一データテーブル(右テーブル51)のデータ要素それぞれがユニークである場合に、2つのデータテーブルのうちの第二データテーブル(左テーブル52)の各行のデータ要素と第一データテーブル(右テーブル51)の各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行って、昇順ソートに適合するように第二データテーブル(左テーブル52)の行を昇順ソート後の第一データテーブル(右テーブル51)の最下行に加えることのできる下限位置を特定する処理の一態様である。なお上述の大小比較は、二分探索を用いて行う。または大小比較は他の探索手法を用いてもよい。例えば大小比較を、単純探索により行ってもよい。データ要素であるキーの昇順ソート後に大小比較を行うため、二分探索をすることで処理量、処理負荷を軽減することができる。
【0034】
制御部10は次に、統合部15に2つのデータテーブルの統合を指示する。すると統合部15は、左テーブル52と、右テーブル51と、位置特定テーブル53とを参照し、n=1と設定し、左テーブルのn=1行目の行(行ID=L3)のデータ要素であるキー「1」と、当該行L3のデータ要素であるキー「1」を用いて特定した昇順ソート後の右テーブル51における下限位置B0の昇順ソートにおける次の行R1のデータ要素であるキー「1」とが一致するかを判定する。この場合キーはそれぞれ「1」であるため一致する。従って、統合部15は、それら行L3と行R1を統合対象行と特定し、それら行L3と行R1とを統合した、行ID「L3」、行ID「R1」、キー「1」を行に含む統合データテーブルを生成する。
【0035】
統合部15は次に、n=n+1=2と設定し、左テーブルのn=2行目の行(行ID=L0)のデータ要素であるキー「3」と、当該行L0のデータ要素であるキー「3」を用いて特定した昇順ソート後の右テーブル51における下限位置B2の昇順ソートにおける次の行R2のデータ要素であるキー「3」とが一致するかを判定する。この場合キーはそれぞれ「3」であるため一致する。従って、統合部15は、それら行L0と行R2を統合対象行と特定し、それら行L0と行R2とを統合した、行ID「L0」、行ID「R2」、キー「3」を含む行を統合データテーブルにマージする。
【0036】
統合部15は次に、n=n+1=3と設定し、左テーブルのn=3行目の行(行ID=L2)のデータ要素であるキー「3」と、当該行L2のデータ要素であるキー「3」を用いて特定した昇順ソート後の右テーブル51における下限位置B2の昇順ソートにおける次の行R2のデータ要素であるキー「3」とが一致するかを判定する。この場合キーはそれぞれ「3」であるため一致する。従って、統合部15は、それら行L2と行R2を統合対象行と特定し、それら行L2と行R2とを統合した、行ID「L2」、行ID「R2」、キー「3」を含む行を統合データテーブルにマージする。
【0037】
統合部15は次に、n=n+1=4と設定し、左テーブルのn=4行目の行(行ID=L1)のデータ要素であるキー「5」と、当該行L1のデータ要素であるキー「5」を用いて特定した昇順ソート後の右テーブル51における下限位置B3の昇順ソートにおける次の行R3のデータ要素であるキー「6」とが一致するかを判定する。この場合キーはそれぞれ「5」と「6」であるため一致しない。従って、統合部15は、それら行L1と行R3を統合対象行と特定しない。なお、ある統合処理においては、行L1の情報のみを統合データテーブルにマージしてもよい。
【0038】
そして統合部15は、左テーブル52の全ての行について同様の統合対象行とするかの特定を行って、統合対象行と特定した左テーブル52の行と、右テーブル51の行とを統合して統合データテーブルにマージする。これにより統合データテーブルを生成する(ステップS107)。
【0039】
一方、制御部10は、ステップS105において処理負荷を軽減することができないデータテーブルの統合処理へ切り替えると判定した場合、そのデータテーブルの統合処理を位置特定部14へ出力する。
【0040】
図8は統合対象の2つのデータテーブルの例を示す第二の図である。
右テーブル61(第一データテーブル)と左テーブル62(第二データテーブル)とを
図6に示す。右テーブル61と左テーブル62のそれぞれは、行IDとキーとを紐づけた行を複数行有している。
図8で示すように右テーブル61と左テーブル62の何れのデータテーブルも、データテーブル内の各行の大小比較のできるデータ要素としてのキーがそれぞれユニークでない。例えば右テーブル61ではキー「1」となる行が2つ存在し、各行の大小比較のできるデータ要素としてのキーがそれぞれユニークでない。また左テーブル62ではキー「3」となる行が2つ存在し、各行の大小比較のできるデータ要素としてのキーがそれぞれユニークでない。このように、いずれのデータテーブルも各行の大小比較のできるデータ要素としてのキーがそれぞれユニークでない場合、以下のデータテーブルの統合処理が行われる。
【0041】
図9は統合装置の処理概要を示す第二の図である。
すでにステップS102により昇順ソートが行われているとすると、
図9(2)の右テーブル61で示すように、右テーブル61の各行のキーが、上から順に「1」、「1」「2」、「3」となるよう各行が昇順に並び替えられている。また
図9(2)の左テーブル62で示すように、左テーブル62の各行のキーが、上から順に「1」、「3」、「3」、「5」となるよう各行が昇順に並び変えられている。
【0042】
そして制御部10からの指示により、位置特定部14は、処理負荷軽減手法によるデータテーブルの統合処理における下限位置の特定と同様の処理を行う。つまり、位置特定部14は、n=1と設定し、左テーブル62のn=1行目を特定する。左テーブル62の1(n=1)行目は行ID=L3の行である。位置特定部14は、L3行のキー「1」を取得する。位置特定部14は、左テーブル62のL3の行のデータ要素であるキー「1」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル62のL3行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置を特定する。ここで、
図9の(1)で示すように、右テーブル61において各行の間をそれぞれ位置B0~B4と呼ぶこととする。左テーブル62のL3の行のデータ要素であるキー「1」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル62のL3行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置は、境界位置B0となる。つまりこの場合、下限位置はB0である。
【0043】
同様に位置特定部14は、n=n+1によりn=2と設定し、左テーブル62のn=2行目を特定する。左テーブル62の2(n=2)行目は行ID=L0の行である。位置特定部14は、L0行のキー「3」を取得する。位置特定部14は、左テーブル62のL0の行のデータ要素であるキー「3」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル62のL0行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置を特定する。左テーブル62のL0の行のデータ要素であるキー「3」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル62のL0行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置は、境界位置B3となる。つまりこの場合、下限位置はB3である。
【0044】
同様に位置特定部14は、n=n+1によりn=3と設定し、左テーブル62のn=3行目を特定する。左テーブル62の3(n=3)行目は行ID=L2の行である。位置特定部14は、L2行のキー「3」を取得する。位置特定部14は、左テーブル62のL2の行のデータ要素であるキー「3」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル62のL2行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置を特定する。左テーブル62のL2の行のデータ要素であるキー「3」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル62のL2行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置は、境界位置B3となる。つまりこの場合、下限位置はB3である。
【0045】
同様に位置特定部14は、n=n+1によりn=4と設定し、左テーブル62のn=4行目を特定する。左テーブル62の4(n=4)行目は行ID=L1の行である。位置特定部14は、L1行のキー「5」を取得する。位置特定部14は、左テーブル62のL1の行のデータ要素であるキー「5」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル62のL1行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置を特定する。左テーブル62のL1の行のデータ要素であるキー「5」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル62のL1行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置は、境界位置B4となる。つまりこの場合、下限位置はB4である。
【0046】
これにより位置特定部14は、左テーブル62のL3行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置をB0と特定する。また位置特定部14は、左テーブル62のL0行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置をB3と特定する。また位置特定部14は、左テーブル62のL2行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置をB3と特定する。また位置特定部14は、左テーブル62のL1行を昇順ソート後の右テーブル61の最下行に加えることのできる下限位置をB4と特定する。つまり、位置特定部14は、左テーブル62の全ての行についての、昇順ソート後の右テーブル61の最下行に加えることのできる下限位置を特定する(ステップS201)。
【0047】
当該位置特定部14のステップS201の処理は、第一データテーブル(右テーブル61)のデータ要素それぞれがユニークでない場合に、2つのデータテーブルのうちの第二データテーブル(左テーブル62)の各行のデータ要素と第一データテーブル(右テーブル61)の各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行って、昇順ソートに適合するように第二データテーブル(左テーブル62)の行を昇順ソート後の第一データテーブル(右テーブル61)の最下行に加えることのできる下限位置を特定する処理の一態様である。上述の大小比較は、二分探索を用いて行う。または大小比較は他の探索手法を用いてもよい。例えば大小比較を単純探索により行ってもよい。データ要素であるキーの昇順ソート後に大小比較を行うため、二分探索をすることで処理量、処理負荷を軽減することができる。
【0048】
次に位置特定部14は、処理負荷軽減手法によるデータテーブルの統合処理において行わなかった上限位置の特定を行う。つまり、位置特定部14は、n=1と設定し、左テーブル52のn=1行目を特定する。左テーブル52の1(n=1)行目は行ID=L3の行である。位置特定部14は、L3行のキー「1」を取得する。位置特定部14は、左テーブル52のL3の行のデータ要素であるキー「1」と、右テーブル51の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル52のL3行を昇順ソート後の右テーブル51の最上行に加えることのできる上限位置を特定する。左テーブル62のL3の行のデータ要素であるキー「1」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル62のL3行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置は、境界位置B2となる。つまりこの場合、上限位置はB2である。
【0049】
同様に位置特定部14は、n=n+1によりn=2と設定し、左テーブル62のn=2行目を特定する。左テーブル62の2(n=2)行目は行ID=L0の行である。位置特定部14は、L0行のキー「3」を取得する。位置特定部14は、左テーブル62のL0の行のデータ要素であるキー「3」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル62のL0行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置を特定する。左テーブル62のL0の行のデータ要素であるキー「3」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル62のL0行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置は、境界位置B4となる。つまりこの場合、上限位置はB4である。
【0050】
同様に位置特定部14は、n=n+1によりn=3と設定し、左テーブル62のn=3行目を特定する。左テーブル62の3(n=3)行目は行ID=L2の行である。位置特定部14は、L2行のキー「3」を取得する。位置特定部14は、左テーブル62のL2の行のデータ要素であるキー「3」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル62のL2行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置を特定する。左テーブル62のL2の行のデータ要素であるキー「3」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル62のL2行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置は、境界位置B4となる。つまりこの場合、上限位置はB4である。
【0051】
同様に位置特定部14は、n=n+1によりn=4と設定し、左テーブル62のn=4行目を特定する。左テーブル62の4(n=4)行目は行ID=L1の行である。位置特定部14は、L1行のキー「5」を取得する。位置特定部14は、左テーブル62のL1の行のデータ要素であるキー「5」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のキーとの大小比較を行って、昇順ソートに適合するように左テーブル62のL1行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置を特定する。左テーブル62のL1の行のデータ要素であるキー「5」と、右テーブル61の各行のデータ要素であるキーを用いた昇順ソート後の各行のデータ要素との大小比較を行うと、昇順ソートに適合するように左テーブル62のL1行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置は、境界位置B4となる。つまりこの場合、上限位置はB4である。
【0052】
これにより位置特定部14は、左テーブル62のL3行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置をB2と特定する。また位置特定部14は、左テーブル62のL0行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置をB4と特定する。また位置特定部14は、左テーブル62のL2行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置をB4と特定する。また位置特定部14は、左テーブル62のL1行を昇順ソート後の右テーブル61の最上行に加えることのできる上限位置をB4と特定する。つまり、位置特定部14は、左テーブル62の全ての行についての、昇順ソート後の右テーブル61の最上行に加えることのできる上限位置を特定する(ステップS202)。そして位置特定部14は、左テーブル62の行IDと、その行IDについて特定した下限位置と、上限位置とを紐づけた位置特定テーブル63を生成する。そして、位置特定部14は、制御部10へ処理終了を出力する。
【0053】
当該位置特定部14の処理は、第一データテーブル(右テーブル61)のデータ要素それぞれがユニークでない場合に、2つのデータテーブルのうちの第二データテーブル(左テーブル62)の各行のデータ要素と第一データテーブル(右テーブル61)の各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行って、昇順ソートに適合するように第二データテーブル(左テーブル62)の行を昇順ソート後の第一データテーブル(右テーブル61)の最上行に加えることのできる上限位置を特定する処理の一態様である。なお上述の上限位置の特定における大小比較も、二分探索を用いて行う。または上限位置の特定における大小比較は他の探索手法を用いてもよい。例えば上限位置の特定における大小比較を単純探索を用いて行ってもよい。データ要素であるキーの昇順ソート後に大小比較を行うため、二分探索をすることで処理量、処理負荷を軽減することができる。
【0054】
制御部10は次に、統合部15に2つのデータテーブルの統合を指示する。すると統合部15は、左テーブル62と、右テーブル61と、位置特定テーブル63とを参照し、n=1と設定し、左テーブル62のn=1行目の行(行ID=L3)のデータ要素であるキー「1」と、当該行L3のデータ要素であるキー「1」を用いて特定した昇順ソート後の右テーブル61における下限位置B0の昇順ソートにおける次の行R1のデータ要素であるキー「1」とが一致するかを判定する。この場合キーはそれぞれ「1」であるため一致する。従って、統合部15は、それら行L3と行R1を統合対象行と特定し、それら行L3と行R1とを統合した、行ID「L3」、行ID「R1」、キー「1」を行に含む統合データテーブルを生成する。
【0055】
統合部15は左テーブル62のn=1行目の行(行ID=L3)について特定した右テーブル61の上限位置B2の次の行R0のデータ要素との一致判定を行っていない為、当該n=1行目を用いた一致判定を続ける。統合部15は、左テーブルのn=1行目の行(行ID=L3)のデータ要素であるキー「1」と、当該行L3のデータ要素であるキー「1」を用いて特定した昇順ソート後の右テーブル51における下限位置B0の次に上の境界位置B1の昇順ソートにおける次の行R3のデータ要素であるキー「1」とが一致するかを判定する。この場合キーはそれぞれ「1」であるため一致する。従って、統合部15は、それら行L3と行R3を統合対象行と特定し、それら行L3と行R3とを統合した、行ID「L3」、行ID「R3」、キー「1」を含む行を統合データテーブルにマージする。
【0056】
統合部15は左テーブル62のn=1行目の行(行ID=L3)について特定した右テーブル61の上限位置B2の次の行のデータ要素との一致判定を行っていない為、当該n=1行目を用いた一致判定を続ける。統合部15は、左テーブルのn=1行目の行(行ID=L3)のデータ要素であるキー「1」と、当該行L3のデータ要素であるキー「1」を用いて特定した昇順ソート後の右テーブル51における境界位置B1の次に上の境界位置B2の昇順ソートにおける次の行R0のデータ要素であるキー「2」とが一致するかを判定する。この場合キーはそれぞれ「1」、「2」であるため一致しない。従って、統合部15は、それら行L3と行R0を統合対象行と特定しない。そして、統合部15は、境界位置B2は左テーブル62のn=1行目の行(行ID=L3)について特定した上限位置であり、これにより、左テーブル62のn=1行目の行(行ID=L3)について特定した右テーブル61の上限位置B2の次の行のデータ要素との一致判定を行ったため、n=1行目の処理を終了する。
【0057】
次に統合部15は、左テーブル62と、右テーブル61と、位置特定テーブル63とを参照し、n=n+1=2と設定し、左テーブル62のn=2行目の行(行ID=L0)のデータ要素であるキー「3」と、当該行L0のデータ要素であるキー「3」を用いて特定した昇順ソート後の右テーブル61における下限位置B3の昇順ソートにおける次の行R2のデータ要素であるキー「3」とが一致するかを判定する。この場合キーはそれぞれ「3」であるため一致する。従って、統合部15は、それら行L0と行R2を統合対象行と特定し、それら行L0と行R2とを統合した、行ID「L0」、行ID「R2」、キー「3」を含む行を統合データテーブルにマージする。
【0058】
統合部15は左テーブル62のn=2行目の行(行ID=L0)について特定した右テーブル61の上限位置B4の次の行のデータ要素との一致判定を行っていない為、当該n=2行目を用いた一致判定を続ける。統合部15は、左テーブル62のn=2行目の行(行ID=L0)のデータ要素であるキー「3」と、当該行L0のデータ要素であるキー「3」を用いて特定した昇順ソート後の右テーブル61における下限位置B3の次に上の境界位置B4の昇順ソートにおける次の行のデータ要素であるキーとが一致するかを判定する。この場合、統合部15は、境界位置B4の昇順ソートにおける次の行がなく、境界位置B4は左テーブル62のn=2行目の行(行ID=L0)について特定した上限位置であるため、処理を終了する。
【0059】
次に統合部15は、左テーブル62と、右テーブル61と、位置特定テーブル63とを参照し、n=n+1=3と設定し、左テーブル62のn=3行目の行(行ID=L2)のデータ要素であるキー「3」と、当該行L2のデータ要素であるキー「3」を用いて特定した昇順ソート後の右テーブル61における下限位置B3の昇順ソートにおける次の行R2のデータ要素であるキー「3」とが一致するかを判定する。この場合キーはそれぞれ「3」であるため一致する。従って、統合部15は、それら行L2と行R2を統合対象行と特定し、それら行L2と行R2とを統合した、行ID「L2」、行ID「R2」、キー「3」を含む行を統合データテーブルにマージする。
【0060】
統合部15は左テーブル62のn=3行目の行(行ID=L2)について特定した右テーブル61の上限位置B4の次の行のデータ要素との一致判定を行っていない為、当該n=3行目を用いた一致判定を続ける。統合部15は、左テーブル62のn=3行目の行(行ID=L2)のデータ要素であるキー「3」と、当該行L2のデータ要素であるキー「3」を用いて特定した昇順ソート後の右テーブル61における下限位置B3の次に上の境界位置B4の昇順ソートにおける次の行のデータ要素であるキーとが一致するかを判定する。この場合、統合部15は、境界位置B4の昇順ソートにおける次の行がなく、境界位置B4は左テーブル62のn=3行目の行(行ID=L2)について特定した上限位置であるため、処理を終了する。
【0061】
次に統合部15は、左テーブル62と、右テーブル61と、位置特定テーブル63とを参照し、n=n+1=4と設定し、左テーブル62のn=4行目の行(行ID=L1)のデータ要素であるキー「5」と、当該行L1のデータ要素であるキー「5」を用いて特定した昇順ソート後の右テーブル61における下限位置B4の昇順ソートにおける次の行R2のデータ要素であるキーとが一致するかを判定する。この場合、統合部15は、境界位置B4の昇順ソートにおける次の行がなく、境界位置B4は左テーブル62のn=4行目の行(行ID=L2)について特定した上限位置でもあるため、処理を終了する。
【0062】
そして統合部15は、左テーブル62の全ての行について同様の統合対象行とするかの特定を行って、統合対象行と特定した左テーブル62の行と、右テーブル61の行とを統合して統合データテーブルにマージする。これにより統合データテーブルを生成する(ステップS203)。
【0063】
上述の処理によれば、2つのデータテーブルのうちの第一データテーブルのデータ要素それぞれがユニークである場合には、下限位置を特定するだけでよく、第一データテーブルのデータ要素それぞれがユニークでない場合には、下限位置と上限位置とをそれぞれ特定している。従って、2つのデータテーブルのうちの第一データテーブルのデータ要素それぞれがユニークである場合には、下限位置を特定するのみで、統合データテーブルを生成するにあたり、処理負荷、処理量を軽減することができる。
【0064】
図10は統合装置の最小構成を示す図である。
図11は最小構成による統合装置の処理フローを示す図である。
図10で示すように統合装置1は、ユニーク判定手段1001、位置特定手段1002、統合手段1003を少なくとも備える。
ユニーク判定手段1001は、少なくとも大小比較のできるデータ要素を一つの行の情報として含む2つのデータテーブルのうちの第一データテーブルのデータ要素それぞれがユニークであるかを判定する(ステップS301)。
位置特定手段1002は、第一データテーブルのデータ要素それぞれがユニークである場合には、第二データテーブルの各行のデータ要素と第一データテーブルの各行のデータ要素を用いた昇順ソート後の各行のデータ要素との大小比較を行って、昇順ソートに適合するように第二データテーブルの行を昇順ソート後の第一データテーブルの最下行に加えることのできる下限位置を特定する(ステップS302)。
統合手段1003は、第二データテーブルの行のデータ要素と、当該行のデータ要素を用いて特定した昇順ソート後の第一データテーブルにおける下限位置の昇順ソートにおける次の行のデータ要素とが一致する場合に、それらデータ要素を示す統合対象行を特定し、少なくともそれら第二データテーブルと第一データテーブルとの統合対象行を統合した統合データテーブルを生成する(ステップS303)。
【0065】
ここで、上述の統合装置1は内部に、コンピュータシステムを有している。そして、上述した各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【0066】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【符号の説明】
【0067】
1・・・統合装置
2・・・端末
11・・・制御部
12・・・ソート部
13・・・ユニーク判定部
14・・・位置特定部
15・・・統合部
100・・・情報処理システム