(57)【特許請求の範囲】
【請求項１】
３つ以上のテーブルの結合が可能なデータベース管理プログラムであって、
コンピュータに、
順次，結合すべき第１乃至第Ｎのテーブル内の第１のテーブルと第２のテーブルとから、メモリ上に、第１のテーブルのレコード識別情報及び第２のテーブルのレコード識別情報が設定された幾つかのレコードを含む第２作業用テーブルであり、各レコード内に設定されている各レコード識別情報が示しているテーブル内のレコードを組み合わせることにより，第１のテーブルと第２のテーブルとを指定されている条件で結合したテーブルを得ることが出来る第２作業用テーブルを作成する第２作業用テーブル作成ステップと、
第Ｍ作業用テーブルと第Ｍ＋１のテーブルとから、メモリ上に、第Ｍ作業用テーブルのレコード識別情報及び第Ｍ＋１のテーブルのレコード識別情報が設定された幾つかのレコードを含む第Ｍ＋１作業用テーブルであって、各レコード内に設定されている第Ｍ＋１のテーブルに関するレコード識別情報にて識別される第Ｍ＋１のテーブル内のレコードと，各レコード内に設定されている第Ｍ作業用テーブルに関する各レコード識別情報に第Ｍ−１乃至第２作業用テーブル上の情報を介して対応づけられている第１のテーブルから第Ｍのテーブルまでの各テーブル内のレコードとを組み合わせることにより，第１のテーブルから第Ｍ＋１のテーブルまでを指定されている条件で結合したテーブルを得ることが出来る第Ｍ＋１作業用テーブルを作成する第Ｍ＋１作業用テーブル作成処理を、前記第２作業用テーブル作成ステップによる前記第２作業用テーブルの作成完了後に、２からＮ−１までのそれぞれの整数値Ｍについて，順次，実行する第Ｎ作業用テーブル作成ステップと、
前記第Ｎ作業用テーブル作成ステップによる前記第Ｎ作業用テーブルの作成完了後に、各作業用テーブル作成ステップにより作成されている第２乃至第Ｎ作業用テーブル内の情報と第１乃至第Ｎのテーブル内の情報とから、第１のテーブルから第Ｎのテーブルまでを指定された条件で結合したテーブルを作成する結合済テーブル作成ステップと
を実行させることを特徴とするデータベース管理プログラム。
【請求項２】
前記第Ｎ作業用テーブル作成ステップが、
Ｎ＝２の場合には、機能しないステップであり、
前記結合済テーブル作成ステップが、
Ｎ＝２の場合には、前記第２作業用テーブル作成ステップによる前記第２作業用テーブルの作成完了後に、その第２作業用テーブル内の情報と第１及び第２のテーブル内の情報
とから、第１のテーブル及び第２のテーブルを指定された条件で結合したテーブルを作成するステップである
ことを特徴とする請求項１記載のデータベース管理プログラム。
【請求項３】
前記第２作業用テーブル作成ステップが、
第１のテーブルと第２のテーブルとから、メモリ上に、第１のテーブルのレコード識別情報，第２のテーブルのレコード識別情報，及び，抽出対象識別用フラグが設定された複数のレコードを含み、各レコード内に設定されている抽出対象識別用フラグが、同一のレコード内に設定されている第Ｍ＋１のテーブルに関するレコード識別情報にて識別される第Ｍ＋１のテーブル内のレコードと，同一のレコード内に設定されている第Ｍ作業用テーブルに関する各レコード識別情報に第Ｍ−１乃至第２作業用テーブル上の情報を介して対応づけられている第１のテーブルから第Ｍのテーブルまでの各テーブル内のレコードとが，どの結合条件で結合したテーブルの生成に必要とされるレコードであるかを示す情報となっているフラグテーブルを一旦作成した後、そのフラグテーブルから、第１のテーブル及び第２のテーブル間のものとして指定されている結合条件に応じた抽出用レコード識別用フラグが設定されているレコードを抽出することにより、前記第２作業用テーブルを作成するステップであり、
前記第Ｎ作業用テーブル作成ステップが、
前記第Ｍ＋１作業用テーブル作成処理として、第Ｍ作業用テーブルと第Ｍ＋１のテーブルとから、メモリ上に、第Ｍ作業用テーブルのレコード識別情報，第Ｍ＋１のテーブルのレコード識別情報，及び，抽出対象識別用フラグが設定された複数のレコードを含み、各レコード内に設定されている抽出対象識別用フラグが、同一のレコード内に設定されている第Ｍ＋１のテーブルに関するレコード識別情報にて識別される第Ｍ＋１のテーブル内のレコードと，同一のレコード内に設定されている第Ｍ作業用テーブルに関する各レコード識別情報に第Ｍ−１乃至第２作業用テーブル上の情報を介して対応づけられている第１のテーブルから第Ｍのテーブルまでの各テーブル内のレコードとが，どの結合条件で結合したテーブルの生成に必要とされるレコードであるかを示す情報となっているフラグテーブルを一旦作成した後、そのフラグテーブルから、第１乃至第Ｍのテーブルの結合結果及び第Ｍ＋１のテーブル間のものとして指定されている結合条件に応じた抽出用レコード識別用フラグが設定されているレコードを抽出することにより、前記第Ｍ＋１作業用テーブルを作成するステップである
ことを特徴とする請求項１又は請求項２記載のデータベース管理プログラム。
【請求項４】
前記第２作業用テーブル作成ステップ及び前記第Ｎ作業用テーブル作成ステップが、
同一のレコード内に設定されている第Ｍ＋１のテーブルに関するレコード識別情報にて識別される第Ｍ＋１のテーブル内のレコードと，同一のレコード内に設定されている第Ｍ作業用テーブルに関する各レコード識別情報に第Ｍ−１乃至第２作業用テーブル上の情報を介して対応づけられている第１のテーブルから第Ｍのテーブルまでの各テーブル内のレコードとが，外部結合及び右外部結合のために必要なものであることを示す第１フラグ、それらのレコードが，内部結合，外部結合，左外部結合及び右外部結合のために必要なものであることを示す第２フラグ、それらのレコードが，外部結合及び左外部結合のために必要なものであることを示す第３フラグのいずれかが前記抽出対象識別用フラグとして各レコード内に設定されているフラグテーブルを作成するステップである
ことを特徴とする請求項１乃至請求項３のいずれかに記載のデータベース管理プログラム。
【請求項５】
３つ以上のテーブルの結合が可能なデータベース管理装置であって、
順次，結合すべき第１乃至第Ｎのテーブル内の第１のテーブルと第２のテーブルとから、メモリ上に、第１のテーブルのレコード識別情報及び第２のテーブルのレコード識別情報が設定された幾つかのレコードを含む第２作業用テーブルであり、各レコード内に設定
されている各レコード識別情報が示しているテーブル内のレコードを組み合わせることにより，第１のテーブルと第２のテーブルとを指定されている条件で結合したテーブルを得ることが出来る第２作業用テーブルを作成する第２作業用テーブル作成手段と、
第Ｍ作業用テーブルと第Ｍ＋１のテーブルとから、メモリ上に、第Ｍ作業用テーブルのレコード識別情報及び第Ｍ＋１のテーブルのレコード識別情報が設定された幾つかのレコードを含む第Ｍ＋１作業用テーブルであって、各レコード内に設定されている第Ｍ＋１のテーブルに関するレコード識別情報にて識別される第Ｍ＋１のテーブル内のレコードと，第Ｍ−１乃至第２作業用テーブル上の情報を介して各レコード内に設定されている第Ｍ作業用テーブルに関する各レコード識別情報に対応づけられている第１のテーブルから第Ｍのテーブルまでの各テーブル内のレコードとを組み合わせることにより，第１のテーブルから第Ｍ＋１のテーブルまでを指定されている条件で結合したテーブルを得ることが出来る第Ｍ＋１作業用テーブルを作成する第Ｍ＋１作業用テーブル作成処理を、前記第２作業用テーブル作成手段による前記第２作業用テーブルの作成完了後に、２からＮ−１までのそれぞれの整数値Ｍについて，順次，実行する第Ｎ作業用テーブル作成手段と、
前記第Ｎ作業用テーブル作成手段による前記第Ｎ作業用テーブルの作成完了後に、各作業用テーブル作成手段により作成されている第２乃至第Ｎ作業用テーブル内の情報と第１乃至第Ｎのテーブル内の情報に基づき、第１のテーブルから第Ｎのテーブルまでを指定された条件で結合したテーブルを作成する結合済テーブル作成手段と
を備えることを特徴とするデータベース管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テーブルの結合（ＪＯＩＮ）が可能なデータベース管理プログラム，データベース管理装置に、関する。
【背景技術】
【０００２】
周知のように、近年の一般的なデータベース管理プログラムは、複数のテーブルを結合すること可能なもの（例えば、非特許文献１参照。）となっている。
【０００３】
また、一般的なデータベース管理プログラムの大部分は、３つ以上のテーブルの結合を１コマンド（１ＳＱＬ文等）で指示できるプログラムともなっているのであるが、そのようなデータベース管理プログラムは、２つのテーブルを結合したテーブルをメモリ上に作成する処理を繰り返すことによって，３つ以上のテーブルの結合を行うプログラム（例えば、３つのテーブルＡ〜Ｃを，この順で結合する場合、テーブルＡ，Ｂを結合したテーブルを，一旦，メモリ上に作成した後、そのテーブルとテーブルＣとを結合することにより、テーブルＡ〜Ｃを結合したテーブルを作成するプログラム）となっている。
【０００４】
そして、３つ以上のテーブルの結合を行うためにメモリ上に作成したテーブル内の情報が、全て、指定されたテーブルの結合結果中に含めるべき情報であるとは限らないため、既存のデータベース管理プログラムは、３つ以上のテーブルを結合したテーブルの作成時に、メモリの記憶容量が無駄に使用されることがあるプログラムとなっていた。
【０００５】
【非特許文献１】志村伸弘著，「ＭｙＳＱＬ  徹底攻略ガイド」，技術評論社，平成１４年８月
【発明の開示】
【発明が解決しようとする課題】
【０００６】
そこで、本発明の課題は、メモリの記憶容量をより効率的に使用する形で、３つ以上のテーブルを結合できるデータベース管理プログラム，データベース管理装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明では、データベース管理プログラムを、コンピュータに、順次，結合すべき第１乃至第Ｎのテーブル内の第１のテーブルと第２のテーブルとから、メモリ上に、第１のテーブルのレコード識別情報及び第２のテーブルのレコード識別情報が設定された幾つかのレコードを含む第２作業用テーブルであり、各レコード内に設定されている各レコード識別情報が示しているテーブル内のレコードを組み合わせることにより，第１のテーブルと第２のテーブルとを指定されている条件で結合したテーブルを得ることが出来る第２作業用テーブルを作成する第２作業用テーブル作成ステップと、第Ｍ作業用テーブルと第Ｍ＋１のテーブルとから、メモリ上に、第Ｍ作業用テーブルのレコード識別情報及び第Ｍ＋１のテーブルのレコード識別情報が設定された幾つかのレコードを含む第Ｍ＋１作業用テーブルであって、各レコード内に設定されている第Ｍ＋１のテーブルに関するレコード識別情報にて識別される第Ｍ＋１のテーブル内のレコードと，各レコード内に設定されている第Ｍ作業用テーブルに関する各レコード識別情報に第Ｍ−１乃至第２作業用テーブル上の情報を介して対応づけられている第１のテーブルから第Ｍのテーブルまでの各テーブル内のレコードとを組み合わせることにより，第１のテーブルから第Ｍ＋１のテーブルまでを指定されている条件で結合したテーブルを得ることが出来る第Ｍ＋１作業用テーブルを作成する第Ｍ＋１作業用テーブル作成処理を、第２作業用テーブル作成ステップによる第２作業用テーブルの作成完了後に、２からＮ−１までのそれぞれの整数値Ｍについて，順次，実行する第Ｎ作業用テーブル作成ステップと、第Ｎ作業用テーブル作成ステップによる第Ｎ作業用テーブルの作成完了後に、各作業用テーブル作成ステップにより作成されている第２乃至第Ｎ作業用テーブル内の情報と第１乃至第Ｎのテーブル内の情報とから、第１のテーブルから第Ｎのテーブルまでを指定された条件で結合したテーブルを作成する結合済テーブル作成ステップとを実行させることが出来るプログラムとして作成（プログラミング）しておく。
【０００８】
すなわち、本発明のデータベース管理プログラムは、２つのテーブルを結合したテーブルをメモリ上に作成する処理を繰り返すのではなく、２つのテーブルを結合したテーブルよりも小サイズな作業用テーブルを作成する処理を繰り返すことにより、３つ以上のテーブルの結合を行うプログラムとなっている。従って、本発明のデータベース管理プログラムは、メモリの記憶容量を，既存のデータベース管理プログラムよりも効率的に使用する形（メモリが，第１のテーブルから第Ｎのテーブルまでを指定された条件で結合したテーブルに含められない大量の情報の記憶に使用されない形）で、３つ以上のテーブルを結合できるプログラムとなっていると言うことが出来る。
【０００９】
本発明のデータベース管理プログラムは、２つのテーブルを結合するための，上記各種ステップとは別のステップを，コンピュータに実行させるものとして実現しておくことも出来る。ただし、よりプログラムの内容が簡単なものとなる（その作成／プログラミングがより簡単になる）ため、上記のようなものとして実現するよりも、本発明のデータベース管理プログラムは、第Ｎ作業用テーブル作成ステップが、Ｎ＝２の場合には、機能しないステップとなり、結合済テーブル作成ステップが、Ｎ＝２の場合には、第２作業用テーブル作成ステップによる第２作業用テーブルの作成完了後に、その第２作業用テーブル内の情報と第１及び第２のテーブル内の情報とから、第１のテーブル及び第２のテーブルを指定された条件で結合したテーブルを作成するステップとなるものとして実現しておくことが、望ましい。
【００１０】
また、本発明のデータベース管理プログラムを実現する際には、各作業用テーブル作成ステップとして、２つのテーブルから直接的に作業用テーブルを作成するものを採用しておくことも、第２作業用テーブル作成ステップとして、第１のテーブルと第２のテーブルとから、メモリ上に、第１のテーブルのレコード識別情報，第２のテーブルのレコード識別情報，及び，抽出対象識別用フラグが設定された複数のレコードを含み、各レコード内に設定されている抽出対象識別用フラグが、同一のレコード内に設定されている第Ｍ＋１のテーブルに関するレコード識別情報にて識別される第Ｍ＋１のテーブル内のレコードと，同一のレコード内に設定されている第Ｍ作業用テーブルに関する各レコード識別情報に第Ｍ−１乃至第２作業用テーブル上の情報を介して対応づけられている第１のテーブルから第Ｍのテーブルまでの各テーブル内のレコードとが，どの結合条件で結合したテーブルの生成に必要とされるレコードであるかを示す情報となっているフラグテーブルを一旦作成した後、そのフラグテーブルから、第１のテーブル及び第２のテーブル間のものとして指定されている結合条件に応じた抽出用レコード識別用フラグが設定されているレコードを抽出することにより、第２作業用テーブルを作成するステップを採用し、第Ｎ作業用テーブル作成ステップとして、第Ｍ＋１作業用テーブル作成処理として、第Ｍ作業用テーブルと第Ｍ＋１のテーブルとから、メモリ上に、第Ｍ作業用テーブルのレコード識別情報，第Ｍ＋１のテーブルのレコード識別情報，及び，抽出対象識別用フラグが設定された複数のレコードを含み、各レコード内に設定されている抽出対象識別用フラグが、同一のレコード内に設定されている第Ｍ＋１のテーブルに関するレコード識別情報にて識別される第Ｍ＋１のテーブル内のレコードと，同一のレコード内に設定されている第Ｍ作業用テーブルに関する各レコード識別情報に第Ｍ−１乃至第２作業用テーブル上の情報を介して対応づけられている第１のテーブルから第Ｍのテーブルまでの各テーブル内のレコードとが，どの結合条件で結合したテーブルの生成に必要とされるレコードであるかを示す情報となっているフラグテーブルを一旦作成した後、そのフラグテーブルから、第１乃至第Ｍのテーブルの結合結果及び第Ｍ＋１のテーブル間のものとして指定されている結合条件に応じた抽出用レコード識別用フラグが設定されているレコードを抽出することにより、第Ｍ＋１作業用テーブルを作成するステップを採用しておくことも出来る。
【００１１】
なお、各作業用テーブル作成ステップとして、フラグテーブルを作成するステップを採用した形で、本発明のデータベース管理プログラムを実現する際には、各種タイプの結合が用意に行えるようにするために、各作業用テーブル作成ステップが、同一のレコード内に設定されている第Ｍ＋１のテーブルに関するレコード識別情報にて識別される第Ｍ＋１のテーブル内のレコードと，同一のレコード内に設定されている第Ｍ作業用テーブルに関する各レコード識別情報に第Ｍ−１乃至第２作業用テーブル上の情報を介して対応づけられている第１のテーブルから第Ｍのテーブルまでの各テーブル内のレコードとが，外部結合及び右外部結合のために必要なものであることを示す第１フラグ、当該レコードが，内部結合，外部結合，左外部結合及び右外部結合のために必要なものであることを示す第２フラグ、当該レコードが，外部結合及び左外部結合のために必要なものであることを示す第３フラグのいずれかが抽出対象識別用フラグとして各レコード内に設定されているフラグテーブルを作成するステップとなるようにしておくことが、望ましい。
【００１２】
そして、本発明のデータベース管理装置は、本発明のデータベース管理プログラム（請求項１記載のデータベース管理プログラム）を実行させたコンピュータと同機能の装置なのであるから、本発明のデータベース管理装置は、メモリの記憶容量を，既存のデータベース管理プログラムよりも効率的に使用する形（第１のテーブルから第Ｎのテーブルまでを指定された条件で結合したテーブルに含められない大量の情報の記憶に、メモリが使用されない形）で、３つ以上のテーブルを結合できる装置となってことになる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明を実施するための最良の形態を、図面を参照して詳細に説明する。
【００１４】
図１に示してあるように、本発明の一実施形態に係るデータベース管理装置１０は、複数台のユーザＰＣ３０とネットワーク接続されて使用される装置である。なお、本実施形態に係るデータベース管理装置１０は、データベース管理プログラム（図では、ＤＢ管理プログラム）１１を、比較的に高機能なコンピュータ（本実施形態では、ディスプレイ，キーボードを備えたもの）にインストールした装置であるため、データベース管理装置１０の具体的なハードウェア構成の説明は省略することにする。
【００１５】
データベース管理装置１０と接続されている各ユーザＰＣ３０は、データベース管理装置１０内のデータベースを利用するための，複数のテーブルの結合指示操作〔結合するテーブルやテーブル間の結合条件（ｋｅｙ項目名，結合法）等を指定し、その指定した内容のテーブル結合の実行を指示する操作〕が可能なクライアントプログラム３１をコンピュータにインストールした装置である。
【００１６】
データベース管理プログラム１１は、各種のデータ処理（データの検索処理や集計処理等）をより高速に行えるようにするために、データベースを構成する各テーブルの内容を表すデータとして、通常のテーブル形式データではなく、ＦＡＳＴ構造データを管理するようにしたプログラム（テーブル形式データをＦＡＳＴ構造データに変換して管理するプログラム）である。
【００１７】
なお、ＦＡＳＴ構造データとは、図２（ａ）に示したテーブル形式データに対応するものが，図２（ｂ）に示したものとなるデータのことである。すなわち、ＦＡＳＴ構造データは、テーブル形式データにおけるレコード番号のリスト（各VLテーブル中の各種項目値を相互に関連づけるための情報のリスト）であるOrdsetテーブルを含むデータであると共に、項目毎に、重複していない項目値のソート済リストであるVLテーブルと，各Ordset値に対する項目値番号（VL中での位置を示す情報）のリストであるVNoテーブルとを含むデータ（テーブル形式のデータを、それと同値の，各種項目値が重複していない形式のものに変換したものに相当するデータ）となっている。
【００１８】
このデータベース管理プログラム１１は、或るユーザＰＣ３０のユーザが、３つ以上のテーブルの結合指示操作を行った場合、２つのテーブルを結合したテーブルをメモリ上に作成する処理を繰り返さない形で、ユーザが指定した内容のテーブルを作成するように構成した（プログラミングした）プログラムとなっている。
【００１９】
具体的には、データベース管理プログラム１１は、第１テーブルないし第Ｎテーブル（Ｎ≧２）を順次結合すべきことが指示された場合、図３に示した手順の順次結合処理を実行するプログラムとなっている。
【００２０】
すなわち、この場合、データベース管理プログラム１１は、まず、指定されている結合条件（第１，第２テーブルについて指定されているｋｅｙ項目名）を参照することにより、第１テーブルと第２テーブルとから，メモリ上にフラグテーブルを作成する処理（ステップＳ１０１）を行う。
【００２１】
ここで、フラグテーブルとは、図４に示した構成のテーブルのことである。そして、ステップＳ１０１の処理は、第１，第２テーブル間の結合条件（第１，第２テーブルについて指定されているｋｅｙ項目名のみ）に基づき、第１，第２テーブルから、ｋｅｙ項目名の値が一致している第１，第２テーブル内のレコードのOrdset値の組み合わせや、値が一致しているレコードが他方のテーブル内に存在していないレコードのOrdset値を特定していくことにより、（ａ）ｋｅｙ項目名の値が一致している第１，第２テーブル内のレコードのOrdset値の組み合わせについては、それらの値を各テーブルに関するレコード識別情報（図におけて、左側のレコード識別情報が、第１テーブルに関するもの）としてセットされ，フラグとして“２”がセットされているレコードを含み、（ｂ）値が一致しているレコードが第１テーブル内に存在していない第２テーブル内にレコードのOrdset値については、第１テーブルに関するレコード識別情報，第２テーブルに関するレコード識別情報，フラグとして、それぞれ、null，当該Ordset値，“１”がセットされているレコードを含み、（ｃ）値が一致しているレコードが第２テーブル内に存在していない第１テーブル内にレコードのOrdset値については、第１テーブルに関するレコード識別情報，第２テーブルに関するレコード識別情報，フラグとして、それぞれ、当該Ordset値，null，“３”がセットされているレコードを含むフラグテーブルを作成する処理となっている。
【００２２】
ステップＳ１０１の処理（図３参照）を終えたデータベース管理プログラム１１は、作成したフラグテーブルから、フラグ値が，結合条件（第１テーブルと第２テーブルとの間のものとして指定されている結合法[内部結合，外部結合等の別]）に応じた値となっているレコード（正確には、当該レコード内の２つのレコード識別情報）を抽出することにより、図５に示した構成の第２作業用テーブルを作成する処理（ステップＳ１０２）を、行う。
【００２３】
このステップＳ１０２の処理は、第１テーブルと第２テーブルとの間のものとして指定されている結合法（以下、指定結合法と表記する）が内部結合（INNNER JOIN）であった場合には、フラグ値が“２”となっているレコードのみを抽出することにより、第２作業用テーブルを作成し、指定結合法が左外部結合（LEFT OUTER JOIN）であった場合には、フラグ値が“２”或いは“３”となっているレコードを抽出することにより、第２作業用テーブルを作成する処理となっている。さらに、ステップＳ１０２の処理は、指定結合法が右外部結合（RIGHT OUTER JOIN）であった場合には、フラグ値が“１”或いは“２”となっているレコードを抽出することにより、第２作業用テーブルを作成し、指定結合法が外部結合（OUTER JOIN）であった場合には、全てのレコードを抽出することにより、第２作業用テーブルを作成する処理となっている。
【００２４】
なお、後述するステップＳ１０６で作成される第Ｍ＋１作業用テーブル（Ｍ＞２）も、図５に示した構成のテーブルであり、データベース管理プログラム１１は、メモリ上の各作業用テーブル内の各レコード識別情報とテーブルとの対応関係を，別途，管理するプログラムとなっている。
【００２５】
ステップＳ１０２の処理を終えたデータベース管理プログラム１１は、結合すべきテーブルの数が“２”であった場合（ステップＳ１０３，Ｓ１０４；ＮＯ）には、メモリ上に作成してある第２作業用テーブル内の情報と第１及び第２テーブル内の情報とから、第１テーブルと第２テーブルとを指定された条件で結合したテーブルをメモリ上に作成する処理（ステップＳ１０８）を行う。換言すれば、データベース管理プログラム１１は、このステップＳ１０８において、第２作業用テーブル内の情報に基づき，第１テーブル及び第２テーブルから必要とされる項目値を収集することにより、第１テーブルと第２テーブルとを指定された条件で結合したテーブルをメモリ上に作成（用意）する処理を行う。そして、データベース管理プログラム１１は、通常は（ユーザによる指示操作が特殊な内容のものでない場合は）、作成したテーブルに関する情報を，テーブルの結合を指示したユーザが使用しているユーザＰＣ３０に送信する処理（図示せず）を行ってから、この図の処理を終了する。
【００２６】
一方、結合すべきテーブルの数が“３”以上であった場合、データベース管理プログラム１１は、２からＮ−１までのそれぞれの整数値Ｍについて（ステップＳ１０３，Ｓ１０４，Ｓ１０７）、指定されている結合条件を参照することにより，ステップＳ１０２の処理と同様の手順で，第Ｍ作業用テーブルと第Ｍ＋１テーブルとからメモリ上にフラグテーブルを作成する処理（第１テーブルに関するOrdset値の代わりに第Ｍ作業用テーブルのレコード番号を使用してフラグテーブルを作成する処理：ステップＳ１０５）と、作成したフラグテーブルから、ステップＳ１０３の処理と同様の手順で、フラグ値が結合条件に応じた値となっているレコードを抽出することにより第Ｍ＋１作業用テーブルを作成する処理（ステップＳ１０６）とを行う。
【００２７】
そして、データベース管理プログラム１１は、第Ｎ作業用テーブル（Ｎ＝Ｍ−１であるときの第Ｍ＋１作業用テーブル）の作成が完了した場合（ステップＳ１０４；ＮＯ）には、それまでの処理によりメモリ上に作成されている第２乃至第Ｎ作業用テーブル内の情報と第１乃至第Ｎテーブル内の情報とから、第１テーブルから第Ｎテーブルまでを指定された条件で結合したテーブルをメモリ上に作成する処理（ステップＳ１０８）を行う。すなわち、この場合、データベース管理プログラム１１は、第２〜第Ｎ作業用テーブル内の情報に基づき，第１テーブル〜第Ｎテーブルから必要とされる項目値を収集することにより、第１テーブルから第Ｎテーブルまでを指定された条件で結合したテーブルをメモリ上に作成（用意）する処理を行う。そして、作成したテーブルに関する情報をユーザＰＣ３０に送信する処理（図示せず）を行ってから、この図の処理を終了する。
【００２８】
要するに、本実施形態に係るデータベース管理プログラム１１が実行する順次結合処理は、例えば、結合するテーブルがテーブルＴ１〜Ｔ４であった場合、図６に模式的に示したように、３つの作業用テーブルＷＴ２〜ＷＴ４をメモリ上に作成した後、それらの作業用テーブル内の情報に基づき，テーブルＴ１〜Ｔ４から必要とされる項目値を収集することにより、テーブルＴ１〜Ｔ４を結合したテーブルをメモリ上に作成する処理となっている。
【００２９】
そして、データベース管理プログラム１１は、図７に模式的に示したように、より複雑なテーブル結合も、幾つかの作業用テーブルをメモリ上に作成することにより行うプログラムとなっている。
【００３０】
以上の説明から明らかなように、本発明の一実施形態に係るデータベース管理装置１０，データベース管理プログラム１１は、２つのテーブルを結合したテーブルをメモリ上に作成する処理を繰り返すのではなく、２つのテーブルを結合したテーブルよりも小サイズな作業用テーブル（図５参照）を作成する処理を繰り返すことにより、３つ以上のテーブルの結合を行うプログラムとなっている。従って、本実施形態に係るデータベース管理装置１０，データベース管理プログラム１１は、メモリの記憶容量を，既存のものよりも効率的に使用する形（メモリが，第１のテーブルから第Ｎのテーブルまでを指定された条件で結合したテーブルに含められない大量の情報の記憶に使用されない形）で、３つ以上のテーブルを結合できるプログラムとなっていると言うことが出来る。
【００３１】
《変形形態》
上記したデータベース管理装置１０，データベース管理プログラム１１は、各種の変形を行うことが出来る。例えば、データベース管理装置１０を，上記のような処理がＡＳＩＣにより行われる装置に変形することが出来る。また、データベース管理プログラム１１を、専用のソフトを各ユーザＰＣ３０にインストールしておく必要がないもの（各ユーザＰＣ３０へ、スクリプトやＨＴＭＬ／ＸＭＬデータを提供することによって、各ユーザＰＣ３０のユーザにデータベース内の情報を利用させるプログラム）に変形することも出来る。
【００３２】
また、データベース管理プログラム１１を、フラグテーブルを作成することなく、作業用テーブルを作成するものや、上記した４種の結合が行えないもの（内部結合のみが行えるもの等）や、各種テーブルに関するデータをテーブル形式データとして管理するものに、変形することも出来る。
【図面の簡単な説明】
【００３３】
【図１】本発明の一実施形態に係るデータベース管理装置の構成図。
【図２】ＦＡＳＴ構造データの説明図。
【図３】データベース管理装置が実行する順次結合処理の流れ図。
【図４】データベース管理装置がメモリ上に作成するフラグテーブルの説明図。
【図５】データベース管理装置がメモリ上に作成する作業用テーブルの説明図。
【図６】順次結合処理の説明図。
【図７】データベース管理装置が行う，他のテーブル結合処理の説明図。
【符号の説明】
【００３４】
１０  データベース管理装置
１１  データベース管理プログラム
３０  ユーザＰＣ
３１  クライアントプログラム
【図１】
0005048417.tif 000002
【図２】
0005048417.tif 000003
【図３】
0005048417.tif 000004
【図４】
0005048417.tif 000005
【図５】
0005048417.tif 000006
【図６】
0005048417.tif 000007
【図７】
0005048417.tif 000008