JPH0447427A - ファイル更新装置 - Google Patents
ファイル更新装置Info
- Publication number
- JPH0447427A JPH0447427A JP2152674A JP15267490A JPH0447427A JP H0447427 A JPH0447427 A JP H0447427A JP 2152674 A JP2152674 A JP 2152674A JP 15267490 A JP15267490 A JP 15267490A JP H0447427 A JPH0447427 A JP H0447427A
- Authority
- JP
- Japan
- Prior art keywords
- update
- record
- file
- updating
- status
- 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
【発明の詳細な説明】
[産業上の利用分野]
本発明は、オフィスコンピュータ等において、ファイル
上のレコードをリアルタイムで更新させる機能を備えた
ファイル更新装置に関する。
上のレコードをリアルタイムで更新させる機能を備えた
ファイル更新装置に関する。
[発明の概要]
本発明のファイル更新装置は、同一キーレコードに対し
て複数回の更新を行なう際、最初は更新用レコードによ
り指定される更新種及び該当レコードの有無により今回
の更新状態を決定し、2回目以降は更新用レコードによ
り指定される更新種及び前回の更新状態により今回の更
新状態を決定してワークメモリ上で更新処理を行ない、
同一キーレコードに対する処理の最後にファイルを書替
えるようにしたものである。
て複数回の更新を行なう際、最初は更新用レコードによ
り指定される更新種及び該当レコードの有無により今回
の更新状態を決定し、2回目以降は更新用レコードによ
り指定される更新種及び前回の更新状態により今回の更
新状態を決定してワークメモリ上で更新処理を行ない、
同一キーレコードに対する処理の最後にファイルを書替
えるようにしたものである。
[従来技術]
従来のオフィスコンピュータ等におけるファイル更新装
置は、既に作成されているファイルに対して更新を行な
う場合、他のプロセスによりデー夕が書替えられないよ
うにファイル全体にロックを掛け、ファイル単位にレコ
ード情報を更新するこの場合、同一のレコードに対して
複数の更新用レコードがある場合、レコード更新処理を
行なう毎にソースファイルに対するレコードの書込み/
読出しを行なうようにしている。
置は、既に作成されているファイルに対して更新を行な
う場合、他のプロセスによりデー夕が書替えられないよ
うにファイル全体にロックを掛け、ファイル単位にレコ
ード情報を更新するこの場合、同一のレコードに対して
複数の更新用レコードがある場合、レコード更新処理を
行なう毎にソースファイルに対するレコードの書込み/
読出しを行なうようにしている。
例えば第8図に示すようにソースファイル1に記憶され
ているレコードfに対し、3つの更新用レコード2A、
2B、2Cがある場合、まず、上記レコードfがメモリ
3aに読出される。そしてこのメモリ3aに読出された
レコードfが最初の更新用レコード2人に基づいて更新
処理(4a)される。例えばレコードfの特定のフィー
ルド“数量゛に更新用レコード2Aの“数量″′Aが加
算され、その加算結果rf+AJがソースファイル1に
書込まれる。
ているレコードfに対し、3つの更新用レコード2A、
2B、2Cがある場合、まず、上記レコードfがメモリ
3aに読出される。そしてこのメモリ3aに読出された
レコードfが最初の更新用レコード2人に基づいて更新
処理(4a)される。例えばレコードfの特定のフィー
ルド“数量゛に更新用レコード2Aの“数量″′Aが加
算され、その加算結果rf+AJがソースファイル1に
書込まれる。
次いで上記ソースファイル1から更新したレコードf
(f十A)がメモリ3bに読出され、次の更新用レコー
ド2Bに基づいて更新処理(4b)される。例えばレコ
ードfの特定のフィールド“金額゛に更新用レコード2
Bの“金額”Bが加算され、その加算結果rf+A+B
Jがソースファイル1に書込まれる。
(f十A)がメモリ3bに読出され、次の更新用レコー
ド2Bに基づいて更新処理(4b)される。例えばレコ
ードfの特定のフィールド“金額゛に更新用レコード2
Bの“金額”Bが加算され、その加算結果rf+A+B
Jがソースファイル1に書込まれる。
次に上記ソースファイル1がら更新したレコードf (
f+A+B)がメモリ3cJ:読出され、次の更新用レ
コード2Cに基づいて更新処理(4c)される。例えば
レコードfの特定のフィールド“在庫″から更新用レコ
ード2cの“引当“Cが減算され、その減算結果rf+
A+B−CJがソースファイル1に書込まれる。
f+A+B)がメモリ3cJ:読出され、次の更新用レ
コード2Cに基づいて更新処理(4c)される。例えば
レコードfの特定のフィールド“在庫″から更新用レコ
ード2cの“引当“Cが減算され、その減算結果rf+
A+B−CJがソースファイル1に書込まれる。
[発明が解決しようとする課題]
上記従来のファイル更新装置は、同一のレコードに対し
て複数の更新用レコードがある場合、各更新用レコード
に基づいてファイル更新を行なう毎に、ファイルに対し
て読出し/書込み処理を行なわなければならず、この結
果、ファイルに対するアクセス回数が多くなって処理効
率が低下するという問題があった。
て複数の更新用レコードがある場合、各更新用レコード
に基づいてファイル更新を行なう毎に、ファイルに対し
て読出し/書込み処理を行なわなければならず、この結
果、ファイルに対するアクセス回数が多くなって処理効
率が低下するという問題があった。
このような原因は、同一のレコードに対して複数の更新
処理を行なう場合、処理に際して更新状態を記憶してお
らず、従って、1つの更新処理を終了する毎に、その処
理結果をファイルに書込んで記憶させなければならない
ところにあると考えられる。
処理を行なう場合、処理に際して更新状態を記憶してお
らず、従って、1つの更新処理を終了する毎に、その処
理結果をファイルに書込んで記憶させなければならない
ところにあると考えられる。
してみれば、同一のレコードに対して複数の更新処理を
行なう場合、最初の更新時は指定更新種と該当レコード
の有無により今回の更新状態を決定すると共に記憶して
ワークメモリ上での更新処理を行ない、2回目以降は指
定更新種と前回の更新状態により更新状態を決定して上
記ワークメモリ上での更新処理を行ない、同一レコード
に対する最後の処理でファイルを書替えるようi、:
t i ハ、ファイルアクセス回数を減少し得ることは
明らがである。
行なう場合、最初の更新時は指定更新種と該当レコード
の有無により今回の更新状態を決定すると共に記憶して
ワークメモリ上での更新処理を行ない、2回目以降は指
定更新種と前回の更新状態により更新状態を決定して上
記ワークメモリ上での更新処理を行ない、同一レコード
に対する最後の処理でファイルを書替えるようi、:
t i ハ、ファイルアクセス回数を減少し得ることは
明らがである。
本発明の課題は、同一のレコードに対して複数の更新処
理を行なう場合、ファイルアクセス回数を最小限に抑え
てファイル更新処理を効率的に行ない得るファイル更新
装置を提供することである。
理を行なう場合、ファイルアクセス回数を最小限に抑え
てファイル更新処理を効率的に行ない得るファイル更新
装置を提供することである。
[課題を解決するための手段]
本発明の手段は次の通りである。
同一キーの更新用レコードが複数ある場合、最初の更新
の際、更新用レコードにより指定される更新種及びファ
イル内の該当レコードの有無に応じて更新状態を決定し
、該当レコードをワークメモリ上に展開して上記決定更
新状態に従って上記ワークメモリ上での更新を行なう第
1の更新手段。
の際、更新用レコードにより指定される更新種及びファ
イル内の該当レコードの有無に応じて更新状態を決定し
、該当レコードをワークメモリ上に展開して上記決定更
新状態に従って上記ワークメモリ上での更新を行なう第
1の更新手段。
例えば更新状態テーブル13及びレコード状態テーブル
14内のテーブルIを参照して更新用バッファ19上で
更新処理するCPUIIである。
14内のテーブルIを参照して更新用バッファ19上で
更新処理するCPUIIである。
2回目以降の更新の際は、更新用レコードにより指定さ
れる更新種及び上記前回の更新状態に応じて今回の更新
状態を決定し、この決定された更新状態に従って上記ワ
ークメモリ上の該当レコードの更新を行なう第2の更新
手段。
れる更新種及び上記前回の更新状態に応じて今回の更新
状態を決定し、この決定された更新状態に従って上記ワ
ークメモリ上の該当レコードの更新を行なう第2の更新
手段。
例えば更新状態テーブル13及びレコード状態テーブル
14内のテーブル■を参照して更新用バッファ19上で
更新処理するCPUI 1である。
14内のテーブル■を参照して更新用バッファ19上で
更新処理するCPUI 1である。
上記第2の更新手段により同一キーの更新用レコードが
処理されて無くなったとき、上記ワークメモリ上で更新
されたレコードによりファイルを更新するファイル更新
手段。
処理されて無くなったとき、上記ワークメモリ上で更新
されたレコードによりファイルを更新するファイル更新
手段。
例えば更新用バッファ19の内容によりソースファイル
23を書替えるCPUI 1である。
23を書替えるCPUI 1である。
[作用]
本発明の手段の作用は次の通りである。
同一キーの更新用レコードが複数ある場合、最初の更新
の際、更新状態テーブル及びレコード状態テーブル内の
テーブル■を参照し、更新用レコードにより指定される
更新種及びファイル内の該当レコードの有無に応じて更
新状態を決定し、レジスタに保持する。そして、ファイ
ルから読出した該当レコードをワークメモリ上に展開し
、上記の決定された更新状態に従ってワークメモリ上で
更新処理する。
の際、更新状態テーブル及びレコード状態テーブル内の
テーブル■を参照し、更新用レコードにより指定される
更新種及びファイル内の該当レコードの有無に応じて更
新状態を決定し、レジスタに保持する。そして、ファイ
ルから読出した該当レコードをワークメモリ上に展開し
、上記の決定された更新状態に従ってワークメモリ上で
更新処理する。
2回目以降の更新の際は、更新状態テーブル及びレコー
ド状態テーブル内のテーブル■を参照し、更新用レコー
ドにより指定される更新種及び上記レジスタに保持して
いる前回の更新状態に応じて今回の更新状態を決定し、
レジスタに保持する。
ド状態テーブル内のテーブル■を参照し、更新用レコー
ドにより指定される更新種及び上記レジスタに保持して
いる前回の更新状態に応じて今回の更新状態を決定し、
レジスタに保持する。
このレジスタに保持された更新状態に従って該当レコー
ドをワークメモリ上で更新処理する。
ドをワークメモリ上で更新処理する。
そして、上記2回目以降の更新により同一キーの更新用
レコードが全て処理されると、上記ワークメモリ上で更
新されたレコードによりファイルを更新して更新処理を
終了する。
レコードが全て処理されると、上記ワークメモリ上で更
新されたレコードによりファイルを更新して更新処理を
終了する。
[実施例]
以下、一実施例を第1図ないし第7図を参照しながら説
明する。
明する。
第1図は、全体の構成を示すブロック図である。
同図において、符号11は回路全体の制御を行なうCP
Uで、このCPU11にはパスライン12を介して更新
状態テーブル13、レコード状態テーブル14、更新用
レコードレジスタ15、更新用レコードファイル16、
更新状態レジスタ17、レコード状態レジスタ18、更
新用バッファ19、ワークメモリ20、更新状態管理メ
モリ21、バックアップメモリ22、ソースファイル2
3が接続される。
Uで、このCPU11にはパスライン12を介して更新
状態テーブル13、レコード状態テーブル14、更新用
レコードレジスタ15、更新用レコードファイル16、
更新状態レジスタ17、レコード状態レジスタ18、更
新用バッファ19、ワークメモリ20、更新状態管理メ
モリ21、バックアップメモリ22、ソースファイル2
3が接続される。
更新状態テーブル13には、第2図(a)、(b)に示
す更新状態テーブル■、■が設定される。
す更新状態テーブル■、■が設定される。
第2図(a)の更新状態テーブルは、同一ファイルの同
一レコードに対して最初の処理を実行する時の管理状態
を示すもので、更新種とファイル上のレコードの有無に
よって「削」 「追」、r訂」、「集」、「エラー」
の状態が設定されている。これらの各状態において、 「削」 :削除を意味し、レコードなしの状態にする、 「追」 :追加を意味し、レコードを新規に作成する、 r訂」 二訂正を意味し、対象レコードのフィールドの
値にフィールドの内容を修正する、「集」 :集計で対
象レコードのフィールドの値を加算する、 ことを示している。
一レコードに対して最初の処理を実行する時の管理状態
を示すもので、更新種とファイル上のレコードの有無に
よって「削」 「追」、r訂」、「集」、「エラー」
の状態が設定されている。これらの各状態において、 「削」 :削除を意味し、レコードなしの状態にする、 「追」 :追加を意味し、レコードを新規に作成する、 r訂」 二訂正を意味し、対象レコードのフィールドの
値にフィールドの内容を修正する、「集」 :集計で対
象レコードのフィールドの値を加算する、 ことを示している。
また、更新種としては、■「削除」、■「追加」、■「
追加・訂正」、■「追加・集計」、■「訂正」、■「集
計」の6種類がある。
追加・訂正」、■「追加・集計」、■「訂正」、■「集
計」の6種類がある。
上記更新種は、更新用レコードの作成に際して次のよう
な使い分けを行なう。
な使い分けを行なう。
追加:該当キーのレコードがファイル内に無ければ追加
したいが、有れば更新の必要が無い場合。
したいが、有れば更新の必要が無い場合。
訂正、削除、集計:該当キーのレコードがファイル内に
有れば更新処理(訂正、削除、集計)したいが、無けれ
ば更新の必要が無い場合。
有れば更新処理(訂正、削除、集計)したいが、無けれ
ば更新の必要が無い場合。
追加・訂正、追加・集計:該当キーのレコードにより必
ず更新する必要が有る場合。
ず更新する必要が有る場合。
上記更新状態テーブルIにおいて、例えば今回の更新種
が「削除」の場合、ファイル上のレコードがあれば「削
除」、レコードが無ければ「エラー」として更新状態を
認識する。
が「削除」の場合、ファイル上のレコードがあれば「削
除」、レコードが無ければ「エラー」として更新状態を
認識する。
第2図(b)に示す更新状態テーブル■は、更新種と前
回の更新状態との関係を示している。同一レコードに対
して2回目以降の更新を行なう場合、前回のレコード状
態と今回の更新種によりレコード状態を認識するもので
、その際に更新状態テーブル■が使用される。なお、今
回の更新種が「削除」で、前回のレコード状態が「追」
、r訂」、「集」であること、及び今回の更新種が「追
加」で、前回のレコード状態がr訂」、r集Jであるこ
とは、更新種が■「削除」■「追加」 ■「追加・訂正
」 ■「追加・集計」、■「訂正」、■「集計」の昇順
にソートされていることを前提としているために論理的
に有り得ないので、状態設定は行なっていない。
回の更新状態との関係を示している。同一レコードに対
して2回目以降の更新を行なう場合、前回のレコード状
態と今回の更新種によりレコード状態を認識するもので
、その際に更新状態テーブル■が使用される。なお、今
回の更新種が「削除」で、前回のレコード状態が「追」
、r訂」、「集」であること、及び今回の更新種が「追
加」で、前回のレコード状態がr訂」、r集Jであるこ
とは、更新種が■「削除」■「追加」 ■「追加・訂正
」 ■「追加・集計」、■「訂正」、■「集計」の昇順
にソートされていることを前提としているために論理的
に有り得ないので、状態設定は行なっていない。
上記更新状態テーブル■において、今回の更新種が例え
ば「訂正」の場合、前回の更新状態がr削」であれば「
エラー」、それ以外であれば「訂正」として更新状態を
認識する。
ば「訂正」の場合、前回の更新状態がr削」であれば「
エラー」、それ以外であれば「訂正」として更新状態を
認識する。
また、レコード状態テーブル14には、第3図(a)、
(b)に示すレコード状態テーブルI。
(b)に示すレコード状態テーブルI。
■が設定される。
第3図(a)のレコード状態テーブルIは、同一ファイ
ルの同一レコードに対して最初の処理を実行する時のレ
コード状態を示すもので、上記6種の更新種とファイル
上のレコードの有無によってrDELJ、「エラー」、
rRWTJ、rAPDJ状態が決定される。これらの各
状態において、 DEL:ファイル上のレコード削除、 エラm:は論理的矛盾発生、 RWT :ファイル上のレコード書替、APD :ファ
イルへのレコード追加、を示している。
ルの同一レコードに対して最初の処理を実行する時のレ
コード状態を示すもので、上記6種の更新種とファイル
上のレコードの有無によってrDELJ、「エラー」、
rRWTJ、rAPDJ状態が決定される。これらの各
状態において、 DEL:ファイル上のレコード削除、 エラm:は論理的矛盾発生、 RWT :ファイル上のレコード書替、APD :ファ
イルへのレコード追加、を示している。
そして、第3図(b)に示すレコード状態テーブル■は
、更新種と前回のレコード状態との関係を示している。
、更新種と前回のレコード状態との関係を示している。
同一レコードに対して2回目以降の更新を行なう場合、
前回のレコード状態と今回の更新種によりレコード状態
を認識するもので、その際にレコード状態テーブル■が
使用される。
前回のレコード状態と今回の更新種によりレコード状態
を認識するもので、その際にレコード状態テーブル■が
使用される。
なお、今回の更新種が「削除」の場合、前回のレコード
状態がrAPDj、rRWTJであることは、上記した
ように更新種によりソートされていることを前提として
いるために論理的に有り得ないので、状態設定は行なっ
ていない。
状態がrAPDj、rRWTJであることは、上記した
ように更新種によりソートされていることを前提として
いるために論理的に有り得ないので、状態設定は行なっ
ていない。
更新状態管理メモリ21には、第4図に示すようにファ
イル識別子21a1対象レコードのレングス21b1対
象レコードのキーワード数21c1対象レコードのレコ
ード番号21d、更新状態21eルコード状態21fが
、更新対象レコードの数だけ設定される。上記ファイル
識別子21aは更新対象ファイルのオーブン時の識別子
、対象レコードのレングス21bはバックアップした更
新対象レコードのレングス、対象レコードのキーワード
数21cは更新対象レコードのキーワード数、対象レコ
ードのレコード番号21dは更新対象レコードの物理レ
コード番号を示している。
イル識別子21a1対象レコードのレングス21b1対
象レコードのキーワード数21c1対象レコードのレコ
ード番号21d、更新状態21eルコード状態21fが
、更新対象レコードの数だけ設定される。上記ファイル
識別子21aは更新対象ファイルのオーブン時の識別子
、対象レコードのレングス21bはバックアップした更
新対象レコードのレングス、対象レコードのキーワード
数21cは更新対象レコードのキーワード数、対象レコ
ードのレコード番号21dは更新対象レコードの物理レ
コード番号を示している。
また、更新状態21eは第2図における「削除」、「追
加」、「訂正」、「集計」の状態を示し、レコード状態
21fは第3図における更新レコードの状態モードを示
している。
加」、「訂正」、「集計」の状態を示し、レコード状態
21fは第3図における更新レコードの状態モードを示
している。
更新用レコードファイル16には、第5図に示すように
「ファイル名」、「更新種」、「キーワードK」、「デ
ータワードA」〜「データワードG」からなる更新用レ
コードが記憶される。
「ファイル名」、「更新種」、「キーワードK」、「デ
ータワードA」〜「データワードG」からなる更新用レ
コードが記憶される。
また、ソースファイル23には、第6図に示すように「
キーワードK」、「データワードA」〜「データワード
G」からなるソースレコードが記憶される。
キーワードK」、「データワードA」〜「データワード
G」からなるソースレコードが記憶される。
次に上記実施例の動作を説明する。
予め作成された更新用レコードは、更新用レコードファ
イル16に蓄えられている。そして、この更新用レコー
ドファイル16に蓄えられた更新用レコードにより、ソ
ースファイル23に対スるファイル更新が行なわれる。
イル16に蓄えられている。そして、この更新用レコー
ドファイル16に蓄えられた更新用レコードにより、ソ
ースファイル23に対スるファイル更新が行なわれる。
以下、このファイル更新の処理動作を第7図のフローチ
ャートに従って説明する。このフローチャートは、CP
UIIの制御に従って実行される。
ャートに従って説明する。このフローチャートは、CP
UIIの制御に従って実行される。
まず、更新用レコードファイル16に記憶されている更
新用レコードをキー分類別に、つまり、■「削除」、■
「追加」、■「追加・訂正」、■「追加・集計」、■「
訂正」、■「集計」の昇順にソートする(ステップAl
)。上記のソート処理は、ワークメモリ20を利用して
行なわれる。
新用レコードをキー分類別に、つまり、■「削除」、■
「追加」、■「追加・訂正」、■「追加・集計」、■「
訂正」、■「集計」の昇順にソートする(ステップAl
)。上記のソート処理は、ワークメモリ20を利用して
行なわれる。
このソート終了後、更新用レコードファイル16から更
新用レコードを更新用レコードレジスタ15に読出しく
ステップA2)、ソースファイル23上に該当するレコ
ードが存在するか否かを判断する(ステップA3)。そ
して、このファイル上のレコードの有無と今回の更新種
に基づいて、更新状態テーブル13及びレコード状態テ
ーブル14の内のテーブルI(第2図(a)、第3図(
a)参照)より、今回の更新状態、レコード状態を読出
しくステップA4)、エラーであるか否かを判別する(
ステップA5)。この場合、更新状態テーブル13及び
レコード状態テーブル14の何れにおいても、更新種が
「追加」であればレコード有りの状態、更新種が「削除
」、「訂正」、「集計」であればレコード無しの状態が
エラーとなる。
新用レコードを更新用レコードレジスタ15に読出しく
ステップA2)、ソースファイル23上に該当するレコ
ードが存在するか否かを判断する(ステップA3)。そ
して、このファイル上のレコードの有無と今回の更新種
に基づいて、更新状態テーブル13及びレコード状態テ
ーブル14の内のテーブルI(第2図(a)、第3図(
a)参照)より、今回の更新状態、レコード状態を読出
しくステップA4)、エラーであるか否かを判別する(
ステップA5)。この場合、更新状態テーブル13及び
レコード状態テーブル14の何れにおいても、更新種が
「追加」であればレコード有りの状態、更新種が「削除
」、「訂正」、「集計」であればレコード無しの状態が
エラーとなる。
上記ステップA5でエラーと判断された場合は、ステッ
プA6のエラー処理を実行し、エラーでなければ上記更
新状態を更新状態レジスタ17に、レコード状態をレコ
ード状態レジスタ18に記憶する(ステップA7)。そ
して、上記更新用レコードレジスタ15に保持している
更新用レコード、更新状態レジスタ17及びレコード状
態レジスタ18の保持データから第4図に示す更新状態
管理レコードを作成し、更新状態管理メモリ21に記憶
する(ステップA8)。
プA6のエラー処理を実行し、エラーでなければ上記更
新状態を更新状態レジスタ17に、レコード状態をレコ
ード状態レジスタ18に記憶する(ステップA7)。そ
して、上記更新用レコードレジスタ15に保持している
更新用レコード、更新状態レジスタ17及びレコード状
態レジスタ18の保持データから第4図に示す更新状態
管理レコードを作成し、更新状態管理メモリ21に記憶
する(ステップA8)。
更に、上記レコード状態レジスタ18に保持されている
レコード状態がrRWT (書替)」、rAPD(追加
)」、rDEL(削除)」の何れであるかを判別しくス
テップA9 ) 、rRWTJであればステップAl0
1rAPDjであればステップAL4、rDELJであ
ればステップA1gの処理に進む。
レコード状態がrRWT (書替)」、rAPD(追加
)」、rDEL(削除)」の何れであるかを判別しくス
テップA9 ) 、rRWTJであればステップAl0
1rAPDjであればステップAL4、rDELJであ
ればステップA1gの処理に進む。
上記レコード状態レジスタ18におけるレコード状態が
rRWTJでステップAIOに進んだ場合、ソースファ
イル23における更新対象ファイルの該当レコードを外
部からアクセスできないようにロックする。次いで上記
該当レコードをバックアップメモリ22に書き込んでバ
ックアップする(ステップA11)。その後、ソースフ
ァイル23から上記の該当レコードを更新用バッファ1
9に読出して、更新用レコードレジスタ15に保持して
いる更新用レコードにより修正する(ステップA12.
A13)。
rRWTJでステップAIOに進んだ場合、ソースファ
イル23における更新対象ファイルの該当レコードを外
部からアクセスできないようにロックする。次いで上記
該当レコードをバックアップメモリ22に書き込んでバ
ックアップする(ステップA11)。その後、ソースフ
ァイル23から上記の該当レコードを更新用バッファ1
9に読出して、更新用レコードレジスタ15に保持して
いる更新用レコードにより修正する(ステップA12.
A13)。
上記レコード状態レジスタ18におけるレコード状態が
rAPDJでステップA14に進んだ場合、ソースファ
イル23における対象ファイルを更新し、その該当レコ
ードをロックする(ステップA15)。次いで上記該当
レコードをバックアップメモリ22に書き込んでバック
アップすると共に、その該当レコードを更新用バッファ
19へ転送する(ステップAle、 A17)。
rAPDJでステップA14に進んだ場合、ソースファ
イル23における対象ファイルを更新し、その該当レコ
ードをロックする(ステップA15)。次いで上記該当
レコードをバックアップメモリ22に書き込んでバック
アップすると共に、その該当レコードを更新用バッファ
19へ転送する(ステップAle、 A17)。
上記レコード状態レジスタ18におけるレコード状態が
rDELJでステップAL8に進んだ場合、ソースファ
イル23における対象ファイルの該当レコードをロック
する。次いで上記該当レコードをバックアップメモリ2
2に書き込んでバックアップすると共に、その該当レコ
ードを更新用バッファ19へ転送する(ステップA20
. A21)。
rDELJでステップAL8に進んだ場合、ソースファ
イル23における対象ファイルの該当レコードをロック
する。次いで上記該当レコードをバックアップメモリ2
2に書き込んでバックアップすると共に、その該当レコ
ードを更新用バッファ19へ転送する(ステップA20
. A21)。
そして、上記ステップAI3、A17、A20の処理を
終了すると、ステップA21に進んで更新用レコードフ
ァイル16から次の更新用レコードを更新用レコードレ
ジスタ15に読出し、前回と同一キーか否かを判別する
(ステップA22)。
終了すると、ステップA21に進んで更新用レコードフ
ァイル16から次の更新用レコードを更新用レコードレ
ジスタ15に読出し、前回と同一キーか否かを判別する
(ステップA22)。
前回と同一キーの場合は、今回の指定更新種と、更新状
態レジスタ17、レコード状態レジスタ18に保持され
ている前回の更新状態、レコード状態に基づいて、更新
状態テーブル13及びレコード状態テーブル14の内の
テーブル■(第2図(b)、第3図(b)参照)より、
今回の更新状態、レコード状態の読出しを行ない、エラ
ーか否かをチエツクする。この場合、更新状態テーブル
13では、前回の更新状態が「削」で今回の更新種とし
て「削除」、「訂正」、「集計」が指定された時、及び
前回の更新状態が「追」で今回の更新種として「追加」
が指定された時にエラーとなる。また、レコード状態テ
ーブル14では、前回の更新状態がrDELJで今回の
更新種として「削除」、「訂正」、「集計」が指定され
た時、前回の更新状態がAPDJで今回の更新種として
「追加」が指定された時、前回の更新状態が「RWTJ
で今回の更新種として「追加」が指定された時にエラー
となる。
態レジスタ17、レコード状態レジスタ18に保持され
ている前回の更新状態、レコード状態に基づいて、更新
状態テーブル13及びレコード状態テーブル14の内の
テーブル■(第2図(b)、第3図(b)参照)より、
今回の更新状態、レコード状態の読出しを行ない、エラ
ーか否かをチエツクする。この場合、更新状態テーブル
13では、前回の更新状態が「削」で今回の更新種とし
て「削除」、「訂正」、「集計」が指定された時、及び
前回の更新状態が「追」で今回の更新種として「追加」
が指定された時にエラーとなる。また、レコード状態テ
ーブル14では、前回の更新状態がrDELJで今回の
更新種として「削除」、「訂正」、「集計」が指定され
た時、前回の更新状態がAPDJで今回の更新種として
「追加」が指定された時、前回の更新状態が「RWTJ
で今回の更新種として「追加」が指定された時にエラー
となる。
上記ステップA24でエラーと判断された場合は、エラ
ー処理(ステップA6)を実行し、エラーでなければ上
記更新状態テーブル13のテーブル■から読出した更新
状態を更新状態レジスタ17に、レコード状態テーブル
14のテーブル■から読出したレコード状態をレコード
状態レジスタ18に記憶する(ステップA25)。次い
で更新用バッファ19の内容を今回の更新用レコード及
び更新状態に基づいて更新する(ステップA26)。ま
た、上記更新用レコードレジスタ15に保持している更
新用レコード、更新状態レジスタ17及びレコード状態
レジスタ18の保持データから第4図に示す更新状態管
理レコードを作成し、更新状態管理メモリ21に記憶す
る(ステップA27)。
ー処理(ステップA6)を実行し、エラーでなければ上
記更新状態テーブル13のテーブル■から読出した更新
状態を更新状態レジスタ17に、レコード状態テーブル
14のテーブル■から読出したレコード状態をレコード
状態レジスタ18に記憶する(ステップA25)。次い
で更新用バッファ19の内容を今回の更新用レコード及
び更新状態に基づいて更新する(ステップA26)。ま
た、上記更新用レコードレジスタ15に保持している更
新用レコード、更新状態レジスタ17及びレコード状態
レジスタ18の保持データから第4図に示す更新状態管
理レコードを作成し、更新状態管理メモリ21に記憶す
る(ステップA27)。
その後、上記ステップA21に進んで更新用レコードフ
ァイル16から次の更新用レコードを更新用レコードレ
ジスタ15に読出し、前回と同一キーか否かを判別する
(ステップA22)。
ァイル16から次の更新用レコードを更新用レコードレ
ジスタ15に読出し、前回と同一キーか否かを判別する
(ステップA22)。
前回と同一キーの場合は、上記ステップA23〜A27
の処理を繰り返し実行するが、同一キーでない場合は更
に更新用レコードファイル16に次のレコードが有るか
否かをチエツクする(ステップA28)。
の処理を繰り返し実行するが、同一キーでない場合は更
に更新用レコードファイル16に次のレコードが有るか
否かをチエツクする(ステップA28)。
更新用レコードファイル16に次のし・コードがある場
合は、レコード状態レジスタ18の記憶内容から、現在
のレコード状態がrAPDJ、rRWTJ、rDELJ
の何れであるかを判別する(ステップA29)。
合は、レコード状態レジスタ18の記憶内容から、現在
のレコード状態がrAPDJ、rRWTJ、rDELJ
の何れであるかを判別する(ステップA29)。
レコード状態がrAPDJの場合は、更に更新状態レジ
スタ17により現在の更新状態が「追加」、「訂正」、
「集計」の何れであるかを判別しくステップA30)、
「訂正」あるいは「集計」であれば更新用バッファ19
に保持されている内容をソースファイル23に書き込み
(ステップA31)、該当レコードをロックする(ステ
ップA32)。また、上記ステップA29おいて現在の
レコード状態がrRWTJであると判別された場合も上
記ステップA31SA32の処理を実行する。
スタ17により現在の更新状態が「追加」、「訂正」、
「集計」の何れであるかを判別しくステップA30)、
「訂正」あるいは「集計」であれば更新用バッファ19
に保持されている内容をソースファイル23に書き込み
(ステップA31)、該当レコードをロックする(ステ
ップA32)。また、上記ステップA29おいて現在の
レコード状態がrRWTJであると判別された場合も上
記ステップA31SA32の処理を実行する。
そして、上記ステップA32の処理を終了した場合、ス
テップA30で現在の更新状態が「追加」であると判別
された場合、ステップA29で現在のレコード状態がr
DELJであると判別された場合は、ステップA3に戻
り、更新用レコードレジスタ15に保持されている更新
用レコードに従って上記した処理を繰り返して実行する
。
テップA30で現在の更新状態が「追加」であると判別
された場合、ステップA29で現在のレコード状態がr
DELJであると判別された場合は、ステップA3に戻
り、更新用レコードレジスタ15に保持されている更新
用レコードに従って上記した処理を繰り返して実行する
。
上記した処理により更新用レコードファイル16に保持
されている更新用レコードが全て読出され、ステップA
28において更新用レコードファイル16には次のレコ
ードが記憶されていないと判断されると、ステップA3
3に進んで更新状態管理メモリ21から先頭レコードを
ワークメモリ20に読出し、そのレコード状態が「DE
L」であるか、または[A P DJ、rRWTJであ
るかを判別する(ステップA34)。
されている更新用レコードが全て読出され、ステップA
28において更新用レコードファイル16には次のレコ
ードが記憶されていないと判断されると、ステップA3
3に進んで更新状態管理メモリ21から先頭レコードを
ワークメモリ20に読出し、そのレコード状態が「DE
L」であるか、または[A P DJ、rRWTJであ
るかを判別する(ステップA34)。
レコード状態がrDELJの場合は、該当レコードをソ
ースファイル23から削除する。このステップA35の
処理を終了した場合、あるいは上記ステップA34でレ
コード状態がrADDJまたはrRWTJであると判別
された場合は、ステップAHに進んで、更新状態管理メ
モリ21からのレコード読出しを全て終了したか否かを
チエツクし、終了していなければ更新状態管理メモリ2
1から次のレコードをワークメモリ20に読出しくステ
ップA37)、その後、ステップA34に戻って同様の
処理を繰り返して実行する。そして、上記更新状態管理
メモリ21に記憶されているレコードに対する処理を全
て終了すると、ステップA36よりステップA38に進
んでソースファイル23における全レコードのロックを
解除し、ファイル更新処理を終了する。
ースファイル23から削除する。このステップA35の
処理を終了した場合、あるいは上記ステップA34でレ
コード状態がrADDJまたはrRWTJであると判別
された場合は、ステップAHに進んで、更新状態管理メ
モリ21からのレコード読出しを全て終了したか否かを
チエツクし、終了していなければ更新状態管理メモリ2
1から次のレコードをワークメモリ20に読出しくステ
ップA37)、その後、ステップA34に戻って同様の
処理を繰り返して実行する。そして、上記更新状態管理
メモリ21に記憶されているレコードに対する処理を全
て終了すると、ステップA36よりステップA38に進
んでソースファイル23における全レコードのロックを
解除し、ファイル更新処理を終了する。
なお、上記実施例では、同一キーに対する更新において
、追加は追加更新時に直ちにファイルを更新し、削除を
全レコードに対する更新終了後に一括して行なったが、
訂正、集計等と同様に同一キーに対する更新の最後でレ
コードの追加、または削除を行なうようにしてもよい。
、追加は追加更新時に直ちにファイルを更新し、削除を
全レコードに対する更新終了後に一括して行なったが、
訂正、集計等と同様に同一キーに対する更新の最後でレ
コードの追加、または削除を行なうようにしてもよい。
[発明の効果〕
以上詳記したように本発明によれば、同一キーレコード
に対して複数回の更新を行なう際、最初は指定更新種及
び該当レコードの有無により、2回目以降は指定更新種
及び前回の更新状態により今回の更新状態を決定してワ
ークメモリ上で更新を行ない、同一キーレコードに対す
る処理の最後にファイルを書替えるようにしたので、フ
ァイルに対するアクセス回数を最小限に抑えて、ファイ
ル更新処理を効率的に行なうことができる。
に対して複数回の更新を行なう際、最初は指定更新種及
び該当レコードの有無により、2回目以降は指定更新種
及び前回の更新状態により今回の更新状態を決定してワ
ークメモリ上で更新を行ない、同一キーレコードに対す
る処理の最後にファイルを書替えるようにしたので、フ
ァイルに対するアクセス回数を最小限に抑えて、ファイ
ル更新処理を効率的に行なうことができる。
第1図は本発明の一実施例によるファイル更新装置の回
路構成を示すブロック図、第2図(a)。 (b)は更新状態テーブルの設定内容を示す図、第3図
(a)、(b)はレコード状態テーブルの設定内容を示
す図、第4図は更新状態管理メモリの記憶構成を示す図
、第5図は更新用レコードファイルのレコード形態を示
す図、第6図はソースファイルのレコード形態を示す図
、第7図はファイル更新処理を示すフローチャート、第
8図は従来のファイル更新装置の同一キーレコードに対
して複数回の更新を行なう際の処理動作を示す図である
。 11・・・CPU、12・・・パスライン、13・・・
更新状態テーブル、14・・・レコード状態テーブル、
15・・・更新用レコードレジスタ、16・・・更新用
レコードファイル、17・・・更新状態レジスタ、18
・・・レコード状態レジスタ、19 、、、更新用バッ
ファ、20・・・ワークメモリ、21・・・更新状態管
理メモリ、22・・・バックアップメモリ、23・、・
ソースファイル。
路構成を示すブロック図、第2図(a)。 (b)は更新状態テーブルの設定内容を示す図、第3図
(a)、(b)はレコード状態テーブルの設定内容を示
す図、第4図は更新状態管理メモリの記憶構成を示す図
、第5図は更新用レコードファイルのレコード形態を示
す図、第6図はソースファイルのレコード形態を示す図
、第7図はファイル更新処理を示すフローチャート、第
8図は従来のファイル更新装置の同一キーレコードに対
して複数回の更新を行なう際の処理動作を示す図である
。 11・・・CPU、12・・・パスライン、13・・・
更新状態テーブル、14・・・レコード状態テーブル、
15・・・更新用レコードレジスタ、16・・・更新用
レコードファイル、17・・・更新状態レジスタ、18
・・・レコード状態レジスタ、19 、、、更新用バッ
ファ、20・・・ワークメモリ、21・・・更新状態管
理メモリ、22・・・バックアップメモリ、23・、・
ソースファイル。
Claims (1)
- 【特許請求の範囲】 同一キーの更新用レコードが複数ある場合、最初の更新
の際、更新用レコードにより指定される更新種及びファ
イル内の該当レコードの有無に応じて更新状態を決定し
、該当レコードをワークメモリ上に展開して上記決定更
新状態に従って上記ワークメモリ上での更新を行なう第
1の更新手段と、 2回目以降の更新の際は、更新用レコードにより指定さ
れる更新種及び上記前回の更新状態に応じて今回の更新
状態を決定し、この決定された更新状態に従って上記ワ
ークメモリ上での該当レコードの更新を行なう第2の更
新手段と、 上記第2の更新手段により同一キーの更新用レコードが
処理されて無くなったとき、上記ワークメモリ上で更新
されたレコードによりファイルを更新するファイル更新
手段と を具備したことを特徴とするファイル更新装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2152674A JPH0447427A (ja) | 1990-06-13 | 1990-06-13 | ファイル更新装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2152674A JPH0447427A (ja) | 1990-06-13 | 1990-06-13 | ファイル更新装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0447427A true JPH0447427A (ja) | 1992-02-17 |
Family
ID=15545629
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2152674A Pending JPH0447427A (ja) | 1990-06-13 | 1990-06-13 | ファイル更新装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0447427A (ja) |
-
1990
- 1990-06-13 JP JP2152674A patent/JPH0447427A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5446884A (en) | Database recovery apparatus and method | |
| US7769714B2 (en) | Automatic error correction for replication and instantaneous instantiation | |
| US5870761A (en) | Parallel queue propagation | |
| US5197001A (en) | Bill of material and project network processing | |
| JP2972419B2 (ja) | データベース運用制御方式 | |
| US5781912A (en) | Recoverable data replication between source site and destination site without distributed transactions | |
| US6216140B1 (en) | Methodology for the efficient management of hierarchically organized information | |
| US8370311B2 (en) | Using versioning to back up multiple versions of a stored object | |
| US6456995B1 (en) | System, method and computer program products for ordering objects corresponding to database operations that are performed on a relational database upon completion of a transaction by an object-oriented transaction system | |
| WO1995014273A9 (en) | Method and system for tracking changed files | |
| JPH11134235A (ja) | 外部記憶装置故障時の回復支援方法 | |
| JPH08328933A (ja) | 並列処理システムのファイルアクセス制御方式 | |
| JPH0447427A (ja) | ファイル更新装置 | |
| JP2003515213A (ja) | オブジェクト指向データを持続させるための方法および装置 | |
| US20060004846A1 (en) | Low-overhead relational database backup and restore operations | |
| JPH06274404A (ja) | データ保存管理方法 | |
| JPH0447428A (ja) | ファイル更新装置 | |
| JP3112785B2 (ja) | ファイル管理システム | |
| JP2850936B2 (ja) | データベース更新方式 | |
| JP2658097B2 (ja) | 二次ファイル作成方式 | |
| JP2000148562A (ja) | データバックアップ方法及びこれを利用したデータバックアップ装置並びにデータバックアッププログラムを記録したコンピュータ読み取り可能な記録媒体 | |
| JPH02211557A (ja) | データベースの退避方式 | |
| JPH0240740A (ja) | ファイル更新方式 | |
| JP4319438B2 (ja) | 入力情報処理装置、プログラム、記憶媒体及び入力情報処理方法 | |
| JPH0259837A (ja) | データリカバリ処理方式 |