JPH0434783B2 - - Google Patents

Info

Publication number
JPH0434783B2
JPH0434783B2 JP2394284A JP2394284A JPH0434783B2 JP H0434783 B2 JPH0434783 B2 JP H0434783B2 JP 2394284 A JP2394284 A JP 2394284A JP 2394284 A JP2394284 A JP 2394284A JP H0434783 B2 JPH0434783 B2 JP H0434783B2
Authority
JP
Japan
Prior art keywords
area
data
storage device
record
classification
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.)
Expired - Lifetime
Application number
JP2394284A
Other languages
English (en)
Other versions
JPS60168232A (ja
Inventor
Kazunari Miura
Kyoshi Aoki
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
Nippon Electric 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP2394284A priority Critical patent/JPS60168232A/ja
Publication of JPS60168232A publication Critical patent/JPS60168232A/ja
Publication of JPH0434783B2 publication Critical patent/JPH0434783B2/ja
Granted legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】 〔技術分野〕 本発明は電子計算機による事務データ処理の分
類方式に関し、特に、電子計算機の内部記憶装置
と外部記憶装置を利用し、かつ個々のデータの制
御フイールド(キー項目)の密度に着目して分類
処理する大容量データの高速分類方式を提供する
ものである。
〔従来技術〕
従来、大容量データの分類方式は、第1図に示
したように、次のステツプから成る。
第1ステツプ;プリソート(presort)フエー
ズ複数個の糸連(又はストリング)の作成を
行う。
第2ステツプ;マージ(Merge)フエーズスト
リング数がラストパスのマージオーダ以下に
なるまでストリングの併合を行う。
第3ステツプ;ラストパス(Last pass)フエ
ーズ1本のストリングを作成する。これが分
類済出力フアイルである。
即ち、第1ステツプで複数個のストリングを作
成し、第2ステツプで該ストリングを併合して、
ストリング数を第3ステツプが処理できる所まで
減らす。ここで、ストリングをマージ(併合)し
なければならないのは、第2図のように、ストリ
ング10同志がオーバーラツプするデータ10aを
含んでいること(ストリング10内のデータのキ
ー項目がオーバーラツプしていること)及びラス
トパスのマージオーダ以上のストリングが生成さ
れるからである。したがつて、第3図のように、
生成されるストリング10がオーバーラツプせ
ず、かつ論理的にでもラストパスのマージオーダ
以下にできれば、第2ステツプ(マージフエー
ズ)は不要となり、第1ステツプから第3ステツ
プへ直接進むことができる。
一般に、大容量データの分類処理時間に占める
マージフエーズの処理時間は、非常に大きくなつ
ている。従つて、第2ステツプを常にバイパスで
きる分類方式が見つかれば、ソーテイング手法と
して大変有効なわけである。
〔発明の目的〕
本発明の目的は、上述した欠点を除去し、スト
リング同志のオーバーラツプを前述の第1ステツ
プのプリソートフエーズの段階で取り除き、前述
の第2ステツプのマージフエーズを削除して直接
第3ステツプのラストパスフエーズへ進めること
ができるようにして、大容量のデータを高速で分
類処理できるようにした分類方式を提供すること
にある。
〔発明の構成〕
本発明によれば、 第1及び第2の記憶装置を有する電子計算機を
使用してデータを分類する方式において、 分類すべきデータを前記第1の記憶装置の分類
作業領域にて個々のデータの制御フイールドを基
にして順序付けすること、及びその中で最も密度
の高い所定個数(ただし複数個)のデータ部分の
みを最適ブロツクとして前記第2の記憶装置に格
納し、該最適ブロツク以外のデータを前記分類作
業領域に残すことを、繰り返して分類処理するプ
リソート手段と、 該最適ブロツクが前記第2の記憶装置に出力さ
れる毎に、出力された最適ブロツクの分類順序を
制御する結合順エントリーを、前記第1の記憶装
置に設けられた結合領域に格納する同期処理手段
とを備え、 個々の分類データの制御フイールドの密度を解
析し、分類処理することを特徴とする密度解析分
類方式が得られる。
〔実施例〕
次に本発明の実施例について図面を参照して説
明する。
第4図を参照すると、本発明の一実施例による
密度解析分類方式に従つたデータの流れが示され
ている。
本発明の一実施例による密度解析分類方式は、
内部記憶装置100と外部記憶装置200とを有
する電子計算機を使用してデータを分類する。
本実施例による密度解析分類方式は、いずれ
も、前記電子計算機のCPU(中央処理ユニツト)
によつて達成されるプリソート手段と同期処理手
段とを有している。
前記プリソート手段は、分類すべきデータを内
部記憶装置100の分類作業領域RSAにて個々
のデータの制御フイールド(キー項目)を基にし
て順序付けすること、及びその中で最も密度の高
い所定固数(ただし複数個)のデータ部分(キー
項目の差の小さい部分)のみを最適ブロツク(ベ
ストブロツク)として内部記憶装置100の入出
力バツフアI/O Bufferを介して外部記憶装
置200に格納し、該最適ブロツク以外のデータ
を内部記憶装置100の前記分類作業領域RSA
に残すことを、繰り返して分類処理する機能を有
する。
また、前記同期処理手段は、前記最適ブロツク
(ベストブロツク)が外部記憶装置200に出力
される毎に、出力された最適ブロツクの分類順序
を制御する結合順エントリーを、内部記憶装置1
00に設けられた結合領域LPAに格納する機能
を有する。これによつて内部記憶装置100上の
データと外部記憶装置200上のデータとの同期
処理がとられる。
以下、本実施例の動作を詳細に説明する。
1 オーバーラツプしないストリングの作成方法
を第5図を参照して説明する。
従来同様入力データを読み、内部記憶装置1
00上の分類作業領域(これを以後Record
Strage Area略してRSAと呼ぶ)単位に1本
のストリングを作成するという考え方は同じで
あるが、その過程で分類すべきデータを各入力
データの制御フイールド(キー項目)を基にし
て順序付けすると共に外部記憶装置200へ出
力する入れもの(つまりI/O Buffer)の
大きさ単位に制御フイールド(キー項目)の値
の差を取る。そして、この差が最小となる組
(つまりストリング内の最も密度の濃い部分)
を最適ブロツク(これを以後Best Blockと呼
ぶ)として選択し、このBest Block自身、他
のBest Blockとは一般にオーバーラツプしな
いようにする。
2 録理的にラストパスのマージオーダ以下にす
る方法を、第6図及び第7図を参照して説明す
る。ここで論理的にと言つているのは物理的に
データを移動させてマージ(併合)するのでは
なく、データ自身は動かさずに併合することを
言う。
さて、1)で生成したBest Blockを外部記憶
装置200に出力するときに、同時にストリング
が書かれる番地(相対番地)とストリング内の最
小キーとを対にしたエントリーを内部記憶装置1
00上にキー値の昇順に並べて格納しておく。こ
の格納領域のことを結合領域(Link Pool Area
略してLPA)という。こうすることによつて第
6図のようにBest Block同志を連結していく。
また、結合領域へエントリーを登録する場合、
該エントリーのキー値が登録されているエントリ
ーの最大キー値より大きければその後へ、小さけ
ればバイナリイ・サーチにて登録位置をつかまえ
挿入する(サーチ条件は、自分より大きいか等し
い)。このとき、以前にその位置にあつたエント
リーがはみだされるわけであるが、このエントリ
ーを、第7図に示すように、そのときのBest
Blockを外部記憶装置200に書き込むとき、先
頭にくつつけて書いておく。この先頭の部分のこ
とを連結番地と云う。これにより外部記憶装置2
00上からBest Blockを読んできたとき、次に
連結しているBest Blockがどこにあるかわかる
ようにする。第7図は、新しいエントリー(4番
地でキーが14)を登録した場合の例である。
故に、この方法を用いれば、論理的に全ての
Best Blockは結合されてしまい、1ストリング
にすることができる。
以上にプリソートフエーズを説明したが、以下
にプリソートフエーズのみならずラストパスフエ
ーズを、より具体的な例について説明する。本例
では、 入力データ(キイ):7,14,1,4,6,19,
20,2,3,15,5,8,11,9 分類作業領域(RSA)の大きさ:5個 I/O Bufferの大きさ:3個 結合領域(LPA)の大きさ:3個 とする。
Best Block(最適ブロツク)の生成を、第8
図を参照して説明する。
内部記憶装置100において、分類作業領域
(RSA)内で1ストリングとなつたストリング
からキーの値が一番接近したBest Blockを選
択し、その作業フアイル上での相対番地と最小
キーとからなるエントリーを結合領域(LPA)
へ格納すると同時に外部記憶装置200の作業
フアイルへBest Blockを書き出す。そのとき、
連結番地も先頭につける。以下この処理を、入
力データがすべてなくなるまで続ける。尚、第
8図において、△は空エリアを示している。入
力データが空になりRSAのレコードが全部処
理されたとき、結合領域に格納されたエントリ
ーを次のラストパスフエーズの前で一端、作業
フアイル上へデータと区別するために先頭に識
別子“INDEXED”をつけて出力しておく。こ
れは、ここで一度区切りを設けることにより、
内部記憶装置100での矛盾を防ぐこと及び、
時点を違えて履行する場合に有効である。
ラストパス(1ストリングに併合してソート
結果を出力フアイルへ書く)動作を、第9図を
参照して説明する。
の終りで作業フアイル上へ出力しておいた
INDEXEDブロツクをまず読んで結合領域
(LPA)にそのエントリーを移す。あとは、結
合領域(LPA)内のエントリーを順次にたぐ
つていけば、外部記憶装置200にソート結果
が得られる原理である。ラストパスの終了の判
定は結合領域(LPA)内のエントリーがすべ
て処理されたとき、つまり全てゼロにクリアさ
れた時に終了し、結果は外部記憶装置200の
出力フアイルへ出される。
次に、入力データ(キイ):7,14,1,4,
…,9がどこのでどのようにして分類作業領域
RSAに格納されるかについて説明する。
RSAの各エントリは第10図に示すように、
ポインタ部11、およびレコード格納部12から
構成される。RSA内エントリはa,b,c,d,
eの5個から構成される。また、RSAとは別に
ストリングの先頭をポイントするストリング先頭
ポインタ13がある。
ポインタ部11は他のエントリをポイントする
ためのポインタ領域で、初期値としてポインタ部
11が何もポイントしていないことを示す
NULL値を設定しておく。また、ストリング先
頭ポインタ13もNULL値で初期設定を行う。
第11図はRSAの状態遷移図である。ストリ
ングを生成する過程を第11図を用いて説明す
る。
入力フアイルからレコードを入力すると、レコ
ードをRSA内の先頭の領域aに格納する。スト
リング先頭ポイント13がMULL値なので、比
較すべきレコードが存在しないために無条件でス
トリング先頭ポインタ13が領域aをポイントす
るようにする(第11図(1)の状態)。
次のレコードを入力し領域bに格納する。スト
リング先頭ポインタ13が領域aをポイントして
いるので、領域bのレコードと領域aのレコード
との比較を行う。比較の結果、領域bのキー値が
大きいので、次に領域bのレコードと比較すべき
レコードの侯補を求めるために領域aのポインタ
部11を参照するが、領域aのポインタ部11が
NULL値なのでストリングの終端であることが
解る。そこで、次のレコードの探索を止め、領域
aのポインタ部12が領域bをポイントするよう
に設定する。これによつて、領域bのレコードが
ストリングの終端になる(第11図(2)の状態)。
次のレコードを入力し領域cに格納する。スト
リング先頭ポインタ13が領域aをポイントして
いるので、領域cのレコードと領域aのレコード
との比較を行う。比較の結果、領域cのレコード
のキー値が小さいので、領域cのポインタ部11
が領域aをポイントするようにセツトし、更に先
頭ポインタ13が領域cをポイントするように変
更する(第11図(3)の状態)。
次のレコードを入力し領域dに格納する。スト
リング先頭ポインタ13が領域cをポイントして
いるので、領域dのレコード領域cのレコードと
の比較を行う。比較の結果領域dのレコードのキ
ー値が大きいので、次に領域cのポインタ部12
がポイントする領域aのレコードと比較する。比
較の結果、領域dのレコードのキー値が小さいの
で領域dのポインタ12が領域aをポイントする
ようにセツトし、領域aのポインタ部11から領
域dをポイントするように修正する(第11図(4)
の状態)。
次のレコードを入力し領域eに格納する。スト
リング先頭ポインタ13が領域cをポイントして
いるので、領域eのレコードと領域cのレコード
との比較を行う。比較の結果、領域eのレコード
のキー値が大きいので、次に領域cのポインタ部
11がポイントする領域dのレコードと比較す
る。比較の結果、領域eのレコードのキー値が大
きいので、更に領域dのポインタ部11がポイン
トする領域aのレコードと比較する。比較の結
果、領域eのレコードのキー値が小さいので、領
域eのポインタ12が領域aをポイントするよう
にセツトし、領域dのポインタ部12から領域e
をポイントするように修正する(第11図(5)の状
態)。
領域eまでレコードが格納された状態(第11
図(5)の状態)が第8図の一番最初の状態である。
ここで明らかなようにRSA内でレコードは物理
的に並んでいる訳ではなく、各領域内の持つポイ
ンタ値11を辿ることによつてストリングを形成
している。
上述したように該当の最適ブロツクが領域d,
e,aであることが判明すると、領域d,e,
a,のレコードをI/Oバツフアに順次転送を行
う。
この操作過程を引き続き第11図を用いて説明
を行う。
領域dをI/Oバツフアに転送する。転送は領
域dのレコード格納部12のみを行い、ポインタ
部11は転送しない。領域dのポインタ部11に
はNULL値を設定し再度初期化する。レコード
転送後、領域dをポイントする領域cのポインタ
部11は領域dがポイントしていた領域eをポイ
ントするように修正する(第11図(6)の状態)。
次に、領域eのレコードを同様に転送する。領
域eのポインタ部11にはNULL値を設定し再
度初期化する。領域cのポインタ部11は領域e
がポイントしていた領域aをポイントするように
修正する。第11図(7)の状態)。
更に、領域aのレコードを同様に転送する。領
域aのポインタ部11にはNULL値を設定し再
度初期化する。領域cのポインタ部11は領域a
がポイントしていた領域bをポイントするように
修正する(第11図(8)の状態)。
必要なレコードのI/Oバツフアへの転送が終
了すると、入力フアイルからのレコードの入力が
再開される。入力レコードのRSA領域への転送
はI/Oバツフアにレコードが転送され、空き領
域になつている領域a,d,eに対して順次行わ
れる。その過程を示したのが、第11図の(9),(10)
および(11)である。
次に、密度が同じ場合どうするかについて説明
する。
密度が同じものが存在する場合、各々の最適ブ
ロツクの侯補と選んだブロツク内の最小キー値の
小さいものを選択する。更に、重複キーが多く存
在し最小キー値が等しいブロツクの侯補がある場
合は物理的に先に現れたものを選択する。
次に、ラストパスにおいて、作業フアイルから
読み出されたブロツクとRSAの合成がどこでど
のようにされるか(空きエリアの場合も含む)、
更には、出力フアイルが1キーであつたり、3キ
ーであつたりする理由について説明する。
ラストパスにおける作業フアイルから読み出さ
れたブロツクとRSAの合成(マージ操作)は作
業フアイルのブロツクに読み出された時点で行わ
れる。
第9図を用いて詳細に説明する。第9図の作業
フアイル番地のブロツクを入力した時点で、最
初のマージ操作が行われる。マージ操作は作業フ
アイルに入力したレコードの最小キー値を持つも
のと、RSA内のストリングの最小キー値と比較
する。比較の結果、RSA内のストリングの最小
キー値を持つ値1のレコードが出力フアイルに出
力される。その結果、RSA内に3個のレコード
格納領域が確保され、以後のマージ操作の結果は
順次RSA内に転送できるようになる。
つまり、作業フアイルのブロツク内のキー値4
を持つレコードとRSA内の最小キー値の次の値
を持つキー値2のレコードと比較する。比較の結
果、RSAのレコードのキー値が小さいため、引
き続き、RSA内の次のキー値3と比較する。比
較の結果、RSAのレコードのキー値が小さいた
め、次に比較すべきレコードの侯補を捜すが
RSA内にレコードが最早存在しないため、作業
フアイルのブロツクから順次キー値4,6,7の
レコードをRSAに移送する。
次に、作業フアイルの番地のブロツクを入力
する。のブロツクはレコードが1件でこれを
RSA内に移送するには、RSA内が一杯の状態で
あるため、RSAから1個のレコードを出力フア
イルへ出力する必要がある。上記と同様にRSA
内の最小キー値を持つレコード(キー値2のレコ
ード)と作業フアイル内の最小キー値を持つレコ
ード(キー値5のレコード)との比較が行われ、
比較の結果、キー値2のレコードが出力フアイル
に書き出される。次にRSA内で小さい値を持つ
キー値4のレコードと比較を行い、比較の結果
RSA内のレコードが小さいため、更にRSA内の
次のレコード、キー値6のレコード比較する。比
較の結果作業フアイルのレコードの値が小さいの
で、RSA内にキー値5のレコードを転送する。
次にのブロツクを入力する。のブロツクは
レコードが3個あり、これをRSA内に移送する
には、RSA内が一杯の状態であるためRSAから
3個のレコードを出力フアイルへ出力する必要が
ある。上記と同様にRSA内の最小キー値を持つ
レコード(キー値3のレコード)と作業フアイル
内の最小キー値を持つレコード(キー値8のレコ
ード)との比較が行われ、比較の結果、キー値3
のレコードが出力フアイルに書き出される。同様
にキー値4,5のレコードが出力フアイルに書き
出され、作業フアイルのブロツクの内容を
RSAへに移送する。
以後、同様に作業フアイル内の,,番地
のブロツクを順次入力しマージしてRSA内に格
納できないレコードを出力フアイルに出力する。
作業フアイルから入力すべきレコードが存在しな
くなつたら、RSA内に残つたストリングを順次
出力フアイルに出力する。
〔発明の効果〕
本発明は以上説明したように、第1の記憶装置
(内部記憶装置)と第2の記憶装置(外部記憶装
置)とを有する電子計算機を使用して、個々のデ
ータの制御フイールド(キー項目)の密度に着目
して大容量データを高速に分類できるという効果
がある。
【図面の簡単な説明】
第1図は従来方式の分散処理の流れ図、第2図
及び第3図は従来方式と本発明の方式のストリン
グ作成の相異を説明するための図、第4図は本発
明の一実施例による密度解析分類方式に従つたデ
ータの流れを示した図、第5図は本発明に従う最
適ブロツクの作成方法のブロツク図、第6図は本
発明における分類作業領域とエントリー結合領域
の対応図、第7図は本発明に従う結合領域と外部
記憶装置上との順序付け維持のため方式を示すブ
ロツク図、第8図は本発明に従う最適ブロツクの
生成の具体例を説明するための図、第9図は本発
明に従うラストパス(1ストリングに併合して出
力フアイルに書く)処理過程を説明するための図
である、第10図及び第11図は本発明の動作を
説明するためのブロツク図である。 10…ストリング、100…内部記憶装置、
RSA…分類作業領域、I/O Buffer…入出力
バツフア、LPA…結合領域、200…外部記憶
装置。

