JPH0782429B2 - 複数ファイルのマージ方法 - Google Patents
複数ファイルのマージ方法Info
- Publication number
- JPH0782429B2 JPH0782429B2 JP59193503A JP19350384A JPH0782429B2 JP H0782429 B2 JPH0782429 B2 JP H0782429B2 JP 59193503 A JP59193503 A JP 59193503A JP 19350384 A JP19350384 A JP 19350384A JP H0782429 B2 JPH0782429 B2 JP H0782429B2
- Authority
- JP
- Japan
- Prior art keywords
- files
- record
- sort
- 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.)
- Expired - Lifetime
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明はデータ管理システムにおける複数ファイルのマ
ージ方法に関する。
ージ方法に関する。
データ管理システムは多種多様のデータを目的の構成に
して表示する等,多分野において有効なシステムであ
る。たとえば,商社の営業所内の品目別の売上,営業所
別売上計算表示等その用途は多い。
して表示する等,多分野において有効なシステムであ
る。たとえば,商社の営業所内の品目別の売上,営業所
別売上計算表示等その用途は多い。
このようなデータ管理システムを有効としている処理に
ソート処理、マージ処理がある。ソート処理は入力され
たデータ群,すなわち入力ファイルを指定キー順に並び
換え出力ファイルを作る処理である。たとえば,この処
理によって前述した商社においては営業所内の品目別売
上順,営業所別売上順等に入力データを並び換えること
ができる。前述した,指定キーとは並び換えを行なう時
の昇順を指示するデータを意味し,数字アルファベット
順等がこれに対応する。前述した商社の場合には売上デ
ータが指定キーとなる。
ソート処理、マージ処理がある。ソート処理は入力され
たデータ群,すなわち入力ファイルを指定キー順に並び
換え出力ファイルを作る処理である。たとえば,この処
理によって前述した商社においては営業所内の品目別売
上順,営業所別売上順等に入力データを並び換えること
ができる。前述した,指定キーとは並び換えを行なう時
の昇順を指示するデータを意味し,数字アルファベット
順等がこれに対応する。前述した商社の場合には売上デ
ータが指定キーとなる。
一方,マージ処理は複数のファイルを1個のファイルに
併合する処理であり,たとえばこの処理によって営業所
別に設けられた複数の売上ファイルを1個のファイルに
まとめることができる。
併合する処理であり,たとえばこの処理によって営業所
別に設けられた複数の売上ファイルを1個のファイルに
まとめることができる。
前述したソート処理は一般的にマージ処理をも含んで行
なう。従来,ソート処理でのマージでは1個のファイル
にまとめられるファイル数すなわちマージウェイ数が多
い程高効率的に処理できるとされている。しかしなが
ら,現在行なわれているマージ処理は単に複数のファイ
ルを2個のファイル単位で順次マージ処理して,最終的
に1個のファイルにする方法が多く用いられている。こ
の方法ではソート処理の為の指定キーの比較が1回のマ
ージ処理の為に行なわれ,次回の比較には何ら用いられ
ることはない。その為,3個以上のファイルの場合には複
数回同じ比較処理を行なうこととなり,不必要な時間を
多く費やしていた。
なう。従来,ソート処理でのマージでは1個のファイル
にまとめられるファイル数すなわちマージウェイ数が多
い程高効率的に処理できるとされている。しかしなが
ら,現在行なわれているマージ処理は単に複数のファイ
ルを2個のファイル単位で順次マージ処理して,最終的
に1個のファイルにする方法が多く用いられている。こ
の方法ではソート処理の為の指定キーの比較が1回のマ
ージ処理の為に行なわれ,次回の比較には何ら用いられ
ることはない。その為,3個以上のファイルの場合には複
数回同じ比較処理を行なうこととなり,不必要な時間を
多く費やしていた。
本発明の課題は、複数ファイルのマージをより高速に行
えるようにすることである。
えるようにすることである。
本発明の手段は次の通りである。
レコードが予めキー順にソートされた複数のファイルを
有するデータ管理システムにおいて、 (a)上記複数のファイルの各ファイル毎に所定数のレ
コードを読み出し所定メモリに記憶し、 (b)この所定メモリに記憶された各レコードを上記キ
ー順にソートし、(c)このソートされた上記各レコー
ド内で、最もソート順位の高いレコードをマージファイ
ルに出力し、(d)この出力されたレコードの記憶され
ていたファイルより次のソート順位のレコードを新たに
読み出し、(e)この新たに読み出したレコードと、上
記所定メモリ内におけるソートでそのソート順位が第2
番目に高い第2レコードと、のキー順位の大小を比較
し、(f)上記新たに読み出したレコードのキー順位
が、上記第2レコードのキー順位よりも高いときには、
上記新たに読み出したレコードを上記マージファイルに
出力して、上記ステップ(d)より処理を繰り返し、
(g)上記新たに読み出したレコードのキー順位が、上
記第2レコードのキー順位よりも低いときには、上記ス
テップ(b)より処理を繰返す。
有するデータ管理システムにおいて、 (a)上記複数のファイルの各ファイル毎に所定数のレ
コードを読み出し所定メモリに記憶し、 (b)この所定メモリに記憶された各レコードを上記キ
ー順にソートし、(c)このソートされた上記各レコー
ド内で、最もソート順位の高いレコードをマージファイ
ルに出力し、(d)この出力されたレコードの記憶され
ていたファイルより次のソート順位のレコードを新たに
読み出し、(e)この新たに読み出したレコードと、上
記所定メモリ内におけるソートでそのソート順位が第2
番目に高い第2レコードと、のキー順位の大小を比較
し、(f)上記新たに読み出したレコードのキー順位
が、上記第2レコードのキー順位よりも高いときには、
上記新たに読み出したレコードを上記マージファイルに
出力して、上記ステップ(d)より処理を繰り返し、
(g)上記新たに読み出したレコードのキー順位が、上
記第2レコードのキー順位よりも低いときには、上記ス
テップ(b)より処理を繰返す。
本発明の手段の作用は次の通りである。
複数ファイルをマージする際は、まず、(a)上記複数
のファイルの各ファイル毎に所定数のレコードを読み出
し所定メモリに記憶し、次に(b)この所定メモリに記
憶された各レコードを上記キー順にソートし、次に
(c)このソートされた上記各レコード内で、最もソー
ト順位の高いレコードをマージファイルに出力する。こ
れによりまずは先頭のレコードが出力できる。
のファイルの各ファイル毎に所定数のレコードを読み出
し所定メモリに記憶し、次に(b)この所定メモリに記
憶された各レコードを上記キー順にソートし、次に
(c)このソートされた上記各レコード内で、最もソー
ト順位の高いレコードをマージファイルに出力する。こ
れによりまずは先頭のレコードが出力できる。
次に(d)この出力されたレコードの記憶されていたフ
ァイルより次のソート順位のレコードを新たに読み出
し、(e)この新たに読み出したレコードと、上記所定
メモリ内におけるソートでそのソート順位が第2番目に
高い第2レコードと、のキー順位の大小を比較し、
(f)上記新たに読み出したレコードのキー順位が、上
記第2レコードのキー順位よりも高いときには、上記新
たに読み出したレコードを上記マージファイルに出力し
て、上記ステップ(d)より処理を繰返し、(g)上記
新たに読み出したレコードのキー順位が、上記第2レコ
ードのキー順位よりも低いときには、上記ステップ
(b)より処理を繰返す。
ァイルより次のソート順位のレコードを新たに読み出
し、(e)この新たに読み出したレコードと、上記所定
メモリ内におけるソートでそのソート順位が第2番目に
高い第2レコードと、のキー順位の大小を比較し、
(f)上記新たに読み出したレコードのキー順位が、上
記第2レコードのキー順位よりも高いときには、上記新
たに読み出したレコードを上記マージファイルに出力し
て、上記ステップ(d)より処理を繰返し、(g)上記
新たに読み出したレコードのキー順位が、上記第2レコ
ードのキー順位よりも低いときには、上記ステップ
(b)より処理を繰返す。
従って、複数のファイルのマージ処理を、各ファイルか
ら抽出した小数のレコードに基づいて効率的に行えるも
のであり、加えて、各ファイルから抽出したレコードに
基づいたソート処理の中で、ソート処理が必要ないよう
な場合には事前にこれをチェックして不要なソート処理
を行わないようにしたので、より高速なマージ処理が可
能となる。
ら抽出した小数のレコードに基づいて効率的に行えるも
のであり、加えて、各ファイルから抽出したレコードに
基づいたソート処理の中で、ソート処理が必要ないよう
な場合には事前にこれをチェックして不要なソート処理
を行わないようにしたので、より高速なマージ処理が可
能となる。
第1図は本発明の実施例のシステム構成図である。磁気
ディスク装置1内には複数のファイルを有し,それらの
ファイルはストリング生成部2,入力ワークファイル管理
部3,ソートメモリ部4によって記憶しているデータブロ
ックが制御される。ストリング生成部2は単に複数必要
データブロックを特定データすなわち指定キーに含まれ
る情報によってそれらの複数のデータブロックを並べ換
える回路である。入力ワークファイル管理部3は本発明
の実施例におけるソート処理においてマージ処理する入
力ワークファイルを管理する回路であり,この回路によ
ってソート処理する複数のファイルのデータブロックが
読出されソートメモリ部4に格納される。この時の複数
のファイルからのデータブロックの読出しはあらかじめ
ストリング生成部2によって指定キーによる並べ換えが
なされたファイルから行なわれるので,それぞれのファ
イルから読出されたデータブロックは指定キー順に読出
される。ソートメモリ部4は前述の読出されたデータブ
ロックの指定キー順の並びに換えを行なう回路である。
複数のファイルのそれぞれ内部においては,ストリング
生成部において指定キー順に並べられているが,それぞ
れのファイルより読出されたデータブロックにおいては
まだソート処理がされていない。これを行なうのがソー
トメモリ部4である。そして並べ換えられた各データブ
ロックの先頭のデータブロックが出力ワークファイル管
理部5の制御によって磁気ディスク装置内の出力ワーク
ファイルWK2に格納される。
ディスク装置1内には複数のファイルを有し,それらの
ファイルはストリング生成部2,入力ワークファイル管理
部3,ソートメモリ部4によって記憶しているデータブロ
ックが制御される。ストリング生成部2は単に複数必要
データブロックを特定データすなわち指定キーに含まれ
る情報によってそれらの複数のデータブロックを並べ換
える回路である。入力ワークファイル管理部3は本発明
の実施例におけるソート処理においてマージ処理する入
力ワークファイルを管理する回路であり,この回路によ
ってソート処理する複数のファイルのデータブロックが
読出されソートメモリ部4に格納される。この時の複数
のファイルからのデータブロックの読出しはあらかじめ
ストリング生成部2によって指定キーによる並べ換えが
なされたファイルから行なわれるので,それぞれのファ
イルから読出されたデータブロックは指定キー順に読出
される。ソートメモリ部4は前述の読出されたデータブ
ロックの指定キー順の並びに換えを行なう回路である。
複数のファイルのそれぞれ内部においては,ストリング
生成部において指定キー順に並べられているが,それぞ
れのファイルより読出されたデータブロックにおいては
まだソート処理がされていない。これを行なうのがソー
トメモリ部4である。そして並べ換えられた各データブ
ロックの先頭のデータブロックが出力ワークファイル管
理部5の制御によって磁気ディスク装置内の出力ワーク
ファイルWK2に格納される。
前述した動作は単に1データブロックを出力ワークファ
イルに格納するのではなく,全ての入力ワークファイル
内のストリングデータをソートメモリ部4でソート処理
して出力ワークファイルに格納するので,前述の動作の
くりかえしによって,最終的には複数のファイルすなわ
ちストリング内のデータブロックが全てソート処理され
て1個の出力ワークファイルに格納される。
イルに格納するのではなく,全ての入力ワークファイル
内のストリングデータをソートメモリ部4でソート処理
して出力ワークファイルに格納するので,前述の動作の
くりかえしによって,最終的には複数のファイルすなわ
ちストリング内のデータブロックが全てソート処理され
て1個の出力ワークファイルに格納される。
第2図は前述した処理の構成をさらに詳細に表わす構成
図,第3図はその処理フローチャート図である。
図,第3図はその処理フローチャート図である。
処理実行が開始(START)すると先ず,マージウェイ数
の設定処理並びに出力ワークファイル管理テーブル5′
に属する相対キーカウンタに“1"をレコード件数カウン
タに“0"を格納する処理S1を実行する。マージウェイ数
の設定処理とは図示しない,たとえばキーボード等によ
ってオペレータが入力し設定するものである。200ファ
イル等を同時に行なうのはワークファイル等を多く必要
とする為,ファイル領域の確保ができない場合があり,
これを防止する為にオペレータによって1回のマージ処
理を行なうファイルの数を設定する。第2図においては
そのファイル数は4(A〜D)となっている。次に入力
管理テーブル3′にもとずき入力ワークファイルWK1の
ファイルA〜Dの対称レコードをソートテーブル4′に
格納する処理S2を行なう。入力ワークファイル管理テー
ブル3′は入力ワークファイル管理部3が有するテーブ
ルであり,入力ワークファイルWK1内のファイルA〜D
のそれぞれに対応したストリング内レコード数並びに相
対キー値を記憶する。第2図においては4個のファイル
A〜Dの管理テーブルについて表わしているが、これは
後述するようにさらに複数のファイルのソート処理をす
る場合もあり第2図ファイルA′〜D′に対応した管理
テーブルもたとえば連続して存在する。処理S2によって
ソートテーブル4′にファイルAの1データブロックが
格納される。尚,ソートテーブル4′はソートメモリ部
4内に設けられたテーブルである。
の設定処理並びに出力ワークファイル管理テーブル5′
に属する相対キーカウンタに“1"をレコード件数カウン
タに“0"を格納する処理S1を実行する。マージウェイ数
の設定処理とは図示しない,たとえばキーボード等によ
ってオペレータが入力し設定するものである。200ファ
イル等を同時に行なうのはワークファイル等を多く必要
とする為,ファイル領域の確保ができない場合があり,
これを防止する為にオペレータによって1回のマージ処
理を行なうファイルの数を設定する。第2図においては
そのファイル数は4(A〜D)となっている。次に入力
管理テーブル3′にもとずき入力ワークファイルWK1の
ファイルA〜Dの対称レコードをソートテーブル4′に
格納する処理S2を行なう。入力ワークファイル管理テー
ブル3′は入力ワークファイル管理部3が有するテーブ
ルであり,入力ワークファイルWK1内のファイルA〜D
のそれぞれに対応したストリング内レコード数並びに相
対キー値を記憶する。第2図においては4個のファイル
A〜Dの管理テーブルについて表わしているが、これは
後述するようにさらに複数のファイルのソート処理をす
る場合もあり第2図ファイルA′〜D′に対応した管理
テーブルもたとえば連続して存在する。処理S2によって
ソートテーブル4′にファイルAの1データブロックが
格納される。尚,ソートテーブル4′はソートメモリ部
4内に設けられたテーブルである。
次に実行すべきマージウェイ数分をソートテーブル4′
に格納したかの判別S3を行なう。第2図においては1個
のマージウェイ数は4であるので,NOとなり,残りスト
リング数が1であるかの判別S4を行なう。本発明の実施
例においては処理後に前述のような数の更新を行なうの
で最終値は全て“1"となり,この“1"を判別している。
前述の判別S4の現在の状態では“1"ではない(NO)ので
次に入力すべき入力管理テーブルのポイントを指定する
(S5)。そして次に残ファイルすなわち残ストリング数
が2の時にマージウェイ数を変更する処理S6を行なう。
第1回目においては残ストリング数は2ではないので変
更されず,再度処理S2を実行し,前述した動作をマージ
ウェイ数回くりかえす。尚,ストリング数がマージウェ
イ数の整数倍である時には処理S6によるマージウェイ数
の変更はなされない。なぜならば,マージウェイ数単位
で判別処理S3で処理S7に分岐し,全てが終了すなわちマ
ージウェイ数の整数倍のストリングのソート処理が終了
した時には判別処理S4においては残ストリング数が1と
なり次の判別処理S8に分岐するからである。
に格納したかの判別S3を行なう。第2図においては1個
のマージウェイ数は4であるので,NOとなり,残りスト
リング数が1であるかの判別S4を行なう。本発明の実施
例においては処理後に前述のような数の更新を行なうの
で最終値は全て“1"となり,この“1"を判別している。
前述の判別S4の現在の状態では“1"ではない(NO)ので
次に入力すべき入力管理テーブルのポイントを指定する
(S5)。そして次に残ファイルすなわち残ストリング数
が2の時にマージウェイ数を変更する処理S6を行なう。
第1回目においては残ストリング数は2ではないので変
更されず,再度処理S2を実行し,前述した動作をマージ
ウェイ数回くりかえす。尚,ストリング数がマージウェ
イ数の整数倍である時には処理S6によるマージウェイ数
の変更はなされない。なぜならば,マージウェイ数単位
で判別処理S3で処理S7に分岐し,全てが終了すなわちマ
ージウェイ数の整数倍のストリングのソート処理が終了
した時には判別処理S4においては残ストリング数が1と
なり次の判別処理S8に分岐するからである。
前述の動作のくりかえしで,ソートテーブル4′には各
ストリングすなわちファイルA〜Dの先頭データブロッ
クが格納される。このイニシャルセットの後に順次ソー
ト処理がなされる。先ず,出力ワークファイルWK2に格
納すべきアドレス値を指定する為に,相対キーカウンタ
5″の値とレコード件数カウンタ6の値を加算して相対
キーカウンタ5″に格納し、そしてレコード件数カウン
タをクリアする処理S7を実行する。そして第2図に示す
ソートテーブル4′内に格納された4個のデータブロッ
クに対するソート処理S9を実行する。この処理S9によっ
てソートテーブル4′内に格納された各データブロック
は指定キー順に並ぶ。尚,テーブル内のXは先頭データ
ブロックであり,Yは次のデータブロックである。
ストリングすなわちファイルA〜Dの先頭データブロッ
クが格納される。このイニシャルセットの後に順次ソー
ト処理がなされる。先ず,出力ワークファイルWK2に格
納すべきアドレス値を指定する為に,相対キーカウンタ
5″の値とレコード件数カウンタ6の値を加算して相対
キーカウンタ5″に格納し、そしてレコード件数カウン
タをクリアする処理S7を実行する。そして第2図に示す
ソートテーブル4′内に格納された4個のデータブロッ
クに対するソート処理S9を実行する。この処理S9によっ
てソートテーブル4′内に格納された各データブロック
は指定キー順に並ぶ。尚,テーブル内のXは先頭データ
ブロックであり,Yは次のデータブロックである。
ソートテーブル4′の入力ワークファイル管理テーブル
ポインタ7はそれぞれファイルA〜Dの入力ワークファ
イル管理テーブル3′のアドレス値を示し,入力ワーク
ファイル管理テーブル3′にはファイルA〜Dの相対キ
ー値が格納されているので間接的にソートテーブル4′
内でソートされたテーブルブロックの記憶位置が求めら
れる。第4図はファイルA〜Dすなわち各ストリングと
ソートテーブル4′の関係を直接的に表わした構成図で
ある。各ストリングA〜Dの#1レコード〜#100レコ
ードはそれぞれデータブロックであり,そのデータブロ
ックがソートテーブル4′に格納されている。第2図並
びに第4図においてはファイルA〜Dと同順でソートテ
ーブル4′にデータブロックが格納されているが,これ
は単にそのような順に結果がなった場合であり,このソ
ートテーブル4′に格納されている順は指定キー順とな
る。尚,ファイルA〜Dと対応した順にソートした結果
がならなくとも入力ワークファイル管理テーブルポイン
タ7がそれぞれ並びかえられたファイルを表わしている
ので対応関係はこのポインタ7とテーブル3′によって
求められる。ソート処理S9によって指定キー順にならべ
られたデータブロックの先頭データブロックすなわち最
小レコードXを出力ワークファイルWK2の相対キーカウ
ンタ5″で指定される位置に格納S10しレコード件数カ
ウンタ5″を+1(S10)する。尚,出力ワークファイ
ル管理テーブル5′は,後述するが,マージウェイ数が
ソートすべき全ストリング数より小さい場合に分割して
マージウェイ数で行ない,さらにそれらの結果を分割し
てマージした単位でソート処理する時に必要となる管理
テーブルである。
ポインタ7はそれぞれファイルA〜Dの入力ワークファ
イル管理テーブル3′のアドレス値を示し,入力ワーク
ファイル管理テーブル3′にはファイルA〜Dの相対キ
ー値が格納されているので間接的にソートテーブル4′
内でソートされたテーブルブロックの記憶位置が求めら
れる。第4図はファイルA〜Dすなわち各ストリングと
ソートテーブル4′の関係を直接的に表わした構成図で
ある。各ストリングA〜Dの#1レコード〜#100レコ
ードはそれぞれデータブロックであり,そのデータブロ
ックがソートテーブル4′に格納されている。第2図並
びに第4図においてはファイルA〜Dと同順でソートテ
ーブル4′にデータブロックが格納されているが,これ
は単にそのような順に結果がなった場合であり,このソ
ートテーブル4′に格納されている順は指定キー順とな
る。尚,ファイルA〜Dと対応した順にソートした結果
がならなくとも入力ワークファイル管理テーブルポイン
タ7がそれぞれ並びかえられたファイルを表わしている
ので対応関係はこのポインタ7とテーブル3′によって
求められる。ソート処理S9によって指定キー順にならべ
られたデータブロックの先頭データブロックすなわち最
小レコードXを出力ワークファイルWK2の相対キーカウ
ンタ5″で指定される位置に格納S10しレコード件数カ
ウンタ5″を+1(S10)する。尚,出力ワークファイ
ル管理テーブル5′は,後述するが,マージウェイ数が
ソートすべき全ストリング数より小さい場合に分割して
マージウェイ数で行ない,さらにそれらの結果を分割し
てマージした単位でソート処理する時に必要となる管理
テーブルである。
次に出力対称すなわち出力されたデータブロックXに対
応した入力管理テーブル3′を更新S11し相対キー値を
+1する。管理テーブル3′の更新処理S11後,出力対
称となったストリングすなわちファイルがソート終了で
あるかと判別する為,入力管理テーブル3′内のストリ
ング内レコード数が1であるかを判別S12する。1でな
い時すなわちNOの時には出力されたデータブロックに対
応するファイルA〜Dより新比較対称レコードすなわち
データブロックをソートテーブル4′に補充S13しレコ
ード数を−1する。そして新比較対称レコードの指定キ
ーとソートテーブル4′内の次のレコードすなわちYの
指定キーとを比較し,等しいあるいはそれより先の場合
にはソートテーブル4′内には指定キー順に格納されて
いることになり,処理S10より再度実行する。それ以外
の時にはソートをしなおす必要があるので,ソート処理
S9より実行する。尚,図中A,Bは処理が続くことを表わ
す接続子である。
応した入力管理テーブル3′を更新S11し相対キー値を
+1する。管理テーブル3′の更新処理S11後,出力対
称となったストリングすなわちファイルがソート終了で
あるかと判別する為,入力管理テーブル3′内のストリ
ング内レコード数が1であるかを判別S12する。1でな
い時すなわちNOの時には出力されたデータブロックに対
応するファイルA〜Dより新比較対称レコードすなわち
データブロックをソートテーブル4′に補充S13しレコ
ード数を−1する。そして新比較対称レコードの指定キ
ーとソートテーブル4′内の次のレコードすなわちYの
指定キーとを比較し,等しいあるいはそれより先の場合
にはソートテーブル4′内には指定キー順に格納されて
いることになり,処理S10より再度実行する。それ以外
の時にはソートをしなおす必要があるので,ソート処理
S9より実行する。尚,図中A,Bは処理が続くことを表わ
す接続子である。
一方,判別S12において,ストリング内レコード数が1
の時には,出力対称となったファイルA〜Dのうちの1
個のデータブロックが全てのソートされたものであるの
で,他のファイルも全て出力終了したかを判別S15す
る。全て出力していない場合には残りのファイルに対し
てソート処理を行なわなくてはならないので、再度残り
のファイルに対してソートする為処理9より再度くりか
えす。全て終了した場合には出力管理テーブル5′全ス
トリング数,ストリング内レコード数,相対キー値に更
新処理S16し,出力管理テーブル5′に再び行なうファ
イルのソート処理出力の管理テーブルを作成する。これ
は次のストリング内レコード数と相対キー値を格納する
為のエリアを確保する為の処理である。そして処理S2よ
り再度,たとえば新しいファイルA′〜D′のソートを
行なう為の処理をくりかえす。
の時には,出力対称となったファイルA〜Dのうちの1
個のデータブロックが全てのソートされたものであるの
で,他のファイルも全て出力終了したかを判別S15す
る。全て出力していない場合には残りのファイルに対し
てソート処理を行なわなくてはならないので、再度残り
のファイルに対してソートする為処理9より再度くりか
えす。全て終了した場合には出力管理テーブル5′全ス
トリング数,ストリング内レコード数,相対キー値に更
新処理S16し,出力管理テーブル5′に再び行なうファ
イルのソート処理出力の管理テーブルを作成する。これ
は次のストリング内レコード数と相対キー値を格納する
為のエリアを確保する為の処理である。そして処理S2よ
り再度,たとえば新しいファイルA′〜D′のソートを
行なう為の処理をくりかえす。
前述の動作により特定のマージウェイ数たとえば第2図
においては4個単位でソートされたファイルA/D,A′〜
D′がそれぞれ1個のファイルとして出力ワークファイ
ルWK2に格納される。この状態すなわちマージウェイ数
単位で入力ワークファイルWK1内のファイルA〜D,A′〜
D′が全てソートされたか否かを判別する。ここでは出
力管理テーブル5′の全ストリング数すなわち出力ワー
クファイルWK2が1個となったか否かを判別する。1個
でない時にはそれらのソートされ出力された出力ワーク
ファイルの内容を再度ソートする為,出力管路テーブル
4′の内容を入力管理テーブル2′に格納S17し,さら
にワークファイルWK2の内容を入力ワークファイルWK1に
格納S18する。尚,前述のテーブルのデータの移動は直
接データを移動しているがこの移動のかわりにポインタ
によってテーブル等のアドレスを指定して処理するシス
テムの場合には単にテーブルやファイルのポインタ値た
とえば先短アドレスを変更することに等価的なデータ等
の移動が可能となる。処理S17,S18の実行後再度前述し
た処理S2以後をくりかえすことによって最終的には1個
のストリングになり,ソート処理におけるマージ処理を
終了する。
においては4個単位でソートされたファイルA/D,A′〜
D′がそれぞれ1個のファイルとして出力ワークファイ
ルWK2に格納される。この状態すなわちマージウェイ数
単位で入力ワークファイルWK1内のファイルA〜D,A′〜
D′が全てソートされたか否かを判別する。ここでは出
力管理テーブル5′の全ストリング数すなわち出力ワー
クファイルWK2が1個となったか否かを判別する。1個
でない時にはそれらのソートされ出力された出力ワーク
ファイルの内容を再度ソートする為,出力管路テーブル
4′の内容を入力管理テーブル2′に格納S17し,さら
にワークファイルWK2の内容を入力ワークファイルWK1に
格納S18する。尚,前述のテーブルのデータの移動は直
接データを移動しているがこの移動のかわりにポインタ
によってテーブル等のアドレスを指定して処理するシス
テムの場合には単にテーブルやファイルのポインタ値た
とえば先短アドレスを変更することに等価的なデータ等
の移動が可能となる。処理S17,S18の実行後再度前述し
た処理S2以後をくりかえすことによって最終的には1個
のストリングになり,ソート処理におけるマージ処理を
終了する。
本願発明によれば、複数ファイルのマージ処理を、各フ
ァイルから抽出した小数のレコードに基づいて効率的に
行えるものであり、加えて、各ファイルから抽出したレ
コードに基づいたソート処理の中で、ソート処理が必要
ないような場合には事前にこれをチェックして不要なソ
ート処理を行わないようにしたので、より高速なマージ
処理が可能となる。
ァイルから抽出した小数のレコードに基づいて効率的に
行えるものであり、加えて、各ファイルから抽出したレ
コードに基づいたソート処理の中で、ソート処理が必要
ないような場合には事前にこれをチェックして不要なソ
ート処理を行わないようにしたので、より高速なマージ
処理が可能となる。
第1図は本発明の実施例のシステム構成図,第2図は処
理の構成図,第3図は処理のフローチャート図,第4図
は入力ワークファイルとソートテーブルの関係を表わす
構成図である。 1……磁気ディスク装置,2……ストリング生成部,3……
入力ワークファイル管理部,3′……入力ワークファイル
管理テーブル,4……ソートメモリ部,4′……ソートテー
ブル,5……出力ワークファイル管理部,5′……出力ワー
クファイル管理テーブル、5″……相対キーカウンタ,6
……レコード件数カウンタ,A〜D,A′〜D′,ストリン
グ(ファイル),WK1……入力ワークファイル,WK2……出
力ワークファイル
理の構成図,第3図は処理のフローチャート図,第4図
は入力ワークファイルとソートテーブルの関係を表わす
構成図である。 1……磁気ディスク装置,2……ストリング生成部,3……
入力ワークファイル管理部,3′……入力ワークファイル
管理テーブル,4……ソートメモリ部,4′……ソートテー
ブル,5……出力ワークファイル管理部,5′……出力ワー
クファイル管理テーブル、5″……相対キーカウンタ,6
……レコード件数カウンタ,A〜D,A′〜D′,ストリン
グ(ファイル),WK1……入力ワークファイル,WK2……出
力ワークファイル
Claims (1)
- 【請求項1】レコードが予めキー順にソートされた複数
のファイルを有するデータ管理システムにおいて、 (a)上記複数のファイルの各ファイル毎に所定数のレ
コードを読み出し所定メモリに記憶し、 (b)この所定メモリに記憶された各レコードを上記キ
ー順にソートし、 (c)このソートされた上記各レコード内で、最もソー
ト順位の高いレコードをマージファイルに出力し、 (d)この出力されたレコードの記憶されていたファイ
ルより次のソート順位のレコードを新たに読み出し、 (e)この新たに読み出したレコードと、上記所定メモ
リ内におけるソートでそのソート順位が第2番目に高い
第2レコードと、のキー順位の大小を比較し、 (f)上記新たに読み出したレコードのキー順位が、上
記第2レコードのキー順位よりも高いときには、上記新
たに読み出したレコードを上記マージファイルに出力し
て、上記ステップ(d)より処理を繰り返し、 (g)上記新たに読み出したレコードのキー順位が、上
記第2レコードのキー順位よりも低いときには、上記ス
テップ(b)より処理を繰返す、ようにしたことを特徴
とする複数ファイルのマージ方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59193503A JPH0782429B2 (ja) | 1984-09-15 | 1984-09-15 | 複数ファイルのマージ方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59193503A JPH0782429B2 (ja) | 1984-09-15 | 1984-09-15 | 複数ファイルのマージ方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6172333A JPS6172333A (ja) | 1986-04-14 |
JPH0782429B2 true JPH0782429B2 (ja) | 1995-09-06 |
Family
ID=16309131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP59193503A Expired - Lifetime JPH0782429B2 (ja) | 1984-09-15 | 1984-09-15 | 複数ファイルのマージ方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0782429B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6327926A (ja) * | 1986-07-22 | 1988-02-05 | Toshiba Corp | 文書作成装置 |
JPH07101382B2 (ja) * | 1987-07-30 | 1995-11-01 | 日本電信電話株式会社 | マ−ジ処理装置 |
JPH01177122A (ja) * | 1988-01-07 | 1989-07-13 | Hitachi Ltd | ソート処理装置 |
JPH01248232A (ja) * | 1988-03-15 | 1989-10-03 | Internatl Business Mach Corp <Ibm> | レコード列組合せ方法 |
JPH0324617A (ja) * | 1989-06-21 | 1991-02-01 | Nec Corp | データ処理方式 |
JP2606608B2 (ja) * | 1994-10-31 | 1997-05-07 | 日本電気株式会社 | 同値キーが存在するデータのソート方式 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5958852U (ja) * | 1982-10-12 | 1984-04-17 | 株式会社明電舎 | デ−タ処理装置 |
-
1984
- 1984-09-15 JP JP59193503A patent/JPH0782429B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPS6172333A (ja) | 1986-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0124097A2 (en) | Method for storing and retrieving data in a data base | |
JPH0782429B2 (ja) | 複数ファイルのマージ方法 | |
WO2005043409A1 (ja) | 表形式データの結合方法、結合装置およびプログラム | |
US6643632B1 (en) | Data processing system and computer-readable recording medium recorded with a program for causing a computer to process data | |
JP2760755B2 (ja) | コンピュータ処理用操作ボタン履歴を記憶し再表示する方法 | |
JP2923952B2 (ja) | マージ処理方法 | |
JPS62287350A (ja) | インデツクス一括更新方式 | |
JP3047400B2 (ja) | データ処理装置 | |
JPH06215044A (ja) | 情報検索処理装置 | |
JP3018674B2 (ja) | 部品展開処理装置 | |
JP3337469B2 (ja) | 情報処理装置 | |
JPS6266326A (ja) | 日本語デ−タ整列処理方式 | |
JP3111498B2 (ja) | レコード検索方法及びデータ処理装置 | |
JPS63204434A (ja) | 電子化文書検索装置 | |
JPH01228022A (ja) | 二次元データ格納方式 | |
JPH0266672A (ja) | フロッピーの管理装置 | |
JPS63172334A (ja) | デ−タベ−スシステムのデ−タ処理方式 | |
JPH0145648B2 (ja) | ||
JPH06149635A (ja) | レコード追加処理方法 | |
JPH0373019B2 (ja) | ||
JPH117402A (ja) | データ処理方法 | |
JPH01106217A (ja) | 並列格納・読出し方式データ処理装置 | |
JPS63276639A (ja) | レコ−ド追加処理方法 | |
JPH0224715A (ja) | ファイル処理装置 | |
JPH0224737A (ja) | ファイル処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |