JPH0225946A - ファイル管理装置 - Google Patents

ファイル管理装置

Info

Publication number
JPH0225946A
JPH0225946A JP63175105A JP17510588A JPH0225946A JP H0225946 A JPH0225946 A JP H0225946A JP 63175105 A JP63175105 A JP 63175105A JP 17510588 A JP17510588 A JP 17510588A JP H0225946 A JPH0225946 A JP H0225946A
Authority
JP
Japan
Prior art keywords
file
record
divided
index
files
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
JP63175105A
Other languages
English (en)
Inventor
Masataka Abe
正敬 阿部
Tetsuei Kogai
小飼 哲英
Kazuyuki Kakehata
掛端 一行
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer 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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP63175105A priority Critical patent/JPH0225946A/ja
Publication of JPH0225946A publication Critical patent/JPH0225946A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、索引順次編成ファイルによりレコードの管理
を行うファイル管理装置に関する。
〔概   要〕
従来の索引順次編成ファイルを用いたファイル管理装置
は、ランダムなレコード更新処理の処理速度が遅く、フ
ァイルの再編成も非常に長い処理時間を要した。
このため、データファイルを複数の分割ファイルに分割
して、各分割ファイル単位でのアクセスを可能にすると
共に、各分割ファイル単位でレコードの更新情報を管理
することによって、レコード更新の処理速度の向上及び
ファイル再編成の処理速度の向上を可能にした。
〔従来の技術〕
コンピュータシステムにおいては、組織的なレコードの
集まりをファ・イルにより管理している。
ファイルは、その編成方法により順次編成ファイル、直
接編成ファイル、索引順次編成ファイル、区分固成ファ
イル等に分類される。
これらのファイルの中で索引順次編成ファイルは、レコ
ードを記憶媒体の連続した位置に記録するので効率の良
い順次アクセスができる。さらに記憶しているレコード
とそのレコードに対応したキーを記憶する索引を持つの
で、キーを用いてランダムアクセスも効率良く行なうこ
とができる。
また、レコードの削除やレコードの伸長等も可能であり
、レコードの削除が行われた場合、その削除レコードに
は削除レコードであることを示すin報が記録され、伸
長レコードはプールファイルに格納される。
このように索引順次編成ファイルは順次アクセスとラン
ダムアクセスの両方のアクセスが可能であり、在庫ファ
イルや人事ファイル等のさまざまなデータファイルに利
用することができる。
〔発明が解決しようとする課題〕
しかしながら、従来の索引順次編成ファイルの場合、単
一のデータファイルに全てのレコードを記1.@するよ
うにしているので、ランダムなレコード更新を行うと処
理時間が長(なる。処理時間の増加はデータ容量が増加
するにつれて特に顕著となる。
また、削除レコードの数が増加すると記憶領域の利用効
率が悪くなり、さらに、伸長レコードや追加レコードが
増加すると、プールファイル内に伸長レコードや追加レ
コードを格納できな(なるようになる。このため、ファ
イルの再編成が必要になってくるが、削除レコードであ
るか、また(巾長レコードさらには追加レコードがある
かどうかは、ファイルの各レコードを読み出して門べな
ければ知ることができず、ファイルの再編成のためには
ファイル内の全てのレコードを読み出す必要があった。
したがって、削除レコードや伸長レコードあるいは追加
レコードの数が非常に少ない場合でも全てのレコードを
順次読み出す必要があるため処理時間が長くなり、処理
効率が非常に悪かった。
本発明の課題は、索引順次編成ファイルにおいて、ラン
ダムなレコード更新処理を高速に行えるようにすると共
に、ファイルの再編成を処理効率良く高速に行えるよう
にすることである。
〔課題を解決するための手段〕
本発明の手段は次の通りである。
分割ファイル1は(第1図の機能ブロック図を参照、以
下同じ)はレコードをキー順に配列して記憶する。在庫
ファイルや人事ファイル等のマスク・ファイ・ルは、そ
のデータ容量に応じて1個または複数個の分割ファイル
lに分割される。
インデックスファイル2は、各分割ファイル1の先頭レ
コードのキーをインデックス情報として記憶する。イン
デックス情報は、前記キー以外に例えば分割ファイル名
、分割ファイルの容量や分割ファイルに格納されている
レコードの種類等の分割ファイル1に関する情報である
アクセス手段3.は、インデックスファイル2を参照し
て分割ファイル1内のレコードをアクセスする。
レコード削除手段4は、レコードの削除要求が加わった
際に、分割ファイル1内の当該レコードに削除レコード
であることを示す情報を書き込むと共に、前記インデッ
クスファイル内の前記当該レコードを記憶する分割ファ
イル1に対応するインデックス情報に削除レコード有り
の情報を書き込む。
第1の分割ファイル再編成手段5は、前記インデックス
ファイル2内のインデックス情報に削除レコード有りの
情報が記録されている分割ファイル1をキー順に再編成
する。
レコード作成手段6は、レコード張の伸長を伴うレコー
ド更新の要求が加わった際に、分割ファイル1内の当該
レコードに伸長レコードであることを示す情報を書き込
むと共に新レコードを作成し、前記インデックスファイ
ル2内のレコード更新の要求のあった当該レコードを格
納する分割ファイル1に対応するインデックス情報に伸
長レコード有りの情報を書き込む。
プールファイル7は、レコード作成手段6によって作成
された新レコードが伸長された場合に当該新レコードを
格納する。
第2の分割、ファイル再編成手段8は、分割ファイル1
内に格納されている伸長が行われたレコードを前記プー
ルファイル7に格納されている前記レコードに対応する
伸長レコード゛に書き換えることにより前記・インデッ
クスファイル2内のインデックス情報Gこ伸長レコード
有りの情報が記録されている分割ファイル1をキー順に
再編成する。
分割ファイル分割手段9は、前記第2の分割ファイル再
編成手段8により再編成された分割ファイル1が所定容
量以上になった場合に、その分割ファイルlを分割する
分割ファイル併合手段10は、前記第1の分割ファイル
再編成手段5または前記第2の分割ファイル再編成手段
8による再編成により隣接する2つの分割ファイル1の
合計容量が所定容量以下になれば、その隣接する2つの
分割ファイル1を併合する。
〔作   用〕
本発明の手段の作用は次の通りである。
レコードの取り出しや、レコードの更新、レコードの追
加、レコードの削除等の要求が加わると、アクセス手段
3はインデックスファイル2内のインデックス情報を検
索して当該レコードが格納されている分割ファイル1を
見つけ出し、その分割ファイル1から当該レコードを読
み出したり、その分割ファイル1へ更新レコードや追加
レコードを書き込む。
また、レコードの削除要求が加わった場合には、レコー
ド削除手段4は当該レコードに削除レコードであること
を示す情報を書き込む(例えばレコード内に設けられた
フラグを削除にセントする)と共に、インデックスファ
イル2内の前記当該レコードを格納する分割ファイル1
に対応するインデックス情報に削除レコード有りの情報
を書き込む。
一方、レコード長の伸長を伴うレコード更新の要求が加
わった場合には、レコード作成手段6は当該レコードに
伸長レコードであることを示す情報を書き込むとJF、
に新レコードを作成し、その作成した新レコードをプー
ルファイル7内の例えば空領域の先頭に書き込む。さら
に、レコード作成手段6はインデックスファイル2内の
前記当該レコードを格納する分割ファイルlに対応する
インデックス情報に伸長レコード有りの情報を書き込む
。当該レコードにはプールファイル7内の新レコードの
格納位置くポインタ)が害き込まれる。
分割ファイル1の再編成要求が加わると、第1の分割フ
ァイル再編成手段5は、インデックスファイル2内の・
インデックス情報を順次検索する。
そし°で、インデックス情報に削除レコード有りの情報
が記録されていれば、そのインデックス情報に対応する
分割ファイル1からレコードをキー順に順次読み出して
、削除レコード以外のレコードを新たな分割ファイル1
に書き込み、削除レコードを除外した新たな分割ファイ
ル1を作成する。
また、分割ファ、イル1の再編成要求が加わると、第2
の分割ファイル再編成手段8は、インデックスファイル
2のインデックス情報を順次検索し、インデックス情報
に伸長レコード有りの情報が記録されていれば、そのイ
ンデックス情報に対応する分割ファイル1からレコード
をキー順に順次読み出す。そして、伸長フラグのセット
されているレコードを読み出した場合には、そのレコー
ドに対応する伸長レコードをプールファイル7から読み
出して、伸長レコードを新たな分割ファイル1に記録す
る。また、flll 区フラグのセントされていないレ
コードは、そのまま新たな分割ファイル1に記録する。
このようにして、第2の分割ファイル再編成手段8は、
伸長の行われたレコードを伸長レコードに書き換えた新
たな分割ファイル1を作成する。
分割ファイル分割手段9は、例えばインデックスファイ
ルのインデックス情報を参照して、第2の分割ファイル
再編成手段8により作成された分割ファイルlのデータ
容量が所定容量以上になっていないかを判別し、所定容
量以上になっていればその分割ファイル1を分割して、
複数の新たな分割ファイル1を作成する。
分割ファイル併合手段10は、例えばインデックスファ
イル2のインデックス情報を参照して分割ファイル分割
手段9による分割ファイル1の分割の結果、隣接する2
つの分割ファイル1の合計データ容量が所定容量以下と
なっていないかを判別し、所定容量以下となっていれば
、その隣接する2つの分割ファイルlを併合した分割フ
ァイル1を作成する。
したがって、伝票ファイルや人事ファイル等の大量のデ
ータを格納するデータファイルを、複数の分割ファイル
1に分割して各分割ファイル1をインデックスファイル
2により管理することができる。このため、レコードの
更新に伴うファイルアクセスは各分割ファイル1毎に行
える。また、分割ファイル1の再編成を行う場合でも、
インデックスファイル2のインデックス情報を参照して
レコードの削除やレコードの伸長が行われた分割ファイ
ル1に対してのみ再編成を行うことができる。
したがって、伸長や削除のレコードの数が少ない場合や
、特定の分割ファイルにのみ伸長や削除のレコードが集
中している場合、ファイルの再編成処理を効率良く高速
に行うことができる。
〔実  施  例〕
以下、一実施例について第2図乃至第8図を参照しなが
ら説明する。第2図は一実施例のシステム構成図である
。同図において、CPU (中央処理装置)11は、図
示していないROM (ReadOnly Memor
y)及びRA M (Random Access M
em。
ry)格納されているプログラムを実行してシステム全
体の制御を行う。
また、コンソール制御装置12は、キーボード等の入力
部13とCRT等の表示部1.4から成るコンソロール
を制御する制御装置であり、入力部13から入力される
キー人力データを中央処理装置11に出力すると共に、
中央処理装置11から送信される表示データを表示部1
4に表示する。
さらに、ディスク制御装′f115は、磁気ディスク1
6に対してデータの入出力を行う制御装置であり、CP
UIIからの指示に応じ°ζ、磁気ディスク16上にデ
ータを記録したり、磁気ディスク16上に記録されてい
るデータの読み出しを行う。
CPUIIはオペレータが入力部13を介して入力する
ファイル生成のlけ示に応じてディスク制御装置15を
介して磁気ディスク16上に索引順次編成ファイルを生
成するが、その索引順次編成ファイルはインデックスフ
ァイル17と複数の分割ファイル1B、18、・・・及
びプールファイル19から成る。
ここで、便宜上、インデックスファイル18をインデッ
クスファイルA(ix)、n個の分割ファイル18.1
8、・・・を分割ファイルA(1)、A(2)、−A(
n)、プールファイル19をプールファイルA(P’l
)と表わすことにする。
分割ファイルΔ(1) 、A (2)、・・・A (n
)はキー順にレコード(固定長レコード、可変長レコー
ドいづれでも良い)を連続した位置に格納するデータフ
ァイルであり、レコードはキー順に分割ファイルA (
1)から分割ファイルA(2)、A (3) 、・・・
A (n)の順に格納される。分割ファイルA (1)
 、A (2) 、・・・A (n)は、磁気ディスク
16上の連続した領域に作成されるので、分割ファイル
Δ(1) 、A (2) 、A(n)はキー順にレコー
ドが配列している一個のファイルとみなすことができる
また、分割ファイルA (1) 、A (2) 、・・
・A (n)には、それぞれ「1」、「2」、・・rn
JのファイルNo、が割り当てられ、各分割ファイルA
 (i)は、riJのファイルNo。
を指定することによりオープンされる。
第3図に分割ファイルΔ(1) 、A (2)、・・A
 (n)に格納される可変長レコード180の形式を示
す。可変長レコード200は、先頭から順にレコードス
タートデリミタ201、制御情報210、データ域22
1の各項目から成っている。レコードスタートデリミタ
201は可変長レコード200の始まりを示す区切り記
号である。
制御情報210は、フラグ211、レコードポインタ2
12、プールレコードポインタ213の各項目から成っ
ており、フラグ211はレコードの属性を示すフラグで
ある。フラグ211がrOJの時は、その可変長レコー
ド200は変更のない通常の可変長レコードであること
を示し、「1」の時は伸長レコード、「2」の時は削除
レコードであることを示す。
レコードポインタ212は、レコード長(フラグ211
の先頭からデータ域221の終端までの長さ)を記憶す
る。
また、プールレコードポインタ213は、フラグ201
が「1」にセットされている可変長レコード200に対
応する伸長レコードのプールファイルA(pi)内の格
納位置を示すポインタである。
レコードの更新により、可変長レコード200のデータ
域221内にデータが格納できなくなった場合には、フ
ラグ211に「1」 (伸長)をセソ[・シ、伸長デー
タを格納する新たな可変長レコードを作成する。、この
可変長レコードが伸長レコードであり、プールファイル
A(PL)内の空領域に格納される。さらに、データ域
221は、データを記憶する領域であり、先頭の2ワー
ドはキーワード(キー)となっている。
可変長レコード200は、分割ファイルA(1)、A 
(2) 、・・・A (n)内に第4図に示すように連
続して記憶される。
インデックスファイルA(ix)は、上記のように構成
されている各分割ファイルA (1)、A (2) 、
・・・A (n)についてのインデックス情報を分割フ
ァイル・インデックスに格納する。
第5図にインデックスファイルA(ix)内に格納され
る分割ファイルインデックス170の内部構成を第5図
に示す。
インデックス情報171は、分割ファイルA(1)〜分
割ファイルΔ(n)に対して1個づつ作成され、第5図
に示すようにインデックスファイルA(ix)内に分割
ファイルΔ(1)のインデックス1n報171から順に
格納される。
インデックス情報171は、分割ファイルΔ(i)の先
頭に格納されている可変長レコード200のキーワード
301  (PKil、、PKi2)、分割ファイル名
302 (Δ(i)) 、分割ファイル Δ(i)の管
理情’t’H03(IIa (i) )の各項目から成
っている。
管理情報303は、分割ファイルΔ(i)の容1、変更
フラグを記1、aする。変更フラグは、分割ファイルA
 (i)が削除された可変長レコード200 (以後、
削除レコードと表現する)またはデータの伸長が行われ
た可変長レコード200(以後、伸長レコードと表現す
る)を格納しているか否かを示すフラグであり、分割フ
ァイルA (i)が削除レコードまたは伸長レコードを
1個でも格納している場合には例えば「1」がセットさ
れ、逆に1個でも格納していない場合は「0」がセント
される。
再び第2図に戻って説明を行う。
RAM、X2 O5RAM、W21、RAM。
R21は、いづれもRAM内に設けられた記憶領域であ
り、RAM、X20はCPUIIがディスク制御装置1
5を介してインデックスファイル17に読み出しまたは
書き込みを行う分割ファイルインデックス170等を格
納する領域である。
また、RAM、W21は分割ファイルA (i)に害き
込むレコードを記憶する領域であり、RAM、R22は
CPUIIがディスク制御装置15を介して読み出した
分割ファイル八(i)のレコードを格納する領域である
次に以上のように構成された実施例の動作を説明する。
ユーザが入力部13からファイル定義を指定したファイ
ル生成コマンドを入力すると、cpu tlはコンソー
ル制御装置12を介してそのファイル生成コマンドを入
力し、ディスク制御装置15を介し磁気ディスク16上
にインデックスファイルA(ix)、分割ファイル人(
1) 、A (2)、・・・A (n) 、プールファ
イルA(pi)から成る索引順次編成ファイルを生成す
る。
ファイル生成時において、分割ファイルΔ(i)の容■
は、システJ・で定められた所定容量に決定される。ま
た、・インデックスフア・イルΔ(i x)には、分割
ファイルインデックス170が作成される。そして、入
力部13からキー順に可変長レコード200を入力する
ことにより、cputiは、ディスク制御装置15を介
して分割ファイルA(1)、A(2)、=A(n)内に
キー順に可変長レコーf” 200を格納する。また、
各分割ファイルA (i)の可変長レコード200の格
納状態に対応してインデックスファイルA(ix)内の
分割ファイルインデンクス170に各分割ファイルΔ(
i)のインデックス情!Ei171を書き込む。
次に、分割ファイルA (i)から可変長レコード20
0を読み出す場合のCPUIIの動作を第6図のフロー
チャー1・に示す。
cpuzは、レコードの読み出し命令を入力すると、イ
ンデックスファイルA(ix)をオーブンし、インデッ
クスファイルA(ix)内の分割ファイルインデックス
170′4cRAM、  X 20に読み出すく処理、
SAl〜処理5A2)。そして、分割ファイルインデッ
クス170のインデックス情報171を先頭から順次検
索しながら、該当レコード(読み出すべきレコード)が
格納されている分割ファイルA (i)のファイルNO
9を求め(処理5A3) 、そのの該当レコードの格納
されている分割ファイルA (i)が有れば、(処理5
A4)、ファイルNo、を基に該当分割ファイルA (
i)をオーブンしく処理5A5) 、その該当分割ファ
イルA(i)内の全可変長レコード200をRAM、R
22に読み出す(処理5A6)。
そして、RAM、R22を検索して指定されたキーを持
つ可変長レコード200を見つけ出す(処理5A6)。
該当レコード′の読み出しが終了したら該当分割ファイ
ルA (i)をクローズしく処理5A7) 、さらにイ
ンデックスファイルA(ix)をクローズする(処理5
A8)。
一方、前記処理SA4で該当分割ファイルΔ(+)が無
ければ、インデックスファイルA(ix)をクローズす
る(処理5A8)。
このように可変長レコードの読み出しの場合には、読み
出す可変長レコード200のキーを基に、インデックス
ファイルA(ix)内のインデックス情報 171を検
索し、読み出すレコードが格納されζいる分割ファイル
A (i)を見つけ出す。
そして、その該当分割ファイル八(i)から全可変長レ
コード200をRAM、R22に読み出し、RAM、R
22を検索し該当する可変長レコード200を見つけ出
す。
したがって可変長レコード200の数が多い場合でも全
ての可変長レコード200を検索する必要はなく所定容
量に分割された分割ファイルA(i)内の可変長レコー
ド200のみを検索すればよい。そのため、ランダムな
可変長レコード200の読み出しを高速に行うことがで
きる。
次にレコード更新やレコード集計等の指示が入力部13
を介して加わった時のCPUI 1の動作を第7図のフ
ローチャートに示す。
まず、インデックスファイルA(ix)をオープンしく
処理部5B1)、インデックスファイル八(ix)から
分割ファイルインデックス170をRAM、X20に読
み出す(処理5B2)。そして、RAM、X20内の分
割ファイルファイルのインデックス170を検索して、
指定されたキーの可変長レコード200が格納されてい
る分割ファイルΔ(i)のファイルNo、を求める(処
理5B3)。
次に、レコードの更新要求の判別を行い(処理5B4)
、修正要求であれば、前記処理SB3で求めたファイル
No、を基に該当分割ファイルA (i)をオープンし
く処理5B5)、該当分割ファイルA(i)内の全可変
長レコード200をRAM、R22に読み出す(処理5
B6)。そして、RAM、R22を検索し、該当可変長
レコード200を見つけ出すく処理5B6)。
次に、該当可変長レコード200  (旧レコードと表
現する)を修正指示情報によって修正して作られる新可
変長レコード200のレコード長と、日レコードのレコ
ード長を比較しく5B7)、新可変長レコード200の
レコード長が旧レコードのレコード長以下であれば、新
可変長レコード200をRAM、R22内の所定位置に
書き戻し、さらにディスク制御装置15を介して該当分
割ファイルΔ(i)にRAM、R22に格納され°ζい
る該当分割ファイルA (i)の全レコードを書き戻す
(処理5B8)。そして、書き込み終了後、該当分割フ
ァイルA (i)及びインデックスファイルA(ix)
をクローズする(処理SB9〜処理SB 10)。
すなわち、レコードの修正の結果、レコード長が伸旦し
なければ修正レコードを再び、該当分割ファイルの元の
格納位置に書き戻す。
一方、前記処理SB7で新可変長レコード200のレコ
ーF’ 長が、旧レコードのレコード長よりも長ければ
、プールファイルA(PL)をオープンし、(処理58
11)、プールファイルA(Pi)のヘッダを参照し、
プールファイルA(Pl)の空領域の先頭に新レコード
を書き込む(処理5B12)。次にプールファイルA(
PL)のヘッダに設けられているブー)レフアイルへ(
Pl)の空領域の先頭を示すポインタを更新しくM理S
B 13) 、続けてプールファイルA(PL)をクロ
ーズする(処理SB 14)。
次に旧可変長レコード200のフラグ211を伸JL(
rlJ)にセットし、さらにプールレコードポインタ2
13にプールファイルA(PL)内の前記新可変長レコ
ード200の書き込み位置をセントする(処理SB 1
5)。そして、RAM。
R22内の全ての可変長レコード200を該当分割ファ
イルA (i)に書き戻しく処理5B16)、該当分割
ファイルA (i)のクローズを行った後(処理5B2
0) 、RAM、X20内の該当分割ファイルA (i
)に対応するインデックス情報171の分割ファイル情
報303  (Ha  (i))内の変更フラグを「1
」にセラ1−シ、RAM、X20内の分割ファイルイン
デックス170をインテ・ツクスフアイルA(ix)に
書き込む(処理5B21)。
そして、インデックスファイルA(ix)をクローズす
る(処理SB 10)。
このように、可変長レコード200の修正の結果、レコ
ード長が伸長すれば新たな可変長レコード200を作成
し、その新たな可変長レコード200をプールファイル
Δ(Pl)の空領域に格納し、さらに、修正前の可変長
レコード200のフラグ211に「1」 (伸長)を、
プールレコードポインタ213に前記新可変長レコード
200ノフールファイルΔ(PI)内の格納位置を七ソ
]・する。また、インデックスファイルA(ix)内の
該当分割ファイルA (i)に対応するインデックス情
報171の分割ファイル情報303の変更フラグをrl
Jにセントする。
一方、前記処理SB4で削除要求であると判別すれば、
該当分割ファイルA (i)をオープンする(処理5B
17)。そして、該当分割ファイルA (i)の全可変
長レコード200をRAM、R22に読み出し、RAM
、R22内を検索して削除対象の可変長レコード200
を見つけ出し、その可変長レコード200のフラグ21
1に「2」(削除)をセントする(処理SB 18)。
続けて、RAM、R22に格納されている該当分割ファ
イルΔN)の全ての可変長レコード200を該当分割フ
ァイルA (i)に害込み(処理5B19)、次に該当
分割ファイル八(i)をクローズする(処理5B20)
。さらに、RAM、X20内の該当分割ファイルA (
i)に対応するインデックス情報171の分割ファイル
情報303内の変更フラグを「1」にセントし、RAM
、X20内の分割ファイルインデンクス170をインデ
ックスファイルA(ix)に書き戻す(処理5B21)
続けて、インデックスファイルA(ix)をクローズす
る(処理5BIO)。
この結果、削除された可変長レコード200のフラグ2
11には「2」 (削除)がセントされ、インデックス
ファイルA(i>内の該当分割ファイルΔ(i)に対応
するインデックス情報171の分割ファイル情報303
内の変更フラグが「1」にセントされる。
次に、CPUによる分割ファイルA (i)の再編成処
理を第8図のフローチャートに示す。分割ファイルA 
(i)の再編成を行う場合、まずインデックスファイル
八(i x)をオープンしく処理5C1)、インデック
スファイルA(ix)からまず分割ファイルA(1)に
対応するインデックス情報171をRAM内の所定領域
に読み出す(処理5C2)。そして、インデックスファ
イルA(ix)の全てのインデックス情6171につい
て参照したかどうか判別しく処理5C3)、まだ全ての
・インデックス171を参照していない、すなわち新た
に読み出されたインデックス情報171があれば、その
インデックス情報171内の変更フラグを参照し、変更
フラグが「1」にセットされているか(分割ファイルA
 (i)内の可変長レコードに対して削除や伸長が行わ
れたか)を判別する(処理5C4)。そして、変更フラ
グがrlJにセットされていなければその読み出したイ
ンデックス情中t!171をRAM、X20に書き込み
(処理5C5) 、再び処理SC2に復帰する。
一方、前記処理SC4で変更フラグが「1」にセントさ
れていると判別すれば、続けて後述する処理SC6以降
の処理を行う。
すなわち、インデックスファイルΔ(ix)から全ての
インデックス情報171を順次読み出し、そのインデッ
クス情報171内の変更フラグが「1」にセットされて
いなければ読み出したインデックス情報171をそのま
まRAM、X20に転送する。
次に、インデックス情報171の変更フラグがrlJに
セントされている場合の処理を説明する。
上記処理SC4で、変更フラグがrlJにセントされて
いると判別すれば、読み出したインデックス情+l!1
71に対応する分割ファイルA (i)をオープンする
(処理5C6)。
次に、特には図示していないレジスタ1゛に予め定めら
れたRAM、W21の容量をセットする(処理SC7>
。尚、以後の説明においてレジスタ′rにセットされた
RAM、W21の容量をTと表現する。
次に、分割ファイルA (i)に格納されている全可変
長レコード200をRAM、R22に読み出しく処理5
C8) 、Tx2/3KI3フラグをリセットする(処
理5C9)。特には図示し°ζはいないがTX2/3K
BフラグはRAM、W21に書き込んだ可変長レコード
200のデータ容量がTX2/3以上となった時にセッ
トされるフラグである。そし°ζ、RAM、R22から
可変長レコード200を読み出し、その読み出した可変
長レコード200のフラグ211が「2」 (削除)に
セ・ノドされているか判別する処理を全°この可変長レ
コード200に対し行う(処理5CIO〜処理5C12
)。
処理5C12でフラグ211が「2」にセットされ′ζ
いれば、次の可変長レコード200を読み出すが、フラ
グ211が「2」 (削除)に七ノドされていなければ
、次にフラグ211が「1」(伸長)にセットされてい
るかどうか判別する(処理5C13)。そして、フラグ
211が「1」(伸長)にセントされていれば、プール
ファイルA(Pi)をオープンしく処理5C14)、前
記可変長コード200のプールレコードポインタ213
を参照して、・プールファイルΔ(Pl)内のそのプー
ルレコードポインタ213の示す位置に記憶されている
伸長レコードを読み出しく処理5015)、伸長レコー
ドの読み出し後、プールファイルA(Pi)をクローズ
する(処理5C1G)。
続けて、その伸長レコードをRAM、W21に書き込む
(処理5C17)。
一方、前記処理5C13で、フラグ211が「0」であ
れば、読み出した可変長レコード200をRAM、W2
1に転送する(処理5C17)。
すなわち、RAM、R22より読み出した可変長レコー
ド200のフラグ211がrOJであれば、その可変長
レコード200をRAM、W21に転送し、フラグ21
1が「1」 (伸長)であれば、読み出した可変長レコ
ード200に対応する伸長レコードをプールファイルA
(PL)から読み出しRAM、W21に転送する。また
、可変長レコード200のフラグ211が「2」 (削
除)であれば、その可変長レコード220はRAM。
W21には転送しない。
上記処理5C17でRAM、W21に可変長レコード2
00または伸長レコードを書き込んだ後、RAM、W2
1に書き込んだレコードのレコード長を累計し、そのレ
コード長の累計値を特には図示していないデータ容量レ
ジスタに格納する(処理5C18)。
次にTX 2/3フラグがセットされているか判別しく
処理SCI 9) 、Tx2/3フラグがセントされて
いなければデータ容量レジスタに格納されているレコー
ド長の累計値がTX2/3以上であるか判別する(処理
5C20)。そして、まだTX2/3以上になっていな
ければ、再び前記処理5CIO〜処理SC20を繰り返
す。
このように、RAM、R22から、キー順に可変長レコ
ード200を順次読み出して、その可変長レコード20
0が削除レコード(フラグ211が「2」にセットされ
ている可変長レコード200でなければ、RAM、W2
1へ可変長レコード200または可変長レコード200
に対応する伸長レコードを書き込んでいくので、RAM
、W21に書き込まれるレコードのレコード長の累計値
はしだいに増加していく。
そして、前記処理SC20でデータ容量レジスタに格納
されているレコード長の累計値がT×2/3以上となっ
た場合には、その時のRAM。
W21のデータ容量と、前記処理5C17でRAM、W
21へ最後に書き込んだレコードのレコード位置をセー
ブ(SAVE)L(処理SC21)、TX2/3KBフ
ラグをセット・する(処理5C22)。
続けて、データ容量レジスタに格納されているRAM、
W21に書き込まれたレコードのレコード長の累計が所
定容iT以上となったかどうかを判別する(処理5C2
3)。そして、レコード長の累計が所定容IT以上とな
っていると判別した場合には、重犯処理SC21でセー
ブしたデータ容量とレコード位置を読み出しく処理5C
24)、RAM、W21の先頭に格納されている可変長
レコード200のキーと、前記データ容■を基にインデ
ックス情報171を作成し、RAM、X20へ書き込む
(処理SC25゜) 続けて、新たな分割ファイルを作成しく処理5C26)
、その新分割ファイルへRAM、W21内の先頭から前
記処理SC21でセーブされたデータ容量分の可変長レ
コード200を書き込み(処理5C27)、可変長レコ
ード200の書き込み終了後その新分割ファイルをクロ
ーズする(処理5C28)。
次に、データ容量レジスタに格納されているレコード長
の累計値から処理SC21でセーブしたデータ容量を減
算しその減算結果をデータ容量レジスタに格納する(処
理5C29)。
次に、RAM、W21内の前記処理SC21でセーブし
たレコード位置にある可変長レコード200の次の可変
長レコード200から、データ容量レジスタに格納され
ているデータ容量に等しい新分割ファイルに書き込みを
行わなかった残りの可変長レコード200をRAM、W
21の先頭へ転送するく処理5C30)。
すなわち、分割ファイルA (i)の再編成を行った結
果、伸長レコードの数が多くて、新たな分割ファイルの
データ容量がTX2/3以上となる場合には、RAM、
W21に格納される可変長レコード200のデータ容量
がT以上となった時点で、新たな分割ファイルとその新
分割ファイルに対応するインデックス情報171を作成
する。そして、新分割ファイルに格納されなかった残り
の可変長レコード200を、RAM、W21の先頭へ転
送し、その残りの可変長レコード200のデータ容量を
データ容量レジスタに記憶する。
以上のようにして、新分割ファイルを作成した後、再び
RAM、R22から次の可変長レコード200を読み出
し、前述のようにして前記処理5C30で転送した可変
長レコード200に続けてRAM、W21にレコードを
書き込んでいく。
そして、RAM、R22から全ての可変長レコード20
0を読み出した場合には(処理5CII)、RAM、W
21に格納されている先頭のレコードのキーとデータ容
量レジスタに格納されているデータ容量(レコード長の
累計値)を基にインデックス情+Ill 71を作成し
、RAM、X20に書き込む(処理SC31)。
続け°ζ、RAM、W21に格納されているデータ容量
レジスタに格納されているデータ容量分のレコードを前
記処理SC6でオーブンした該当分割ファイルA (i
)へ書き込み(処理5C32)、書−き込み終了後、そ
の該当分割ファ・イルをクローズする(処理5C33)
そして、RAM、W21をデータクリアし、データ容量
レジスタを「0」にリセットする(処理5C34)。
このようにして、レコード更新の結果、伸長レコード“
の数が増加した分割ファイルA (i)に対しては、新
たな分割ファ・イルA(j)が作成される。この結果、
1個の分割ファイルが複数の分割ファイルに再編成され
る。そして、新たに作成された分割ファイルΔ(j)に
対してインデックス情18171が作成されRAM、X
20に書き込まれる。
以上のようにして、1つの分割ファイルA (i)に対
する再編成処理が終了すると、次の分割ファイルA(i
+−1>に対応するインデックス情報171を読み出し
く処理5C2) 、上述と同様の処理を行う。
このようにして、分割ファイルA(1)、A (2) 
、・・・、A (n)が順次、再編成され、全てのイン
デックス情報171について変更フラグの有無のチエツ
クが終了するとく処理5C3)、RAM、X20の内容
をインデックスファイルΔ(1x)に書き込み(処理5
C35)、インデックスファイルA(ix)をクローズ
するく処理5Ca6)。
さらに続けて、プールファイルΔ(Pl)を初期化する
(処理5C37)。
このように、変更フラグが「1」にセントされているイ
ンデックス情報171に対応する分割ファイルA (i
)に対してのみ、再編成処理を行うので、データ容量の
大きな索引順次編成ファ2イルであっても、所定容量単
位で適当な曲数の分割ファイル八(i)に分割するごと
によってファイルの再編成を高速に行うことが可能とな
る。
また、分割ファイルA (i)の再編成の結果、隣接す
る2つの分割ファイルの合計容量が所定容量以下になっ
た場合には、その2つの分割ファイルを併合すようにし
てもよい。
なお、本実施例ではレコードの追加は行っていないが、
レコー1zの追加も、可変長レコード内に追加フラグを
設しJ、追加レコードをプールファイルに格納するよう
にすることにより伸長レコードとほぼ同様にして容易に
実現できる。
〔発明の効果〕
本発明によれば、1つの索引順次、t、I成ファイルを
所定容量の分割ファイルに分割し、各分割ファイル毎に
各分割ファイルの先頭に格納されるレコードのキー等か
ら成るインデックス情報を作成する。そして、そのイン
デックス情報をインデックスファイルに格納するので、
レコードの更新、集計時にはインテ・/クス情報を参照
して更新、集計の対象となるレコードが格納されている
分割ファイルのみをアクセスすればよく、レコードの更
新、集計を高速に行うことができる。
また、インデックス情報に分割ファイル内に削除レコー
ドまたは伸長レコードが含まれるかの情報を記↑、@シ
た場合には、ファイルの再編成は、インデックス情報を
参照して削除レコードや伸長レコードを含む分割ファイ
ルに対してのみ行うことが可能となり、ファイルの再編
成を効イ1良く、高速に行うことができる。
さらに、各分割ファイルのデータ容ロ金インデックス情
報Gこ記f、αするようにした場合には、インデックス
情報を参照して、データ容量の極端に小さな分割ファイ
ルを隣接する分割ファイルに併合して、各分割ファイル
を常にアクセス効率の良い所定容量で管理することが可
能となる。
【図面の簡単な説明】
第1図は本発明の機能ブロック図、 第2図は一実施例のシステム構成図、 第3図は可変長レコードの形式を示す図、第4図は分割
ファイルの内部構成図、 第5図はインデックスファイル内の分割ファイルインデ
ックスの構成図、 第6図はCPUによるレコードの読み出し処理を説明す
るフローチャート、 第7図はCPUによるレコードの更新処理を説明するフ
ローチャート、 第8図はCPUによる分割ファイルの再編成処理を説明
するフローチャートである。 1・・・分割ファイル、 2・・・インデックスファイル、 3・・・アクセス手段、 4・・・レコード削除手段、 5・・・第1の分割ファイル再編成手段、6・・・レコ
ード作成手段、 プールファイル、 第2の分割ファイル再編成手段、 分割ファイル分割手段、 ・分割ファイル併合手段。

