(57)【要約】    【課題】アプリケーションの変更を必要とすることなく、検索処理と更新処理を別トランザクションとして占有時間の短縮および更新処理での占有範囲を必要最小限とする。    【解決手段】版数管理部２４は基幹データベース２０を排他制御する最小単位であるページ毎に版数を登録した版数管理テーブル３０を管理し、ページの更新処理に伴い該当する版数管理テーブル３０の版数を更新する。検索処理部２６は、検索処理要求を受信した際に基幹データベース２０の検索処理を実行し、検索結果を検索処理要求元のＡＩサーバ１４−１に通知すると共に、検索対象となったページの版数をＡＩサーバ１４−１に通知して保存させる。更新処理部２８は、検索結果の通知に基づいてレコード更新処理要求を受信した際に、ＡＩサーバ１４−１から取得した検索時の版数と版数管理テーブル３０から取得した現在の版数とを比較し、両者が一致した場合に基幹データベース２０を更新し、不一致の場合はエラーを通知して検索処理からリトライさせる。    【選択図】      図１
2006085539.tif 000002
【特許請求の範囲】
【請求項１】
データベースを管理するホストコンピュータに、
データベースを排他制御する最小単位毎に版数を登録して管理し、前記最小単位内での更新処理に伴い対応する版数を更新する版数管理ステップと、
前記データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を前記検索処理要求元に通知して保存させる検索ステップと、
前記検索結果の通知に基づいてデータベース更新処理要求を受信した際に、前記更新処理要求元から取得した検索時の版数と前記版数管理ステップで管理している現在の版数とを比較し、両者が一致した場合に前記データベースを更新し、不一致の場合はエラーを通知する更新ステップと、
を実行させることを特徴とするデータベース管理プログラム。
【請求項２】
請求項１記載のデータベース管理プログラムに於いて、
前記データベースを排他制御する最小単位は、複数のレコードを含むページ単位であり、
前記版数管理ステップは、データベースを排他制御するページ毎に版数を登録して管理し、前記ページ内でのレコードの更新処理に伴い対応する版数を更新し、
前記検索ステップは、前記データベースのレコード検索要求を受信した際にデータベースの検索処理を実行し、検索レコードを前記要求元に通知すると共に、前記検索レコードに対応したページの版数を検索要求元に通知して保存させ、
前記更新ステップは、前記検索レコードの通知に基づいてレコード更新要求を受信した際に、前記更新要求元から取得した検索時の版数と前記版数管理ステップで管理している現在の版数とを比較し、両者が一致した場合に前記ページ内のレコード更新し、不一致の場合はレコード更新不可をエラー通知することを特徴とするデータベース管理プログラム。
【請求項３】
請求項１記載のデータベース管理プログラムに於いて、
前記検索ステップは、検索開始時に前記排他制御の最小単位で指定されるデータベースの検索対象領域に排他ロックを設定し、検索終了時に前記排他ロックを解除し、
前記更新ステップは、更新開始時に更新対象データを含む前記排他制御の最小単位となるデータベースの更新対象領域に排他ロックを設定し、更新終了時に前記排他ロックを解除することを特徴とするデータベース管理プログラム。
【請求項４】
データベースを排他制御する最小単位毎に版数を登録して管理し、前記最小単位内での更新処理に伴い対応する版数を更新する版数管理ステップと、
前記データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を前記検索処理要求元に通知して保存させる検索ステップと、
前記検索結果の通知に基づいてデータベース更新処理要求を受信した際に、前記更新処理要求元から取得した検索時の版数と前記版数管理ステップで管理している現在の版数とを比較し、両者が一致した場合に前記データベースを更新し、不一致の場合はエラーを通知する更新ステップと、
を備えたことを特徴とするデータベース管理方法。
【請求項５】
データベースを排他制御する最小単位毎に版数を登録して管理し、前記最小単位内での更新処理に伴い対応する版数を更新する版数管理部と、
前記データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を前記検索処理要求元に通知して保存させる検索部と、
前記検索結果の通知に基づいてデータベース更新処理要求を受信した際に、前記更新処理要求元から取得した検索時の版数と前記版数管理部で管理している現在の版数とを比較し、両者が一致した場合に前記データベースを更新し、不一致の場合はエラーを通知する更新部と、
を備えたことを特徴とするデータベース管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ上のアプリケーションからの検索と更新の処理要求を受信してホストの基幹データベースにアクセスするデータベース管理プログラム、方法、装置及び記録媒体に関し、特に、検索結果を通知した後に検索したデータの一部を更新する更新要求を受信して処理するデータベース管理プログラム、方法、装置及び記録媒体に関する。
【背景技術】
【０００２】
従来、ホストの基幹データベースの管理方法にあっては、サーバ上のアプリケーションからホストの基幹データベースをアクセスするデータベースコネクタと呼ばれるデータベース管理プログラムが提供されている。
【０００３】
このようなホスト基幹データベースの管理プログラムにあっては、サーバ上のアプリケーションにより検索したレコードの一部を更新する場合、データベースの検索と更新を一つのトランザクションとして実行している。
【０００４】
まず、データベースの管理プログラムは、サーバ上のアプリケーションから全件検索またはキー値前方一致検索といった集合検索処理要求を受信すると、検索処理のトランザクションを開始し、検索結果として得られた検索レコードをサーバに通知する。検索処理のトランザクションを開始する際には、検索対象とするページ領域に対し排他ロックを設定し、処理の途中で他のトランザクションにより内容が変更されることを防止している。
【０００５】
ホストから検索レコードの通知を受けたサーバ上のアプリケーションは、検索レコードをオペレータに表示し、オペレータは検索レコードを見てレコード内容を変更するための入力操作を行った後に、ホストに対しレコード更新を要求する。これを受けてホストのデータベース管理プログラムは、サーバから受信した更新レコードにより基幹データベースを更新し、更新完了でトランザクションを終了して排他ロックを解除する。
【特許文献１】特開平３−１２３９４６
【特許文献２】特開平６−０２８４００
【特許文献３】特開平１０−０４９４２０
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、このような従来のデータベース管理プログラムにあっては、検索後に検索した一部のレコードを更新する場合、トランザクション終了までデータベースのページ領域に排他ロックを設定して占有しており、しかも更新要求はオペレータの操作を伴うために分オーダーのタイムラグがあり、トランザクション終了まで基幹データベースにおける大量のページを長時間占有してしまい、その間、他の処理が占有待ちとなり、基幹データベースに対する検索更新の実行多重度が低下する問題がある。
【０００７】
この大量ページの長時間占有を防止するためには、データベースの検索処理と更新処理を別のトランザクションで実行すればよい。しかし、検索処理と更新処理の間で排他ロックが解除されるため、検索処理を終了してから更新処理を開始するまでの間に、他のトランザクションにより更新対象レコードの内容が変更されていないことを確認する必要がある。
【０００８】
この確認のためには、集合検索で得られた大量データをサーバ側で記憶領域を獲得して保存し、更新時に、更新対象レコードとサーバに保存している検索時のレコードとを比較して他のトランザクションにより更新されていないことを確認するロジックをサーバのアプリケーションに追加する必要がある。
【０００９】
しかし、このようなロジック追加は、大量に存在する全てのアプリケーションの変更を必要とし、また集合検索で得られた大量データを保存する記憶領域をサーバ側に獲得する必要があり、現実的ではないという問題がある。
【００１０】
本発明は、アプリケーションの変更や大きな記憶領域の確保を必要とすることなく、データベースの検索処理と更新処理を別トランザクションとして占有時間の短縮および更新処理でのデータベースの占有範囲を必要最小限とするデータベース管理プログラム、方法、装置及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１１】
図１は本発明の原理説明図である。本発明は、データベースを管理するホストコンピュータにより実行されるデータベース管理プログラムを提供する。
【００１２】
本発明のデータベース管理プログラムは、ホストを構成するコンピュータに、
データベースを排他制御する最小単位毎に版数を登録して管理し、最小単位内での更新処理に伴い対応する版数を更新する版数管理ステップと、
データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を検索処理要求元に通知して保存させる検索ステップと、
検索結果の通知に基づいてデータベース更新処理要求を受信した際に、更新処理要求元から取得した検索時の版数と版数管理ステップで管理している現在の版数とを比較し、両者が一致した場合にデータベースを更新し、不一致の場合はエラーを通知する更新ステップと、
を実行させることを特徴とする。
【００１３】
ここで、データベースを排他制御する最小単位は、複数のレコードを含むページ単位であり、
版数管理ステップは、データベースを排他制御するページ毎に版数を登録して管理し、ページ内でのレコードの更新処理に伴い対応する版数を更新し、
検索ステップは、データベースのレコード検索要求を受信した際にデータベースの検索処理を実行し、検索レコードを前記要求元に通知すると共に、検索レコードに対応したページの版数を検索要求元に通知して保存させ、
更新ステップは、検索レコードの通知に基づいてレコード更新要求を受信した際に、更新要求元から取得した検索時の版数と版数管理ステップで管理している現在の版数とを比較し、両者が一致した場合にページ内のレコード更新し、不一致の場合はレコード更新不可をエラー通知する。
【００１４】
また検索ステップは、検索開始時に排他制御の最小単位で指定されるデータベースの検索対象領域に排他ロックを設定し、検索終了時に前記排他ロックを解除し、更新ステップは、更新開始時に更新対象データを含む排他制御の最小単位となるデータベースの更新対象領域に排他ロックを設定し、更新終了時に排他ロックを解除する。
【００１５】
更新ステップは、検索結果の通知から人的操作のタイムラグを経てデータベース更新処理要求を受信する。
【００１６】
版数管理ステップは、運用開始時に、検索要求元に割当られたデータベース領域を対象に排他制御の最小単位毎に版数の初期値を設定し、更新処理毎に版数を１つずつ増加させる。
【００１７】
更新ステップは、エラー通知として、検索処理からのリトライ要求を通知する。データベースは、ホストの基幹データベースであり、検索処理及び更新処理の要求元はサーバ上のアプリケーションである。
【００１８】
本発明は、データベース管理方法を提供する。本発明のデータベース管理方法は、
データベースを排他制御する最小単位毎に版数を登録して管理し、最小単位内での更新処理に伴い対応する版数を更新する版数管理ステップと、
データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を検索処理要求元に通知して保存させる検索ステップと、
検索結果の通知に基づいてデータベース更新処理要求を受信した際に、更新処理要求元から取得した検索時の版数と版数管理ステップで管理している現在の版数とを比較し、両者が一致した場合にデータベースを更新し、不一致の場合はエラーを通知する更新ステップと、
を備えたことを特徴とする。
【００１９】
本発明は、データベース管理装置を提供する。本発明のデータベース管理装置は、
データベースを排他制御する最小単位毎に版数を登録して管理し、最小単位内での更新処理に伴い対応する版数を更新する版数管理部と、
データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を検索処理要求元に通知して保存させる検索部と、
検索結果の通知に基づいてデータベース更新処理要求を受信した際に、更新処理要求元から取得した検索時の版数と版数管理部で管理している現在の版数とを比較し、両者が一致した場合にデータベースを更新し、不一致の場合はエラーを通知する更新部と、
を備えたことを特徴とする。
【００２０】
更に本発明は、データベース管理プログラムを格納したコンピュータが読み取り可能な記録媒体を提供する。即ち、本発明の記録媒体は、データベースを管理するコンピュータに、
データベースを排他制御する最小単位毎に版数を登録して管理し、最小単位内での更新処理に伴い対応する版数を更新する版数管理ステップと、
データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を検索処理要求元に通知して保存させる検索ステップと、
検索結果の通知に基づいてデータベース更新処理要求を受信した際に、更新処理要求元から取得した検索時の版数と前記版数管理ステップで管理している現在の版数とを比較し、両者が一致した場合に前記データベースを更新し、不一致の場合はエラーを通知する更新ステップと、
を実行させることを特徴とするデータベース管理プログラムを格納する。
【００２１】
なお、本発明によるデータベース管理方法、装置及び記録媒体の詳細は、本発明によるデータベース管理プログラムの場合と基本的に同じになる。
【発明の効果】
【００２２】
本発明によれば、サーバ側のアプリケーションを変更することなく、ホスト側のデータベースに対する検索処理と更新処理を別トランザクションとし、データベースのアクセス実行の多重度を向上させることができる。
【００２３】
特に、検索レコードの一部をオペレータが編集操作して更新処理を要求することから、検索と更新との間に例えば分オーダーのタイムラグがあるが、検索処理と更新処理を別トランザクションとしてその間の空き時間につきデータベースの占有を解除しているため、他のトランザクションからの要求によるデータベースの検索と更新理を可能とし、データベースアクセスの実行多重度を高めることができる。
【００２４】
また検索処理と更新処理とを別トランザクションとしても、更新処理の際の更新対象データが他のトランザクションにより更新されたか否かの判断は、データベースに排他ロックをかける最小単位毎、例えばページ単位に分けて版数を管理し、検索時の版数と更新時の版数を比較することで判断でき、サーバ側に記憶領域を獲得して検索結果として得られた大量のデータを比較のために保存する必要はなく、検索ページの版数という少量のデータを保存するだけで済む。
【００２５】
またアプリケーションは既存の検索要求及び更新要求に加え、検索時にホストからの版数情報を保存し、更新時にはホストからの読出しに対し版数情報を応答するが、これはアプリケーションの持つ入出力機能にすぎないことから、アプリケーションの変更は不要である。
【００２６】
更に、更新処理の際には、更新対象データを含む最小単位について排他ロックを掛けて占有させることで、更新処理の際の占有領域を必要最小限に局所化し、更新処理における別トランザクションによるデータベースのアクセス実行の多重度を向上させることができる
【発明を実施するための最良の形態】
【００２７】
図１は本発明によるデータベース管理処理の機能構成のブロック図である。図１において、ホスト１０に対してはネットワーク１２を介して例えばＵＮＩＸ（Ｒ）のＡＩサーバ１４−１，１４−２，１４−３が接続されている。ホスト１０にはアダプタ１６、データベースコネクタとして機能するデータベース管理部１８及び基幹データベース２０が設けられている。
【００２８】
基幹データベース２０は、ホスト１０を設置している会社などにおける基幹業務データを保存したデータベースとして構築されている。ＡＩサーバ１４−１〜１４−３による基幹データベース２０のアクセス領域は、それぞれのアプリーケーションに応じて初期設定により割当てられる。図１のホスト１０における基幹データベース２０のページ２２−１〜２２−ｎは、ＡＩサーバ１４−１〜１４−３のアプリケーションのアクセス対象として割り当てられたページ領域を示している。
【００２９】
基幹データベース２０のページ２２−１〜２２−ｎは、図２に取り出して示す構造を有する。図２において、ＡＩサーバ１４−１〜１４−３のアクセス対象となる基幹データベース２０のページ２２−１〜２２−ｎのそれぞれはレコードＲ１〜Ｒｍで構成されており、データベースの検索及び更新はレコード単位に行われる。
【００３０】
ＡＩサーバ１４−１〜１４−３から検索要求を受けた場合は、アクセス対象領域となるページ２２−１〜２２−ｎに排他ロックを掛けてから検索処理を実行する。また検索後に、検索したレコードの一部を更新を必要とする場合にも、更新対象レコードを含むページに排他ロックを掛けて占有した状態で、レコードの更新処理を実行する。
【００３１】
再び図１を参照するに、ホスト１０のデータベース管理部１８には、版数管理部２４、検索処理部２６、更新処理部２８、版数管理テーブル３０及び排他ロック管理テーブル３２が設けられている。データベース管理部１８は、ＡＩサーバ１４−１〜１４−３による基幹データベース２０のアクセスを可能とするホスト１０側のデータベースコネクタとして機能する。
【００３２】
データベース管理部１８の版数管理部２４は、基幹データベース２０における排他制御の最小単位であるページ毎に版数を登録した版数管理テーブル３０を管理し、ページ内でのレコードの更新処理に伴い、対応するページの版数を更新する。
【００３３】
図３は図１のデータベース管理部１８に設けた版数管理テーブル３０の説明図である。図３の版数管理テーブル３０は、「ページ番号」と「更新版数」の２項目で構成され、データベース管理部１８のジョブを起動した際に、ホスト１０におけるメモリの共通域に更新版数を管理する領域を獲得して、図３のような版数管理テーブル３０を配置し、更新版数は初期値として図示のように０が設定されており、ページ内のレコード更新が行われるごとに＋１ずつ値が増加される。
【００３４】
再び図１を参照するに、ホスト１０のデータベースコネクタとして機能するデータベース管理部１８に対応して、ＡＩサーバ１４−１側にはアダプタ３４及びアプリケーション３６が設けられ、アプリケーション３６には検索要求部３８、更新要求部４０及び版数保存テーブル４２が設けられている。このＡＩサーバ１４−１の構成は、他のＡＩサーバ１４−２，１４−３についても同様である。
【００３５】
ホスト１０のデータベース管理部１８に設けた検索処理部２６は、例えばＡＩサーバ１４−１のアプリケーション３６に設けている検索要求部３８より全件検索またはキー値前方一致検索となる集合検索による基幹データベース２０のレコード検索要求を受信した際に、基幹データベース２０における対象ページ領域となるページ２２−１〜２２−ｎの検索処理を実行し、検索レコードを要求元のＡＩサーバ１４−１に通知する。
【００３６】
この検索処理部２６による検索処理の際には、基幹データベース２０のページ２２−１〜２２−ｎに対する他のＡＩサーバ１４−２，１４−３からのアクセスを禁止するため、排他ロックを掛けて検索処理を実行する。ページ２２−１〜２２−ｎに対する排他ロック制御は、排他ロック管理テーブル３２に排他フラグをセットする。
【００３７】
図４は図１の排他ロック管理テーブル３２の説明図である。図４の排他ロック管理テーブル３２は、「ページ番号」に対応して「排他フラグ」を設けており、「排他フラグ」を１にセットすることで排他ロックを掛けて対象ページを占有することができる。
【００３８】
再び図１を参照するに、ホスト１０のデータベース管理部１８に設けた検索処理部２６は、検索処理の実行により検索レコードを要求元のＡＩサーバ１４−１に通知すると共に、更に検索レコードに対応したページの版数を版数管理テーブル３０から取得し、検索要求元のＡＩサーバ１４−１に通知し、アプリケーション３６に設けている版数保存テーブル４２に保存させる。
【００３９】
このようなホスト１０のデータベース管理部１８における検索処理部２６の検索処理にあっては、検索要求を受けてトランザクションを開始し、検索レコードを通知して検索時の版数を保存させると、トランザクションを終了し、トランザクション終了で排他ロック管理テーブル３２の排他フラグ（図４）を０にリセットし、排他ロックを解除する。
【００４０】
ホスト１０からの検索レコードの通知を受けたＡＩサーバ１４−１のアプリケーション３６は、検索レコードをディスプレイ上に表示してオペレータに提示し、オペレータは検索レコードを見て検索レコードの内容の変更の有無を判断し、必要があれば検索レコードの内容を変更、削除、加入などといった必要な編集処理を行った後に、レコード更新要求の入力操作を行う。
【００４１】
このような検索レコードに基づいて検索レコードの一部を更新する処理にはオペレータの編集操作が介入するため、通常、分オーダーのタイムラグがレコード更新要求を行うまでに生ずる。しかしながら、ホスト１０のデータベース管理部１８にあっては、検索処理部２６による検索終了で検索対象ページ２２−１〜２２−ｎの排他ロックを解除しているため、他のＡＩサーバ１４−２，１４−３による基幹データベース２０のアクセスが検索終了から更新開始までの間に可能である。
【００４２】
更新要求部４０は、検索レコードに基づいたオペレータの編集操作に基づく更新入力指示を受けると、ホスト１０に対しレコード更新要求を行う。
【００４３】
ホスト１０のデータベース管理部１８に設けた更新処理部２８は、ＡＩサーバ１４−１からのレコード更新要求を受信すると、ＡＩサーバ１４−１のアプリケーション３６に対する読出要求で版数保存テーブル４２から検索時の版数を取得し、取得した検索時の版数と版数管理テーブル３０から取得した現在の版数とを比較し、両者が一致した場合には対象ページ内の対象レコードの更新処理を実行する。
【００４４】
一方、ＡＩサーバ１４−１から取得した検索時の版数と版数管理テーブル３０から取得した現在の版数とが不一致の場合には、検索処理を終了してから更新処理を要求するまでの間に他のＡＩサーバ１４−２，１４−３によるアクセスで更新対象レコードに対する更新処理が行われて版数管理テーブル３０の版数の更新が行われた場合であり、検索時のレコード内容が変更されている。この場合にはレコード更新が不可能であることをＡＩサーバ１４−１にエラー通知して更新処理を終了する。
【００４５】
また更新処理部２８は、更新処理を開始する際に、更新対象レコードを含むページについて排他ロック管理テーブル３２の排他フラグを１にセットすることで、排他ロックを掛けて占有し、更新処理終了で排他フラグを０にオフして排他ロックを解除する。
【００４６】
更に、更新処理部２８において検索時の版数と現在の版数とが不一致が判別された場合のＡＩサーバ１４−１に対するエラー通知には、検索処理からのリトライを求める内容が含まれている。このような更新要求に対するエラー通知を受けたＡＩサーバ１４−１にあっては、エラー対象となった検索要求及び更新要求をキャンセルした後に、改めて検索要求部３８を起動して、再度、ホスト１０に対する基幹データベース２０の検索要求をリトライする。
【００４７】
図５及び図６は、図１におけるホスト１０とＡＩサーバ１４−１における版数管理を伴うデータベース管理処理のタイムチャートである。
【００４８】
図５において、ホスト１０にあっては、ホスト側のデータベースコネクタとして機能するデータベース管理部１８のジョブを起動すると、ステップＳ１でＡＩサーバ１４−１のアプリケーション３６についてのデータベース割当ページ領域を設定する。例えば、この割当ページ領域としては、図１に示すページ２２−１〜２２−ｎの領域を設定する。
【００４９】
続いて、ステップＳ２で割当ページ領域について版数管理テーブル３０を生成し、版数初期値に０をセットする。即ち、図３に示す版数管理テーブル３０をホスト１０のメモリ共通域に確保し、割当ページ領域となるページ２２−１〜２２−ｎのページ番号に対応して、更新版数の初期値として０をセットする。
【００５０】
次に、ステップＳ３でＡＩサーバ１４−１からの検索要求の受信の有無をチェックしている。ＡＩサーバ１４−１にあっては、ステップＳ１０１で集合検索の検索要求を行ったとすると、この検索要求がホスト１０のステップＳ３で判別されてステップＳ４に進み、割当ページ２２−１〜２２−ｎに排他ロックを設定してトランザクションを開始する。
【００５１】
なお、割当ページ２２−１〜２２−ｎに排他ロックを設定する際に、既に他のトランザクションにより排他ロックが設定されていた場合には、その排他ロックの解除を待って自己の排他ロックを設定する。
【００５２】
続いて、ステップＳ５で集合検索要求に基づく検索処理を対象ページ２２−１〜２２−ｎに対し実行し、ステップＳ６で検索レコードをＡＩサーバ１４−１に応答する。続いてステップＳ７で検索レコードを含むページの版数情報をＡＩサーバ１４−１に通知する。例えば割当ページ２２−１〜２２−ｎの内、ページ２２−２，２２−３の２ページについて検索レコードが含まれていた場合には、ページ２２−２，２２−３の更新版数をＡＩサーバ１４−１に通知する。そしてステップＳ８で排他ロックを解除してトランザクションを終了する。
【００５３】
一方、ＡＩサーバ１４−１にあっては、ステップＳ１０２で検索レコードを画面表示した後、ステップＳ１０３でホスト１０から通知された検索レコードを含むページの版数情報を受信し、版数保存テーブル４２に保存する。図７（Ａ）はＡＩサーバ１４−１における版数保存テーブル４２の保存内容であり、検索時の版数情報としてページ番号２，３について更新版数０が保存されている。
【００５４】
再び図５を参照するに、ＡＩサーバ１４−１にあっては、ステップＳ１０４で検索レコードの画面表示を見ながら更新レコードの編集操作を行い、ステップＳ１０５で編集の済んだレコードについてレコード更新要求をホスト１０に対し行う。ホスト１０にあっては、ステップＳ９でレコード更新要求の受信をチェックしており、更新要求を受信すると、ステップＳ１０で更新対象ページに排他ロックを設定してトランザクションを開始する。
【００５５】
ここでＡＩサーバ１４−１からのレコード更新要求が検索対象ページ２２−２，２２−３の両方について行われたとすると、図４の排他ロック管理テーブル３２のページ番号２，３について、それぞれ排他フラグを１にセットすることで、排他ロックを設定して占有する。
【００５６】
次にステップＳ１１で現在の更新対象ページの版数を版数管理テーブル３０から取得する。このとき版数管理テーブル３０の内容は図７（Ｂ）のように、ページ番号２については初期値０であるが、ページ番号３については１に更新されていたとする。
【００５７】
続いてステップＳ１２でＡＩサーバ１４−１の版数保存テーブル４２から検索時の版数を取得する。この検索時の版数は図７（Ａ）のように、ページ番号２，３について共に０となっている。
【００５８】
続いてステップＳ１３で現在の版数と検索時の版数とが一致するか否か判別する。ページ２２−２のページ番号２については両者が共に０であることから一致し、この場合にはステップＳ１４に進み、ページ２２−２を対象に、その中のレコード更新を行い、図６のステップＳ１５に進み、更新終了をＡＩサーバ１４−１に通知し、これを受けてＡＩサーバ１４−１は、ステップＳ１０７で更新完了表示を行い、一連の処理を終了する。
【００５９】
一方、図５のステップＳ１３でページ２２−３について現在の版数と検索時の版数を比較すると、両者は不一致であることから、図６のステップＳ１６に進み、ページ２２−３に対する更新処理要求をキャンセルし、ステップＳ１７で検索リトライを内容とするエラー通知をＡＩサーバ１４−１に通知する。そしてステップＳ１８で排他ロックを解除してレコード更新のトランザクションを終了する。
【００６０】
ＡＩサーバ１４−１にあっては、ステップＳ１０８でホスト１０からのエラー通知に基づきページ２２−３の更新エラー表示を行い、ステップＳ１０９で検索処理からのリトライを行うことになる。
【００６１】
図８及び図９は、図１のホスト１０に設けたデータベース管理部１８による本発明のデータベース管理処理のフローチャートである。図８において、このデータベース管理処理はデータベース管理部１８のジョブ起動により開始され、ステップＳ１でホスト１０にデータベースコネクタとして接続しているＡＩサーバ１４−１〜１４−３のそれぞれにつき、利用させるデータベース領域、即ちページ領域の割当を行う。
【００６２】
次にステップＳ２で、データベース割当領域につきページ単位に版数初期値０を設定して版数管理テーブル３０を生成する。続いてステップＳ３でＡＩサーバ側からの検索処理要求の有無をチェックしており、検索処理要求があるとステップＳ４に進み、データベース割当領域に排他ロックを掛けた後に検索処理を開始する。勿論、他のトランザクションにより排他ロックが掛けられていれば、その解除を待って排他ロックを掛ける。
【００６３】
続いてステップＳ５でレコード単位の検索ヒットの有無をチェックしており、検索ヒットがあると、ステップＳ６で検索レコードをアプリケーションに通知し、ステップＳ７で割当領域の最終レコードの検索終了か否かチェックし、最終レコードの検索終了までステップＳ５からの処理を繰り返す。
【００６４】
割当領域の最終レコードの検索が終了すると、ステップＳ８で検索レコードを含むページの版数を版数管理テーブル３０から取得し、アプリケーションに通知する。続いてステップＳ９で排他ロックを解除し、検索処理のトランザクションを終了する。
【００６５】
ステップＳ１０はレコードの更新処理要求の有無をチェックしており、更新処理要求を判別すると、図９のステップＳ１１で更新対象レコードを含むページに排他ロックを掛けた後、ステップＳ１２でアプリケーションから更新対象レコードを含むページの検索時の版数を取得する。続いてステップＳ１３で、版数管理テーブル３０から更新対象レコードを含むページの現在の版数を取得する。
【００６６】
ステップＳ１４では検索時の版数と現在の版数が一致するか否か比較判別し、一致していた場合にはステップＳ１５で検索対象レコードを含むページに排他ロックを掛けてレコードを更新する。そしてステップＳ１７で更新完了を判別すると、ステップＳ１８で排他ロックを解除してレコード更新を終了する。
【００６７】
一方、ステップＳ１４で検索時の版数と現在の版数が不一致であった場合には、ステップＳ１６に進み、更新要求をキャンセルし、検索処理からのリトライを要求するエラー通知をアプリケーションに対し行い、ステップＳ１８で排他ロックを解除して一連の処理を終了する。
【００６８】
また本発明は、図１のホスト１０に設けたデータベース管理部１８として機能するデータベース管理プログラムを提供するものであり、このデータベース管理プログラムは図８及び図９のフローチャートに示した手順をプログラム内容として備えている。
【００６９】
また本発明のデータベース管理プログラムは、ホスト１０を構成するコンピュータのハードウェア環境で実行される。図１のホスト１０を構成するコンピュータは、ＣＰＵのバスにＲＡＭ、ハードディスクコントローラ（ソフト）、フロッピィディスクドライバ（ソフト）、ＣＤ−ＲＯＭドライバ（ソフト）、マウスコントローラ、キーボードコントローラ、ディスプレイコントローラ、通信用ボードが接続されている。
【００７０】
ハードディスクコントローラはハードディスクドライブを接続し、本発明のデータベース管理処理を実行するプログラムをローディングしており、コンピュータの起動時にハードディスクドライブから必要なプログラムを呼び出してＲＡＭ上に展開し、ＣＰＵにより実行する。
【００７１】
なお上記の実施形態にあっては、複数ページに含まれる複数のレコードを更新対象とした場合、現在の版数と検索時の版数が一致したページにつき更新し、版数が不一致となったページについてはエラー通知を行っているが、一部の更新対象ページの版数が不一致となった場合に全ての更新対象ページにつき更新を行うことなくエラーを通知し、検索からのリトライ処理を行うようにしてもよい。
【００７２】
また本発明は、その目的と利点を損なうことのない適宜の変形を含み、更に上記の実施形態に示した数値による限定は受けない。
【００７３】
ここで本発明の特徴をまとめて列挙すると次の付記のようになる。
（付記）
（付記１）
データベースを管理するホストコンピュータに、
データベースを排他制御する最小単位毎に版数を登録して管理し、前記最小単位内での更新処理に伴い対応する版数を更新する版数管理ステップと、
前記データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を前記検索処理要求元に通知して保存させる検索ステップと、
前記検索結果の通知に基づいてデータベース更新処理要求を受信した際に、前記更新処理要求元から取得した検索時の版数と前記版数管理ステップで管理している現在の版数とを比較し、両者が一致した場合に前記データベースを更新し、不一致の場合はエラーを通知する更新ステップと、
を実行させることを特徴とするデータベース管理プログラム。（１）
【００７４】
（付記２）
付記１記載のデータベース管理プログラムに於いて、
前記データベースを排他制御する最小単位は、複数のレコードを含むページ単位であり、
前記版数管理ステップは、データベースを排他制御するページ毎に版数を登録して管理し、前記ページ内でのレコードの更新処理に伴い対応する版数を更新し、
前記検索ステップは、前記データベースのレコード検索要求を受信した際にデータベースの検索処理を実行し、検索レコードを前記要求元に通知すると共に、前記検索レコードに対応したページの版数を検索要求元に通知して保存させ、
前記更新ステップは、前記検索レコードの通知に基づいてレコード更新要求を受信した際に、前記更新要求元から取得した検索時の版数と前記版数管理ステップで管理していることを特徴とするデータベース管理プログラム。（２）
【００７５】
（付記３）
付記１記載のデータベース管理プログラムに於いて、
前記検索ステップは、検索開始時に前記排他制御の最小単位で指定されるデータベースの検索対象領域に排他ロックを設定し、検索終了時に前記排他ロックを解除し、
前記更新ステップは、更新開始時に更新対象データを含む前記排他制御の最小単位となるデータベースの更新対象領域に排他ロックを設定し、更新終了時に前記排他ロックを解除することを特徴とするデータベース管理プログラム。（３）
【００７６】
（付記４）
付記１記載のデータベース管理プログラムに於いて、前記更新ステップは、前記検索結果の通知から人的操作のタイムラグを経てデータベース更新処理要求を受信することを特徴とするデータベース管理プログラム。
【００７７】
（付記５）
付記１記載のプログラムに於いて、前記版数管理ステップは、運用開始時に、検索要求元に割当られたデータベース領域を対象に排他制御する最小単位毎に版数の初期値を設定し、更新処理毎に前記版数を１つずつ増加させることを特徴とするプログラム。
【００７８】
（付記６）
付記１記載のデータベース管理プログラムに於いて、前記検索ステップは、前記エラー通知として、検索処理からのリトライ要求を通知することを特徴とするデータベース管理プログラム。
【００７９】
（付記７）
付記１記載のデータベース管理プログラムに於いて、前記データベースは、ホストの基幹データベースであり、前記検索処理及び更新処理の要求元はサーバ上のアプリケーションであることを特徴とするデータベース管理プログラム。
【００８０】
（付記８）
データベースを排他制御する最小単位毎に版数を登録して管理し、前記最小単位内での更新処理に伴い対応する版数を更新する版数管理ステップと、
前記データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を前記検索処理要求元に通知して保存させる検索ステップと、
前記検索結果の通知に基づいてデータベース更新処理要求を受信した際に、前記更新処理要求元から取得した検索時の版数と前記版数管理ステップで管理している現在の版数とを比較し、両者が一致した場合に前記データベースを更新し、不一致の場合はエラーを通知する更新ステップと、
を備えたことを特徴とするデータベース管理方法。（４）
【００８１】
（付記９）
データベースを排他制御する最小単位毎に版数を登録して管理し、前記最小単位内での更新処理に伴い対応する版数を更新する版数管理部と、
前記データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を前記検索処理要求元に通知して保存させる検索部と、
前記検索結果の通知に基づいてデータベース更新処理要求を受信した際に、前記更新処理要求元から取得した検索時の版数と前記版数管理部で管理している現在の版数とを比較し、両者が一致した場合に前記データベースを更新し、不一致の場合はエラーを通知する更新部と、
を備えたことを特徴とするデータベース管理装置。（５）
【００８２】
（付記１０）
データベースを管理するコンピュータに、
データベースを排他制御する最小単位毎に版数を登録して管理し、前記最小単位内での更新処理に伴い対応する版数を更新する版数管理ステップと、
前記データベースの検索処理要求を受信した際にデータベースの検索処理を実行し、検索結果を検索処理要求元に通知すると共に、全検索結果に対応した最小単位の版数を前記検索処理要求元に通知して保存させる検索ステップと、
前記検索結果の通知に基づいてデータベース更新処理要求を受信した際に、前記更新処理要求元から取得した検索時の版数と前記版数管理ステップで管理している現在の版数とを比較し、両者が一致した場合に前記データベースを更新し、不一致の場合はエラーを通知する更新ステップと、
を実行させることを特徴とするデータベース管理プログラムを格納したコンピュータが読み取り可能な記録媒体。
【図面の簡単な説明】
【００８３】
【図１】本発明のデータベース管理処理の機能構成のブロック図
【図２】図１の基幹データベースにおけるページ構成の説明図
【図３】図１の版数管理テーブルの説明図
【図４】図１の排他ロック制御で使用する排他管理テーブルの説明図
【図５】本発明におけるホストとサーバにおける版数管理を伴うデータベース管理処理のタイムチャート
【図６】図５に続くデータベース管理処理のタイムチャート
【図７】サーバ側の版数保存テーブルと更新時のホスト側の版数管理テーブルの具体例の説明図
【図８】本発明によるデータベース管理処理のフローチャート
【図９】図８に続くデータベース管理処理のフローチャート
【符号の説明】
【００８４】
１０：ホスト
１２：ネットワーク
１４−１〜１４−３：ＡＩサーバ
１６，３４：アダプタ
１８：データベース管理部
２０：基幹データベース
２２−１〜２２−ｎ：ページ
２４：版数管理部
２６：検索処理部
２８：更新処理部
３０：版数管理テーブル
３２：排他ロック管理テーブル
３６：アプリケーション
３８：検索要求部
４０：更新要求部
４２：版数保存テーブル
【図１】
2006085539.tif 000003
【図２】
2006085539.tif 000004
【図３】
2006085539.tif 000005
【図４】
2006085539.tif 000006
【図５】
2006085539.tif 000007
【図６】
2006085539.tif 000008
【図７】
2006085539.tif 000009
【図８】
2006085539.tif 000010
【図９】
2006085539.tif 000011