JPH04139545A - データベース更新処理方式 - Google Patents
データベース更新処理方式Info
- Publication number
- JPH04139545A JPH04139545A JP2263323A JP26332390A JPH04139545A JP H04139545 A JPH04139545 A JP H04139545A JP 2263323 A JP2263323 A JP 2263323A JP 26332390 A JP26332390 A JP 26332390A JP H04139545 A JPH04139545 A JP H04139545A
- Authority
- JP
- Japan
- Prior art keywords
- database
- buffer
- application program
- processing
- record
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、データベース更新処理方式に関し、特に、複
数のアプリケーションプログラムが複数のデータベース
レコードをそれぞれに参照更新するデータベースシステ
ムにおいて、他アプリケーションプログラムから参照が
不可能な排他モードでの排他期間を短くして、複数のデ
ータベースレコードの更新を行うデータベース更新処理
方式に関するものである。
数のアプリケーションプログラムが複数のデータベース
レコードをそれぞれに参照更新するデータベースシステ
ムにおいて、他アプリケーションプログラムから参照が
不可能な排他モードでの排他期間を短くして、複数のデ
ータベースレコードの更新を行うデータベース更新処理
方式に関するものである。
従来、データベースシステムにおいて、共有資源のデー
タベースレコードは、できるだけ各々のアプリケーショ
ンプログラムが混乱なく任意に参照更新できるように、
互いに排他をかけて処理を行う。複数のアプリケーショ
ンプログラムから参照更新されるデータベースレコード
については、各アプリケーションプログラムの処理が、
参照処理どうしであれば、同時に参照ができるように、
他アプリケーションプログラムから参照可能な共有モー
ドでの排他をかけて参照処理を行う。また、更新処理で
あれば、そのデータベースレコードを専有できるように
するため、他アプリケーションプログラムから参照不可
能な排他モードでの排他をかけた更新処理を行う。
タベースレコードは、できるだけ各々のアプリケーショ
ンプログラムが混乱なく任意に参照更新できるように、
互いに排他をかけて処理を行う。複数のアプリケーショ
ンプログラムから参照更新されるデータベースレコード
については、各アプリケーションプログラムの処理が、
参照処理どうしであれば、同時に参照ができるように、
他アプリケーションプログラムから参照可能な共有モー
ドでの排他をかけて参照処理を行う。また、更新処理で
あれば、そのデータベースレコードを専有できるように
するため、他アプリケーションプログラムから参照不可
能な排他モードでの排他をかけた更新処理を行う。
複数のデータベースレコードの更新処理を行うため、更
新対象のデータベースレコードを検索するとき、排他モ
ードでの排他をかけて検索処理を行うと、他のアプリケ
ーションプログラムでの参照処理が不必要に待たされ、
共有モードで排他をかけて検索処理を行うと、更新対象
のデータベースレコードを検索した後に排他モードに変
更しなければならず、この間に他のアプリケーションプ
ログラムにより排他モードでの排他をかけられた場合な
どでは、デッドロックが発生しやすくなるという問題が
ある。
新対象のデータベースレコードを検索するとき、排他モ
ードでの排他をかけて検索処理を行うと、他のアプリケ
ーションプログラムでの参照処理が不必要に待たされ、
共有モードで排他をかけて検索処理を行うと、更新対象
のデータベースレコードを検索した後に排他モードに変
更しなければならず、この間に他のアプリケーションプ
ログラムにより排他モードでの排他をかけられた場合な
どでは、デッドロックが発生しやすくなるという問題が
ある。
更新対象のデータベースレコードを検索している間は、
他のアプリケーションプログラムでの参照が待たされる
ことなく、かつデッドロックの発生しにくい排他制御方
法として、例えば、特開昭63−124139号公報に
記載の「共有資源排他制御方式Jの提案がある。この共
有資源排他制御方式では、共有モードを参照共有モード
と更新共有モードに分けておき、更新のための参照処理
は更新共有モードで排他をかけ、更新のない参照処理は
参照共有モードで排他をかけて処理を行う。
他のアプリケーションプログラムでの参照が待たされる
ことなく、かつデッドロックの発生しにくい排他制御方
法として、例えば、特開昭63−124139号公報に
記載の「共有資源排他制御方式Jの提案がある。この共
有資源排他制御方式では、共有モードを参照共有モード
と更新共有モードに分けておき、更新のための参照処理
は更新共有モードで排他をかけ、更新のない参照処理は
参照共有モードで排他をかけて処理を行う。
これにより、更新のための参照処理と、更新のない参照
処理どうしであれば、同時に参照できるようになる。参
照共有モードでは、既に排他モードで排他がかかってい
る場合にのみ待ち合せ、更新のための参照処理どうしで
あれば、同時に参照できないようにする。更新共有モー
ドでは、既に更新共有モードまたは排他モードで排他が
かかっている場合に待ち合わせる。なお、データベース
レコードを更新する際は、更新共有モードを排他モード
に変更してから更新処理を行う。
処理どうしであれば、同時に参照できるようになる。参
照共有モードでは、既に排他モードで排他がかかってい
る場合にのみ待ち合せ、更新のための参照処理どうしで
あれば、同時に参照できないようにする。更新共有モー
ドでは、既に更新共有モードまたは排他モードで排他が
かかっている場合に待ち合わせる。なお、データベース
レコードを更新する際は、更新共有モードを排他モード
に変更してから更新処理を行う。
このような排他制御を行うことにより、更新対象のデー
タベースレコードを検索している間、他のアプリケーシ
ョンプログラムの更新のない参照処理が待たされないた
め、参照処理の待ち時間が短縮される。
タベースレコードを検索している間、他のアプリケーシ
ョンプログラムの更新のない参照処理が待たされないた
め、参照処理の待ち時間が短縮される。
ところで、上述した従来の技術において、各々のデータ
ベースレコードに対する排他の解除は、通常、排他をか
けたアプリケーションプログラムの終了時に行なわれる
。データベースレコード更新時には、排他モードで排他
をかけるため、当該アプリケーションプログラムが終了
するまで、他のアプリケーションプログラムは当該デー
タベースレコードを参照できないことになる。
ベースレコードに対する排他の解除は、通常、排他をか
けたアプリケーションプログラムの終了時に行なわれる
。データベースレコード更新時には、排他モードで排他
をかけるため、当該アプリケーションプログラムが終了
するまで、他のアプリケーションプログラムは当該デー
タベースレコードを参照できないことになる。
また、特開昭63−124139号公報の記載の「共有
資源排他制御方式」でも、更新のための参照(検索)処
理の間は、他のアプリケーションプログラムの更新のな
い参照処理は待たされないが、その後のデータベースレ
コードを更新する時には、排他モードでの排他をかけ、
当該アプリケーションプログラム終了時までは排他を解
除しないので、他のアプリケーションプログラムはその
間は当該データベースレコードを参照できない。
資源排他制御方式」でも、更新のための参照(検索)処
理の間は、他のアプリケーションプログラムの更新のな
い参照処理は待たされないが、その後のデータベースレ
コードを更新する時には、排他モードでの排他をかけ、
当該アプリケーションプログラム終了時までは排他を解
除しないので、他のアプリケーションプログラムはその
間は当該データベースレコードを参照できない。
このため、大量にデータベースレコードを更新するアプ
リケーションプログラムを実行する場合、排他モードで
の排他をかけられるデータベースレコードが多くなり、
また、排他を解除されるまでの時間が長くかかり、他の
アプリケーションプログラムの参照処理が長時間時たさ
れるという問題がある。
リケーションプログラムを実行する場合、排他モードで
の排他をかけられるデータベースレコードが多くなり、
また、排他を解除されるまでの時間が長くかかり、他の
アプリケーションプログラムの参照処理が長時間時たさ
れるという問題がある。
本発明は、上記問題点を解決するためになされたもので
ある。
ある。
本発明の目的は、データベースシステムにおいて、大量
にデータベースレコードを更新するアプリケーションプ
ログラムの実行時にも、他のアプリケーションプログラ
ムの参照処理が長時開時たされることのないデータベー
ス更新処理方式を提供することにある。
にデータベースレコードを更新するアプリケーションプ
ログラムの実行時にも、他のアプリケーションプログラ
ムの参照処理が長時開時たされることのないデータベー
ス更新処理方式を提供することにある。
上記目的を達成するために、本発明のデータベース更新
処理方式は、複数のデータベースレコードを格納してい
る媒体からメモリ上のデータベースバッファに複数のデ
ータベースレコードヲ読み込み、?II数のアプリケー
ションプログラムがそれぞれにデータベースレコードの
排他を指示して。
処理方式は、複数のデータベースレコードを格納してい
る媒体からメモリ上のデータベースバッファに複数のデ
ータベースレコードヲ読み込み、?II数のアプリケー
ションプログラムがそれぞれにデータベースレコードの
排他を指示して。
複数のデータベースレコードをそれぞれに参照更新する
データベースシステムにおいて、複数のデータベースレ
コードを更新するアプリケーションプログラムに対して
、当該アプリケーションプログラム専用のデータベース
バッファ領域のローカルバッファを設定し、当該アプリ
ケーションプログラムの複数のデータベースレコードの
更新処理は、更新するデータベースレコードに対して他
アプリケーションプログラムから参照可能な共有モード
での排他を確保して当該データベースレコードをデータ
ベースバッファからローカルバッファにコピーし、ロー
カルバッファ上で尚該データベースレコードの更新を行
い、当該アプリケーションプログラム終了時に、データ
ベースバッファ上の当該アプリケーションプログラムが
更新した当該データベースレコード全てに対して、他ア
プリケーションプログラムから参照が不可能な排他モー
ドでの排他を確保し、データベースバッファ上の当該デ
ータベースレコードをローカルバッファ上で更新したデ
ータベースレコードに書き換え、当該データベースレコ
ードの排他を解除して、データベースレコードの更新処
理を終了することを特徴とする。
データベースシステムにおいて、複数のデータベースレ
コードを更新するアプリケーションプログラムに対して
、当該アプリケーションプログラム専用のデータベース
バッファ領域のローカルバッファを設定し、当該アプリ
ケーションプログラムの複数のデータベースレコードの
更新処理は、更新するデータベースレコードに対して他
アプリケーションプログラムから参照可能な共有モード
での排他を確保して当該データベースレコードをデータ
ベースバッファからローカルバッファにコピーし、ロー
カルバッファ上で尚該データベースレコードの更新を行
い、当該アプリケーションプログラム終了時に、データ
ベースバッファ上の当該アプリケーションプログラムが
更新した当該データベースレコード全てに対して、他ア
プリケーションプログラムから参照が不可能な排他モー
ドでの排他を確保し、データベースバッファ上の当該デ
ータベースレコードをローカルバッファ上で更新したデ
ータベースレコードに書き換え、当該データベースレコ
ードの排他を解除して、データベースレコードの更新処
理を終了することを特徴とする。
データベースシステムは、複数のアプリケーションプロ
グラムが複数のデータベースレコードをそれぞれに参照
更新する。このため、?Ii数のデータベースレコード
を格納している媒体からメモリ上のデータベースバッフ
ァに複数のデータベースレコードを読み込み、複数のア
プリケーションプログラムがそれぞれにデータベースレ
コードの排他を指示して、複数のデータベースレコード
をそれぞれに参照更新する。
グラムが複数のデータベースレコードをそれぞれに参照
更新する。このため、?Ii数のデータベースレコード
を格納している媒体からメモリ上のデータベースバッフ
ァに複数のデータベースレコードを読み込み、複数のア
プリケーションプログラムがそれぞれにデータベースレ
コードの排他を指示して、複数のデータベースレコード
をそれぞれに参照更新する。
複数のデータベースレコードを更新するアプリケーショ
ンプログラムに対しては、当該アプリケーションプログ
ラム専用のデータベースバッファ領域のローカルバッフ
ァを設定して、当該アプリケーションプログラムによる
複数のデータベースレコードの更新処理を行う。
ンプログラムに対しては、当該アプリケーションプログ
ラム専用のデータベースバッファ領域のローカルバッフ
ァを設定して、当該アプリケーションプログラムによる
複数のデータベースレコードの更新処理を行う。
複数のデータベースレコードの更新処理では、当該アプ
リケーションプログラムが、更新するデータベースレコ
ードに対して他アプリケーションプログラムから参照可
能な共有モードでの排他を確保して、更新する当該デー
タベースレコードをデータベースバッファからローカル
バッファにコピーする。そして、ローカルバッファ上で
当該アプリケーションプログラムによる複数の当該デー
タベースレコードの更新を行う。この間、更新を行うデ
ータベースレコードの排他は、他アプリケーションプロ
グラムから参照可能な共有モードでの排他であり、しか
も、コピーを行う時のみであるので、他アプリケーショ
ンプログラムからは任意時に参照可能となっている。
リケーションプログラムが、更新するデータベースレコ
ードに対して他アプリケーションプログラムから参照可
能な共有モードでの排他を確保して、更新する当該デー
タベースレコードをデータベースバッファからローカル
バッファにコピーする。そして、ローカルバッファ上で
当該アプリケーションプログラムによる複数の当該デー
タベースレコードの更新を行う。この間、更新を行うデ
ータベースレコードの排他は、他アプリケーションプロ
グラムから参照可能な共有モードでの排他であり、しか
も、コピーを行う時のみであるので、他アプリケーショ
ンプログラムからは任意時に参照可能となっている。
当該アプリケーションプログラムの終了処理時には、デ
ータベースバッファ上の当該アプリケーションプログラ
ムが更新した当該データベースレコード全てに対して、
他アプリケーションプログラムから参照が不可能な排他
モードでの排他を確保し、データベースバッファ上の当
該データベースレコードを、ローカルバッファ上で更新
したデータベースレコードに書き換える。そして、デー
タベースバッファの当該データベースレコードの排他を
解除して、データベースレコードの更新処理を終了する
。
ータベースバッファ上の当該アプリケーションプログラ
ムが更新した当該データベースレコード全てに対して、
他アプリケーションプログラムから参照が不可能な排他
モードでの排他を確保し、データベースバッファ上の当
該データベースレコードを、ローカルバッファ上で更新
したデータベースレコードに書き換える。そして、デー
タベースバッファの当該データベースレコードの排他を
解除して、データベースレコードの更新処理を終了する
。
これにより、大量にデータベースレコードを更新するア
プリケーションプログラムを実行する場合にも、各々の
データベースレコードの更新ハJ有モードでの排他によ
りローカルバッファ上に:ピー処理を行い、コピーされ
た各データベースシステムで更新処理が行なわれており
、他のアブl。
プリケーションプログラムを実行する場合にも、各々の
データベースレコードの更新ハJ有モードでの排他によ
りローカルバッファ上に:ピー処理を行い、コピーされ
た各データベースシステムで更新処理が行なわれており
、他のアブl。
ケーションプログラムの参照処理が長時間時た2れるこ
とはない。また、アプリケーションプロろラムが正常終
了しない時には、データベースレコードを更新前の状態
に戻さなければならないが、ここでは、終了処理のロー
カルバッファのデータベースレコードの内容をデータベ
ースバッファCデータベースレコードに書き換える処理
を行なわなければ、更新される前のデータベースレコー
ドがそのままで残っており、特別な処理を行なわなくて
もよい。
とはない。また、アプリケーションプロろラムが正常終
了しない時には、データベースレコードを更新前の状態
に戻さなければならないが、ここでは、終了処理のロー
カルバッファのデータベースレコードの内容をデータベ
ースバッファCデータベースレコードに書き換える処理
を行なわなければ、更新される前のデータベースレコー
ドがそのままで残っており、特別な処理を行なわなくて
もよい。
以下、本発明の一実施例を図面を用いて具体的に説明す
る。
る。
第1図は、本発明の一実施例にかかるデータベースシス
テムの構成を示すブロック図である。第1図において、
1は複数のデータベースレコードを更新するアプリケー
ションプログラム、2はデータベースレコードを参照す
るアプリケーションプログラムである。また、3はデー
タベース管理システム、4はメモリ、5は処理装置、6
はデータベースバッファのグローバルバッファ、7はデ
ータベースバッファの1部の専用領域であるローカルバ
ッファ、8はディスク装置のローカルバッファ用退避媒
体、9はディスク装置のデータベース格納媒体である。
テムの構成を示すブロック図である。第1図において、
1は複数のデータベースレコードを更新するアプリケー
ションプログラム、2はデータベースレコードを参照す
るアプリケーションプログラムである。また、3はデー
タベース管理システム、4はメモリ、5は処理装置、6
はデータベースバッファのグローバルバッファ、7はデ
ータベースバッファの1部の専用領域であるローカルバ
ッファ、8はディスク装置のローカルバッファ用退避媒
体、9はディスク装置のデータベース格納媒体である。
データベース格納媒体9には、データベースレコード1
0が格納されており、データベースレコード10の参照
処理および更新処理を行う場合には、複数のデータベー
スレコード10がメモリ4上のグローバルバッファ6に
一括して読み込まれ、グローバルバッファ6に複数のデ
ータベースレコード11が格納されている状態でデータ
ベース処理が行なわれる。
0が格納されており、データベースレコード10の参照
処理および更新処理を行う場合には、複数のデータベー
スレコード10がメモリ4上のグローバルバッファ6に
一括して読み込まれ、グローバルバッファ6に複数のデ
ータベースレコード11が格納されている状態でデータ
ベース処理が行なわれる。
例えば、アプリケーションプログラム2はデータベース
レコード11の参照のみを行い、アプリケーションプロ
グラム1はデータベースレコード10を大量に更新する
処理を行う。アプリケーションプログラム1およびアプ
リケーションプログラム2からデータベースレコード1
0への参照更新処理は、データベース管理システム3を
介して行う。アプリケーションプログラム1の処理に対
しては、まず、ローカルバッファ7をメモリ4上に設け
、アプリケーションプログラム1が更新するデータベー
スレコード12を、グローバルバッファ6からローカル
バッファ7ヘコピーし、コピーしたローカルバッファ7
上において、当該データベースレコード12の更新処理
を行う。また、ローカルバッファ用退避媒体8は、ロー
カルバッファ7の満杯時にその内容を退避するための格
納領域を供給する。
レコード11の参照のみを行い、アプリケーションプロ
グラム1はデータベースレコード10を大量に更新する
処理を行う。アプリケーションプログラム1およびアプ
リケーションプログラム2からデータベースレコード1
0への参照更新処理は、データベース管理システム3を
介して行う。アプリケーションプログラム1の処理に対
しては、まず、ローカルバッファ7をメモリ4上に設け
、アプリケーションプログラム1が更新するデータベー
スレコード12を、グローバルバッファ6からローカル
バッファ7ヘコピーし、コピーしたローカルバッファ7
上において、当該データベースレコード12の更新処理
を行う。また、ローカルバッファ用退避媒体8は、ロー
カルバッファ7の満杯時にその内容を退避するための格
納領域を供給する。
次に、各アプリケーションプログラムにおけるデータベ
ース管理システムによる処理要素のデータベースレコー
ドの参照処理、更新処理および同期点処理の各処理につ
いて説明する。
ース管理システムによる処理要素のデータベースレコー
ドの参照処理、更新処理および同期点処理の各処理につ
いて説明する。
第2図は、データベースレコードの参照処理の処理フロ
ーを示すフローチャートである。参照処理は、例えば、
アプリケーションプログラム2がグローバルバッファ6
の読み込んだデータベースレコード11に対して行う参
照処理である。参照処理は、他アプリケーションプログ
ラムから参照可能な共有モードでの排他をかけて行う。
ーを示すフローチャートである。参照処理は、例えば、
アプリケーションプログラム2がグローバルバッファ6
の読み込んだデータベースレコード11に対して行う参
照処理である。参照処理は、他アプリケーションプログ
ラムから参照可能な共有モードでの排他をかけて行う。
まず、処理ステップ21において、グローバルバッファ
上のデータベースレコードに共有モードで排他をかけ、
処理ステップ22において、参照する当該データベース
レコードを出力フィールドにセットして参照処理を終了
する。
上のデータベースレコードに共有モードで排他をかけ、
処理ステップ22において、参照する当該データベース
レコードを出力フィールドにセットして参照処理を終了
する。
第3図は、データベースレコードの更新処理の処理フロ
ーを示すフローチャートである。この更新処理は、例え
ば、アプリケーションプログラム1がローカルバッファ
7上にコピーしたデータベースレコード12に対して行
う第1の更新処理と、グローバルバッファ6上における
データベースレコード11に対して行う第2の更新処理
とがオプションで選択されて行なわれるように構成され
ている。
ーを示すフローチャートである。この更新処理は、例え
ば、アプリケーションプログラム1がローカルバッファ
7上にコピーしたデータベースレコード12に対して行
う第1の更新処理と、グローバルバッファ6上における
データベースレコード11に対して行う第2の更新処理
とがオプションで選択されて行なわれるように構成され
ている。
更新処理では、まず、処理ステップ3oにおいて、ロー
カルバッファ使用のオプションの判定を行う。オプショ
ンがなければ、処理ステップ37において、グローバル
バッファ上のデータベースレコード対して排他モードで
排他をかけ、次の処理ステップ38において、データベ
ースレコードの内容をグローバルバッファ上で更新する
処理を行い、更新処理を終了する。この場合には、更新
処理を行ったデータベースレコードに対しては、当該デ
ータベースレコードの更新処理と同時に更新する他のデ
ータベースレコードの更新処理の終了処理を行う同期点
処理(第4図)を行うまでの間は、排他モードでの排他
は解除しない。したがって、更新が行なわれた当該デー
タベースレコードは中間結果となっており、他からの参
照は禁止されている。
カルバッファ使用のオプションの判定を行う。オプショ
ンがなければ、処理ステップ37において、グローバル
バッファ上のデータベースレコード対して排他モードで
排他をかけ、次の処理ステップ38において、データベ
ースレコードの内容をグローバルバッファ上で更新する
処理を行い、更新処理を終了する。この場合には、更新
処理を行ったデータベースレコードに対しては、当該デ
ータベースレコードの更新処理と同時に更新する他のデ
ータベースレコードの更新処理の終了処理を行う同期点
処理(第4図)を行うまでの間は、排他モードでの排他
は解除しない。したがって、更新が行なわれた当該デー
タベースレコードは中間結果となっており、他からの参
照は禁止されている。
一方、処理ステップ30のオプションの判定で、オプシ
ョンがあれば、次の処理ステップ31において、グロー
バルバッファ上のデータベースレコードに共有モードで
の排他をかける。次に処理ステップ32において、当該
データベースレコードがローカルバッファまたはローカ
ルバッファ退避媒体上に存在するか否かを判定する。更
新を行う当該データベースレコードが存在する場合、処
理ステップ36に進んで、ローカルバッファ上で当該デ
ータベースレコードの更新を行う。一方、当該データベ
ースレコードがローカルバッファまたはローカルバッフ
ァ退避媒体上に存在しない場合には、次の処理ステップ
33において、ローカルバッファに空きがあるか否かを
判定し、空きが無ければ、次の処理ステップ34におい
て、ローカルバッファ上のルコードをローカルバッファ
退避媒体に退避して空き領域を確保した後に処理ステッ
プ35に進む、また、空きがあれば、そのまま処理ステ
ップ35に進んで、グローバルバッファ上の更新対象の
データベースレコードをローカルバッファの空き領域に
コピーを行う。次に、処理ステップ36において、ロー
カルバッファ上で更新対象のデータベースレコードの更
新を行い、処理を終了する。
ョンがあれば、次の処理ステップ31において、グロー
バルバッファ上のデータベースレコードに共有モードで
の排他をかける。次に処理ステップ32において、当該
データベースレコードがローカルバッファまたはローカ
ルバッファ退避媒体上に存在するか否かを判定する。更
新を行う当該データベースレコードが存在する場合、処
理ステップ36に進んで、ローカルバッファ上で当該デ
ータベースレコードの更新を行う。一方、当該データベ
ースレコードがローカルバッファまたはローカルバッフ
ァ退避媒体上に存在しない場合には、次の処理ステップ
33において、ローカルバッファに空きがあるか否かを
判定し、空きが無ければ、次の処理ステップ34におい
て、ローカルバッファ上のルコードをローカルバッファ
退避媒体に退避して空き領域を確保した後に処理ステッ
プ35に進む、また、空きがあれば、そのまま処理ステ
ップ35に進んで、グローバルバッファ上の更新対象の
データベースレコードをローカルバッファの空き領域に
コピーを行う。次に、処理ステップ36において、ロー
カルバッファ上で更新対象のデータベースレコードの更
新を行い、処理を終了する。
ここでのローカルバッファ使用のオプションがある場合
の更新処理では、グローバルバッファ上のデータベース
レコード対しては、コピー処理を行うだけであり、参照
処理と同様な共有モードの排他をかけて処理を行う。し
たがって、この場合には、グローバルバッファ上の当該
データベースレコードは更新されていない前の状態で残
っており、他からの参照が可能となっている。
の更新処理では、グローバルバッファ上のデータベース
レコード対しては、コピー処理を行うだけであり、参照
処理と同様な共有モードの排他をかけて処理を行う。し
たがって、この場合には、グローバルバッファ上の当該
データベースレコードは更新されていない前の状態で残
っており、他からの参照が可能となっている。
第4図は、データベースレコードの同期点処理の処理フ
ローを示すフローチャートである。この同期点処理は、
例えば、アプリケーションプログラム1が同時に行う複
数のデータベースレコードの更新の終了処理となってい
る。処理対象のデータベースレコードにかけた排他モー
ドの解除処理を含む処理となっている。
ローを示すフローチャートである。この同期点処理は、
例えば、アプリケーションプログラム1が同時に行う複
数のデータベースレコードの更新の終了処理となってい
る。処理対象のデータベースレコードにかけた排他モー
ドの解除処理を含む処理となっている。
この同期点処理の場合にも、まず、処理ステップ41に
おいて、ローカルバッファ使用のオプションを判定する
。オプションがなければ、処理ステップ45において、
該当するデータベースの排他の解放のみを行う。また、
ローカルバッファ使用のオプションがあれば、処理ステ
ップ42において、ローカルバッファおよび退避用媒体
上に存在する全てのデータベースレコードに対応するグ
ローバルバッファ上のデータベースレコードに、排他モ
ードで排他をかける。次に、処理ステップ43において
、グローバルバッファにローカルバッファ上のデータベ
ースレコードをコピーし、更に、処理ステップ44にお
いて、グローバルバッファに退避用媒体上のデータベー
スレコードをコピーする。そして、次に処理ステップ4
5において排他を解放する。これにより、ローカルバッ
ファ上で更新されたデータベースレコードが、他から参
照可能なグローバルバッファ上のデータベースレコード
として反映される。
おいて、ローカルバッファ使用のオプションを判定する
。オプションがなければ、処理ステップ45において、
該当するデータベースの排他の解放のみを行う。また、
ローカルバッファ使用のオプションがあれば、処理ステ
ップ42において、ローカルバッファおよび退避用媒体
上に存在する全てのデータベースレコードに対応するグ
ローバルバッファ上のデータベースレコードに、排他モ
ードで排他をかける。次に、処理ステップ43において
、グローバルバッファにローカルバッファ上のデータベ
ースレコードをコピーし、更に、処理ステップ44にお
いて、グローバルバッファに退避用媒体上のデータベー
スレコードをコピーする。そして、次に処理ステップ4
5において排他を解放する。これにより、ローカルバッ
ファ上で更新されたデータベースレコードが、他から参
照可能なグローバルバッファ上のデータベースレコード
として反映される。
次に、このようなデータベースレコードに対する参照処
理、更新処理および同期点処理が随時に行なわれるアプ
リケーションプログラムにおけるデータベース更新処理
を説明する。
理、更新処理および同期点処理が随時に行なわれるアプ
リケーションプログラムにおけるデータベース更新処理
を説明する。
第5図は、アプリケーションプログラムにおいてローカ
ルバッファ使用のオプションがない場合のデータベース
更新の処理例を説明する図である。
ルバッファ使用のオプションがない場合のデータベース
更新の処理例を説明する図である。
大量のデータベースレコードの更新を行うアプリケーシ
ョンプログラム1は、一連の処理の中で、データベース
レコードAの更新処理51.データベースレコードBの
更新処理52.および同期点処理53を順次に行い、デ
ータベースの更新を行う。
ョンプログラム1は、一連の処理の中で、データベース
レコードAの更新処理51.データベースレコードBの
更新処理52.および同期点処理53を順次に行い、デ
ータベースの更新を行う。
まず、データベースレコードAの更新処理51を行うと
、データベース管理システム3の処理として、ステップ
51aにおいてデータベースレコードAに排他モードで
排他を確保し、次のステップ51bにおいてグローバル
バッファ6上のデータベースレコードA11aからa′
へ更新する。同様に、データベースレコードBの更新処
理52を行うと、データベース管理システム3の処理と
して、ステップ52aにおいてデータベースレコードB
に排他モードで排他を確保し、次のステップ52bにお
いてグローバルバッファ6上のデータベースレコードB
をbからb′へ更新する。次に当該アプリケーションプ
ログラム1の終了の同期点処理53を行うと、データベ
ース管理システム3の処理として、ステップ53aにお
いてデータベースレコードAとデータベースレコードB
との排他を解除する。
、データベース管理システム3の処理として、ステップ
51aにおいてデータベースレコードAに排他モードで
排他を確保し、次のステップ51bにおいてグローバル
バッファ6上のデータベースレコードA11aからa′
へ更新する。同様に、データベースレコードBの更新処
理52を行うと、データベース管理システム3の処理と
して、ステップ52aにおいてデータベースレコードB
に排他モードで排他を確保し、次のステップ52bにお
いてグローバルバッファ6上のデータベースレコードB
をbからb′へ更新する。次に当該アプリケーションプ
ログラム1の終了の同期点処理53を行うと、データベ
ース管理システム3の処理として、ステップ53aにお
いてデータベースレコードAとデータベースレコードB
との排他を解除する。
アプリケーションプログラム1が正常に終了しなかった
場合、グローバルバッファ6上のデータベースレコード
は更新前の状態に戻す必要があるので、データベースレ
コードAの更新後、アプリケーションプログラムlが正
常に終了するまでの間は、データベースレコードAの内
容を保証するため、他のアプリケーションプログラムが
参照できないように排他モードで排他をかけて更新処理
を行う。このように、ローカルバッファ使用のオプショ
ンを指定しない場合の処理では、データベースレコード
Aの更新要求時からアプリケーションプログラムlの同
時点処理を行う時点まで、データベースレコードAに排
他モードで排他を確保しているので、他のアプリケーシ
ョンプログラムは、その間はデータベースレコードAを
参照できない。
場合、グローバルバッファ6上のデータベースレコード
は更新前の状態に戻す必要があるので、データベースレ
コードAの更新後、アプリケーションプログラムlが正
常に終了するまでの間は、データベースレコードAの内
容を保証するため、他のアプリケーションプログラムが
参照できないように排他モードで排他をかけて更新処理
を行う。このように、ローカルバッファ使用のオプショ
ンを指定しない場合の処理では、データベースレコード
Aの更新要求時からアプリケーションプログラムlの同
時点処理を行う時点まで、データベースレコードAに排
他モードで排他を確保しているので、他のアプリケーシ
ョンプログラムは、その間はデータベースレコードAを
参照できない。
したがって、データベースレコードに対して排他モード
で排他を確保する時間を短くするため、すなわち、他の
アプリケーションプログラムが参照できない時間を短く
するため、ローカルバッファ使用のオプションを指定し
て、データベースの更新処理を行う。
で排他を確保する時間を短くするため、すなわち、他の
アプリケーションプログラムが参照できない時間を短く
するため、ローカルバッファ使用のオプションを指定し
て、データベースの更新処理を行う。
第6図は、アプリケーションプログラムにおいてローカ
ルバッファ使用のオプションがある場合のデータベース
更新の処理例を説明する図である。
ルバッファ使用のオプションがある場合のデータベース
更新の処理例を説明する図である。
大量のデータベースレコードの更新を行うアプリケーシ
ョンプログラムlは、一連の処理の中で、データベース
レコードAの更新処理61.データベースレコードBの
更新処理62.および同期点処理63を順次に行い、デ
ータベースの更新を行う。この場合には、データベース
レコードAとデータベースレコードBを更新するアプリ
ケーションプログラム1に対して、ローカルバッファ7
が設けられる。
ョンプログラムlは、一連の処理の中で、データベース
レコードAの更新処理61.データベースレコードBの
更新処理62.および同期点処理63を順次に行い、デ
ータベースの更新を行う。この場合には、データベース
レコードAとデータベースレコードBを更新するアプリ
ケーションプログラム1に対して、ローカルバッファ7
が設けられる。
アプリケーションプログラム1の実行で、データベース
レコードAの更新処理61を行うと、データベース管理
システム3の処理として、ステップ61aにおいて、デ
ータベースレコードAに共有モードで排他をかけ、次の
ステップ61bにおいて、グローバルバッファ6上のデ
ータベースレコードAの内容をローカルバッファ7にコ
ピーする。次のステップ61cにおいて、ローカルバッ
ファ7上でデータベースレコードAの内容をaからa′
に更新する。同様に、データベースレコードBの更新処
理62を行うと、データベース管理システム3の処理と
して、ステップ62aにおいて、データベースレコード
Bに共有モードで排他をかけ、次のステップ62bにお
いて、グローバルバッファ6上のデータベースレコード
Bの内容をローカルバッファ7にコピーする。次のステ
ップ62cにおいて、ローカルバッファ7上で、データ
ベースレコードBの内容をbからb′へ更新する。アプ
リケーションプログラム1の終了の同期点処理63を行
うと、データベース管理システム3の処理として、ステ
ップ63aにおいて、データベースレコードAおよびデ
ータベースレコードBに排他モードで排他をかける。次
に、ステップロ3bにおいて、ローカルバッファ7上の
データベースレコードAとデータベースレコードBσ内
容で、グローバルバッファ6上のデータベル2レコード
AとデータベースレコードBを更新す2そして、次のス
テップ63cにおいて、データベースレコードAとデー
タベースレコードBとのM1他を解除する。
レコードAの更新処理61を行うと、データベース管理
システム3の処理として、ステップ61aにおいて、デ
ータベースレコードAに共有モードで排他をかけ、次の
ステップ61bにおいて、グローバルバッファ6上のデ
ータベースレコードAの内容をローカルバッファ7にコ
ピーする。次のステップ61cにおいて、ローカルバッ
ファ7上でデータベースレコードAの内容をaからa′
に更新する。同様に、データベースレコードBの更新処
理62を行うと、データベース管理システム3の処理と
して、ステップ62aにおいて、データベースレコード
Bに共有モードで排他をかけ、次のステップ62bにお
いて、グローバルバッファ6上のデータベースレコード
Bの内容をローカルバッファ7にコピーする。次のステ
ップ62cにおいて、ローカルバッファ7上で、データ
ベースレコードBの内容をbからb′へ更新する。アプ
リケーションプログラム1の終了の同期点処理63を行
うと、データベース管理システム3の処理として、ステ
ップ63aにおいて、データベースレコードAおよびデ
ータベースレコードBに排他モードで排他をかける。次
に、ステップロ3bにおいて、ローカルバッファ7上の
データベースレコードAとデータベースレコードBσ内
容で、グローバルバッファ6上のデータベル2レコード
AとデータベースレコードBを更新す2そして、次のス
テップ63cにおいて、データベースレコードAとデー
タベースレコードBとのM1他を解除する。
この更新処理でも、アプリケーションプログラム1が正
常に終了しなかった場合、グローバルバッファ6上のデ
ータベースレコードは、アプリケーションプログラム1
で更新する前の状態に戻さなければならないが、ここで
は、アプリケーションプログラム1が正常終了するまで
グローバルバッファ6上のデータベースレコードは参照
されコピーされているだけで更新されていないので、ア
プリケーションプログラムが正常に終了しなかった場合
にも、特に、データベースレコードを戻す処理を行う必
要としない。したがって、データベースレコードに排他
モードで排他をかけるのは、アプリケーションプログラ
ムの終了時に、ローカルバッファ7のデータベースレコ
ードの内容にグローバルバッファ6を更新する時だけで
ある。
常に終了しなかった場合、グローバルバッファ6上のデ
ータベースレコードは、アプリケーションプログラム1
で更新する前の状態に戻さなければならないが、ここで
は、アプリケーションプログラム1が正常終了するまで
グローバルバッファ6上のデータベースレコードは参照
されコピーされているだけで更新されていないので、ア
プリケーションプログラムが正常に終了しなかった場合
にも、特に、データベースレコードを戻す処理を行う必
要としない。したがって、データベースレコードに排他
モードで排他をかけるのは、アプリケーションプログラ
ムの終了時に、ローカルバッファ7のデータベースレコ
ードの内容にグローバルバッファ6を更新する時だけで
ある。
このように、ローカルバッファ使用のオプションを指定
してデータベース更新処理を行うと、同期点処理の間だ
け、データベースレコードAに排他モードで排他が確保
されているので、他のアプリケーションプログラムから
データベースレコードを参照できない時間が短かくなっ
ている。
してデータベース更新処理を行うと、同期点処理の間だ
け、データベースレコードAに排他モードで排他が確保
されているので、他のアプリケーションプログラムから
データベースレコードを参照できない時間が短かくなっ
ている。
以上、本発明を実施例にもとづき具体的に説明したが、
本発明は、前記実施例に限定されるものではなく、その
要旨を逸脱しない範囲において種々変更可能であること
は言うまでもない。
本発明は、前記実施例に限定されるものではなく、その
要旨を逸脱しない範囲において種々変更可能であること
は言うまでもない。
以上、説明したように1本発明によれば、大量にデータ
ベースレコードを更新するアプリケーションプログラム
を実行している間、排他モードでの排他期間を短縮し、
更新対象のデータベースレコードに対しての他のアプリ
ケーションプログラムが参照できない時間を短縮できる
という効果がある。
ベースレコードを更新するアプリケーションプログラム
を実行している間、排他モードでの排他期間を短縮し、
更新対象のデータベースレコードに対しての他のアプリ
ケーションプログラムが参照できない時間を短縮できる
という効果がある。
第1図は1本発明の一実施例にががるデータベースシス
テムの構成を示すブロック図、第2図は、データベース
レコードの参照処理ノ処理フローを示すフローチャート
、 第3図は、データベースレコードの更新処理の処理フロ
ーを示すフローチャート。 第4向は、データベースレコードの同期点処理の処理フ
ローを示すフローチャート、 第5図は、アプリケーションプログラムにおいてローカ
ルバッファ使用のオプションがない場合のデータベース
更新の処理例を説明する図、第6図は、アプリケーショ
ンプログラムにおいてローカルバッファ使用のオプショ
ンがある場合のデータベース更新の処理例を説明する図
である。 図中、1・・・アプリケーションプログラム、2・・ア
プリケーションプログラム、3・・・データベース管理
システム、4・・・メモリ、5・・・処理装置、6・・
・グローバルバッファ、7・・・ローカルバッファ、8
・・・ローカルバッファ用退避媒体、9・・・データベ
ース格納媒体。
テムの構成を示すブロック図、第2図は、データベース
レコードの参照処理ノ処理フローを示すフローチャート
、 第3図は、データベースレコードの更新処理の処理フロ
ーを示すフローチャート。 第4向は、データベースレコードの同期点処理の処理フ
ローを示すフローチャート、 第5図は、アプリケーションプログラムにおいてローカ
ルバッファ使用のオプションがない場合のデータベース
更新の処理例を説明する図、第6図は、アプリケーショ
ンプログラムにおいてローカルバッファ使用のオプショ
ンがある場合のデータベース更新の処理例を説明する図
である。 図中、1・・・アプリケーションプログラム、2・・ア
プリケーションプログラム、3・・・データベース管理
システム、4・・・メモリ、5・・・処理装置、6・・
・グローバルバッファ、7・・・ローカルバッファ、8
・・・ローカルバッファ用退避媒体、9・・・データベ
ース格納媒体。
Claims (1)
- 1、複数のデータベースレコードを格納している媒体か
らメモリ上のデータベースバッファに複数のデータベー
スレコードを読み込み、複数のアプリケーションプログ
ラムがそれぞれにデータベースレコードの排他を指示し
て、複数のデータベースレコードをそれぞれに参照更新
するデータベースシステムにおいて、複数のデータベー
スレコードを更新するアプリケーションプログラムに対
して、当該アプリケーションプログラム専用のデータベ
ースバッファ領域のローカルバッファを設定し、当該ア
プリケーションプログラムの複数のデータベースレコー
ドの更新処理は、更新するデータベースレコードに対し
て他アプリケーションプログラムから参照可能な共有モ
ードでの排他を確保して当該データベースレコードをデ
ータベースバッファからローカルバッファにコピーし、
ローカルバッファ上で当該データベースレコードの更新
を行い、当該アプリケーションプログラム終了時に、デ
ータベースバッファ上の当該アプリケーションプログラ
ムが更新した当該データベースレコード全てに対して、
他アプリケーションプログラムから参照が不可能な排他
モードでの排他を確保し、データベースバッファ上の当
該データベースレコードをローカルバッファ上で更新し
たデータベースレコードに書き換え、当該データベース
レコードの排他を解除して、データベースレコードの更
新処理を終了することを特徴とするデータベース更新処
理方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2263323A JPH04139545A (ja) | 1990-10-01 | 1990-10-01 | データベース更新処理方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2263323A JPH04139545A (ja) | 1990-10-01 | 1990-10-01 | データベース更新処理方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04139545A true JPH04139545A (ja) | 1992-05-13 |
Family
ID=17387881
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2263323A Pending JPH04139545A (ja) | 1990-10-01 | 1990-10-01 | データベース更新処理方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH04139545A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH06103129A (ja) * | 1992-08-03 | 1994-04-15 | Internatl Business Mach Corp <Ibm> | データ転送方法及び装置 |
| JPH09171482A (ja) * | 1995-12-20 | 1997-06-30 | Nec Corp | マルチメディア情報のオンライン更新システム |
| JP2006277628A (ja) * | 2005-03-30 | 2006-10-12 | Hitachi Systems & Services Ltd | データベース更新装置 |
-
1990
- 1990-10-01 JP JP2263323A patent/JPH04139545A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH06103129A (ja) * | 1992-08-03 | 1994-04-15 | Internatl Business Mach Corp <Ibm> | データ転送方法及び装置 |
| JPH09171482A (ja) * | 1995-12-20 | 1997-06-30 | Nec Corp | マルチメディア情報のオンライン更新システム |
| JP2006277628A (ja) * | 2005-03-30 | 2006-10-12 | Hitachi Systems & Services Ltd | データベース更新装置 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5255387A (en) | Method and apparatus for concurrency control of shared data updates and queries | |
| US5263161A (en) | Non-busy waiting resource control | |
| US20080215784A1 (en) | Realtime-safe read copy update with per-processor read/write locks | |
| JPH06187232A (ja) | 共通データのアクセス管理制御方法 | |
| JPH09311839A (ja) | データ共用方式 | |
| JPH0668736B2 (ja) | 2個のシステムクロックサイクルを利用する書込み動作をもったキャッシュメモリユニットを供与する装置及び方法 | |
| JP2586219B2 (ja) | 高速媒体優先解放型排他方式 | |
| JPH08328933A (ja) | 並列処理システムのファイルアクセス制御方式 | |
| JPH05307478A (ja) | データベース管理システムの構成法 | |
| JP3381079B2 (ja) | キャッシュメモリを用いた排他制御システム | |
| JP2843748B2 (ja) | 排他制御方式 | |
| JP2704028B2 (ja) | ファイル領域管理方式 | |
| JP3460265B2 (ja) | 計算機間のデータ引き継ぎ方法 | |
| WO1993003436A1 (fr) | Procede et appareil servant a reduire la periode de verrouillage d'un tampon partage | |
| JP3511935B2 (ja) | マルチスレッド・プログラムにおけるファイル書込方式 | |
| JP2787107B2 (ja) | バッファ制御方式及び装置 | |
| JP3006527B2 (ja) | クライアント/サーバ型データベースシステム | |
| JP2980610B2 (ja) | トランザクション管理装置 | |
| JPH0346033A (ja) | ジヨブ間データ転送制御方法 | |
| JP3445848B2 (ja) | 外部記憶装置のバッファ制御方法 | |
| JPH01255028A (ja) | 外部記憶装置のアクセス方法 | |
| JPH04350741A (ja) | 索引順編成ファイルのアクセス高速化方法 | |
| JPH0327439A (ja) | プログラムの共有モジュール管理方式 | |
| JPS61194548A (ja) | フアイルアクセス排他制御方式 | |
| JPH0553886A (ja) | テーブルアクセス管理方式 |