Claims (1)

  1. 【特許請求の範囲】 1)レコードをキー順に配列して記憶する少なくとも1
    個の分割ファイルと、 該分割ファイルの先頭レコードのキーをインデックス情
    報として記憶するインデックスファイルと、 該インデックスファイルのインデックス情報を参照して
    前記各分割ファイルのレコードをアクセスするアクセス
    手段と、 レコードの削除要求が加わった際に、当該レコードに削
    除レコードであることを示す情報を書き込むと共に、前
    記インデックスファイル内の前記当該レコードを記憶す
    る分割ファイルに対応するインデックス情報に削除レコ
    ード有りの情報を書き込むレコード削除手段とを有する
    ことを特徴とするファイル管理装置。 2)前記インデックスファイル内のインデックス情報に
    削除レコード有りの情報が記録されている分割ファイル
    をキー順に再編成する第1の分割ファイル再編成手段を
    有することを特徴とする請求項1記載のファイル管理装
    置。 3)レコードをキー順に配列して記憶する少なくとも1
    個の分割ファイルと、 該分割ファイルの先頭レコードのキーをインデックス情
    報として記憶するインデックスファイルと、 該インデックスファイルのインデックス情報を参照して
    前記各分割ファイルのレコードをアクセスするアクセス
    手段と、 レコード長の伸長を伴うレコード更新の要求が加わった
    際に、当該レコードに伸長レコードであることを示す情
    報を書き込むと共に、新レコードを作成し、前記インデ
    ックスファイル内のレコード更新の要求のあった当該レ
    コードを格納する分割ファイルに対応するインデックス
    情報に伸長レコード有りの情報を書き込むレコード作成
    手段と、該レコード作成手段によって作成された前記新
    レコードを格納するプールファイルとを有することを特
    徴とするファイル管理装置。 4)分割ファイル内に格納されている伸長が行われたレ
    コードを前記プールファイルに格納されている前記レコ
    ードに対応する伸長レコードに置き換えて前記インデッ
    クスファイル内のインデックス情報に伸長レコード有り
    の情報が記録されている分割ファイルをキー順に再編成
    する第2の分割ファイル再編成手段と、 前記第2の分割ファイル再編成手段により再編成された
    分割ファイルが所定容量以上になった場合に、その分割
    ファイルを分割する分割ファイル分割手段とを有するこ
    とを特徴とする請求項3記載のファイル管理装置。 5)前記第1の分割ファイル再編成手段または前記第2
    の分割ファイル再編成手段により再編成された結果、隣
    接する2つの分割ファイルの合計容量が所定容量以下に
    なった場合にその隣接する2つの分割ファイルを併合す
    る分割ファイル併合手段を有することを特徴とする請求
    項2または4記載のファイル管理装置。 6)前記分割ファイル分割手段は、分割ファイルの分割
    の結果生じた新たな分割ファイルの編成に対応して前記
    インデックスファイルのインデックス情報を書き換える
    ことを特徴とする請求項4記載のファイル管理装置。 7)前記分割ファイル併合手段は、分割ファイルの併合
    の結果生じた新たな分割ファイルの編成に対応して前記
    インデックスファイルのインデックス情報を書き換える
    ことを特徴とする請求項5記載のファイル管理装置。
