(57)【要約】   【課題】  本発明は、実際にジョインテーブルを作成することなく、複数の表形式データを結合する。  【解決手段】  本発明は、情報の項目に対応した項目値を含むレコードの配列として表される第１の表形式データ及び第２の表形式のデータを準備し、両方の表形式データに共通に属する情報の項目をキー項目として決定し、第１の表形式データに含まれる処理対象レコードのキー項目に対応したキー項目値を獲得し、第２の表形式データに含まれるレコードから、キー項目に関してキー項目値と所定のマッチング条件を満たす項目値を含むレコード群を特定し、処理対象レコードとレコード群の対を出力することにより、仮想的なジョインテーブルを作成する。【選択図】  図３
2005135221.tif 000002
【特許請求の範囲】
【請求項１】
情報の項目に対応した項目値を含むレコードの配列として表される第１の表形式データ及び第２の表形式のデータを準備し、前記第１の表形式データと前記第２の表形式データに共通に属する情報の項目をキー項目として決定する手順と、
前記第１の表形式データに含まれる処理対象レコードの前記キー項目に対応したキー項目値を得る手順と、
前記第２の表形式データに含まれるレコードから、前記キー項目に関して前記キー項目値と所定のマッチング条件を満たす項目値を含むレコード群を特定する手順と、
前記第１の表形式データに含まれる前記処理対象レコードと前記第２の表形式データに含まれる前記レコード群の対を出力する手順と、
を有する表形式データの結合方法。
【請求項２】
前記第２の表形式データは前記キー項目にインデックスが付与された表形式データであり、
前記レコード群を特定する手順は、前記第２の表形式データの前記キー項目に付与された前記インデックスを用いた検索によって前記レコード群を特定する、
請求項１記載の表形式データの結合方法。
【請求項３】
前記レコード群を特定する手順よりも前に、前記第２の表形式データに関して前記キー項目に対応した項目値毎に、該項目値から該項目値を含むレコードを指定する指標データを生成する手順を更に有し、
前記レコード群を特定する手順は、前記第２の表形式データの前記指標データを用いた検索によって前記レコード群を特定する、
請求項１記載の表形式データの結合方法。
【請求項４】
前記指標データを生成する手順は、前記指標データを前記キー項目値に対応した前記項目値に基づいてソートする手順を含む、請求項３記載の表形式データの結合方法。
【請求項５】
前記指標データを生成する手順は、前記キー項目に対応した項目値毎に生成された前記指標データの前記項目値の部分にインデックスを付与する手順を含む、請求項３記載の表形式データの結合方法。
【請求項６】
前記指標データはレコードへのポインターである、請求項３乃至５のうちいずれか１項記載の表形式データの結合方法。
【請求項７】
前記指標データはレコード番号である、請求項３乃至５のうちいずれか１項記載の表形式データの結合方法。
【請求項８】
前記指標データはレコードが格納されているメモリ上のアドレスに対応付けられている、請求項３乃至５のうちいずれか１項記載の表形式データの結合方法。
【請求項９】
前記第１の表形式データは、情報の項目に対応した項目値を含むレコードの配列として表される初期の表形式データから検索条件に適合する項目値を含むレコードを検索することにより準備された表形式データである、請求項１乃至８のうちいずれか１項記載の表形式データの結合方法。
【請求項１０】
前記第１の表形式データは、情報の項目に対応した項目値を含むレコードの配列として表される初期の表形式データのレコードを所定の項目に関して並べ替えることにより準備された表形式データである、請求項１乃至８のうちいずれか１項記載の表形式データの結合方法。
【請求項１１】
情報の項目に対応した項目値を含むレコードの配列として表される初期の表形式データから検索条件に適合する項目値を含むレコードを検索することにより第１の表形式データを準備し、情報の項目に対応した項目値を含むレコードの配列として表される第２の表形式のデータを準備する手順と、
前記第１の表形式データと前記第２の表形式データに共通に属する情報の項目をキー項目として決定する手順と、
前記第１の表形式データに含まれる処理対象レコードの前記キー項目に対応したキー項目値を得る手順と、
前記第２の表形式データに含まれるレコードから、前記キー項目に関して前記キー項目値と所定のマッチング条件を満たす項目値を含むレコード群を特定する手順と、
前記第１の表形式データに含まれる前記処理対象レコードと前記第２の表形式データに含まれる前記レコード群の対を生成する手順と、
を有する表形式データの検索方法。
【請求項１２】
情報の項目に対応した項目値を含むレコードの配列として表される初期の表形式データのレコードを所定の項目に関して並べ替えることにより第１の表形式データを準備し、情報の項目に対応した項目値を含むレコードの配列として表される第２の表形式のデータを準備する手順と、
前記第１の表形式データと前記第２の表形式データに共通に属する情報の項目をキー項目として決定する手順と、
前記第１の表形式データに含まれる処理対象レコードの前記キー項目に対応したキー項目値を得る手順と、
前記第２の表形式データに含まれるレコードから、前記キー項目に関して前記キー項目値と所定のマッチング条件を満たす項目値を含むレコード群を特定する手順と、
前記第１の表形式データに含まれる前記処理対象レコードと前記第２の表形式データに含まれる前記レコード群の対を生成する手順と、
を有する表形式データのソート方法。
【請求項１３】
情報の項目に対応した項目値を含むレコードの配列として表される第１の表形式データ及び第２の表形式のデータを準備し、前記第１の表形式データと前記第２の表形式データに共通に属する情報の項目をキー項目として決定する手段と、
前記第１の表形式データに含まれる処理対象レコードの前記キー項目に対応したキー項目値を得る手段と、
前記第２の表形式データに含まれるレコードから、前記キー項目に関して前記キー項目値と所定のマッチング条件を満たす項目値を含むレコード群を特定する手段と、
前記第１の表形式データに含まれる前記処理対象レコードと前記第２の表形式データに含まれる前記レコード群の対を出力する手段と、
を有する表形式データの結合装置。
【請求項１４】
情報の項目に対応した項目値を含むレコードの配列として表される第１の表形式データ及び第２の表形式のデータを準備し、前記第１の表形式データと前記第２の表形式データに共通に属する情報の項目をキー項目として決定する手順と、
前記第１の表形式データに含まれる処理対象レコードの前記キー項目に対応したキー項目値を得る手順と、
前記第２の表形式データに含まれるレコードから、前記キー項目に関して前記キー項目値と所定のマッチング条件を満たす項目値を含むレコード群を特定する手順と、
前記第１の表形式データに含まれる前記処理対象レコードと前記第２の表形式データに含まれる前記レコード群の対を出力する手順と、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータのような情報処理装置を用いて大量のデータを処理するデータ処理方法およびデータ処理装置に係り、より詳細には、複数の表形式データを結合する方法、装置及びプログラムに関する。
【背景技術】
【０００２】
データベースは種々の用途に用いられているが、中規模ないし大規模システムにおいては、論理的な矛盾が排除できるリレーショナルデータベース（ＲＤＢ）の使用が主流となっている。たとえば、ＲＤＢは飛行機の座席予約等のシステムに利用されている。この場合、キー項目を指定することにより、（多くの場合１件の）ターゲットを迅速に検索することもでき、或いは、予約の確定、キャンセル或いは変更などを行うことができる。また、各便の座席数はせいぜい数百であるため、特定の航空便の空席数を求めることも可能である。
【０００３】
ところが、このＲＤＢを用いて、年度ごと、曜日ごと、月ごと、路線ごと、時間帯ごと或いは機種ごとなどで、特定の演算（たとえば、搭乗率の計算）をなそうとすると、非常に時間がかかることが知られている。すなわち、ＲＤＢは、処理を矛盾なく実現することに優れている反面、相当数のレコードを検索、集計或いはソートする性能が低い。
【０００４】
そこで、近年、検索や集計のために、ＲＤＢとは別に、データウェアハウス（ＤＷＨ）と称するデータベースをシステムに構築することが一般化している。すなわち、エンドユーザの特定の目的に合わせて、特定のデータ形式およびデータ項目名を備えた極めて大規模なデータベースを構築し、エンドユーザはこれを用いて特定の検索や集計をなすことができるようになっている。
【０００５】
しかしながら、ＲＤＢのほかに、他のＤＷＨを設けること、すなわち、複数のデータベースを設けることは、本来、データを集中管理できるためにデータベース、特に、ＲＤＢが考案されたという本来あるべき姿とは乖離しており、これに由来して、たとえば、以下に述べるような様々な問題点が生じている。
【０００６】
（１）ＤＷＨは固定的なものであるため、予めＤＷＨに設けられた項目以外の検索や集計をすることが困難である。
（２）ＲＤＢのほかに、固定的なＤＷＨを設けるため、データ容量が極めて大きくなるほか、ＲＤＢの更新等に対応することができない。
【０００７】
これらの問題点を解決するため、複数の表形式データ（テーブル）を結合、即ち、ジョインすることが提案されている。表形式データのジョインとは、複数の表形式データのそれぞれに結合キーとなる項目を指定し、そのキーがある関係を満たす場合に、各表形式データに含まれるレコードを対応付けし、新たな表形式データ（ジョインテーブル）を作成することをいう。このような表形式データのジョインは、大規模なシステムのデータを取り扱う場合に、種々の場面で必要になる操作である。
【特許文献１】特開平７−２５３９９１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、この複数の表形式データのジョインは、論理積操作であるため、爆発的に巨大なジョインテーブルが頻繁に生成され、メモリやディスク装置の領域不足の問題を生じる。また、生成された新しいジョインテーブルは、検索に有利なＢ−Ｔｒｅｅやビットマップインデックスのようなインデックスが付与されていないため、高速な検索やソートを行うことが困難であるという問題も生じる。特許文献１に記載された技術においても、実際にマージしたテーブルを作成するため、巨大なテーブルを作成せざるを得ない。
【０００９】
本発明は、爆発的に巨大になる可能性があり、かつ、高速な検索やソートを行うために適していないジョインテーブルを作成することなく、複数の表形式データを結合する方法及び装置の提供を目的とする。
更に、本発明は、上記の複数の表形式データを結合する方法に基づく複数の表形式データの検索方法及びソート方法の提供を目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成する本発明の原理は、実際にジョインテーブルを作成するのではなく、検索を用いて仮想的にジョインテーブルを作成することである。
本発明の目的は、情報の項目に対応した項目値を含むレコードの配列として表される第１の表形式データ及び第２の表形式のデータを準備し、前記第１の表形式データと前記第２の表形式データに共通に属する情報の項目をキー項目として決定する手順と、
前記第１の表形式データに含まれる処理対象レコードの前記キー項目に対応したキー項目値を得る手順と、
前記第２の表形式データに含まれるレコードから、前記キー項目に関して前記キー項目値と所定のマッチング条件を満たす項目値を含むレコード群を特定する手順と、
前記第１の表形式データに含まれる前記処理対象レコードと前記第２の表形式データに含まれる前記レコード群の対を出力する手順と、
を有する表形式データの結合方法により達成される。
【００１１】
本発明の好ましい実施の形態によれば、前記第２の表形式データは前記キー項目にインデックスが付与された表形式データであり、
前記レコード群を特定する手順は、前記第２の表形式データの前記キー項目に付与された前記インデックスを用いた検索によって前記レコード群を特定する。
【００１２】
本発明の好ましい実施の形態によれば、表形式データの結合方法は、前記レコード群を特定する手順よりも前に、前記第２の表形式データに関して前記キー項目に対応した項目値毎に、該項目値から該項目値を含むレコードを指定する指標データを生成する手順を更に有し、
前記レコード群を特定する手順は、前記第２の表形式データの前記指標データを用いた検索によって前記レコード群を特定する。
【００１３】
本発明の好ましい実施の形態によれば、前記指標データを生成する手順は、前記指標データを前記キー項目値に対応した前記項目値に基づいてソートする手順を含む。
本発明の好ましい実施の形態によれば、前記指標データを生成する手順は、前記キー項目に対応した項目値毎に生成された前記指標データの前記項目値の部分にインデックスを付与する手順を含む。
【００１４】
本発明の好ましい実施の形態によれば、前記指標データはレコードへのポインターである。
本発明の好ましい実施の形態によれば、前記指標データはレコード番号である。
本発明の好ましい実施の形態によれば、前記指標データはレコードが格納されているメモリ上のアドレスに対応付けられている。
【００１５】
本発明の表形式データの結合方法は、ジョインテーブルを検索するために利用することができる。そのため、前記第１の表形式データは、情報の項目に対応した項目値を含むレコードの配列として表される初期の表形式データから検索条件に適合する項目値を含むレコードを検索することにより準備された表形式データである。本発明によれば、第１の表形式データを予め検索することにより、ジョインテーブルを検索した場合と同じ結果を得ることができる。
【００１６】
この原理を用いることにより、一般的なジョインテーブルの検索を、ジョイン前のテーブルの検索と、テーブルのジョインとによって置き換え得ることが可能である。そこで、本発明による表形式データの検索方法は、
【００１７】
情報の項目に対応した項目値を含むレコードの配列として表される初期の表形式データから検索条件に適合する項目値を含むレコードを検索することにより第１の表形式データを準備し、情報の項目に対応した項目値を含むレコードの配列として表される第２の表形式のデータを準備する手順と、
前記第１の表形式データと前記第２の表形式データに共通に属する情報の項目をキー項目として決定する手順と、
前記第１の表形式データに含まれる処理対象レコードの前記キー項目に対応したキー項目値を得る手順と、
前記第２の表形式データに含まれるレコードから、前記キー項目に関して前記キー項目値と所定のマッチング条件を満たす項目値を含むレコード群を特定する手順と、
前記第１の表形式データに含まれる前記処理対象レコードと前記第２の表形式データに含まれる前記レコード群の対を生成する手順と、
を有する。
【００１８】
更に、本発明の表形式データの結合方法は、ジョインテーブルをソートするために利用することができる。そのため、前記第１の表形式データは、情報の項目に対応した項目値を含むレコードの配列として表される初期の表形式データのレコードを所定の項目に関して並べ替えることにより準備された表形式データである。本発明によれば、第１の表形式データを予めソートすることにより、ジョインテーブルをソートした場合と同じ結果を得ることができる。
【００１９】
この原理を用いることにより、一般的なジョインテーブルのソートを、ジョイン前のテーブルの検索と、テーブルのジョインとによって置き換えることが可能である。そこで、本発明による表形式データのソート方法は、
情報の項目に対応した項目値を含むレコードの配列として表される初期の表形式データのレコードを所定の項目に関して並べ替えることにより第１の表形式データを準備し、情報の項目に対応した項目値を含むレコードの配列として表される第２の表形式のデータを準備する手順と、
前記第１の表形式データと前記第２の表形式データに共通に属する情報の項目をキー項目として決定する手順と、
前記第１の表形式データに含まれる処理対象レコードの前記キー項目に対応したキー項目値を得る手順と、
前記第２の表形式データに含まれるレコードから、前記キー項目に関して前記キー項目値と所定のマッチング条件を満たす項目値を含むレコード群を特定する手順と、
前記第１の表形式データに含まれる前記処理対象レコードと前記第２の表形式データに含まれる前記レコード群の対を生成する手順と、
を有する。
【００２０】
また、本発明の目的は、上記本発明の表形式データの結合方法を実施する結合装置によっても達成できる。この本発明による表形式データの結合装置は、
情報の項目に対応した項目値を含むレコードの配列として表される第１の表形式データ及び第２の表形式のデータを準備し、前記第１の表形式データと前記第２の表形式データに共通に属する情報の項目をキー項目として決定する手段と、
前記第１の表形式データに含まれる処理対象レコードの前記キー項目に対応したキー項目値を得る手段と、
前記第２の表形式データに含まれるレコードから、前記キー項目に関して前記キー項目値と所定のマッチング条件を満たす項目値を含むレコード群を特定する手段と、
前記第１の表形式データに含まれる前記処理対象レコードと前記第２の表形式データに含まれる前記レコード群の対を出力する手段と、
を有する。
【００２１】
また、本発明の目的は、上記本発明の表形式データの結合方法の上記手順をコンピュータに実行させるためのプログラムによっても達成される。
【発明の効果】
【００２２】
本発明によれば、複数のテーブルが論理的にジョインされ、巨大なジョインテーブルは実際には生成されないので、メモリやディスク装置の記憶域の消費量が削減される。また、本発明によれば、インデックスなどが付与されているジョインする前のテーブルを検索或いはソートを実施した後に、複数のテーブルを論理的にジョインすることにより、仮想的なジョインテーブルの検索或いはソートを実施することができる。
【発明を実施するための最良の形態】
【００２３】
以下、添付図面を参照して、本発明の実施の形態につき説明を加える。図１は、本発明の実施の形態にかかる表形式データのジョインや、検索及びソートを実現できるコンピュータシステムのハードウェア構成を示すブロックダイヤグラムである。図１に示すように、このコンピュータシステム１０は、通常のものと同様の構成であり、プログラムを実行することによりシステム全体および個々の構成部分を制御するＣＰＵ１２、ワークデータなどを記憶するＲＡＭ(Random Access Memory)１４、プログラム等を記憶するＲＯＭ(Read Only Memory)１６、ハードディスク等の固定記憶媒体１８、ＣＤ−ＲＯＭ１９をアクセスするためのＣＤ−ＲＯＭドライバ２０、ＣＤ−ＲＯＭドライバ２０や外部ネットワーク（図示せず）と接続された外部端子との間に設けられたインタフェース（Ｉ／Ｆ）２２、キーボードやマウスからなる入力装置２４、ＣＲＴ表示装置２６を備えている。ＣＰＵ１２、ＲＡＭ１４、ＲＯＭ１６、外部記憶媒体１８、Ｉ／Ｆ２２、入力装置２４および表示装置２６は、バス２８を介して相互に接続されている。
【００２４】
本実施の形態にかかる、表形式データを結合（ジョイン）するプログラム、結合した表形式データから所定の項目の表（ビュー）を作成するプログラム、検索プログラム、及びソートプログラムは、ＣＤ−ＲＯＭ１９に収容され、ＣＤ−ＲＯＭドライバ２０に読取られても良いし、ＲＯＭ１６に予め記憶されていても良い。また、いったんＣＤ−ＲＯＭ１９から読み出したものを、外部記憶媒体１８の所定の領域に記憶しておいても良い。或いは、上記プログラムは、ネットワーク（図示せず）、外部端子およびＩ／Ｆ２２を経て外部から供給されるものであっても良い。
【００２５】
次に、複数の表形式データのジョインについて説明する。以下の説明では、表形式データを簡単に「テーブル」と呼ぶ。本発明による仮想ジョインとは、複数のテーブルの各々にジョインキーとなる項目を指定し、そのキーが所定の関係を満たす場合に、各テーブルのレコードを対応付けして新たなテーブルを仮想的に作成することである。図２は、野球愛好会会員テーブルと試合予定テーブルの二つのテーブルから新しいジョインテーブルを仮想的に作成する方法の説明図である。野球愛好会会員テーブルは、「会員名」と「応援チーム」を項目として含む３個のレコードにより構成されている。例えば、先頭のレコードの項目「会員名」に対応する項目値は「ＴＡＮＡＫＡ」であり、項目「応援チーム」に対応する項目値は「Ｇｉａｎｔｓ」である。一方、試合予定テーブルは、「球団」と「試合日」を項目として含む４個のレコードにより構成され、例えば、先頭のレコードは、項目「球団」に対応する項目値が「Ｔｉｇｅｒｓ」であり、項目「試合日」に対応する項目値が「５月１０日」である。ここで、野球愛好会会員テーブルの項目「応援チーム」と試合予定テーブルの項目「球団」は、項目名は異なるものの、項目に対応する項目値の集合に共通の要素が含まれている。したがって、野球愛好会会員テーブルの項目「応援チーム」と試合予定テーブルの項目「球団」を両方のテーブルに共通のキー項目として決定し、このキー項目の項目値が一致するレコードを結合することによって、図２に示された仮想的なテーブルが生成される。
【００２６】
例えば、野球愛好会会員テーブルの先頭レコード（＝レコード０）の項目「応援チーム」の項目値「Ｇｉａｎｔｓ」と一致する項目値が、項目「球団」に含まれるレコードを試合予定テーブルで探すと、２行目のレコード（＝レコード１）と４行目のレコード（＝レコード３）が見つかるので、野球愛好会会員テーブルのレコード０は、試合予定テーブルのレコード１とレコード３の２個のレコードと対応付けされる。この対応付けによって新たに（仮想的に）生成されたレコードが仮想的に生成されたテーブルのレコード０及びレコード１に示されている。
【００２７】
ここで、仮想的なテーブルとは、実際にメモリ上に展開されるものではなく、論理的に関連付けられていることを意味する。従来のジョイン方法の場合、ジョインテーブルが実際に生成され、メモリ又はディスク装置に格納されていた。
【００２８】
尚、図２の例では、キーが満たす所定の関係は「一致する」関係であるが、本発明における所定の関係は、「一致する」関係に限定されることはなく、「＜」、「＞」、「＜＝」、及び、「＞＝」のような順序関係でもよい。
【００２９】
以下では、図２に示した野球愛好会会員テーブル（＝第１のテーブル）と試合予定テーブル（＝第２のテーブル）の仮想ジョインの例に基づいて、本発明による表形式データの結合方法を説明する。図３は、本発明の表形式データの結合方法の実施の形態のフローチャートである。ステップ３０１において、第１のテーブル及び第２のテーブルを準備し、キー項目を決定する。例えば、第１のテーブル及び第２のテーブルをメモリ上に展開し、キー項目として、「応援チーム」と「球団」を指定する。次に、ステップ３０２において、第１のテーブルの処理対象レコードのキー項目値を獲得する。例えば、第１のテーブルの先頭行のレコードを処理対象レコードとし、「応援チーム」項目の項目値「Ｇｉａｎｔｓ」を取り出す。続いて、ステップ３０３において、第２のテーブルのレコードから所定のマッチング条件を満たすレコード群を特定する。例えば、第２のテーブルの「球団」項目から「Ｇｉａｎｔｓ」項目値をもつレコードを検索し、レコード１とレコード３のレコード群を特定する。最後に、ステップ３０４において、第１のテーブルの処理対象レコードと第２のテーブルのレコード群の対を出力する。本実施の形態では、処理対象レコードとレコード群の対は、例えば、図１の表示装置２６に出力され、或いは、Ｉ／Ｆ２２及び外部端子を介して、外部機器へ出力される。
【００３０】
本実施の形態では、第１のテーブルの中で処理対象レコードを順次進めることにより、レコード群の対を順次出力することができる。図４は、レコード群の対を順次出力する処理の説明図である。同図において、（Ａ）は第１のテーブルのレコード０と対応する第２のテーブルのレコード群の対を表し、（Ｂ）は第１のテーブルのレコード１と対応する第２のテーブルのレコード群の対を表し、（Ｃ）は第１のテーブルのレコード２と対応する第２のテーブルのレコード群の対を表す。これにより、仮想ジョインテーブルが完成する。
このように、本実施の形態によれば、実際にジョインテーブルを作成することなく、第１のテーブルと第２のテーブルを論理的に結合し、結合結果を提示することが可能である。
【００３１】
図３のステップ３０３では、所定のマッチング条件を満たすレコード群を特定するために、第２のテーブル内では、「球団」項目に特定の項目値をもつレコードを検索している。この検索を高速化するため、本発明の好ましい実施の形態によれば、第２のテーブルは、「球団」項目にＢ−Ｔｒｅｅやビットマップインデックスのようなインデックスが付与される。このインデックスは、第２のテーブルを準備する際に予め付与しておいてもよく、或いは、キー項目の決定後に付与してもよい。このようにインデックスを付与することにより、レコード群を特定するステップ３０３では、第２のテーブルの「球団」項目に付与されたインデックスを用いた検索によってレコード群を特定することができる。
【００３２】
或いは、本発明の他の実施の形態では、第２のテーブル内での「球団」項目を高速に検索するため、「球団」項目に対応した項目値毎に、この項目値から、この項目値を含むレコードを指定する指標データを予め生成し、生成された指標データを用いた検索によってレコード群を特定する。更に、検索を高速化するためには、この指標データを、キー項目の項目値に基づいて予めソートし、或いは、指標データの項目値の部分にインデックスを付与する。
【００３３】
図５は、本発明の他の実施の形態によるレコード群の検索の高速化のための指標データとしてレコードへのポインターを用いた例の説明図である。第２のテーブルの「球団」項目の値、例えば、［Ｄｒａｇｏｎｓ］、［Ｇｉａｎｔｓ］及び［Ｔｉｇｅｒｓ］からその値を含むレコードをポイントするポインターのリストが、「球団」項目の値の部分でソードされたポインターリストとして準備されている。或いは、このレコードをポイントするポインターのリストは、「球団」項目の値の部分にインデックスを付与してもよい。
【００３４】
本発明の他の実施の形態では、指標データとしてレコード番号が使用される。図２の例では、第２のテーブルの１行目のレコードのレコード番号は０であり、２行目のレコードのレコード番号は１であり、以下同様に続く。このレコード番号による指標データも、上述のレコードへのポインターによる指標データと同様に、ソートしたり、インデックスを付与したりすることができる。
【００３５】
更に、本発明の他の実施の形態では、指標データとしてレコードが格納されているメモリ上のアドレスに対応付けられている値が使用される。例えば、各レコードは、１０００番地毎に始まることにして、１０００、２０００、３０００・・・という値を用いて、レコード０、レコード１、レコード２・・・を特定してもよい。この値による指標データも、上述のレコードへのポインターによる指標データと同様に、ソートしたり、インデックスを付与したりすることができる。
【００３６】
本発明による表形式データの結合方法は、ジョインテーブルの検索やソートに拡張することができる。上述のように、従来の実際にジョインテーブルを作成するジョインでは、ジョインされる対象のテーブルにインデックスが付与されていたとしても、新たに作成されたジョインテーブルにはそのインデックスが反映されない。したがって、ジョイン後のジョインテーブルを用いて高速に検索・ソートを行うことができなかった。これに対して、本発明による仮想ジョインの原理に基づく表形式データの結合方法は、ジョインの元になる第１のテーブルを検索し、絞り込むこみ、絞り込まれた後の第１のテーブルと第２のテーブルを結合することにより、ジョインテーブルにおける検索を仮想的に実現することができる。また、ジョインも元になる第１のテーブルを予めソートし、ソートされた後の第１のテーブルと第２のテーブルを結合することにより、ジョインテーブルにおけるソートを仮想的に実現することができる。
【００３７】
図６は本発明の実施の形態による表形式データの結合方法を用いた検索方法の説明図である。図７は本発明の実施の形態による表形式データの検索方法のフローチャートである。本実施の形態では、最初に野球愛好会会員テーブルから、会員名がＳで始まる会員名をもつレコードを検索し（ステップ７０１）、次に、検索結果のレコードだけを含む野球愛好会会員テーブル、即ち、第１のテーブルと、試合予定テーブルである第２のテーブルを「応援チーム」と「球団」で仮想ジョインすると（ステップ７０２〜７０５）、仮想ジョインで仮想的に生成されるテーブルが得られる。このテーブルは、図２の仮想ジョインテーブルから、会員名がＳで始まる会員名をもつレコードを検索した結果と一致している。このように、本発明の実施の形態によれば、予め検索した結果を用いて仮想ジョインを実行することにより、ジョインによって生成されたジョインテーブルに検索を行った場合と同じ結果が得られる。仮想ジョイン前のテーブルは、Ｂ−Ｔｒｅｅやビットマックインデックスのようなインデックスを予め付与し、或いは、その他の検索を高速化するためのタグを付与することができるので、本発明の実施の形態によれば、仮想ジョインテーブルの検索を高速に実現することが可能になる。
【００３８】
図８は本発明の実施の形態による表形式データの結合方法を用いたソート方法の説明図である。図９は本発明の実施の形態による表形式データのソート方法のフローチャートである。本実施の形態では、最初に野球愛好会会員テーブルから、会員名をアルファベット順にソートすることによりレコードを並べ替え（ステップ９０１）、次に、レコード順が並び替えられた野球愛好会会員テーブル、即ち、第１のテーブルと、試合予定テーブルである第２のテーブルを「応援チーム」と「球団」で仮想ジョインすると（ステップ９０２〜９０５）、仮想ジョインで仮想的に生成されるテーブルが得られる。このテーブルは、図２の仮想ジョインテーブルを、会員名がアルファベット順になるように並べ替えた結果と一致している。このように、本発明の実施の形態によれば、予めソートした結果を用いて仮想ジョインを実行することにより、ジョインによって生成されたジョインテーブルにソートを行った場合と同じ結果が得られる。仮想ジョイン前のテーブルは、Ｂ−Ｔｒｅｅやビットマックインデックスのようなインデックスを予め付与し、或いは、その他のソートを高速化するためのタグを付与することができるので、本発明の実施の形態によれば、仮想ジョインテーブルのソートを高速に実現することが可能になる。
【図面の簡単な説明】
【００３９】
【図１】本発明を実施するコンピュータシステムのハードウェア構成を示すブロックダイヤグラムである。
【図２】本発明による仮想的なテーブル生成の説明図である。
【図３】本発明の表形式データの結合方法の実施の形態のフローチャートである。
【図４】本発明の実施の形態による対象レコードとレコード群の対を順次出力する処理の説明図である。
【図５】本発明の他の実施の形態によるレコード群の検索の高速化のための指標データの説明図である。
【図６】本発明の実施の形態による表形式データの結合方法を用いた検索方法の説明図である。
【図７】本発明の実施の形態による表形式データの検索方法のフローチャートである。
【図８】本発明の実施の形態による表形式データの結合方法を用いたソート方法の説明図である。
【図９】本発明の実施の形態による表形式データのソート方法のフローチャートである。
【符号の説明】
【００４０】
１０        コンピュータシステム
１２        ＣＰＵ
１４        ＲＡＭ
１６        ＲＯＭ
１８        固定記憶装置
２０        ＣＤ−ＲＯＭドライバ
２２        Ｉ／Ｆ
２４        入力装置
２６        表示装置
【図１】
2005135221.tif 000003
【図２】
2005135221.tif 000004
【図３】
2005135221.tif 000005
【図４】
2005135221.tif 000006
【図５】
2005135221.tif 000007
【図６】
2005135221.tif 000008
【図７】
2005135221.tif 000009
【図８】
2005135221.tif 000010
【図９】
2005135221.tif 000011