Claims (1)

  1. 【特許請求の範囲】 1 第1及び第2の記憶装置を有する電子計算機
    を使用してデータを分類する方式において、 分類すべきデータを前記第1の記憶装置の分類
    作業領域にて個々のデータの制御フイールドを基
    にして順序付けすること、及びその中で最も密度
    の高い所定個数(ただし複数個)のデータ部分の
    みを最適ブロツクとして前記第2の記憶装置に格
    納し、該最適ブロツク以外のデータを前記分類作
    業領域に残すことを、繰り返して分類処理するプ
    リソート手段と、 該最適ブロツクが前記第2の記憶装置に出力さ
    れる毎に、出力された最適ブロツクの分類順序を
    制御する結合順エントリーを、前記第1の記憶装
    置に設けられた結合領域に格納する同期処理手段
    とを備え、 個々の分類データの制御フイールドの密度を解
    析し、分類処理することを特徴とする密度解析分
    類方式。
JP2394284A 1984-02-10 1984-02-10 密度解析分類方式 Granted JPS60168232A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2394284A JPS60168232A (ja) 1984-02-10 1984-02-10 密度解析分類方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2394284A JPS60168232A (ja) 1984-02-10 1984-02-10 密度解析分類方式

Publications (2)

Publication Number Publication Date
JPS60168232A JPS60168232A (ja) 1985-08-31
JPH0434783B2 true JPH0434783B2 (ja) 1992-06-09