JP63175105A 1988-07-15 1988-07-15 ファイル管理装置 Pending JPH0225946A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63175105A JPH0225946A (ja) 1988-07-15 1988-07-15 ファイル管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63175105A JPH0225946A (ja) 1988-07-15 1988-07-15 ファイル管理装置

Publications (1)

Publication Number Publication Date
JPH0225946A true JPH0225946A (ja) 1990-01-29

Family

ID=15990347

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63175105A Pending JPH0225946A (ja) 1988-07-15 1988-07-15 ファイル管理装置

Country Status (1)

Country Link
JP (1) JPH0225946A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02116936A (ja) * 1988-10-26 1990-05-01 Nec Corp 再編成方式
JPH04317144A (ja) * 1991-04-17 1992-11-09 Nec Corp ファイルスペース確保方式
JPH05143622A (ja) * 1991-11-19 1993-06-11 Oki Electric Ind Co Ltd 営業店対応マスタフアイル利用方法
JPH05189372A (ja) * 1991-08-16 1993-07-30 Internatl Business Mach Corp <Ibm> ソフトウェアのメッセージを表示するための方法及びシステム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02116936A (ja) * 1988-10-26 1990-05-01 Nec Corp 再編成方式
JPH04317144A (ja) * 1991-04-17 1992-11-09 Nec Corp ファイルスペース確保方式
JPH05189372A (ja) * 1991-08-16 1993-07-30 Internatl Business Mach Corp <Ibm> ソフトウェアのメッセージを表示するための方法及びシステム
JPH05143622A (ja) * 1991-11-19 1993-06-11 Oki Electric Ind Co Ltd 営業店対応マスタフアイル利用方法

