(57)【特許請求の範囲】
【請求項１】
複数のデータベース装置を備える分散データベースシステムであって、
上記複数のデータベース装置の各々からロック取得要求を受信して、当該ロック取得要求に含まれるデータの親レコードのロック要求を行い、当該ロック要求の応答を受信して上記ロック取得要求を行った上記データベース装置にロック完了通知を返信するロックマネージャと、
上記データベース装置は、上記ロック要求を受け付けて、上記親レコードがロックされているかを確認するレコードロック可否判定部と、
上記親レコードを自データベース装置がロックした場合にのみ、上記データの複数のレコードの一部又は全部を更新するレコード更新部と、
を具備することを特徴とする分散データベースシステム。
【請求項２】
請求項１に記載した分散データベースシステムにおいて、
上記ロックマネージャは、
上記複数のデータベース装置の各々からロック取得要求を受信するロック取得要求受信部と、
上記ロック取得要求を順に記録し、各々のロック取得要求がアンロックされるまで保持するロック取得要求リストと、
上記ロック取得要求の対象とするデータの親レコードが、何れのデータベース装置に格納されているかを記憶する共有データ記憶部と、
上記ロック取得要求リストに記録されているロック取得要求を順に読み出し、上記共有データ記憶部を参照して親レコードのロック要求を行い、当該ロック要求に対するロック応答を受信するレコードロック取得要求部と、
上記ロック取得要求の要求元のデータベース装置に、ロック完了通知を返信するロック応答返信部と、
を具備することを特徴とする分散データベースシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散データベースシステムにおいてデータをロックする技術に関する。
【背景技術】
【０００２】
分散データベースシステムは複数のデータベース装置で構成され、相関するデータ群が分散管理されている。例えば図７に示すように、ユーザデータＤ１が複数のレコードＡ〜Ｄで構成されている場合、各レコードＡ〜Ｄにユーザ識別子αを付与し、複数のデータベース装置１に分散して収容する。このようなユーザデータＤ１はシステム外部から隠蔽され、外部サーバ３からの要求に応じてシステム内部でユーザデータＤ１を分散解決して提供する。
【０００３】
ここで、例えばデータベース装置（３）１ｃがユーザデータＤ１のレコードＡを操作（データ更新）する場合、他のレコードＢ〜Ｄとのデータ整合性を担保するため、相関データ群内の全レコードＡ〜Ｄは同時にロックされる（図８参照）。これにより、他のデータベース装置（４）１ｄ等によるユーザデータＤ１の操作が不能になるため、レコード間のデータ整合性が保証される。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】鈴木、外２名、“情報データベース技術（未来ねっと技術シリーズ）”、電気通信協会、2000年、p.36-39
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、システム規模やデータベース装置間の物理的距離の違いからロック要求の到達時間が異なるため、全レコードをロックするまでにロック未完了のレコードに他のデータベース装置からアクセスされると、全レコードのロックが完了せず、データを操作しないまま処理に失敗する可能性がある（図９参照）。
【０００６】
本発明は、上記事情を鑑みてなされたものであり、分散データベースシステムに分散配置された複数のデータにおけるデータ間の不整合を抑止することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の分散データベースシステムは、複数のデータベース装置を備える分散データベースシステムであって、上記複数のデータベース装置の各々からロック取得要求を受信して、当該ロック取得要求に含まれるデータの親レコードのロック要求を行い、当該ロック要求の応答を受信して上記ロック取得要求を行った上記データベース装置にロック完了通知を返信するロックマネージャと、上記データベース装置は、上記ロック要求を受け付けて、上記親レコードがロックされているかを確認するレコードロック可否判定部と、上記親レコードを自データベース装置がロックした場合にのみ、上記データの複数のレコードの一部又は全部を更新するレコード更新部と、を具備する。
【発明の効果】
【０００８】
本発明によれば、ロック取得要求により、親レコードがロックできた場合にのみ複数のレコードの一部又は全部を更新するため、分散配置された複数のデータにおけるデータ間の不整合を抑止できる。
【０００９】
更に、ロックマネージャは、各々のデータベース装置から要求されるロック取得要求の一元管理を行うので、ロック取得要求を順を追って処理することが可能になる。その結果、排他的制御が求められるデータ操作の逐次化を実現することが出来る。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態の分散データベースシステム１００のシステム構成例を示す図。
【図２】レコード単位で分散収容されるデータの例を示す図。
【図３】分散データベースシステム１００を構成するロックマネージャ１０と、データベース装置２０ａの機能構成例を示す図。
【図４】ロック取得要求リスト１２が記録したロック取得要求の例を示す図。
【図５】親レコードが他のデータベース装置に収容されている場合の分散データベースシステム１００の動作シーケンスの例を示す図。
【図６】データグループのデータを更新する場合の分散データベースシステム１００の動作シーケンスの例を示す図。
【図７】分散データベースシステムを示す図。
【図８】従来のロック方式を示す図。
【図９】従来のロック方式の課題を示す図。
【発明を実施するための形態】
【００１１】
以下、この発明の実施の形態を図面を参照して説明する。複数の図面中同一のものには
同じ参照符号を付し、説明は繰り返さない。
【００１２】
〔実施形態〕
図１に、本実施形態の分散データベースシステム１００のシステム構成例を示す。分散データベースシステム１００は、ロックマネージャ１０と、複数のデータベース装置２０と、を備える。
【００１３】
複数のデータベース装置２０は、データベース装置（１）２０ａ、データベース装置（２）２０ｂ、データベース装置（３）２０ｃ、…、を備える。各々のデータベース装置２０＊は、ノードとも称され、例えばＲＯＭ、ＲＡＭ、ＣＰＵ等で構成されるコンピュータに所定のプログラムが読み込まれて、ＣＰＵがそのプログラムを実行することで実現されるものである。なお、２０＊の「＊」は、ａ，ｂ，ｃ，…の何れかであることを表す。以降の説明では、特に必要としない場合「＊」の表記を省略する。
【００１４】
ここで、分散して複数のデータベース装置２０に格納されるデータとレコードについて説明する。図２に、レコード単位で、複数のデータベース装置２０に分散収容されるデータの一例を示す。レコードは、データの最小単位であり、相関性を持つ複数のレコードが集まってデータを構成する。また、そのデータを複数個束ねてデータグループを構成する場合もある。
【００１５】
図２に示すデータ１は、データベース装置（１）２０ａに格納されているレコードＡ１とＣ１、データベース装置（２）２０ｂに格納されているレコードＢ１とＤ１、の４つのレコードから成る。また、データ２は、データベース装置（２）２０ｂに格納されているレコードＡ２、データベース装置（３）２０ｃに格納されているレコードＣ２、データベース装置（４）２０ｄに格納されているレコードＢ２とＤ２、の４つのレコードから成る。このように、分散して格納されるデータベース装置２０の数は、データによって異なる。また、図２ではその表記を省略しているが、データ１とデータ２とを束ねてデータグループ１を構成しても良い。
【００１６】
更に、レコードＡ１，Ａ２は、例えば「Ｋｅｙ」、「Ｆ１」、「Ｆ２」、「Ｆ３」の４つのフィールドで構成される。「Ｋｅｙ」は、例えばユーザを特定する識別子、「Ｆ１」〜「Ｆ３」はユーザ情報の、例えば契約項目である。契約項目とは、例えば「留守番電話」、「ナンバーディスプレイ」等のユーザの契約内容を表す項目である。同じデータ内のレコードは、同値のフィールドを持つ。同値のフィールドとは、データ１では例えばユーザを特定する識別子（U013）、データ２では例えばユーザを特定する識別子（U195）、である。
【００１７】
本実施形態では、データ内のレコードのうちの１つを「親レコード」として規定する。図２に示す例では、ユーザの契約項目に関する情報が格納された例えばレコードＡ１とＡ２を、「親レコード」とする。
【００１８】
本実施形態の分散データベースシステム１００（図１）のロックマネージャ１０は、複数のデータベース装置２０の各々からロック取得要求を受信して、当該ロック取得要求を行ったデータベース装置２０にロック要求を送信し、当該ロック要求の送信に対する応答を受信し、当該ロック取得要求を行ったデータベース装置２０にロック完了通知を返信する。データベース装置２０のレコードロック可否判定部２１は、ロック要求を受け付け、親データがロックされているかを確認する。ロック要求を受け付けたデータベース装置２０のレコード更新部２２は、親データを自データベース装置２０がロックした場合にのみ、複数のデータの一部又は全部を更新する。
【００１９】
最初に、自データベース装置内に更新対象データの親レコードが収容されている場合を例に、分散データベースシステム１００の動作を、図１と図２とを参照して説明する。例えば、データ１（図２）を操作する場合、データベース装置（１）２０ａからロックマネージャ１０にロック取得要求を送信する。ロック取得要求を受信したロックマネージャ１０は、親レコードのレコードＡ１に対するロック要求を、データベース装置２０ａに送信して要求する。
【００２０】
ロック要求を受け付けたレコードロック可否判定部２１ａは、親レコード（レコードＡ１）がロックされているかを確認する。そして、データベース装置２０ａのレコード更新部２４ａは、ロック取得要求の応答としてロック完了通知を受けた場合にのみ、自らがロックしたデータ１の複数のレコード（Ａ１，Ｂ１，Ｃ１，Ｄ１）の一部又は全部を更新する。
【００２１】
ロック不可の場合は、既にデータベース装置２０ａを除く他のデータベース装置２０が先にデータ１をロックしているので、データベース装置２０ａはレコードを更新しない。よって、自データベース装置が親レコードをロックした場合のみ、レコードの内容が更新されるので、相関するレコード間のデータの整合性を確実に保証することが出来る。
【００２２】
図３に、ロックマネージャ１０とデータベース装置２０ａのより具体的な機能構成例を示して、更に詳しく分散データベースシステム１００の動作を説明する。なお、図３は、表記の関係から、データベース装置２０ａの１台のみを表記しているが、ロックマネージャ１０には２台以上の複数のデータベース装置２０が接続される（図１参照）。
【００２３】
〔ロックマネージャ〕
ロックマネージャ１０は、ロック取得要求受信部１１、ロック取得要求リスト１２、レコードロック取得要求部１３、共有データ記憶部１４、ロック応答返信部１５、を具備する。ロック取得要求受信部１１は、複数のデータベース装置２０の各々からロック取得要求を受信し、ロック取得要求を順にロック取得要求リスト１２に記録する。
【００２４】
ロック取得要求リスト１２は、記録した各々のロック取得要求がアンロックされるまで保持する。例えば、データベース装置（１）２０ａからデータ１、データベース装置（２）２０ｂからデータ２、データベース装置（３）２０ｃからデータグループ１の順で、それぞれのデータのロック取得要求を受信したと仮定すると、ロック取得要求リスト１２には、各ロック取得要求を識別する識別子と、要求元のデータベース装置と、更新対象のデータと、が記録される。図４に、ロック取得要求リスト１２に記録されたロック取得要求の例を示す。１列目は識別子であるロックＩＤ、２列目は要求元、３列目は更新対象データ、である。
【００２５】
共有データ記憶部１４は、ロック取得要求の対象とするデータの親レコードが、何れのデータベース装置２０に格納されているかを記憶する。図２で説明したデータ例の場合、「データ１」に対して「データベース装置（１）」とレコードＡ１、「データ２」に対して「データベース装置（２）」とレコードＡ２、とを記憶する。なお、データ１，２内の親レコード以外のレコードの格納先情報も記憶するようにしても良い。
【００２６】
レコードロック取得要求部１３は、ロック取得要求リスト１２に記録されているロック取得要求を順に読み出し、共有データ記憶部１４を参照して親レコードのロック要求を、ロック取得要求の要求元のデータベース装置２０に送信する。ロック要求には、対象とするデータの親レコードを収容するデータベース装置と親レコードを特定できる情報が添付されて送信される。ロック要求に添付される情報について、詳しくは後述する。
【００２７】
ロックマネージャ１０のレコードロック取得要求部１３は、当該ロック要求の応答を、データベース装置２０から受信する。ロック応答返信部１５は、レコードロック取得要求部１３がロック要求の応答を受信すると、ロック取得要求の要求元のデータベース装置２０にロック完了通知を返信する。
【００２８】
〔データベース装置〕
データベース装置２０ａは、レコードロック要求部２１ａ、レコードロック可否判定部２２ａ、レコードロック部２３ａ、レコード更新部２４ａ、レコード記憶部２５ａ、レコードアンロック部２６ａ、を具備する。レコードロック要求部２１ａは、ロックマネージャ１０に対して、ロック取得要求を送信して、当該ロック取得要求に含まれるデータの親レコードのロックを要求する。
【００２９】
レコードロック可否判定部２１ａは、ロックマネージャ１０のレコードロック取得要求部１３からのロック要求を受け付けて、当該ロック要求の対象とするデータの親レコードがロックされているかを判定する。レコードロック部２３ａは、ロック可の判定結果を受けて、当該ロック取得要求の対象とするデータの親レコードをロックすると共に、ロック応答を、ロックマネージャ１０のレコードロック取得要求部１３に返す。
【００３０】
レコード更新部２４ａは、ロックマネージャ１０のロック応答返信部１５からロック完了通知を受信すると、レコード記憶部２５ａに記憶されている上記ロック取得要求の対象とするデータを構成するレコードを、更新する。レコードアンロック部２６ａは、レコードの更新が終了すると、更新したレコードをアンロックし、ロックマネージャ１０に対してレコードアンロックを通知する。
【００３１】
レコード記憶部２５ａは、データベース装置２０ａが記憶するデータのレコードを記憶する。データベース装置（１）２０ａのレコード記憶部２５ａは、図２に示すデータベース装置（１）２０ａの列の縦方向のレコードを記憶する。縦方向のレコードは、…でその表記を省略しているが多数存在する。
【００３２】
分散データベースシステム１００の動作シーケンスを参照して、その動作を更に詳しく説明する。動作する状況を場合分けして説明を行う。
【００３３】
〔親レコードが他のデータベース装置に収容されている場合〕
例えば、データベース装置（２）２０ｂが、データベース装置（１）２０ａに収容されたデータ１のレコードＣ１を更新する場合を例に説明する。図５に、その場合の分散データベースシステム１００の動作シーケンスを示す。
【００３４】
最初に、データベース装置（２）２０ｂのレコードロック要求部２１ｂが、ロックマネージャ１０のロック取得要求受信部１１に対してロック取得要求を送信する（ステップＳ１）。ロックマネージャ１０のロック取得要求受信部１１は、受信したロック取得要求をロック取得要求リスト１２に記録する（ステップＳ２）。
【００３５】
レコードロック取得要求部１３は、ロック取得要求リスト１２に記録されているロック取得要求を順に読み出し（ステップＳ３）、共有データ記憶部１４を参照（ステップＳ４）して親レコードのロック要求を行う（ステップＳ５）。この例では、データ１の親レコードＡ１は、データベース装置（１）２０ａに収容されているので、当該データベース装置（１）２０ａと親レコードＡ１とを表す情報が、ロック要求に添付されてデータベース装置（２）２０ｂに送信される。
【００３６】
レコードロック可否判定部２２ｂは、データベース装置（１）２０ａのレコードロック可否判定部２２ａに対して、親レコードＡ１のロック要求を送信する（ステップＳ６）。レコードロック可否判定部２２ａは、データベース装置（２）２０ｂから転送されたロック要求を受け付けて、親レコードＡ１がロックされているかを判定する（ステップＳ７）。データベース装置（２）２０ｂからのロック要求に対してロック可（ロックされていない時）である場合、応答ＯＫをデータベース装置（２）２０ｂのレコードロック可否判定部２２ｂに返す（ステップＳ８）。レコードロック可否判定部２２ｂは、ロック要求に対するその判定結果を受信し、応答ＯＫの場合（ステップＳ９のＹＥＳ）、レコードロック部２３ｂに、親レコードＡ１をロックするように指示する。
【００３７】
既に親レコードＡ１がロックされている場合は、応答ＮＧがレスポンスとしてレコードロック可否判定部２２ｂに返ってくる。その場合は、分散データベースシステム１００の処理を、ロックマネージャ１０のステップＳ３の処理の前に戻す（ステップＳ９のＮＯ）。データベース装置（２）２０ｂは、他のデータベース装置２０による親レコードＡ１に対応するデータの更新が終了して、ロック可になるまでステップＳ３〜ステップＳ９のＮＯまでの処理を繰り返す。
【００３８】
レコードロック部２３ｂは、親レコードＡ１のロック指示を受けると、データベース装置（１）２０ａのレコードロック部２３ａに親レコードＡ１のロックを指示する（ステップＳ１０）。レコードロック部２３ａは、その指示にしたがって親レコードＡ１をロックし（ステップＳ１１）、そのレスポンスであるロック応答を、データベース装置（２）２０ｂのレコードロック部２３ｂに返す（ステップＳ１２）。
【００３９】
データベース装置（２）２０ｂのレコードロック部２３ｂは、データベース装置（１）２０ａからのロック応答のレスポンスを、ロックマネージャ１０のレコードロック取得要求部１３に送信する（ステップＳ１３）。このロック応答のレスポンスを受信した時点で、データベース装置（２）２０ｂは、データ１のデータを更新する権限を取得する。
ロックマネージャ１０のロック応答返信部１５は、レコードロック取得要求部１３がロック応答のレスポンスを受け取ると、データベース装置（２）２０ｂのレコード更新部２４ａに、ロック完了通知を返信する（ステップＳ１４）。
【００４０】
データベース装置（２）２０ｂのレコード更新部２４ｂは、データベース装置（１）２０ａの例えばレコードＣ１を更新するデータ操作要求を、データベース装置（１）２０ａのレコード更新部２４ａに対して送信する（ステップＳ１５）。レコード更新部２４ａは、レコードＣ１を更新する（ステップＳ１６）。更新が終了すると、レコード更新部２４ａは、更新終了を、データ操作要求に対するレスポンスとしてデータベース装置（２）２０ｂのレコード更新部２４ｂに返す（ステップＳ１８）。
【００４１】
更新終了のレスポンスを受けたレコード更新部２４ｂは、レコードアンロック部２６ｂに、親レコードＡ１のアンロックを指示する。その指示を受けたレコードアンロック部２６ｂは、データベース装置（１）２０ａのレコードアンロック部２６ａに、親レコードＡ１のアンロックを指示する信号を送信する（ステップＳ１９）。
【００４２】
親レコードＡ１をアンロックする信号を受信したデータベース装置（１）２０ａのレコードアンロック部２６ａは、親レコードＡ１をアンロックする（ステップＳ２０）。そして、親レコードＡ１のアンロックを、ステップＳ１９のレスポンスとしてデータベース装置（２）２０ｂのレコードアンロック部２６ｂに返す（ステップＳ２１）。親レコードＡ１のアンロックをレスポンスとして受け取ったレコードアンロック部２６ｂは、ロックマネージャ１０のロック取得要求リスト１２に対してレコードアンロックを通知する（ステップＳ２２）。
【００４３】
レコードアンロックの通知を受け付けたロックマネージャ１０は、ロック取得要求リスト１２の親レコードＡ１のロック取得要求（ステップＳ５）に対応するロック取得要求を、削除する（ステップＳ２３）。なお、レコードアンロックの通知を、直接、ロック取得要求リスト１２に入力してロック取得要求を削除する例で説明を行ったが、ロック取得要求の削除は、当該削除を行う機能部を別に設け、当該機能部が行うようにしても良い。
【００４４】
以上説明したように、ロック取得要求を送信したデータベース装置（２）２０ｂに収容されていないデータのレコードも更新することができる。上記して説明した例では、データベース装置（２）２０ｂが、親レコードＡ１のロック応答を受信（ステップＳ１２）してから、親レコードＡ１をアンロックするまでの間（ステップＳ２０）は、データ１のデータを更新する権限は、データベース装置（２）２０ｂのみに与えられる。したがって、他のデータベース装置２０からのデータ１に対するレコードの更新は行われないので、データ１のデータ間に不整合が生じることはない。
【００４５】
〔データグループのデータを更新する場合〕
次に、複数のデータを束ねたデータグループのデータを更新する場合を例に、分散データベースシステム１００の動作を説明する。データ１とデータ２とを束ねたデータグループ１のデータを、データベース装置（３）２０ｃから更新する場合を例に説明する。
【００４６】
図６に、データベース装置（３）２０ｃからデータグループ１のデータ１のレコードＤ１を更新する場合の分散データベースシステム１００の動作シーケンスを示す。
【００４７】
ロックマネージャ１０のレコードロック取得要求部１３が、ロック取得要求リスト１２に記録されているロック取得要求を順に読み出し（ステップＳ３）、共有データ記憶部１４を参照（ステップＳ４）するまでの動作は、上記した説明と同じである。この例では、ロック取得要求の要求元が、データベース装置（３）２０ｃであるので、ロックマネージャ１０がロック要求を送信する先は、データベース装置（３）２０ｃになる（ステップＳ２４）。このロック要求には、親レコードが２つ有るので、２つの収容先と親レコードを表す情報が、ロック要求に添付されてデータベース装置（３）２０ｃのレコードロック可否判定部２２ｃに送信される。
【００４８】
データベース装置（３）２０ｃのレコードロック可否判定部２２ｃは、データベース装置（１）２０ａのレコードロック可否判定部２２ａに、親レコードＡ１のロック要求を送信すると共に、データベース装置（２）２０ｂのレコードロック可否判定部２２ｂに、親レコードＡ２のロック要求を送信する（ステップＳ２５）。レコードロック可否判定部２２ａは、データベース装置（３）２０ｃから転送されたロック要求を受け付けて、親レコードＡ１がロックされているかを判定する（ステップＳ２６）。また、レコードロック可否判定部２２ｂは、親レコードＡ２がロックされているかを判定する（ステップＳ２７）。
【００４９】
レコードロック可否判定部２２ａとレコードロック可否判定部２２ｂとは、判定した結果をデータベース装置（２）２０ｃのレコードロック可否判定部２２ｃに返す（ステップＳ２８）。
【００５０】
レコードロック可否判定部２２ｃは、２つロック要求に対する２つの判定結果を受信し、両者が応答ＯＫの場合（ステップＳ２９のＹＥＳ）、レコードロック部２３ｃに、親レコードＡ１とＡ２とをロック、するように指示する。
【００５１】
レコードロック部２３ｃは、親レコードＡ１とＡ２のロック指示を受けると、データベース装置（１）２０ａのレコードロック部２３ａに親レコードＡ１のロックを、データベース装置（２）２０ｂのレコードロック部２３ｂに親レコードＡ２のロックを、それぞれ指示する（ステップＳ３０）。レコードロック部２３ａとレコードロック部２３ｂとは、その指示にしたがって親レコードＡ１と、親レコードＡ２と、をそれぞれロックし（ステップＳ３１とＳ３２）、そのレスポンスであるロック応答を、データベース装置（３）２０ｃのレコードロック部２３ｃに返す（ステップＳ３３）。
【００５２】
データベース装置（３）２０ｃのレコードロック部２３ｃは、データベース装置（１）２０ａとデータベース装置（２）２０ｂとからロック応答のレスポンスが有った場合に、そのロック応答をロックマネージャ１０に送信する（ステップＳ１３）。データベース装置（３）２０ｃは、このロック応答のレスポンスを受信した時点で、データグループ１のデータを更新する権限を取得する。
【００５３】
このように、データグループのデータを更新する場合、ある１台のデータベース装置２０は、複数の親レコードのロック取得を要求する。そして、複数の親レコードがロックできた場合に、要求元のデータベース装置２０が、データグループのデータを更新する権限を持つ。
【００５４】
ステップＳ１３以降の動作は、データベース装置（３）２０ｃがデータベース装置（２）２０ｂのレコードＤ１を更新する点と、レコードＤ１を更新した後にデータベース装置（３）２０ｃがデータベース装置（１）２０ａと（２）２０ｂのレコードＡ１とＡ２のアンロックを指示する点でのみ、上記した図５と異なり、動作シーケンスとしては同じである。よって、以降の動作ステップの参照記号を図５と同じにして、その説明を省略する。
【００５５】
以上説明したように、本実施形態の分散データベースシステム１００によれば、ロックマネージャ１０が、各データベース装置２０から送信されるロック取得要求を、全て受信してロック取得要求リスト１２に記録して一元管理を行う。つまり、ロックマネージャ１０は、各データベース装置２０からのロック取得要求を引き受け、逐次化する。ロック処理時は、要求に含まれるデータの親レコードを全てロックし、ロック応答を要求元のデータベース装置に返す。したがって、分散配置された複数のデータにおけるデータ間の不整合を抑止できる。また、複数のデータで構成されるデータグループに対しても、それぞれの親レコードをロックするので、複数のデータ間におけるデータの不整合も生じさせない。
【００５６】
なお、上記した実施形態では、１台のロックマネージャ１０が、複数のデータベース装置２０からのロック取得要求を一元管理する例で説明を行ったが、本発明の考えは本実施形態に限定されない。例えば、ロックマネージャ１０の機能を、分散配備させても良い。      
【００５７】
つまり、複数のデータベース装置２０のロック取得要求を管理するロックマネージャを複数台備える分散データベースシステムとしても良い。更に、ロックマネージャ１０の機能を、各々のデータベース装置２０に持たせるようにしても良い。ロックマネージャ１０の機能を分散配備しても、同様の効果を得ることができる。このように本願発明は、上記した実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。
【００５８】
上記装置における処理部をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、各装置における処理部がコンピュータ上で実現される。
【００５９】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記録装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としても良い。
【００６０】
また、各手段は、コンピュータ上で所定のプログラムを実行させることにより構成することにしてもよいし、これらの処理内容の少なくとも一部をハードウェア的に実現することとしても良い。
【符号の説明】
【００６１】
１０  ：ロックマネージャ
１１  ：ロック取得要求受信部
１２  ：ロック取得要求リスト
１３  ：レコードロック取得要求部
１４  ：共有データ記憶部
１５  ：ロック応答返信部
２０  ：データベース装置
２１  ：レコードロック要求部
２２  ：レコードロック可否判定部
２３  ：レコードロック部
２４  ：レコード更新部
２５  ：レコード記憶部
２６  ：レコードアンロック部
１００：分散データベースシステム
【図１】
0005930552.tif 000002
【図２】
0005930552.tif 000003
【図３】
0005930552.tif 000004
【図４】
0005930552.tif 000005
【図５】
0005930552.tif 000006
【図６】
0005930552.tif 000007
【図７】
0005930552.tif 000008
【図８】
0005930552.tif 000009
【図９】
0005930552.tif 000010