(57)【特許請求の範囲】
【請求項１】
データテーブルにおいて複数のアプリケーションプログラムのそれぞれが行う予め特定されているデータ更新処理の対象を示す１つ以上のカラムの情報に基づいて、前記複数のアプリケーションプログラムのそれぞれの全組み合わせに対して前記データテーブルにおけるデータ更新処理の対象の重複するカラムの有無を判定し、前記データテーブルにおけるデータ更新処理の対象の重複するカラムが無いと判定した前記複数のアプリケーションプログラムの組み合わせに対して前記データ更新処理に同一カラムに対するデータ更新処理が無いことを示す競合ＡＰ関係テーブルを作成するＡＰタイプ定義ファイル解析部と、
アプリケーションプログラムを実行する度に当該アプリケーションプログラムの識別子を取得し、現在実行中のアプリケーションプログラムについて過去に取得したすべての前記識別子の組み合わせと、前記ＡＰタイプ定義ファイル解析部が作成した競合ＡＰ関係テーブルが示すアプリケーションプログラムの識別子の組み合わせとを比較し、前記取得した識別子の組み合わせと前記競合ＡＰ関係テーブルが示すアプリケーションプログラムの識別子の組み合わせのすべてが一致しない場合に、前記取得した識別子の組み合わせに対応するアプリケーションプログラムの組み合わせに対して前記データ更新処理において同一カラムに対するデータ更新処理が無いと判定し、前記取得した識別子の組み合わせと前記競合ＡＰ関係テーブルが示すアプリケーションプログラムの識別子の組み合わせの少なくとも１つが一致する場合に、前記取得した識別子の組み合わせに対応するアプリケーションプログラムの組み合わせに対して前記データ更新処理において同一カラムに対するデータ更新処理が有ると判定する競合ＡＰ判定部と、
前記競合ＡＰ判定部が前記データ更新処理において同一カラムに対するデータ更新処理が無いと判定した組み合わせのアプリケーションプログラムのそれぞれのデータ更新の対象とするカラムを有するそれぞれのレコードに対するロック処理を停止し、それぞれのレコードのカラム毎に前記データ更新処理を行うトランザクション処理部と、
を備えるデータベース管理装置。
【請求項２】
前記競合ＡＰ判定部は、
前記同一カラムに対するデータ更新処理が有ると判定した場合に、前記同一カラムに対するデータ更新処理が有ると判定した組み合わせのアプリケーションプログラムのそれぞれのデータ更新の対象とするそれぞれのカラムが同一レコードのカラムであるか否かを判定し、
前記トランザクション処理部は、
前記競合ＡＰ判定部が前記同一レコードのカラムではないと判定した場合、前記同一カラムに対するデータ更新処理が無いと判定した組み合わせのアプリケーションプログラムのそれぞれのデータ更新の対象をするカラムを有するそれぞれのレコードに対するロック処理を停止し、それぞれのレコードのカラム毎に前記データ更新処理を行う、
請求項１に記載のデータベース管理装置。
【請求項３】
データベース管理装置によるデータベース管理方法であって、
前記データベース管理装置が、
データテーブルにおいて複数のアプリケーションプログラムのそれぞれが行う予め特定されているデータ更新処理の対象を示す１つ以上のカラムの情報に基づいて、前記複数のアプリケーションプログラムのそれぞれの全組み合わせに対して前記データテーブルにおけるデータ更新処理の対象の重複するカラムの有無を判定し、前記データテーブルにおけるデータ更新処理の対象の重複するカラムが無いと判定した前記複数のアプリケーションプログラムの組み合わせに対して前記データ更新処理に同一カラムに対するデータ更新処理が無いことを示す競合ＡＰ関係テーブルを作成し、
アプリケーションプログラムを実行する度に当該アプリケーションプログラムの識別子を取得し、現在実行中のアプリケーションプログラムについて過去に取得したすべての前記識別子の組み合わせと、前記競合ＡＰ関係テーブルが示すアプリケーションプログラムの識別子の組み合わせとを比較し、前記取得した識別子の組み合わせと前記競合ＡＰ関係テーブルが示すアプリケーションプログラムの識別子の組み合わせのすべてが一致しない場合に、前記取得した識別子の組み合わせに対応するアプリケーションプログラムの組み合わせに対して前記データ更新処理において同一カラムに対するデータ更新処理が無いと判定し、前記取得した識別子の組み合わせと前記競合ＡＰ関係テーブルが示すアプリケーションプログラムの識別子の組み合わせの少なくとも１つが一致する場合に、前記取得した識別子の組み合わせに対応するアプリケーションプログラムの組み合わせに対して前記データ更新処理において同一カラムに対するデータ更新処理が有ると判定し、
前記データ更新処理において同一カラムに対するデータ更新処理が無いと判定した組み合わせのアプリケーションプログラムのそれぞれのデータ更新の対象とするカラムを有するそれぞれのレコードに対するロック処理を停止し、それぞれのレコードのカラム毎に前記データ更新処理を行う、
データベース管理方法。
【請求項４】
コンピュータを、
データテーブルにおいて複数のアプリケーションプログラムのそれぞれが行う予め特定されているデータ更新処理の対象を示す１つ以上のカラムの情報に基づいて、前記複数のアプリケーションプログラムのそれぞれの全組み合わせに対して前記データテーブルにおけるデータ更新処理の対象の重複するカラムの有無を判定し、前記データテーブルにおけるデータ更新処理の対象の重複するカラムが無いと判定した前記複数のアプリケーションプログラムの組み合わせに対して前記データ更新処理に同一カラムに対するデータ更新処理が無いことを示す競合ＡＰ関係テーブルを作成するＡＰタイプ定義ファイル解析手段、
アプリケーションプログラムを実行する度に当該アプリケーションプログラムの識別子を取得し、現在実行中のアプリケーションプログラムについて過去に取得したすべての前記識別子の組み合わせと、前記ＡＰタイプ定義ファイル解析手段が作成した競合ＡＰ関係テーブルが示すアプリケーションプログラムの識別子の組み合わせとを比較し、前記取得した識別子の組み合わせと前記競合ＡＰ関係テーブルが示すアプリケーションプログラムの識別子の組み合わせのすべてが一致しない場合に、前記取得した識別子の組み合わせに対応するアプリケーションプログラムの組み合わせに対して前記データ更新処理において同一カラムに対するデータ更新処理が無いと判定し、前記取得した識別子の組み合わせと前記競合ＡＰ関係テーブルが示すアプリケーションプログラムの識別子の組み合わせの少なくとも１つが一致する場合に、前記取得した識別子の組み合わせに対応するアプリケーションプログラムの組み合わせに対して前記データ更新処理において同一カラムに対するデータ更新処理が有ると判定する競合ＡＰ判定手段、
前記競合ＡＰ判定手段が前記データ更新処理において同一カラムに対するデータ更新処理が無いと判定した組み合わせのアプリケーションプログラムのそれぞれのデータ更新の対象とするカラムを有するそれぞれのレコードに対するロック処理を停止し、それぞれのレコードのカラム毎に前記データ更新処理を行うトランザクション処理手段、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース管理装置、データベース管理方法及びプログラムに関する。
【背景技術】
【０００２】
１つのデータベースに対して複数のアプリケーションプログラムがアクセスする場合、同一データに読み書きを行う可能性がある。そのような場合、同時にデータベースを書き替えできないようにアプリケーションプログラムのアクセス順にデータベースにおけるデータをロックし、データ更新処理が終わった後にロックを解除し、次のアプリケーションプログラムがデータベースにアクセスしてデータ更新処理を行うといった方法がとられることがある。
特許文献１には、関連する技術として、各リソースへの所定のアクセス状態に応じて各トランザクションの各リソースに対する排他と待ちの状態を示すグラフからアクセスされる頻度の高いリソースを格納するサブグラフを分割し、グラフとサブグラフに基づいて排他制御するトランザクション処理に関する技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１６４１９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、１つのデータテーブルの同一レコードに対して複数のアプリケーションプログラムがデータの更新を実行しようとした場合、複数のアプリケーションプログラムのうち同一レコードに最初にアクセスしたアプリケーションプログラムが同一レコードにおける全データにロックを掛ける場合がある。ロックを掛けたアプリケーションプログラム以外のアプリケーションプログラムは、ロックを掛けられた同一レコードにおいて異なるカラムのデータのデータ更新を行いたい場合であってもデータ更新を行うことができない。
そのため、複数のアプリケーションプログラムのそれぞれが同一レコードにおける異なるカラムのデータのデータ更新を行う場合に、待ち状態にならず、アプリケーションプログラムのそれぞれが並行してデータ更新処理を行うことのできる技術が求められていた。
【０００５】
そこでこの発明は、上記の課題を解決することのできるデータベース管理装置、データベース管理方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、データテーブルにおいて複数のアプリケーションプログラムのそれぞれが行う予め特定されているデータ更新処理の対象を示す１つ以上のカラムの情報に基づいて、前記複数のアプリケーションプログラムのそれぞれの全組み合わせに対して前記データテーブルにおけるデータ更新処理の対象の重複するカラムの有無を判定し、前記データテーブルにおけるデータ更新処理の対象の重複するカラムが無いと判定した前記複数のアプリケーションプログラムの組み合わせに対して前記データ更新処理に同一カラムに対するデータ更新処理が無いことを示す競合ＡＰ関係テーブルを作成するＡＰタイプ定義ファイル解析部と、アプリケーションプログラムを実行する度に当該アプリケーションプログラムの識別子を取得し、現在実行中のアプリケーションプログラムについて過去に取得したすべての前記識別子の組み合わせと、前記ＡＰタイプ定義ファイル解析部が作成した競合ＡＰ関係テーブルが示すアプリケーションプログラムの識別子の組み合わせとを比較し、前記取得した識別子の組み合わせと前記競合ＡＰ関係テーブルが示すアプリケーションプログラムの識別子の組み合わせのすべてが一致しない場合に、前記取得した識別子の組み合わせに対応するアプリケーションプログラムの組み合わせに対して前記データ更新処理において同一カラムに対するデータ更新処理が無いと判定し、前記取得した識別子の組み合わせと前記競合ＡＰ関係テーブルが示すアプリケーションプログラムの識別子の組み合わせの少なくとも１つが一致する場合に、前記取得した識別子の組み合わせに対応するアプリケーションプログラムの組み合わせに対して前記データ更新処理において同一カラムに対するデータ更新処理が有ると判定する競合ＡＰ判定部と、前記競合ＡＰ判定部が前記データ更新処理において同一カラムに対するデータ更新処理が無いと判定した組み合わせのアプリケーションプログラムのそれぞれのデータ更新の対象とするカラムを有するそれぞれのレコードに対するロック処理を停止し、それぞれのレコードのカラム毎に前記データ更新処理を行うトランザクション処理部と、を備えるデータベース管理装置である。
【０００７】
また、本発明は、上述のデータベース管理装置と、前記データベース管理装置に対して、データテーブルのデータ更新を行うように求めるデータ更新要求と、アプリケーションプログラムの識別子とを前記データベース管理装置に送信するクライアントＡＰ制御装置と、を備えるデータベース管理システムである。
【０００８】
また、本発明は、データベース管理装置によるデータベース管理方法であって、前記データベース管理装置が、データテーブルにおいて複数のアプリケーションプログラムのそれぞれが行う予め特定されているデータ更新処理の対象を示す１つ以上のカラムの情報に基づいて、前記複数のアプリケーションプログラムのそれぞれの全組み合わせに対して前記データテーブルにおけるデータ更新処理の対象の重複するカラムの有無を判定し、前記データテーブルにおけるデータ更新処理の対象の重複するカラムが無いと判定した前記複数のアプリケーションプログラムの組み合わせに対して前記データ更新処理に同一カラムに対するデータ更新処理が無いことを示す競合ＡＰ関係テーブルを作成し、アプリケーションプログラムを実行する度に当該アプリケーションプログラムの識別子を取得し、現在実行中のアプリケーションプログラムについて過去に取得したすべての前記識別子の組み合わせと、前記競合ＡＰ関係テーブルが示すアプリケーションプログラムの識別子の組み合わせとを比較し、前記取得した識別子の組み合わせと前記競合ＡＰ関係テーブルが示すアプリケーションプログラムの識別子の組み合わせのすべてが一致しない場合に、前記取得した識別子の組み合わせに対応するアプリケーションプログラムの組み合わせに対して前記データ更新処理において同一カラムに対するデータ更新処理が無いと判定し、前記取得した識別子の組み合わせと前記競合ＡＰ関係テーブルが示すアプリケーションプログラムの識別子の組み合わせの少なくとも１つが一致する場合に、前記取得した識別子の組み合わせに対応するアプリケーションプログラムの組み合わせに対して前記データ更新処理において同一カラムに対するデータ更新処理が有ると判定し、前記データ更新処理において同一カラムに対するデータ更新処理が無いと判定した組み合わせのアプリケーションプログラムのそれぞれのデータ更新の対象とするカラムを有するそれぞれのレコードに対するロック処理を停止し、それぞれのレコードのカラム毎に前記データ更新処理を行う、データベース管理方法である。
【０００９】
また、本発明は、コンピュータを、データテーブルにおいて複数のアプリケーションプログラムのそれぞれが行う予め特定されているデータ更新処理の対象を示す１つ以上のカラムの情報に基づいて、前記複数のアプリケーションプログラムのそれぞれの全組み合わせに対して前記データテーブルにおけるデータ更新処理の対象の重複するカラムの有無を判定し、前記データテーブルにおけるデータ更新処理の対象の重複するカラムが無いと判定した前記複数のアプリケーションプログラムの組み合わせに対して前記データ更新処理に同一カラムに対するデータ更新処理が無いことを示す競合ＡＰ関係テーブルを作成するＡＰタイプ定義ファイル解析手段、アプリケーションプログラムを実行する度に当該アプリケーションプログラムの識別子を取得し、現在実行中のアプリケーションプログラムについて過去に取得したすべての前記識別子の組み合わせと、前記ＡＰタイプ定義ファイル解析手段が作成した競合ＡＰ関係テーブルが示すアプリケーションプログラムの識別子の組み合わせとを比較し、前記取得した識別子の組み合わせと前記競合ＡＰ関係テーブルが示すアプリケーションプログラムの識別子の組み合わせのすべてが一致しない場合に、前記取得した識別子の組み合わせに対応するアプリケーションプログラムの組み合わせに対して前記データ更新処理において同一カラムに対するデータ更新処理が無いと判定し、前記取得した識別子の組み合わせと前記競合ＡＰ関係テーブルが示すアプリケーションプログラムの識別子の組み合わせの少なくとも１つが一致する場合に、前記取得した識別子の組み合わせに対応するアプリケーションプログラムの組み合わせに対して前記データ更新処理において同一カラムに対するデータ更新処理が有ると判定する競合ＡＰ判定手段、前記競合ＡＰ判定手段が前記データ更新処理において同一カラムに対するデータ更新処理が無いと判定した組み合わせのアプリケーションプログラムのそれぞれのデータ更新の対象とするカラムを有するそれぞれのレコードに対するロック処理を停止し、それぞれのレコードのカラム毎に前記データ更新処理を行うトランザクション処理手段、として機能させるプログラムである。
【発明の効果】
【００１０】
本発明のデータベース管理装置の処理により、複数のアプリケーションプログラムのそれぞれが同一レコードにおける異なるカラムのデータのデータ更新を行う場合に、待ち状態にならず、アプリケーションプログラムのそれぞれが並行してデータ更新処理を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態によるデータベース管理システムの構成を示す図である。
【図２】本実施形態によるユーザデータテーブルを示す図である。
【図３】本実施形態によるＡＰタイプ定義ファイルを示す図である。
【図４】本実施形態によるＡＰタイプ宣言ファイルを示す図である。
【図５】本実施形態による競合ＡＰ依存データテーブルを示す図である。
【図６】本実施形態によるロックリストを示す図である。
【図７】本実施形態によるロック待ちリストを示す図である。
【図８】本実施形態によるコミット可能リストを示す図である。
【図９】本実施形態による従属関係定義リストを示す図である。
【図１０】本実施形態によるデータベース管理装置の処理フローを示す第１の図である。
【図１１】本実施形態によるデータベース管理装置の処理フローを示す第２の図である。
【図１２】本発明のデータベース管理装置の最小構成を示す図である。
【発明を実施するための形態】
【００１２】
＜実施形態＞
本発明の一実施形態によるデータベース管理システムについて説明する。
本実施形態によるデータベース管理システム１は、図１に示すように、クライアントＡＰ（アプリケーションプログラム）制御装置１００と、ＡＰタイプ宣言ファイル記憶部１２０と、データベース管理装置２００と、ＡＰタイプ定義ファイル記憶部２４０と、を備える。
【００１３】
クライアントＡＰ制御装置１００は、ＡＰタイプ宣言ファイル読込部１１０を備える。
データベース管理装置２００は、トランザクション制御部２１０と、ユーザデータテーブル記憶部２２０と、ＡＰタイプ定義ファイル解析部２３０と、を備える。
トランザクション制御部２１０は、排他制御処理部２１１と、トランザクション処理部２１２と、競合ＡＰ依存データテーブル記憶部２１３と、制御表記憶部２１４と、を備える。
排他制御処理部２１１は、競合ＡＰ判定部２１１１を備える。
【００１４】
ユーザデータテーブル記憶部２２０は、ユーザデータテーブルＴＢＬ１を記憶する。ユーザデータテーブルＴＢＬ１は、データの更新対象となるデータテーブルである。ユーザデータテーブルＴＢＬ１は、例えば、図２に示すように、商品ＩＤ、商品名、定価、予約者ＩＤ（ＩＤｅｎｔｉｆｉｃａｔｉｏｎ）、販売数量、及び、販売単価を含む。なお、データテーブルにおいて、行はレコードと呼ばれ、列はカラムと呼ばれる。図２に示すユーザデータテーブルＴＢＬ１において、商品ＩＤ００１に対応する行がレコード１である。また、商品ＩＤ００２に対応する行がレコード２である。また、商品ＩＤに対応する列がカラム１、商品名に対応する列がカラム２、定価に対応する列がカラム３、予約者ＩＤに対応する列がカラム４、販売数量に対応する列がカラム５、販売単価に対応する列がカラム６である。
【００１５】
ＡＰタイプ定義ファイル記憶部２４０は、ＡＰタイプ定義ファイルＦＬ１を記憶する。ＡＰタイプ定義ファイルＦＬ１は、ＡＰタイプのそれぞれがどの業務を行うアプリケーションプログラムであり、どのユーザデータテーブルのどのカラムのデータを更新するかを示すファイルである。ＡＰタイプ定義ファイルＦＬ１は、例えば、図３に示すように、ＡＰタイプ、アプリケーションプログラム、業務、ユーザデータテーブル、及び、カラムのそれぞれの対応関係を示す。図３に示すＡＰタイプ定義ファイルＦＬ１は、ＡＰタイプＡが業務Ａを行うアプリケーションプログラムＡであり、ユーザデータテーブルＴＢＬ１におけるカラム２とカラム３のデータを更新することを示している。また、ＡＰタイプ定義ファイルＦＬ１は、ＡＰタイプＢが業務Ｂを行うアプリケーションプログラムＢであり、ユーザデータテーブルＴＢＬ１におけるカラム３のデータを更新することを示している。また、ＡＰタイプ定義ファイルＦＬ１は、ＡＰタイプＣが業務Ｃを行うアプリケーションプログラムＣであり、ユーザデータテーブルＴＢＬ１におけるカラム４、カラム５、カラム６のデータを更新することを示している。また、ＡＰタイプ定義ファイルＦＬ１は、ＡＰタイプＤが業務Ｄを行うアプリケーションプログラムＤであり、ユーザデータテーブルＴＢＬ１におけるカラム２のデータを更新することを示している。
【００１６】
ＡＰタイプ宣言ファイル記憶部１２０は、ＡＰタイプ宣言ファイルＦＬ２を記憶する。ＡＰタイプ宣言ファイルＦＬ２は、クライアントＡＰ制御装置１００（１００ａ、１００ｂ、・・・）のそれぞれがどのＡＰタイプであるか、すなわち、クライアントＡＰ制御装置１００のそれぞれがどの業務を行うアプリケーションプログラムであり、ユーザデータテーブルＴＢＬ１のどのカラムのデータを更新するかを示すファイルである。図４に示すＡＰタイプ宣言ファイルＦＬ２は、クライアントＡＰ制御装置１００ａがＡＰタイプＡであることを示している。また、ＡＰタイプ宣言ファイルＦＬ２は、クライアントＡＰ制御装置１００ｂがＡＰタイプＢであることを示している。また、ＡＰタイプ宣言ファイルＦＬ２は、クライアントＡＰ制御装置１００ｃがＡＰタイプＣであることを示している。また、ＡＰタイプ宣言ファイルＦＬ２は、クライアントＡＰ制御装置１００ｄがＡＰタイプＤであることを示している。なお、ＡＰタイプ宣言ファイルＦＬ２は、ユーザが作成するファイルである。
【００１７】
競合ＡＰ依存データテーブル記憶部２１３は、ＡＰタイプ定義ファイル解析部２３０が作成した競合ＡＰ依存データテーブルＴＢＬ２を記憶する。
ＡＰタイプ定義ファイル解析部２３０は、ユーザデータテーブルＴＢＬ１において複数のアプリケーションプログラムのそれぞれが行う予め特定されているデータ更新処理の対象を示す１つ以上のカラムの情報に基づいて、複数のアプリケーションプログラムのそれぞれの全組み合わせに対してユーザデータテーブルＴＢＬ１におけるデータ更新処理の対象の重複するカラムの有無を判定する。ＡＰタイプ定義ファイル解析部２３０は、ユーザデータテーブルＴＢＬ１におけるデータ更新処理の対象の重複するカラムが無いと判定した複数のアプリケーションプログラムの組み合わせに対してデータ更新処理に同一カラムに対するデータ更新処理が無いことを示す競合ＡＰ関係データテーブルＴＢＬ２（競合ＡＰ関係テーブル）を作成する。
具体的には、ＡＰタイプ定義ファイル解析部２３０は、ＡＰタイプ定義ファイル記憶部２４０からＡＰタイプ定義ファイルＦＬ１を読み出す。ＡＰタイプ定義ファイル解析部２３０は、読み出したＡＰタイプ定義ファイルＦＬ１におけるＡＰタイプのそれぞれに対応するユーザデータテーブルＴＢＬ１におけるデータ更新処理の対象のカラム同士を比較し、同一のカラムを特定する。例えば、図３で示したＡＰタイプ定義ファイルＦＬ１の場合、ＡＰタイプ定義ファイル解析部２３０は、ＡＰタイプＡに対応するカラム２とカラム３、ＡＰタイプＢに対応するカラム３、ＡＰタイプＣに対応するカラム４とカラム５とカラム６、ＡＰタイプＤに対応するカラム２のそれぞれを比較する。ＡＰタイプ定義ファイル解析部２３０は、ＡＰタイプＡに対応するカラム２とＡＰタイプＤに対応するカラム２とを同一のカラムと特定する。また、ＡＰタイプ定義ファイル解析部２３０は、ＡＰタイプＡに対応するカラム３とＡＰタイプＢに対応するカラム３とを同一のカラムと特定する。
ＡＰタイプ定義ファイル解析部２３０は、特定したカラム２に対応するＡＰタイプＡとＡＰタイプＤとを対応付けて競合ＡＰ依存データテーブル記憶部２１３の競合ＡＰ依存データテーブルＴＢＬ２に記録する。また、ＡＰタイプ定義ファイル解析部２３０は、特定したカラム３に対応するＡＰタイプＡとＡＰタイプＢとを対応付けて競合ＡＰ依存データテーブル記憶部２１３の競合ＡＰ依存データテーブルＴＢＬ２に記録する。この場合の競合ＡＰ依存データテーブルＴＢＬ２は、図５に示す競合ＡＰ依存データテーブルＴＢＬ２である。
【００１８】
クライアントＡＰ制御装置１００は、更新データ、ＡＰタイプ（アプリケーションプログラムの識別子）、ＡＰ識別子（クライアントＡＰ制御装置１００の識別子）のそれぞれの情報を保持する。
ＡＰタイプ宣言ファイル読込部１１０は、データベース管理システム１の起動時に、ＡＰタイプ宣言ファイル記憶部１２０からＡＰタイプ宣言ファイルＦＬ２を読み出す。
クライアントＡＰ制御装置１００は、ユーザデータテーブルＴＢＬ１のデータ更新処理の実行を指示するデータ更新要求を排他制御処理部２１１とトランザクション処理部２１２のそれぞれに送信する。データテーブルのデータ更新要求は、更新データ、ＡＰタイプ、ＡＰ識別子のそれぞれの情報を含む。ＡＰ識別子は、データテーブルのデータ更新要求元を特定する情報である。データテーブルのデータ更新要求元が特定のクライアントＡＰ制御装置１００、すなわち、特定の１ノードのみである場合、ＡＰ識別子としてプロセスＩＤ（必要であればスレッドＩＤを含める）を用いてよい。
【００１９】
排他制御処理部２１１が備える競合ＡＰ判定部２１１１は、アプリケーションプログラムを実行する度にＡＰタイプを取得する。競合ＡＰ判定部２１１１は、現在実行中のアプリケーションプログラムについて過去に取得したすべてのＡＰタイプの組み合わせと、ＡＰタイプ定義ファイル解析部２３０が作成した競合ＡＰ関係データテーブルＴＢＬ２が示すＡＰタイプの組み合わせとを比較する。競合ＡＰ判定部２１１１は、ＡＰタイプの組み合わせが一致しない場合に、取得したＡＰタイプの組み合わせに対応するアプリケーションプログラムの組み合わせに対してデータ更新処理において同一カラムに対するデータ更新処理が無いと判定する。例えば、競合ＡＰ判定部２１１１は、図５で示した競合ＡＰ関係データテーブルＴＢＬ２の場合、ＡＰタイプＡとＡＰタイプＣの組み合わせは競合ＡＰ関係データテーブルＴＢＬ２におけるＡＰタイプの組み合わせと一致しないためデータ更新処理が無いと判定する。競合ＡＰ判定部２１１１は、ＡＰタイプの組み合わせが一致する場合に、取得したＡＰタイプの組み合わせに対応するアプリケーションプログラムの組み合わせに対してデータ更新処理において同一カラムに対するデータ更新処理が有ると判定する。例えば、競合ＡＰ判定部２１１１は、図５で示した競合ＡＰ関係データテーブルＴＢＬ２の場合、ＡＰタイプＡとＡＰタイプＢの組み合わせは競合ＡＰ関係データテーブルＴＢＬ２におけるＡＰタイプの組み合わせと一致するためデータ更新処理が有ると判定する。競合ＡＰ判定部２１１１は、同一カラムに対するデータ更新処理が有ると判定した場合に、同一カラムに対するデータ更新処理が有ると判定した組み合わせのアプリケーションプログラムのそれぞれのデータ更新の対象とするそれぞれのカラムが同一レコードのカラムであるか否かを判定する。
【００２０】
トランザクション処理部２１２は、競合ＡＰ判定部２１１１がデータ更新処理において同一カラムに対するデータ更新処理が無いと判定した組み合わせのアプリケーションプログラムのそれぞれのデータ更新の対象とするカラムを有するそれぞれのレコードに対するロック処理を停止し、それぞれのレコードのカラム毎にデータ更新処理を行う。
【００２１】
また、トランザクション処理部２１２は、競合ＡＰ判定部２１１１が同一レコードのカラムではないと判定した場合、同一カラムに対するデータ更新処理が無いと判定した組み合わせのアプリケーションプログラムのそれぞれのデータ更新の対象をするカラムを有するそれぞれのレコードに対するロック処理を停止し、それぞれのレコードのカラム毎にデータ更新処理を行う。
【００２２】
また、トランザクション処理部２１２は、ユーザデータテーブルＴＢＬ１におけるカラムに対するデータ更新処理のデータ更新処理内容を更新する指示を取得した場合に、データ更新処理内容をユーザデータテーブルＴＢＬ１とは別の記憶領域に記録し、データ更新処理内容の更新に失敗した場合に、ユーザデータテーブルＴＢＬ１とは別の記憶領域に記録したデータ更新処理内容を読み出し、読み出したデータ更新処理内容が示す状態を再現する。
【００２３】
また、トランザクション処理部２１２は、競合ＡＰ判定部２１１１が同一カラムに対するデータ更新処理が無いと判定した場合、同一カラムに対するデータ更新処理が無いと判定した組み合わせのアプリケーションプログラムのそれぞれをデータ更新処理内容の更新可能リストに追加する。
【００２４】
制御表記憶部２１４は、ロックリストＬＳＴ１を記憶する。ロックリストＬＳＴ１は、データ更新処理を行っているクライアントＡＰ制御装置１００と、クライアントＡＰ制御装置１００が実行しているアプリケーションプログラムがロックの対象とするＡＰタイプとが対応付けられたリストである。例えば、ＡＰタイプ定義ファイルＦＬ１が図３で示したＡＰタイプ定義ファイルＦＬ１であり、ＡＰタイプ宣言ファイルＦＬ２が図４で示したＡＰタイプ宣言ファイルＦＬ２であるとする。また、クライアントＡＰ制御装置１００ａ、１００ｂ、１００ｃ、１００ｄの順番でアプリケーションプログラムを実行するものとする。この場合、アプリケーションプログラムＡを実行しようとするクライアントＡＰ制御装置１００ａがＡＰタイプＡであるため、ロックリストＬＳＴ１は、アプリケーションプログラムＡを実行しようとするクライアントＡＰ制御装置１００ａと、図５で示した競合ＡＰ依存データテーブルＴＢＬ２の競合ＡＰタイプの組み合わせにおいてアプリケーションプログラムＡに対応するＡＰタイプＡと組み合わされているＡＰタイプＢとＡＰタイプＤのそれぞれとが対応付けられた図６に示すロックリストＬＳＴ１となる。
ロックリストＬＳＴ１が図６に示すロックリストＬＳＴ１であるとき、クライアントＡＰ制御装置１００ｂがアプリケーションプログラムＢを実行しようとすると、競合ＡＰ判定部２１１１は、クライアントＡＰ制御装置１００ａが実行するアプリケーションプログラムＡと、クライアントＡＰ制御装置１００ｂが実行するアプリケーションプログラムＢのデータ更新の対象とするレコードが同一レコードであるか否かを判定する。トランザクション処理部２１２は、競合ＡＰ判定部２１１１が同一レコードではないと判定した場合、それぞれのレコードに対するロック処理を停止し、それぞれのレコードのカラム毎にデータ更新処理を行う。
【００２５】
また、制御表記憶部２１４は、ロック待ちリストＬＳＴ２を記憶する。ロック待ちリストＬＳＴ２は、クライアントＡＰ制御装置１００にロックを掛けているアプリケーションプログラムによるデータ更新処理が完了する、すなわち、ロックが解除されるのを待っているクライアントＡＰ制御装置１００と、クライアントＡＰ制御装置１００のＡＰタイプとが対応付けられたリストである。
ロックリストＬＳＴ１が図６に示すロックリストＬＳＴ１であるとき、クライアントＡＰ制御装置１００ｂがアプリケーションプログラムＢを実行しようとすると、競合ＡＰ判定部２１１１は、クライアントＡＰ制御装置１００ａが実行するアプリケーションプログラムＡと、クライアントＡＰ制御装置１００ｂが実行するアプリケーションプログラムＢのデータ更新の対象とするレコードが同一レコードであるか否かを判定する。競合ＡＰ判定部２１１１は、同一レコードであると判定した場合、後からアプリケーションプログラムを実行しようとしたクライアントＡＰ制御装置１００ｂと、クライアントＡＰ制御装置１００ｂのＡＰタイプＢとを対応付けて制御表記憶部２１４が記憶するロック待ちリストＬＳＴ２に記録する。この場合のロック待ちリストＬＳＴ２は、図７に示すロック待ちリストＬＳＴ２となる。
【００２６】
また、制御表記憶部２１４は、コミット可能リストＬＳＴ３を記憶する。コミット可能リストＬＳＴ３は、データ更新処理を正常に終了し、データ更新処理の結果を確定させるクライアントＡＰ制御装置１００と、クライアントＡＰ制御装置１００のＡＰタイプとが対応付けられたリストである。例えば、クライアントＡＰ制御装置１００ａが、アプリケーションプログラムＡを実行し、カラム２とカラム３のデータ更新処理を正常に終了し、データ更新処理の結果を確定させる。この場合のコミット可能リストＬＳＴ３は、図８に示すコミット可能リストＬＳＴ３となる。
【００２７】
また、制御表記憶部２１４は、従属関係定義リストＬＳＴ４を記憶する。従属関係定義リストＬＳＴ４は、同一レコードの異なるカラムのデータが互いに影響し合うことを示すリストである。例えば、図２で示したユーザデータテーブルＴＢＬ１において、同一レコードの異なるカラムとしてカラム３の「定価」とカラム６の「販売単価」とがあり、「販売単価」が「定価」から１割引した価格として算出されるような、あるデータのデータ更新処理が同一レコードの異なるカラムのデータを用いる場合が同一レコードの異なるカラムのデータが互いに影響し合う場合である。
【００２８】
また、制御表記憶部２１４は、復元データＤＴ１を記憶する。復元データＤＴ１は、例えば、データベース管理装置２００がロールバックしたときの復元点のデータである。なお、ロールバックとは、データベース管理装置２００がデータ更新処理の結果を確定する前にデータ更新処理を異常終了した場合に、異常終了よりも前の状態のデータに戻す処理のことである。
【００２９】
次に、図１０と図１１に示すデータベース管理装置２００の処理フローについて説明する。
データベース管理システム１の起動前の準備として、ユーザは、例えば図２で示したユーザデータテーブルＴＢＬ１を用意する。また、ユーザは、ＡＰタイプ定義ファイル記憶部２４０記憶する図３で示したＡＰタイプ定義ファイルＦＬ１を定義する。また、ユーザは、図９で示した制御表記憶部２１４が記憶する従属関係定義リストＬＳＴ４を用意する。
【００３０】
ＡＰタイプ定義ファイル解析部２３０は、データベース管理システム１の起動時に、ＡＰタイプ定義ファイル記憶部２４０からＡＰタイプ定義ファイルＦＬ１を読み出す。ＡＰタイプ定義ファイル解析部２３０は、ユーザデータテーブルＴＢＬ１に対して図４で示した競合ＡＰ依存データテーブルＴＢＬ２を生成する。ＡＰタイプ定義ファイル解析部２３０は、すべてのアプリケーションプログラム間のＡＰタイプの組み合わせに対して重複するカラムが有るか否かを判定し、重複するカラムが有ると判定したＡＰタイプの組み合わせに対して、競合ＡＰ依存データテーブルＴＢＬ２を生成する。
【００３１】
クライアントＡＰ制御装置１００は、データベース管理システム１の起動時にＡＰタイプ宣言ファイル記憶部１２０からＡＰタイプ宣言ファイルＦＬ２を読み出す。クライアントＡＰ制御装置１００は、読み出したＡＰタイプ宣言ファイルＦＬ２が示すＡＰタイプを特定する。クライアントＡＰ制御装置１００は、ユーザデータテーブルＴＢＬ１におけるデータ更新処理を指示するデータ更新要求をトランザクション処理部２１２と排他制御処理部２１１とに送信する。データ更新要求は、更新データ、ＡＰタイプ、ＡＰ識別子のそれぞれの情報を含む。
例えば、クライアントＡＰ制御装置１００ａは、予約者ＩＤがｕｓｅｒ２であるユーザが商品ＩＤ００１の商品を２つ購入予約する注文を受け、更新データと、ユーザデータテーブルＴＢＬ１を更新するＡＰタイプＡと、クライアントＡＰ制御装置１００ａが実行しているクライアントＡＰ制御装置１００ａに対応付けられたＡＰタイプＡとを含むデータ更新要求を排他制御処理部２１１とトランザクション処理部２１２とに送信する。
【００３２】
競合ＡＰ判定部２１１１は、データベース管理装置２００がロールバックしたときの復元点のデータとしてデータ更新処理前のユーザデータテーブルＴＢＬ１のデータを復元データＤＴ１として、ユーザデータテーブルＴＢＬ１とは別の記憶領域に記録する（ステップＳ１）。
競合ＡＰ判定部２１１１は、クライアントＡＰ制御装置１００からデータ更新要求を受信すると、受信したデータ更新要求が示すＡＰタイプと、競合ＡＰ依存データテーブルＴＢＬ２とに基づいて、同一カラムに対するデータ更新処理があるか否かを判定する（ステップＳ２）。具体的には、競合ＡＰ判定部２１１１は、アプリケーションプログラムを実行する度にＡＰタイプを取得する。競合ＡＰ判定部２１１１は、現在実行中のアプリケーションプログラムについて過去に取得したすべてのＡＰタイプの組み合わせと、ＡＰタイプ定義ファイル解析部２３０が作成した競合ＡＰ関係データテーブルＴＢＬ２が示すＡＰタイプの組み合わせとを比較する。競合ＡＰ判定部２１１１は、ＡＰタイプの組み合わせが一致しない場合に、取得したＡＰタイプの組み合わせに対応するアプリケーションプログラムの組み合わせに対してデータ更新処理において同一カラムに対するデータ更新処理が無いと判定する。競合ＡＰ判定部２１１１は、ＡＰタイプの組み合わせが一致する場合に、取得したＡＰタイプの組み合わせに対応するアプリケーションプログラムの組み合わせに対してデータ更新処理において同一カラムに対するデータ更新処理が有ると判定する。競合ＡＰ判定部２１１１は、同一カラムに対するデータ更新処理が有ると判定した場合に、同一カラムに対するデータ更新処理が有ると判定した組み合わせのアプリケーションプログラムのそれぞれのデータ更新の対象とするそれぞれのカラムが同一レコードのカラムであるか否かを判定する。
【００３３】
競合ＡＰ判定部２１１１は、同一カラムに対するデータ更新処理が無いと判定した場合（ステップＳ２、ＮＯ）、複数のアプリケーションプログラムのデータ更新処理対象のデータに従属関係が有るか否かを判定する（ステップＳ３）。具体的には、競合ＡＰ判定部２１１１は、複数のアプリケーションプログラムのそれぞれのＡＰタイプの組み合わせと、従属関係定義リストＬＡＳＴ４が示すＡＰタイプの組み合わせとを比較する。競合ＡＰ判定部２１１１は、比較した結果、ＡＰタイプの組み合わせが一致した場合に、データ更新処理対処のデータに従属関係があると判定する。
【００３４】
競合ＡＰ判定部２１１１は、データ処理対象のデータに従属関係が無いと判定した場合（ステップＳ３、ＮＯ）、ＡＰタイプとクライアントＡＰ制御装置１００のＡＰ識別子（例えば、ＡＰタイプＡとクライアントＡＰ制御装置１００ａ）とをコミット可能リストＬＳＴ３に記録する（ステップＳ４）。
競合ＡＰ判定部２１１１は、ＡＰタイプとクライアントＡＰ制御装置１００のＡＰ識別子と処理データとをトランザクション処理部２１２に出力する。
トランザクション処理部２１２は、ＡＰタイプとクライアントＡＰ制御装置１００のＡＰ識別子と処理データとを競合ＡＰ判定部２１１１から入力する。トランザクション処理部２１２は、入力したＡＰタイプとクライアントＡＰ制御装置１００のＡＰ識別子とから特定したデータ更新処理の対象データに対して処理データを用いてデータ更新処理を実行する（ステップＳ５）。トランザクション処理部２１２は、データ更新処理が完了すると、データ更新処理が完了したことを報知するデータ更新処理完了信号を排他制御処理部２１１に出力する。
排他制御処理部２１１は、トランザクション処理部２１２からデータ更新処理完了信号を入力すると、データ更新処理完了信号をクライアントＡＰ制御装置１００に送信する（ステップＳ６）。
【００３５】
また、競合ＡＰ判定部２１１１は、データ処理対象のデータが従属関係に有ると判定した場合（ステップＳ３、ＹＥＳ）、ユーザデータテーブルＴＢＬ１において従属関係に有ると判定したデータのデータ更新処理前のデータを、例えば、制御表記憶部２１４に記録する（ステップＳ７）。
【００３６】
また、競合ＡＰ判定部２１１１は、同一カラムに対するデータ更新処理が有ると判定した場合（ステップＳ２、ＹＥＳ）、同一カラムに対するデータ更新処理が有ると判定した組み合わせのアプリケーションプログラムのそれぞれのデータ更新の対象とするそれぞれのカラムが同一レコードのカラムであるか否かを判定する（ステップＳ８）。
【００３７】
競合ＡＰ判定部２１１１は、同一レコードのカラムであると判定した場合（ステップＳ８、ＹＥＳ）、先にデータ更新処理を行うクライアントＡＰ制御装置１００とそのＡＰタイプとをロックリストＬＳＴ１に記録し、後にデータ更新処理を行うクライアントＡＰ制御装置１００とそのＡＰタイプとをロック待ちリストＬＳＴ２に記録する（ステップＳ９）。
トランザクション処理部２１２は、ロックリストＬＳＴ１における先にデータ更新処理を行うクライアントＡＰ制御装置１００に対しデータ更新処理を行う（ステップＳ１０）。トランザクション処理部２１２は、ステップＳ６の処理に進める。このとき、競合ＡＰ判定部２１１１は、ロック待ちリストＬＳＴ２において最初にデータ更新処理を行うクライアントＡＰ制御装置１００とそのＡＰタイプとをロックリストＬＳＴ１に記録する。
【００３８】
競合ＡＰ判定部２１１１が同一レコードのカラムではないと判定した場合（ステップＳ８、ＮＯ）、トランザクション処理部２１２は、データ更新の対象をするカラムを有するそれぞれのレコードに対するロック処理を停止し、それぞれのレコードのカラム毎にデータ更新処理を行う（ステップＳ１１）。トランザクション処理部２１２は、ステップＳ６の処理に進める。
【００３９】
ステップＳ６の処理が行われると、クライアントＡＰ制御装置１００は、排他制御処理部２１１から排他制御処理完了信号を受信する。なお、排他制御処理完了信号は、競合関係があるか否か、すなわち、対応する処理がコミット可能リストＬＳＴ３に記録されているか、対応する処理がロックリストＬＳＴ１に記録されているかの情報を含む。
【００４０】
クライアントＡＰ制御装置１００は、排他制御処理部２１１から排他制御処理完了信号を受信すると、トランザクションの制御を指示するトランザクション制御要求をトランザクション処理部２１２に送信する。トランザクション制御要求は、コミットまたはアボートを示す情報である。
【００４１】
トランザクション処理部２１２は、クライアントＡＰ制御装置１００からトランザクション制御要求を受信すると、受信したトランザクション制御要求に含まれるクライアントＡＰ制御装置１００のＡＰ識別子を用いて、制御表記憶部２１４が記憶する全コミット可能リストＬＳＴ３に対してクライアントＡＰの更新データを検索する（ステップＳ１２）。
【００４２】
トランザクション処理部２１２は、トランザクション制御要求の種別がコミットであるか否かを判定する（ステップＳ１３）。なお、トランザクション処理部２１２は、トランザクション制御要求の種別がコミットでないと判定した場合、トランザクション制御要求の種別がアボート、すなわち、データ更新処理結果の確定に失敗したと判定したことになる。
トランザクション処理部２１２は、トランザクション制御要求の種別がコミットであると判定した場合（ステップＳ１３、ＹＥＳ）、ユーザデータテーブル記憶部２２０が記憶するユーザデータテーブルＴＢＬ１が含むデータ更新対象のデータをコミットする（ステップＳ１４）。このとき、トランザクション処理部２１２は、データ更新対象のデータがステップＳ３の処理において従属関係が有ると判定されたデータである場合、ステップＳ７の処理において記憶されたデータ更新処理前のデータをユーザデータテーブル記憶部２２０が記憶するユーザデータテーブルＴＢＬ１に新たなデータとして記録する。
トランザクション処理部２１２は、コミット後にコミット可能リストＬＳＴ３における対応する処理の更新データを削除する（ステップＳ１５）。トランザクション処理部２１２は、データベース管理装置２００が行う一連の処理を終了させる。
【００４３】
トランザクション処理部２１２は、トランザクション制御要求の種別がコミットではないと判定した場合（ステップＳ１３、ＮＯ）、ロールバックを行う（ステップＳ１６）。具体的には、トランザクション処理部２１２は、ステップＳ１の処理により制御表記憶部２１４に記録した復元データＤＴ１を読み出す。
トランザクション処理部２１２は、読み出した復元データＤＴ１を用いてコミットする（ステップＳ１７）。
トランザクション処理部２１２は、コミットできたか否かを判定する（ステップＳ１８）。
【００４４】
トランザクション処理部２１２は、コミットできたと判定した場合（ステップＳ１８、ＹＥＳ）、ステップＳ１５の処理へ進める。
また、トランザクション処理部２１２は、コミットできなかったと判定した場合（ステップＳ１８、ＮＯ）、ステップＳ１６の処理へ戻す。
【００４５】
以上、本発明の第一の実施形態によるデータベース管理システム１について説明した。上述のデータベース管理システム１が備えるデータベース管理装置２００において、ＡＰタイプ定義ファイル解析部２３０は、ユーザデータテーブルＴＢＬ１において複数のアプリケーションプログラムのそれぞれが行う予め特定されているデータ更新処理の対象を示す１つ以上のカラムの情報に基づいて、複数のアプリケーションプログラムのそれぞれの全組み合わせに対してユーザデータテーブルＴＢＬ１におけるデータ更新処理の対象の重複するカラムの有無を判定する。ＡＰタイプ定義ファイル解析部２３０は、ユーザデータテーブルＴＢＬ１におけるデータ更新処理の対象の重複するカラムが無いと判定した複数のアプリケーションプログラムの組み合わせに対してデータ更新処理に同一カラムに対するデータ更新処理が無いことを示す競合ＡＰ関係データテーブルＴＢＬ２（競合ＡＰ関係テーブル）を作成する。競合ＡＰ判定部２１１１は、現在実行中のアプリケーションプログラムについて過去に取得したすべてのＡＰタイプの組み合わせと、ＡＰタイプ定義ファイル解析部２３０が作成した競合ＡＰ関係データテーブルＴＢＬ２が示すＡＰタイプの組み合わせとを比較する。競合ＡＰ判定部２１１１は、ＡＰタイプの組み合わせが一致しない場合に、取得したＡＰタイプの組み合わせに対応するアプリケーションプログラムの組み合わせに対してデータ更新処理において同一カラムに対するデータ更新処理が無いと判定する。トランザクション処理部２１２は、競合ＡＰ判定部２１１１が同一レコードではないと判定した場合、それぞれのレコードに対するロック処理を停止し、それぞれのレコードのカラム毎にデータ更新処理を行う。
こうすることで、データベース管理装置２００は、ユーザデータテーブルＴＢＬ１においてアプリケーションプログラムのそれぞれがデータ更新の対象とするカラムが重複しない場合に、待ち状態にならずにユーザデータテーブルＴＢＬ１においてそれぞれのアプリケーションプログラムに対応するカラム単位でデータ更新処理を行うことができる。
【００４６】
また、競合ＡＰ判定部２１１１は、データ処理対象のデータが従属関係に有ると判定した場合、ユーザデータテーブルＴＢＬ１において従属関係に有ると判定したデータのデータ更新処理前のデータを制御表記憶部２１４に記録する。トランザクション処理部２１２は、ユーザデータテーブル記憶部２２０が記憶するユーザデータテーブルＴＢＬ１が含むデータ更新対象のデータをコミットし、データ更新対象のデータが従属関係が有ると判定されたデータである場合、データ更新処理前のデータをユーザデータテーブル記憶部２２０が記憶するユーザデータテーブルＴＢＬ１に新たなデータとして記録する。
こうすることで、データベース管理装置２００は、購入予約する注文を受けたタイミングの価格がコミットにより変更されることを防ぐことができる。
【００４７】
本発明のデータベース管理装置２００の最小構成は、図７に示すように、ＡＰタイプ定義ファイル解析部２３０と、競合ＡＰ判定部２１１１と、トランザクション処理部２１２と、を備える。
ＡＰタイプ定義ファイル解析部２３０は、データテーブルにおいて複数のアプリケーションプログラムのそれぞれが行う予め特定されているデータ更新処理の対象を示す１つ以上のカラムの情報に基づいて、複数のアプリケーションプログラムのそれぞれの全組み合わせに対してデータテーブルにおけるデータ更新処理の対象の重複するカラムの有無を判定する。ＡＰタイプ定義ファイル解析部２３０は、データテーブルにおけるデータ更新処理の対象の重複するカラムが無いと判定した複数のアプリケーションプログラムの組み合わせに対してデータ更新処理に同一カラムに対するデータ更新処理が無いことを示す競合ＡＰ関係データテーブルＴＢＬ２（競合ＡＰ関係テーブル）を作成する。
競合ＡＰ判定部２１１１は、アプリケーションプログラムを実行する度に当該アプリケーションプログラムの識別子を取得し、現在実行中のアプリケーションプログラムについて過去に取得したすべての識別子の組み合わせと、ＡＰタイプ定義ファイル解析部２３０が作成した競合ＡＰ関係データテーブルＴＢＬ２が示すアプリケーションプログラムの識別子の組み合わせとを比較し、識別子の組み合わせが一致しない場合に、取得した識別子の組み合わせに対応するアプリケーションプログラムの組み合わせに対してデータ更新処理において同一カラムに対するデータ更新処理が無いと判定する。競合ＡＰ判定部２１１１は、識別子の組み合わせが一致する場合に、取得した識別子の組み合わせに対応するアプリケーションプログラムの組み合わせに対してデータ更新処理において同一カラムに対するデータ更新処理が有ると判定する。
トランザクション処理部２１２は、競合ＡＰ判定部２１１１がデータ更新処理において同一カラムに対するデータ更新処理が無いと判定した組み合わせのアプリケーションプログラムのそれぞれのデータ更新の対象とするカラムを有するそれぞれのレコードに対するロック処理を停止し、それぞれのレコードのカラム毎にデータ更新処理を行う。
【００４８】
なお、本発明の実施形態におけるＡＰタイプ宣言ファイル記憶部１２０、競合ＡＰ依存データテーブル記憶部２１３、制御表記憶部２１４、ユーザデータテーブル記憶部２２０、ＡＰタイプ定義ファイル記憶部２４０のそれぞれは、適切な情報の送受信が行われる範囲においてどこに備えられていてもよい。また、ＡＰタイプ宣言ファイル記憶部１２０、競合ＡＰ依存データテーブル記憶部２１３、制御表記憶部２１４、ユーザデータテーブル記憶部２２０、ＡＰタイプ定義ファイル記憶部２４０のそれぞれは、適切な情報の送受信が行われる範囲において複数存在しデータを分散して記憶していてもよい。
【００４９】
なお本発明の実施形態について説明したが、上述のデータベース管理装置２００、クライアントＡＰ制御装置１００のそれぞれは内部に、コンピュータシステムを有している。そして、上述した処理の過程は、プログラムの形式でコンピュータ読み取り可能な記憶部に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記憶部とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
【００５０】
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【００５１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定するものではない。また、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができるものである。
【符号の説明】
【００５２】
１・・・データベース管理システム
１００・・・クライアントＡＰ制御装置
１１０・・・ＡＰタイプ宣言ファイル読込部
１２０・・・ＡＰタイプ宣言ファイル記憶部
２００・・・データベース管理装置
２１０・・・トランザクション制御部
２１１・・・排他制御処理部
２１２・・・トランザクション処理部
２１３・・・競合ＡＰ依存データテーブル記憶部
２１４・・・制御表記憶部
２２０・・・ユーザデータテーブル記憶部
２３０・・・ＡＰタイプ定義ファイル解析部
２４０・・・ＡＰタイプ定義ファイル記憶部
２１１１・・・競合ＡＰ判定部
【図１】
0006638234.tif 000002
【図２】
0006638234.tif 000003
【図３】
0006638234.tif 000004
【図４】
0006638234.tif 000005
【図５】
0006638234.tif 000006
【図６】
0006638234.tif 000007
【図７】
0006638234.tif 000008
【図８】
0006638234.tif 000009
【図９】
0006638234.tif 000010
【図１０】
0006638234.tif 000011
【図１１】
0006638234.tif 000012
【図１２】
0006638234.tif 000013