Family

ID=12124584

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2394284A Granted JPS60168232A (ja) 1984-02-10 1984-02-10 密度解析分類方式

Country Status (1)

Country Link
JP (1) JPS60168232A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0199125A (ja) * 1987-10-12 1989-04-18 Nec Corp リンク分類方式

Also Published As

Publication number Publication date
JPS60168232A (ja) 1985-08-31

Similar Documents

Publication Publication Date Title
US4817036A (en) Computer system and method for data base indexing and information retrieval
US4760526A (en) Method for storing data into a file device and for data retrieval
US5117495A (en) Method of sorting data records
US5349684A (en) Sort and merge system using tags associated with the current records being sorted to lookahead and determine the next record to be sorted
EP0978782B1 (en) Sorting system and method
US5319651A (en) Data integrity features for a sort accelerator
CA2017900A1 (en) Sort accelerator using rebound sorter as merger
JP3515810B2 (ja) ソート処理方法および装置
JPH024026B2 (ja)
US5206947A (en) Stable sorting for a sort accelerator
JPH0434783B2 (ja)
JPH08190571A (ja) 文書検索方法
US20050060314A1 (en) System and methods involving a data structure searchable with O(logN) performance
JP2921045B2 (ja) インデックス生成方式
JP2006268545A (ja) ファイル結合装置及びファイル結合方法及びプログラム
JP2669241B2 (ja) マイグレーション処理方式
JP3824091B2 (ja) リレーショナルデータベースシステム
JP2926803B2 (ja) ソート処理方法
JP2724235B2 (ja) 変数名称推論装置
JPH02148174A (ja) Ocrによる住所データベース検索装置
JP3293551B2 (ja) ソート処理方法
Goetz Some improvements in the technology of string merging and internal sorting
JPH0291725A (ja) 併合処理方式
JPH0664587B2 (ja) 検索処理装置における検索条件判定方法
JPS62257549A (ja) デ−タベ−スフアイルの復元方式