(57)【要約】      （修正有）【課題】デッドロックを防止し、効率よいデータ更新が可能なデータベース更新装置の提供。【解決手段】複製排他確保データレコード生成手段Ｍ２３は、獲得した排他確保データレコードを複数複製した複製排他確保データレコードを生成する。複製排他確保データレコード更新手段Ｍ２５は、複製排他確保データレコードが更新されない状態にあることを示す排他確保情報を、また、複製排他確保データレコードを更新する際に、更新処理を特定する更新処理情報を前記複製排他確保データレコードに関連付けて記憶する。また、今回の更新処理に対応する更新処理情報と関連付けられる複製排他確保データレコードおよび複製排他確保データレコードより上位に位置するものの全てに、今回の更新処理に対応する更新処理情報を関連付ける。【選択図】図１
2006277628.tif 000002
【特許請求の範囲】
【請求項１】
データベース記憶手段に記憶しているデータベースファイルのデータレコードを更新する旨を要求する更新要求情報を獲得すると、獲得した更新要求情報に対応するデータレコードをデータベース記憶手段から獲得するデータレコード獲得手段、
獲得したデータレコードを複製して複製データレコードを複数生成してデータレコード記憶手段に記憶する複製データレコード生成手段、
複製データレコードに対して、前記更新処理を行う複製データレコード更新手段、
前記更新処理を終了を要求する更新解放情報を獲得すると、前記更新処理を行った複製データレコードに基づいて、前記データベースファイルの更新処理を行うデータベース更新手段、
を有するデータベース更新装置。
【請求項２】
請求項１に係るデータベース更新装置において、さらに、
前記更新要求情報に係るデータレコードと関連する他のデータレコードであって、前記更新要求情報に係るデータレコードの更新処理が終了するまで更新されない状態にすることを要求する排他確保要求情報を獲得すると、前記他のデータレコードである排他確保データレコードをデータベース記憶手段から獲得する排他確保データレコード獲得手段、
獲得した排他確保データレコードを複製して複製排他確保データレコードを複数生成してデータレコード記憶手段に記憶する排他確保データレコード生成手段、
複製排他確保データレコードに対して、前記更新処理を行う複製排他確保データレコード更新手段、
前記更新処理を終了を要求する排他確保解放情報を獲得すると、前記更新処理を行った複製排他確保データレコードに基づいて、前記データベースファイルの更新処理を行う排他確保データベース更新手段、
を有するデータベース更新装置。
【請求項３】
請求項２に係るデータベース更新装置において、
前記複製排他確保データレコード更新手段は、さらに、
前記複製排他確保データレコードが更新されない状態にあることを示す排他確保情報を前記複製排他確保データレコードに関連付けて記憶すること、
を特徴とするデータベース更新装置。
【請求項４】
請求項３に係るデータベース更新装置において、さらに、
前記複製排他確保データレコード更新手段は、
当該複製排他確保データレコードを更新する際に、前記更新処理を特定する更新処理情報を前記複製排他確保データレコードに関連付けて記憶すること、
を特徴とするデータベース更新装置。
【請求項５】
請求項４に係るデータベース更新装置において、
前記複製排他確保データレコード生成手段は、さらに、
前記複製排他確保データレコードを生成する際に、複製排他確保データレコード間に上位、下位の優劣関係を形成し、
前記複製排他確保データレコード更新手段は、さらに、
今回の更新処理に対応する更新処理情報と関連付けられる複製排他確保データレコードおよび当該複製排他確保データレコードより上位に位置するものの全てに、今回の更新処理に対応する更新処理情報を関連付けること、
を特徴とするデータベース更新装置。
【請求項６】
請求項１〜請求項５に係るデータベース更新装置のいずれかにおいて、さらに、
データベース更新手段は、
最も上位の複製データレコードに基づいて、前記データベースファイルの更新処理を行うこと、
を特徴とするデータベース更新装置。
【請求項７】
請求項２〜請求項６に係るデータベース更新装置のいずれかにおいて、さらに、
排他確保データベース更新手段は、
最も上位の複製排他確保データレコードに基づいて、前記データベースファイルの更新処理を行うこと、
を特徴とするデータベース更新装置。
【請求項８】
コンピュータにデータベースファイルを更新させるデータベース更新プログラムであって、
前記コンピュータに、
データベース記憶手段に記憶しているデータベースファイルのデータレコードを更新する旨を要求する更新要求情報を獲得すると、獲得した更新要求情報に対応するデータレコードをデータベース記憶手段から獲得させ、
獲得したデータレコードを複製して複製データレコードを複数生成してデータレコード記憶手段に記憶させ、
複製データレコードに対して、前記更新処理を行わせ、
前記更新処理を行った複製データレコードに基づいて、前記データベースファイルの更新処理を行わせること、
を特徴とするデータベース更新プログラム。
【請求項９】
請求項８に係るデータベース更新プログラムにおいて、さらに、
前記コンピュータに、
前記更新要求情報に係るデータレコードと関連する他のデータレコードであって、前記更新要求情報に係るデータレコードの更新処理が終了するまで更新されない状態にすることを要求する排他確保要求情報を獲得すると、前記他のデータレコードである排他確保データレコードをデータベース記憶手段から獲得させ、
獲得した排他確保データレコードを複製して複製排他確保データレコードを複数生成してデータレコード記憶手段に記憶させ、
複製排他確保データレコードに対して、前記更新処理を行わせ、
前記更新処理を行った複製排他確保データレコードに基づいて、前記データベースファイルの更新処理を行わせること、
を特徴とするデータベース更新プログラム。
【請求項１０】
請求項９に係るデータベース更新プログラムにおいて、さらに、
前記コンピュータに、
前記複製排他確保データレコードが更新されない状態にあることを示す排他確保情報を前記複製排他確保データレコードに関連付けて記憶させること、
を特徴とするデータベース更新プログラム。
【請求項１１】
請求項１０に係るデータベース更新プログラムにおいて、さらに、
前記コンピュータに、
前記複製排他確保データレコードを更新する際に、当該更新処理を特定する更新処理情報を前記複製排他確保データレコードに関連付けて記憶させること、
を特徴とするデータベース更新プログラム。
【請求項１２】
請求項１１に係るデータベース更新プログラムにおいて、さらに、
前記コンピュータに、
前記複製排他確保データレコードを生成する際に、複製排他確保データレコード間に上位、下位の優劣関係を形成させ、
今回の更新処理に対応する更新処理情報と関連付けられる複製排他確保データレコードおよび当該複製排他確保データレコードより上位に位置するものの全てに、今回の更新処理に対応する更新処理情報を関連付けさせること、
を特徴とするデータベース更新プログラム。
【請求項１３】
請求項８〜請求項１２に係るデータベース更新プログラムのいずれかにおいて、さらに、
前記コンピュータに、
最も上位の複製データレコードに基づいて、前記データベースファイルの更新処理を行わせること、
を特徴とするデータベース更新プログラム。
【請求項１４】
請求項９〜請求項１３に係るデータベース更新プログラムのいずれかにおいて、さらに、
前記コンピュータに、
最も上位の複製排他確保データレコードに基づいて、前記データベースファイルの更新処理を行わせること、
を特徴とするデータベース更新プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベース更新装置であって、特に、データベースの更新に際して生ずるデッドロックを防止するものに関する。
【背景技術】
【０００２】
従来のデータベース更新装置であるデータベースシステムを図１４を用いて説明する。データベースシステム３００では、ユーザがロック取得要求を発行しても、ロック取得手段３０２がロックをすぐ取得出来ない時に、ロック取得手段３０２がデッドロック判定手段３０５を起動する。起動されたデッドロック判定手段３０５は、待機ユーザテーブル３０６を調べ、ロック取得要求の完了を待っていた場合、デッドロックが発生するかどうかを判定する。デッドロックが発生する時はロック取得要求の受入れを拒否し、発生しない時はデータ３１４のロックテーブル３０７へのロックを取得しているユーザの待機ユーザテーブル３０６にロック取得要求を発行したユーザが開放待ちをしていることを通知し、デッドロックを検出する。
【０００３】
【特許文献１】特開平０９−２５１４１３
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前述のデータベースシステムには、次のような問題点がある。前述のデータベースシステムは、デッドロックが発生する場合には、ロック取得要求の受け入れを拒否している。つまり、デッドロックが発生する場合には、処理をそれ以上進めることができない、という問題がある。
【０００５】
そこで、本発明では、デッドロックを防止し、効率よくデータ更新を行うことができるデータベース更新装置の提供を目的とする。
【課題を解決するための手段】
【０００６】
本発明に関する課題を解決するための手段及び発明の効果を以下に示す。
【０００７】
（１）本発明では、データベース記憶手段に記憶しているデータベースファイルのデータレコードを更新する旨を要求する更新要求情報を獲得すると、獲得した更新要求情報に対応するデータレコードをデータベース記憶手段から獲得し、獲得したデータレコードを複製して複製データレコードを複数生成してデータレコード記憶手段に記憶し、複製データレコードに対して、前記更新処理を行い、前記更新処理を行った複製データレコードに基づいて、前記データベースファイルの更新処理を行う。
【０００８】
これにより、各複製データレコードに対して更新処理を行うことができるので、複数の更新処理が重なったとしても、効率よく各更新処理を行うことができる。
【０００９】
（２）本発明では、前記更新要求情報に係るデータレコードと関連する他のデータレコードであって、前記更新要求情報に係るデータレコードの更新処理が終了するまで更新されない状態にすることを要求する排他確保要求情報を獲得すると、前記他のデータレコードである排他確保データレコードをデータベース記憶手段から獲得し、獲得した排他確保データレコードを複製して複製排他確保データレコードを複数生成してデータレコード記憶手段に記憶し、複製排他確保データレコードに対して、前記更新処理を行い、前記更新処理を行った複製排他確保データレコードに基づいて、前記データベースファイルの更新処理を行う。
【００１０】
これにより、排他確保データレコードに対しても効率よく更新処理を行うことができるので、排他確保によるいわゆるデッドロックを防止することができる。
【００１１】
（３）本発明では、前記複製排他確保データレコードが更新されない状態にあることを示す排他確保情報を前記複製排他確保データレコードに関連付けて記憶する。
【００１２】
これにより、排他確保されている複製排他確保データレコードに対しては更新処理を行わないようにすることができるので、各更新処理間に矛盾ないデータレコードの更新処理を行うことができる。
【００１３】
（４）本発明では、当該複製排他確保データレコードを更新する際に、当該更新処理を特定する更新処理情報を前記複製排他確保データレコードに関連付けて記憶する。
【００１４】
これにより、排他確保されている複製排他確保データレコードに対する更新処理を順番通りに行うことができるので、各更新処理間に矛盾ないデータレコードの更新処理を行うことができる。
【００１５】
（５）本発明では、前記複製排他確保データレコードを複数生成する際に、複製排他確保データレコード間に上位、下位の優劣関係を形成し、今回の更新処理に対応する更新処理情報と関連付けられる複製排他確保データレコードおよび当該複製排他確保データレコードより上位に位置するものの全てに、今回の更新処理に対応する更新処理情報を関連付ける。
【００１６】
これにより、排他確保されている複製排他確保データレコードに対しては更新処理を行わないようにすることができるので、各更新処理間に矛盾ないデータレコードの更新処理を行うことができる。
【００１７】
（６）本発明では、最も上位の複製データレコードに基づいて、前記データベースファイルの更新処理を行う。
【００１８】
これにより、データベースファイルの更新処理を容易かつ確実に行うことができる。
【００１９】
（７）本発明では、最も上位の複製排他確保データレコードに基づいて、前記データベースファイルの更新処理を行う。
【００２０】
これにより、データベースファイルの更新処理を容易かつ確実に行うことができる。
【００２１】
ここで、請求項に記載されている要素と実施例における要素との対応関係を示す。更新要求情報獲得手段はＣＰＵ２１１、メモリ２１２及び通信回路２１８に、データレコード獲得手段はＣＰＵ２１１及びメモリ２１２に、複製データレコード生成手段はＣＰＵ２１１及びメモリ２１２に、複製データレコード更新手段はＣＰＵ２１１及びメモリ２１２に、データベース更新手段はＣＰＵ２１１、メモリ２１２及び通信回路２１８に、排他確保データレコード獲得手段はＣＰＵ２１１、メモリ２１２及び通信回路２１８に、複製排他確保データレコード生成手段はＣＰＵ２１１及びメモリ２１２に、複製排他確保データレコード更新手段はＣＰＵ２１１及びメモリ２１２に、排他確保データベース更新手段はＣＰＵ２１１、メモリ２１２及び通信回路２１８に、それぞれ該当する。
【００２２】
データベース記憶手段はハードディスク２１３に、データレコード記憶手段はメモリ２１２に、それぞれ該当する。
【００２３】
データレコード獲得手段はステップＳ１、Ｓ３の処理を、複製データレコード生成手段はステップＳ５、Ｓ５０１〜Ｓ５１１の処理を、複製データレコード更新手段はステップＳ７、Ｓ７０１〜Ｓ７１３の処理を、データベース更新手段はステップＳ１１、Ｓ１３、Ｓ１３０１〜Ｓ１３０３の処理を、排他確保データレコード獲得手段はステップＳ２１、Ｓ２３の処理を、複製排他確保データレコード生成手段はステップＳ２５、Ｓ７０１〜Ｓ７２１の処理を、複製排他確保データレコード更新手段はステップＳ２７、Ｓ２７０１〜Ｓ２７１７の処理を、排他確保データベース更新手段はステップＳ３１、Ｓ３３の処理を、それぞれ実行する。
【００２４】
複製データレコードはコピーレコードに、排他確保データレコードは排他確保データレコードに、複製排他確保データレコードは排他確保コピーレコードに、排他確保情報は排他確保フラグに、更新処理情報は要求元ＩＤに、それぞれ対応する。
【発明を実施するための最良の形態】
【００２５】
本発明におけるデータベース更新装置の実施例を以下において説明する。
【実施例１】
【００２６】
1.概要
本発明に係るデータベース更新装置の概要を図１に示す機能ブロック図に基づいて説明する。
【００２７】
データベース更新手段１は、データレコード獲得手段Ｍ１１、複製データレコード生成手段Ｍ１３、複製データレコード更新手段Ｍ１５、データベース更新手段Ｍ１７、排他確保データレコード獲得手段Ｍ２１、複製排他確保データレコード生成手段Ｍ２３、複製排他確保データレコード更新手段Ｍ２５、排他確保データベース更新手段Ｍ２７を有している。
【００２８】
データレコード獲得手段Ｍ１１は、データベース記憶手段に記憶しているデータベースファイルのデータレコードを更新する旨を要求する更新要求情報を獲得すると、獲得した更新要求情報に対応するデータレコードをデータベース記憶手段から獲得する。
【００２９】
複製データレコード生成手段Ｍ１３は、獲得したデータレコードを複数に複製して複製データレコードを生成してデータレコード記憶手段に記憶する。
【００３０】
複製データレコード更新手段Ｍ１５は、複製データレコードに対して、前記更新処理を行う。
【００３１】
データベース更新手段Ｍ１７は、前記更新処理を行った複製データレコードに基づいて、前記データベースファイルの更新処理を行う。また、データベース更新手段Ｍ１７は、最も上位の複製データレコードに基づいて、前記データベースファイルの更新処理を行う。
【００３２】
排他確保データレコード獲得手段２１は、前記更新要求情報に係るデータレコードと関連する他のデータレコードであって、前記更新要求情報に係るデータレコードの更新処理が終了するまで更新されない状態にすることを要求する排他確保要求情報を獲得すると、前記他のデータレコードである排他確保データレコードをデータベース記憶手段から獲得する。
【００３３】
複製排他確保データレコード生成手段Ｍ２３は、獲得した排他確保データレコードを複数に複製して複製排他確保データレコードを生成してデータレコード記憶手段に記憶する。また、複製排他確保データレコード生成手段Ｍ２３は、前記複製排他確保データレコードを生成する際に、複製排他確保データレコード間に上位、下位の優劣関係を形成する。
【００３４】
複製排他確保データレコード更新手段Ｍ２５は、複製排他確保データレコードに対して、前記更新処理を行う。複製排他確保データレコード更新手段Ｍ２５は、前記複製排他確保データレコードが更新されない状態にあることを示す排他確保情報を前記複製排他確保データレコードに関連付けて記憶する。さらに、複製排他確保データレコード更新手段Ｍ２５は、当該複製排他確保データレコードを更新する際に、当該更新処理を特定する更新処理情報を前記複製排他確保データレコードに関連付けて記憶する。さらに、複製排他確保データレコード更新手段Ｍ２５は、今回の更新処理に対応する更新処理情報と関連付けられる複製排他確保データレコードおよび当該複製排他確保データレコードより上位に位置するものの全てに、今回の更新処理に対応する更新処理情報を関連付ける。
【００３５】
排他確保データベース更新手段Ｍ２７は、前記更新処理を行った複製排他確保データレコードに基づいて、前記データベースファイルの更新処理を行う。さらに、排他確保データベース更新手段Ｍ２７は、最も上位の複製排他確保データレコードに基づいて、前記データベースファイルの更新処理を行う。
【００３６】
これにより、各複製データレコードに対して更新処理を行うことができるので、複数の更新処理が重なったとしても、効率よく各更新処理を行うことができる。
【００３７】
これにより、排他確保データレコードに対しても効率よく更新処理を行うことができるので、排他確保によるいわゆるデッドロックを防止することができる。
【００３８】
2.  ハードウェア構成
2.1.  データベース更新処理システム１のハードウェア構成
データベース更新処理システム１は、データベースサーバ２１、クライアント端末２３を有している。データベースサーバ２１およびクライアント端末２３は、互いにネットワークを介してデータ通信可能なように接続されている。
【００３９】
データベースサーバ２１は、データベースを管理し、クライアント端末２３からのデータベースの更新要求に対応した処理を実行する。クライアント端末２３は、データベースサーバ２１に対して、データレコードの更新処理を要求する。
【００４０】
以下において、データベースサーバ２１およびクライアント端末２３のハードウェア構成について説明する。
【００４１】
2.2.  データベースサーバ２１のハードウェア構成
データベースサーバ２１のハードウェア構成を図３に基づいて説明する。データベースサーバ２１は、ＣＰＵ２１１、メモリ２１２、ハードディスク２１３、および通信回路２１８を備えている。また、データベースサーバ２１には、キーボード２１４、マウス２１５、ディスプレイ２１６、およびＣＤ−ＲＯＭドライブ２１７が接続されている。
【００４２】
ＣＰＵ２１１は、ハードディスク２１３に記録されているオペレーティング・システム（ＯＳ）、データベースサーバプログラム、およびデータベースを利用する応用プログラム（以下、応用プログラムとする。）その他のアプリケーションに基づいた処理を行う。メモリ２１２は、ハードディスク２１３に保存されているデータベースに関するコピーレコードを一時的に保持する。また、メモリ２１２は、ＣＰＵ２１１に対して作業領域を提供する。なお、コピーレコードについては後述する。
【００４３】
ハードディスク２１３は、オペレーティング・システム（ＯＳ）、データベースサーバプログラム、応用プログラムその他のアプリケーション、およびデータベースを記録保持する。なお、ハードディスク２１３に記録されるデータベースについては後述する。通信回路２１８は、クライアント端末２３とのデータの送受信等、外部の通信機器とデータの送受信を行う。
【００４４】
キーボード２１４、マウス２１５は、外部からの命令を受け付ける。ディスプレイ２１６は、ユーザーインターフェイス等の画像を表示する。ＣＤ−ＲＯＭドライブ２１７は、データベースサーバプログラムが記録されているＣＤ−ＲＯＭ２１０からデータベースサーバプログラムおよび他のＣＤ−ＲＯＭからその他のアプリケーションのプログラムを読み取る等、ＣＤ−ＲＯＭからのデータの読み取りを行う。
【００４５】
2.3.  クライアント端末２３のハードウェア構成
クライアント端末２３のハードウェア構成を図４に基づいて説明する。クライアント端末２３は、ＣＰＵ２３１、メモリ２３２、ハードディスク２３３、および通信回路２３８を備えている。また、クライアント端末２３には、キーボード２３４、マウス２３５、ディスプレイ２３６、およびＣＤ−ＲＯＭドライブ２３７が接続されている。
【００４６】
ＣＰＵ２３１は、ハードディスク２３３に記録されているオペレーティング・システム（ＯＳ）、クライアント端末プログラム等その他のアプリケーションに基づいた処理を行う。メモリ２３２は、ＣＰＵ２３１に対して作業領域を提供する。ハードディスク２３３は、オペレーティング・システム（ＯＳ）、クライアント端末プログラム等その他のアプリケーションおよび各種データを記録保持する。通信回路２３８は、データベースサーバ２１とのデータの送受信等、外部の通信機器とデータの送受信を行う。
【００４７】
キーボード２３４、マウス２３５は、ユーザーからのコマンド等、外部からの命令を受け付ける。ディスプレイ２３６は、ユーザーインターフェイス等の画像を表示する。ＣＤ−ＲＯＭドライブ２３７は、クライアント端末プログラムが記録されているＣＤ−ＲＯＭ２３０からクライアント端末プログラムおよび他のＣＤ−ＲＯＭからその他のアプリケーションのプログラムを読み取る等、ＣＤ−ＲＯＭからのデータの読み取りを行う。
【００４８】
3.  データ
データベースサーバ２１のハードディスク２１３が有するデータベースおよびメモリ２１２に生成されるコピーレコードについて説明する。
【００４９】
3.1.  データベース
データベースのデータ構造について図５を用いて説明する。データベースは一または複数のデータレコードによって構成されている。各データレコードは、タイム・スタンプ記述領域Ｒ１、データレコード記述領域Ｒ３を有している。タイム・スタンプ記述領域Ｒ１には、データレコード記述領域Ｒ３に記述するデータの内容を更新した際のタイム・スタンプが記述される。データレコード記述領域Ｒ３には、データレコードにおける現在のデータの内容が記述される。なお、図５においては、特に説明の必要がない値については表示を省略している。
【００５０】
3.2.  コピーレコード
コピーレコードのデータ構造を図６を用いて説明する。コピーレコードとは、ハードディスク２１３に保存しているデータレコードについて、メモリ２１２に複製したデータレコードをいう。
【００５１】
コピーレコードは、タイムスタンプ記述領域Ｒ１１、データレコード記述領域Ｒ１３、排他確保フラグ記述領域Ｒ１５、および要求元ＩＤ記述領域Ｄ１７を有している。タイムスタンプ記述領域Ｒ１１には、取得したデータレコードのタイム・スタンプ記述領域Ｒ１に記述されているタイム・スタンプの値が記述される。データレコード記述領域Ｒ１３には、取得したデータレコードのデータレコード記述領域Ｒ３に記述されているデータレコードのデータ値が記述される。排他確保フラグ記述領域Ｒ１５には、取得したデータレコードが排他確保状態にあるか否かを示すフラグが記述される。排他確保フラグが設定されている場合には「ＯＮ」が記述され、排他確保フラグが設定されていない場合には「ＯＦＦ」が記述される。なお、初期化時にいては、「ＯＦＦ」が設定される。要求元ＩＤ記述領域Ｄ１７には、プロセスを特定するための識別情報であるＩＤが記述される。
【００５２】
生成したＮ個のコピーレコードにおいては、上位、下位となる優劣関係が形成されている。本実施例においては、インデックスから遠くなる位置に配置されているコピーレコードほど上位としている。つまり、最も下位のコピーレコードは、コピーレコードＣ１に対応し、最も上位のコピーレコードは、コピーレコードＣ３に対応する。
【００５３】
なお、図６においては、特に説明の必要がない値については表示を省略している。
【００５４】
4.  データベースサーバ２１の動作
データベースサーバ２１のＣＰＵ２１１がデーベース更新プログラムに基づいて行う動作を図７を用いて説明する。
【００５５】
ＣＰＵ２１１は、ハードディスク２１３に記憶しているデータベースファイルのデータレコードを更新する旨を要求する更新要求情報を応用プログラムから獲得すると（Ｓ１）、獲得した更新要求情報に対応するデータレコードをハードディスク２１３から獲得する（Ｓ３）。そして、ＣＰＵ２１１は、獲得したデータレコードを複製したコピーレコードを複数生成してメモリ２１２に記憶するコピーレコード生成処理を実行する（Ｓ５）。ＣＰＵ２１１は、コピーレコードに対して更新処理を行うコピーレコード更新処理を実行する（Ｓ７）。
【００５６】
ＣＰＵ２１１は、更新処理を終了を要求する更新解放情報を獲得すると（Ｓ１１）、更新処理を行ったコピーレコードに基づいてデータベースファイルの更新処理を行うデータベースファイル更新処理を実行する（Ｓ１３）。
【００５７】
さらに、ＣＰＵ２１１は、応用プログラムから排他確保要求情報を獲得すると（Ｓ２１）、排他確保データレコードをハードディスク２１３から獲得する（Ｓ２３）。ここで、排他確保要求情報とは、更新要求情報に係るデータレコードと関連する他のデータレコードであって、更新要求情報に係るデータレコードの更新処理が終了するまで更新されない状態にすることを要求する情報をいう。
【００５８】
ＣＰＵ２１１は、獲得した排他確保データレコードを複製して排他確保コピーレコードを複数生成してメモリ２１２に記憶する排他確保コピーレコード生成処理を実行する（Ｓ２５）。そして、ＣＰＵ２１１は、排他確保コピーレコードに対して、更新処理を行う排他確保コピーレコード更新処理を実行する（Ｓ２７）。
【００５９】
また、ＣＰＵ２１１は、更新処理を終了を要求する排他確保解放情報を獲得すると（Ｓ３１）、更新処理を行った排他確保コピーレコードに基づいて、データベースファイルの更新処理を行う排他確保データベースファイル更新処理を実行する（Ｓ３３）。
【００６０】
以下において、コピーレコード生成処理（Ｓ５）、コピーレコード更新処理（Ｓ７）、データベースファイル更新処理（Ｓ１３）、排他確保コピーレコード生成処理（Ｓ２５）、排他確保コピーレコード更新処理（Ｓ２７）および排他確保データベースファイル更新処理（Ｓ３３）について説明する。
【００６１】
4.1.  コピーレコード生成処理
次に、ＣＰＵ２１１が行うコピーレコード生成処理の詳細を図８に示すフローチャートを用いて説明する。
【００６２】
ＣＰＵ２１１は、更新要求情報を取得すると、更新対象となるデータレコード（以下、更新対象レコードとする。）のコピーレコードがメモリ２１２上に存在するか否かを判断する（Ｓ５０１）。ＣＰＵ２１１は、コピーレコードがメモリ２１２上に存在しないと判断すると、ハードディスク２１３上のデータベースファイルから更新対象レコードを取得する（Ｓ５０３）。ＣＰＵ２１１は、取得した更新対象レコードに、排他確保フラグ記述領域および要求元ＩＤ記述領域（図６参照）を付加する（Ｓ５０５）。
【００６３】
そして、ＣＰＵ２１１は、取得した更新対象レコードのタイム・スタンプ記述領域の値を現在の時刻に更新する（Ｓ５０７）。ＣＰＵ２１１は、更新対象レコードに関して、メモリ２１２上に複数（Ｎ個）のコピーレコードを生成する（Ｓ５０９）。生成した複数の各コピーレコード間には、上位、下位となる優劣関係が形成されている（図６参照）。
【００６４】
ＣＰＵ２１１は、生成したコピーレコードの要求元ＩＤ記述領域および排他確保フラグ記述領域の値を、それぞれ初期化する（Ｓ５１１）。
【００６５】
4.2.  コピーレコード更新処理
次に、ＣＰＵ２１１が行うコピーレコード更新処理の詳細を図９に示すフローチャートを用いて説明する。
【００６６】
図９に示すように、ＣＰＵ２１１は、コピーレコードのうち最も上位に位置するものの排他確保フラグ記述領域の値が「ＯＮ」であるか否かを判断する（Ｓ７０１）。ＣＰＵ２１１は、排他確保フラグ記述領域の値が「ＯＮ」でないと判断すると、コピーレコードのうち最も上位に位置するもののタイム・スタンプ記述領域の値を取得する（Ｓ７０３）。
【００６７】
ＣＰＵ２１１は、コピーレコードの下位のものから順番にタイム・スタンプ記述領域の値を取得し、最初にステップＳ７０３で取得したタイム・スタンプの値と同じ値となるコピーレコードを判断し、そのコピーレコードに対して一つ上位のコピーレコード（以下、更新対象コピーレコードとする。）を取得する（Ｓ７０５）。ＣＰＵ２１１は、更新対象コピーレコードのタイム・スタンプ記述領域に、今回の更新処理の時間を記述する（Ｓ７０７）。
【００６８】
そして、ＣＰＵ２１１は、更新対象コピーレコードのデータレコード記述領域の値を更新する（Ｓ７０９）。
【００６９】
さらに、ＣＰＵ２１１は、更新対象コピーレコードより上位のコピーレコードの要求元ＩＤ記述領域の値、排他確保フラグ記述領域の値、データレコード記述領域の値およびタイム・スタンプ記述領域の値を、更新対象コピーレコードにおける各記述領域の値で、それぞれ更新する（Ｓ７１１）。ＣＰＵ２１１は、コピーレコード更新処理が終了したことを示す更新終了情報を送信する（Ｓ７１３）。
【００７０】
なお、ＣＰＵ２１１は、ステップＳ７０１において排他確保フラグ記述領域の値が「ＯＮ」であると判断すると、排他確保フラグ記述領域の値が「ＯＮ」でなくなるまで、つまり「ＯＦＦ」になるまで待機する。
【００７１】
4.3.  データベース更新処理
ＣＰＵ２１１におけるデータベースファイル更新処理を図１０に示すフローチャートを用いて説明する。
【００７２】
ＣＰＵ２１１は、応用プログラムから更新解放情報を獲得したと判断すると（図７：ステップＳ１１参照）、コピーレコードにおいて最も上位のものの排他確保フラグ記述領域の値が「ＯＮ」でない、つまり「ＯＦＦ」であるか否かを判断する（Ｓ１３０１）。ＣＰＵ２１１は、ステップＳ１３０１において、排他確保フラグ記述領域の値が「ＯＦＦ」である判断すると、コピーレコードにおいて最も上位のものの各記述領域の値に基づいて、データベースファイルの対応するデータレコードを更新する（Ｓ１３０３）。これにより、最も上位のコピーレコードに基づいて、データベースファイルの更新処理を行うことができる。
【００７３】
一方、ＣＰＵ２１１は、ステップＳ１３０１において、排他確保フラグ記述領域の値が「ＯＮ」である判断すると、当該記述領域の値が「ＯＦＦ」になるまで待機する。
【００７４】
4.4.  排他確保コピーレコード生成処理
次に、ＣＰＵ２１１が行う排他確保コピーレコード更新処理は、図８に示すコピーレコード生成処理と同様であるので、ここでの説明は省略する。
【００７５】
4.5.  排他確保コピーレコード更新処理
次に、ＣＰＵ２１１が行う排他確保コピーレコード更新処理の詳細を図１１、１２に示すフローチャートを用いて説明する。
【００７６】
図１１に示すように、ＣＰＵ２１１は、排他確保コピーレコードのうち最も上位に位置するものの排他確保フラグ記述領域の値が「ＯＮ」であるか否かを判断する（Ｓ２７０１）。ＣＰＵ２１１は、排他確保フラグ記述領域の値が「ＯＮ」でないと判断すると、排他確保コピーレコードのうち最も上位に位置するものの要求元ＩＤ記述領域の値を取得する（Ｓ２７０３）。
【００７７】
ＣＰＵ２１１は、排他確保コピーレコードの下位のものから数えてステップＳ７１１で取得した「要求元ＩＤの値」番目のコピーレコード（以下、更新対象コピーレコードとする。）を取得する（Ｓ２７０５）。ＣＰＵ２１１は、全ての排他確保コピーレコードの排他確保フラグ記述領域に「ＯＮ」を記述する（Ｓ２７０７）。
【００７８】
図１２に移って、ＣＰＵ２１１は、更新終了情報（図９：ステップＳ６２３参照）を獲得したか否かを判断する（Ｓ２７０９）。ＣＰＵ２１１は、更新終了情報を獲得したと判断すると、更新対象コピーレコードの要求元ＩＤ記述領域に、現在の要求元ＩＤの値＋１の値を記述する（Ｓ２７１１）。
【００７９】
そして、ＣＰＵ２１１は、更新対象コピーレコードのデータレコード記述領域の値を更新する（Ｓ２７１３）。なお、ＣＰＵ２１１は、更新対象コピーレコードのデータレコード記述領域の値を更新する際に、タイム・スタンプ記述領域の値を更新処理の時間に更新する。
【００８０】
さらに、ＣＰＵ２１１は、更新対象コピーレコードより上位のコピーレコードの要求元ＩＤ記述領域の値、排他確保フラグ記述領域の値、データレコード記述領域の値およびタイム・スタンプ記述領域の値を、更新対象コピーレコードにおける各記述領域の値で、それぞれ更新する（Ｓ２７１５）。
【００８１】
これにより、今回の更新処理に対応する要求元ＩＤと関連付けられる排他確保コピーレコードおよび当該排他確保コピーレコードより上位に位置するものの全てに、今回の更新処理に対応する要求元ＩＤを関連付けることができる。
【００８２】
そして、ＣＰＵ２１１は、対応するコピーレコードの排他確保フラグ記述領域に記述されている値を初期化する（Ｓ２７１７）。
【００８３】
また、ＣＰＵ２１１は、ステップＳ２７０１において排他確保フラグ記述領域の値が「ＯＮ」であると判断すると、排他確保フラグ記述領域の値が「ＯＮ」でなくなるまで待機する。
【００８４】
4.6.  排他確保データベース更新処理
ＣＰＵ２１１における排他確保データベース更新処理は、図１０に示すコピーレコード生成処理と同様であるので、ここでの説明は省略する。
【００８５】
5.  具体例
データベースサーバ２１におけるデータレコードの排他確保コピーレコード更新処理の具体例を図１３を用いて以下において説明する。
【００８６】
5.1.  前提
まず、前提として、データレコードＡおよびデータレコードＢは更新処理に際して互いに排他関係にあり、また、データレコードＢおよびデータレコードＣも更新処理に際して互いに排他関係にあるとする。また、データレコードＡおよびデータレコードＢに関係する更新処理、排他処理等を処理１と、データレコードＢおよびデータレコードＣに関係する更新処理、排他処理等を処理２とする（図１３参照）。処理１は時刻「００１１」に発生し、処理２は時刻「００１２」に発生したものとする。
【００８７】
なお、図１３においては、データレコードＢのコピーレコード（以下、コピーレコードＢとする。）についてのデータの変化のみ記載している。最初のデータレコードＢについては、時刻「０００２」、データレコードＢのデータ内容「Ｂ」とし、メモリ２１２には既にコピーレコードＢが存在するものとする。
【００８８】
5.2.  処理１
最初に、データレコードＡに対する更新処理が時刻「００１１」に発生したとする。この場合、データベースサーバ２１のＣＰＵ２１１は、応用プログラムからデータレコードＢに対する排他確保要求情報を獲得すると、全てのコピーレコードＢにおける要求元ＩＤ記述領域に「１」を、排他確保フラグ記述領域に「ＯＮ」を記述する。
【００８９】
そして、ＣＰＵ２１１は、データレコードＡのコピーレコードに対する更新処理が終了したこと（つまり、コピーレコードＢに対する更新処理を開始すること）を示す更新終了情報を獲得すると、コピーレコードＢの下位のものから数えて要求元ＩＤ記述領域の値「１」番目に対応するコピーレコードＢおよび当該コピーレコードより上位のもののデータの値を「Ｂ１」に更新する。なお、タイム・スタンプ記述領域の値は「００１２」に更新する。
【００９０】
その後、ＣＰＵ２１１は、排他確保フラグ記述領域の値を「ＯＦＦ」とする。
【００９１】
5.3.  処理２
一方に、データレコードＣに対する更新処理が時刻「００１２」に発生している。この場合、ＣＰＵ２１１は、処理２に関する排他確保要求情報を時刻「００１２」に獲得することになる。時刻「００１２」においては、ＣＰＵ２１１は、コピーレコードＢに対して排他確保を行っており、排他確保コピーレコード更新処理を実行することができない。したがって、ＣＰＵ２１１は、処理２に関する排他確保コピーレコード更新処理を、処理１に関する排他確保コピーレコード更新処理が終了してから行うことになる。なお、処理１における排他確保コピーレコード更新処理および処理２における排他確保コピーレコード更新処理は、ともにメモリ２１２上で行われていることから、処理２に関する排他確保コピーレコード更新処理を開始するまでに生ずる、処理１に関する排他確保コピーレコード更新処理が終了するまでの待ち時間は、非常に短いものとなる。
【００９２】
ＣＰＵ２１１は、データレコードＡに関する更新終了情報を獲得すると、全てのコピーレコードＢにおける要求元ＩＤ記述領域に「２」を、排他確保フラグ記述領域に「ＯＮ」を記述する。
【００９３】
そして、ＣＰＵ２１１は、データレコードＣのコピーレコードに対する更新処理が終了したこと（つまり、コピーレコードＢに対する更新処理を開始すること）を示す更新終了情報を獲得すると、コピーレコードＢの下位のものから数えて要求元ＩＤ記述領域の値「２」番目に対応するコピーレコードＢおよび当該コピーレコードより上位のもののデータの値を「Ｂ２」に更新する。なお、タイム・スタンプ記述領域の値は「００１４」に更新する。
【００９４】
その後、ＣＰＵ２１１は、排他確保フラグ記述領域の値を「ＯＦＦ」とする。
【００９５】
［その他の実施例］
前述の実施例１においては、排他確保フラグを全ての排他確保コピーレコードの排他確保フラグ記述領域に記述するとしたが、これに限定されない。例えば、一つの排他確保コピーレコードについてのみ排他確保フラグを記述するようにしてもよい。
【００９６】
また、前述の実施例１においては、全ての排他確保コピーレコードに対して排他確保フラグ記述領域を設けるようにしたが、これに限定されない。例えば、同種類の排他確保コピーレコードに対して一つの排他確保フラグ記述領域を設けるようにしてもよい。
【００９７】
さらに、前述の実施例１においては、要求元ＩＤを全ての排他確保コピーレコードの要求元ＩＤ記述領域に記述することとしたが、これに限定されない。例えば、一つの排他確保コピーレコードについてのみ要求元ＩＤを記述するようにしてもよい。
【００９８】
さらに、前述の実施例１においては、全ての排他確保コピーレコードに対して要求元ＩＤを記述を設けるようにしたが、これに限定されない。例えば、同種類の排他確保コピーレコードに対して一つの要求元ＩＤ記述領域を設けるようにしてもよい。
【００９９】
さらに、前述の実施例１においては、コピーレコード更新処理は、タイムスタンプに基づいて行うこととしたが、これに限定されない。例えば、排他確保コピーレコード更新処理と同様に、要求元ＩＤに基づいてコピーレコード更新処理を行うようにしてもよい。
【０１００】
さらに、前述の実施例１においては、ステップＳ２７０９において更新終了情報を獲得するまで待機するとしたが、その場合には、応用プログラムに対して処理を進めることができないエラー情報を送信するようにしてもよい。また、所定時間になっても「ＯＦＦ」とならない場合に、エラー情報を送信するようにしてもよい。
【０１０１】
さらに、前述の実施例１においては、データベースサーバプログラムは、応用プログラムから更新処理要求情報、排他確保要求情報等を取得し、対応する処理を実行するとしたが、データベースサーバプログラムに応用プログラムの機能を含ませるようにしてもよい。
【０１０２】
さらに、前述の実施例１においては、データレコードはタイム・スタンプ記述領域を有しているとしたが、タイム・スタンプ記述領域を有していなくともよい。この場合、コピーレコードを生成する際にのみタイム・スタンプ記述領域を生成すればよい。
【図面の簡単な説明】
【０１０３】
【図１】本発明におけるデータベース更新装置の機能ブロック図を示した図である。
【図２】データベース更新処理システムのハードウェア構成を示した図である。
【図３】図２におけるデータベースサーバ２１のハードウェア構成を示した図である。
【図４】図２におけるクライアント端末２３のハードウェア構成を示した図である。
【図５】データレコードのデータ構造の一例を示した図である。
【図６】コピーレコードのデータ構造の一例を示した図である。
【図７】データベースサーバ２１の動作を示したフローチャートである。
【図８】コピーレコード生成処理を示したフローチャートである。
【図９】コピーレコード更新処理を示したフローチャートである。
【図１０】データベースファイル更新処理を示したフローチャートである。
【図１１】排他確保コピーレコード更新処理を示したフローチャートである。
【図１２】排他確保コピーレコード更新処理を示したフローチャートである。
【図１３】排他確保コピーレコード更新処理を具体的に説明するための図である。
【図１４】従来のデータベース更新装置を説明するための図である。
【符号の説明】
【０１０４】
Ｍ１・・・・・データベース更新装置
Ｍ１１・・・・・データレコード獲得手段
Ｍ１３・・・・・複製データレコード生成手段
Ｍ１５・・・・・複製データレコード更新手段
Ｍ１７・・・・・データベース更新手段
Ｍ２１・・・・・排他確保データレコード獲得手段
Ｍ２３・・・・・複製排他確保データレコード生成手段
Ｍ２５・・・・・複製排他確保データレコード更新手段
Ｍ２７・・・・・排他確保データベース更新手段
【図１】
2006277628.tif 000003
【図２】
2006277628.tif 000004
【図３】
2006277628.tif 000005
【図４】
2006277628.tif 000006
【図５】
2006277628.tif 000007
【図６】
2006277628.tif 000008
【図７】
2006277628.tif 000009
【図８】
2006277628.tif 000010
【図９】
2006277628.tif 000011
【図１０】
2006277628.tif 000012
【図１１】
2006277628.tif 000013
【図１２】
2006277628.tif 000014
【図１３】
2006277628.tif 000015
【図１４】
2006277628.tif 000016