JP4137366B2 - データベース管理方法及びデータベース管理装置 - Google Patents
データベース管理方法及びデータベース管理装置 Download PDFInfo
- Publication number
- JP4137366B2 JP4137366B2 JP2000348963A JP2000348963A JP4137366B2 JP 4137366 B2 JP4137366 B2 JP 4137366B2 JP 2000348963 A JP2000348963 A JP 2000348963A JP 2000348963 A JP2000348963 A JP 2000348963A JP 4137366 B2 JP4137366 B2 JP 4137366B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- information file
- schema
- file
- data processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、データベース管理システム(DBMS)、特に、リレーショナルデータベース管理システム(RDBMS)において、予備のデータベースを設置することなく、データベースサービスの運用を継続させながら、データベースを構成するデータ情報ファイルのデータ構造の変更(すなわちスキーマ情報の変更)を含むデータベースの再構成を可能とするデータベース管理方法に関する。また、かかるデータベース管理方法を実現させるデータベース管理装置、および、かかるデータベース管理方法をコンピュータにて実行させるプログラムとして記録させたコンピュータに読取り可能なプログラム記録媒体に関する。
【0002】
【従来の技術】
従来より、オンライン処理システムに適用されるデータベース管理システムにおいて、オンラインサービスを中断させずに、データベースを再構成させるためのいくつかの技術が開示されてきている。ここに、データベースの再構成とは、旧データベースの構造を変更して新しいデータベースの構造に変更させるものである。例えば、郵便番号の桁数が3桁から7桁に変更されたことに伴い、住所録データ情報ファイル内の郵便番号を記憶している3桁のデータ領域の大きさを変更して、新たな7桁のデータ領域に拡張させるとともに、拡張させたデータ領域に新たな7桁の郵便番号を格納させた住所録データ情報ファイルを作成させるものである。
【0003】
かかるデータベースの再構成をオンラインサービスを中断させずに実現させるものとして、例えば、特開平5−233408号公報「オンライン処理システムにおける移行方法」において開示されているデータベース再構成技術がある。該公報においては、二重化構成のデータファイル記憶装置を用いて、片系でオンラインサービスを継続させたまま、もう一方の別系上で新たな構成のデータ情報ファイルへの移行処理を行い、移行処理完了時に、一旦、オンラインサービスを停止させて、新たな構成のデータ情報ファイルへ移行した別系にオンライン系を切り替え、新たな系でオンラインサービスを再開させることにより、オンラインサービスの中断時間を最小限に抑えようとするものである。
【0004】
更に、かかる二重化構成のデータファイル記憶装置を用いて、オンライン系への切り替え時に、オンラインサービスを停止させずに、二重化同期運転を実行させて、瞬時に切り替えを実現させて、オンラインサービス無中断のデータベース再構成技術も提案されている。
【0005】
しかしながら、このようなデータベースシステムは、二重化構成が前提となるため、定常状態においても、全く同様のデータ情報ファイルやプログラムファイルを収納する2つの記憶装置を必要とする。更には、二重化構成を制御するための特殊な各種制御機能も必要となり、高価なシステム構成となってしまう。すなわち、通常の単一のデータファイル記憶装置からなるデータベースシステムでは、実現させることができない。
【0006】
一方、予備系を有しない単一系のデータベースシステムにおいても、オンラインサービスの中断なく、データベースの再構成を実現させる技術としては、特開平7−244603号公報「データベース再構成方法」にて開示されているものがある。
【0007】
該公報において開示されている方法は、データファイル記憶装置上のデータ情報ファイルへのアクセス手段を物理的なデータファイル記憶装置上の場所や大きさを意識せずにアクセスする抽象データアクセス手段と、意識してアクセスする実データアクセス手段との2つに分離させ、実データアクセス手段がデータ構造の再構成を行った後においては、抽象データアクセス手段として、新旧間のデータ情報ファイルの変換手段を有せしめることにより、オンラインシステムの稼働状態のままで、新旧いずれのデータ情報ファイルに対してでも、データ情報ファイルの更新を行なうことを可能にせんとするものである。
【0008】
また、特開平7−325744号公報「データベース形式変換方法及び装置」においても、予備系を有しない単一のデータファイル記憶装置におけるオンラインサービス無中断データベース再構成を可能としている。該公報において開示されている方法は、データ情報ファイルのデータ構造の変換処理の要求が発出された時点で、元のデータ情報ファイルの更新は一旦凍結させ、該データ情報ファイルに対して施すべき更新記録を別に設けられたログファイルに逐次記録させていき、一方、元のデータ情報ファイルのデータ構造を、所望のデータ構造に乗換させた後、新たなデータ形式に変換させながら旧データ情報ファイルから順次コピーしていくものである。すべてのデータ構造の変換が終了した時点で、ログファイルに記録されているデータについて、新たなデータ形式に変換して作成し直して、更に上書きコピーしていく。
【0009】
また、特開平08−077050号公報「データベース再構成装置及びデータベース再構成方法」においても、再構成対象の旧テーブルと旧テーブルの更新履歴情報を蓄積させるログファイルとを有し、旧テーブルの全ての情報を新テーブルに置換してコピーした後、ログファイルに蓄積されている更新履歴情報に基づいて、更新後の旧テーブルの情報について新テーブルに反映させていく無中断再構成方法を提案している。
【0010】
【発明が解決しようとする課題】
しかしながら、従来の技術においては、予備系を有しない単一のデータベースシステムでは、データベースの実体データを有しているデータ情報ファイルに対するデータ処理要求を受け付けて、データ情報ファイルを更新させながら、同時に、データ情報ファイルの構造を変更させるがごときデータ再構成を行なわしめることはできず、該データ情報ファイルの構造の変更処理(すなわちデータ再構成処理)が終了するまで、受け付けたデータ処理要求にかかるデータ情報ファイルのデータ処理(データ更新処理)に関する情報を、例えば、別途用意させているログファイル等に保存させていく必要がある。
【0011】
従って、同時にデータ処理要求が大量に発生し、更新された最新データを利用してオンライン処理を迅速に進める必要があるオンラインシステムにおいては、データベース処理の運用を一旦中断させる事に伴い、許容限界近傍まで遅延させた状態でオンライン動作をせざるを得ない状況が生じたり、オンライン動作を継続させたとしても、大量のログファイルが必要となるばかりか、最悪の場合には、オンライン動作に必要とするデータ情報ファイルに関する最新データを許容遅延時間内に取得できなくなり、オンライン動作自体も停止してしまう事態が生じかねない。
【0012】
本発明は、かかる問題に鑑みてなされたものであり、データ情報ファイルに関する複数のデータ処理要求に対する競合防止用のロックモード以外に、該データ情報ファイルのデータ構造を定義するスキーマ情報ファイルに関する複数のデータ処理要求に対しても競合防止用のロックモードを設けることにより、データ情報ファイルに対する複数のデータ処理と、データ情報ファイルの構造を変更させる複数のデータ処理(すなわちデータ再構成処理)とを並行させて同時動作させることを可能にし、データ情報ファイルに対するアクセス要求が発生した場合、アクセス対象のデータ情報ファイルに加え、当該データ情報ファイルのデータ構造を定義しているスキーマ情報ファイルに対してもロックモードを設定する。
【0013】
【課題を解決するための手段】
請求項1の発明は、複数のデータ情報ファイルからなるデータベースファイルと、該データ情報ファイルのそれぞれのデータ構造を定義する複数のスキーマ情報ファイルからなるスキーマファイルとを有し、前記データ情報ファイル及び前記スキーマ情報ファイルに対するデータ処理要求の競合を防止するための複数のロックモードを前記データ処理要求の種別に応じて設け、該ロックモードを前記データ情報ファイル毎及び前記スキーマ情報ファイル毎に前記データ処理要求の種別に対応して設定させることにより、前記データ情報ファイルに対する複数のデータ処理の並行動作のみならず、前記データ情報ファイルと前記スキーマ情報ファイルとに対する複数のデータ処理の並行動作及び前記スキーマ情報ファイルに対する複数のデータ処理の並行動作を可能とし、データ情報ファイルに対するアクセス要求が発生した場合、アクセス対象のデータ情報ファイルに加え、当該データ情報ファイルのデータ構造を定義しているスキーマ情報ファイルに対してもロックモードを設定することを特徴としたものである。
【0014】
請求項2の発明は、請求項1に記載のデータベース管理方法において、前記データ情報ファイルと前記スキーマ情報ファイルとが、それぞれ表形式のファイル形式により構成されており、前記ロックモードの設定を、前記データ情報ファイル及び前記スキーマ情報ファイルを構成するそれぞれの表単位に、前記データ処理要求の種別に対応して設定させることにより、表を構成する前記データ情報ファイルに対する複数のデータ処理の並行動作のみならず、表を構成する前記データ情報ファイルと前記スキーマ情報ファイルとに対する複数のデータ処理の並行動作及び表を構成する前記スキーマ情報ファイルに対する複数のデータ処理の並行動作を可能とすることを特徴としたものである。
【0015】
請求項3の発明は、請求項2に記載のデータベース管理方法において、表形式の前記データ情報ファイル及び前記スキーマ情報ファイルのそれぞれのファイルの構成要素となるデータレコードである行単位毎及びデータ属性である列単位毎に、前記ロックモードを前記データ処理要求の種別に対応して設定させることにより、前記データ情報ファイルに対する複数のデータ処理の並行動作のみならず、前記データ情報ファイルと前記スキーマ情報ファイルとに対する複数のデータ処理の並行動作及び前記スキーマ情報ファイルに対する複数のデータ処理の並行動作を可能とすることを特徴としたものである。
【0016】
請求項4の発明は、請求項1乃至3のいずれかに記載のデータベース管理方法において、前記データ情報ファイルが、複数の前記データ情報ファイル間の関連付けを行なう索引データを有し、前記スキーマ情報ファイルが、該索引データの索引関係を定義する索引情報を有している場合において、前記データ情報ファイル内の前記索引データ毎及び前記スキーマ情報ファイル内の前記索引情報毎に、前記ロックモードを前記データ処理要求の種別に対応して設定させることにより、前記スキーマ情報ファイル内の前記索引情報に対する1乃至複数のデータ処理と、該索引情報が定義している前記データ情報ファイル内の対応する前記索引データに対する1乃至複数のデータ処理との並行動作を可能とすることを特徴としたものである。
【0017】
請求項5の発明は、請求項1乃至4のいずれかに記載のデータベース管理方法において、あらかじめ定められた条件が成立した場合にあらかじめ定められたデータ処理を自動的に実行させるトリガ及びアサーション機能を有している場合に、該トリガ及びアサーション機能によるデータ処理要求に対応して、前記データ情報ファイル及び前記スキーマ情報ファイルに前記ロックモードを設定させることにより、前記トリガ及びアサーション機能に基づく前記データ情報ファイルあるいは前記スキーマ情報ファイルに対する1乃至複数のデータ処理と、前記トリガ及びアサーション機能以外の他のデータ処理要求に基づく前記データ情報ファイルあるいは前記スキーマ情報ファイルに対する1乃至複数のデータ処理との並行動作を可能とすることを特徴としたものである。
【0018】
請求項6の発明は、請求項1乃至5のいずれかに記載のデータベース管理方法において、前記データ情報ファイルあるいは前記スキーマ情報ファイルに設定されているロックモードの設定状況に基づいて、前記データ情報ファイルあるいは前記スキーマ情報ファイルに対するデータ処理の実行時間が最短となるように、該データ処理の実行手順を最適化させることを特徴としたものである。
【0019】
請求項7の発明は、複数のデータ情報ファイルからなるデータベースファイルと、該データ情報ファイルのそれぞれのデータ構造を定義する複数のスキーマ情報ファイルからなるスキーマファイルとを有するデータベース管理装置において、前記データ情報ファイル及び前記スキーマ情報ファイルに対するデータ処理要求の競合を防止するための複数のロックモードを、前記データ処理要求の種別に応じて設け、前記データ処理要求の種別に対応して設定する前記ロックモードを前記データ情報ファイル毎及び前記スキーマ情報ファイル毎に格納させているロックファイルと、前記データ情報ファイルあるいは前記スキーマ情報ファイルに対するデータ処理要求が発生する都度、前記スキーマ情報ファイルに格納されているスキーマ情報及び前記ロックファイルに格納されている前記ロックモードとを参照して、発生した前記データ処理要求の競合状態をチェックし、最適のデータ処理の実行手順を生成する問合せ最適化手段と、生成された該実行手順に従って、要求されたデータ処理を実行させるとともに、該データ処理の実行に先立って、発生した前記データ処理要求に対応する前記ロックモードを前記ロックファイルに格納させ、前記データ処理の実行が終了した時点で、前記ロックファイルに格納させた前記ロックモードを解除させる問合せ実行手段と、データ情報ファイルに対するアクセス要求が発生した場合、アクセス対象のデータ情報ファイルに加え、当該データ情報ファイルのデータ構造を定義しているスキーマ情報ファイルに対してもロックモードを設定する手段を有していることを特徴としたものである。
【0020】
請求項8の発明は、複数のデータ情報ファイルからなるデータベースファイルと、該データ情報ファイルのそれぞれのデータ構造を定義する複数のスキーマ情報ファイルからなるスキーマファイルとを有し、前記データ情報ファイル及び前記スキーマ情報ファイルに対するデータ処理要求の競合を防止するための複数のロックモードを前記データ処理要求の種別に応じて設け、該ロックモードを前記データ情報ファイル毎及び前記スキーマ情報ファイル毎に前記データ処理要求の種別に対応して設定させることにより、前記データ情報ファイルに対する複数のデータ処理の並行動作のみならず、前記データ情報ファイルと前記スキーマ情報ファイルとに対する複数のデータ処理の並行動作及び前記スキーマ情報ファイルに対する複数のデータ処理の並行動作を可能とし、データ情報ファイルに対するアクセス要求が発生した場合、アクセス対象のデータ情報ファイルに加え、当該データ情報ファイルのデータ構造を定義しているスキーマ情報ファイルに対してもロックモードを設定するデータベース管理方法を、コンピュータに実施させるためのプログラムとして記録させていることを特徴としたものである。
【0021】
【発明の実施の形態】
本発明の実施形態について、以下に、図を用いて説明する。
図2は、本発明の一実施例にかかるデータベースシステムのハードウェア構成を示すブロック構成図である。図2においては、通信ネットワーク40を介して、端末1 20,…,端末N 30と、データベースDB130を構築しているサーバ10とが相互接続されている。ここで、データベースDB130を利用するユーザが端末1 20,…,端末N 30から所望のデータ情報ファイルに対する問合せ要求(すなわちデータ処理要求)を、通信ネットワーク40を介して送信すると、サーバ10は、データベースDB130を検索して、要求されたデータに対する処理を施して、そのデータ処理結果を問合せ要求を送信した端末に返送する。
【0022】
ここに、端末1 20,…,端末N 30は、PC等の計算機により構成されている。すなわち、各端末は、それぞれ、CPU21,…,31,メモリ22,…,32,ハードディスク23,…,33を備えており、各メモリ22,…,32には、それぞれ、サーバ10上のデータベースDB130に対する問合せ要求を発するための問合せ要求入力手段221,…,321と、問合せ結果を受け取り、表示するための問合せ結果表示手段222,…,322などを格納し、各CPU21,…,31により、プログラムとして実行させることができる。また、各端末には、それぞれ、データベースDB130への問合せ要求を入力するためのキーボード24,…,34及びポインティングデバイス(例えば、マウス)25,…,35が装備されており、また、データベースDB130へのそれぞれの問合せ結果を表示するためのディスプレイ26,…,36が装備されている。
【0023】
また、通信ネットワーク40は、端末1 20,…,端末N 30とサーバ10とを相互接続するための伝送路を構成するものであり、一般的には、有線ケーブルで実現されていて、TCP/IP等の通信プロトコルにより、端末1 20,…,端末N 30とサーバ10間との情報交換がなされている。
しかしながら、端末1 20,…,端末N 30とサーバ10との通信プロトコルを一致させることができるならば、有線ケーブルに限らず、無線LAN用の電波や放送波を用いた無線ネットワークにより通信ネットワーク40を構築しても構わない。
【0024】
また、サーバ10は、通信ネットワーク40を介して、端末1 20,…,端末N 30から入力されたデータベースDB130への問合せ要求SQL(Structured Query Language)すなわちデータ処理要求を受け取り、該問合せ要求に応じたデータ処理を施して、問合せ結果を該問合せ要求を発した端末1 20,…,端末N 30に、通信ネットワーク40を介して、返送するための計算機である。
すなわち、サーバ10は、マンマシンインタフェースを司るための入出力手段を提供するためのキーボード14、ポインティングデバイス15、あるいは、ディスプレイ16等を備えるとともに、CPU11,メモリ12,ハードディスク13を備えていて、ハードディスク13上に格納されているデータベースDB130に対する各種の管理機能を司るデータベース管理システムDBMS120をメモリ12上のプログラムとして実行させることが可能な蓄積プログラム制御システムからなっている。
【0025】
次に、サーバ10のメモリ12上に搭載されているデータベース管理システムDBMS120と、ハードディスク13に格納されているデータベースDB130の詳細なブロック構成を図1を用いて説明する。
ここに、図1は、本発明にかかるデータベース管理システムDBMS120を構成する各種の処理(手段)と、該処理(手段)の処理対象となるデータベースDB130を構成する各種の情報ファイルとを示すブロック構成図である。
データベースDB130はデータベースファイル131,ロックファイル132及びスキーマファイル133からなっている。データベースファイル131は、データベースの実体となるデータオブジェクトを、スキーマ(schema)として別途定義されるデータ構造を有するファイル形式(例えば、表形式)で蓄積している複数のデータ情報ファイルからなる情報ファイル群である。
【0026】
ここに、スキーマ(schema)とは、各データ情報ファイルそのもの及び該データ情報ファイル中の各データの構造,形式,関連,制約等に関して記述したものであり、データ情報ファイルそのもののあるいは該データ情報ファイルの個々の構成要素である各データの構造(以下、データ情報ファイルのデータ構造と略記する)を定義するものである。かかるスキーマに関する情報は、所定のファイル形式(例えば、表形式)で、スキーマ情報ファイルとして、データ情報ファイルに対応させて作成される。作成された複数のスキーマ情報ファイルは、データベース130内にスキーマファイル133として蓄積されている。また、かかるスキーマ情報ファイル自体の、あるいは、スキーマ情報ファイルの個々の構成要素となるスキーマ情報の構造(以下、スキーマ情報ファイルのデータ構造と略記する)も、スキーマ情報ファイルとして保存している。
【0027】
また、ロックファイル132は、データベースファイル131内のデータ情報ファイル及びスキーマファイル133内のスキーマ情報ファイルへのデータ処理要求の競合状態を制御する排他制御処理を可能とするためのロックモード情報を格納する情報ファイルであり、データベースファイル131内のデータ情報ファイル及びスキーマファイル133内のスキーマ情報ファイルそれぞれに対応して設けられた複数のロック情報ファイルから構成されている。
【0028】
各ロック情報ファイルには、対応する前記データ情報ファイル及び前記スキーマ情報ファイルに関するロックモード情報、更には、前記データ情報ファイルの構成要素であるデータレコード及び前記スキーマ情報ファイルの構成要素であるスキーマ情報(すなわち、前記データ情報ファイルのデータレコードの属性となる列情報の構造を示す情報)に関するロックモード情報を格納している。
なお、競合状態を制御し、排他制御処理を可能とする競合防止用のロックモードとしては、データ処理要求の種別(例えば、検索,読み出し,更新,追加,削除など)に対応して、複数のロックモードを有している。
【0029】
また、データベースDB130を構成するデータベースファイル131内のデータ情報ファイルは、最近の商用データベース管理システム(DBMS)として広く採用されているリレーショナルデータベースモデル(関係データベースモデル,Relational Data Model)の場合、表形式で構成されており、データベースファイル131は、表(テーブル Table)の集まりとして表現される。この場合、各表(テーブル)は、複数の属性(アトリビュート attribute)を規定する縦の並び(フィールド)すなわち列(カラム Column)と、各該属性(アトリビュート)の組合せ(タプル tuple)を規定する横の並び(レコード)すなわち行(ローRow)とを構成要素としている。ここに、各表(テーブル)と各列(カラム)とが、スキーマ(schema)情報として規定されることにより、各データ情報ファイル及び該スキーマを保存する各スキーマ情報ファイルのそれぞれのデータ構造が定義されることになる。
【0030】
また、データベースファイル131,ロックファイル132及びスキーマファイル133は、通常、図2に示すように、ハードディスク13上に記憶されているが、メモリ12に記憶容量としての余裕がある場合においては、かかるデータベースファイル131,ロックファイル132及びスキーマファイル133の一部あるいは全部をメモリ12上に保存させることとしても良い。
【0031】
次にデータベース管理システムDBMS120は、問合せ要求受信手段124,問合せ最適化手段125,問合せ実行手段126,問合せ結果送信手段127、及び、アクセスプラン128を有し、更には、データベースファイルアクセス手段121,ロックファイルアクセス手段122、及び、スキーマファイルアクセス手段123を有している。
問合せ要求受信手段124は、端末からのデータベースへの問合せ要求SQL(Structured Query Language)を受信し、受付けの可否をチェックし、データ処理要求用のトランザクションを生成するものである。
【0032】
問合せ最適化手段125は、生成したデータ処理要求用のトランザクションに基づいて、受信したデータベースへの問合せ要求SQLについて構文解析,意味解析を行ない、スキーマファイル133やロックファイル132にある各種関連情報を参照しながら、該問合せ要求に応じたデータベースファイル131等への最適なアクセス経路を決定し、最も実行時間が短いアクセスプラン128を生成するものである。
【0033】
ここに、アクセスプラン128は、問合せ最適化手段125により最適化が図られたデータベースアクセス経路に関するデータ処理の実行順序すなわちデータ処理手順を示す内部処理コードを記録しているものであり、問合せ要求SQLの実行手順を示している。アクセスプラン128は、原則として、図2に示すメモリ12上に保存される。
【0034】
問合せ実行手段126は、問合せ最適化手段125により生成されたアクセスプラン128に基づいて、ロックファイル132にあるロックモード情報を参照しながら、データベースファイル131内の所望のデータ情報ファイル、あるいは、スキーマファイル133内の所望のスキーマ情報ファイルへのアクセスを行ない、アクセスプラン128に示された問合せ要求に基づいたデータ処理を施して、データ処理結果としての問合せ結果を出力するものである。問合せ結果送信手段127は、問合せ実行手段126が出力した問合せ結果を通信ネットワーク40を介して、要求元の端末へ返送するものである。
【0035】
また、データベースファイルアクセス手段121は、問合せ実行手段126からのデータ処理要求種別に応じて、データベースファイル131内の所望のデータ情報ファイルにアクセスし、該データ情報ファイルに関する検索,読み出し,更新,追加あるいは削除等の入出力処理を行なうものである。
【0036】
ロックファイルアクセス手段122は、問合せ最適化手段125、あるいは、問合せ実行手段126からの要求に基づいて、ロックファイル132内の所望のロック情報ファイルにアクセスし、該ロック情報ファイルに関する検索,読み出し,更新,追加あるいは削除等の入出力処理を行なうものである。
【0037】
また、スキーマファイルアクセス手段123は、問合せ最適化手段125、あるいは、問合せ実行手段126からの要求に基づいて、スキーマファイル133内の所望のスキーマ情報ファイルにアクセスし、該スキーマ情報ファイルに関する検索,読み出し,更新,追加あるいは削除等の入出力処理を行うものである。
【0038】
次に、本発明にかかるデータベース管理システムDBMSの概略の動作を図5に示すフローチャートに基づいて説明する。
まず、通信ネットワーク40を介して、端末からのデータ処理要求が問合せ要求受信手段124で受信されると、問合せ要求受信手段124は、該データ処理要求の受付処理を行なった後、該データ処理要求用のトランザクションを生成させて、問合せ最適化手段125に該データ処理要求用のトランザクションを送信する(S1)。
【0039】
該データ処理要求用のトランザクションを受信した問合せ最適化手段125は、該トランザクション内に含まれている問合せ受信手段124からのデータ処理要求に応じたデータ処理手順を、該データ処理要求に関連するスキーマ情報及びロックモード情報に基づいて生成させ、順次、探索空間に追加していく(S2)。なお、スキーマ情報は、スキーマファイルアクセス手段123を介して、スキーマファイル133内の所望のスキーマ情報ファイルから読み出され、ロックモード情報は、ロックファイルアクセス手段122を介して、ロックファイル132内の所望のロック情報ファイルから読み出される。
【0040】
また、問合せ最適化手段125は、生成された探索空間内のデータ処理手順の中から、最短の実行時間及び並行動作の可能性をチェックして、最適のデータ処理手順となるアクセスプラン128を作成し、問合せ実行手段126に送出する(S3)。
なお、作成されたアクセスプラン128には、データ処理要求の競合防止用の排他制御を行なうために、データ処理の実行の前後において、データオブジェクト(処理対象のデータ情報ファイルやデータ情報ファイル内のデータレコード)やスキーマオブジェクト(処理対象のスキーマ情報ファイルやスキーマ情報ファイル内のスキーマ情報)に関するロックモードを設定したり、解除したりするデータ処理手順も含まれている。
【0041】
問合せ最適化手段125で作成されたアクセスプラン128に基づいて、問合せ実行手段126は、ロックファイルアクセス手段122を介して、処理対象のデータオブジェクトやスキーマオブジェクトの競合状態をチェックし(S4)、競合状態にある場合は(S4のYES)、競合している他のデータ処理が完了するまで待合わせ処理を行なうか、あるいは、要求されたデータ処理を行なうことができない旨の理由を付して、問合せ結果送信手段127に対して拒絶通知を送信する。図5においては、あらかじめ定められた時限のタイミングを待合せた(S10)後、再度競合状態をチェックするためにステップS4に戻る場合の処理を示している。
【0042】
一方、前記データオブジェクトや前記スキーマオブジェクトのデータ処理の実行が許容されている状態にあれば(S4のNO)、該データオブジェクトや該スキーマオブジェクトに対して、データ処理要求種別に対応した所望のロックモードを設定させるべく、ロックファイルアクセス手段122を介して、ロックファイル132内の指定されたロック情報ファイルに書き込み処理を行なう(S5)。
【0043】
その後、問合せ実行手段126は、処理対象の前記データオブジェクトあるいは前記スキーマオブジェクトに対して、アクセスプラン128に記述されているデータ処理を施す(S6)。すなわち、アクセスプラン128に記述されているデータ処理が検索読み出しを指示している場合、前記データオブジェクトあるいは前記スキーマオブジェクトを、データベースファイルアクセス手段121あるいはスキーマファイルアクセス手段123を介して、データベースファイル131あるいはスキーマファイル133の中を検索して読み出す。また、アクセスプラン128に記述されているデータ処理要求が前記データオブジェクトあるいは前記スキーマオブジェクトに対するデータ更新処理を指示している場合は、該データ処理要求に応じたデータ更新処理を前記データオブジェクトあるいは前記スキーマオブジェクトに施した後、データベースファイル131あるいはスキーマファイル133の中にデータベースファイルアクセス手段121あるいはスキーマファイルアクセス手段123を介して書き込む。
【0044】
アクセスプラン128に基づくデータ処理が完了した場合、前記データオブジェクトや前記スキーマオブジェクトに設定していたロックモードを解除させるために、ロックファイルアクセス手段122を介して、ロックファイル132内の指定されたロック情報ファイルへの書き込み処理を行なう(S7)。
更に、問合せ実行手段126は、アクセスプラン128に基づいたデータ処理手段を実行した結果を、問合せ結果として問合せ結果送信手段127に出力する(S8)。問合せ結果送信手段127は、通信ネットワーク40を介して、要求元の端末に対して、該問合せ結果を送信する(S9)。
【0045】
次に、本発明において、データ処理要求の競合防止用に設けたロックモードに関するロック機構について説明する。
従来のデータベース管理システムにおいては、前述したように、データ処理要求のトランザクションが実行されている(すなわちデータ処理が実行されている)途中においては、データ情報ファイルの構造を定義しているスキーマ情報ファイルが更新されていないこと(すなわち、データ再構成処理がなされていないこと)が前提とされている。本発明においては、データ情報ファイルのみではなく、スキーマ情報ファイルも含むいずれのデータ処理要求のトランザクションが実行されている(すなわち、データ処理が実行されている)途中であっても、スキーマ情報ファイルの変更処理が可能となるように、データ情報ファイルのみでなく、スキーマ情報ファイルに対しても、データ情報ファイルと全く同様のロック機構を導入し、スキーマ情報ファイルの変更処理も一種のデータ処理要求用のトランザクションとして扱うこととしている。かかるロック機構を導入することによって、通常のデータ情報ファイルへのデータ処理要求と、スキーマ情報ファイルに対するデータ処理要求(スキーマ変更処理要求、すなわち、データ再構成要求)とを同時に受け付けて、同時実行させることができる並行動作性を確保している。
【0046】
本発明にかかるデータ処理要求競合防止用のロック機構を実現するためのロックモードとしては、データ情報ファイル用、スキーマ情報ファイル用のそれぞれに対して、X,SIX,S,IX及びISの5つのロックモードを用意する。かかる5つのロックモード間の両立性(Compatibility)を図3に示す。ここに、両立性とは、同一のオブジェクト(すなわち、データ処理要求の対象となるデータ情報ファイルあるいはスキーマ情報ファイル及びデータ情報ファイル内の構成要素であるデータレコードあるいはスキーマ情報ファイル内の構成要素であるスキーマ情報)に対して、複数個のデータ処理要求のトランザクションが存在し、同時に実行されんとする場合に、それぞれのトランザクションが指定するロックモードを同時に設定することができるか否か(両立可能か否か)という性質を示すものである。図3において、「Y」は両立可能であることを示し、「N」は両立不可能であることを示している。
【0047】
図3において、Xとは、排他モード(Exclusive Mode)であり、該排他モードXが設定されているオブジェクトに対する他からの一切のデータ処理要求(検索,読み取り,更新,追加,削除等)を拒絶するロックモードである。
一般的には、データ処理対象のオブジェクトの変更,追加,削除処理を要求するUPDATE文,INSERT文,DELETE文などで指定されているデータ処理を実行する際に設定されるロックモードである。
【0048】
また、Sとは、共有モード(Shared Mode)であり、該共有モードSが設定されているオブジェクトに対しては、読み取り動作を行なう他からのデータ処理要求については、受け付けて並行して実行させることができるが、変更,追加,削除等のデータ処理要求については、一切拒絶するロックモードである。
一般的には、データ処理要求のオブジェクトの検索,読み出し処理を要求するSELECT文などで指定されているデータ処理を実行する際に設定されるロックモードである。ただし、SELECT文の場合であっても、例外的に排他モードXに強制設定させることももちろん可能である。
【0049】
また、IXは、インテント排他モード(Intent Exclusive Mode)であり、該インテント排他モードIXが設定されているオブジェクト内の構成要素に対して排他モードXが設定されていることを示すロックモードである。インテント排他モードIXは、データ情報ファイルやスキーマ情報ファイルを構成する表(テーブル)に対して設定されるものであり、表(テーブル)自体に排他モードXが設定されている場合には、該表(テーブル)に対してインテント排他モードIXを設定させる必要はない。
【0050】
ISは、インテント共有モード(Intent Shared Mode)であり、該インテント共有モードISが設定されているオブジェクト内の構成要素に対して共有モードSが設定されていることを示すロックモードである。インテント共有モードISは、データ情報ファイルやスキーマ情報ファイルを構成する表(テーブル)に対して設定されるものであり、表(テーブル)自体に共有モードSが設定されている場合には、該表(テーブル)に対してインテント共有モードISを設定させる必要はない。
【0051】
SIXは、インテント排他付共有モード(Shared with Intent Exclusive Mode)であり、該インテント排他付共有モードSIXが設定されている表(テーブル)オブジェクトは、一旦、共有モードSに設定されて、データ処理を実行中であったが、該表(テーブル)オブジェクト内のある構成要素に対して排他モードXを設定させるデータ処理が発生したため、該表(テーブル)オブジェクトにインテント排他モードIXをも設定させたいことを示すロックモードである。例えば、大きな表(テーブル)に対して、反復読み取り動作させるSELECT文を実行させて、大きな該表(テーブル)に対して共有モードSを設定している状態にある際に、UPDATE文により、該表(テーブル)の中の構成要素である1つの行(ロー)のみを更新したい要求が発生し、該1つの行(ロー)に対して排他モードXを設定した場合には、該表(テーブル)に対して共有モードSからインテント排他付共有モードSIXに自動的に遷移させて設定し直すことになる。
【0052】
すなわち、インテント排他モードIX,インテント共有モードIS及びインテント排他付共有モードSIXは、データ情報ファイルやスキーマ情報ファイルに対する複数のデータ処理要求の同時実行性を向上させるために設けられているロックモードである。例えば、特定の表(テーブル)内の構成要素である行(ロー)あるいは列(カラム)のみを更新するデータ処理要求を実行させる場合に、同じ該表(テーブル)内の他の行(ロー)あるいは列(カラム)に対する参照要求の同時実行を許容する際には、該表(テーブル)に対して、インテント排他モードIXが設定され、更新対象となる行(ロー)あるいは列(カラム)に対してのみ排他モードXが設定されることになる。
【0053】
また、かかるロックモードは、前述のごとく、データ情報ファイルのみでなく、スキーマ情報ファイルに対しても設定することになる。すなわち、例えば、データ処理対象のオブジェクトがデータ情報ファイルにある場合であっても、データ情報ファイルのみでなく、該データ情報ファイルと関連するスキーマ情報ファイルに対しても、同時にロックモードの設定がなされることにより、データ情報ファイルへのデータ処理とスキーマ情報ファイルへのデータ処理との並行動作を実現させることができる。
【0054】
次に、データ情報ファイルあるいはスキーマ情報ファイルに対するデータ処理要求のロック機構の動作について、簡単なデータ情報ファイルとスキーマ情報ファイルとを例にとって、更に詳細に説明する。
ここに、図4は、データ処理要求の対象となるデータ情報ファイルすなわちデータオブジェクト及び該データオブジェクトのデータ構造を定義するスキーマ情報ファイルすなわちスキーマオブジェクトの構成の一例を示す図である。
【0055】
すなわち、スキーマファイル133内のスキーマ情報ファイルとして、列(カラム)C1,C2についてデータ構造を定義している表Rが存在している。ここで、表R,列(カラム)C1,C2に対応して、それぞれ、スキーマオブジェクトS(R),S(C1),S(C2)と表わすこととする。
一方、データべースファイル131内のデータ情報ファイルとして、前記スキーマオブジェクトによりデータ構造が定義されているデータ情報ファイルとして表Rが存在し、該データ情報ファイルである表Rは、各行(ロー)毎に列(カラム)C1,C2に対応したデータ属性(アトリビュート)を有するタプル(tuple)情報として、t1,t2,t3の3行(ロー)からなる表(テーブル)を構成している。ここで、該表R,行(ロー)t1,t2,t3に対応して、それぞれ、データオブジェクトD(R),D(t1),D(t2),D(t3)と表わすこととする。
【0056】
まず、データ情報ファイルに関するロックモードの設定動作のみに着目して、ロック機構の動作例を説明する。
例えば、データ情報ファイルすなわち表Rのデータを、順次、検索していくデータ処理要求トランザクションがある場合、表R全体にロックモードが設定される。かかる場合において、表R全体にかかるデータ処理要求の条件に該当するいずれかの行(ロー)を検索して、該行(ロー)のデータの更新を伴う場合は、表R全体すなわちデータオブジェクトD(R)に排他モードXが設定される。したがって、該検索処理が終了するまで、表Rへのアクセスを要求する他の一切のデータ処理要求トランザクションは、図3に示すごとく、表RすなわちデータオブジェクトD(R)に対しては、競合状態となるため、図4のステップS4のYESの判定を経て、ステップS10を経由して、再びステップS4に戻る待ち合せ状態となる。
【0057】
一方、データファイルすなわち表R全体に関するデータの読み出し動作のみの場合には、表R全体すなわちデータオブジェクトD(R)に対して共有モードSが設定されている状態になる。かかる状態においては、表Rへのアクセスを並行して要求する他のデータ処理要求トランザクションが、表R内の特定の行(ロー)のデータの読み出しのみを行なうデータ処理要求の場合は、該他のデータ処理要求トランザクションの実行時においては、表R全体に対してはISモードが設定され、読み出し対象行(ロー)に対しては、Sモードが設定されることになるので、図3に示すごとく、表RすなわちデータオブジェクトD(R)に対する競合状態は発生していない。したがって、図4のステップS4のNOの判定を経て、両者のデータ処理要求トランザクションとも、同時実行動作が可能となるので、かかる場合においては、データベース処理の高速化を図ることができる。
【0058】
また、データ情報ファイルすなわち表Rの特定の行(ロー)t1のみに対してデータ更新を行なうデータ処理要求トランザクションを実行させる場合、表R全体すなわちデータオブジェクトD(R)に対しては、インテント排他モードIXが設定され、データ更新を行なう対象の行(ロー)t1すなわちデータオブジェクトD(t1)に対しては、排他モードXが設定される。したがって、前記データ更新が終了するまで、図3に示すごとく、行(ロー)t1すなわちデータオブジェクトD(t1)に対しては、他の一切のデータ処理要求トランザクションが競合状態となり、実行を待合せることとなるが、表R内の他の行(ロー)すなわちデータオブジェクトD(t2)乃至D(t3)に対してアクセスを要求するデータ処理要求トランザクションに対しては、読み出し,書き込みともに同時実行動作が許容される状態であり、データベース処理の高速化に貢献している。
【0059】
更に、データ情報ファイルすなわち表Rの特定の行t1のみに対するデータ読み出しを行なうデータ処理要求トランザクションを実行させる場合、表R全体すなわちデータオブジェクトD(R)に対しては、インテント共有モードISが設定され、データ読み出し対象の行(ロー)t1すなわちデータオブジェクトD(t1)に対しては、共有モードSが設定される。したがって、行(ロー)t1の前記データ読み出しが終了するまでは、図3に示すごとく、行(ロー)t1すなわちデータオブジェクトD(t1)に対してデータ変更を要求するがごとき他のデータ処理要求トランザクションは、競合状態となり、待合せることになるが、行(ロー)t1すなわちデータオブジェクトD(t1)に対する読み出し動作については、表Rの他の行(ロー)すなわちデータオブジェクトD(t2)乃至D(t3)に対するいかなるアクセス動作とともに、他のデータ処理要求トランザクションは同時実行動作が可能となり、更に、データベース処理の高速化が期待できる。
【0060】
なお、上述した説明においては、データ情報ファイルに関するロックモードの設定動作のみに着目して説明しているが、かかるデータ情報ファイルに対するアクセス動作を実行させる場合、データ処理の対象となるデータ情報ファイルのデータ構造を定義しているスキーマ情報ファイルに対しても、前述したごとく、同時に、共有モードSおよび/またはインテント共有モードSが設定される。
すなわち、対象とするデータ情報ファイルである表R全体に対するデータ処理要求トランザクションを実行させる場合には、該データ情報ファイルである表Rのデータ構造を定義しているスキーマ情報ファイルすなわち表R全体に対応するスキーマオブジェクトS(R)に対して、共有モードSが設定される。一方、前記データ情報ファイルすなわち表R内の特定の行(ロー)に対するデータ処理要求トランザクションを実行させる場合には、スキーマオブジェクトS(R)内にあり、前記データ情報ファイルの行(ロー)t1,t2,t3すなわちデータオブジェクトD(t1),D(t2),D(t3)のデータ構造すなわち列(カラム)C1及びC2の構造を定義しているスキーマオブジェクトS(C1)及びS(C2)に対して、共有モードSが設定され、表Rを示すスキーマオブジェクトS(R)に対しては、インテント共有モードISが設定される。
【0061】
かかるごとく、データ処理対象のデータ情報ファイルに対応するスキーマ情報ファイルに対しても、同時にロックモードを設定することにより、データ情報ファイルに対するデータ処理要求トランザクションが実行中の状態にあっても、対応するスキーマ情報ファイルの更新処理を競合させることなく並行して動作させることが可能となり、逆に、スキーマ情報ファイルの更新中にデータベースファイルへのアクセス処理を停止させるがごとき運用の不便さは回避させることができる。
【0062】
次に、スキーマ情報ファイルに関するロックモードの設定動作について、すなわち、スキーマ情報ファイルに対するデータ処理要求トランザクションが発生している場合について説明する。
まず、前述の図4に示す表Rのデータ構造を規定しているスキーマ情報ファイルに関し、列(カラム)C1の定義内容を変更せんとするデータ処理要求トランザクションT1が存在している場合、問合せ実行手段126において、定義内容の変更処理が終了するまで、変更処理の対象となるスキーマオブジェクトS(C1)に対して排他モードXが設定され、また、該スキーマオブジェクトS(C1)を有する表R対応のスキーマオブジェクトS(R)に対しては、インテント排他モードIXが設定される。
【0063】
かかるデータ処理要求トランザクションT1が先行して存在している状態において、列(カラム)C1及びC2に定義されている内容を表示させるデータ処理要求トランザクションT2が後発して発生した場合、該トランザクションT2を実行させようとする問合せ実行手段126は、データ処理の対象となるスキーマオブジェクトS(C1)及びS(C2)に対して、共有モードSを設定させんとし、また、該スキーマオブジェクトS(C1)及びS(C2)を有する表R対応のスキーマオブジェクトS(R)に対しては、インテント共有モードISを設定させんとする。
【0064】
しかしながら、図3に示すごとく、スキーマオブジェクトS(C1)に対して設定されている排他モードXは、いかなるロックモードとも両立を認めていないので、両者のトランザクションT1及びT2は、スキーマオブジェクトS(C1)において、競合状態となる。
【0065】
したがって、後発のトランザクションT2は、図5に示すフローチャートのステップS4において、競合状態が生じていると判定されて、先発のトランザクションT1による列(カラム)C1の定義変更処理が終了するまで、図5に示すフローチャートのステップS10を経由してステップS4に戻るループを繰り返すことにより、待機状態とされる。
【0066】
また、前記のトランザクションT1が先行して存在している状態において、表Rの列(カラム)C2に定義されている内容のみを表示させるデータ処理要求用トランザクションT3が後発して発生した場合においては、該トランザクションT3を実行させようとする問合せ実行手段126は、処理の対象となるスキーマオブジェクトS(C2)に対して、共有モードSを設定させんとし、また、該スキーマオブジェクトS(C2)を有する表R対応のスキーマオブジェクトS(R)に対しては、インテント共有モードISを設定させんとする。
【0067】
かかる状態においては、図3に示すごとく、双方のトランザクションT1とT3との間には競合状態は発生していないので、後発のトランザクションT3も、図5に示すフローチャートのステップS4において、競合状態ではないと判定され、先発のトランザクションT1と同時実行の動作が可能となる。
したがって、両者の同時実行により、データベース処理の高速化を図ることができる。
【0068】
なお、前記のトランザクションT1のように、データ情報ファイルすなわち表Rのデータ構造を定義するスキーマオブジェクトを変更させるデータ処理要求用トランザクションを実行する場合、該スキーマオブジェクトで定義されているデータ情報ファイルすなわち表Rを示すデータオブジェクトD(R)側に対して、いかなるロックモードも設定する必要はない。しかしながら、前記のトランザクションT2あるいはT3のように、表Rのデータ構造を定義するスキーマオブジェクトを変更せずに、表示させるようなトランザクションを実行する場合においては、スキーマオブジェクトへのロックモードの設定が完了した後、該スキーマオブジェクトによって、データ構造が定義されているデータ情報ファイルすなわち表Rを示すデータオブジェクトD(R)、及び、該表Rの構成要素である各行(ロー)を示すデータオブジェクトD(t1),D(t2),D(t3)に対して、データ処理の競合を防止するために、ロックモードを設定しなければならない。
すなわち、前記のトランザクションT2あるいはT3が実行されて、各スキーマオブジェクトS(R),S(C1),S(C2)あるいはS(R),S(C2)へのロックモードの設定が完了した後、該スキーマオブジェクトで定義されている表Rの各行(ロー)を示すデータオブジェクトD(t1),D(t2),D(t3)に対して、共有モードSが設定され、表Rを示すデータオブジェクトD(R)に対しては、インテント共有モードISが設定される。
【0069】
したがって、例えば、前記のトランザクションT2が先発して処理されている状態において、スキーマオブジェクトS(C2)でデータ構造を示すデータオブジェクトD(t1),D(t2),D(t3)のデータ内容を更新するデータ処理要求トランザクションT4が後発して発生した場合においては、該トランザクションT4を実行せようとする問合せ実行手段126は、スキーマオブジェクトS(C2)で定義されているデータ情報ファイルすなわち表Rの各行(ロー)を示すデータオブジェクトD(t1),D(t2),D(t3)に対して、排他モードXを設定させんとし、表Rを示すデータオブジェクトD(R)に対しては、インテント排他モードIXを設定させんとする。更には、前記トランザクションT4の処理対象であるデータ情報ファイルの各行(ロー)内の列C2に対応するスキーマオブジェクトS(C2)に対しても、共有モードSを設定させ、該スキーマオブジェクトS(C2)を有する表R対応のスキーマオブジェクトS(R)に対して、インテント共有モードISを設定させんとする。
【0070】
かかる状態において、スキーマオブジェクトに対する両トランザクションT2とT4との競合関係についてみれば、トランザクションT2に関しては、スキーマオブジェクトS(C1)及びS(C2)には共有モードSが、また、スキーマオブジェクトS(R)に対しては、インテント共有モードISが設定されており、一方、トランザクションT4に関しては、スキーマオブジェクトS(C2)には共有モードSが、また、スキーマオブジェクトS(R)に対しては、インテント共有モードISが設定されんとしている。図3に示すごとく、両方のトランザクションT2とT4との間には、競合関係は、発生せず、同時実行動作が可能である。
【0071】
しかしながら、データオブジェクトに対する両方のトランザクションT2とT4との競合関係をみると、トランザクションT2の実行時においては、データオブジェクトD(t1),D(t2),D(t3)に共有モードSが、また、データオブジェクトD(R)にインテント共有モードISが設定されている。一方、トランザクションT4に関しては、データオブジェクトD(t1),D(t2),D(t3)に対して、排他モードXが、また、データオブジェクトD(R)に対しては、インテント排他モードIXが設定されんとするため、図3に示すごとく、両方のトランザクションT2とT4とは、競合関係となる。したがって、後発のトランザクションT4は待機状態とされることになる。
【0072】
次に、図4に示す表Rの構造を規定しているスキーマ情報として、列(カラム)C1に索引Iが定義されていて、索引Iにより、表Rが他の表と関係付けられている場合について説明する。該索引Iの再構成(作り直し)を行うスキーマ情報変更のデータ処理要求トランザクションT5が発生した場合においては、索引Iを示すスキーマオブシェクトS(I)に対しては、排他モードXが設定され、表Rに対応するスキーマオブジェクトS(R)には、インテント排他モードIXが設定されることになる。
【0073】
ここで、表Rで示すデータ情報ファイルの列(カラム)C1に格納されているデータをSELECT文などで検索するようなデータ処理要求トランザクションが同時に発生した場合においては、列(カラム)C1に格納されているデータの変更は伴わないので、スキーマオブジェクトS(I)に対して、ロックモードを設定する必要はない。
【0074】
しかしながら、表Rで示すデータ情報ファイルの列(カラム)C1に格納されているデータをUPDATE文などで変更するようなデータ処理要求トランザクションが発生した場合においては、スキーマオブジェクトS(I)に対しても共有モードSを設定させなければならない。すなわち、スキーマ情報として索引Iが再構成されんとしている場合に、データ情報ファイルの列(カラム)C1に格納されているデータを変更せんとするデータ処理要求トランザクションが発生した場合には、スキーマオブジェクトS(I)に対する競合の発生を検出させて、索引データである列(カラム)C1のデータ変更の待合せ処理を行なわせることにより、両者のトランザクションの並行同時を可能とするものであり、索引Iの再構成後に、再度データ情報ファイルの列(カラム)C1のデータ変更を実行させなければならないような事態の発生を防止することができる。
【0075】
以上に述べたごとく、本発明にかかるデータベース管理方法及びデータベース管理装置においては、データオブジェクトのみでなく、スキーマオブジェクトに対しても、競合防止用のロックモードを設定させることにより、データベースに関するデータ処理の並行動作性を維持し、直列化可能性を保証している。
すなわち、例えば、スキーマ情報を変更するデータ処理要求トランザクションが発生した場合、変更対象となるスキーマオブジェクトに対してロックモードを設定する。この場合、変更対象がデータの属性を規定する列(カラム)である場合は、該列(カラム)に対して、排他モードXを、また、該列(カラム)が構成要素となっている表(テーブル)に対しては、インテント排他モードIXを設定する。また、変更対象が表全体に関わる場合は、変更対象となる表全体に対して、排他モードXを設定するが、該表の構成要素である各列(カラム)に対しては、排他モードXを設定する必要はない。
なお、索引が定義されている場合、索引を示すスキーマオブジェクトに対しても、変更を必要とする場合には、排他モードXを設定する。
また、スキーマ情報を変更するデータ処理要求トランザクションである場合、該スキーマ情報によってデータ構造が定義されているデータオブジェクトに対しては、ロックモードを設定する必要はない。
【0076】
一方、スキーマ情報を変更せずに、参照のみのデータ処理要求トランザクションが発生した場合、参照対象となるスキーマオブジェクトに対して、ロックモードを設定する。この場合、参照対象がデータの属性を規定する列(カラム)あるいは索引である場合は、該列(カラム)あるいは索引に対して共有モードSを、また、該列(カラム)あるいは索引が構成要素となっている表(テーブル)に対しては、インテント共有モードISを設定する。更に、該スキーマ情報によって、データ構造が定義されているデータオブジェクトに対してもロックモードを設定する必要がある。すなわち、スキーマオブジェクトに対するロックモードの設定が完了した時点で、対応するデータオブジェクトに対してもロックモードを設定する。ここで、該データオブジェクトである表(テーブル)に対しては、インテント共有モードISまたは共有モードSを、また、該データオブジェクトの表の構成要素となる各行(ロー)に対しては、共有モードSを設定する。
【0077】
すなわち、本発明にかかるデータベース管理方法及びデータベース管理装置においては、データ情報ファイルの構造を定義するスキーマ情報をスキーマ情報ファイルとして生成させるデータ定義言語(DDL:Data Definition Language)によるデータ処理、すなわち、スキーマオブジェクトに対する検索、読み出し、変更、追加、削除等のデータ処理と、該スキーマ情報ファイル内のスキーマ情報によりデータ構造が定義されているデータ実体を備えているデータ情報ファイルに対するデータ操作を行うデータ操作言語(DML:Data Managemnt Language)によるデータ処理、すなわち、データオブジェクトに対する検索、読み出し、変更、追加、削除等のデータ処理との双方において、スキーマオブジェクトとデータオブジェクトとの双方に対するロックモードを設定しながら、データ処理を行なわしめることにより、かかるデータ処理の並行動作性を確保するとともに、直列化可能性も保証している。
【0078】
ここで、直列化可能性とは、複数個のデータ処理要求トランザクションに関し、並行させてデータ処理を実行させて得られたデータベースの状態が、複数個の該データ処理要求トランザクションを、ある順序に従って逐次実行させて得られるデータベースの状態と一致するトランザクションの状態と一致するデータ処理の性質を示している。
かかる直列化可能性が保証されると、ある一貫性を有するデータベースに対して、複数個のデータ処理要求トランザクションを並行させて実行させても、新たな一貫性を有するデータベースの状態に遷移させることを保証することができる。
【0079】
また、本発明にかかる問合せ最適化手段125においては、スキーマオブジェクトに対して設定されているロックモードの状態に基づいて、問合せ実行手段126で実行される最適の処理手順を示すアクセスプラン128の内容を変更させることもできる。例えば、問合せ最適化手段125が、新たなデータ処理要求に応じたアクセスプラン128を生成せんとしている時点において、データベースの索引関係の再構成を行なうスキーマ情報変更のデータ処理要求トランザクションが実行されている状況になっている場合、かかる索引情報変更に関するスキーマ情報に対するロックモードも有しているので、データ処理の並行動作性を考慮して、前記索引関係の再構成に関係するデータを用いないアクセスプラン128を生成させることも可能である。
【0080】
更には、問合せ機能を更に拡張させた機能であるトリガやアサーション機能に基づくデータ処理要求(データオブジェクトあるいはスキーマオブジェクトに対する検索,読み出し,変更,追加,削除等のデータ処理要求)に対応して、データオブジェクトのみでなく、関連するスキーマオブジェクトに対するロックモードを設定させることにより、トリガやアサーション機能に関連するスキーマオブジェクトや該スキーマオブジェクトにより定義付けられているデータオブジェクトに対するデータ処理要求(検索,読み出し,変更,追加,削除等のデータ処理要求)トランザクションとの並行動作性も実現させることができる。ここに、トリガやアサーション機能とは、あらかじめ定められた特定の条件が成立した場合に、あらかじめ定められているデータ処理手順を自動的に起動させるようにした機能であり、例えば、給与データの一部を変更した場合、自動的に全員の給与の平均データを算出して設定し直させる動作を起動させるような機能である。
【0081】
【発明の効果】
データベースを構成する各データ情報ファイルのデータ構造を定義しているスキーマ情報に対するロックモードを設けることにより、データ処理の要求に関するトランザクションの実行途中(すなわちデータ処理の実行途中)であっても、該データ処理にかかるデータ情報ファイルに関するスキーマ情報の変更を並行して行なわせることが可能であり、同時実行可能なデータ処理要求数を増加させることができるので、データベース管理システム全体の高速性,高処理効率を達成させることができる。
【0082】
また、スキーマ情報の変更時において、データベース管理システムの運用停止を回避させることができるので、データベース管理システムの運用手順を簡素化を図ることができ、運用コストを低減することができる。
【図面の簡単な説明】
【図1】 本発明にかかるデータベース管理システムDBMSを構成する各種の処理と、該処理の処理対象となるデータベースDBを構成する各種の情報ファイルとを示すブロック構成図である。
【図2】 本発明の一実施例にかかるデータベースシステムのハードウェア構成を示すブロック構成図である。
【図3】 本発明にかかるロック機構を実現するロックモードの両立性を示すマトリクス図である。
【図4】 データ処理要求の対象となるデータオブジェクト及びスキーマオブジェクトの構成の一例を示す図である。
【図5】 本発明にかかるデータベース管理システムDBMSの概略の動作を説明するためのフローチャートである。
【符号の説明】
10…サーバ、11,21,31…CPU、12,22,32…メモリ、13,23,33…ハードディスク、14,24,34…キーボード、15,25,35…ポインティングデバイス、16,26,36…ディスプレイ、20,30…端末1,端末N、40…通信ネットワーク、120…データベース管理システムDBMS、121…データベースファイルアクセス手段、122…ロックファイルアクセス手段、123…スキーマファイルアクセス手段、124…問合せ要求受信手段、125…問合せ最適化手段、126…問合せ実行手段、127…問合せ結果送信手段、128…アクセスプラン、130…データベースDB、131…データベースファイル、132…ロックファイル、133…スキーマファイル、221,321…問合せ要求入力手段、222,322…問合せ結果表示手段。
Claims (8)
- 複数のデータ情報ファイルからなるデータベースファイルと、該データ情報ファイルのそれぞれのデータ構造を定義する複数のスキーマ情報ファイルからなるスキーマファイルとを有し、前記データ情報ファイル及び前記スキーマ情報ファイルに対するデータ処理要求の競合を防止するための複数のロックモードを前記データ処理要求の種別に応じて設け、該ロックモードを前記データ情報ファイル毎及び前記スキーマ情報ファイル毎に前記データ処理要求の種別に対応して設定させることにより、前記データ情報ファイルに対する複数のデータ処理の並行動作のみならず、前記データ情報ファイルと前記スキーマ情報ファイルとに対する複数のデータ処理の並行動作及び前記スキーマ情報ファイルに対する複数のデータ処理の並行動作を可能とし、データ情報ファイルに対するアクセス要求が発生した場合、アクセス対象のデータ情報ファイルに加え、当該データ情報ファイルのデータ構造を定義しているスキーマ情報ファイルに対してもロックモードを設定することを特徴とするデータベース管理方法。
- 請求項1に記載のデータベース管理方法において、前記データ情報ファイルと前記スキーマ情報ファイルとが、それぞれ表形式のファイル形式により構成されており、前記ロックモードの設定を、前記データ情報ファイル及び前記スキーマ情報ファイルを構成するそれぞれの表単位に、前記データ処理要求の種別に対応して設定させることにより、表を構成する前記データ情報ファイルに対する複数のデータ処理の並行動作のみならず、表を構成する前記データ情報ファイルと前記スキーマ情報ファイルとに対する複数のデータ処理の並行動作及び表を構成する前記スキーマ情報ファイルに対する複数のデータ処理の並行動作を可能とすることを特徴とするデータベース管理方法。
- 請求項2に記載のデータベース管理方法において、表形式の前記データ情報ファイル及び前記スキーマ情報ファイルのそれぞれのファイルの構成要素となるデータレコードである行単位毎及びデータ属性である列単位毎に、前記ロックモードを前記データ処理要求の種別に対応して設定させることにより、前記データ情報ファイルに対する複数のデータ処理の並行動作のみならず、前記データ情報ファイルと前記スキーマ情報ファイルとに対する複数のデータ処理の並行動作及び前記スキーマ情報ファイルに対する複数のデータ処理の並行動作を可能とすることを特徴とするデータベース管理方法。
- 請求項1乃至3のいずれかに記載のデータベース管理方法において、前記データ情報ファイルが、複数の前記データ情報ファイル間の関連付けを行なう索引データを有し、前記スキーマ情報ファイルが、該索引データの索引関係を定義する索引情報を有している場合において、前記データ情報ファイル内の前記索引データ毎及び前記スキーマ情報ファイル内の前記索引情報毎に、前記ロックモードを前記データ処理要求の種別に対応して設定させることにより、前記スキーマ情報ファイル内の前記索引情報に対する1乃至複数のデータ処理と、該索引情報が定義している前記データ情報ファイル内の対応する前記索引データに対する1乃至複数のデータ処理との並行動作を可能とすることを特徴とするデータベース管理方法。
- 請求項1乃至4のいずれかに記載のデータベース管理方法において、あらかじめ定められた条件が成立した場合にあらかじめ定められたデータ処理を自動的に実行させるトリガ及びアサーション機能を有している場合に、該トリガ及びアサーション機能によるデータ処理要求に対応して、前記データ情報ファイル及び前記スキーマ情報ファイルに前記ロックモードを設定させることにより、前記トリガ及びアサーション機能に基づく前記データ情報ファイルあるいは前記スキーマ情報ファイルに対する1乃至複数のデータ処理と、前記トリガ及びアサーション機能以外の他のデータ処理要求に基づく前記データ情報ファイルあるいは前記スキーマ情報ファイルに対する1乃至複数のデータ処理との並行動作を可能とすることを特徴とするデータベース管理方法。
- 請求項1乃至5のいずれかに記載のデータベース管理方法において、前記データ情報ファイルあるいは前記スキーマ情報ファイルに設定されているロックモードの設定状況に基づいて、前記データ情報ファイルあるいは前記スキーマ情報ファイルに対するデータ処理の実行時間が最短となるように、該データ処理の実行手順を最適化させることを特徴とするデータベース管理方法。
- 複数のデータ情報ファイルからなるデータベースファイルと、該データ情報ファイルのそれぞれのデータ構造を定義する複数のスキーマ情報ファイルからなるスキーマファイルとを有するデータベース管理装置において、前記データ情報ファイル及び前記スキーマ情報ファイルに対するデータ処理要求の競合を防止するための複数のロックモードを、前記データ処理要求の種別に応じて設け、前記データ処理要求の種別に対応して設定する前記ロックモードを前記データ情報ファイル毎及び前記スキーマ情報ファイル毎に格納させているロックファイルと、前記データ情報ファイルあるいは前記スキーマ情報ファイルに対するデータ処理要求が発生する都度、前記スキーマ情報ファイルに格納されているスキーマ情報及び前記ロックファイルに格納されている前記ロックモードとを参照して、発生した前記データ処理要求の競合状態をチェックし、最適のデータ処理の実行手順を生成する問合せ最適化手段と、生成された該実行手順に従って、要求されたデータ処理を実行させるとともに、該データ処理の実行に先立って、発生した前記データ処理要求に対応する前記ロックモードを前記ロックファイルに格納させ、前記データ処理の実行が終了した時点で、前記ロックファイルに格納させた前記ロックモードを解除させる問合せ実行手段と、データ情報ファイルに対するアクセス要求が発生した場合、アクセス対象のデータ情報ファイルに加え、当該データ情報ファイルのデータ構造を定義しているスキーマ情報ファイルに対してもロックモードを設定する手段を有していることを特徴とするデータベース管理装置。
- 複数のデータ情報ファイルからなるデータベースファイルと、該データ情報ファイルのそれぞれのデータ構造を定義する複数のスキーマ情報ファイルからなるスキーマファイルとを有し、前記データ情報ファイル及び前記スキーマ情報ファイルに対するデータ処理要求の競合を防止するための複数のロックモードを前記データ処理要求の種別に応じて設け、該ロックモードを前記データ情報ファイル毎及び前記スキーマ情報ファイル毎に前記データ処理要求の種別に対応して設定させることにより、前記データ情報ファイルに対する複数のデータ処理の並行動作のみならず、前記データ情報ファイルと前記スキーマ情報ファイルとに対する複数のデータ処理の並行動作及び前記スキーマ情報ファイルに対する複数のデータ処理の並行動作を可能とし、データ情報ファイルに対するアクセス要求が発生した場合、アクセス対象のデータ情報ファイルに加え、当該データ情報ファイルのデータ構造を定義しているスキーマ情報ファイルに対してもロックモードを設定するデータベース管理方法を、コンピュータに実施させるためのプログラムとして記録させているコンピュータ読取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000348963A JP4137366B2 (ja) | 2000-11-16 | 2000-11-16 | データベース管理方法及びデータベース管理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000348963A JP4137366B2 (ja) | 2000-11-16 | 2000-11-16 | データベース管理方法及びデータベース管理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002149450A JP2002149450A (ja) | 2002-05-24 |
JP4137366B2 true JP4137366B2 (ja) | 2008-08-20 |
Family
ID=18822445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000348963A Expired - Fee Related JP4137366B2 (ja) | 2000-11-16 | 2000-11-16 | データベース管理方法及びデータベース管理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4137366B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8214330B2 (en) | 2009-02-02 | 2012-07-03 | Ricoh Company, Limited | Information processing apparatus, information processing method, and computer program product |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100437516C (zh) * | 2003-09-24 | 2008-11-26 | 索尼株式会社 | 数据库模式更新方法,通信终端装置和更新信息提供装置 |
JP2017097639A (ja) * | 2015-11-25 | 2017-06-01 | 富士通株式会社 | データベース制御プログラム、データベース制御装置及びデータベース制御方法 |
-
2000
- 2000-11-16 JP JP2000348963A patent/JP4137366B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8214330B2 (en) | 2009-02-02 | 2012-07-03 | Ricoh Company, Limited | Information processing apparatus, information processing method, and computer program product |
Also Published As
Publication number | Publication date |
---|---|
JP2002149450A (ja) | 2002-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8504523B2 (en) | Database management system | |
US20170139910A1 (en) | Versioning of database partition maps | |
US6741982B2 (en) | System and method for retrieving data from a database system | |
US6961729B1 (en) | Processing in parallel units of work that perform DML operations on the same spanning rows | |
CN111797121B (zh) | 读写分离架构业务系统的强一致性查询方法、装置及系统 | |
CN111338766A (zh) | 事务处理方法、装置、计算机设备及存储介质 | |
CN113535656B (zh) | 数据访问方法、装置、设备及存储介质 | |
US20100235348A1 (en) | Loading an index with minimal effect on availability of applications using the corresponding table | |
US9922086B1 (en) | Consistent query of local indexes | |
US7526469B2 (en) | Method and system of database management with shared area | |
JP2001051879A (ja) | 非関係データベースへの改良されたアクセスのための方法およびシステム | |
CN111159252A (zh) | 事务执行方法、装置、计算机设备及存储介质 | |
US11822540B2 (en) | Data read method and apparatus, computer device, and storage medium | |
CN111984696A (zh) | 一种新型数据库和方法 | |
CN115114374B (zh) | 事务执行方法、装置、计算设备及存储介质 | |
CN116108057B (zh) | 一种分布式数据库访问方法、装置、设备及存储介质 | |
KR20200092095A (ko) | 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법 | |
CN115114294A (zh) | 数据库存储模式的自适应方法、装置、计算机设备 | |
WO2022127866A1 (zh) | 数据处理方法、装置、电子设备、存储介质 | |
CN112632116B (zh) | 一种k-db数据库多节点集群调度的方法、系统、设备及介质 | |
JPH06314299A (ja) | データベース管理方法 | |
JP4137366B2 (ja) | データベース管理方法及びデータベース管理装置 | |
CN112000666B (zh) | 一种面向列的数据库管理系统 | |
CN114385577A (zh) | 一种分布式文件系统 | |
JP2006302307A (ja) | 記憶装置管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041208 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080212 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080331 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080527 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080604 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110613 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110613 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120613 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130613 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |