(57)【要約】【課題】データベースシステムにおける３つ以上のテーブルの等結合を高速に行う。【解決手段】データベースシステムのデータベース装置１０Ｂ，１０Ｃはそれぞれ、結合対象テーブルにおける結合対象カラムの同じ値の有無を判断し、その結果を示したカラム情報をデータベース装置１０Ａへ返す。データベース装置１０Ａは、このカラム情報をもとに、結合対象カラムの値のうち、自身の結合対象テーブル、データベース装置１０Ｂ，１０Ｃの結合対象テーブルすべてに共通する値を見つける。そして、データベース装置１０Ａは、この共通する値に対応するレコードをデータベース装置１０Ｂ，１０Ｃから取得し、自身の結合対象テーブルのレコードと結合する。【選択図】図２
2010117951.tif 000002
【特許請求の範囲】
【請求項１】
データベースシステムにおいて３以上のテーブルのレコードを等結合するデータベース装置であって、
データの入出力を司る入出力部と、
複数のカラムの値からなる１以上のレコードを備えたテーブルを記憶する記憶部と、
前記入出力部経由で、３以上の結合対象テーブルの識別情報と、そのテーブルにおける結合対象カラムの識別情報とを示した結合指示情報の入力を受け付ける結合クエリ受信部と、
前記入出力部経由で、前記３以上の結合対象テーブルのうち、自身の保持するテーブル以外のテーブルを保持するデータベース装置へ、自身のテーブルにおける結合対象カラムの値と、結合対象カラムの識別情報と、前記結合対象テーブルの識別情報と、前記自身のデータベース装置の識別情報とを示したカラム情報取得要求を送信するカラム情報取得要求送信部と、
前記入出力部経由で、前記他のデータベース装置から、当該他のデータベース装置における前記結合対象テーブルの結合対象カラムの値について、前記自身のテーブルにおける結合対象カラムの値と同じ値の有無を示したカラム情報を取得するカラム情報受信部と、
前記入出力部経由で、前記他のデータベース装置から受信したカラム情報をもとに、前記自身の結合対象テーブルおよび前記各他のデータベース装置の結合対象テーブルすべてに存在する前記結合対象カラムの値を判断するＡＮＤ演算処理を行うＡＮＤ演算部と、
前記入出力部経由で、前記結合対象カラムの値を保持する他のデータベース装置それぞれへ、前記ＡＮＤ演算処理により得られたカラムの値に対応するレコードの取得要求であるレコード取得要求を送信するレコード取得要求部と、
前記入出力部経由で、前記レコード取得要求に応じて、前記他のデータベース装置それぞれから送信されたレコードと、前記自身の結合対象テーブルにおける、前記ＡＮＤ演算処理により得られたカラムの値に対応するレコードとを結合するレコード結合処理部とを備えることを特徴とするデータベース装置。
【請求項２】
請求項１に記載のデータベース装置を含むデータベースシステムにおいて、前記カラム情報取得要求を受信する第２のデータベース装置であって、
データの入出力を司る入出力部と、
複数のカラムの値からなる１以上のレコードを備えたテーブルを記憶する記憶部と、
前記入出力部経由で、他のデータベース装置から、前記カラム情報取得要求を受信するカラム情報取得要求受信部と、
前記入出力部経由で、自身の保持する結合対象テーブルのカラムのうち、前記カラム情報取得要求に示される結合対象カラムについて、このカラム情報取得要求に示される結合対象カラムの値と同じ値の有無を示したカラム情報を作成し、前記他のデータベース装置へ送信するカラム情報送信部と、
前記入出力部経由で、前記他のデータベース装置から、前記レコード取得要求を受信するレコード取得要求受信部と、
前記自身の保持する結合対象テーブルのレコードのうち、前記レコード取得要求に示されるカラムの値に対応するレコードを抽出し、この抽出したレコードを、前記入出力部経由で、前記他のデータベース装置へ送信するレコード送信部とを備えることを特徴とするデータベース装置。
【請求項３】
前記入出力部経由で、他のデータベース装置から、前記カラム情報取得要求を受信するカラム情報取得要求受信部と、
前記入出力部経由で、自身の保持する結合対象テーブルのカラムのうち、前記カラム情報取得要求に示される結合対象カラムについて、このカラム情報取得要求に示される結合対象カラムの値と同じ値の有無を示したカラム情報を作成し、前記他のデータベース装置へ送信するカラム情報送信部と、
前記入出力部経由で、前記他のデータベース装置から、前記レコード取得要求を受信するレコード得要求受信部と、
前記自身の保持する結合対象テーブルのレコードのうち、前記レコード取得要求に示される結合対象カラムの値に対応するレコードを抽出し、この抽出したレコードを、前記入出力部経由で、前記他のデータベース装置へ送信するレコード送信部とをさらに備えることを特徴とする請求項１に記載のデータベース装置。
【請求項４】
前記カラム情報は、当該他のデータベース装置における前記結合対象テーブルの結合対象カラムの値それぞれについて、前記自身のテーブルにおける結合対象カラムの値と同じ値の有無をビット列で示した情報であり、
前記ＡＮＤ演算部は、前記ビット列を用いたＡＮＤ演算処理を実行し、
前記レコード取得要求は、前記取得要求の対象であるレコードに対応するカラムの値をビット列で示した情報であることを特徴とする請求項１または請求項３に記載のデータベース装置。
【請求項５】
請求項１に記載のデータベース装置と２以上の請求項２に記載のデータベース装置、または、３以上の請求項３に記載のデータベース装置を含んでなることを特徴とするデータベースシステム。
【請求項６】
データベースシステムにおいて３以上のテーブルのレコードを等結合するテーブルデータ結合方法であって、
前記データベースシステムを構成し、複数のカラムの値からなる１以上のレコードを備えた第１のデータベース装置は、
３以上の結合対象テーブルの識別情報と、そのテーブルにおける結合対象カラムの識別情報とを示した結合指示情報の入力を受け付け、
前記３以上の結合対象テーブルのうち、自身の保持するテーブル以外のテーブルを保持する第２のデータベース装置へ、自身のテーブルにおける結合対象カラムの値と、結合対象カラムの識別情報と、前記結合対象テーブルの識別情報と、前記第１のデータベース装置の識別情報とを示したカラム情報取得要求を送信し、
前記第２のデータベース装置はそれぞれ、
前記第１のデータベース装置から、前記カラム情報取得要求を受信し、
自身の保持する結合対象テーブルの結合対象カラムの値について、前記カラム情報取得要求に示される結合対象カラムの値と同じ値の有無を示したカラム情報を作成し、前記第１のデータベース装置へ送信し、
前記第１のデータベース装置は、
前記第２のデータベース装置それぞれから、前記カラム情報を受信し、
前記受信したカラム情報をもとに、前記第１のデータベース装置の結合対象テーブルおよび前記第２のデータベース装置それぞれの結合対象テーブルのすべてに存在する前記結合対象カラムの値を判断するＡＮＤ演算処理を行い、
前記第２のデータベース装置それぞれへ、前記ＡＮＤ演算処理により得られたカラムの値に対応するレコードの取得要求であるレコード取得要求を送信し、
前記第２のデータベース装置はそれぞれ、
前記第１のデータベース装置から、前記レコード取得要求を受信し、
前記第２のデータベース装置が備える結合対象テーブルのレコードのうち、前記レコード取得要求に示されるカラムの値に対応するレコードを抽出し、この抽出したレコードを、前記第１のデータベース装置へ送信し、
前記第１のデータベース装置は、
前記第２のデータベース装置それぞれから、前記レコードを受信し、
前記受信したレコードと、前記第１のデータベース装置の結合対象テーブルにおける、前記ＡＮＤ演算処理により得られたカラムの値に対応するレコードとを結合することを特徴とするテーブルデータ結合方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散データベースシステムにおけるテーブルの結合技術に関する。特に３つ以上のデータベース装置がネットワーク内に分散しているシステムにおいて、各データベース装置の保持するテーブルのレコードのうち、結合対象カラムとして指定されたカラム（列）の値が同じであるレコードを結合して、等結合結果テーブルを作成する技術に関する。
【背景技術】
【０００２】
従来から、データベースの複数テーブルのカラムの値について、そのカラムの値が等しいレコードを結合させる等結合処理がある。図１９は、比較例となる等結合処理を概念的に示した図である。図１９に示すように、例えば、商品名ごとに、その商品の価格を示したテーブル１と、商品名ごとに、その商品の受注日と受注数とを示したテーブル２を、商品名カラムを結合対象カラムとして、１つのテーブルに結合する場合を考える。このような場合、テーブル１の商品名カラムの値（商品名）と、テーブル２の商品名カラムの値（商品名）とを比較し、テーブル１，２で同じ商品名の値を持つレコードを結合させる。例えば、これらのテーブル１，２で共通する商品名は「きゅうり、なす、ピーマン、かぼちゃ」である。よって、テーブル１，２からこれらの商品の受注日と受注数を読み出し、これらのデータを結合して、テーブル１＋２を作成する。ここで、３つ以上のテーブルを等結合する場合には、前記したような２つのテーブルの結合を繰り返す（非特許文献１）。例えば、図１９に示すように、テーブル１，２，３という３つのテーブルを等結合する場合、まずテーブル１，２を等結合し、テーブル１＋２を得る。そして、テーブル１＋２と、テーブル３とを等結合し、テーブル１＋２＋３を得る。
【０００３】
また、複数テーブル間の等結合処理が必要とされるデータウェアハウス向けのデータベースシステムでは、スターインデックスが考案されている（非特許文献２）。このスターインデックスは、１つの事実テーブルと複数の次元テーブルからなるスタースキーマにおいて、事実テーブルの個々の行に対応する複数の外部キー（各次元テーブルのそれぞれの主キー）を事前にまとめて複合インデックスとして構築しておくものである。図２０に示すように、売上明細（事実テーブル）に対し、顧客、商品、地区、店舗という次元テーブルが存在するとする。このような場合、売上明細に対し、顧客、商品、地区、店舗という次元テーブルとの組み合わせ分だけのインデックス（スターインデックス）を作成しておく。このようにすることで、例えば、売上明細「xxxxxx」に対する地区、店舗、顧客、商品に関する情報を、各次元テーブルの主キーで高速に参照することが可能であるため、結合処理の高速化が可能となる。
【非特許文献１】李華植、“データベースパフォーマンスアップの教科書  基本原理編”、第６章、p.466、株式会社翔泳社、2007年8月5日
【非特許文献２】西川陽一、“図解・標準  最新データベース技術  マスタリングハンドブック”chapter9、p.420、株式会社秀和システム、2002年11月11日
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このように、３つ以上のテーブルについて、１つのカラムを結合対象カラムとして等結合をするとき、２つのテーブルを等結合する処理を繰り返す方法では、中間状態のテーブルのサイズが非常に大きくなってしまう。例えば、前記した図１９に示すテーブル１，２，３を等結合する場合、テーブル１，２，３の等結合の結果のテーブル１＋２＋３は、テーブル１，２，３の商品名のうち「きゅうり、かぼちゃ」のレコードのみがあればよい。ところが、テーブル１＋２においては、「きゅうり、なす、ピーマン、かぼちゃ」に関するデータも必要となる。つまり、最終的には、このテーブル１，２，３の間で共通する商品名のデータのみを結合させればよいところ、テーブルを２つずつ等結合していく方法では、中間段階で余分に等結合を行うことになる。このため、テーブルの結合の多くのメモリ領域を用いることになり、また、結合対象のテーブルが多数になれば等結合処理の負荷も大きくなる。
【０００５】
また、前記したスターインデックスによる複数テーブルの等結合をする場合、事実テーブルの各レコードに対応する各次元テーブルのレコードの主キーを、外部キーとして事前にまとめてスターインデックスを構築しておく必要がある。よって、スターインデックスには外部キー制約が発生する。任意の複数のテーブル間での柔軟な組み合わせで高速な等結合処理を実施するためには、外部キー制約が設定されていなくても高速な等結合処理が可能であることが必要であるため、スターインデックスによる手法は適さない。
【０００６】
そこで、本発明は、前記した課題を解決し、データベースシステムの３つ以上のテーブルについて、１つのカラムを結合対象カラムとして等結合をするとき、等結合処理の負荷を軽減し、等結合処理を高速化することを目的とする。
【課題を解決するための手段】
【０００７】
前記した課題を解決するため、請求項１に記載の発明は、データベースシステムにおいて３以上のテーブルのレコードを等結合するデータベース装置が、データの入出力を司る入出力部と、複数のカラムの値からなる１以上のレコードを備えたテーブルを記憶する記憶部と、入出力部経由で、３以上の結合対象テーブルの識別情報と、そのテーブルにおける結合対象カラムの識別情報とを示した結合指示情報の入力を受け付ける結合クエリ受信部と、入出力部経由で、３以上の結合対象テーブルのうち、自身の保持するテーブル以外のテーブルを保持するデータベース装置へ、自身のテーブルにおける結合対象カラムの値と、結合対象カラムの識別情報と、結合対象テーブルの識別情報と、自身のデータベース装置の識別情報とを示したカラム情報取得要求を送信するカラム情報取得要求送信部と、入出力部経由で、他のデータベース装置から、当該他のデータベース装置における結合対象テーブルの結合対象カラムの値について、自身のテーブルにおける結合対象カラムの値と同じ値の有無を示したカラム情報を取得するカラム情報受信部と、入出力部経由で、他のデータベース装置から受信したカラム情報をもとに、自身の結合対象テーブルおよび各他のデータベース装置の結合対象テーブルすべてに存在する結合対象カラムの値を判断するＡＮＤ演算処理を行うＡＮＤ演算部と、入出力部経由で、結合対象カラムの値を保持する他のデータベース装置それぞれへ、ＡＮＤ演算処理により得られたカラムの値に対応するレコードの取得要求であるレコード取得要求を送信するレコード取得要求部と、入出力部経由で、レコード取得要求に応じて、他のデータベース装置それぞれから送信されたレコードと、自身の結合対象テーブルにおける、ＡＮＤ演算処理により得られたカラムの値に対応するレコードとを結合するレコード結合処理部とを備えることを特徴とする。
【０００８】
請求項２に記載の発明は、請求項１に記載のデータベース装置を含むデータベースシステムにおいて、カラム情報取得要求を受信する第２のデータベース装置が、データの入出力を司る入出力部と、複数のカラムの値からなる１以上のレコードを備えたテーブルを記憶する記憶部と、入出力部経由で、他のデータベース装置から、カラム情報取得要求を受信するカラム情報取得要求受信部と、入出力部経由で、自身の保持する結合対象テーブルのカラムのうち、カラム情報取得要求に示される結合対象カラムについて、このカラム情報取得要求に示される結合対象カラムの値と同じ値の有無を示したカラム情報を作成し、前記他のデータベース装置へ送信するカラム情報送信部と、入出力部経由で、他のデータベース装置から、レコード取得要求を受信するレコード取得要求受信部と、自身の保持する結合対象テーブルのレコードのうち、レコード取得要求に示されるカラムの値に対応するレコードを抽出し、この抽出したレコードを、入出力部経由で、他のデータベース装置へ送信するレコード送信部とを備えることを特徴とする。
【０００９】
請求項５に記載の発明は、請求項１に記載のデータベース装置と２以上の請求項２に記載のデータベース装置、または、３以上の請求項３に記載のデータベース装置を含んでなることを特徴とするデータベースシステムとした。
【００１０】
請求項６に記載の発明は、データベースシステムにおいて３以上のテーブルのレコードを等結合するテーブルデータ結合方法であって、データベースシステムを構成し、複数のカラムの値からなる１以上のレコードを備えた第１のデータベース装置は、３以上の結合対象テーブルの識別情報と、そのテーブルにおける結合対象カラムの識別情報とを示した結合指示情報の入力を受け付け、３以上の結合対象テーブルのうち、自身の保持するテーブル以外のテーブルを保持する第２のデータベース装置へ、自身のテーブルにおける結合対象カラムの値と、結合対象カラムの識別情報と、結合対象テーブルの識別情報と、第１のデータベース装置の識別情報とを示したカラム情報取得要求を送信し、第２のデータベース装置はそれぞれ、第１のデータベース装置から、カラム情報取得要求を受信し、自身の保持する結合対象テーブルの結合対象カラムの値それぞれについて、カラム情報取得要求に示される結合対象カラムの値と同じ値の有無を示したカラム情報を作成し、第１のデータベース装置へ送信し、第１のデータベース装置は、第２のデータベース装置それぞれから、カラム情報を受信し、受信したカラム情報をもとに、第１のデータベース装置の結合対象テーブルおよび第２のデータベース装置それぞれの結合対象テーブルのすべてに存在する結合対象カラムの値を判断するＡＮＤ演算処理を行い、第２のデータベース装置それぞれへ、ＡＮＤ演算処理により得られたカラムの値に対応するレコードの取得要求であるレコード取得要求を送信し、第２のデータベース装置はそれぞれ、第１のデータベース装置から、レコード取得要求を受信し、第２のデータベース装置が備える結合対象テーブルのレコードのうち、レコード取得要求に示されるカラムの値に対応するレコードを抽出し、この抽出したレコードを、第１のデータベース装置へ送信し、第１のデータベース装置は、第２のデータベース装置それぞれから、レコードを受信し、受信したレコードと、第１のデータベース装置の結合対象テーブルにおける、ＡＮＤ演算処理により得られたカラムの値に対応するレコードとを結合することを特徴とするテーブルデータ結合方法とした。
【００１１】
このようにすることで、結合指示情報の入力を受け取ったデータベース装置（以下、結合始点のデータベース装置という）は、結合対象テーブルを保持する他のデータベース装置（被結合側のデータベース装置）それぞれから、そのデータベース装置の結合対象テーブルにおける結合対象カラムの値の有無を示したカラム情報を取得する。そして、結合始点のデータベース装置は、自身のデータベース装置および被結合側のデータベース装置の結合対象テーブルすべてに共通する結合対象カラムの値を見つける。この後、結合始点のデータベース装置は、被結合側のデータベース装置へ、各結合対象テーブルに共通する結合対象カラムの値を送信し、被結合側のデータベース装置の各テーブルから、この値に対応するレコードを取得する。そして、結合始点のデータベース装置は、取得したレコードと、自身の結合対象テーブルにおける結合対象カラムのレコードとを結合させる。例えば、結合対象カラムが商品名に関するカラムであるとき、結合始点となるデータベース装置は、被結合側のデータベース装置の結合対象テーブルにおける商品名に関するカラムの値（商品名）のうち、自身の結合対象テーブルの商品名のカラムの値と同じ値を取得する。そして、各データベース装置の結合対象テーブルすべてに共通する商品名を特定する。次に、結合始点のデータベース装置は、各データベース装置の結合対象テーブルすべてに共通する商品名に関するレコードを被結合側のデータベース装置それぞれから取得する。結合始点のデータベース装置は、結合対象テーブルすべてに共通する商品名に関するレコード（例えば、その商品名の商品の個数や価格等の情報）を、自身のテーブルから抽出する。そして、この抽出したレコードと、被結合側のデータベース装置それぞれから取得したレコードとを結合させる。つまり、結合始点となるデータベース装置は、被結合側のデータベース装置それぞれにおいて、この被結合側のデータベース装置の結合対象テーブルの結合対象カラムに、この結合始点のデータベース装置の結合対象テーブルの結合対象カラムに示される値と同じ値があるか否か判断の処理を並列実行させる。そして、結合始点となるデータベース装置は、その処理結果を用いて、データベースシステム内のすべての結合対象テーブルの結合対象カラムの値で共通する値を絞り込み、その絞り込んだ結合対象カラムの値に対応するレコードを、被結合側のデータベース装置から受信する。よって、データベースシステム内のデータベース装置におけるテーブルの等結合処理の負荷を軽減し、等結合処理を高速化することができる。
【００１２】
請求項３に記載の発明は、請求項１に記載のデータベース装置が、入出力部経由で、他のデータベース装置から、カラム情報取得要求を受信するカラム情報取得要求受信部と、入出力部経由で、自身の保持する結合対象テーブルのカラムのうち、カラム情報取得要求に示される結合対象カラムについて、このカラム情報取得要求に示される結合対象カラムの値と同じ値の有無を示したカラム情報を作成し、前記他のデータベース装置へ送信するカラム情報送信部と、入出力部経由で、他のデータベース装置から、レコード取得要求を受信するレコード得要求受信部と、自身の保持する結合対象テーブルのレコードのうち、レコード取得要求に示される結合対象カラムの値に対応するレコードを抽出し、この抽出したレコードを、入出力部経由で、他のデータベース装置へ送信するレコード送信部とをさらに備えることを特徴とする。
【００１３】
このようにすることで、データベースシステム内のデータベース装置は、結合始点のデータベース装置としての機能と、被結合側のデータベース装置としての機能の両方を持ち合わせることができる。つまり、データベース装置が結合指示情報の入力を受け付けたときは、結合始点のデータベース装置として機能させ、他のデータベース装置からカラム情報取得要求を受信したときには、被結合側のデータベース装置として機能させることができる。
【００１４】
請求項４に記載の発明は、請求項１または請求項３に記載のデータベース装置におけるカラム情報が、当該他のデータベース装置における結合対象テーブルの結合対象カラムの値それぞれについて、自身のテーブルにおける結合対象カラムの値と同じ値の有無をビット列で示した情報であり、ＡＮＤ演算部は、ビット列を用いたＡＮＤ演算処理を実行し、レコード取得要求は、取得要求の対象であるレコードに対応するカラムの値をビット列で示した情報であることを特徴とする。
【００１５】
このようにすることで、データベース装置がＡＮＤ演算処理を実行するときの処理負荷を軽減できる。また、カラム情報およびレコード取得要求のデータ量を少なくできるので、等結合処理のために必要となるデータ送受信の負荷を低減できる。よって、データベースシステムにおけるテーブルの等結合処理の負荷をよりいっそう軽減し、等結合処理を高速化することができる。
【発明の効果】
【００１６】
本発明によれば、データベースシステムの３つ以上のテーブルについて、１つのカラムを結合対象カラムとして等結合をするとき、等結合処理の負荷を軽減し、等結合処理を高速化することができる。
【発明を実施するための最良の形態】
【００１７】
≪概要≫
以下、本発明を実施するための最良の形態（以下、実施の形態という）について説明する。まず、本実施の形態のデータベースシステムの概要を説明する。図１および図２は、本実施の形態のデータベースシステムの概要を説明した図である。
【００１８】
図１に示すように、データベースシステムは、データベース装置１０（１０Ａ，１０Ｂ，１０Ｃ）を備え、これらのデータベース装置１０は、インターネットやＬＡＮ（Local Area Network）等のネットワーク３０により接続される。データベース装置１０（１０Ａ，１０Ｂ，１０Ｃ）はそれぞれ、テーブル記憶部１３３に結合対象テーブルとしてのテーブルＡ０１，Ｂ０１，Ｃ０１を備える。そして、このデータベース装置１０Ａが、テーブルＡ０１のＣｏｌ＿Ａ２（Tokyo，Osaka，Nagoya，Chiba，Kobe）を結合対象カラムとして、テーブルＡ０１，Ｂ０１，Ｃ０１におけるこの結合対象カラムのレコードを等結合する場合を例に説明する。つまり、データベース装置１０Ａは、データベース装置１０Ｂ，１０ＣのテーブルＢ０１，Ｃ０１から、テーブルＡ０１のＣｏｌ＿Ａ２の値「Tokyo，Osaka，Nagoya，Chiba，Kobe」に対応するレコードを受信し、テーブルＡ０１のレコードと結合する場合を例に説明する。
【００１９】
まず、データベース装置１０Ａは、外部の端末装置等から、結合対象テーブルがテーブルＡ０１，Ｂ０１，Ｃ０１であり、また、テーブルＡ０１の結合対象カラムがＣｏｌ＿Ａ２であり、テーブルＢ０１の結合対象カラムがＣｏｌ＿Ｂ１であり、また、テーブルＣ０１の結合対象カラムがＣｏｌ＿Ｃ４であることを示す結合指示情報の入力を受け付ける。そして、このデータベース装置１０Ａは、結合対象カラムであるＣｏｌ＿Ａ２の値「Tokyo，Osaka，Nagoya，Chiba，Kobe」をデータベース装置１０Ｂ，１０Ｃへ送信する（図１の（１））。
【００２０】
データベース装置１０Ｂ，１０Ｃはそれぞれ、結合対象カラムの値を受信すると、自身のテーブルＢ０１，Ｃ０１における結合対象カラムの値との比較を行い、同じ値の有無を判断する。例えば、データベース装置１０Ｂは、Ｃｏｌ＿Ａ２の値「Tokyo，Osaka，Nagoya，Chiba，Kobe」のうち、Ｃｏｌ＿Ｂ１と同じ値を持つもの（「Tokyo，Osaka，Chiba，Kobe」）を判断する。同様に、データベース装置１０Ｃも、Ｃｏｌ＿Ａ２の値「Tokyo，Osaka，Nagoya，Chiba，Kobe」のうち、テーブルＣ０１のＣｏｌ＿Ｃ４と同じ値を持つもの（「Tokyo，Nagoya，Kobe」）を判断する。つまり、データベース装置１０Ｂ，１０Ｃは、データベース装置１０Ａから送信されてきた結合対象カラムの値について、自身のテーブルＢ０１，Ｃ０１の結合対象カラムの値とのＡＮＤ演算処理を行う。そして、データベース装置１０Ｂ，１０ＣはテーブルＢ０１，Ｃ０１の結合対象カラムの値のうち、データベース装置１０Ａから送信されてきた結合対象カラムの値と同じ値を持つものをカラム情報として、データベース装置１０Ａへ送信する（図１の（２））。ここでは、データベース装置１０Ｂ，１０Ｃがそれぞれ、等結合管理テーブルＢ１，Ｃ１上に、Ｃｏｌ＿Ａ２の値「Tokyo，Osaka，Nagoya，Chiba，Kobe」を順に並べ、その値それぞれについて、テーブルＢ０１，Ｃ０１上にあるか否かを「０」および「１」の並びでフラグＢ１，Ｃ１に示す。そして、このフラグＢ１，Ｃ１の値をカラム情報として、データベース装置１０Ａへ送信する。つまり、データベース装置１０Ｂは、「Tokyo，Nagoya，Kobe」を示す「１，１，０，１，１」をカラム情報として送信し、データベース装置１０Ｃは、「Tokyo，Nagoya，Kobe」を示す「１，０，１，０，１」をカラム情報として送信する。
【００２１】
ここで、データベース装置１０Ａは、データベース装置１０Ｂ，１０Ｃそれぞれからカラム情報を受信すると、等結合管理テーブルＡ１上で、カラム情報に示される値のＡＮＤ演算処理を行う（図１の（３））。例えば、図１に示すように、データベース装置１０Ａは等結合管理テーブルＡ１を用いてデータベース装置１０Ｂ，１０Ｃから受信したフラグＢ１の値と、フラグＣ１の値とのＡＮＤ演算処理を行い、「１，０，０，０，１」という値を得る。これにより、データベース装置１０Ａは、Ｃｏｌ＿Ａ２に示す値のうち、テーブルＢ０１，Ｃ０１の両方に存在する値は、「Tokyo，Kobe」であることを知る。
【００２２】
図２の説明に移る。次に、データベース装置１０Ａは、テーブルＡ０１から、この「Tokyo，Kobe」に対応するレコード（つまり、「Tokyo，Kobe」それぞれに対応するＣｏｌ＿Ａ１，Ａ３，Ａ４の値）を抽出し（図２の（４））、結合結果テーブル００１に書き込む。
【００２３】
また、データベース装置１０Ａは、データベース装置１０Ｂ，１０Ｃへ、この「Tokyo，Kobe」に対応するレコードの取得要求（レコード取得要求）を送信する（図２の(５））。ここで、送信するレコード取得要求は、例えば、「Tokyo，Kobe」を「０」および「１」の並びで示した「１，０，０，０，１」等である。
【００２４】
このレコード取得要求を受信したデータベース装置１０Ｂ，１０Ｃは、テーブルＢ０１，Ｃ０１から、レコード取得要求に示される「Tokyo，Kobe」に対応するレコードを抽出し、データベース装置１０Ａへ送信する（図２の（６））。つまり、データベース装置１０Ｂは、テーブルＢ０１から、「Tokyo，Kobe」に対応するＣｏｌ＿Ｂ２，Ｂ３，Ｂ４の値をデータベース装置１０Ａへ送信し、データベース装置１０Ｃは、テーブルＣ０１から「Tokyo，Kobe」に対応するＣｏｌ＿Ｃ１，Ｃ２，Ｃ３の値をデータベース装置１０Ａへ送信する。
【００２５】
データベース装置１０Ａは、データベース装置１０Ｂ，１０Ｃから送信されたレコード（「Tokyo，Kobe」に対応するＣｏｌ＿Ｂ２，Ｂ３，Ｂ４，Ｃ１，Ｃ２，Ｃ３のレコード）を受信すると、このレコードを結合結果テーブル００１に追加記録し、結合結果を得る。つまり、データベース装置１０Ａは、データベース装置１０Ａ，１０Ｂ，１０Ｃの結合対象カラムに対応するレコードを等結合させた結合結果テーブル００１を得ることができる。このように、結合始点となるデータベース装置１０Ａは、結合対象カラムの値の比較を被結合側のデータベース装置１０Ｂ，１０Ｃにおいて並列実行させる。よって、データベースシステムは、結合対象のテーブル数が多い場合でも高速に処理を実行できる。また、データベース装置１０は、各テーブルのデータの比較結果（カラム情報、レコード取得要求等）をビット列（０，１）で送信し、これを用いてＡＮＤ演算処理を行うので、等結合処理を高速に実行できる。
【００２６】
≪構成≫
次に、このようなデータベースシステムの構成を説明する。図３は、本実施の形態のデータベースシステムの構成を例示した図である。ここでは、データベース装置１０Ａが結合始点となり、自身の保持するテーブルと、データベース装置１０Ｂ，１０Ｃそれぞれのテーブルとを等結合する場合を例に説明する。データベース装置１０（１０Ａ，１０Ｂ，１０Ｃ）の構成はそれぞれ同等とする。ここでは代表してデータベース装置１０Ａの構成を図示する。また、データベースシステムのデータベース装置１０の台数は、３台以上であれば、図３に示す台数に限定されない。
【００２７】
図３に示すように、データベースシステムは、端末装置２０と、データベース装置１０（１０Ａ，１０Ｂ，１０Ｃ）とを含んで構成される。これらの装置は、ネットワーク３０により通信可能に接続される。端末装置２０は、例えば、ＰＣ（Personal Computer）であり、結合始点のデータベース装置１０Ａへ、このデータベースシステム内のデータベース装置１０Ｂ，１０Ｃ内のテーブルの等結合を指示する結合指示情報を送信する。データベース装置１０は、それぞれテーブルを備え、端末装置２０からの結合指示情報の受信をトリガとして、各テーブルの等結合を実行する。
【００２８】
データベース装置１０の機能は、入出力部１１、処理部１２および記憶部１３に分けられる。入出力部１１は、ネットワーク３０経由で、端末装置２０や他のデータベース装置１０Ｂ，１０Ｃとの間のデータの入出力を司る。この入出力部１１は、入出力インタフェースや通信インタフェースから構成される。また、処理部１２は、データベース装置１０全体の制御を司り、このデータベース装置１０の備えるＣＰＵ（Central Processing Unit）によるプログラム実行処理や、専用回路等により実現される。さらに、記憶部１３は、テーブルや等結合管理テーブル等を記憶する。この記憶部１３は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）、フラッシュメモリ等の記憶媒体から構成される。また、データベース装置１０をプログラム実行処理により実現する場合、記憶部１３には、このデータベース装置１０の機能を実現するためのプログラムが格納される。
【００２９】
処理部１２は、レコード結合部１２０と、レコード送信部１２７と、テーブル処理部１３２とを備える。レコード結合部１２０は、主として、自身のデータベース装置１０が結合始点のデータベース装置１０として機能するときに用いられる。このレコード結合部１２０は、他のデータベース装置１０（データベース装置１０Ｂ，１０Ｃ）から結合対象となるレコードを受信し、自身のテーブルのレコードとの結合処理を行う。レコード送信部１２７は、主として、自身のデータベース装置１０が被結合側のデータベース装置１０として機能するときに用いられる。このレコード送信部１２７は、結合始点となるデータベース装置１０へ、結合対象カラムのレコードを送信する。テーブル処理部１３２は、記憶部１３のテーブルや等結合管理テーブルのデータ読み出しや書き込みを行う。
【００３０】
このレコード結合部１２０は、結合クエリ受信部１２１と、カラム情報取得要求送信部１２２と、カラム情報受信部１２３と、ＡＮＤ演算部１２４と、レコード取得要求部１２５と、レコード結合処理部１２６とを備える。
【００３１】
結合クエリ受信部１２１は、ネットワーク３０経由で端末装置２０から、結合対象のテーブルの識別情報と、そのテーブルにおける結合対象カラムとを示した結合クエリ（結合指示情報）を受信する。
【００３２】
カラム情報取得要求送信部１２２は、受信した結合クエリに示される結合対象テーブルを保持するデータベース装置１０（例えば、データベース装置１０Ｂ，１０Ｃ）へ、カラム情報取得要求を送信する。このカラム情報取得要求は、結合対象カラムの値と、結合対象テーブルの識別情報と、その結合対象テーブルのカラムの識別情報と、自身のデータベース装置１０（例えば、データベース装置１０Ａ）の識別情報とを示した情報である。
【００３３】
カラム情報受信部１２３は、カラム情報取得要求の送信先のデータベース装置１０（例えば、データベース装置１０Ｂ，１０Ｃ）から、カラム情報を取得する。このカラム情報は、カラム情報取得要求の送信先のデータベース装置１０の結合対象テーブルの結合カラムに、カラム情報取得要求に示される結合対象カラムの値が有るか否かを（０,１）のビット列等で示した情報である。このカラム情報は、後記する一時領域管理部１３６により、等結合管理テーブルに記録される。
【００３４】
ＡＮＤ演算部１２４は、他のデータベース装置１０それぞれから受信したカラム情報をもとに、このデータベース装置１０の結合対象テーブルすべてに存在する結合対象カラムの値を判断する。例えば、データベース装置１０ＡのＡＮＤ演算部１２４は、等結合管理テーブルに記録された、データベース装置１０Ｂ，１０Ｃそれぞれの結合対象テーブルに存在する結合対象カラムの値のＡＮＤ演算処理を実行する。例えば、データベース装置１０Ｂ，１０Ｃそれぞれの結合対象テーブルに存在する結合対象カラムの値の有無をビット列で示したものについてＡＮＤ演算処理を行う。そして、その結果、図１に例示したように、その両方のテーブルに存在する値が「Tokyo，Kobe」であることを知る。この結合対象カラムの値は、一時領域管理部１３６により、等結合管理テーブルに記録される。
【００３５】
レコード取得要求部１２５は、結合対象テーブルを保持するデータベース装置１０それぞれへ、レコード取得要求を送信する。このレコード取得要求は、前記したＡＮＤ演算処理により得られた結合対象カラムの値を示した情報である。例えば、データベース装置１０Ａのレコード取得要求部１２５は、データベース装置１０Ｂ，１０Ｃへ、ＡＮＤ演算処理により得られた「Tokyo，Kobe」に対応するレコードの取得要求を送信する。
【００３６】
レコード結合処理部１２６は、結合対象テーブルを保持するデータベース装置１０それぞれから、レコードを受信すると、このレコードと、自身の結合対象テーブルのレコードとを結合して結合結果テーブルを生成する。生成した結合結果テーブルは、一時領域管理部１３６により一時記憶部１３４に格納される。例えば、データベース装置１０Ａは、自身の結合対象テーブルから「Tokyo，Kobe」に対応するレコードを抽出する。そして、このレコードと、データベース装置１０Ｂ，１０Ｃから取得した「Tokyo，Kobe」に対応するレコードとを結合する。
【００３７】
次に、レコード送信部１２７を説明する。レコード送信部１２７は、カラム情報取得要求受信部１２８と、カラム情報送信部１２９と、レコード取得要求受信部１３０と、レコード送信部１３１とを備える。
【００３８】
カラム情報取得要求受信部１２８は、他のデータベース装置１０から、カラム情報取得要求を受信する。
【００３９】
カラム情報送信部１２９は、自身の保持するテーブルのうち、カラム情報取得要求に示される結合対象テーブルの値について、結合対象カラムの値と同じ値の有無を示したカラム情報を作成する。そして、このカラム情報をカラム情報取得要求の送信元のデータベース装置１０へ送信する。なお、ここで作成したカラム情報は、一時領域管理部１３６により等結合管理テーブルに記録される。
【００４０】
レコード取得要求受信部１３０は、他のデータベース装置１０から、レコード取得要求を受信する。
【００４１】
レコード送信部１３１は、テーブル管理部１３５（後記）により、自身の保持する結合対象テーブルの値から、受信したレコード取得要求に示されるカラムの値に対応するレコードを抽出する。そして、レコード送信部１３１は、この抽出されたレコードを、このレコード取得要求の送信元のデータベース装置１０へ送信する。
【００４２】
テーブル処理部１３２は、テーブル管理部１３５と一時領域管理部１３６とを備える。テーブル管理部１３５は、テーブル記憶部１３３のテーブルからのデータの読み出し（抽出）等を行う。一時領域管理部１３６は、一時記憶部１３４の等結合管理テーブルからのデータの読み出しおよび書き込みを行う。
【００４３】
記憶部１３は、複数のカラムの値からなる１以上のレコードを備えたテーブル記憶部１３３と、等結合管理テーブルや、等結合の結果である結合結果テーブル（図示省略）等を記憶する一時記憶部１３４とを備える。テーブル記憶部１３３に記憶されるテーブルは複数でもよい。等結合管理テーブルは、図１および図２に例示したとおり、結合対象テーブルの結合処理の途中で得られる演算処理結果を記録するために用いられるテーブルである。例えば、この等結合管理テーブルは、結合対象カラムの値ごとに、自身のデータベース装置１０のテーブルに同じ値があるか否かを示したフラグ値や、そのカラムの値に対応するレコードのレコード番号等を示した情報である。
【００４４】
≪処理手順≫
次に、図３，図６〜図１８を参照しつつ、図４，５を用いて、データベースシステムの処理手順を説明する。ここでも、データベースシステムのうち、データベース装置１０Ａが結合始点のデータベース装置１０であり、データベース装置１０Ｂ，１０Ｃは被結合側のデータベース装置１０である場合を例に説明する。図４および図５は、本実施の形態のデータベースシステムの処理手順を例示した図である。図６〜図１８は、本実施の形態のデータベースシステムの処理手順の具体例を概念的に示した図である。ここでは、端末装置２０のユーザは、３つのデータベース装置１０に分散記憶されたテーブルのうち、所定のテーブルを等結合した結果を知るため、結合始点となるデータベース装置１０の識別情報、結合対象テーブルおよび結合対象カラムを指定した結合クエリを端末装置２０へ入力する。そして、その結合クエリの入力を受け付けた端末装置２０は、その結合クエリを、結合始点のデータベース装置１０（１０Ａ）へ送信し、このデータベース装置１０Ａに等結合処理を実行させるものとして説明する。
【００４５】
まず、図３のデータベース装置１０Ａの結合クエリ受信部１２１は、端末装置２０から結合クエリの入力を受け付ける（Ｓ１０１）。
【００４６】
次に、データベース装置１０Ａのカラム情報取得要求送信部１２２は、データベース装置１０Ｂ，１０Ｃへ、結合対象テーブル、結合対象カラムの識別情報、結合対象カラムの値、データベース装置１０Ａの識別情報等を示したカラム情報取得要求を送信する（Ｓ１０２）。
【００４７】
そして、データベース装置１０Ｂ，１０Ｃの一時領域管理部１３６は、受信したカラム情報取得要求をもとに、一時記憶部１３４に等結合管理テーブルを作成する（Ｓ１０３，Ｓ１０６）。
【００４８】
次に、データベース装置１０Ｂ，１０Ｃのカラム情報取得要求受信部１２８は、自身の結合対象テーブルＢ０１，Ｃ０１の結合対象カラムに、カラム情報取得要求に示される結合対象カラムの値と同じ値が有るか否かを判断する。そして、その判断結果を、一時領域管理部１３６が等結合管理テーブルに記録する（Ｓ１０４，Ｓ１０７）。
【００４９】
そして、データベース装置１０Ｂ，１０Ｃのカラム情報送信部１２９は、Ｓ１０４，Ｓ１０７での判断結果（結合対象カラムの値の有無）を示したカラム情報を作成し、データベース装置１０Ａへ送信する（Ｓ１０５，Ｓ１０８）。
【００５０】
次に、データベース装置１０Ａのカラム情報受信部１２３は、データベース装置１０Ｂ，１０Ｃから送信されたカラム情報を受信する（Ｓ１０９）。
【００５１】
そして、データベース装置１０ＡのＡＮＤ演算部１２４は、自身の結合対象テーブルおよび各他のデータベース装置１０Ｂ，１０Ｃの結合対象テーブルすべてに存在する結合対象カラムの値を判断するＡＮＤ演算処理を実行する（Ｓ１１０）。
【００５２】
図５の説明に移る。データベース装置１０Ａのレコード取得要求部１２５は、図４のＳ１１０のＡＮＤ演算処理結果を示したレコード取得要求をデータベース装置１０Ｂ，１０Ｃへ送信する（Ｓ１２１）。そして、このデータベース装置１０Ｂ，１０Ｃのレコード取得要求受信部１３０は、このレコード取得要求を受信する。
【００５３】
次に、データベース装置１０Ａのテーブル管理部１３５は、結合対象テーブルから、ＡＮＤ演算処理結果に示されるカラムの値に対応するレコードを抽出する（Ｓ１２２）。
【００５４】
そして、データベース装置１０Ｂ，１０Ｃのテーブル管理部１３５は、結合対象テーブルから、レコード取得要求に示されるカラムの値に対応するレコードを抽出し、レコード送信部１３１は、このレコードをデータベース装置１０Ａへ送信する（Ｓ１２３，Ｓ１２４）。
【００５５】
次に、データベース装置１０Ａのレコード結合処理部１２６は、データベース装置１０Ｂ，１０Ｃそれぞれから送信されたレコードと、自身の結合対象テーブルから抽出したレコードとを等結合し、結合結果テーブルを生成する（Ｓ１２５）。
【００５６】
以上のようにして、データベース装置１０Ａは、自身の結合対象テーブルのレコードとデータベース装置１０Ｂ，１０Ｃの結合対象テーブルのレコードとを等結合する。この後、データベース装置１０Ａは生成した結合結果テーブルの内容を、端末装置２０からの結合クエリの結果として送信する。端末装置２０は、この結合結果テーブルの内容をブラウザ等により表示させることで、ユーザは、各データベース装置１０（１０Ａ，１０Ｂ，１０Ｃ）の結合対象テーブルの等結合結果を確認することができる。
【００５７】
以下、図３を参照しつつ、図６〜図１８を用いて、図４および図５に示したデータベースシステムの処理手順の具体例を説明する。
【００５８】
（Ｓ１０１）
図３のデータベース装置１０Ａの結合クエリ受信部１２１は、図６に示すように、端末装置２０から、データベース装置１０ＡのテーブルＡ０１と、データベース装置１０ＢのテーブルＢ０１と、データベース装置１０ＣのテーブルＣ０１を、テーブルＡ０１のＣｏｌ＿Ａ２と、テーブルＢ０１のＣｏｌ＿Ｂ１と、テーブルＣ０１のＣｏｌ＿Ｃ４を結合対象カラムとして等結合させる結合クエリの入力を受け付ける。
【００５９】
（Ｓ１０２）
次に、図３のデータベース装置１０Ａのカラム情報取得要求送信部１２２は、図７に示すように、結合始点のデータベース装置１０Ａの結合対象カラムＣｏｌ＿Ａ２のデータ（値）と、データベース装置１０Ｂの結合対象カラムがＣｏｌ＿Ｂ１であり、結合始点のデータベース装置１０がデータベース装置１０Ａであることを示すカラム情報取得要求を、データベース装置１０Ｂ，１０Ｃへ送信する。
【００６０】
（Ｓ１０３，Ｓ１０６）
そして、図３のデータベース装置１０Ｂの一時領域管理部１３６にて、図８に示すように、データベース装置１０Ａから送信されたカラムＣｏｌ＿Ａ２と、フラグＢ１、レコード番号、フラグＢ２のカラムからなる等結合管理テーブルＢ１の記憶領域をメモリ（一時記憶部１３４）上に確保する。また、データベース装置１０Ｃの一時領域管理部１３６も同様に等結合管理テーブルＣ１の記憶領域をメモリ（一時記憶部１３４）上に確保する。
【００６１】
（Ｓ１０４，Ｓ１０７）
次に、図９に示すように、データベース装置１０Ｂ，１０Ｃで、等結合管理テーブルＢ１，Ｃ１のＣｏｌ＿Ａ２のカラムと、テーブルＢ０１，Ｃ０１の結合対象カラムの値を比較して一致する値の有無を確認し、その有無をフラグＢ１，Ｃ１に０（無）ｏｒ１（有）で記録する。また、図１０に示すように、データベース装置１０Ｂ，１０Ｃで、等結合管理テーブルＢ１，Ｃ１のフラグＢ１，Ｃ１が「１」となっているレコード（行）に、テーブルＢ０１，Ｃ０１のカラムの値が一致するレコードのレコード番号（行番号）を記録する
【００６２】
（Ｓ１０５，Ｓ１０８）
そして、図３のデータベース装置１０Ｂ，１０Ｃのカラム情報送信部１２９は、図１１に示すように、等結合管理テーブルＢ１，Ｃ１のフラグＢ１，Ｃ１のカラム（列）を示したカラム情報を作成し、データベース装置１０Ａへ送信する。
【００６３】
（Ｓ１０９）
次に、図３のデータベース装置１０Ａのカラム情報受信部１２３は、データベース装置１０Ｂ，１０Ｃから送信されたカラム情報を受信する。つまり、データベース装置１０Ａは、データベース装置１０Ｂ，１０ＣのテーブルＢ０１，Ｃ０１それぞれが、結合対象カラムの値のうち、どの値に関するレコードを持つかを知ることができる。そして、データベース装置１０Ａの一時領域管理部１３６は、図１２に示すように、このカラム情報に示される情報を格納するフラグＢ１，Ｃ１のカラムとＡＮＤ演算結果カラムからなる等結合管理テーブルＡ１を、データベース装置１０Ａの一時記憶部１３４に生成する。そして、一時領域管理部１３６は、この等結合管理テーブルに、データベース装置１０Ｂ，１０Ｃから送信されたフラグＢ１，Ｃ１の値（カラム情報）を記録する。
【００６４】
（Ｓ１１０）
そして、図３のデータベース装置１０ＡのＡＮＤ演算部１２４は、図１３に示すように、等結合管理テーブルＡ１のフラグＢ１，Ｃ１のカラム（列）の値であるビット列間でＡＮＤ演算処理を行い、一時領域管理部１３６は、そのＡＮＤ演算処理結果をＡＮＤ演算処理結果のカラム（列）に記録する。これにより、データベース装置１０Ａは、結合対象カラムの値のうち、データベース装置１０Ａ，１０Ｂ，１０ＣのテーブルＡ０１，Ｂ０１，Ｃ０１すべてに存在するカラムの値を知ることができる。
【００６５】
（Ｓ１２１）
例えば、図３のデータベース装置１０Ａのレコード取得要求部１２５は、図１４に示すように、データベース装置１０ＡのＡＮＤ演算処理結果のカラム（列）の値を示したレコード取得要求をデータベース装置１０Ｂ，１０Ｃへ送信する。つまり、データベース装置１０Ａは、データベース装置１０Ｂ，１０Ｃ両方の結合対象テーブルに共通して存在する「Tokyo，Kobe」に対応するレコードの取得要求をデータベース装置１０Ｂ，１０Ｃへ送信する。このレコード取得要求は、例えば、この取得要求の対象であるレコードに対応するカラムの値をビット列（例えば、「Tokyo，Kobe」を示す「１,０,０,０,１」等）で示した情報である。そして、データベース装置１０Ｂ，１０Ｃの一時領域管理部１３６は、図１５に示すように、このデータベース装置１０Ａから送信されたＡＮＤ演算処理結果のカラム（列）の値をデータベース装置１０Ｂ，１０Ｃの等結合管理テーブルＢ１，Ｃ１のフラグＢ２，Ｃ２のカラム（列）に記録する。
【００６６】
（Ｓ１２２）
次に、図３のデータベース装置１０Ａのテーブル管理部１３５は、図１６に示すように、データベース装置１０Ａの等結合管理テーブルＡ１のＡＮＤ演算結果カラム（列）の値が「１」であるレコード（行）のレコード番号について、テーブルＡ０１からそのレコード番号のレコードを抽出する。つまり、データベース装置１０Ａのテーブル管理部１３５は、テーブルＡ０１の「Tokyo，Kobe」それぞれに対応するＣｏｌ＿Ａ１，Ａ３，Ａ４の値を抽出する。
【００６７】
（Ｓ１２３，Ｓ１２４）
そして、データベース装置１０Ｂ，１０Ｃのテーブル管理部１３５は、図１７に示すように、等結合管理テーブルＢ１，Ｃ１のフラグＢ１，Ｃ２のカラム（列）の値が「１」であるレコード番号のカラムの値について、テーブルＢ０１，Ｃ０１からそのレコード番号のレコードを抽出する。すなわち、データベース装置１０Ｂのテーブル管理部１３５は、レコード番号「２，３」に対応するレコード、つまり、「Tokyo，Kobe」に対応するＣｏｌ＿Ｂ２，Ｂ３，Ｂ４のレコードを抽出する。また、データベース装置１０Ｃのテーブル管理部１３５は、図１８に示すように、レコード番号「１，３」に対応するレコード、つまり、「Tokyo，Kobe」に対応するＣｏｌ＿Ｃ１，Ｃ２，Ｃ３のレコードを抽出する。そして、図１８に示すように、データベース装置１０Ｂ，１０Ｃは、テーブルＢ０１，Ｃ０１から抽出したレコードを、データベース装置１０Ａに送信する。
【００６８】
（Ｓ１２５）
次に、図３のデータベース装置１０Ａのレコード結合処理部１２６は、図１８に示すように、テーブルＡ０１から抽出したレコードと、データベース装置１０Ｂ，１０Ｃから送信されてきたレコードとを、ＡＮＤ演算結果の結合対象カラムの値（「Tokyo，Kobe」）で等結合し、結合結果テーブル００１を生成する。つまり、レコード結合処理部１２６は、テーブルＡ０１の「Tokyo，Kobe」に対応するＣｏｌ＿Ａ１，Ａ３，Ａ４、テーブルＢ０１の「Tokyo，Kobe」に対応するＣｏｌ＿Ｂ２，Ｂ３，Ｂ４、テーブルＣ０１の「Tokyo，Kobe」に対応するＣｏｌ＿Ｃ１，Ｃ２，Ｃ３を結合させた結合結果テーブル００１を生成する。
【００６９】
このようにすることで、データベース装置１０Ａは、テーブルＡ０１，Ｂ０１，Ｃ０１の結合対象カラムのレコードを等結合することができる。また、このとき、データベース装置１０Ａは、従来のようにテーブルＡ０１，Ｂ０１を結合させてから、テーブルＣ０１と結合させる、というように中間状態のテーブルを生成せずに等結合を行うので、テーブルのレコードの等結合処理を高速に行うことができる。
【００７０】
なお、前記した実施の形態において、データベース装置１０（１０Ａ，１０Ｂ，１０Ｃ）が保持する結合対象テーブルが複数あった場合、例えば、以下のような処理を行う。すなわち、図１のデータベース装置１０Ｂが結合対象テーブルを複数（例えば、テーブルＢ０１，０２）保持していた場合、その結合対象テーブルすべて（例えば、テーブルＢ０１およびテーブル０２の両方）に存在する結合対象カラムの値をカラム情報として、データベース装置１０Ａへ返す。また、データベース装置１０Ｂは、そのデータベース装置１０Ｂの結合対象テーブルに存在する結合対象カラムの値を、そのテーブルごとに判断し、その判断結果の値をカラム情報として、データベース装置１０Ａへ返してもよい。例えば、データベース装置１０Ｂは、テーブルＢ０１について結合対象カラムの値の有無を判断し、その判断結果をカラム情報として送信し、テーブルＢ０２についても同様に結合対象カラムの値の有無を判断し、その判断結果をカラム情報として送信するようにしてもよい。
【００７１】
また、前記した実施の形態では、結合始点のデータベース装置１０Ａは、結合対象テーブルにおける結合対象カラムの値に対応するすべてのレコードを等結合させる場合を例に説明したが、これに限定されない。例えば、結合クエリとして、そのそれぞれの結合対象テーブルのレコードのうち、どの項目に関するレコードを等結合するか指定する情報が含まれていたとき、データベース装置１０Ａは、結合対象カラムの値に対応するレコードのうち、その結合クエリに示されるカラムの値を結合させるようにしてもよい。例えば、図１に例示したテーブルＡ０１，Ｂ０１，Ｃ０１を等結合させる場合において、テーブルＢ０１については、Ｃｏｌ＿Ｂ２，Ｂ３の値、テーブルＣ０１については、Ｃｏｌ＿Ｃ２，Ｃ３の値を結合させる、という指示が含まれていたとき、データベース装置１０Ａは、データベース装置１０Ｂ，１０Ｃは、結合対象カラムの値に対応するレコードのうち、このテーブルＢ０１のＣｏｌ＿Ｂ２，Ｂ３の値と、テーブルＣ０１のＣｏｌ＿Ｃ２，Ｃ３の値とを取得して、これらの値を結合させて、結合結果テーブルを生成してもよい。このようにすることで、結合対象テーブルのレコードのうち、ユーザの所望する項目（カラム）の値を結合させることができる。
【００７２】
本実施の形態に係るデータベース装置１０は、前記したような処理を実行させるプログラムによって実現することができ、そのプログラムをコンピュータによる読み取り可能な記録媒体（ＣＤ−ＲＯＭ等）に記憶して提供することが可能である。
【図面の簡単な説明】
【００７３】
【図１】本実施の形態のデータベースシステムの概要を説明した図である。
【図２】本実施の形態のデータベースシステムの概要を説明した図である。
【図３】本実施の形態のデータベースシステムの構成を例示した図である。
【図４】本実施の形態のデータベースシステムの処理手順を例示した図である。
【図５】本実施の形態のデータベースシステムの処理手順を例示した図である。
【図６】本実施の形態のデータベースシステムの処理手順の具体例を概念的に示した図である。
【図７】本実施の形態のデータベースシステムの処理手順の具体例を概念的に示した図である。
【図８】本実施の形態のデータベースシステムの処理手順の具体例を概念的に示した図である。
【図９】本実施の形態のデータベースシステムの処理手順の具体例を概念的に示した図である。
【図１０】本実施の形態のデータベースシステムの処理手順の具体例を概念的に示した図である。
【図１１】本実施の形態のデータベースシステムの処理手順の具体例を概念的に示した図である。
【図１２】本実施の形態のデータベースシステムの処理手順の具体例を概念的に示した図である。
【図１３】本実施の形態のデータベースシステムの処理手順の具体例を概念的に示した図である。
【図１４】本実施の形態のデータベースシステムの処理手順の具体例を概念的に示した図である。
【図１５】本実施の形態のデータベースシステムの処理手順の具体例を概念的に示した図である。
【図１６】本実施の形態のデータベースシステムの処理手順の具体例を概念的に示した図である。
【図１７】本実施の形態のデータベースシステムの処理手順の具体例を概念的に示した図である。
【図１８】本実施の形態のデータベースシステムの処理手順の具体例を概念的に示した図である。
【図１９】比較例となる等結合処理を概念的に示した図である。
【図２０】スターインデックスを概念的に説明した図である。
【符号の説明】
【００７４】
１０（１０Ａ，１０Ｂ，１０Ｃ）  データベース装置
１１    入出力部
１２    処理部
１３    記憶部
３０    ネットワーク
１２０  レコード結合部
１２１  結合クエリ受信部
１２２  カラム情報取得要求送信部
１２３  カラム情報受信部
１２４  ＡＮＤ演算部
１２５  レコード取得要求部
１２６  レコード結合処理部
１２７  レコード送信部
１２８  カラム情報取得要求受信部
１２９  カラム情報送信部
１３０  レコード取得要求受信部
１３１  レコード送信部
１３２  テーブル処理部
１３３  テーブル記憶部
１３４  一時記憶部
１３５  テーブル管理部
１３６  一時領域管理部
【図１】
2010117951.tif 000003
【図２】
2010117951.tif 000004
【図３】
2010117951.tif 000005
【図４】
2010117951.tif 000006
【図５】
2010117951.tif 000007
【図６】
2010117951.tif 000008
【図７】
2010117951.tif 000009
【図８】
2010117951.tif 000010
【図９】
2010117951.tif 000011
【図１０】
2010117951.tif 000012
【図１１】
2010117951.tif 000013
【図１２】
2010117951.tif 000014
【図１３】
2010117951.tif 000015
【図１４】
2010117951.tif 000016
【図１５】
2010117951.tif 000017
【図１６】
2010117951.tif 000018
【図１７】
2010117951.tif 000019
【図１８】
2010117951.tif 000020
【図１９】
2010117951.tif 000021
【図２０】
2010117951.tif 000022