(57)【要約】【課題】  和集合集約処理と等結合処理を組み合わせて実行するための和集合集約処理と等結合処理の組み合わせ処理において、和集合対象データベースシステムのレコードの結合結果テーブルのどの場所に格納すべきかをソートしなくても決定することを可能にする。【解決手段】  本発明は、和集合集約処理（Ｘ∪Ｙ）と等結合処理（Ａ∩Ｚ）を組み合わせた処理（（Ｘ∪Ｙ）∩Ｚ）を扱う場合に、（Ｘ∩Ｚ）及び（Ｙ∩Ｚ）それぞれでヒットするか否かをＺ表基準のフラグで集約する。フラグの和集合（ＯＲ）を計算し、Ｚ表基準で順番を付与し、その順番に基づいてデータを集めることで、結合結果テーブルへの格納時にソートを不要にすることが可能となる。【選択図】  図１
2011242851.tif 000002
【特許請求の範囲】
【請求項１】
データベースシステムがネットワーク上に分散している環境において、和集合集約処理と等結合処理を組み合わせて実行するための和集合集約処理と等結合処理の組み合わせ方法であって、
第１の記憶手段に等結合の対象となる等結合対象テーブルを有する等結合対象データベースシステムと、第２の記憶手段に和集合の対象となるレコードとレコード番号を保持する和集合対象テーブルを有するＮ個の和集合対象データベースシステムと、からなるデータベースシステムにおいて、
前記等結合対象データベースシステムは、
各和集合対象データベースシステムへ、前記結合対象テーブルの結合対象カラム情報と、結合対象カラムのデータを送信し、
前記各和集合対象データベースシステムは、
受信した前記結合対象カラム情報及び前記結合対象カラムのデータに基づいて、前記第２の記憶手段に結合管理テーブルを生成し、
前記和集合対象テーブルのカラムと前記結合管理テーブルのカラムの値を比較して、一致する値がある場合は、フラグを"１"とし、
前記結合管理テーブルのフラグが"１"となっているレコードにカラムの値が一致した前記和集合対象テーブルのレコード番号を格納し、
前記結合管理テーブルのフラグ"１"が付与されているカラムを前記等結合対象データベースシステムに送信し、
前記等結合対象データベースシステムは、
第１の記憶手段上の領域に和演算結果テーブルを生成し、前記和集合対象データベースシステムから受信したデータに基づいて、カラムの値が"１"のカラム列のビット間でＯＲ演算を行った結果の行を和演算カラムに格納し、ＯＲ演算の結果が"１"になるレコードの行番号の上位から順に番号を付与して順序番号カラムに格納し、該順序番号を前記和集合対象データベースシステムに送信し、
前記和集合対象データベースシステムは、
受信した前記順序番号カラムを前記結合管理テーブルに格納し、該順序番号カラムに基づいて、前記和集合管理テーブルからレコード番号に対応するレコードを抽出し、
前記等結合対象データベースシステムは、
前記和演算結果テーブルのカラムの値が"１"のレコードの番号に基づいて、前記結合対象テーブルから抽出されたレコードに順序番号を付与して、前記結合結果テーブルにコピーし、
前記和集合対象データベースシステムは、
抽出されたレコードに該当する順序番号を付与して前記等結合対象データベースシステムに送信し、
前記等結合対象データベースシステムは、
前記各和集合対象データベースシステムから受信したレコードの順序番号の値が前記結合結果テーブルのレコード番号と一致するように、該結合結果テーブルに格納する
ことを特徴とする和集合集約処理と等結合処理の組み合わせ方法。
【請求項２】
等結合の対象となる等結合対象テーブルを有する等結合対象データベースシステムと、和集合の対象となる和集合対象テーブルを有するＮ個の和集合対象データベースシステムと、からなり、データベースシステムがネットワーク上に分散している環境において、和集合集約処理と等結合処理を組み合わせて実行するための和集合集約処理と等結合処理の組み合わせを行うデータベースシステムであって、
前記等結合対象データベースシステムは、
等結合の対象となる等結合対象テーブルと、和演算結果テーブルと、結合結果テーブルを格納する第１の記憶手段と、
各和集合対象データベースシステムへ、前記結合対象テーブルの結合対象カラム情報と、結合対象カラムのデータを送信する手段と、
前記和演算結果テーブルを前記第１の記憶手段上に生成し、前記和集合対象データベースシステムから受信したデータに基づいて、カラムの値が"１"のカラム列のビット間でＯＲ演算を行った結果の行を該和演算結果テーブルの和演算カラムに格納し、ＯＲ演算の結果が"１"になるレコードの行番号の上位から順に番号を付与して順序番号カラムに格納し、該順序番号を前記和集合対象データベースシステムに送信する手段と、
前記和演算結果テーブルのカラムの値が"１"のレコードの番号に基づいて、前記結合対象テーブルから抽出されたレコードに順序番号を付与して、前記結合結果テーブルにコピーする手段と、
前記各和集合対象データベースシステムから受信したレコードの順序番号の値が前記結合結果テーブルのレコード番号と一致するように、該結合結果テーブルに格納する手段と、を有し、
前記各和集合対象データベースシステムは、
和集合の対象となるレコードとレコード番号を保持する和集合対象テーブルと、結合管理テーブルとを格納する第２の記憶手段と、
前記等結合対象データベースシステムから受信した前記結合対象カラム情報及び前記結合対象カラムのデータに基づいて、前記第２の記憶手段に前記結合管理テーブルを生成する手段と、
前記和集合対象テーブルのカラムと前記結合管理テーブルのカラムの値を比較して、一致する値がある場合は、フラグを"１"とし、前記結合管理テーブルのフラグが"１"となっているレコードにカラムの値が一致した前記和集合対象テーブルのレコード番号を格納する手段と、
前記結合管理テーブルのフラグ"１"が付与されているカラムを前記等結合対象データベースシステムに送信する手段と、
前記等結合対象データベースシステムから受信した前記順序番号カラムを前記結合管理テーブルに格納し、該順序番号カラムに基づいて、前記和集合対象テーブルからレコード番号に対応するレコードを抽出する手段と、
抽出されたレコードに該当する順序番号を付与して前記等結合対象データベースシステムに送信する手段と、
を有することを特徴とするデータベースシステム。
【請求項３】
等結合の対象となる等結合対象テーブルを有する等結合対象データベースシステムと、和集合の対象となる和集合対象テーブルを有するＮ個の和集合対象データベースシステムと、からなり、データベースシステムがネットワーク上に分散している環境において、和集合集約処理と等結合処理を組み合わせて実行するための和集合集約処理と等結合処理の組み合わせを行うデータベースシステムの等結合対象データベースシステムであって、
等結合の対象となる等結合対象テーブルと、和演算結果テーブルと、結合結果テーブルを格納する記憶手段と、
各和集合対象データベースシステムへ、前記結合対象テーブルの結合対象カラム情報と、結合対象カラムのデータを送信する手段と、
前記和演算結果テーブルを前記記憶手段上に生成し、前記和集合対象データベースシステムから受信したデータに基づいて、カラムの値が"１"のカラム列のビット間でＯＲ演算を行った結果の行を該和演算結果テーブルの和演算カラムに格納し、ＯＲ演算の結果が"１"になるレコードの行番号の上位から順に番号を付与して順序番号カラムに格納し、該順序番号を前記和集合対象データベースシステムに送信する手段と、
前記和演算結果テーブルのカラムの値が"１"のレコードの番号に基づいて、前記結合対象テーブルから抽出されたレコードに順序番号を付与して、前記結合結果テーブルにコピーする手段と、
前記各和集合対象データベースシステムから受信したレコードの順序番号の値が前記結合結果テーブルのレコード番号と一致するように、該結合結果テーブルに格納する手段と、を有することを特徴とする等結合対象データベースシステム。
【請求項４】
等結合の対象となる等結合対象テーブルを有する等結合対象データベースシステムと、和集合の対象となる和集合対象テーブルを有するＮ個の和集合対象データベースシステムと、からなり、データベースシステムがネットワーク上に分散している環境において、和集合集約処理と等結合処理を組み合わせて実行するための和集合集約処理と等結合処理の組み合わせを行うデータベースシステムの和集合対象データベースシステムであって、
和集合の対象となるレコードとレコード番号を保持する和集合対象テーブルと、結合管理テーブルとを格納する記憶手段と、
前記等結合対象データベースシステムから受信した前記結合対象カラム情報及び前記結合対象カラムのデータに基づいて、前記記憶手段に前記結合管理テーブルを生成する手段と、
前記和集合対象テーブルのカラムと前記結合管理テーブルのカラムの値を比較して、一致する値がある場合は、フラグを"１"とし、前記結合管理テーブルのフラグが"１"となっているレコードにカラムの値が一致した前記和集合対象テーブルのレコード番号を格納する手段と、
前記結合管理テーブルのフラグ"１"が付与されているカラムを前記等結合対象データベースシステムに送信する手段と、
前記等結合対象データベースシステムから受信した前記順序番号カラムを前記結合管理テーブルに格納し、該順序番号カラムに基づいて、前記和集合対象テーブルからレコード番号に対応するレコードを抽出する手段と、
抽出されたレコードに該当する順序番号を付与して前記等結合対象データベースシステムに送信する手段と、
を有することを特徴とする和集合対象データベースシステム。
【請求項５】
請求項３または４に記載のデータベースシステムを構成する各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、和集合集約処理と等結合処理の組み合わせ方法及びデータベースシステム及びプログラムに係り、特に、データベースシステムがネットワーク上に分散し、各々データベースシステムにテーブル（表）が格納され、テーブル（表）には複数行のレコード（行）が格納され、２つ以上のデータベースシステムのテーブル（表）の和集合の集約処理を行った結果の集約結果テーブル（表）と、それら以外の別のデータベースシステムに格納されるテーブルの間で、結合対象カラムとして指定されたカラム（列）の値が同一であるレコード（行）を結合して等結合結果テーブルを作成するための和集合集約処理と等結合処理の組み合わせ方法及びデータベースシステム及びプログラムに関する。
【背景技術】
【０００２】
データベース技術分野における「テーブル（表）の和集合の集約処理」とは、テーブル構造が同一であるテーブルＡとテーブルＢを一つのテーブルＣにまとめる処理（和集合演算）を行った上で、カラム名Ｄが重複するレコードについては、数値データが格納されるカラム名Ｅの値の集計値をカラム名Ｅに格納してカラム名Ｄの重複を取り除いたテーブルＦを作成する処理である（例えば、非特許文献１参照）。ここで集計値とは和や平均値等の、ある算術処理の結果の値であるものとする。集約処理の例を図１に示す。図１では、支店Ａ，Ｂの商品在庫テーブルの和集合を集約処理して「全支店の商品在庫テーブル」を作成する例である。
【０００３】
一方、「等結合処理」とは、テーブルIのカラム（列）Jと、テーブルKのカラム（列）Lを結合対象カラムとして指定し、それらのカラム値が等しいレコード（行）をそれぞれテーブルI及びテーブルKから抽出して１つのレコードとして結合し、結合されたレコードの集合としてテーブルNを作成する処理である（例えば、非特許文献２参照）。等結合の例を図２に示す。図２では、「支店Ａの商品在庫テーブル」の商品名カラムと「販売強化商品テーブル」の商品名カラムを結合対象のカラムとして、そのカラムの値が等しいレコード（『なす』、『キャベツ』）だけを抽出して１つのレコードとして結合し、結合されたレコードの集合として「商品在庫販売強化テーブル」を作成する。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】西川陽一，"図解・標準  最新データベース技術  マスタリングハンドブック"，株式会社秀和システム，p. 58, p.153, ２００２年１１月１１日，ISBN4-7980-0422-7.
【非特許文献２】西川陽一，"図解・標準  最新データベース技術  マスタリングハンドブック"，株式会社秀和システム，p. 61, ２００２年１１月１１日，ISBN4-7980-0422-7.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明では、テーブルがネットワーク上に分散されて配置されている状況において、２つ以上のテーブルの和集合の集約処理を行った集約結果テーブルと、それら以外の別のテーブルとの等結合処理を行う際の課題を扱うものとする。
【０００６】
２つ以上のテーブルの和集合の集約処理を行った集約結果テーブルとそれら以外の別のテーブルとの等結合処理を行う場合には、２通りの処理方法が考えられる。
【０００７】
１つは、和集合の集約処理を行うテーブル数をテーブルX,Yとし、等結合処理をする別のテーブルをテーブルZとすると、（X∪Y）∩Zのように先にカッコ内の和集合の集約処理をする方法がある。
【０００８】
もう１つは、分配律を使用して（X∩Z）∪（Y∩Z）のように先にカッコ内の等結合処理を先に実施する方法がある。なお上記の例ではわかりやすく説明するため和集合をとるテーブルをX,Yの２つとしているが、２つ以上のテーブル（X,Y,…）としても本手法は適用可能である。
【０００９】
（X∪Y）∩Zのように先にカッコ内の和集合の集約処理をする方法では、以下の２段階での処理が必要となる。まず１段目の処理としてテーブルX,Yを入力とし、それらの和集合の集約処理を行って集約結果テーブルを出力する。そして２段目の処理として1段目の処理の出力である集約結果テーブルと別のテーブルZを入力とし、等結合処理を行って等結合結果テーブルを出力する。この処理の例を図３に示す。図３では、1段目の処理として支店Ａ，Ｂの商品在庫テーブルの和集合を集約処理して全支店の商品在庫テーブルを作成し、２段目の処理で販売強化商品テーブルと等結合をする例である。この方法における課題は、図４に示すように、テーブル数が非常に多い場合（X,Yだけでなく、さらに多くのテーブルが対象となる場合）にテーブルの和集合が巨大な集合となるため、和集合の集約結果テーブルのサイズが大きくなり、データベースシステムには巨大な中間記憶領域が求められることである。
【００１０】
一方、（X∩Z）∪（Y∩Z）のように先にカッコ内の等結合処理を先に実施する方法では、まず１段目の処理として、テーブルX,YとテーブルZを入力とし、XとZの等結合処理とYとZの等結合処理を並列に実行して、XとZの等結合結果テーブルとYとZの等結合テーブルの２つのテーブルを出力する。そして２段目の処理として、1段目の処理で得られた２つの等結合結果テーブルの和集合の集約処理を行う。この処理の例を図５に示す。
【００１１】
図５では、1段目の処理として支店A,Bの「商品在庫テーブル」と「販売強化商品テーブル」の等結合処理を並列に実行し、２段目の処理では支店A,Bの「商品在庫販売強化テーブル」の和集合の集約処理を行う例である。なおこの方法では、（X∪Y）∩Zの方法のようにテーブル数が非常に多くなっても巨大な中間的な記憶領域は必要ない。しかし、この方法では、テーブル数が非常に多い場合には、図６に示すように、１段目の処理結果として非常に多くの等結合結果テーブル（A支店〜G支店の商品在庫テーブル）が出力され、それらに格納されている全てのレコードをソートして集約する処理に時間がかかることが課題となる。
【００１２】
本発明は、上記の点に鑑みなされたもので、等結合対象データベースシステム内での和集合演算の際に、結合結果テーブルのレコード番号を順序番号として各和集合データベースシステムに渡し、和集合対象データベースシステムのレコードを等結合対象データベースシステムに渡す際に、和集合対象データベースシステムのレコードの結合結果テーブルのどの場所に格納すべきかをソートしなくても決定することが可能な和集合集約処理と等結合処理の組み合わせ方法及びデータベースシステム及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上記の課題を解決するために、本発明（請求項１）は、データベースシステムがネットワーク上に分散している環境において、和集合集約処理と等結合処理を組み合わせて実行するための和集合集約処理と等結合処理の組み合わせ方法であって、
第１の記憶手段に等結合の対象となる等結合対象テーブルを有する等結合対象データベースシステムと、第２の記憶手段に和集合の対象となるレコードとレコード番号を保持する和集合対象テーブルを有するＮ個の和集合対象データベースシステムと、からなるデータベースシステムにおいて、
等結合対象データベースシステムは、
各和集合対象データベースシステムへ、結合対象テーブルの結合対象カラム情報と、結合対象カラムのデータを送信し、
各和集合対象データベースシステムは、
受信した結合対象カラム情報及び結合対象カラムのデータに基づいて、第２の記憶手段に結合管理テーブルを生成し、
和集合対象テーブルのカラムと結合管理テーブルのカラムの値を比較して、一致する値がある場合は、フラグを"１"とし、
結合管理テーブルのフラグが"１"となっているレコードにカラムの値が一致した和集合対象テーブルのレコード番号を格納し、
結合管理テーブルのフラグ"１"が付与されているカラムを等結合対象データベースシステムに送信し、
等結合対象データベースシステムは、
第１の記憶手段上の領域に和演算結果テーブルを生成し、和集合対象データベースシステムから受信したデータに基づいて、カラムの値が"１"のカラム列のビット間でＯＲ演算を行った結果の行を和演算カラムに格納し、ＯＲ演算の結果が"１"になるレコードの行番号の上位から順に番号を付与して順序番号カラムに格納し、該順序番号を和集合対象データベースシステムに送信し、
和集合対象データベースシステムは、
受信した順序番号カラムを結合管理テーブルに格納し、該順序番号カラムに基づいて、和集合管理テーブルからレコード番号に対応するレコードを抽出し、
等結合対象データベースシステムは、
和演算結果テーブルのカラムの値が"１"のレコードの番号に基づいて、結合対象テーブルから抽出されたレコードに順序番号を付与して、結合結果テーブルにコピーし、
和集合対象データベースシステムは、
抽出されたレコードに該当する順序番号を付与して等結合対象データベースシステムに送信し、
等結合対象データベースシステムは、
各和集合対象データベースシステムから受信したレコードの順序番号の値が結合結果テーブルのレコード番号と一致するように、該結合結果テーブルに格納する。
【００１４】
本発明（請求項２）は、等結合の対象となる等結合対象テーブルを有する等結合対象データベースシステムと、和集合の対象となる和集合対象テーブルを有するＮ個の和集合対象データベースシステムと、からなり、データベースシステムがネットワーク上に分散している環境において、和集合集約処理と等結合処理を組み合わせて実行するための和集合集約処理と等結合処理の組み合わせを行うデータベースシステムであって、
等結合対象データベースシステムは、
等結合の対象となる等結合対象テーブルと、和演算結果テーブルと、結合結果テーブルを格納する第１の記憶手段と、
各和集合対象データベースシステムへ、結合対象テーブルの結合対象カラム情報と、結合対象カラムのデータを送信する手段と、
和演算結果テーブルを第１の記憶手段上に生成し、和集合対象データベースシステムから受信したデータに基づいて、カラムの値が"１"のカラム列のビット間でＯＲ演算を行った結果の行を該和演算結果テーブルの和演算カラムに格納し、ＯＲ演算の結果が"１"になるレコードの行番号の上位から順に番号を付与して順序番号カラムに格納し、該順序番号を和集合対象データベースシステムに送信する手段と、
和演算結果テーブルのカラムの値が"１"のレコードの番号に基づいて、結合対象テーブルから抽出されたレコードに順序番号を付与して、結合結果テーブルにコピーする手段と、
各和集合対象データベースシステムから受信したレコードの順序番号の値が結合結果テーブルのレコード番号と一致するように、該結合結果テーブルに格納する手段と、を有し、
各和集合対象データベースシステムは、
和集合の対象となるレコードとレコード番号を保持する和集合対象テーブルと、結合管理テーブルとを格納する第２の記憶手段と、
等結合対象データベースシステムから受信した結合対象カラム情報及び結合対象カラムのデータに基づいて、第２の記憶手段に結合管理テーブルを生成する手段と、
和集合対象テーブルのカラムと結合管理テーブルのカラムの値を比較して、一致する値がある場合は、フラグを"１"とし、結合管理テーブルのフラグが"１"となっているレコードにカラムの値が一致した和集合対象テーブルのレコード番号を格納する手段と、
結合管理テーブルのフラグ"１"が付与されているカラムを等結合対象データベースシステムに送信する手段と、
等結合対象データベースシステムから受信した順序番号カラムを結合管理テーブルに格納し、該順序番号カラムに基づいて、和集合対象テーブルからレコード番号に対応するレコードを抽出する手段と、
抽出されたレコードに該当する順序番号を付与して等結合対象データベースシステムに送信する手段と、を有する。
【００１５】
本発明（請求項３）は、等結合の対象となる等結合対象テーブルを有する等結合対象データベースシステムと、和集合の対象となる和集合対象テーブルを有するＮ個の和集合対象データベースシステムと、からなり、データベースシステムがネットワーク上に分散している環境において、和集合集約処理と等結合処理を組み合わせて実行するための和集合集約処理と等結合処理の組み合わせを行うデータベースシステムの等結合対象データベースシステムであって、
等結合の対象となる等結合対象テーブルと、和演算結果テーブルと、結合結果テーブルを格納する記憶手段と、
各和集合対象データベースシステムへ、結合対象テーブルの結合対象カラム情報と、結合対象カラムのデータを送信する手段と、
和演算結果テーブルを記憶手段上に生成し、和集合対象データベースシステムから受信したデータに基づいて、カラムの値が"１"のカラム列のビット間でＯＲ演算を行った結果の行を該和演算結果テーブルの和演算カラムに格納し、ＯＲ演算の結果が"１"になるレコードの行番号の上位から順に番号を付与して順序番号カラムに格納し、該順序番号を和集合対象データベースシステムに送信する手段と、
和演算結果テーブルのカラムの値が"１"のレコードの番号に基づいて、結合対象テーブルから抽出されたレコードに順序番号を付与して、結合結果テーブルにコピーする手段と、
各和集合対象データベースシステムから受信したレコードの順序番号の値が結合結果テーブルのレコード番号と一致するように、該結合結果テーブルに格納する手段と、を有する。
【００１６】
本発明（請求項４）は、等結合の対象となる等結合対象テーブルを有する等結合対象データベースシステムと、和集合の対象となる和集合対象テーブルを有するＮ個の和集合対象データベースシステムと、からなり、データベースシステムがネットワーク上に分散している環境において、和集合集約処理と等結合処理を組み合わせて実行するための和集合集約処理と等結合処理の組み合わせを行うデータベースシステムの和集合対象データベースシステムであって、
和集合の対象となるレコードとレコード番号を保持する和集合対象テーブルと、結合管理テーブルとを格納する記憶手段と、
等結合対象データベースシステムから受信した結合対象カラム情報及び結合対象カラムのデータに基づいて、記憶手段に結合管理テーブルを生成する手段と、
和集合対象テーブルのカラムと結合管理テーブルのカラムの値を比較して、一致する値がある場合は、フラグを"１"とし、結合管理テーブルのフラグが"１"となっているレコードにカラムの値が一致した和集合対象テーブルのレコード番号を格納する手段と、
結合管理テーブルのフラグ"１"が付与されているカラムを等結合対象データベースシステムに送信する手段と、
等結合対象データベースシステムから受信した順序番号カラムを結合管理テーブルに格納し、該順序番号カラムに基づいて、和集合対象テーブルからレコード番号に対応するレコードを抽出する手段と、
抽出されたレコードに該当する順序番号を付与して等結合対象データベースシステムに送信する手段と、を有する。
【００１７】
本発明（請求項５）は、請求項３または４に記載のデータベースシステムを構成する各手段としてコンピュータを機能させるためのプログラムである。
【発明の効果】
【００１８】
上記のように、等結合対象データベースシステムにおいて、和集合演算をビット列の和演算（ＯＲ演算）として実施することで高速な和演算処理が可能となる。
【００１９】
さらに、等結合対象データベースの結合結果テーブルに格納する場所を、事前に順序番号として和集合対象データベースシステムの結合対象レコードに付与しておくことで、結合結果テーブルへの格納時にソートする必要がなくなるため、高速に格納することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】テーブル（表）の和集合の集約処理の例である。
【図２】等結合処理の例である。
【図３】和集合の集約処理と等結語処理を行った例である。
【図４】従来の第１の課題（巨大な中間記憶容量が必要な例）を示す図である。
【図５】従来の第２の課題（テーブル数が多くなる）を示す図である。
【図６】従来の第３の課題（集約処理に時間を要する）を示す図である。
【図７】本発明の一実施の形態におけるデータベースシステムの構成図である。
【図８】本発明の一実施の形態におけるデータベースシステムの集約・等結合処理のシーケンスチャート（その１）である。
【図９】本発明の一実施の形態におけるデータベースシステムの集約・等結合処理のシーケンスチャート（その２）である。
【図１０】本発明の一実施の形態における図８のステップ１０の動作を説明するための図である。
【図１１】本発明の一実施の形態における図８のステップ３０の動作を説明するための図である。
【図１２】本発明の一実施の形態における図８のステップ５０の動作を説明するための図である。
【図１３】本発明の一実施の形態における図８のステップ７０の動作を説明するための図である。
【図１４】本発明の一実施の形態における図８のステップ８０の動作を説明するための図である。
【図１５】本発明の一実施の形態における図８のステップ９０の動作を説明するための図である。
【図１６】本発明の一実施の形態における図８のステップ１００の動作を説明するための図である。
【図１７】本発明の一実施の形態における図９のステップ１２０の動作を説明するための図である。
【図１８】本発明の一実施の形態における図９のステップ１３０の動作を説明するための図である。
【図１９】本発明の一実施の形態における図９のステップ１４０の動作を説明するための図である。
【図２０】本発明の一実施の形態における図９のステップ１５０の動作を説明するための図である。
【図２１】本発明の一実施の形態における図９のステップ１７０の動作を説明するための図である。
【図２２】本発明の一実施の形態における図９のステップ１８０の動作を説明するための図である。
【図２３】本発明の一実施の形態における図９のステップ１９０の動作を説明するための図である。
【図２４】本発明の一実施の形態における図９のステップ２００の動作を説明するための図である。
【図２５】本発明の一実施の形態における図９のステップ２１０の動作を説明するための図（その１）である。
【図２６】本発明の一実施の形態における図９のステップ２３０の動作を説明するための図（その１）である。
【図２７】本発明の一実施の形態における図９のステップ２１０の動作を説明するための図（その２）である。
【図２８】本発明の一実施の形態における図９のステップ２３０の動作を説明するための図（その２）である。
【図２９】本発明の一実施の形態における図９のステップ２４０の動作を説明するための図である。
【発明を実施するための形態】
【００２１】
以下図面と共に、本発明の実施の形態を説明する。
【００２２】
＜システム構成＞
図７は、本発明の一実施の形態におけるデータベースシステムの構成を示す。
【００２３】
等結合の対象となるテーブルを保持するデータベースシステム１０１０(以下、「等結合対象ＤＢシステム」と記す)と、和集合演算の対象となるテーブルを保持する複数のデータベースシステム１０８０Ａ，１０８０Ｂ（以下、「和集合対象ＤＢシステム」と記す）とユーザ端末１１２０がネットワークで接続されており、等結合対象ＤＢシステム１０１０は、クエリ受信部１０２０、データ送受信１０３０、テーブル管理部１０４０、和演算結果テーブル管理部１０５０、結合結果テーブル管理部１０６０、結合結果テーブル送信部１０７０からなり、和集合対象ＤＢシステム１０８０Ａ、Ｂは、それぞれ、和集合対象データ送受信部１０９０Ａ，１０９０Ｂ、和集合対象テーブル管理部１１００Ａ，１１００Ｂ、結合管理テーブル管理部１１１０Ａ，１１１０Ｂからなる。図７では例として和集合対象ＤＢシステムの数（M）が２つの構成で記載しているが、和集合対象ＤＢシステムの数（M）が３以上の構成も可能である。
【００２４】
（１）ユーザ端末：
ユーザ端末１１２０は、ユーザからの処理依頼の入力として、１つの等結合対象ＤＢシステム名・テーブル名・結合対象カラム名と、和集合演算の対象となる複数個の和集合対象ＤＢシステム名・テーブル名・結合対象カラム名を受け取り、等結合対象ＤＢシステム１０１０に送信する。また、等結合対象ＤＢシステム１０１０から等結合結果テーブルの内容を受信し、ユーザのクエリへの結果として出力する。
【００２５】
（２）等結合対象ＤＢシステム：
等結合対象ＤＢシステム１０１０内の構成は以下の通りである。
【００２６】
クエリ受信部１０２０は、ユーザ端末１１２０から等結合対象ＤＢシステム名・テーブル名・結合対象カラム名と、和集合演算の対象となる複数個の和集合対象ＤＢシステム名・テーブル名・結合対象カラム名を入力として受け取り、データ送受信部１０３０に和集合演算の対象となる複数個の和集合対象ＤＢシステム名・テーブル名・結合対象カラム名を出力し、テーブル管理部１０４０に等結合対象ＤＢシステム名・テーブル名・結合対象カラム名を出力する。
【００２７】
データ送受信部１０３０は、クエリ受信部１０２０から入力された複数個の和集合対象ＤＢシステム名・テーブル名・結合対象カラム名を元に個々の和集合対象ＤＢシステム１０８０Ａ，Ｂにテーブル名・結合対象カラム名を送信し、またテーブル管理部１０４０から結合対象カラムを取得して各和集合対象ＤＢシステム１０８０Ａ，Ｂに送信し、また各和集合対象ＤＢシステム１０８０Ａ，Ｂから結合結果のフラグカラムを受信して和演算結果テーブル管理部１０５０に渡し、また和演算結果テーブル管理部１０５０から順序番号カラムを取得して各和集合対象ＤＢシステム１０８０Ａ，Ｂに送信し、各和集合対象ＤＢシステム１０８０Ａ，Ｂから順序番号付きのレコードを受信して結合結果テーブル管理部１０６０へ渡す。
【００２８】
テーブル管理部１０４０は、等結合対象のテーブルを格納し、クエリ受信部から結合対象テーブルと結合対象カラムの情報を受け取り、データ送受信部１０３０に結合対象カラムを出力し、和演算結果テーブル管理部１０５０の和演算結果列を元にレコードを抽出して結合結果テーブル管理部１０６０に渡す。
【００２９】
和演算結果テーブル管理部１０５０は、和演算結果テーブルを管理し、データ送受信部１０３０を介して各和集合対象ＤＢシステム１０８０から受信した複数個の結合結果のフラグカラムの内容を入力として受け取り、和演算結果テーブルに格納し、それらのフラグカラムの和演算を行い、その結果を和演算結果テーブルの和演算結果カラムに格納し、和演算結果テーブルの和演算結果カラムが１であるレコードに上から順に１から順番番号を付与して和演算結果テーブルの順序番号カラムに格納し、その順序番号カラムをデータ送受信部１０３０に出力する。
【００３０】
結合結果テーブル管理部１０６０は、結合結果テーブルを管理し、テーブル管理部１０４０から入力されるレコードを結合結果テーブルに格納し、データ送受信部１０３０から入力される順序番号つきレコードを、順序番号の値が結合結果テーブルのレコード番号と一致するように結合結果テーブルに格納し、すでに値が入っているレコードでは、カラムの値を加算する等の集約処理を行い、最終的な結合結果テーブルを結合結果テーブル送信部１０７０に出力する。
【００３１】
結合結果テーブル送信部１０７０は、結合結果テーブル管理部１０６０から最終的な結合結果テーブルを受け取り、ユーザ端末１１２０へ送信する。
【００３２】
（３）和集合対象ＤＢシステム：
和集合対象ＤＢシステム１０８０Ａ，Ｂ内の構成は以下の通りである。
【００３３】
和集合対象データ送受信部１０９０Ａ，Ｂは、それぞれ、等結合対象ＤＢシステム１０１０から等結合の対象となるテーブル名・結合対象カラム名を受信して和集合対象テーブル管理部１１００Ａ，Ｂに渡し、等結合対象ＤＢシステム１０１０から結合対象カラムを受信して結合管理テーブル管理部１１１０Ａ，Ｂに渡し、結合管理テーブル管理部１１１０Ａ，Ｂから結合結果のフラグカラムを受け取って等結合対象ＤＢシステム１０１０に送信し、等結合対象ＤＢシステム１０１０から順序番号カラムを受信して結合管理テーブル管理部１１１０Ａ，Ｂに渡し、結合管理テーブル管理部１１１０Ａ，Ｂから順序番号つきレコードを受け取って等結合対象ＤＢシステム１０１０へ送信する。
【００３４】
和集合対象テーブル管理部１１００Ａ，Ｂは、それぞれ、和集合対象ＤＢシステム内の和集合の対象となるテーブルを管理し、和集合対象データ送受信部１０９０Ａ，Ｂからテーブル名・結合対象カラム名を受けとり、結合管理テーブル管理部１１１０Ａ，Ｂからの、レコードやレコード番号の参照を受け付ける。
【００３５】
結合管理テーブル管理部１１１０Ａ，Ｂは、それぞれ、和集合対象データ送受信部１０９０Ａ，Ｂから等結合対象ＤＢシステム１０１０の結合対象カラムのデータを受け取って結合管理テーブルに格納し、その結合対象カラムと和集合対象テーブル管理部１１００Ａ，Ｂに格納されている和集合対象テーブルの結合対象カラムとの間で一致する値の有無を確認し、一致する値がある場合は"１"、ない場合は"0"となるように結合管理テーブルの結合結果のフラグのカラムに値を格納し、結合管理テーブルのフラグカラムの値が"１"となる行に、結合される和集合対象テーブル管理部１１００Ａ，Ｂの和集合対象テーブルのレコードのレコード番号をレコード番号カラムに格納し、フラグカラムのデータを和集合対象データ送受信部１０９０Ａ，Ｂに渡し、和集合対象データ送受信部１０９０Ａ，Ｂから順序番号カラムのデータを受け取って結合管理テーブルに格納し、和集合対象テーブル管理部１１００Ａ，Ｂから抽出したレコードに順序番号を付与した順序番号つきレコードを作製して和集合対象データ送受信部１０９０Ａ，Ｂへ渡す。
【００３６】
＜処理手順＞
次に、上記の構成における処理の流れを示す。
【００３７】
図８、図９は、本発明の一実施の形態におけるデータベースシステムの集約・等結合処理のフローチャートである。以下、図８、図９に沿って、図１０〜図２９を用いて一連の動作を説明する。
【００３８】
以下では、和集合対象ＤＢシステム数：M＝２の処理の流れの例であるが、結合対象テーブル数を３つ以上に増やせばM≧３の場合も同様にテーブルの等結合処理を行うことが可能である。
【００３９】
ユーザ端末１１２０から以下のクエリを送信する。具体的には図１０に示すように、「和集合対象ＤＢシステム１０８０ＡのテーブルＢ−０１と和集合対象ＤＢシステム１０８０ＢのテーブルＢ−０２の和集合となるテーブルと、等結合対象ＤＢシステム１０１０のテーブルＡ−０１を、和集合対象テーブルのカラムCol_B1とテーブルA−０１のカラムCol-A2を結合対象カラムとして等結合させる」というクエリを送信する（図８：ステップ１０）。
【００４０】
等結合対象ＤＢシステム１０１０は、ステップ１０にて送信されたクエリを受信する（ステップ２０）。
【００４１】
等結合対象ＤＢシステム１０１０は、図１１に示すように、データ送受信部１０３０から和集合対象ＤＢシステム１０８０Ａへ結合対象テーブルがＢ−０１であり、結合対象カラムがCol_B1であることを送信し、和集合対象ＤＢシステム１０８０Ｂへ結合対象テーブルがＢ−０２であり、結合対象カラムがCol_B1であることを送信する（ステップ３０）。
【００４２】
和集合対象ＤＢシステム１０８０Ａ，Ｂは、ステップ３０にて送信された結合対象テーブル、結合対象カラムの情報を受信する（ステップ４０）。
【００４３】
等結合対象ＤＢシステム１０１０は、図１２に示すように、テーブル管理部１０４０の等結合対象テーブルの結合対象カラム（列）Col_A2のデータを和集合対象ＤＢシステム１０８０Ａ，Ｂに送信する（ステップ５０）。
【００４４】
和集合対象ＤＢシステム１０８０Ａ，Ｂは、ステップ５０にて等結合対象ＤＢシステム１０１０から送信された結合対象カラム（列）Col_A2のデータを受信する（ステップ６０）。
【００４５】
和集合対象ＤＢシステム１０８０Ａの結合管理テーブル管理部１１１０Ａは、図１３に示すように、等結合対象ＤＢシステム１０１０から送付されたカラムCol_A2と、フラグB1、レコード番号、フラグB2のカラムからなる結合管理テーブルＢ−０１をメモリ上に確保する。和集合対象ＤＢシステム１０８０Ｂでも同様に結合管理テーブルＢ−０２を確保する（ステップ７０）。
【００４６】
各和集合対象ＤＢシステム１０８０Ａ，Ｂは、図１４に示すように、結合管理テーブルＢ−０１，Ｂ−０２のCol_A2のカラムと、和集合対象テーブルＢ−０１，Ｂ−０２の結合対象カラムの値の比較をして一致する値の有無を確認し、その有無をフラグB1,B2に"0"（無）または"1"（有）で格納する（ステップ８０）。
【００４７】
各和集合対象ＤＢシステム１０８０Ａ，Ｂは、図１５に示すように、結合管理テーブルＢ−０１，Ｂ−０２のフラグB1、B2が"１"となっているレコード（行）のレコード番号のカラムに、和集合対象テーブルＢ−０１，Ｂ−０２のカラムの値が一致するレコードのレコード番号（行番号）を格納する（ステップ９０）。
【００４８】
各和集合対象ＤＢシステム１０８０Ａ，Ｂの和集合対象データ送受信部１０９０Ａ，Ｂは、図１６に示すように、それぞれの結合管理テーブルＢ−０１,Ｂ−０２のフラグB1,B2カラム（列）を等結合対象ＤＢシステム１０１０に送信する（ステップ１００）。
【００４９】
等結合対象ＤＢシステム１０１０のデータ送受信部１０３０は、和集合対象ＤＢシステム１０８０Ａ，Ｂから送信されたフラグB1，B2カラム（列）を受信する（ステップ１１０）。
【００５０】
等結合対象ＤＢシステム１０１０は、図１７に示すように、フラグB1,B2のカラムと和演算結果カラムと順序番号カラムからなる和演算結果テーブルＡ−０１を和演算結果テーブル管理部１０５０のメモリ上に生成し、各和集合対象ＤＢシステム１０８０Ａ，Ｂから送信されたフラグB1,B2の値を格納する（ステップ１２０）。
【００５１】
等結合対象ＤＢシステム１０１０の和演算結果テーブル管理部１５０は、図１８に示すように、和演算結果テーブルＡ−０１において、フラグB1、B2のカラム（列）のビット列間の同一レコード（行）内でOR演算（和演算）を行い、和演算結果のカラム（列）に格納する（ステップ１３０）。
【００５２】
等結合対象ＤＢシステム１０１０の和演算結果テーブル管理部１０５０は、図１９に示すように、和演算結果テーブルＡ−０１で和演算結果カラムの値が"１"となるレコードに行番号の上位から順に１から番号を振って順序番号カラムに格納する（ステップ１４０）。
【００５３】
等結合対象ＤＢシステム１０１０のデータ送受信部１０４０は、図２０に示すように、和演算結果テーブル管理部１０５０の和演算結果テーブルＡ−０１の順序番号のカラム（列）を和集合対象ＤＢシステム１０８０Ａ，Ｂにそれぞれに送信する（ステップ１５０）。
【００５４】
和集合対象ＤＢシステム１０８０Ａ，Ｂおいて、ステップ１５０で等結合対象ＤＢシステム１０１０から送信された順序番号のカラム（列）の内容を受信する（ステップ１６０）。
【００５５】
和集合対象ＤＢシステム１０８０Ａ，Ｂは、図２１に示すように、等結合対象ＤＢシステム１０１０から送信された順序番号のカラム（列）の内容を結合管理テーブルＢ−０１,Ｂ−０２の順序番号のカラム（列）に格納する（ステップ１７０）。
【００５６】
和集合対象ＤＢシステム１０８０Ａ，Ｂの結合管理テーブル管理部１１１０Ａ，Ｂは、それぞれ、図２２に示すように、結合管理テーブルＢ−０１,Ｂ−０２のレコード番号カラムの値を元にして、テーブル管理部１１００Ａ，Ｂの和集合対象テーブルＢ−０１，Ｂ−０２から該当するレコード番号のレコード（行）を抽出する（ステップ１８０）。
【００５７】
等結合対象ＤＢシステム１０１０の和演算結果テーブル管理部１０５０は、図２３に示すように、和演算結果テーブルＡ−０１の和演算結果カラム（列）の値が"１"であるレコード（行）のレコード番号について、テーブル管理部１４０のテーブルＡ−０１からそのレコード番号のレコード（行）を抽出する（ステップ１９０）。
【００５８】
等結合対象ＤＢシステム１０１０の結合結果テーブル管理部１０７０は、図２４に示すように、テーブル管理部１０４０のテーブルＡ−０１から抽出されたレコードを結合結果テーブル１０７０にコピーする（ステップ２００）。
【００５９】
和集合対象ＤＢシステム１０８０Ａは、図２５に示すように、ステップ１８０にてテーブル管理部１１００Ａで抽出されたテーブルＢ−０１の各レコードに、該当する順序番号を付与し、順序番号つきレコードとして等結合対象ＤＢシステム１０１０へ送信する（ステップ２１０）。和集合対象ＤＢシステム１０８０Ｂについても図２７に示すように、上記と同様の処理を行う（ステップ２１０）。
【００６０】
等結合対象ＤＢシステム１０１０は、和集合対象ＤＢシステム１０８０Ａ，Ｂから送信された順序番号つきレコードをそれぞれ受信する（ステップ２２０）。
【００６１】
等結合対象ＤＢシステム１０１０の結合結果テーブル管理部１０６０は、図２６に示すように、順序番号つきレコードの順序番号の値が結合結果テーブルＲのレコード番号と一致するように、順序番号つきレコードを結合結果テーブルＲに格納する。和集合対象ＤＢシステム１０８０Ｂについても、図２８に示すように、上記と同様の処理を行う。既に値が入っているレコードでは、Col_B2の値を加算する（ステップ２３０）。
【００６２】
等結合対象ＤＢシステム１０１０のデータ送受信部１０３０は、図２９に示すように、結合結果テーブルＲの内容をユーザ端末１１２０に転送する（ステップ２４０）。
【００６３】
ユーザ端末１１２０は結合結果テーブルＲの内容を受信して表示する（ステップ２５０）。
【００６４】
上記のように、本発明では、（X∪Y）∩Zのように先にカッコ内の和集合の集約処理をする方法のように巨大な中間記憶領域は必要ない。また（X∩Z）∪（Y∩Z）のように先にカッコ内の等結合処理を先に実施する方法を単純に行う場合と比較して、上記のステップ０１３０に示すように和集合演算をビット列の和演算として実施することで高速な和演算処理が可能であり、さらに、ステップ１４０〜ステップ１７０に示すように、結合結果テーブルに格納する場所を、事前に順序番号として和集合対象ＤＢシステムの結合対象レコードに付与しておくことで、結合結果テーブルへの格納時にソートする必要がなくなるため、高速に格納することが可能となる。
【００６５】
なお、上記の等結合対象データベースシステム及び和集合対象データベースシステムの各装置の動作をプログラムとして構築し、等結合対象データベースシステム及び和集合対象データベースシステムとして利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【００６６】
また、構築されたプログラムを、ハードディスク装置や、フレキシブルディスク、ＣＤ−ＲＯＭ等の可搬記憶媒体に格納し、コンピュータにインストールする、または、配布することが可能である。
【００６７】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【００６８】
１０１０  等結合対象データベースシステム
１０２０  クエリ受信部
１０３０  データ送受信部
１０４０  テーブル管理部
１０５０  和演算結果テーブル管理部
１０６０  結合結果テーブル管理部
１０７０  結合結果テーブル送信部
１０８０Ａ，１０８０Ｂ  和集合対象データベースシステム
１０９０Ａ，１０９０Ｂ  和集合対象データ送受信部
１１００Ａ、１１００Ｂ  和集合対象テーブル管理部
１１１０Ａ，１１１０Ｂ  等管理テーブル管理部
１１２０  ユーザ端末
【図１】
2011242851.tif 000003
【図２】
2011242851.tif 000004
【図３】
2011242851.tif 000005
【図４】
2011242851.tif 000006
【図５】
2011242851.tif 000007
【図６】
2011242851.tif 000008
【図７】
2011242851.tif 000009
【図８】
2011242851.tif 000010
【図９】
2011242851.tif 000011
【図１０】
2011242851.tif 000012
【図１１】
2011242851.tif 000013
【図１２】
2011242851.tif 000014
【図１３】
2011242851.tif 000015
【図１４】
2011242851.tif 000016
【図１５】
2011242851.tif 000017
【図１６】
2011242851.tif 000018
【図１７】
2011242851.tif 000019
【図１８】
2011242851.tif 000020
【図１９】
2011242851.tif 000021
【図２０】
2011242851.tif 000022
【図２１】
2011242851.tif 000023
【図２２】
2011242851.tif 000024
【図２３】
2011242851.tif 000025
【図２４】
2011242851.tif 000026
【図２５】
2011242851.tif 000027
【図２６】
2011242851.tif 000028
【図２７】
2011242851.tif 000029
【図２８】
2011242851.tif 000030
【図２９】
2011242851.tif 000031