JPH05181722A - 索引編成ファイルのアクセス方法 - Google Patents

索引編成ファイルのアクセス方法

Info

Publication number
JPH05181722A
JPH05181722A JP3357634A JP35763491A JPH05181722A JP H05181722 A JPH05181722 A JP H05181722A JP 3357634 A JP3357634 A JP 3357634A JP 35763491 A JP35763491 A JP 35763491A JP H05181722 A JPH05181722 A JP H05181722A
Authority
JP
Japan
Prior art keywords
statement
record
file
record address
key
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
Application number
JP3357634A
Other languages
English (en)
Inventor
Junichi Kobayashi
純一 小林
Kenji Yokoyama
憲治 横山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP3357634A priority Critical patent/JPH05181722A/ja
Publication of JPH05181722A publication Critical patent/JPH05181722A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【構成】 この方法では、COBOLプログラムにより
生成された索引編成ファイルに対し、乱アクセスモード
でREWRITE文やDELETE文等の入出力文を実
行する場合、その直前で実行されたREAD文があれ
ば、その時使用したレコードアドレスを再利用する。こ
のために、READ文実行の際、主キーとレコードアド
レスをファイル結合子等に保存しておく。次の入出力文
実行の際、その主キーが、前回保存した主キーと一致し
ていれば、直ちにそのレコードアドレスを再利用する。 【効果】 入出力文の際索引参照の時間が短縮でき、プ
ログラムの実行効率を高められる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、COBOLプログラム
により生成された索引編成ファイルに対し、乱アクセス
モードでREWRITE文を実行する場合の、レコード
アドレス設定の実行性能を高めた索引編成ファイルのア
クセス方法に関する。
【0002】
【従来の技術】COBOL(コボル)言語によるプログ
ラムは、大量のデータを読み書きし、検索し、編集する
といった処理を行うための、特に事務管理の分野におい
て広く採用されている。このCOBOLプログラムによ
り生成されるファイルは各種の形式のものがある。その
うち、索引編成ファイルは、予め設定された特定のキー
を基準に、所定の内容のレコードを集合して構成され
る。図2にこのような索引編成ファイルの構成説明図を
示す。図において、索引編成ファイル1は、例えば図に
示したような所定の長さの多数のレコード2によって構
成される。各レコード2には、予め設定された主キー3
が含まれており、各レコードはファイル中でこの主キー
3の順に配列される。例えばレコード2が伝票の内容に
関するデータであれば、主キー3には一連の伝票番号等
が設定される。
【0003】索引編成ファイル1から特定のレコードを
読み出そうとする場合、READ(リード)文が使用さ
れる。ここで、このREAD文にあたっては、主キー3
がレコード2の読み出しの鍵となる。レコード2は一定
の長さのデータからなり、各レコードを読み出すために
主キー3とレコードアドレス4とを対応づけたテーブル
を索引5の中に格納しておく。READ文が実行される
場合には常にこの索引5が参照される。一方、レコード
2の全部または一部を書き換えようとする場合には、予
め対象となるレコード2を読み出し、これを所定のワー
クエリアに格納する。そしてその一部のデータを変更し
て、更新後のレコードを作成する。次に、そのレコード
全体を既に索引編成ファイル1に格納されている該当レ
コードと置き換える。REWRITE(更新)文はこの
ような形で実行される。以上説明した方法は索引編成フ
ァイルアクセスのための原理であるが、COBOLプロ
グラムにおいては、このような索引編成ファイルのアク
セスモードとして、順アクセスモードと乱アクセスモー
ドの2種類のモードが用意されている。
【0004】図3に順アクセスモードにおけるREWR
ITE文実行方法説明図を示す。順アクセスモードとい
うのは、索引編成ファイルのアクセスをする場合、ファ
イルをオープンした後、先頭のレコードから順に最後の
レコードまでをアクセスしていくモードである。即ち、
この場合には各レコードは必ず主キーの順に読み出され
る。図において、COBOLプログラムで、既にオープ
ンされた索引編成ファイルをアクセスする場合に、“R
EAD NEXT”という文があると、システムはまず
昇順に主キーを設定する。即ち、最も若い主キーを先頭
とし、その主キーの順にレコードの読み出し準備が行わ
れる(ステップS1)。主キーを設定した後、先に図2
で示したテーブルを利用するため索引5を参照する(ス
テップS2)。そして、主キーに対応するレコードアド
レスを記憶する(ステップS3)。次にこのレコードア
ドレスを用いて索引編成ファイルからレコードの読み出
しが行われる(ステップS4)。
【0005】順アクセスモードにおいて、REWRIT
E文を実行し、即ち所定のキーのレコードを更新しよう
とする場合には、必ず一旦そのレコードの読み出しを行
うという文法が定められている。この順アクセスモード
におけるREWRITE文実行にあたっては、この文法
に従ってREAD文が実行されると、その時使用したレ
コードアドレスが記憶されそのまま保存される。そして
次のREWRITE文が実行されると、記憶してあるレ
コードアドレスのレコードを更新する(ステップS
5)。即ち、ここではREAD文で求めたレコードアド
レスがそのまま使用され、レコードの更新が実行され
る。
【0006】図4に、乱アクセスモードにおけるREW
RITE文実行方法説明図を示す。乱アクセスモードに
おいては、主キーを設定すれば、索引編成ファイルのど
の部分にあるレコードも直ちに読み出すことができる。
従って、この乱アクセスモードにおいては、REWRI
TE文の前にREAD文を必ず実行するという規則はな
く、REWRITE文を直ちに実行することができる。
従って、図に示すようにREWRITE文が存在する
と、主キーを用いて索引を参照する(ステップS1)。
そして先に説明した要領でレコードアドレスを決定する
(ステップS2)。さらにそのレコードアドレスのレコ
ードをREWRITE文の記述に従って更新する(ステ
ップS3)。なお、この場合不合理なキー(INVAL
ID KEY)があれば文は拒絶される。なお、乱アク
セスモードにおいては、REWRITE文だけでなく、
DELETE(削除)文についても同様の方法でレコー
ドアドレスが決定され、該当するレコードの削除が行わ
れる。
【0007】
【発明が解決しようとする課題】ところで、上記のよう
な順アクセスモードと乱アクセスモードの設定は、通常
ファイルをオープンする際に指定される。従って、乱ア
クセスモードでオープンされた場合、常に図4に示す手
順でファイルのアクセスが実行される。即ち、READ
文においてもREWRITE文においてもDELETE
文においても常に図4に示すような手順が実行される。
しかしながら、例えば索引編成ファイルを構成する一つ
のレコードを読み出し、その内容を参照して一部のデー
タを書き換え、新たなレコードを得て、これをファイル
に再格納するといった最も一般的に採用されるレコード
更新の方法においては、必ずREWRITE文の前にR
EAD文が実行される。この時、READ文においても
REWRITE文においても同様に索引を参照し、主キ
ーからレコードアドレスを求める演算処理が行われるの
は効率が悪く、システムの実行性能が劣化するという問
題があった。
【0008】この種の処理は、例えば預金データを扱う
際、所定の顧客についてその預金残高を千円増加させる
といった場合、その顧客のレコードを読み出し、預金残
高に該当するデータに千円を加算し、その後そのレコー
ド全体を元のレコードと置き換える。また、あるいは、
顧客の姓が結婚等により新たな姓に変更される場合、顧
客のレコード全体を読み出し、顧客名のデータを新たな
姓に置き換え、そのレコード全体を元のレコードに置き
換える。こういった処理が頻繁に繰り返された場合、順
アクセスモードに比べ乱アクセスモードの効率が著しく
低下する。本発明は、以上の点に着目してなされたもの
で、索引編成ファイルの乱アクセスモードにおけるRE
WRITE文やDELETE文等の入出力文実行時、デ
ータの信頼性を保証しつつその処理効率を高めた、索引
編成ファイルのアクセス方法を提供することを目的とす
るものである。
【0009】
【課題を解決するための手段】本発明の索引編成ファイ
ルのアクセス方法は、COBOLプログラムにより生成
された索引編成ファイルに対し、乱アクセスモードで入
出力文を実行する場合に、前記索引編成ファイルの主キ
ーと、これに対応するレコードアドレスとを、直前のR
EAD文実行の際に保存し、引続き実行される入出力文
の実行時、主キーが直前に保存した主キーと一致したと
き、前記保存したレコードアドレスを再利用することを
特徴とするものである。
【0010】
【作用】この方法では、COBOLプログラムにより生
成された索引編成ファイルに対し、乱アクセスモードで
REWRITE文やDELETE文等の入出力文を実行
する場合、その直前で実行されたREAD文があれば、
その時使用したレコードアドレスを再利用する。このた
めにREAD文実行の際、主キーとレコードアドレスを
ファイル結合子等に保存しておく。次の入出力文実行の
際、その主キーが、前回保存した主キーと一致していれ
ば、直ちにそのレコードアドレスを再利用する。これに
より、入出力文の際索引参照の時間が短縮でき、プログ
ラムの実行効率が高められる。
【0011】
【実施例】以下、本発明を図の実施例を用いて詳細に説
明する。図1は本発明のファイルアクセス方法実施例を
示すフローチャートである。図において、本発明の方法
は、先に図2で説明したような構成の索引編成ファイル
1について、これを乱アクセスモードでアクセスする際
に実施される。そのアクセスは、REWRITE文やD
ELETE文等の入出力文を実行する場合が対象とな
る。また、本発明においては、このような入出力文実行
の前にREAD文が実行されていたとき、その処理能率
を高めることができる。従って、本発明は入出力文の前
にREAD文が実行されていることが前提となる。ま
ず、図のフローチャートにおいて、READ文が実行さ
れるとき、ステップS1において主キーを用いて索引を
参照し、レコードアドレスが決定される。この手順は従
来と同様である。次にステップS2において該当するレ
コードの読み出しが行われる。ここで本発明において
は、主キーを保存領域に転記し(ステップS3)、ま
た、レコードアドレスを保存領域に転記する(ステップ
S4)。この保存領域は、例えばCOBOLプログラム
のファイルの属性等を設定する、ファイル結合子の中に
設けられる。
【0012】図5に本発明の方法実施のためのファイル
結合子説明図を示す。図のように本発明においては、フ
ァイル結合子10にファイル属性11を格納する領域
と、READ文実行フラグ12を格納する領域に加え、
主キー保存領域13、及びレコードアドレス保存領域1
4を設ける。ファイル属性11というのは、このファイ
ルの構成やその他ファイルの管理に必要な情報である。
これはCOBOLプログラムにおいてファイルが生成さ
れた場合、従来より必ず設けられる情報である。また、
READ文実行フラグ12は、その直前にREAD文が
実行されたか否かを表示するためのフラグである。本発
明の実施にあたっては、READ文が直前に実行されて
いることが前提となるため、このフラグを参照し、後で
説明するような動作を実行することが好ましい。主キー
保存領域13及びレコードアドレス保存領域14は、そ
れぞれREAD文実行の際に使用した主キーとレコード
アドレスを次の入出力文まで保存しておくための記憶領
域である。
【0013】再び図1に戻って、このようなREAD文
が実行された後、REWRITE文が実行されると、次
のような手順がふまれる。即ち、ステップS5におい
て、直前の入出力文はREAD文か否かが判断される。
これは図5において説明したREAD文実行フラグ12
を参照して行われる。直前の入出力文がREAD文の場
合には、ステップS6に移り、主キーは保存領域の主キ
ーと一致するか否かが判断される。即ち、このREWR
ITE文で使用される主キーと図5で示したファイル結
合子10の保存領域13にある主キーとを比較し、両者
が一致するか否かを判断する。両者が一致した場合には
ステップS7に移り、保存領域14からレコードアドレ
スを取り出す。そして、このレコードアドレスを用いて
ファイルをアクセスする。一方、ステップS5において
直前の入出力文がREAD文でない場合、あるいはステ
ップS6において主キーが保存されていた主キーと一致
しない場合には何れもステップS9に移り、主キーを用
いて従来通り索引を参照しレコードアドレスを決定す
る。そしてステップS8に移り、従来通りの方法でレコ
ードの書き換えが行われる。
【0014】上記のステップS7の処理とステップS9
の処理を比較して分かるように、本発明においては、予
め主キーよりレコードアドレスが求められ、そのレコー
ドアドレスがREAD文実行後レコードアドレス保存領
域14に格納されているため、次の入出力文があるRE
WRITE文の実行の際に、レコードアドレスを直ちに
取り出すことができる。従って、改めて索引を参照する
場合に比べて処理速度がアップする。COBOLプログ
ラムにおいては、この種のREAD文実行後のREWR
ITE文実行といった処理が非常に数多く見られるた
め、本発明によってプログラム全体の処理速度が著しく
向上する。
【0015】本発明は以上の実施例に限定されない。入
出力文としては、REWRITE文の他、DELETE
文等も存在する。この文を実行する場合においても同様
の処理によって能率の向上を図ることができる。なお、
いわゆるマルチタスクによる処理が行われる場合、同一
の索引編成ファイルが多数のタスクによってアクセスさ
れ、理論的にはREAD文とREWRITE文の間に他
のタスクによってレコードに何らかの操作が行われてレ
コードが変わってしまう場合も生じる。しかしながら、
これでは本来レコードの一貫性を保証できない。故に、
オペレーティングシステムによってREAD文実行後
は、そのレコードを他のタスクから書き換え等ができな
いよう排他的な制御を行う方式がとられる。従って、本
発明の方法はマルチタクスが実行される場合においても
何ら障害なく有効に実施できる。
【0016】
【発明の効果】以上説明したように、本発明の方法によ
れば、COBOLプログラムにより生成された索引編成
ファイルに対し、乱アクセスモードで入出力文を実行す
る場合に、直前に実行されたREAD文において、主キ
ーとレコードアドレスとを保存し、引き続き実行される
REWRITE文やDELETE文等の入出力文実行
時、その主キーが一致した場合には、保存したレコード
アドレスを再利用する様にしたので、入出力文の索引参
照時間が短縮され処理能率が向上する。
【図面の簡単な説明】
【図1】本発明のファイルアクセス方法実施例を示すフ
ローチャートである。
【図2】索引編成ファイルの構成説明図である。
【図3】順アクセスモードにおけるREWRITE文実
行方法説明図である。
【図4】乱アクセスモードにおけるREWRITE文実
行方法説明図である。
【図5】本発明の方法実施のためのファイル結合子説明
図である。
【符号の説明】
ステップS1〜ステップS8 発明の実行手順

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 COBOLプログラムにより生成された
    索引編成ファイルに対し、乱アクセスモードで入出力文
    を実行する場合に、 前記索引編成ファイルの主キーと、これに対応するレコ
    ードアドレスとを、直前のREAD文実行の際に保存
    し、 引続き実行される入出力文の実行時、主キーが直前に保
    存した主キーと一致したとき、前記保存したレコードア
    ドレスを再利用することを特徴とする索引編成ファイル
    のアクセス方法。