Similar Documents

Publication Publication Date Title
EP0284664B1 (en) Method of rapidly opening disc files identified by path names
JP4313323B2 (ja) サーチ可能なアーカイブ
US5813000A (en) B tree structure and method
CN108804510A (zh) 键值文件系统
JPH04229372A (ja) メモリ空間再使用管理方法及びシステム
CN1139489A (zh) 加速计算机数据库事务处理的装置
EP1091295B1 (en) Data management system using a plurality of data operation modules
US7797290B2 (en) Database reorganization program and method
JP4304746B2 (ja) ファイルの置き換え方法及び装置
JPH0225946A (ja) ファイル管理装置
JP2656524B2 (ja) データ格納方法および装置
US6760713B2 (en) Method, computer program product, and system for file and record selection utilizing a fuzzy data record pointer
JPH0687229B2 (ja) 追記型記憶媒体を用いたファイルの管理方法
JPH096653A (ja) データベースのチェックを行う情報処理装置
JPH0298779A (ja) データベース管理方法
JP2002140220A (ja) ファイル管理方法および記録媒体
JPH02278439A (ja) 追記型デバイスのデータ管理方式
JPH07182215A (ja) データ管理装置
JP2615046B2 (ja) レコード追加処理方法
JP2000076106A (ja) 索引順編成ファイルの管理方法
JP2001056775A (ja) 計算機システム及びプログラム記録媒体
JPH0283639A (ja) ファイル作成制御方法
JPH0371244A (ja) データ管理方式
JPH043234A (ja) 固定長型レコードのファイリング制御方法
JPH07104758B2 (ja) レコード処理方式