JPH02165325A - ランダムアクセス可能なファイルのソート方式 - Google Patents

ランダムアクセス可能なファイルのソート方式

Info

Publication number
JPH02165325A
JPH02165325A JP32143788A JP32143788A JPH02165325A JP H02165325 A JPH02165325 A JP H02165325A JP 32143788 A JP32143788 A JP 32143788A JP 32143788 A JP32143788 A JP 32143788A JP H02165325 A JPH02165325 A JP H02165325A
Authority
JP
Japan
Prior art keywords
input
sort
sorting
file
output
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
JP32143788A
Other languages
English (en)
Inventor
Yoichi Ueda
洋一 上田
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP32143788A priority Critical patent/JPH02165325A/ja
Publication of JPH02165325A publication Critical patent/JPH02165325A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は、補助記憶装置上のランダムアクセス可能なフ
ァイル内に格納されたレコードをソートするソート処理
に関する。
(従来の技術) 従来、補助記憶装置上のランダムアクセス可能なファイ
ル内に格納されたレコードをソートするソート処理にお
いては、ソート用のワークファイルと、ソートすべきレ
コードの格納されたソート入力ファイルとは、補助記憶
装置内で別々のファイル領域に収られていた。
(発明が解決しようとする課題) 上述したように、従来補助記憶装置上のランダムアクセ
ス可能なファイル内に格納されたレコードをソートする
ソート処理においては、ソー1〜用のワークファイルと
、ソー1〜すべきレコードの格納されたソート入力ファ
イルとは、補助記憶装置内で別々のファイル領域に取ら
れていたから、特にソー1への対象となるレコードの件
数が多く、ソート入力ファイルのサイズが大きいような
場合には、ソートワークファイルとしてソート入力ファ
イルと同じ大きさのファイルVJ、域が必要となり、補
助記憶装置内のファイル領域を多く使用してしまうとい
う欠点があった。
(課題を解決するための手段) 本発明は、補助記憶装置上のランダムアクセス可能なフ
ァイル内に格納されたコードをソートするソート処理に
おいて、 ツー1−すべきレコードが格納され、ソートのワークフ
ァイルとしても兼用されるソート入力ファイルと、 前記ソート入力ファイル内のレコードをソートするソー
ト処理手段と、 前記ソート入力ファイル内のレコードをプロ・ンク単位
で入力するだめの入出力処理手段と、前記ソート処理手
段が前記入出力処理手段にノ(ラメータとして渡すため
の入出力パラメータテーブルと、 前記ソー1〜処理手段が前記入出力処理手段を用いて前
記ソー1〜人カフアイルからレコードを入力する際にバ
ンファとして用いる主記憶装置内の入力バッファと、 前記ソート処理手段が前記入出力処理手段を用いて前記
ソート入力ファイルへレコードを出力する際にバッファ
として用いる主記憶装置内の出力バッファと、 前記ソート処理手段が前記ソート入力ファイル内の空き
ブロックを管理するための空きブロック管理テーブルと
、 ソート結果を書き込むためのソート出力ファイルと、 前記ソート処理手段がソートを行うためのワークエリア
として用いる主記憶装置内のソートワーク領域と を備え、 前記ソート入力ファイルは一定の大きさを持つブロック
から構成され、 前記入力バッファ及び前記出力バッファは前記ソート入
力ファイルのブロックサイズと同一の大きさをそれぞれ
持ち、 前記ソート処理手段は、前記入出力処理手段を呼び出す
ことにより前記ソート入力ファイルのブロックを先頭ブ
ロックから順に前記入力バッファに入力していき、前記
入力バッファ内に入力されたブロックからレコードを一
件ずつ取り出し、取り出したレコードを前記ソートワー
ク領域内でソートしていき、ソートの中間結果としての
ストリングと呼ぶ順付けられたレコード列を生成し、生
成したストリングを前記出力バッファをバッファとして
用いながら前記ソート入力ファイル内へ前記入出力処理
手段を用いてブロック単位で書き出して行き、前記ソー
ト入力ファイルからのレコード入力修了後、生成したス
トリングをマージして行き、新しいストリングを作成し
ていき、一回のマージで全ストリングをマージできるま
でストリングの本数を減らすと、最後に全ストリングを
マージし、一本のストリングにまとめ、ソート結果とし
て前記ソート出力ファイルに出力していくことによりソ
ート処理を行うが、 前記ソート処理手段は、ソートす、べきレコードを入力
する処理において、前記ソート入力ファイルから、前記
入出力処理手段を用いて、プロ・ツクをm個前記入カバ
・yファ内に読み込む毎に、読み込んだブロックの先頭
の前記ソート入力ファイル内相対アドレスを前記空きブ
ロック管理テーブルに登録しておき、ストリングのブロ
ックを、ソート中間結果として前記ソート入力ファイル
へ出力する際には、前記空きブロック管理テーブルから
、1エントリ取り出し、ストリングのブロックを出力す
べき前記ソート入力ファイル内位置を得て、前記入出力
パラメータテーブルにブロック出力位置として設定し、
前記入出力処理手段を呼び出してストリングを出力して
いく ことを!tly徴とする。
(作用) 本発明のソート方式では、上述の手段により、ソート入
力ファイルをソーl〜の中間結果をたくわえておくため
のソートワークファイルとしても兼用しながらソートを
行って行く、そこで、本発明の方式ではソートで使用す
る補助記憶装置上のファイルスペースを節減することが
できる。
(実施例) 次に本発明について、図面を参照して詳細に説明する。
第1図は、本発明の一実施例を示すプロ・ンク図である
第1図において、1はソートすべきレコードが格納され
、ソートのワークファイルとしても兼用されるソート入
力ファイル、2はソート入力ファイル1内のレコードを
ソートするソート処理手段、3はソート入力ファイル1
内のレコードをブロック単位で入出力するための入出力
処理手段、4はソート処理手段2が入出力処理手段3に
パラメータとして渡すための入出力パラメータテーブル
、5はソー1−処理手段2が入出力処理手段3を用いて
ソート入力ファイル1からレコードを入力する際にバッ
ファとして用いる主記憶装置内の入力バッファ、6はソ
ート処理手段2が入出力処理手段3を用いてソート入力
ファイル1ヘレコードを出力する際にバッファとして用
いる主記憶装置内の出力バッファ、7はソート処理手段
2がソート入力ファイル1内の空きブロックを管理する
ための空きブロック管理テーブル、8はソート結果を書
き込むためのソート出力ファイル、9はソート処理手段
2がソートを行うためのワークエリアとして用いる主記
憶装置内のソートワーク領域である。
ソート入力ファイル1は、同一の大きさを、もつブロッ
クから構成されており、本例では4個のブロック11,
12,13.14から構成されている。
また本例では、ソート処理手段2は、ソート主処理21
、ソートレコード入力処理22、ストリング出力処理2
3の3つの部分に分けられているものとする。
第2図は、ソート主処理21の処理ステップを示す流れ
図である。
ソート主処理21は、まずステップ201で、ソート入
力ファイル1のファイルサイズ、ブロックサイズをそれ
ぞれ、F、Bに設定する。
次にステップ202でソート実行に必要な準備をした後
ステップ203へ移行する。
ステップ203では、ソートレコード入力処理22を呼
び出しソート入力ファイル1からレコードを1件ソート
ワーク領域9へ入力する。
ステップ204では、入力レコードが尽きた旨ソートレ
コード入力処理22から通知されたか否か判断する。
人力レコードが尽きていなければ、ステップ205にお
いて、ステップ203で読み込んだレコードをソートワ
ーク領域9内でソートしストリンクとして出力すべきレ
コードを決定し、ステップ206で出力すべきレコード
が決定したか判定し、まだ決定していない場合は、ステ
ップ203に戻り、出力するレコードが決定するまでレ
コードの入力を続け、ストリングとして出力すべきレコ
ードが決定すると、ステップ207において、ストリン
グ出力処理23を呼び出すことによりストリングのレコ
ードをソート入力ファイル1へ書き込みステップ203
へ戻る。
入力レコードが尽きた旨ソートレコード入力処理22か
ら通知されると、ステップ208へ移行し、ステップ2
08では、ソートワーク領域9内に残っているレコード
をソートしてソート入力ファイル1ヘストリング出力処
理23を用いて出力し、ステップ209において、ステ
ップ208以下で生成したストリングをマージし、新た
なストリングを作成、再びソート入力ファイルに書き込
んでいき、マージ処理をくりかえして実行し、ストリン
グを最終的に一本のストリングにまとめソート出力ファ
イル8に出力してソート処理を終了する。
第3図は、ソートレコード入力処理22の処理ステップ
を示す流れ図である。
ソートレコード入力処理22は、ソート主処理21から
制御を渡されると、まずステップ301で最初のレコー
ド入力か否か判定する。
最初のレコード入力でなければ、ステップ302で入力
バッファ5内に読み込まれているブロックからルコード
を取り出し、ステップ゛303において、まだソートワ
ーク領域9に読み込んでいないレコードが、入力バッフ
アラ内に残っていなかったか否か判定し、残っていたな
らば、ステップ304において、ステップ302で取り
出したレコードをソート主処理21へ渡し処理を終了し
、ソート主処理21へ制御を戻し、まだソートワーク領
域9に読み込んでいないレコードが人力バノファ5内に
は既になかったならば、ステップ305において、D 
十BとFとを比較、D−1−BかFより大であるなら、
読み込むべきブロックはもうないのでステップ306で
入力レコードが尽きた旨ソート主処理21に通知し処理
を終了しソート主処理21に制御を戻し、D+BがF以
下なら次のブロックを読み込むためにステップ309へ
分岐する。
最初のレコード入力である場合は、ステップ307で、
空きブロック管理テーブル7の作成エントリを示すため
の制御変数′Fの初期値としてOを設定、ステップ30
8では、ソート入力ファイル1からブロックを入力すべ
き位置を示すための制御変数りに初期値として0を設定
し、ステップ309へ移行する。
ステップ309以下は、ソート入力ファイル1から1ブ
ロック読み込むための処理ステップである。
ステップ309では、入出力パラメータテーブル4に、
読み込むべきブロックの位置としてDを設定し、ステッ
プ310で入出力処理手段3を呼び出しソート入力ファ
イル1がら、入力バッフアラへブロックを1個読み込む
次にステップ311で、読み込みを完了したブロックの
ソート入力ファイル1内アドレス(D)を空きブロック
管理テーブル7のT番目のエントリに設定し、ステップ
312で、DをD+Bに設定、ステップ313でTをT
+1に設定した後ステップ302へ移行し入力バッフア
ラからレコードを取り出す。
第4図は、ストリング出力処理23の処理ステップを示
す流れ図である。
ストリング出力処理23は、ソート主処理21から制御
を渡されると、まずステ・ツブ401で、最初のレコー
ド出力であるが否か判定し、最初のレコード出力であれ
ば、ステップ402で空きプD ツク管理テーブル7の
エントリを示すための制御変数Sの初期値として0を設
定する。
次にステップ403において、出力しようとしているレ
コードを書き込めるだけのスペースが出力バッファ6内
に残っているが否が判定する。
出力しようとしているレコードを書き込めるだけのスペ
ースが出力バッファ6内に残っていれば、ステップ40
4で、出力レコードを出力バッファ6へ転送し処理を終
了、ソート主処理21へ制御を戻す。
出力しようとしているレコードを書き込めるだけのスペ
ースが出力バッファ6内に残っていなければ、ステップ
405からステップ408で出力バッファ6内のレコー
ドをストリングの1ブロツクとしてソート入力ファイル
lへ出力して行く。
ステップ405では、空きブロック管理テーブル7のS
番目のエントリから、ブロックを書き込むべきソート入
力ファイル内位置Aを得る。
次にステップ406において、入出力パラメータテーブ
ル4に、ブロック書き込み位置として、Aを設定し、ス
テップ407で、入出力処理手段3を呼び出し出力バッ
ファ6内のレコードをストリングの1ブロツクとしてソ
ート入力ファイルに書き込み、ステップ408において
SをS+1に設定しステップ404へ分岐し、出力レコ
ードを出力バッファ6へ転送する。
(発明の効果) 上述したように本発明は、補助記憶装置上のランダムア
クセス可能なファイル内に格納されたレコードをソート
するソート処理において、ソート入力ファイルを、ソー
ト中間結果をたくわえておくためのソートワークファイ
ルとしても兼用しながらソートを行うようにすることに
より、ソートで使用する補助記憶装置上のファイルスペ
ースを節減することができるという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例を示すソート処理のブロック
図、第2図は第1図実施例におけるソー1へ主処理の処
理ステップを示す流れ図、第3図は第1図実施例におけ
るソートレコード入力処理の処理ステップを示す流れ図
、第4図は第1図実施例におけるストリング出力処理の
処理ステップを示す流れ図である。 1・・・ソートすべきレコードが格納され、ソートのワ
ークファイルとしても兼用されるソート入力ファイル、
2・・・ソート入力ファイル内のレコードをソートする
ソート処理手段、3・・・ソート入力ファイル内のレコ
ードをブロック単位で入出力するための入出力処理手段
、4・・・ソート処理手段が前記入出力処理手段にパラ
メータとして渡すための入出力パラメータテーブル、5
・・・ソート処理手段が入出力処理手段を用いてソート
入力ファイルからレコードを入力する際にバッファとし
て用いる主記憶装置内の入力バッファ、6・・・ソート
処理手段が入出力処理手段を用いてソート入力ファイル
へレコードを出力する際にバッファとして用いる主記憶
装置内の出力バッファ、7・・・ソート処理手段がソー
ト入力ファイル内の空きブロックを管理するだめの空き
ブロック管理テーブル、8・・・ソート結果を書き込む
ためのソート出力ファイル、9・・・ソート処理手段が
ソートを行うためのワークエリアとして用いる主記憶装
置内のソートワーク領域、11,12.13.14・・
・ソート入力ファイルを構成するブロック、21・・・
ソート主処理、22・・・ソートレコード入力処理、2
3・・・ストリング出力処理。

Claims (1)

  1. 【特許請求の範囲】 補助記憶装置上のランダムアクセス可能なファイル内に
    格納されたレコードをソートするソート処理において、 ソートすべきレコードが格納され、ソートのワークファ
    イルとしても兼用されるソート入力ファイルと、 前記ソート入力ファイル内のレコードをソートするソー
    ト処理手段と、 前記ソート入力ファイル内のレコードをブロック単位で
    入力する入出力処理手段と、 前記ソート処理手段が前記入出力処理手段にパラメータ
    として渡す入出力パラメータテーブルと、前記ソート処
    理手段が前記入出力処理手段を用いて前記ソート入力フ
    ァイルからレコードを入力する際にバッファとして用い
    る主記憶装置内の入力バッファと、 前記ソート処理手段が前記入出力処理手段を用いて前記
    ソート入力ファイルへレコードを出力する際にバッファ
    として用いる主記憶装置内の出力バッファと、 前記ソート処理手段が前記ソート入力ファイル内の空き
    ブロックを管理するための空きブロック管理テーブルと
    、 ソート結果を書き込むためのソート出力ファイルと、 前記ソート処理手段がソートを行うためのワークエリア
    として用いる主記憶装置内のソートワーク領域と を備え、 前記ソート入力ファイルは一定の大きさを持つブロック
    から構成され、 前記入力バッファ及び前記出力バッファは前記ソート入
    力ファイルのブロックサイズと同一の大きさをそれぞれ
    持ち、 前記ソート処理手段は、前記入出力処理手段を呼び出す
    ことにより前記ソート入力ファイルのブロックを先頭ブ
    ロックから順に前記入力バッファに入力していき、前記
    入力バッファ内に入力されたブロックからレコードを一
    件ずつ取り出し、取り出したレコードを前記ソートワー
    ク領域内でソートしていき、ソートの中間結果としての
    ストリングと呼ぶ順付けられたレコード列を生成し、生
    成したストリングを前記出力バッファをバッファとして
    用いながら前記ソート入力ファイル内へ前記入出力処理
    手段を用いてブロック単位で書き出して行き、前記ソー
    ト入力ファイルからのレコード入力修了後、生成したス
    トリングをマージして行き、新しいストリングを作成し
    ていき、一回のマージで全ストリングをマージできるま
    でストリングの本数を減らすと、最後に全ストリングを
    マージし、一本のストリングにまとめ、ソート結果とし
    て前記ソート出力ファイルに出力していくことによりソ
    ート処理を行うが、 前記ソート処理手段は、ソートすべきレコードを入力す
    る処理において、前記ソート入力ファイルから、前記入
    出力処理手段を用いて、ブロックを一個前記入力バッフ
    ァ内に読み込む毎に、読み込んだブロックの先頭の前記
    ソート入力ファイル内相対アドレスを前記空きブロック
    管理テーブルに登録しておき、ストリングのブロックを
    、ソート中間結果として前記ソート入力ファイルへ出力
    する際には、前記空きブロック管理テーブルから、1エ
    ントリ取り出し、ストリングのブロックを出力すべき前
    記ソート入力ファイル内位置を得て、前記入出力パラメ
    ータテーブルにブロック出力位置として設定し、前記入
    出力処理手段を呼び出してストリングを出力していく ことを特徴とするランダムアクセス可能なファイルのソ
    ート方式。
JP32143788A 1988-12-20 1988-12-20 ランダムアクセス可能なファイルのソート方式 Pending JPH02165325A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32143788A JPH02165325A (ja) 1988-12-20 1988-12-20 ランダムアクセス可能なファイルのソート方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32143788A JPH02165325A (ja) 1988-12-20 1988-12-20 ランダムアクセス可能なファイルのソート方式

Publications (1)

Publication Number Publication Date
JPH02165325A true JPH02165325A (ja) 1990-06-26

Family

ID=18132547

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32143788A Pending JPH02165325A (ja) 1988-12-20 1988-12-20 ランダムアクセス可能なファイルのソート方式

Country Status (1)

Country Link
JP (1) JPH02165325A (ja)

Similar Documents

Publication Publication Date Title
US4785400A (en) Method for processing a data base
JPH02178730A (ja) 分割法を用いた内部ソート方式
JP2586610B2 (ja) ファイル作成方式
JPS6172333A (ja) 複数ファイルのマージ方法
JPS63276629A (ja) ファイル内レコ−ドのソ−ト方式
JPH0145648B2 (ja)
JPS6381526A (ja) ソ−ト入出力バツフア管理方式
JPH02116936A (ja) 再編成方式
JPH04353944A (ja) 索引順編成ファイルのレコード追加方式
JPS6266326A (ja) 日本語デ−タ整列処理方式
JPH01228022A (ja) 二次元データ格納方式
JPH03202934A (ja) データ処理装置
JPH03226829A (ja) 情報処理装置
JPH04102918A (ja) ソート処理方式
JP2926803B2 (ja) ソート処理方法
JPH01258071A (ja) 論理一致点ファイル生成方式
JPH04238532A (ja) ソート処理方式
JPH02216554A (ja) 索引順編成ファイルの再編成方式
JPH04340623A (ja) データ・グループ化処理方法
JPH04213111A (ja) データソート方式
JPH02294729A (ja) ソート処理方式
JPS62251923A (ja) ソ−ト処理方法
JPS6476339A (en) Processing system for restoration of editing data
JPH0449436A (ja) インデックス生成方式
JPS63253431A (ja) インバ−テツド構造のデ−タベ−ス検索方式