JP3357634A 1991-12-26 1991-12-26 索引編成ファイルのアクセス方法 Pending JPH05181722A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3357634A JPH05181722A (ja) 1991-12-26 1991-12-26 索引編成ファイルのアクセス方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3357634A JPH05181722A (ja) 1991-12-26 1991-12-26 索引編成ファイルのアクセス方法

Publications (1)

Publication Number Publication Date
JPH05181722A true JPH05181722A (ja) 1993-07-23

Family

ID=18455123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3357634A Pending JPH05181722A (ja) 1991-12-26 1991-12-26 索引編成ファイルのアクセス方法

Country Status (1)

Country Link
JP (1) JPH05181722A (ja)

Similar Documents

Publication Publication Date Title
EP0339901B1 (en) Improved version management tool
JP2000259456A (ja) ファイルリビジョン管理システム
JPH05181722A (ja) 索引編成ファイルのアクセス方法
JPH096653A (ja) データベースのチェックを行う情報処理装置
JP2822869B2 (ja) ライブラリファイル管理装置
JP4056622B2 (ja) データベース管理装置
JPH07152615A (ja) データベース再編成方式
CN112783927B (zh) 一种数据库查询方法及系统
JPS6045854A (ja) ファイル移行制御方式
JPS62131349A (ja) デ−タベ−ス処理方式
JP2658097B2 (ja) 二次ファイル作成方式
JP3079825B2 (ja) 電子計算機装置
JPH05120343A (ja) 索引更新方式
JPH02253451A (ja) データベース管理方式
JP2785966B2 (ja) 外部キー動的解決処理方法
JPH0594475A (ja) 索引生成方式
JPH10240627A (ja) セクタ管理方法及び装置
JPS63311451A (ja) 再書き込み不可な低速アクセス媒体のアクセス方式
JPH05108438A (ja) データの入出力における高速アクセス方式
JPH05181656A (ja) シンボル情報管理方式
JPH06175862A (ja) 電子計算機装置
JPH0467223A (ja) 磁気テープ管理方式
JPH02302869A (ja) ファイル編集方式
JPH03226829A (ja) 情報処理装置
KR20010059625A (ko) 데이터베이스 필드별 입력값 정의 파일을 효율적으로사용하기 위한 메모리 구조 설정 방법