(57)【特許請求の範囲】
【請求項１】
複数のデータ情報ファイルからなるデータベースファイルと、該データ情報ファイルのそれぞれのデータ構造を定義する複数のスキーマ情報ファイルからなるスキーマファイルとを有し、前記データ情報ファイル及び前記スキーマ情報ファイルに対するデータ処理要求の競合を防止するための複数のロックモードを前記データ処理要求の種別に応じて設け、該ロックモードを前記データ情報ファイル毎及び前記スキーマ情報ファイル毎に前記データ処理要求の種別に対応して設定させることにより、前記データ情報ファイルに対する複数のデータ処理の並行動作のみならず、前記データ情報ファイルと前記スキーマ情報ファイルとに対する複数のデータ処理の並行動作及び前記スキーマ情報ファイルに対する複数のデータ処理の並行動作を可能とし、データ情報ファイルに対するアクセス要求が発生した場合、アクセス対象のデータ情報ファイルに加え、当該データ情報ファイルのデータ構造を定義しているスキーマ情報ファイルに対してもロックモードを設定することを特徴とするデータベース管理方法。
【請求項２】
請求項１に記載のデータベース管理方法において、前記データ情報ファイルと前記スキーマ情報ファイルとが、それぞれ表形式のファイル形式により構成されており、前記ロックモードの設定を、前記データ情報ファイル及び前記スキーマ情報ファイルを構成するそれぞれの表単位に、前記データ処理要求の種別に対応して設定させることにより、表を構成する前記データ情報ファイルに対する複数のデータ処理の並行動作のみならず、表を構成する前記データ情報ファイルと前記スキーマ情報ファイルとに対する複数のデータ処理の並行動作及び表を構成する前記スキーマ情報ファイルに対する複数のデータ処理の並行動作を可能とすることを特徴とするデータベース管理方法。
【請求項３】
請求項２に記載のデータベース管理方法において、表形式の前記データ情報ファイル及び前記スキーマ情報ファイルのそれぞれのファイルの構成要素となるデータレコードである行単位毎及びデータ属性である列単位毎に、前記ロックモードを前記データ処理要求の種別に対応して設定させることにより、前記データ情報ファイルに対する複数のデータ処理の並行動作のみならず、前記データ情報ファイルと前記スキーマ情報ファイルとに対する複数のデータ処理の並行動作及び前記スキーマ情報ファイルに対する複数のデータ処理の並行動作を可能とすることを特徴とするデータベース管理方法。
【請求項４】
請求項１乃至３のいずれかに記載のデータベース管理方法において、前記データ情報ファイルが、複数の前記データ情報ファイル間の関連付けを行なう索引データを有し、前記スキーマ情報ファイルが、該索引データの索引関係を定義する索引情報を有している場合において、前記データ情報ファイル内の前記索引データ毎及び前記スキーマ情報ファイル内の前記索引情報毎に、前記ロックモードを前記データ処理要求の種別に対応して設定させることにより、前記スキーマ情報ファイル内の前記索引情報に対する１乃至複数のデータ処理と、該索引情報が定義している前記データ情報ファイル内の対応する前記索引データに対する１乃至複数のデータ処理との並行動作を可能とすることを特徴とするデータベース管理方法。
【請求項５】
請求項１乃至４のいずれかに記載のデータベース管理方法において、あらかじめ定められた条件が成立した場合にあらかじめ定められたデータ処理を自動的に実行させるトリガ及びアサーション機能を有している場合に、該トリガ及びアサーション機能によるデータ処理要求に対応して、前記データ情報ファイル及び前記スキーマ情報ファイルに前記ロックモードを設定させることにより、前記トリガ及びアサーション機能に基づく前記データ情報ファイルあるいは前記スキーマ情報ファイルに対する１乃至複数のデータ処理と、前記トリガ及びアサーション機能以外の他のデータ処理要求に基づく前記データ情報ファイルあるいは前記スキーマ情報ファイルに対する１乃至複数のデータ処理との並行動作を可能とすることを特徴とするデータベース管理方法。
【請求項６】
請求項１乃至５のいずれかに記載のデータベース管理方法において、前記データ情報ファイルあるいは前記スキーマ情報ファイルに設定されているロックモードの設定状況に基づいて、前記データ情報ファイルあるいは前記スキーマ情報ファイルに対するデータ処理の実行時間が最短となるように、該データ処理の実行手順を最適化させることを特徴とするデータベース管理方法。
【請求項７】
複数のデータ情報ファイルからなるデータベースファイルと、該データ情報ファイルのそれぞれのデータ構造を定義する複数のスキーマ情報ファイルからなるスキーマファイルとを有するデータベース管理装置において、前記データ情報ファイル及び前記スキーマ情報ファイルに対するデータ処理要求の競合を防止するための複数のロックモードを、前記データ処理要求の種別に応じて設け、前記データ処理要求の種別に対応して設定する前記ロックモードを前記データ情報ファイル毎及び前記スキーマ情報ファイル毎に格納させているロックファイルと、前記データ情報ファイルあるいは前記スキーマ情報ファイルに対するデータ処理要求が発生する都度、前記スキーマ情報ファイルに格納されているスキーマ情報及び前記ロックファイルに格納されている前記ロックモードとを参照して、発生した前記データ処理要求の競合状態をチェックし、最適のデータ処理の実行手順を生成する問合せ最適化手段と、生成された該実行手順に従って、要求されたデータ処理を実行させるとともに、該データ処理の実行に先立って、発生した前記データ処理要求に対応する前記ロックモードを前記ロックファイルに格納させ、前記データ処理の実行が終了した時点で、前記ロックファイルに格納させた前記ロックモードを解除させる問合せ実行手段と、データ情報ファイルに対するアクセス要求が発生した場合、アクセス対象のデータ情報ファイルに加え、当該データ情報ファイルのデータ構造を定義しているスキーマ情報ファイルに対してもロックモードを設定する手段を有していることを特徴とするデータベース管理装置。
【請求項８】
複数のデータ情報ファイルからなるデータベースファイルと、該データ情報ファイルのそれぞれのデータ構造を定義する複数のスキーマ情報ファイルからなるスキーマファイルとを有し、前記データ情報ファイル及び前記スキーマ情報ファイルに対するデータ処理要求の競合を防止するための複数のロックモードを前記データ処理要求の種別に応じて設け、該ロックモードを前記データ情報ファイル毎及び前記スキーマ情報ファイル毎に前記データ処理要求の種別に対応して設定させることにより、前記データ情報ファイルに対する複数のデータ処理の並行動作のみならず、前記データ情報ファイルと前記スキーマ情報ファイルとに対する複数のデータ処理の並行動作及び前記スキーマ情報ファイルに対する複数のデータ処理の並行動作を可能とし、データ情報ファイルに対するアクセス要求が発生した場合、アクセス対象のデータ情報ファイルに加え、当該データ情報ファイルのデータ構造を定義しているスキーマ情報ファイルに対してもロックモードを設定するデータベース管理方法を、コンピュータに実施させるためのプログラムとして記録させているコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データベース管理システム（ＤＢＭＳ）、特に、リレーショナルデータベース管理システム（ＲＤＢＭＳ）において、予備のデータベースを設置することなく、データベースサービスの運用を継続させながら、データベースを構成するデータ情報ファイルのデータ構造の変更（すなわちスキーマ情報の変更）を含むデータベースの再構成を可能とするデータベース管理方法に関する。また、かかるデータベース管理方法を実現させるデータベース管理装置、および、かかるデータベース管理方法をコンピュータにて実行させるプログラムとして記録させたコンピュータに読取り可能なプログラム記録媒体に関する。
【０００２】
【従来の技術】
従来より、オンライン処理システムに適用されるデータベース管理システムにおいて、オンラインサービスを中断させずに、データベースを再構成させるためのいくつかの技術が開示されてきている。ここに、データベースの再構成とは、旧データベースの構造を変更して新しいデータベースの構造に変更させるものである。例えば、郵便番号の桁数が３桁から７桁に変更されたことに伴い、住所録データ情報ファイル内の郵便番号を記憶している３桁のデータ領域の大きさを変更して、新たな７桁のデータ領域に拡張させるとともに、拡張させたデータ領域に新たな７桁の郵便番号を格納させた住所録データ情報ファイルを作成させるものである。
【０００３】
かかるデータベースの再構成をオンラインサービスを中断させずに実現させるものとして、例えば、特開平５−２３３４０８号公報「オンライン処理システムにおける移行方法」において開示されているデータベース再構成技術がある。該公報においては、二重化構成のデータファイル記憶装置を用いて、片系でオンラインサービスを継続させたまま、もう一方の別系上で新たな構成のデータ情報ファイルへの移行処理を行い、移行処理完了時に、一旦、オンラインサービスを停止させて、新たな構成のデータ情報ファイルへ移行した別系にオンライン系を切り替え、新たな系でオンラインサービスを再開させることにより、オンラインサービスの中断時間を最小限に抑えようとするものである。
【０００４】
更に、かかる二重化構成のデータファイル記憶装置を用いて、オンライン系への切り替え時に、オンラインサービスを停止させずに、二重化同期運転を実行させて、瞬時に切り替えを実現させて、オンラインサービス無中断のデータベース再構成技術も提案されている。
【０００５】
しかしながら、このようなデータベースシステムは、二重化構成が前提となるため、定常状態においても、全く同様のデータ情報ファイルやプログラムファイルを収納する２つの記憶装置を必要とする。更には、二重化構成を制御するための特殊な各種制御機能も必要となり、高価なシステム構成となってしまう。すなわち、通常の単一のデータファイル記憶装置からなるデータベースシステムでは、実現させることができない。
【０００６】
一方、予備系を有しない単一系のデータベースシステムにおいても、オンラインサービスの中断なく、データベースの再構成を実現させる技術としては、特開平７−２４４６０３号公報「データベース再構成方法」にて開示されているものがある。
【０００７】
該公報において開示されている方法は、データファイル記憶装置上のデータ情報ファイルへのアクセス手段を物理的なデータファイル記憶装置上の場所や大きさを意識せずにアクセスする抽象データアクセス手段と、意識してアクセスする実データアクセス手段との２つに分離させ、実データアクセス手段がデータ構造の再構成を行った後においては、抽象データアクセス手段として、新旧間のデータ情報ファイルの変換手段を有せしめることにより、オンラインシステムの稼働状態のままで、新旧いずれのデータ情報ファイルに対してでも、データ情報ファイルの更新を行なうことを可能にせんとするものである。
【０００８】
また、特開平７−３２５７４４号公報「データベース形式変換方法及び装置」においても、予備系を有しない単一のデータファイル記憶装置におけるオンラインサービス無中断データベース再構成を可能としている。該公報において開示されている方法は、データ情報ファイルのデータ構造の変換処理の要求が発出された時点で、元のデータ情報ファイルの更新は一旦凍結させ、該データ情報ファイルに対して施すべき更新記録を別に設けられたログファイルに逐次記録させていき、一方、元のデータ情報ファイルのデータ構造を、所望のデータ構造に乗換させた後、新たなデータ形式に変換させながら旧データ情報ファイルから順次コピーしていくものである。すべてのデータ構造の変換が終了した時点で、ログファイルに記録されているデータについて、新たなデータ形式に変換して作成し直して、更に上書きコピーしていく。
【０００９】
また、特開平０８−０７７０５０号公報「データベース再構成装置及びデータベース再構成方法」においても、再構成対象の旧テーブルと旧テーブルの更新履歴情報を蓄積させるログファイルとを有し、旧テーブルの全ての情報を新テーブルに置換してコピーした後、ログファイルに蓄積されている更新履歴情報に基づいて、更新後の旧テーブルの情報について新テーブルに反映させていく無中断再構成方法を提案している。
【００１０】
【発明が解決しようとする課題】
しかしながら、従来の技術においては、予備系を有しない単一のデータベースシステムでは、データベースの実体データを有しているデータ情報ファイルに対するデータ処理要求を受け付けて、データ情報ファイルを更新させながら、同時に、データ情報ファイルの構造を変更させるがごときデータ再構成を行なわしめることはできず、該データ情報ファイルの構造の変更処理（すなわちデータ再構成処理）が終了するまで、受け付けたデータ処理要求にかかるデータ情報ファイルのデータ処理（データ更新処理）に関する情報を、例えば、別途用意させているログファイル等に保存させていく必要がある。
【００１１】
従って、同時にデータ処理要求が大量に発生し、更新された最新データを利用してオンライン処理を迅速に進める必要があるオンラインシステムにおいては、データベース処理の運用を一旦中断させる事に伴い、許容限界近傍まで遅延させた状態でオンライン動作をせざるを得ない状況が生じたり、オンライン動作を継続させたとしても、大量のログファイルが必要となるばかりか、最悪の場合には、オンライン動作に必要とするデータ情報ファイルに関する最新データを許容遅延時間内に取得できなくなり、オンライン動作自体も停止してしまう事態が生じかねない。
【００１２】
本発明は、かかる問題に鑑みてなされたものであり、データ情報ファイルに関する複数のデータ処理要求に対する競合防止用のロックモード以外に、該データ情報ファイルのデータ構造を定義するスキーマ情報ファイルに関する複数のデータ処理要求に対しても競合防止用のロックモードを設けることにより、データ情報ファイルに対する複数のデータ処理と、データ情報ファイルの構造を変更させる複数のデータ処理（すなわちデータ再構成処理）とを並行させて同時動作させることを可能にし、データ情報ファイルに対するアクセス要求が発生した場合、アクセス対象のデータ情報ファイルに加え、当該データ情報ファイルのデータ構造を定義しているスキーマ情報ファイルに対してもロックモードを設定する。
【００１３】
【課題を解決するための手段】
請求項１の発明は、複数のデータ情報ファイルからなるデータベースファイルと、該データ情報ファイルのそれぞれのデータ構造を定義する複数のスキーマ情報ファイルからなるスキーマファイルとを有し、前記データ情報ファイル及び前記スキーマ情報ファイルに対するデータ処理要求の競合を防止するための複数のロックモードを前記データ処理要求の種別に応じて設け、該ロックモードを前記データ情報ファイル毎及び前記スキーマ情報ファイル毎に前記データ処理要求の種別に対応して設定させることにより、前記データ情報ファイルに対する複数のデータ処理の並行動作のみならず、前記データ情報ファイルと前記スキーマ情報ファイルとに対する複数のデータ処理の並行動作及び前記スキーマ情報ファイルに対する複数のデータ処理の並行動作を可能とし、データ情報ファイルに対するアクセス要求が発生した場合、アクセス対象のデータ情報ファイルに加え、当該データ情報ファイルのデータ構造を定義しているスキーマ情報ファイルに対してもロックモードを設定することを特徴としたものである。
【００１４】
請求項２の発明は、請求項１に記載のデータベース管理方法において、前記データ情報ファイルと前記スキーマ情報ファイルとが、それぞれ表形式のファイル形式により構成されており、前記ロックモードの設定を、前記データ情報ファイル及び前記スキーマ情報ファイルを構成するそれぞれの表単位に、前記データ処理要求の種別に対応して設定させることにより、表を構成する前記データ情報ファイルに対する複数のデータ処理の並行動作のみならず、表を構成する前記データ情報ファイルと前記スキーマ情報ファイルとに対する複数のデータ処理の並行動作及び表を構成する前記スキーマ情報ファイルに対する複数のデータ処理の並行動作を可能とすることを特徴としたものである。
【００１５】
請求項３の発明は、請求項２に記載のデータベース管理方法において、表形式の前記データ情報ファイル及び前記スキーマ情報ファイルのそれぞれのファイルの構成要素となるデータレコードである行単位毎及びデータ属性である列単位毎に、前記ロックモードを前記データ処理要求の種別に対応して設定させることにより、前記データ情報ファイルに対する複数のデータ処理の並行動作のみならず、前記データ情報ファイルと前記スキーマ情報ファイルとに対する複数のデータ処理の並行動作及び前記スキーマ情報ファイルに対する複数のデータ処理の並行動作を可能とすることを特徴としたものである。
【００１６】
請求項４の発明は、請求項１乃至３のいずれかに記載のデータベース管理方法において、前記データ情報ファイルが、複数の前記データ情報ファイル間の関連付けを行なう索引データを有し、前記スキーマ情報ファイルが、該索引データの索引関係を定義する索引情報を有している場合において、前記データ情報ファイル内の前記索引データ毎及び前記スキーマ情報ファイル内の前記索引情報毎に、前記ロックモードを前記データ処理要求の種別に対応して設定させることにより、前記スキーマ情報ファイル内の前記索引情報に対する１乃至複数のデータ処理と、該索引情報が定義している前記データ情報ファイル内の対応する前記索引データに対する１乃至複数のデータ処理との並行動作を可能とすることを特徴としたものである。
【００１７】
請求項５の発明は、請求項１乃至４のいずれかに記載のデータベース管理方法において、あらかじめ定められた条件が成立した場合にあらかじめ定められたデータ処理を自動的に実行させるトリガ及びアサーション機能を有している場合に、該トリガ及びアサーション機能によるデータ処理要求に対応して、前記データ情報ファイル及び前記スキーマ情報ファイルに前記ロックモードを設定させることにより、前記トリガ及びアサーション機能に基づく前記データ情報ファイルあるいは前記スキーマ情報ファイルに対する１乃至複数のデータ処理と、前記トリガ及びアサーション機能以外の他のデータ処理要求に基づく前記データ情報ファイルあるいは前記スキーマ情報ファイルに対する１乃至複数のデータ処理との並行動作を可能とすることを特徴としたものである。
【００１８】
請求項６の発明は、請求項１乃至５のいずれかに記載のデータベース管理方法において、前記データ情報ファイルあるいは前記スキーマ情報ファイルに設定されているロックモードの設定状況に基づいて、前記データ情報ファイルあるいは前記スキーマ情報ファイルに対するデータ処理の実行時間が最短となるように、該データ処理の実行手順を最適化させることを特徴としたものである。
【００１９】
請求項７の発明は、複数のデータ情報ファイルからなるデータベースファイルと、該データ情報ファイルのそれぞれのデータ構造を定義する複数のスキーマ情報ファイルからなるスキーマファイルとを有するデータベース管理装置において、前記データ情報ファイル及び前記スキーマ情報ファイルに対するデータ処理要求の競合を防止するための複数のロックモードを、前記データ処理要求の種別に応じて設け、前記データ処理要求の種別に対応して設定する前記ロックモードを前記データ情報ファイル毎及び前記スキーマ情報ファイル毎に格納させているロックファイルと、前記データ情報ファイルあるいは前記スキーマ情報ファイルに対するデータ処理要求が発生する都度、前記スキーマ情報ファイルに格納されているスキーマ情報及び前記ロックファイルに格納されている前記ロックモードとを参照して、発生した前記データ処理要求の競合状態をチェックし、最適のデータ処理の実行手順を生成する問合せ最適化手段と、生成された該実行手順に従って、要求されたデータ処理を実行させるとともに、該データ処理の実行に先立って、発生した前記データ処理要求に対応する前記ロックモードを前記ロックファイルに格納させ、前記データ処理の実行が終了した時点で、前記ロックファイルに格納させた前記ロックモードを解除させる問合せ実行手段と、データ情報ファイルに対するアクセス要求が発生した場合、アクセス対象のデータ情報ファイルに加え、当該データ情報ファイルのデータ構造を定義しているスキーマ情報ファイルに対してもロックモードを設定する手段を有していることを特徴としたものである。
【００２０】
請求項８の発明は、複数のデータ情報ファイルからなるデータベースファイルと、該データ情報ファイルのそれぞれのデータ構造を定義する複数のスキーマ情報ファイルからなるスキーマファイルとを有し、前記データ情報ファイル及び前記スキーマ情報ファイルに対するデータ処理要求の競合を防止するための複数のロックモードを前記データ処理要求の種別に応じて設け、該ロックモードを前記データ情報ファイル毎及び前記スキーマ情報ファイル毎に前記データ処理要求の種別に対応して設定させることにより、前記データ情報ファイルに対する複数のデータ処理の並行動作のみならず、前記データ情報ファイルと前記スキーマ情報ファイルとに対する複数のデータ処理の並行動作及び前記スキーマ情報ファイルに対する複数のデータ処理の並行動作を可能とし、データ情報ファイルに対するアクセス要求が発生した場合、アクセス対象のデータ情報ファイルに加え、当該データ情報ファイルのデータ構造を定義しているスキーマ情報ファイルに対してもロックモードを設定するデータベース管理方法を、コンピュータに実施させるためのプログラムとして記録させていることを特徴としたものである。
【００２１】
【発明の実施の形態】
本発明の実施形態について、以下に、図を用いて説明する。
図２は、本発明の一実施例にかかるデータベースシステムのハードウェア構成を示すブロック構成図である。図２においては、通信ネットワーク４０を介して、端末１  ２０，…，端末Ｎ  ３０と、データベースＤＢ１３０を構築しているサーバ１０とが相互接続されている。ここで、データベースＤＢ１３０を利用するユーザが端末１  ２０，…，端末Ｎ  ３０から所望のデータ情報ファイルに対する問合せ要求（すなわちデータ処理要求）を、通信ネットワーク４０を介して送信すると、サーバ１０は、データベースＤＢ１３０を検索して、要求されたデータに対する処理を施して、そのデータ処理結果を問合せ要求を送信した端末に返送する。
【００２２】
ここに、端末１  ２０，…，端末Ｎ  ３０は、ＰＣ等の計算機により構成されている。すなわち、各端末は、それぞれ、ＣＰＵ２１，…，３１，メモリ２２，…，３２，ハードディスク２３，…，３３を備えており、各メモリ２２，…，３２には、それぞれ、サーバ１０上のデータベースＤＢ１３０に対する問合せ要求を発するための問合せ要求入力手段２２１，…，３２１と、問合せ結果を受け取り、表示するための問合せ結果表示手段２２２，…，３２２などを格納し、各ＣＰＵ２１，…，３１により、プログラムとして実行させることができる。また、各端末には、それぞれ、データベースＤＢ１３０への問合せ要求を入力するためのキーボード２４，…，３４及びポインティングデバイス（例えば、マウス）２５，…，３５が装備されており、また、データベースＤＢ１３０へのそれぞれの問合せ結果を表示するためのディスプレイ２６，…，３６が装備されている。
【００２３】
また、通信ネットワーク４０は、端末１  ２０，…，端末Ｎ  ３０とサーバ１０とを相互接続するための伝送路を構成するものであり、一般的には、有線ケーブルで実現されていて、ＴＣＰ／ＩＰ等の通信プロトコルにより、端末１  ２０，…，端末Ｎ  ３０とサーバ１０間との情報交換がなされている。
しかしながら、端末１  ２０，…，端末Ｎ  ３０とサーバ１０との通信プロトコルを一致させることができるならば、有線ケーブルに限らず、無線ＬＡＮ用の電波や放送波を用いた無線ネットワークにより通信ネットワーク４０を構築しても構わない。
【００２４】
また、サーバ１０は、通信ネットワーク４０を介して、端末１  ２０，…，端末Ｎ  ３０から入力されたデータベースＤＢ１３０への問合せ要求ＳＱＬ（Structured Query Language）すなわちデータ処理要求を受け取り、該問合せ要求に応じたデータ処理を施して、問合せ結果を該問合せ要求を発した端末１  ２０，…，端末Ｎ  ３０に、通信ネットワーク４０を介して、返送するための計算機である。
すなわち、サーバ１０は、マンマシンインタフェースを司るための入出力手段を提供するためのキーボード１４、ポインティングデバイス１５、あるいは、ディスプレイ１６等を備えるとともに、ＣＰＵ１１，メモリ１２，ハードディスク１３を備えていて、ハードディスク１３上に格納されているデータベースＤＢ１３０に対する各種の管理機能を司るデータベース管理システムＤＢＭＳ１２０をメモリ１２上のプログラムとして実行させることが可能な蓄積プログラム制御システムからなっている。
【００２５】
次に、サーバ１０のメモリ１２上に搭載されているデータベース管理システムＤＢＭＳ１２０と、ハードディスク１３に格納されているデータベースＤＢ１３０の詳細なブロック構成を図１を用いて説明する。
ここに、図１は、本発明にかかるデータベース管理システムＤＢＭＳ１２０を構成する各種の処理（手段）と、該処理（手段）の処理対象となるデータベースＤＢ１３０を構成する各種の情報ファイルとを示すブロック構成図である。
データベースＤＢ１３０はデータベースファイル１３１，ロックファイル１３２及びスキーマファイル１３３からなっている。データベースファイル１３１は、データベースの実体となるデータオブジェクトを、スキーマ（schema）として別途定義されるデータ構造を有するファイル形式（例えば、表形式）で蓄積している複数のデータ情報ファイルからなる情報ファイル群である。
【００２６】
ここに、スキーマ（schema）とは、各データ情報ファイルそのもの及び該データ情報ファイル中の各データの構造，形式，関連，制約等に関して記述したものであり、データ情報ファイルそのもののあるいは該データ情報ファイルの個々の構成要素である各データの構造（以下、データ情報ファイルのデータ構造と略記する）を定義するものである。かかるスキーマに関する情報は、所定のファイル形式（例えば、表形式）で、スキーマ情報ファイルとして、データ情報ファイルに対応させて作成される。作成された複数のスキーマ情報ファイルは、データベース１３０内にスキーマファイル１３３として蓄積されている。また、かかるスキーマ情報ファイル自体の、あるいは、スキーマ情報ファイルの個々の構成要素となるスキーマ情報の構造（以下、スキーマ情報ファイルのデータ構造と略記する）も、スキーマ情報ファイルとして保存している。
【００２７】
また、ロックファイル１３２は、データベースファイル１３１内のデータ情報ファイル及びスキーマファイル１３３内のスキーマ情報ファイルへのデータ処理要求の競合状態を制御する排他制御処理を可能とするためのロックモード情報を格納する情報ファイルであり、データベースファイル１３１内のデータ情報ファイル及びスキーマファイル１３３内のスキーマ情報ファイルそれぞれに対応して設けられた複数のロック情報ファイルから構成されている。
【００２８】
各ロック情報ファイルには、対応する前記データ情報ファイル及び前記スキーマ情報ファイルに関するロックモード情報、更には、前記データ情報ファイルの構成要素であるデータレコード及び前記スキーマ情報ファイルの構成要素であるスキーマ情報（すなわち、前記データ情報ファイルのデータレコードの属性となる列情報の構造を示す情報）に関するロックモード情報を格納している。
なお、競合状態を制御し、排他制御処理を可能とする競合防止用のロックモードとしては、データ処理要求の種別（例えば、検索，読み出し，更新，追加，削除など）に対応して、複数のロックモードを有している。
【００２９】
また、データベースＤＢ１３０を構成するデータベースファイル１３１内のデータ情報ファイルは、最近の商用データベース管理システム（ＤＢＭＳ）として広く採用されているリレーショナルデータベースモデル（関係データベースモデル，Relational Data Model）の場合、表形式で構成されており、データベースファイル１３１は、表（テーブル Table）の集まりとして表現される。この場合、各表（テーブル）は、複数の属性（アトリビュート attribute）を規定する縦の並び（フィールド）すなわち列（カラム Column）と、各該属性（アトリビュート）の組合せ（タプル tuple）を規定する横の並び（レコード）すなわち行（ローＲｏｗ）とを構成要素としている。ここに、各表（テーブル）と各列（カラム）とが、スキーマ（schema）情報として規定されることにより、各データ情報ファイル及び該スキーマを保存する各スキーマ情報ファイルのそれぞれのデータ構造が定義されることになる。
【００３０】
また、データベースファイル１３１，ロックファイル１３２及びスキーマファイル１３３は、通常、図２に示すように、ハードディスク１３上に記憶されているが、メモリ１２に記憶容量としての余裕がある場合においては、かかるデータベースファイル１３１，ロックファイル１３２及びスキーマファイル１３３の一部あるいは全部をメモリ１２上に保存させることとしても良い。
【００３１】
次にデータベース管理システムＤＢＭＳ１２０は、問合せ要求受信手段１２４，問合せ最適化手段１２５，問合せ実行手段１２６，問合せ結果送信手段１２７、及び、アクセスプラン１２８を有し、更には、データベースファイルアクセス手段１２１，ロックファイルアクセス手段１２２、及び、スキーマファイルアクセス手段１２３を有している。
問合せ要求受信手段１２４は、端末からのデータベースへの問合せ要求ＳＱＬ（Structured Query Language）を受信し、受付けの可否をチェックし、データ処理要求用のトランザクションを生成するものである。
【００３２】
問合せ最適化手段１２５は、生成したデータ処理要求用のトランザクションに基づいて、受信したデータベースへの問合せ要求ＳＱＬについて構文解析，意味解析を行ない、スキーマファイル１３３やロックファイル１３２にある各種関連情報を参照しながら、該問合せ要求に応じたデータベースファイル１３１等への最適なアクセス経路を決定し、最も実行時間が短いアクセスプラン１２８を生成するものである。
【００３３】
ここに、アクセスプラン１２８は、問合せ最適化手段１２５により最適化が図られたデータベースアクセス経路に関するデータ処理の実行順序すなわちデータ処理手順を示す内部処理コードを記録しているものであり、問合せ要求ＳＱＬの実行手順を示している。アクセスプラン１２８は、原則として、図２に示すメモリ１２上に保存される。
【００３４】
問合せ実行手段１２６は、問合せ最適化手段１２５により生成されたアクセスプラン１２８に基づいて、ロックファイル１３２にあるロックモード情報を参照しながら、データベースファイル１３１内の所望のデータ情報ファイル、あるいは、スキーマファイル１３３内の所望のスキーマ情報ファイルへのアクセスを行ない、アクセスプラン１２８に示された問合せ要求に基づいたデータ処理を施して、データ処理結果としての問合せ結果を出力するものである。問合せ結果送信手段１２７は、問合せ実行手段１２６が出力した問合せ結果を通信ネットワーク４０を介して、要求元の端末へ返送するものである。
【００３５】
また、データベースファイルアクセス手段１２１は、問合せ実行手段１２６からのデータ処理要求種別に応じて、データベースファイル１３１内の所望のデータ情報ファイルにアクセスし、該データ情報ファイルに関する検索，読み出し，更新，追加あるいは削除等の入出力処理を行なうものである。
【００３６】
ロックファイルアクセス手段１２２は、問合せ最適化手段１２５、あるいは、問合せ実行手段１２６からの要求に基づいて、ロックファイル１３２内の所望のロック情報ファイルにアクセスし、該ロック情報ファイルに関する検索，読み出し，更新，追加あるいは削除等の入出力処理を行なうものである。
【００３７】
また、スキーマファイルアクセス手段１２３は、問合せ最適化手段１２５、あるいは、問合せ実行手段１２６からの要求に基づいて、スキーマファイル１３３内の所望のスキーマ情報ファイルにアクセスし、該スキーマ情報ファイルに関する検索，読み出し，更新，追加あるいは削除等の入出力処理を行うものである。
【００３８】
次に、本発明にかかるデータベース管理システムＤＢＭＳの概略の動作を図５に示すフローチャートに基づいて説明する。
まず、通信ネットワーク４０を介して、端末からのデータ処理要求が問合せ要求受信手段１２４で受信されると、問合せ要求受信手段１２４は、該データ処理要求の受付処理を行なった後、該データ処理要求用のトランザクションを生成させて、問合せ最適化手段１２５に該データ処理要求用のトランザクションを送信する（Ｓ１）。
【００３９】
該データ処理要求用のトランザクションを受信した問合せ最適化手段１２５は、該トランザクション内に含まれている問合せ受信手段１２４からのデータ処理要求に応じたデータ処理手順を、該データ処理要求に関連するスキーマ情報及びロックモード情報に基づいて生成させ、順次、探索空間に追加していく（Ｓ２）。なお、スキーマ情報は、スキーマファイルアクセス手段１２３を介して、スキーマファイル１３３内の所望のスキーマ情報ファイルから読み出され、ロックモード情報は、ロックファイルアクセス手段１２２を介して、ロックファイル１３２内の所望のロック情報ファイルから読み出される。
【００４０】
また、問合せ最適化手段１２５は、生成された探索空間内のデータ処理手順の中から、最短の実行時間及び並行動作の可能性をチェックして、最適のデータ処理手順となるアクセスプラン１２８を作成し、問合せ実行手段１２６に送出する（Ｓ３）。
なお、作成されたアクセスプラン１２８には、データ処理要求の競合防止用の排他制御を行なうために、データ処理の実行の前後において、データオブジェクト（処理対象のデータ情報ファイルやデータ情報ファイル内のデータレコード）やスキーマオブジェクト（処理対象のスキーマ情報ファイルやスキーマ情報ファイル内のスキーマ情報）に関するロックモードを設定したり、解除したりするデータ処理手順も含まれている。
【００４１】
問合せ最適化手段１２５で作成されたアクセスプラン１２８に基づいて、問合せ実行手段１２６は、ロックファイルアクセス手段１２２を介して、処理対象のデータオブジェクトやスキーマオブジェクトの競合状態をチェックし（Ｓ４）、競合状態にある場合は（Ｓ４のＹＥＳ）、競合している他のデータ処理が完了するまで待合わせ処理を行なうか、あるいは、要求されたデータ処理を行なうことができない旨の理由を付して、問合せ結果送信手段１２７に対して拒絶通知を送信する。図５においては、あらかじめ定められた時限のタイミングを待合せた（Ｓ１０）後、再度競合状態をチェックするためにステップＳ４に戻る場合の処理を示している。
【００４２】
一方、前記データオブジェクトや前記スキーマオブジェクトのデータ処理の実行が許容されている状態にあれば（Ｓ４のＮＯ）、該データオブジェクトや該スキーマオブジェクトに対して、データ処理要求種別に対応した所望のロックモードを設定させるべく、ロックファイルアクセス手段１２２を介して、ロックファイル１３２内の指定されたロック情報ファイルに書き込み処理を行なう（Ｓ５）。
【００４３】
その後、問合せ実行手段１２６は、処理対象の前記データオブジェクトあるいは前記スキーマオブジェクトに対して、アクセスプラン１２８に記述されているデータ処理を施す（Ｓ６）。すなわち、アクセスプラン１２８に記述されているデータ処理が検索読み出しを指示している場合、前記データオブジェクトあるいは前記スキーマオブジェクトを、データベースファイルアクセス手段１２１あるいはスキーマファイルアクセス手段１２３を介して、データベースファイル１３１あるいはスキーマファイル１３３の中を検索して読み出す。また、アクセスプラン１２８に記述されているデータ処理要求が前記データオブジェクトあるいは前記スキーマオブジェクトに対するデータ更新処理を指示している場合は、該データ処理要求に応じたデータ更新処理を前記データオブジェクトあるいは前記スキーマオブジェクトに施した後、データベースファイル１３１あるいはスキーマファイル１３３の中にデータベースファイルアクセス手段１２１あるいはスキーマファイルアクセス手段１２３を介して書き込む。
【００４４】
アクセスプラン１２８に基づくデータ処理が完了した場合、前記データオブジェクトや前記スキーマオブジェクトに設定していたロックモードを解除させるために、ロックファイルアクセス手段１２２を介して、ロックファイル１３２内の指定されたロック情報ファイルへの書き込み処理を行なう（Ｓ７）。
更に、問合せ実行手段１２６は、アクセスプラン１２８に基づいたデータ処理手段を実行した結果を、問合せ結果として問合せ結果送信手段１２７に出力する（Ｓ８）。問合せ結果送信手段１２７は、通信ネットワーク４０を介して、要求元の端末に対して、該問合せ結果を送信する（Ｓ９）。
【００４５】
次に、本発明において、データ処理要求の競合防止用に設けたロックモードに関するロック機構について説明する。
従来のデータベース管理システムにおいては、前述したように、データ処理要求のトランザクションが実行されている（すなわちデータ処理が実行されている）途中においては、データ情報ファイルの構造を定義しているスキーマ情報ファイルが更新されていないこと（すなわち、データ再構成処理がなされていないこと）が前提とされている。本発明においては、データ情報ファイルのみではなく、スキーマ情報ファイルも含むいずれのデータ処理要求のトランザクションが実行されている（すなわち、データ処理が実行されている）途中であっても、スキーマ情報ファイルの変更処理が可能となるように、データ情報ファイルのみでなく、スキーマ情報ファイルに対しても、データ情報ファイルと全く同様のロック機構を導入し、スキーマ情報ファイルの変更処理も一種のデータ処理要求用のトランザクションとして扱うこととしている。かかるロック機構を導入することによって、通常のデータ情報ファイルへのデータ処理要求と、スキーマ情報ファイルに対するデータ処理要求（スキーマ変更処理要求、すなわち、データ再構成要求）とを同時に受け付けて、同時実行させることができる並行動作性を確保している。
【００４６】
本発明にかかるデータ処理要求競合防止用のロック機構を実現するためのロックモードとしては、データ情報ファイル用、スキーマ情報ファイル用のそれぞれに対して、Ｘ，ＳＩＸ，Ｓ，ＩＸ及びＩＳの５つのロックモードを用意する。かかる５つのロックモード間の両立性（Compatibility）を図３に示す。ここに、両立性とは、同一のオブジェクト（すなわち、データ処理要求の対象となるデータ情報ファイルあるいはスキーマ情報ファイル及びデータ情報ファイル内の構成要素であるデータレコードあるいはスキーマ情報ファイル内の構成要素であるスキーマ情報）に対して、複数個のデータ処理要求のトランザクションが存在し、同時に実行されんとする場合に、それぞれのトランザクションが指定するロックモードを同時に設定することができるか否か（両立可能か否か）という性質を示すものである。図３において、「Ｙ」は両立可能であることを示し、「Ｎ」は両立不可能であることを示している。
【００４７】
図３において、Ｘとは、排他モード（Exclusive Mode）であり、該排他モードＸが設定されているオブジェクトに対する他からの一切のデータ処理要求（検索，読み取り，更新，追加，削除等）を拒絶するロックモードである。
一般的には、データ処理対象のオブジェクトの変更，追加，削除処理を要求するＵＰＤＡＴＥ文，ＩＮＳＥＲＴ文，ＤＥＬＥＴＥ文などで指定されているデータ処理を実行する際に設定されるロックモードである。
【００４８】
また、Ｓとは、共有モード（Shared Mode）であり、該共有モードＳが設定されているオブジェクトに対しては、読み取り動作を行なう他からのデータ処理要求については、受け付けて並行して実行させることができるが、変更，追加，削除等のデータ処理要求については、一切拒絶するロックモードである。
一般的には、データ処理要求のオブジェクトの検索，読み出し処理を要求するＳＥＬＥＣＴ文などで指定されているデータ処理を実行する際に設定されるロックモードである。ただし、ＳＥＬＥＣＴ文の場合であっても、例外的に排他モードＸに強制設定させることももちろん可能である。
【００４９】
また、ＩＸは、インテント排他モード（Intent Exclusive Mode）であり、該インテント排他モードＩＸが設定されているオブジェクト内の構成要素に対して排他モードＸが設定されていることを示すロックモードである。インテント排他モードＩＸは、データ情報ファイルやスキーマ情報ファイルを構成する表（テーブル）に対して設定されるものであり、表（テーブル）自体に排他モードＸが設定されている場合には、該表（テーブル）に対してインテント排他モードＩＸを設定させる必要はない。
【００５０】
ＩＳは、インテント共有モード（Intent Shared Mode）であり、該インテント共有モードＩＳが設定されているオブジェクト内の構成要素に対して共有モードＳが設定されていることを示すロックモードである。インテント共有モードＩＳは、データ情報ファイルやスキーマ情報ファイルを構成する表（テーブル）に対して設定されるものであり、表（テーブル）自体に共有モードＳが設定されている場合には、該表（テーブル）に対してインテント共有モードＩＳを設定させる必要はない。
【００５１】
ＳＩＸは、インテント排他付共有モード（Shared with Intent Exclusive Mode）であり、該インテント排他付共有モードＳＩＸが設定されている表（テーブル）オブジェクトは、一旦、共有モードＳに設定されて、データ処理を実行中であったが、該表（テーブル）オブジェクト内のある構成要素に対して排他モードＸを設定させるデータ処理が発生したため、該表（テーブル）オブジェクトにインテント排他モードＩＸをも設定させたいことを示すロックモードである。例えば、大きな表（テーブル）に対して、反復読み取り動作させるＳＥＬＥＣＴ文を実行させて、大きな該表（テーブル）に対して共有モードＳを設定している状態にある際に、ＵＰＤＡＴＥ文により、該表（テーブル）の中の構成要素である１つの行（ロー）のみを更新したい要求が発生し、該１つの行（ロー）に対して排他モードＸを設定した場合には、該表（テーブル）に対して共有モードＳからインテント排他付共有モードＳＩＸに自動的に遷移させて設定し直すことになる。
【００５２】
すなわち、インテント排他モードＩＸ，インテント共有モードＩＳ及びインテント排他付共有モードＳＩＸは、データ情報ファイルやスキーマ情報ファイルに対する複数のデータ処理要求の同時実行性を向上させるために設けられているロックモードである。例えば、特定の表（テーブル）内の構成要素である行（ロー）あるいは列（カラム）のみを更新するデータ処理要求を実行させる場合に、同じ該表（テーブル）内の他の行（ロー）あるいは列（カラム）に対する参照要求の同時実行を許容する際には、該表（テーブル）に対して、インテント排他モードＩＸが設定され、更新対象となる行（ロー）あるいは列（カラム）に対してのみ排他モードＸが設定されることになる。
【００５３】
また、かかるロックモードは、前述のごとく、データ情報ファイルのみでなく、スキーマ情報ファイルに対しても設定することになる。すなわち、例えば、データ処理対象のオブジェクトがデータ情報ファイルにある場合であっても、データ情報ファイルのみでなく、該データ情報ファイルと関連するスキーマ情報ファイルに対しても、同時にロックモードの設定がなされることにより、データ情報ファイルへのデータ処理とスキーマ情報ファイルへのデータ処理との並行動作を実現させることができる。
【００５４】
次に、データ情報ファイルあるいはスキーマ情報ファイルに対するデータ処理要求のロック機構の動作について、簡単なデータ情報ファイルとスキーマ情報ファイルとを例にとって、更に詳細に説明する。
ここに、図４は、データ処理要求の対象となるデータ情報ファイルすなわちデータオブジェクト及び該データオブジェクトのデータ構造を定義するスキーマ情報ファイルすなわちスキーマオブジェクトの構成の一例を示す図である。
【００５５】
すなわち、スキーマファイル１３３内のスキーマ情報ファイルとして、列（カラム）Ｃ１，Ｃ２についてデータ構造を定義している表Ｒが存在している。ここで、表Ｒ，列（カラム）Ｃ１，Ｃ２に対応して、それぞれ、スキーマオブジェクトＳ（Ｒ），Ｓ（Ｃ１），Ｓ（Ｃ２）と表わすこととする。
一方、データべースファイル１３１内のデータ情報ファイルとして、前記スキーマオブジェクトによりデータ構造が定義されているデータ情報ファイルとして表Ｒが存在し、該データ情報ファイルである表Ｒは、各行（ロー）毎に列（カラム）Ｃ１，Ｃ２に対応したデータ属性（アトリビュート）を有するタプル（tuple）情報として、ｔ1，ｔ2，ｔ3の３行（ロー）からなる表（テーブル）を構成している。ここで、該表Ｒ，行（ロー）ｔ1，ｔ2，ｔ3に対応して、それぞれ、データオブジェクトＤ（Ｒ），Ｄ（ｔ1），Ｄ（ｔ2），Ｄ（ｔ3）と表わすこととする。
【００５６】
まず、データ情報ファイルに関するロックモードの設定動作のみに着目して、ロック機構の動作例を説明する。
例えば、データ情報ファイルすなわち表Ｒのデータを、順次、検索していくデータ処理要求トランザクションがある場合、表Ｒ全体にロックモードが設定される。かかる場合において、表Ｒ全体にかかるデータ処理要求の条件に該当するいずれかの行（ロー）を検索して、該行（ロー）のデータの更新を伴う場合は、表Ｒ全体すなわちデータオブジェクトＤ（Ｒ）に排他モードＸが設定される。したがって、該検索処理が終了するまで、表Ｒへのアクセスを要求する他の一切のデータ処理要求トランザクションは、図３に示すごとく、表ＲすなわちデータオブジェクトＤ（Ｒ）に対しては、競合状態となるため、図４のステップＳ４のＹＥＳの判定を経て、ステップＳ１０を経由して、再びステップＳ４に戻る待ち合せ状態となる。
【００５７】
一方、データファイルすなわち表Ｒ全体に関するデータの読み出し動作のみの場合には、表Ｒ全体すなわちデータオブジェクトＤ（Ｒ）に対して共有モードＳが設定されている状態になる。かかる状態においては、表Ｒへのアクセスを並行して要求する他のデータ処理要求トランザクションが、表Ｒ内の特定の行（ロー）のデータの読み出しのみを行なうデータ処理要求の場合は、該他のデータ処理要求トランザクションの実行時においては、表Ｒ全体に対してはＩＳモードが設定され、読み出し対象行（ロー）に対しては、Ｓモードが設定されることになるので、図３に示すごとく、表ＲすなわちデータオブジェクトＤ（Ｒ）に対する競合状態は発生していない。したがって、図４のステップＳ４のＮＯの判定を経て、両者のデータ処理要求トランザクションとも、同時実行動作が可能となるので、かかる場合においては、データベース処理の高速化を図ることができる。
【００５８】
また、データ情報ファイルすなわち表Ｒの特定の行（ロー）ｔ1のみに対してデータ更新を行なうデータ処理要求トランザクションを実行させる場合、表Ｒ全体すなわちデータオブジェクトＤ（Ｒ）に対しては、インテント排他モードＩＸが設定され、データ更新を行なう対象の行（ロー）ｔ1すなわちデータオブジェクトＤ（ｔ1）に対しては、排他モードＸが設定される。したがって、前記データ更新が終了するまで、図３に示すごとく、行（ロー）ｔ1すなわちデータオブジェクトＤ（ｔ1）に対しては、他の一切のデータ処理要求トランザクションが競合状態となり、実行を待合せることとなるが、表Ｒ内の他の行（ロー）すなわちデータオブジェクトＤ（ｔ2）乃至Ｄ（ｔ3）に対してアクセスを要求するデータ処理要求トランザクションに対しては、読み出し，書き込みともに同時実行動作が許容される状態であり、データベース処理の高速化に貢献している。
【００５９】
更に、データ情報ファイルすなわち表Ｒの特定の行ｔ1のみに対するデータ読み出しを行なうデータ処理要求トランザクションを実行させる場合、表Ｒ全体すなわちデータオブジェクトＤ（Ｒ）に対しては、インテント共有モードＩＳが設定され、データ読み出し対象の行（ロー）ｔ1すなわちデータオブジェクトＤ（ｔ1）に対しては、共有モードＳが設定される。したがって、行（ロー）ｔ1の前記データ読み出しが終了するまでは、図３に示すごとく、行（ロー）ｔ1すなわちデータオブジェクトＤ（ｔ1）に対してデータ変更を要求するがごとき他のデータ処理要求トランザクションは、競合状態となり、待合せることになるが、行（ロー）ｔ1すなわちデータオブジェクトＤ（ｔ1）に対する読み出し動作については、表Ｒの他の行（ロー）すなわちデータオブジェクトＤ（ｔ2）乃至Ｄ（ｔ3）に対するいかなるアクセス動作とともに、他のデータ処理要求トランザクションは同時実行動作が可能となり、更に、データベース処理の高速化が期待できる。
【００６０】
なお、上述した説明においては、データ情報ファイルに関するロックモードの設定動作のみに着目して説明しているが、かかるデータ情報ファイルに対するアクセス動作を実行させる場合、データ処理の対象となるデータ情報ファイルのデータ構造を定義しているスキーマ情報ファイルに対しても、前述したごとく、同時に、共有モードＳおよび／またはインテント共有モードＳが設定される。
すなわち、対象とするデータ情報ファイルである表Ｒ全体に対するデータ処理要求トランザクションを実行させる場合には、該データ情報ファイルである表Ｒのデータ構造を定義しているスキーマ情報ファイルすなわち表Ｒ全体に対応するスキーマオブジェクトＳ（Ｒ）に対して、共有モードＳが設定される。一方、前記データ情報ファイルすなわち表Ｒ内の特定の行（ロー）に対するデータ処理要求トランザクションを実行させる場合には、スキーマオブジェクトＳ（Ｒ）内にあり、前記データ情報ファイルの行（ロー）ｔ1，ｔ2，ｔ3すなわちデータオブジェクトＤ（ｔ1），Ｄ（ｔ2），Ｄ（ｔ3）のデータ構造すなわち列（カラム）Ｃ１及びＣ２の構造を定義しているスキーマオブジェクトＳ（Ｃ１）及びＳ（Ｃ２）に対して、共有モードＳが設定され、表Ｒを示すスキーマオブジェクトＳ（Ｒ）に対しては、インテント共有モードＩＳが設定される。
【００６１】
かかるごとく、データ処理対象のデータ情報ファイルに対応するスキーマ情報ファイルに対しても、同時にロックモードを設定することにより、データ情報ファイルに対するデータ処理要求トランザクションが実行中の状態にあっても、対応するスキーマ情報ファイルの更新処理を競合させることなく並行して動作させることが可能となり、逆に、スキーマ情報ファイルの更新中にデータベースファイルへのアクセス処理を停止させるがごとき運用の不便さは回避させることができる。
【００６２】
次に、スキーマ情報ファイルに関するロックモードの設定動作について、すなわち、スキーマ情報ファイルに対するデータ処理要求トランザクションが発生している場合について説明する。
まず、前述の図４に示す表Ｒのデータ構造を規定しているスキーマ情報ファイルに関し、列（カラム）Ｃ１の定義内容を変更せんとするデータ処理要求トランザクションＴ１が存在している場合、問合せ実行手段１２６において、定義内容の変更処理が終了するまで、変更処理の対象となるスキーマオブジェクトＳ（Ｃ１）に対して排他モードＸが設定され、また、該スキーマオブジェクトＳ（Ｃ１）を有する表Ｒ対応のスキーマオブジェクトＳ（Ｒ）に対しては、インテント排他モードＩＸが設定される。
【００６３】
かかるデータ処理要求トランザクションＴ１が先行して存在している状態において、列（カラム）Ｃ１及びＣ２に定義されている内容を表示させるデータ処理要求トランザクションＴ２が後発して発生した場合、該トランザクションＴ２を実行させようとする問合せ実行手段１２６は、データ処理の対象となるスキーマオブジェクトＳ（Ｃ１）及びＳ（Ｃ２）に対して、共有モードＳを設定させんとし、また、該スキーマオブジェクトＳ（Ｃ１）及びＳ（Ｃ２）を有する表Ｒ対応のスキーマオブジェクトＳ（Ｒ）に対しては、インテント共有モードＩＳを設定させんとする。
【００６４】
しかしながら、図３に示すごとく、スキーマオブジェクトＳ（Ｃ１）に対して設定されている排他モードＸは、いかなるロックモードとも両立を認めていないので、両者のトランザクションＴ１及びＴ２は、スキーマオブジェクトＳ（Ｃ１）において、競合状態となる。
【００６５】
したがって、後発のトランザクションＴ２は、図５に示すフローチャートのステップＳ４において、競合状態が生じていると判定されて、先発のトランザクションＴ１による列（カラム）Ｃ１の定義変更処理が終了するまで、図５に示すフローチャートのステップＳ１０を経由してステップＳ４に戻るループを繰り返すことにより、待機状態とされる。
【００６６】
また、前記のトランザクションＴ１が先行して存在している状態において、表Ｒの列（カラム）Ｃ２に定義されている内容のみを表示させるデータ処理要求用トランザクションＴ３が後発して発生した場合においては、該トランザクションＴ３を実行させようとする問合せ実行手段１２６は、処理の対象となるスキーマオブジェクトＳ（Ｃ２）に対して、共有モードＳを設定させんとし、また、該スキーマオブジェクトＳ（Ｃ２）を有する表Ｒ対応のスキーマオブジェクトＳ（Ｒ）に対しては、インテント共有モードＩＳを設定させんとする。
【００６７】
かかる状態においては、図３に示すごとく、双方のトランザクションＴ１とＴ３との間には競合状態は発生していないので、後発のトランザクションＴ３も、図５に示すフローチャートのステップＳ４において、競合状態ではないと判定され、先発のトランザクションＴ１と同時実行の動作が可能となる。
したがって、両者の同時実行により、データベース処理の高速化を図ることができる。
【００６８】
なお、前記のトランザクションＴ１のように、データ情報ファイルすなわち表Ｒのデータ構造を定義するスキーマオブジェクトを変更させるデータ処理要求用トランザクションを実行する場合、該スキーマオブジェクトで定義されているデータ情報ファイルすなわち表Ｒを示すデータオブジェクトＤ（Ｒ）側に対して、いかなるロックモードも設定する必要はない。しかしながら、前記のトランザクションＴ２あるいはＴ３のように、表Ｒのデータ構造を定義するスキーマオブジェクトを変更せずに、表示させるようなトランザクションを実行する場合においては、スキーマオブジェクトへのロックモードの設定が完了した後、該スキーマオブジェクトによって、データ構造が定義されているデータ情報ファイルすなわち表Ｒを示すデータオブジェクトＤ（Ｒ）、及び、該表Ｒの構成要素である各行（ロー）を示すデータオブジェクトＤ（ｔ1），Ｄ（ｔ2），Ｄ（ｔ3）に対して、データ処理の競合を防止するために、ロックモードを設定しなければならない。
すなわち、前記のトランザクションＴ２あるいはＴ３が実行されて、各スキーマオブジェクトＳ（Ｒ），Ｓ（Ｃ１），Ｓ（Ｃ２）あるいはＳ（Ｒ），Ｓ（Ｃ２）へのロックモードの設定が完了した後、該スキーマオブジェクトで定義されている表Ｒの各行（ロー）を示すデータオブジェクトＤ（ｔ1），Ｄ（ｔ2），Ｄ（ｔ3）に対して、共有モードＳが設定され、表Ｒを示すデータオブジェクトＤ（Ｒ）に対しては、インテント共有モードＩＳが設定される。
【００６９】
したがって、例えば、前記のトランザクションＴ２が先発して処理されている状態において、スキーマオブジェクトＳ（Ｃ２）でデータ構造を示すデータオブジェクトＤ（ｔ1），Ｄ（ｔ2），Ｄ（ｔ3）のデータ内容を更新するデータ処理要求トランザクションＴ４が後発して発生した場合においては、該トランザクションＴ４を実行せようとする問合せ実行手段１２６は、スキーマオブジェクトＳ（Ｃ２）で定義されているデータ情報ファイルすなわち表Ｒの各行（ロー）を示すデータオブジェクトＤ（ｔ1），Ｄ（ｔ2），Ｄ（ｔ3）に対して、排他モードＸを設定させんとし、表Ｒを示すデータオブジェクトＤ（Ｒ）に対しては、インテント排他モードＩＸを設定させんとする。更には、前記トランザクションＴ４の処理対象であるデータ情報ファイルの各行（ロー）内の列Ｃ２に対応するスキーマオブジェクトＳ（Ｃ２）に対しても、共有モードＳを設定させ、該スキーマオブジェクトＳ（Ｃ２）を有する表Ｒ対応のスキーマオブジェクトＳ（Ｒ）に対して、インテント共有モードＩＳを設定させんとする。
【００７０】
かかる状態において、スキーマオブジェクトに対する両トランザクションＴ２とＴ４との競合関係についてみれば、トランザクションＴ２に関しては、スキーマオブジェクトＳ（Ｃ１）及びＳ（Ｃ２）には共有モードＳが、また、スキーマオブジェクトＳ（Ｒ）に対しては、インテント共有モードＩＳが設定されており、一方、トランザクションＴ４に関しては、スキーマオブジェクトＳ（Ｃ２）には共有モードＳが、また、スキーマオブジェクトＳ（Ｒ）に対しては、インテント共有モードＩＳが設定されんとしている。図３に示すごとく、両方のトランザクションＴ２とＴ４との間には、競合関係は、発生せず、同時実行動作が可能である。
【００７１】
しかしながら、データオブジェクトに対する両方のトランザクションＴ２とＴ４との競合関係をみると、トランザクションＴ２の実行時においては、データオブジェクトＤ（ｔ1），Ｄ（ｔ2），Ｄ（ｔ3）に共有モードＳが、また、データオブジェクトＤ（Ｒ）にインテント共有モードＩＳが設定されている。一方、トランザクションＴ４に関しては、データオブジェクトＤ（ｔ1），Ｄ（ｔ2），Ｄ（ｔ3）に対して、排他モードＸが、また、データオブジェクトＤ（Ｒ）に対しては、インテント排他モードＩＸが設定されんとするため、図３に示すごとく、両方のトランザクションＴ２とＴ４とは、競合関係となる。したがって、後発のトランザクションＴ４は待機状態とされることになる。
【００７２】
次に、図４に示す表Ｒの構造を規定しているスキーマ情報として、列（カラム）Ｃ１に索引Ｉが定義されていて、索引Ｉにより、表Ｒが他の表と関係付けられている場合について説明する。該索引Ｉの再構成（作り直し）を行うスキーマ情報変更のデータ処理要求トランザクションＴ５が発生した場合においては、索引Ｉを示すスキーマオブシェクトＳ（Ｉ）に対しては、排他モードＸが設定され、表Ｒに対応するスキーマオブジェクトＳ（Ｒ）には、インテント排他モードＩＸが設定されることになる。
【００７３】
ここで、表Ｒで示すデータ情報ファイルの列（カラム）Ｃ１に格納されているデータをＳＥＬＥＣＴ文などで検索するようなデータ処理要求トランザクションが同時に発生した場合においては、列（カラム）Ｃ１に格納されているデータの変更は伴わないので、スキーマオブジェクトＳ（Ｉ）に対して、ロックモードを設定する必要はない。
【００７４】
しかしながら、表Ｒで示すデータ情報ファイルの列（カラム）Ｃ１に格納されているデータをＵＰＤＡＴＥ文などで変更するようなデータ処理要求トランザクションが発生した場合においては、スキーマオブジェクトＳ（Ｉ）に対しても共有モードＳを設定させなければならない。すなわち、スキーマ情報として索引Ｉが再構成されんとしている場合に、データ情報ファイルの列（カラム）Ｃ１に格納されているデータを変更せんとするデータ処理要求トランザクションが発生した場合には、スキーマオブジェクトＳ（Ｉ）に対する競合の発生を検出させて、索引データである列（カラム）Ｃ１のデータ変更の待合せ処理を行なわせることにより、両者のトランザクションの並行同時を可能とするものであり、索引Ｉの再構成後に、再度データ情報ファイルの列（カラム）Ｃ１のデータ変更を実行させなければならないような事態の発生を防止することができる。
【００７５】
以上に述べたごとく、本発明にかかるデータベース管理方法及びデータベース管理装置においては、データオブジェクトのみでなく、スキーマオブジェクトに対しても、競合防止用のロックモードを設定させることにより、データベースに関するデータ処理の並行動作性を維持し、直列化可能性を保証している。
すなわち、例えば、スキーマ情報を変更するデータ処理要求トランザクションが発生した場合、変更対象となるスキーマオブジェクトに対してロックモードを設定する。この場合、変更対象がデータの属性を規定する列（カラム）である場合は、該列（カラム）に対して、排他モードＸを、また、該列（カラム）が構成要素となっている表（テーブル）に対しては、インテント排他モードＩＸを設定する。また、変更対象が表全体に関わる場合は、変更対象となる表全体に対して、排他モードＸを設定するが、該表の構成要素である各列（カラム）に対しては、排他モードＸを設定する必要はない。
なお、索引が定義されている場合、索引を示すスキーマオブジェクトに対しても、変更を必要とする場合には、排他モードＸを設定する。
また、スキーマ情報を変更するデータ処理要求トランザクションである場合、該スキーマ情報によってデータ構造が定義されているデータオブジェクトに対しては、ロックモードを設定する必要はない。
【００７６】
一方、スキーマ情報を変更せずに、参照のみのデータ処理要求トランザクションが発生した場合、参照対象となるスキーマオブジェクトに対して、ロックモードを設定する。この場合、参照対象がデータの属性を規定する列（カラム）あるいは索引である場合は、該列（カラム）あるいは索引に対して共有モードＳを、また、該列（カラム）あるいは索引が構成要素となっている表（テーブル）に対しては、インテント共有モードＩＳを設定する。更に、該スキーマ情報によって、データ構造が定義されているデータオブジェクトに対してもロックモードを設定する必要がある。すなわち、スキーマオブジェクトに対するロックモードの設定が完了した時点で、対応するデータオブジェクトに対してもロックモードを設定する。ここで、該データオブジェクトである表（テーブル）に対しては、インテント共有モードＩＳまたは共有モードＳを、また、該データオブジェクトの表の構成要素となる各行（ロー）に対しては、共有モードＳを設定する。
【００７７】
すなわち、本発明にかかるデータベース管理方法及びデータベース管理装置においては、データ情報ファイルの構造を定義するスキーマ情報をスキーマ情報ファイルとして生成させるデータ定義言語（ＤＤＬ：Data Definition Language）によるデータ処理、すなわち、スキーマオブジェクトに対する検索、読み出し、変更、追加、削除等のデータ処理と、該スキーマ情報ファイル内のスキーマ情報によりデータ構造が定義されているデータ実体を備えているデータ情報ファイルに対するデータ操作を行うデータ操作言語（ＤＭＬ：Data Managemnt Language）によるデータ処理、すなわち、データオブジェクトに対する検索、読み出し、変更、追加、削除等のデータ処理との双方において、スキーマオブジェクトとデータオブジェクトとの双方に対するロックモードを設定しながら、データ処理を行なわしめることにより、かかるデータ処理の並行動作性を確保するとともに、直列化可能性も保証している。
【００７８】
ここで、直列化可能性とは、複数個のデータ処理要求トランザクションに関し、並行させてデータ処理を実行させて得られたデータベースの状態が、複数個の該データ処理要求トランザクションを、ある順序に従って逐次実行させて得られるデータベースの状態と一致するトランザクションの状態と一致するデータ処理の性質を示している。
かかる直列化可能性が保証されると、ある一貫性を有するデータベースに対して、複数個のデータ処理要求トランザクションを並行させて実行させても、新たな一貫性を有するデータベースの状態に遷移させることを保証することができる。
【００７９】
また、本発明にかかる問合せ最適化手段１２５においては、スキーマオブジェクトに対して設定されているロックモードの状態に基づいて、問合せ実行手段１２６で実行される最適の処理手順を示すアクセスプラン１２８の内容を変更させることもできる。例えば、問合せ最適化手段１２５が、新たなデータ処理要求に応じたアクセスプラン１２８を生成せんとしている時点において、データベースの索引関係の再構成を行なうスキーマ情報変更のデータ処理要求トランザクションが実行されている状況になっている場合、かかる索引情報変更に関するスキーマ情報に対するロックモードも有しているので、データ処理の並行動作性を考慮して、前記索引関係の再構成に関係するデータを用いないアクセスプラン１２８を生成させることも可能である。
【００８０】
更には、問合せ機能を更に拡張させた機能であるトリガやアサーション機能に基づくデータ処理要求（データオブジェクトあるいはスキーマオブジェクトに対する検索，読み出し，変更，追加，削除等のデータ処理要求）に対応して、データオブジェクトのみでなく、関連するスキーマオブジェクトに対するロックモードを設定させることにより、トリガやアサーション機能に関連するスキーマオブジェクトや該スキーマオブジェクトにより定義付けられているデータオブジェクトに対するデータ処理要求（検索，読み出し，変更，追加，削除等のデータ処理要求）トランザクションとの並行動作性も実現させることができる。ここに、トリガやアサーション機能とは、あらかじめ定められた特定の条件が成立した場合に、あらかじめ定められているデータ処理手順を自動的に起動させるようにした機能であり、例えば、給与データの一部を変更した場合、自動的に全員の給与の平均データを算出して設定し直させる動作を起動させるような機能である。
【００８１】
【発明の効果】
データベースを構成する各データ情報ファイルのデータ構造を定義しているスキーマ情報に対するロックモードを設けることにより、データ処理の要求に関するトランザクションの実行途中（すなわちデータ処理の実行途中）であっても、該データ処理にかかるデータ情報ファイルに関するスキーマ情報の変更を並行して行なわせることが可能であり、同時実行可能なデータ処理要求数を増加させることができるので、データベース管理システム全体の高速性，高処理効率を達成させることができる。
【００８２】
また、スキーマ情報の変更時において、データベース管理システムの運用停止を回避させることができるので、データベース管理システムの運用手順を簡素化を図ることができ、運用コストを低減することができる。
【図面の簡単な説明】
【図１】  本発明にかかるデータベース管理システムＤＢＭＳを構成する各種の処理と、該処理の処理対象となるデータベースＤＢを構成する各種の情報ファイルとを示すブロック構成図である。
【図２】  本発明の一実施例にかかるデータベースシステムのハードウェア構成を示すブロック構成図である。
【図３】  本発明にかかるロック機構を実現するロックモードの両立性を示すマトリクス図である。
【図４】  データ処理要求の対象となるデータオブジェクト及びスキーマオブジェクトの構成の一例を示す図である。
【図５】  本発明にかかるデータベース管理システムＤＢＭＳの概略の動作を説明するためのフローチャートである。
【符号の説明】
１０…サーバ、１１，２１，３１…ＣＰＵ、１２，２２，３２…メモリ、１３，２３，３３…ハードディスク、１４，２４，３４…キーボード、１５，２５，３５…ポインティングデバイス、１６，２６，３６…ディスプレイ、２０，３０…端末１，端末Ｎ、４０…通信ネットワーク、１２０…データベース管理システムＤＢＭＳ、１２１…データベースファイルアクセス手段、１２２…ロックファイルアクセス手段、１２３…スキーマファイルアクセス手段、１２４…問合せ要求受信手段、１２５…問合せ最適化手段、１２６…問合せ実行手段、１２７…問合せ結果送信手段、１２８…アクセスプラン、１３０…データベースＤＢ、１３１…データベースファイル、１３２…ロックファイル、１３３…スキーマファイル、２２１，３２１…問合せ要求入力手段、２２２，３２２…問合せ結果表示手段。
【図１】
0004137366.tif 000002
【図２】
0004137366.tif 000003
【図３】
0004137366.tif 000004
【図４】
0004137366.tif 000005
【図５】
0004137366.tif 000006