JP4036514B2 - データ圧縮方法とデータ復元方法およびソートマージ処理装置とソートマージ処理方法およびこれら方法のプログラムを記録した媒体 - Google Patents
データ圧縮方法とデータ復元方法およびソートマージ処理装置とソートマージ処理方法およびこれら方法のプログラムを記録した媒体 Download PDFInfo
- Publication number
- JP4036514B2 JP4036514B2 JP34470797A JP34470797A JP4036514B2 JP 4036514 B2 JP4036514 B2 JP 4036514B2 JP 34470797 A JP34470797 A JP 34470797A JP 34470797 A JP34470797 A JP 34470797A JP 4036514 B2 JP4036514 B2 JP 4036514B2
- Authority
- JP
- Japan
- Prior art keywords
- record
- file
- records
- computer
- data
- 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 - Fee Related
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明はデータ圧縮方法とデータ復元方法およびソートマージ処理装置とソートマージ処理方法およびこれら方法のプログラムを記録する媒体に関する。
【0002】
【従来の技術】
数字、アルファベット、漢字等の文字から構成されるデータを圧縮する方法に辞書型符号化方式が知られている。辞書型符号化方式は、所定の文字列に対してコードを割り振った辞書を用いてデータ中に現れる連続する文字列をコードに置換して圧縮し、同一文字が連続する箇所を制御文字でさらに圧縮するものである。この方式は事前に所定の文字列を辞書に登録する必要があり、事前の準備に時間と労力を要し、登録漏れがあれば圧縮できない。また圧縮時に辞書を逐次検索する処理に時間を要する。そこで、特開平7−239771号公報に記載されたデータレコード圧縮方法は、辞書の作成等の特別な作業なしでデータファイル中の連続するデータレコード間に同一値のフィールドが存在する場合にデータレコードを圧縮する方法を開示している。
【0003】
上記データレコード圧縮方法は、連続する2つのデータレコードの同一箇所に同一文字が予め定められた文字数にわたって連続して現れた部分を垂直圧縮し、さらに、該垂直圧縮したレコードに対し同一文字が予め定められた文字数にわたって連続している部分を水平圧縮するものである。
ところで、一般に大量のデータレコードをソートする場合、ソートマージ処理が行われるが、このソートマージ処理は、入力ファイルに格納された複数のデータレコードを1つづつ入力バッファに読込み、入力バッファに読込んだデータレコードを作業域が一杯になるまで作業域に転送し、作業域に転送されたデータレコード群内でソートした後一時バッファに転送し、一時バッファから一時ファイルに転送する。この一連の処理をソート対象の全てのデータレコード対し繰り返し実行し、しかる後に、一時ファイルに蓄えられたソート後の複数のデータレコード群を個別の一時バッファに転送し、これら一時バッファから作業域に転送し、マージして1本のレコード列を生成して該レコード列を出力ファイルに出力する処理を行っている。
【0004】
【発明が解決しようとする課題】
しかしながら、上記特開平7−239771号公報に記載の圧縮方法は、連続する2つのデータレコード間の圧縮に止まり、連続する3つ以上のデータレコードを一括して圧縮できず、圧縮効率が十分でないという問題がある。
一方、上記従来技術によるソートマージ処理は、大量のデータレコードをソートする場合、外部記憶装置の一時ファイルと主記憶装置内の一時バッファとの間のデータ転送に時間を要し、かつ外部記憶装置に退避させるデータ量が増大し、その結果ソートマージ処理時間が増大し、外部記憶装置内のディスクスペースが確保できないという問題がある。
【0005】
それゆえ、本発明は前記問題を解決し、連続する複数のデータレコードを一括して圧縮することにより圧縮効率を向上させたデータ圧縮方法およびデータ復元方法を提供することを目的とする。
また、本発明はソートマージ処理時間を短縮するとともに外部記憶装置内の記憶部使用エリア(ディスクスペース)を節約するソートマージ処理装置と方法を提供することを他の目的とする。
【0006】
【課題を解決するための手段】
図1は本発明によるデータ圧縮方法の原理図である。前記問題を解決する本発明の第1態様によるデータ圧縮方法は、複数1〜mのコラムからなり所定のフォーマットで作成された複数n個のレコード1〜nを有するファイルを圧縮するデータ圧縮方法において、ファイル内の各レコードの同一コラム番号のデータが全て一致するコラム番号2、5、…を検索して記憶する。次いで、検索されたコラム番号の数からファイル内における圧縮可能なレコード数を算出し、圧縮可能なレコード数の算出結果から、ファイル内のレコードの内、圧縮対象レコードk+1、…、nと圧縮非対象レコード1、2、3、…、kとを決定し、圧縮非対象レコード1、2、3、…、kの内、第1レコードのデータはそのまま記憶し、第2レコードは前記コラム番号2、5、…を記憶するために使用し、圧縮対象レコードk+1、…、nにおけるコラム番号2、5、…以外のコラム番号1、3、4、…の記憶部に格納されたデータを、圧縮非対象レコード3、4、…、kにおけるコラム番号2、5、…の記憶部に移動する各ステップを備えたことを特徴とする。
【0007】
上記本発明の第1態様によるデータ圧縮方法は、複数のコラムからなり所定のフォーマットで作成されたレコードを複数有するファイルを圧縮するコンピュータによるデータ圧縮方法において、前記コンピュータの圧縮手段が、前記ファイル内の各レコードの同一コラム番号のデータが全て一致するコラム番号を検索し、前記コンピュータの圧縮手段が、検索された前記コラム番号の数を基に前記ファイル内における圧縮可能なレコード数を算出し、前記コンピュータの圧縮手段が、前記圧縮可能なレコード数の算出結果から、前記ファイル内のレコードの内、圧縮対象レコードと圧縮非対象レコードとを決定し、前記コンピュータの圧縮手段が、前記圧縮非対象レコードの内、第1レコードのデータはそのまま記憶し、前記コンピュータの圧縮手段が、検索されたコラム番号に対応する、前記圧縮非対象レコード内の第2レコードのコラム番号にフラグを立て、前記コンピュータの圧縮手段が、前記第2レコードにおける記憶部にフラグが立てられていないコラム番号に対応する前記圧縮対象レコードのコラム番号の記憶部に格納されたデータを、前記第2レコードにおける記憶部にフラグが立てられたコラム番号に対応する第1および前記第2レコードを除く前記圧縮非対象レコードにおけるコラム番号の記憶部に移動する各ステップを備えたことを特徴とする。
【0008】
本発明の第2態様によるデータ圧縮方法は、複数のコラムからなるフィールドを複数有してなり所定のフォーマットで作成されたレコードを複数有するファイルを圧縮するコンピュータによるデータ圧縮方法において、前記コンピュータの圧縮手段が、前記ファイル内の各レコードの同一フィールド番号のデータが全て一致するフィールド番号を検索し、前記コンピュータの圧縮手段が、検索された前記フィールド番号の数を基に前記ファイル内における圧縮可能なレコード数を算出し、前記コンピュータの圧縮手段が、前記圧縮可能なレコード数の算出結果から、前記ファイル内のレコードの内、圧縮対象レコードと圧縮非対象レコードとを決定し、前記コンピュータの圧縮手段が、前記圧縮非対象レコードの内、第1レコードのデータはそのまま記憶し、前記コンピュータの圧縮手段が、検索されたフィールド番号に対応する、前記圧縮非対象レコード内の第2レコードのフィールド番号にフラグを立て、前記コンピュータの圧縮手段が、前記第2レコードにおける記憶部にフラグが立てられていないフィールド番号に対応する前記圧縮対象レコードのフィールド番号の記憶部に格納されたデータを、前記第2レコードにおける記憶部にフラグが立てられたフィールド番号に対応する第1および前記第2レコードを除く前記圧縮非対象レコードにおけるフィールド番号の記憶部に移動する各ステップを備えたことを特徴とする。
【0009】
本発明の第3態様によるデータ復元方法は、複数のコラムからなり所定のフォーマットで作成されたレコードを複数有する第1ファイルを圧縮した第2ファイルを第1ファイルに復元するコンピュータによるデータ復元方法であって、前記第2ファイルは、前記第1ファイル内の圧縮非対象レコード内の第1レコードのデータと同じデータを持つ第1レコードと、前記第1ファイル内の圧縮非対象レコード内の第2レコードにおいて、該第1ファイル内の各レコードの同一コラム番号のデータが全て一致するコラム番号にフラグを立てたデータを持つ第2レコードと、前記第1ファイル内の第1および第2レコードを除く前記圧縮非対象レコードにおいて、前記第2レコードにおける記憶部にフラグが立てられていないコラム番号に対応する前記第1ファイルの圧縮非対象レコードのデータと、前記第2レコードにおける記憶部にフラグが立てられていないコラム番号に対応する前記第1ファイルの圧縮対象レコードにおけるコラム番号の記憶部に格納されたデータを、前記第2レコードにおける記憶部にフラグが立てられたコラム番号に対応する前記第1および第2レコードを除く前記圧縮非対象レコードにおけるコラム番号の記憶部に移動した復元非対象レコードとからなり、前記コンピュータの復元手段が、前記第2ファイル内の前記第2レコードにおける記憶部にフラグが立てられたコラム番号に対応する前記第1および第2レコードを除く前記復元非対象レコードにおける前記フラグが立てられたコラム番号の記憶部に格納されたデータを、前記第2ファイルを前記第1ファイルに復元する復元ファイル内の前記圧縮対象レコードに対応する復元対象レコードにおける前記フラグが立てられたコラム番号以外のコラム番号の記憶部に移動し、前記コンピュータの復元手段が、前記復元ファイルの前記第2レコード以降の全てのレコードにおける前記フラグが立てられたコラム番号の記憶部に前記第1レコードの対応するコラム番号の記憶部に格納されたデータを複写する各ステップを備え、第1ファイルを圧縮した第2ファイルを第1ファイルに復元することを特徴とする。
【0010】
本発明の第4態様によるデータ復元方法は、複数のコラムからなるフィールドを複数有してなり所定のフォーマットで作成されたレコードを複数有する第1ファイルを圧縮した第2ファイルを第1ファイルに復元するコンピュータによるデータ復元方法であって、前記第2ファイルは、前記第1ファイル内の圧縮非対象レコード内の第1レコードのデータと同じデータを持つ第1レコードと、前記第1ファイル内の圧縮非対象レコード内の第2レコードにおいて、該第1ファイル内の各レコードの同一フィールド番号のデータが全て一致するフィールド番号にフラグを立てたデータを持つ第2レコードと、前記第1ファイル内の第1および第2レコードを除く前記圧縮非対象レコードにおいて、前記第2レコードにおける記憶部にフラグが立てられていないフィールド番号に対応する前記第1ファイルの圧縮非対象レコードのデータと、前記第2レコードにおける記憶部にフラグが立てられていないフィールド番号に対応する前記第1ファイルの圧縮対象レコードにおけるフィールド番号の記憶部に格納されたデータを、前記第2レコードにおける記憶部にフラグが立てられたフィールド番号に対応する前記第1および第2レコードを除く前記圧縮非対象レコードにおけるフィールド番号の記憶部に移動した復元非対象レコードとからなり、前記コンピュータの復元手段が、前記第2ファイル内の前記第2レコードにおける記憶部にフラグが立てられたフィールド番号に対応する前記第1および第2レコードを除く前記復元非対象レコードにおける前記フラグが立てられたフィールド番号の記憶部に格納されたデータを、前記第2ファイルを前記第1ファイルに復元する復元ファイル内の前記圧縮対象レコードに対応する復元対象レコードにおける前記フラグが立てられたフィールド番号以外のフィールド番号の記憶部に移動し、前記コンピュータの復元手段が、前記復元ファイルの前記第2レコード以降の全てのレコードにおける前記フラグが立てられたフィールド番号の記憶部に前記第1レコードの対応するフィールド番号の記憶部に格納されたデータを複写する各ステップを備え、第1ファイルを圧縮した第2ファイルを第1ファイルに復元することを特徴とする。
【0011】
前記問題を解決する本発明の第5態様によるソートマージ処理装置は、複数のレコードを格納する入力ファイルから順次レコードを受け、これらレコードをソートマージするソートマージ処理装置において、所定数のレコード毎に所定のキーに従ってソートする手段と、ソートしたレコード群を蓄える第1バッファと、第1バッファに蓄えられたレコード群を圧縮するレコード群圧縮手段と、圧縮したレコード群を前記第1バッファから一時ファイルに転送する手段と、転送された複数のレコード群を個別に一時ファイルから受ける複数の第2バッファと、前記第2バッファに蓄えられたレコード群を復元する復元手段と、復元した複数のレコード群をマージして1本のレコード列を生成する手段と、マージして生成された1本のレコード列を出力ファイルに出力する手段と、
を備え、前記レコード群圧縮手段は、複数のコラムからなり所定のフォーマットで作成されたレコードを複数有するレコード群であって前記第1バッファに蓄えられたレコード群の第1ファイルを圧縮する手段であって、前記レコード群の第1ファイル内の各レコードの同一コラム番号のデータが全て一致するコラム番号を検索し、検索された前記コラム番号の数を基に前記レコード群の第1ファイル内における圧縮可能なレコード数を算出し、前記圧縮可能なレコード数の算出結果から、前記レコード群の第1ファイル内のレコードの内、圧縮対象レコードと圧縮非対象レコードとを決定し、前記圧縮非対象レコードの内、第1レコードのデータはそのまま記憶し、検索されたコラム番号に対応する、前記圧縮非対象レコード内の第2レコードのコラム番号にフラグを立て、前記第2レコードにおける記憶部にフラグが立てられていないコラム番号に対応する前記圧縮対象レコードのコラム番号の記憶部に格納されたデータを、前記第2レコードにおける記憶部にフラグが立てられたコラム番号に対応する第1および前記第2レコードを除く前記圧縮非対象レコードにおけるコラム番号の記憶部に移動する各ステップを備える、ことを特徴とする。
【0012】
上記本発明の第5態様によるソートマージ処理装置は、一時ファイルと第1バッファおよび第2バッファとの間で転送されるデータ長が圧縮により短くなっているので、I/O処理時間が短縮されるとともに一時ファイルで使用するディスクスペースが節約できる。
【0013】
本発明の第5形態によるソートマージ処理装置は、複数のレコードを格納する入力ファイルから順次レコードを受け、これらレコードをソートマージするソートマージ処理装置において、所定数のレコード毎に所定のキーに従ってソートする手段と、ソートしたレコード群を蓄える第1バッファと、第1バッファに蓄えられたレコード群を圧縮する圧縮手段と、圧縮したレコード群を前記第1バッファから一時ファイルに転送する手段と、転送された複数のレコード群を個別に一時ファイルから受ける複数の第2バッファと、前記第2バッファに蓄えられたレコード群を復元するレコード群復元手段と、復元した複数のレコード群をマージして1本のレコード列を生成する手段と、マージして生成された1本のレコード列を出力ファイルに出力する手段と、を備え、前記レコード群復元手段は、複数のコラムからなり所定のフォーマットで作成されたレコードを複数有するレコード群であって前記第1バッファに蓄えられたレコード群の第1ファイルを請求項5に記載のレコード群圧縮手段により圧縮した第2ファイルを復元する手段であって、前記第2ファイルは、前記第1ファイル内の圧縮非対象レコード内の第1レコードのデータと同じデータを持つ第1レコードと、前記第1ファイル内の圧縮非対象レコード内の第2レコードにおいて、該第1ファイル内の各レコードの同一コラム番号のデータが全て一致するコラム番号にフラグを立てたデータを持つ第2レコードと、前記第1ファイル内の第1および第2レコードを除く前記圧縮非対象レコードにおいて、前記第2レコードにおける記憶部にフラグが立てられていないコラム番号に対応する前記第1ファイルの圧縮非対象レコードのデータと、前記第2レコードにおける記憶部にフラグが立てられていないコラム番号に対応する前記第1ファイルの圧縮対象レコードにおけるコラム番号の記憶部に格納されたデータを、前記第2レコードにおける記憶部にフラグが立てられたコラム番号に対応する前記第1および第2レコードを除く前記圧縮非対象レコードにおけるコラム番号の記憶部に移動した復元非対象レコードとからなり、前記レコード群復元手段は、前記第2ファイル内の前記第2レコードにおける記憶部にフラグが立てられたコラム番号に対応する前記第1および第2レコードを除く前記復元非対象レコードにおける前記フラグが立てられたコラム番号の記憶部に格納されたデータを、前記第2ファイルを前記第1ファイルに復元する復元ファイル内の前記圧縮対象レコードに対応する復元対象レコードにおける前記フラグが立てられたコラム番号以外のコラム番号の記憶部に移動し、前記復元ファイルの前記第2レコード以降の全てのレコードにおける前記フラグが立てられたコラム番号の記憶部に前記第1レコードの対応するコラム番号の記憶部に格納されたデータを複写する各ステップを備える、ことを特徴とする。
【0014】
本発明の第5形態によるソートマージ処理装置は、複数のレコードを格納する入力ファイルから順次レコードを受け、これらレコードをソートマージするソートマージ処理装置において、所定数のレコード毎に所定のキーに従ってソートする手段と、ソートしたレコード群を蓄える第1バッファと、第1バッファに蓄えられたレコード群を圧縮するレコード群圧縮手段と、圧縮したレコード群を前記第1バッファから一時ファイルに転送する手段と、転送された複数のレコード群を個別に一時ファイルから受ける複数の第2バッファと、前記第2バッファに蓄えられたレコード群を復元するレコード群復元手段と、復元した複数のレコード群をマージして1本のレコード列を生成する手段と、マージして生成された1本のレコード列を出力ファイルに出力する手段と、を備え、前記レコード群圧縮手段は、複数のフィールドからなり所定のフォーマットで作成されたレコードを複数有するレコード群であって前記第1バッファに蓄えられたレコード群の第1ファイルを圧縮する手段であって、前記レコード群の第1ファイル内の各レコードの同一フィールド番号のデータが全て一致するフィールド番号を検索し、検索された前記フィールド番号の数を基に前記レコード群の第1ファイル内における圧縮可能なレコード数を算出し、前記圧縮可能なレコード数の算出結果から、前記レコード群の第1ファイル内のレコードの内、圧縮対象レコードと圧縮非対象レコードとを決定し、前記圧縮非対象レコードの内、第1レコードのデータはそのまま記憶し、検索されたフィールド番号に対応する、前記圧縮非対象レコード内の第2レコードのフィールド番号にフラグを立て、前記第2レコードにおける記憶部にフラグが立てられていないフィールド番号に対応する前記圧縮対象レコードのフィールド番号の記憶部に格納されたデータを、前記第2レコードにおける記憶部にフラグが立てられたフィールド番号に対応する第1および前記第2レコードを除く前記圧縮非対象レコードにおけるフィールド番号の記憶部に移動する各ステップを備える、ことを特徴とする。
【0015】
本発明の第5形態によるソートマージ処理装置は、複数のレコードを格納する入力ファイルから順次レコードを受け、これらレコードをソートマージするソートマージ処理装置において、所定数のレコード毎に所定のキーに従ってソートする手段と、ソートしたレコード群を蓄える第1バッファと、第1バッファに蓄えられたレコード群を圧縮する圧縮手段と、圧縮したレコード群を前記第1バッファから一時ファイルに転送する手段と、転送された複数のレコード群を個別に一時ファイルから受ける複数の第2バッファと、前記第2バッファに蓄えられたレコード群を復元するレコード群復元手段と、復元した複数のレコード群をマージして1本のレコード列を生成する手段と、マージして生成された1本のレコード列を出力ファイルに出力する手段と、を備え、前記レコード群復元手段は、複数のフィールドからなり所定のフォーマットで作成されたレコードを複数有するレコード群であって前記第1バッファに蓄えられたレコード群の第1ファイルを請求項7に記載のレコード郡圧縮手段により圧縮した第2ファイルを復元する手段であって、前記第2ファイルは、前記第1ファイル内の圧縮非対象レコード内の第1レコードのデータと同じデータを持つ第1レコードと、前記第1ファイル内の圧縮非対象レコード内の第2レコードにおいて、該第1ファイル内の各レコードの同一フィールド番号のデータが全て一致するフィールド番号にフラグを立てたデータを持つ第2レコードと、前記第1ファイル内の第1および第2レコードを除く前記圧縮非対象レコードにおいて、前記第2レコードにおける記憶部にフラグが立てられていないフィールド番号に対応する前記第1ファイルの圧縮非対象レコードのデータと、前記第2レコードにおける記憶部にフラグが立てられていないフィールド番号に対応する前記第1ファイルの圧縮対象レコードにおけるフィールド番号の記憶部に格納されたデータを、前記第2レコードにおける記憶部にフラグが立てられたフィールド番号に対応する前記第1および第2レコードを除く前記圧縮非対象レコードにおけるフィールド番号の記憶部に移動した復元非対象レコードとからなり、前記レコード群復元手段は、前記第2ファイル内の前記第2レコードにおける記憶部にフラグが立てられたフィールド番号に対応する前記第1および第2レコードを除く前記復元非対象レコードにおける前記フラグが立てられたフィールド番号の記憶部に格納されたデータを、前記第2ファイルを前記第1ファイルに復元する復元ファイル内の前記圧縮対象レコードに対応する復元対象レコードにおける前記フラグが立てられたフィールド番号以外のフィールド番号の記憶部に移動し、前記復元ファイルの前記第2レコード以降の全てのレコードにおける前記フラグが立てられたフィールド番号の記憶部に前記第1レコードの対応するフィールド番号の記憶部に格納されたデータを複写する各ステップを備える、ことを特徴とする。
【0016】
本発明の第6態様によるソートマージ処理方法は、複数のレコードを格納する入力ファイルからコンピュータに入力されるレコードを順次読取り、これらレコードをソートマージするコンピュータによるソートマージ処理方法において、前記コンピュータのソート手段が、所定数のレコード毎に所定のキーに従ってソートする第1ステップと、前記コンピュータの一時蓄積手段が、ソートしたレコード群を前記コンピュータの主記憶装置内の第1バッファに蓄える第2ステップと、前記コンピュータの圧縮手段が、前記第1バッファに蓄えられたレコード群を圧縮する第3ステップと、前記コンピュータの転送手段が、圧縮されたレコード群を前記第1バッファから前記コンピュータの外部記憶装置内の一時ファイルに転送し、転送された複数のレコード群を個別に前記一時ファイルから前記コンピュータの主記憶装置内の第2バッファに転送する第4ステップと、前記コンピュータの復元手段が、前記第2バッファに蓄えられたレコード群を復元する第5ステップと、前記コンピュータの生成手段が、復元した複数のレコード群をマージして1本のレコード列を生成する第6ステップと、前記コンピュータの出力手段が、マージして生成された1本のレコード列を前記コンピュータの外部の出力ファイルに出力する第7ステップと、を備え、前記第3ステップは、請求項1に記載のデータ圧縮方法を用いて前記第1バッファに蓄えられたレコード群を圧縮することを特徴とする。
【0017】
本発明の第6態様によるソートマージ処理方法において、第3ステップのデータ圧縮処理は、前記第1態様又は第2態様に記載の各ステップを備える。
本発明の第6態様によるソートマージ処理方法において、第5ステップのデータ復元処理は、前記第3態様又は第4態様に記載の各ステップを備える。
本発明の第7態様による媒体は、前記第1態様又は第2態様に記載の各ステップを備えたデータ圧縮方法を実行させるためのプログラムを記録した媒体である。
【0018】
本発明の第8態様による媒体は、コンピュータに前記第3態様又は第4態様に記載の各ステップを備えたデータ復元方法を実行させるためのプログラムを記録した媒体である。
本発明の第9態様による媒体は、コンピュータに前記第6態様に記載の各ステップを備えたソートマージ処理方法を実行させるためのプログラムを記録した媒体である。
【0019】
【発明の実施の形態】
図2は本発明によるソートマージ処理装置の概略構成図である。前記問題を解決する本発明の第5態様によるソートマージ処理装置は、複数のレコードを格納する入力ファイル1から順次レコードを入力バッファ2で受け、これらレコードを第1作業域3に展開してソートマージするソートマージ処理装置10において、所定数のレコード毎に所定のキーに従ってソートするソート手段と、ソートしたレコード群を一時的に蓄える第1バッファ4と、第1バッファ4に蓄えられたレコード群を圧縮する圧縮手段と、圧縮したレコード群を第1バッファ4から一時ファイル5に転送する転送手段と、転送された複数のレコード群を個別に一時ファイル5から受ける複数の第2バッファ6と、第2バッファ6に一時的に蓄えられたレコード群を第2作業域7に展開して復元する復元手段と、復元した複数のレコード群を第2作業域で展開してマージし、1本のレコード列を生成する第1列生成手段と、マージして生成された1本のレコード列を出力ファイルに出力する第1出力手段と、転送された複数のレコード群を個別に一時ファイルから受ける複数の第2バッファ6と、第2バッファ6に格納されたレコード群を復元する復元手段と、復元した複数のレコード群をマージして1本のレコード列を生成する第2列生成手段と、マージして生成されたレコード列を出力ファイルに出力する第2出力手段と、を備えたことを特徴とする。
【0020】
上記各手段はソートマージ処理装置10におけるメモリ(図示せず)内に格納された各々のプログラムを実行することにより達成される。
また、ソートマージ処理装置10には補助記憶装置(図示せず)が接続されており、この補助記憶装置を介してソートマージ処理装置10のCPUは、媒体20に記録された種々のプログラムを読取り、各種の処理を実行する。媒体20には、本発明のデータ圧縮方法を実行させるためのプログラムを記録した媒体、本発明のデータ復元方法を実行させるためのプログラムを記録した媒体および本発明のソートマージ処理方法を実行させるためのプログラムを記録した媒体、等が記録される。
【0021】
図2に示す本発明のソートマージ処理装置は、一時ファイルと第1バッファおよび第2バッファとの間で転送されるデータ長が圧縮により短くなっているので、I/O処理時間が短縮されるとともに一時ファイルで使用するディスクスペースが節約できる。
図3〜5は本発明による実施例のソートマージ処理のフローチャートである。本実施例は、図2に示すソートマージ処理装置を用いて18個のレコードをソートマージする例を示す。図3〜5において各ブロックの左上にステップ番号を示す。以下、図2と図3〜5を相互に参照しつつ説明する。先ず、ステップ1では、入力ファイル1にソートマージする18個のレコードを設定する。
【0022】
ステップ2では、入力ファイル2から主記憶装置(以下メモリと記す)内の入力バッファ2に3個のレコード0、7、6を読込む。ステップ3では、入力バッファ2内のデータをレコード単位にメモリ上の第1作業域3へ移動する。ステップ4では、メモリ上の第1作業域3に空きがあるのでさらに入力ファイル1からレコード11、3、14を読込み、第1作業域3に移動する。その結果、第1作業域3には、レコード0、7、6、11、3、14が書込まれる。
【0023】
次に、ステップ5では、第1作業域3が一杯になったら、昇順にソートする。そのソート結果は0、3、6、7、11、14となる。ステップ6では、入力ファイル1にまだデータが残っているので、ソート済のレコードを一時的に使用する第1バッファ4に3レコード分詰める。この第1バッファ4は3レコード分だけデータを蓄えることができる。
【0024】
次に、図4に示すステップ7では、第1バッファ4内のデータ0、3、7を圧縮した後、一時ファイル5へ移動(転送)する。ステップ6、7を繰り返すと、第1バッファ4内のデータは、0、3、6、7、11、14となる。次いで、ステップ8では、ステップ1で設定した入力ファイル2内のデータが全て入力バッファ2に読込まれるまでステップ1〜7を繰り返す。その結果、一時ファイル5内には図示の様にデータが書込まれる。
【0025】
次に、図5に示すステップ9では、一時ファイル5内の各ストリングI、II、III の先頭ブロック(3レコード分)、すなわちストリングIからはレコード列0、3、6がストリングIIからはレコード列2、5、8が、ストリングIII からはレコード列1、4、9が、それぞれ内部メモリ内の3個の第2バッファ6a、6b、6cに読込まれる。次いで、ステップ10では、一時的にデータを蓄える3個の第2バッファ6a、6b、6cに読込まれたレコード列を復元する。ステップ11では、復元したレコード列をメモリ上の第2作業域7に移動し、第2作業域7上で展開してマージし、その結果を出力バッファ8を介して出力ファイル9に書込む。
【0026】
次に、本発明のデータ圧縮方法について以下に説明する。
図6は本発明による実施例のデータ圧縮方法における初期処理の説明図であり、(A)は圧縮前の9つのレコードからなるバッファを示す図であり、(B)はバッファ内の各レコードの同一コラム番号のデータが全て一致するコラム番号を検索した後の状態を示す図である。図6以降において、第1レコードから第9レコードの各レコードは32文字からなり、1文字1バイトであるのでレコード長は32バイトである。したがって、図6に示すバッファ長は288バイトである。
【0027】
実施例のデータ圧縮方法の初期処理は以下の手順で実行される。
1)第1レコード目と第2レコード目の同一オフセットの文字をレコードの先頭から順に比較する。ここで、オフセットとは、先頭から何コラム離れているかを示すもので、例えば第1レコードのオフセット3は文字1、オフセット5は文字H、オフセット20は文字7である。このように、各レコードはオフセット0〜31の位置に1つの文字データを有する。
【0028】
2)上記ステップ1)の結果、同一文字のときは、第2レコード目の同一オフセットの位置(同一コラム番号)にフラグ*を立てる。このフラグ*は、第2レコード内の文字情報として使用されないものから適宜選択して決定する。
3)次に、第1レコードと第3レコードの同一オフセットの文字を比較し、同一文字であれば第4レコードの同一オフセットの文字と比較し、順次第9レコードまでこの比較を繰り返す。
【0029】
4)上記ステップ3)の途中で、同一オフセットの文字の比較結果、異なる文字のときは、第2レコードのフラグを第1レコードの同一オフセット位置の文字に複写して元に戻し、比較を中断する。
5)さらに、第1レコード目と第2レコード目の同一オフセットの文字の比較を繰り返し実行し、レコード長だけ、すなわちオフセット31まで行う。
【0030】
図6の(B)は、上記ステップ1)〜5)を終了した後のバッファを示す。図示するように第2レコードのフラグ*の位置では、各レコードの同一オフセットの文字が全て同一であることが判る。
図7は本発明による実施例のデータ圧縮方法における圧縮可能レコード数の計算処理の説明図である。図示するように、1レコードの長さをRL、1バッファ中のレコード数(ブロッキングファクタ)をBF、初期処理でマークされたフラグ*の数をA、圧縮後のレコード数をX、圧縮対象のレコード数をYとすると、下記の式が成立する。
【0031】
Y =BF − X ……… (1)
ここで、RL=32バイト、BF=9レコード、A=14個である。
また、圧縮(移動)元バイト数と圧縮(移動)先バイト数との関係は、圧縮(移動)元バイト数≦圧縮(移動)先バイト数であり、これは下式で表される。
Y(RL−A)≦(X−2)A …… (2)
式(2)の右辺で−2と減算するのは、第1レコードが同一オフセットの文字を記憶しておくために使用され、第2レコードが全てのレコードにおいて同一文字が書込まれたオフセットの位置を記憶しておくために使用されることから、この2レコード分を圧縮の対象から除外するためである。本実施例では下記の式が成立する。
【0032】
Y =9 − X ……… (1’)
Y(32−14)≦(X−2)14 ……… (2’)
(2’)は次式で表される。
9Y≦(X−2)7 ……… (2”)
したがって、Y≦3.0625となり、Yの最も大きい整数3が圧縮(移動)可能なレコード数となる。
【0033】
次に、本発明による実施例のバッファ圧縮処理について図8と図9を参照しつつ以下に説明する。
図8は本発明による実施例のバッファ圧縮処理における文字データの移動の説明図であり、(A)は移動対象レコードを示す図であり、(B)は移動対象部分を示す図である。上述したように、圧縮(移動)レコード数が決定した後、圧縮非対象レコードの内、第1レコードが同一オフセットの文字を記憶しておくために使用され、第2レコードが全てのレコードにおいて同一文字が書込まれたオフセットの位置を記憶しておくために使用され、他の圧縮非対象レコード、すなわち第3〜第6レコードにおけるフラグ*の位置に、圧縮対象レコード、すなわち第7〜9レコードにおけるフラグ*の位置以外のオフセットの位置の記憶部に格納されたデータを移動する。図8の(A)に示すように、移動対象レコードは、第7〜9レコードであり、図8の(B)に示すように、移動対象部分は、第7〜9レコードにおけるフラグ*のないオフセット位置、すなわちオフセット3、5〜13、18、20、21、23〜26および31である。
【0034】
図9は本発明による実施例のバッファ圧縮処理における文字データの移動の説明図であり、(A)は圧縮非対象レコード内の記憶場所を示す図であり、(B)は圧縮後のバッファ内のデータ配列を示す図である。図9の(A)に示すように、図8の(B)で示した移動対象部分の文字データは、第3レコードから第6レコードにおけるフラグ*の下のオフセット位置に移動される。すなわち、これらの位置が圧縮非対象レコード内の記憶場所である。図9の(B)に示すように、圧縮後のバッファ内のデータ配列は、本発明により9レコードが6レコードに圧縮されたことを示している。次に、本発明による実施例のバッファ圧縮処理の手順を図10に示すフローチャートを用いて以下に説明する。
【0035】
図10は本発明による実施例のバッファ圧縮処理のフローチャートである。図8と図9を参照しつつ本バッファ圧縮処理を説明する。先ず、ステップ1001では、初期設定する。すなわち、I=0、BF=(X+Y)=9、X=6、C=(レコード長−フラグの数)×(BF−X)=(32−14)×(9−6)=54、移動元レコード番号のカウンタJ=X+1=7、移動先のレコード番号のカウンタK=3にそれぞれ設定する。ここで、Iは本処理ルーチンの終了判定に使用するカウンタで移動対象文字数C(=54)までカウントして終了する。BFは圧縮前のレコード数で9、Xは圧縮後のレコード数で6、YはBF−X(=9−6)で3である。ステップ1002では、移動元を第J(7、8、9、7、8、…)レコード上の第2レコードのフラグ以外の位置と同一オフセットに決定する。ステップ1003では、移動先を第K(3、4、5、6、3、4、…)レコード上で第2レコードのフラグの位置と同一オフセットに決定する。
【0036】
次いで、ステップ1004では、移動元から移動先へ複写する。ステップ1005では、I、J、Kにそれぞれ1を加算する。次に、ステップ1006では、カウンタIがCまでカウントしたか否かを判別し、その判別結果がYESのときは圧縮処理を終了し、NOのときはステップ1007へ進む。ステップ1007では、移動元のレコード番号JがBFより小(J≦BF)か否かを判別し、J≦BFのときはステップ1008へ進み、J>BFのときはステップ1009へ進み、ステップ1009ではJ=X+1を計算する。ステップ1008では移動元を第Jレコードの同一オフセットに変更し、ステップ1011へ進む。ステップ1010では移動元を第Jレコード上で第2レコードの次のフラグ以外の位置と同一オフセットに変更し、ステップ1011へ進む。
【0037】
ステップ1011では、K≦Xか否かを判別し、K≦Xのときはステップ1012へ進み、K>Xのときはステップ1013へ進む。ステップ1012では移動先を第Kレコードの同一オフセットに変更する。ステップ1013では、K=3に設定し、次いでステップ1014へ進む。ステップ1014では、移動先を第Kレコード上で第2レコードの次のフラグの位置と同一オフセットに変更する。ステップ1012およびステップ1014実行後は再びステップ1004へ戻り、ステップ1006でI=Cとなるまでステップ1004から1014を繰り返す。
【0038】
次に、本発明による実施例のバッファ復元処理について図11と図12を参照しつつ以下に説明する。
図11は本発明による実施例のバッファ復元処理における文字データの移動の説明図であり、(A)は復元対象部分を示す図であり、(B)は復元により圧縮された文字が元の位置に戻される復元部分を示す図である。図11の(A)に示す復元対象部分は、図9の(A)で示した圧縮非対象レコード内の記憶場所に対応する。図11の(B)に示す復元により圧縮された文字が元の位置に戻される部分は図8の(B)で示す移動対象部分に対応する。
【0039】
図12は本発明による実施例のバッファ復元処理における文字データの移動の説明図であり、(A)はフラグのオフセット列を除き復元により圧縮された文字が元の位置に戻された状態を示す図であり、(B)はフラグのオフセット列を含めた圧縮後のバッファ内のデータ配列を示す図である。図12の(A)は、図11の(A)に示す復元対象部分を図11の(B)に示す復元部分に移動した後のバッファのデータ配列を示す。図12の(B)はレコード番号2以降のレコード番号2にフラグ*があるオフセットの列を同一オフセットに相当する第1レコードの文字データを複写した後の復元終了後のバッファ内のデータ配列を示す図である。次に、本発明による実施例のバッファ復元処理の手順を図13に示すフローチャートを用いて以下に説明する。
【0040】
図13は本発明による実施例のバッファ復元処理のフローチャートである。先ず、ステップ1301では、初期設定する。すなわち、I=0、BF=(X+Y)=9、X=6、C=(レコード長−フラグの数)×(BF−X)=(32−14)×(9−6)=54、移動元レコード番号のカウンタJ=3、移動先のレコード番号のカウンタK=X+1=6+1=7にそれぞれ設定する。ここで、Iは本処理ルーチンの終了判定に使用するカウンタで移動対象文字数C(=54)までカウントして終了する。BFは復元後のカウント数で9、Xは復元前のレコード数で6、YはBF−X(=9−6)で3である。ステップ1302では、移動先を第K(7、8、9、7、8、…)レコード上の第2レコードのフラグ以外の位置と同一オフセットに決定する。ステップ1303では、移動元を第J(3、4、5、6、3、4、…)レコード上で第2レコードのフラグの位置と同一オフセットに決定する。
【0041】
次いで、ステップ1304では、移動元から移動先へ複写する。ステップ1305では、I、J、Kにそれぞれ1を加算する。次に、ステップ1306では、カウンタIがCまでカウントしたか否かを判別し、その判別結果がYESのときはステップ1308へ進み、第1レコード上で第2レコードのフラグ位置と同一オフセットの文字を第2レコードから第BF(=9)レコード上の同一オフセットに複写し、第2レコード上の全てのフラグに対して上記複写を実行し、復元処理を終了する。一方、ステップ1306の判別結果がNOのときはステップ1307へ進む。ステップ1307では、移動先のレコード番号KがBFより小(K≦BF)か否かを判別し、K≦BFのときはステップ1309へ進み、K>BFのときはステップ1310へ進み、ステップ1310ではK=X+1を計算する。ステップ1309では移動元を第Kレコードの同一オフセットに変更し、ステップ1312へ進む。ステップ1311では移動元を第Kレコード上で第2レコードの次のフラグ以外の位置と同一オフセットに変更し、ステップ1312へ進む。
【0042】
ステップ1312では、J≦Xか否かを判別し、J≦Xのときはステップ1313へ進み、J>Xのときはステップ1314へ進む。ステップ1313では移動先を第Jレコードの同一オフセットに変更する。ステップ1314では、J=3に設定し、次いでステップ1315へ進む。ステップ1315では、移動先を第Jレコード上で第2レコードの次のフラグの位置と同一オフセットに変更する。ステップ1313およびステップ1315実行後は再びステップ1304へ戻り、ステップ1306でI=Cとなるまでステップ1304から1315を繰り返す。
【0043】
次に、本発明のソートマージ処理手順を図2を参照しつつ以下に説明する。
図14は本発明のソートマージ処理におけるソート処理のフローチャートであり、図15は本発明のソートマージ処理におけるマージ処理のフローチャートである。先ず、ステップ1401では入力ファイル1から入力バッファ2にレコードデータを順次読込む。ステップ1402では、入力バッファ2から第1作業域3にレコードを移動する。ステップ1403では、第1作業域3に空きが有るか否かを判別する。その判別結果がYESのときはステップ1401へ戻り、ステップ1401、1402を繰り返し実行する。その判別結果がNOのときはステップ1404へ進み、第1作業域3上のレコードをソートする。ステップ1405では、入力ファイル1内のレコードの読込みが完了したか否かを判別し、その判別結果がYESのときはステップ1406へ進み、NOのときは1407へ進む。ステップ1406では、一時ファイル5を使用したか否かを判別し、その判別結果がYESのときはステップ1407へ進み、NOのときはステップ1408へ進み、ステップ1408では、第1作業域3上でソートしたレコードを図示しない出力バッファを介して出力ファイル9へ書込み、本ソートマージ処理を終了する。
【0044】
次に、ステップ1407では、第1作業域3上のレコードを第1バッファ4に移動し、ステップ1409へ進む。ステップ1409では、第1バッファ4がレコードで一杯になったか否かを判別し、その判別結果がYESのときはステップ1410へ進み、NOのときはステップ1407へ戻り、ステップ1407を繰り返し実行する。ステップ1410では、第1バッファ4を圧縮し一時ファイル5に書込む(転送する)。次いで、ステップ1411では、第1作業域3は全て空きか否かを判別し、その判別結果がYESのときはステップ1412へ進み、NOのときはステップ1407へ戻り、ステップ1407を繰り返し実行する。
【0045】
ステップ1412では、一時ファイル5に転送されたストリング(レコード列)をカウントする。ステップ1413では、入力ファイル5内のレコードの読込みが完了したか否かを判別し、その判別結果がYESのときはステップ1414へ進み、NOのときはステップ1401へ戻る。
ステップ1414では、各ストリングの先頭から順に1ブロック分づつ一時ファイル5から第2バッファに読込む。ステップ1415では、第2バッファ6を復元し、ステップ1416では、各第2バッファ6の先頭レコードから順に第2作業域7へ展開してマージし、出力バッファ8に書込む。ステップ1417では、出力バッファ8から出力ファイル9へレコードを書込む。ステップ1418では、全てのマージ処理が完了したか否かを判別し、その判別結果がYESのときは本ソートマージ処理を終了し、NOのときはステップ1414へ戻り、ステップ1414〜1418を繰り返し実行する。
【0046】
以上、説明した実施例は、複数のレコード間の同一コラム番号の文字データが全て一致するコラム番号を検索し、これらのコラムを圧縮に利用するものであるが、本発明はこのコラムに代えて複数のコラムからなるフィールド単位で圧縮することもできる。すなわち、コラム同様に、複数のフィールドからなる所定のフォーマットで作成したレコード間の同一フィールド番号のデータが全て一致するフィールド番号を検索し、これらのフィールドの記憶部を圧縮に利用することによりさらに大容量の圧縮が可能である。
【0047】
【発明の効果】
本発明のデータ圧縮方法とデータ復元方法によれば、複数nのレコード内の同一コラム又は同一フィールドのデータの一致を検索し、複数(n−k)個の圧縮対象レコードにおけるデータが一致したコラム又はフィールドと異なるコラム又はフィールドのデータを、圧縮対象レコードk個の内、(k−2)個のレコードにおける前記コラム又はフィールドの記憶部に移動して圧縮するので、圧縮効率が大幅に向上する。
【0048】
本発明のソートマージ処理装置またはソートマージ処理方法によれば、外部記憶装置(一時ファイル)と主記憶装置(バッファ)との間で転送されるデータ長が圧縮により短くなるので、I/O処理時間を短縮できるとともにディスクスペースが節約できる。
【図面の簡単な説明】
【図1】本発明によるデータ圧縮方法の原理図である。
【図2】本発明によるソートマージ処理装置の概略構成図である。
【図3】本発明による実施例のソートマージ処理のフローチャート前半部である。
【図4】本発明による実施例のソートマージ処理のフローチャート中半部である。
【図5】本発明による実施例のソートマージ処理のフローチャート後半部である。
【図6】本発明による実施例のデータ圧縮方法における初期処理の説明図であり、(A)は圧縮前の9つのレコードからなるファイルを示す図であり、(B)はファイル内の各レコードの同一コラム番号のデータが全て一致するコラム番号を検索した後の状態を示す図である。
【図7】本発明による実施例のデータ圧縮方法における圧縮可能レコード数の計算処理の説明図である。
【図8】本発明による実施例のバッファ圧縮処理における文字データの移動の説明図であり、(A)は移動対象レコードを示す図であり、(B)は移動対象部分を示す図である。
【図9】本発明による実施例のバッファ圧縮処理における文字データの移動の説明図であり、(A)は圧縮非対象レコード内の記憶場所を示す図であり、(B)は圧縮後のバッファ内のデータ配列を示す図である。
【図10】本発明による実施例のバッファ圧縮処理のフローチャートである。
【図11】本発明による実施例のバッファ復元処理における文字データの移動の説明図であり、(A)は復元対象部分を示す図であり、(B)は復元により圧縮された文字が元の位置に戻される部分を示す図である。
【図12】本発明による実施例のバッファ復元処理における文字データの移動の説明図であり、(A)はフラグのオフセット列を除き復元により圧縮された文字が元の位置に戻された状態を示す図であり、(B)はフラグのオフセット列を含めた圧縮後のバッファ内のデータ配列を示す図である。
【図13】本発明による実施例のバッファ復元処理のフローチャートである。
【図14】本発明のソートマージ処理におけるソート処理のフローチャートである。
【図15】本発明のソートマージ処理におけるマージ処理のフローチャートである。
【符号の説明】
1…入力ファイル
2…入力バッファ
3…第1作業域
4…第1バッファ
5…一時ファイル
6…第2バッファ
7…第2作業域
8…出力バッファ
9…出力ファイル
10…ソートマージ処理装置
20…記録媒体
Claims (15)
- 複数のコラムからなり所定のフォーマットで作成されたレコードを複数有するファイルを圧縮するコンピュータによるデータ圧縮方法において、
前記コンピュータの圧縮手段が、前記ファイル内の各レコードの同一コラム番号のデータが全て一致するコラム番号を検索し、
前記コンピュータの圧縮手段が、検索された前記コラム番号の数を基に前記ファイル内における圧縮可能なレコード数を算出し、
前記コンピュータの圧縮手段が、前記圧縮可能なレコード数の算出結果から、前記ファイル内のレコードの内、圧縮対象レコードと圧縮非対象レコードとを決定し、
前記コンピュータの圧縮手段が、前記圧縮非対象レコードの内、第1レコードのデータはそのまま記憶し、
前記コンピュータの圧縮手段が、検索されたコラム番号に対応する、前記圧縮非対象レコード内の第2レコードのコラム番号にフラグを立て、
前記コンピュータの圧縮手段が、前記第2レコードにおける記憶部にフラグが立てられていないコラム番号に対応する前記圧縮対象レコードのコラム番号の記憶部に格納されたデータを、前記第2レコードにおける記憶部にフラグが立てられたコラム番号に対応する第1および前記第2レコードを除く前記圧縮非対象レコードにおけるコラム番号の記憶部に移動する各ステップを備えたことを特徴とするデータ圧縮方法。 - 複数のコラムからなるフィールドを複数有してなり所定のフォーマットで作成されたレコードを複数有するファイルを圧縮するコンピュータによるデータ圧縮方法において、
前記コンピュータの圧縮手段が、前記ファイル内の各レコードの同一フィールド番号のデータが全て一致するフィールド番号を検索し、
前記コンピュータの圧縮手段が、検索された前記フィールド番号の数を基に前記ファイル内における圧縮可能なレコード数を算出し、
前記コンピュータの圧縮手段が、前記圧縮可能なレコード数の算出結果から、前記ファイル内のレコードの内、圧縮対象レコードと圧縮非対象レコードとを決定し、
前記コンピュータの圧縮手段が、前記圧縮非対象レコードの内、第1レコードのデータはそのまま記憶し、
前記コンピュータの圧縮手段が、検索されたフィールド番号に対応する、前記圧縮非対象レコード内の第2レコードのフィールド番号にフラグを立て、
前記コンピュータの圧縮手段が、前記第2レコードにおける記憶部にフラグが立てられていないフィールド番号に対応する前記圧縮対象レコードのフィールド番号の記憶部に格納されたデータを、前記第2レコードにおける記憶部にフラグが立てられたフィールド番号に対応する第1および前記第2レコードを除く前記圧縮非対象レコードにおけるフィールド番号の記憶部に移動する各ステップを備えたことを特徴とするデータ圧縮方法。 - 複数のコラムからなり所定のフォーマットで作成されたレコードを複数有する第1ファイルを圧縮した第2ファイルを第1ファイルに復元するコンピュータによるデータ復元方法であって、
前記第2ファイルは、
前記第1ファイル内の圧縮非対象レコード内の第1レコードのデータと同じデータを持つ第1レコードと、
前記第1ファイル内の圧縮非対象レコード内の第2レコードにおいて、該第1ファイル内の各レコードの同一コラム番号のデータが全て一致するコラム番号にフラグを立てたデータを持つ第2レコードと、
前記第1ファイル内の第1および第2レコードを除く前記圧縮非対象レコードにおいて、前記第2レコードにおける記憶部にフラグが立てられていないコラム番号に対応する前記第1ファイルの圧縮非対象レコードのデータと、前記第2レコードにおける記憶部にフラグが立てられていないコラム番号に対応する前記第1ファイルの圧縮対象レコードにおけるコラム番号の記憶部に格納されたデータを、前記第2レコードにおける記憶部にフラグが立てられたコラム番号に対応する前記第1および第2レコードを除く前記圧縮非対象レコードにおけるコラム番号の記憶部に移動した復元非対象レコードとからなり、
前記コンピュータの復元手段が、前記第2ファイル内の前記第2レコードにおける記憶部にフラグが立てられたコラム番号に対応する前記第1および第2レコードを除く前記復元非対象レコードにおける前記フラグが立てられたコラム番号の記憶部に格納されたデータを、前記第2ファイルを前記第1ファイルに復元する復元ファイル内の前記圧縮対象レコードに対応する復元対象レコードにおける前記フラグが立てられたコラム番号以外のコラム番号の記憶部に移動し、
前記コンピュータの復元手段が、前記復元ファイルの前記第2レコード以降の全てのレコードにおける前記フラグが立てられたコラム番号の記憶部に前記第1レコードの対応するコラム番号の記憶部に格納されたデータを複写する各ステップを備え、
第1ファイルを圧縮した第2ファイルを第1ファイルに復元することを特徴とするデータ復元方法。 - 複数のコラムからなるフィールドを複数有してなり所定のフォーマットで作成されたレコードを複数有する第1ファイルを圧縮した第2ファイルを第1ファイルに復元するコンピュータによるデータ復元方法であって、
前記第2ファイルは、
前記第1ファイル内の圧縮非対象レコード内の第1レコードのデータと同じデータを持つ第1レコードと、
前記第1ファイル内の圧縮非対象レコード内の第2レコードにおいて、該第1ファイル内の各レコードの同一フィールド番号のデータが全て一致するフィールド番号にフラグを立てたデータを持つ第2レコードと、
前記第1ファイル内の第1および第2レコードを除く前記圧縮非対象レコードにおいて、前記第2レコードにおける記憶部にフラグが立てられていないフィールド番号に対応する前記第1ファイルの圧縮非対象レコードのデータと、前記第2レコードにおける記憶部にフラグが立てられていないフィールド番号に対応する前記第1ファイルの圧縮対象レコードにおけるフィールド番号の記憶部に格納されたデータを、前記第2レコードにおける記憶部にフラグが立てられたフィールド番号に対応する前記第1および第2レコードを除く前記圧縮非対象レコードにおけるフィールド番号の記憶部に移動した復元非対象レコードとからなり、
前記コンピュータの復元手段が、前記第2ファイル内の前記第2レコードにおける記憶部にフラグが立てられたフィールド番号に対応する前記第1および第2レコードを除く前記復元非対象レコードにおける前記フラグが立てられたフィールド番号の記憶部に格納されたデータを、前記第2ファイルを前記第1ファイルに復元する復元ファイル内の前記圧縮対象レコードに対応する復元対象レコードにおける前記フラグが立てられたフィールド番号以外のフィールド番号の記憶部に移動し、
前記コンピュータの復元手段が、前記復元ファイルの前記第2レコード以降の全てのレコードにおける前記フラグが立てられたフィールド番号の記憶部に前記第1レコードの対応するフィールド番号の記憶部に格納されたデータを複写する各ステップを備え、
第1ファイルを圧縮した第2ファイルを第1ファイルに復元することを特徴とするデータ復元方法。 - 複数のレコードを格納する入力ファイルから順次レコードを受け、これらレコードをソートマージするソートマージ処理装置において、
所定数のレコード毎に所定のキーに従ってソートする手段と、
ソートしたレコード群を蓄える第1バッファと、
第1バッファに蓄えられたレコード群を圧縮するレコード群圧縮手段と、
圧縮したレコード群を前記第1バッファから一時ファイルに転送する手段と、
転送された複数のレコード群を個別に一時ファイルから受ける複数の第2バッファと、
前記第2バッファに蓄えられたレコード群を復元する復元手段と、
復元した複数のレコード群をマージして1本のレコード列を生成する手段と、
マージして生成された1本のレコード列を出力ファイルに出力する手段と、
を備え、
前記レコード群圧縮手段は、複数のコラムからなり所定のフォーマットで作成されたレコードを複数有するレコード群であって前記第1バッファに蓄えられたレコード群の第1ファイルを圧縮する手段であって、
前記レコード群の第1ファイル内の各レコードの同一コラム番号のデータが全て一致するコラム番号を検索し、
検索された前記コラム番号の数を基に前記レコード群の第1ファイル内における圧縮可能なレコード数を算出し、
前記圧縮可能なレコード数の算出結果から、前記レコード群の第1ファイル内のレコードの内、圧縮対象レコードと圧縮非対象レコードとを決定し、
前記圧縮非対象レコードの内、第1レコードのデータはそのまま記憶し、
検索されたコラム番号に対応する、前記圧縮非対象レコード内の第2レコードのコラム番号にフラグを立て、
前記第2レコードにおける記憶部にフラグが立てられていないコラム番号に対応する前記圧縮対象レコードのコラム番号の記憶部に格納されたデータを、前記第2レコードにおける記憶部にフラグが立てられたコラム番号に対応する第1および前記第2レコードを除く前記圧縮非対象レコードにおけるコラム番号の記憶部に移動する各ステップを備える、
ことを特徴とするソートマージ処理装置。 - 複数のレコードを格納する入力ファイルから順次レコードを受け、これらレコードをソートマージするソートマージ処理装置において、
所定数のレコード毎に所定のキーに従ってソートする手段と、
ソートしたレコード群を蓄える第1バッファと、
第1バッファに蓄えられたレコード群を圧縮する圧縮手段と、
圧縮したレコード群を前記第1バッファから一時ファイルに転送する手段と、
転送された複数のレコード群を個別に一時ファイルから受ける複数の第2バッファと、
前記第2バッファに蓄えられたレコード群を復元するレコード群復元手段と、
復元した複数のレコード群をマージして1本のレコード列を生成する手段と、
マージして生成された1本のレコード列を出力ファイルに出力する手段と、
を備え、
前記レコード群復元手段は、複数のコラムからなり所定のフォーマットで作成されたレコードを複数有するレコード群であって前記第1バッファに蓄えられたレコード群の第1ファイルを請求項5に記載のレコード群圧縮手段により圧縮した第2ファイルを復元する手段であって、
前記第2ファイルは、
前記第1ファイル内の圧縮非対象レコード内の第1レコードのデータと同じデータを持つ第1レコードと、
前記第1ファイル内の圧縮非対象レコード内の第2レコードにおいて、該第1ファイル内の各レコードの同一コラム番号のデータが全て一致するコラム番号にフラグを立てたデータを持つ第2レコードと、
前記第1ファイル内の第1および第2レコードを除く前記圧縮非対象レコードにおいて、前記第2レコードにおける記憶部にフラグが立てられていないコラム番号に対応する前記第1ファイルの圧縮非対象レコードのデータと、前記第2レコードにおける記憶部にフラグが立てられていないコラム番号に対応する前記第1ファイルの圧縮対象レコードにおけるコラム番号の記憶部に格納されたデータを、前記第2レコードにおける記憶部にフラグが立てられたコラム番号に対応する前記第1および第2レコードを除く前記圧縮非対象レコードにおけるコラム番号の記憶部に移動した復元非対象レコードとからなり、
前記レコード群復元手段は、
前記第2ファイル内の前記第2レコードにおける記憶部にフラグが立てられたコラム番号に対応する前記第1および第2レコードを除く前記復元非対象レコードにおける前記フ ラグが立てられたコラム番号の記憶部に格納されたデータを、前記第2ファイルを前記第1ファイルに復元する復元ファイル内の前記圧縮対象レコードに対応する復元対象レコードにおける前記フラグが立てられたコラム番号以外のコラム番号の記憶部に移動し、
前記復元ファイルの前記第2レコード以降の全てのレコードにおける前記フラグが立てられたコラム番号の記憶部に前記第1レコードの対応するコラム番号の記憶部に格納されたデータを複写する各ステップを備える、
ことを特徴とするソートマージ処理装置。 - 複数のレコードを格納する入力ファイルから順次レコードを受け、これらレコードをソートマージするソートマージ処理装置において、
所定数のレコード毎に所定のキーに従ってソートする手段と、
ソートしたレコード群を蓄える第1バッファと、
第1バッファに蓄えられたレコード群を圧縮するレコード群圧縮手段と、
圧縮したレコード群を前記第1バッファから一時ファイルに転送する手段と、
転送された複数のレコード群を個別に一時ファイルから受ける複数の第2バッファと、
前記第2バッファに蓄えられたレコード群を復元するレコード群復元手段と、
復元した複数のレコード群をマージして1本のレコード列を生成する手段と、
マージして生成された1本のレコード列を出力ファイルに出力する手段と、
を備え、
前記レコード群圧縮手段は、複数のフィールドからなり所定のフォーマットで作成されたレコードを複数有するレコード群であって前記第1バッファに蓄えられたレコード群の第1ファイルを圧縮する手段であって、
前記レコード群の第1ファイル内の各レコードの同一フィールド番号のデータが全て一致するフィールド番号を検索し、
検索された前記フィールド番号の数を基に前記レコード群の第1ファイル内における圧縮可能なレコード数を算出し、
前記圧縮可能なレコード数の算出結果から、前記レコード群の第1ファイル内のレコードの内、圧縮対象レコードと圧縮非対象レコードとを決定し、
前記圧縮非対象レコードの内、第1レコードのデータはそのまま記憶し、
検索されたフィールド番号に対応する、前記圧縮非対象レコード内の第2レコードのフィールド番号にフラグを立て、
前記第2レコードにおける記憶部にフラグが立てられていないフィールド番号に対応する前記圧縮対象レコードのフィールド番号の記憶部に格納されたデータを、前記第2レコードにおける記憶部にフラグが立てられたフィールド番号に対応する第1および前記第2レコードを除く前記圧縮非対象レコードにおけるフィールド番号の記憶部に移動する各ステップを備える、
ことを特徴とするソートマージ処理装置。 - 複数のレコードを格納する入力ファイルから順次レコードを受け、これらレコードをソートマージするソートマージ処理装置において、
所定数のレコード毎に所定のキーに従ってソートする手段と、
ソートしたレコード群を蓄える第1バッファと、
第1バッファに蓄えられたレコード群を圧縮する圧縮手段と、
圧縮したレコード群を前記第1バッファから一時ファイルに転送する手段と、
転送された複数のレコード群を個別に一時ファイルから受ける複数の第2バッファと、
前記第2バッファに蓄えられたレコード群を復元するレコード群復元手段と、
復元した複数のレコード群をマージして1本のレコード列を生成する手段と、
マージして生成された1本のレコード列を出力ファイルに出力する手段と、
を備え、
前記レコード群復元手段は、複数のフィールドからなり所定のフォーマットで作成されたレコードを複数有するレコード群であって前記第1バッファに蓄えられたレコード群の第1ファイルを請求項7に記載のレコード郡圧縮手段により圧縮した第2ファイルを復元する手段であって、
前記第2ファイルは、
前記第1ファイル内の圧縮非対象レコード内の第1レコードのデータと同じデータを持つ第1レコードと、
前記第1ファイル内の圧縮非対象レコード内の第2レコードにおいて、該第1ファイル内の各レコードの同一フィールド番号のデータが全て一致するフィールド番号にフラグを立てたデータを持つ第2レコードと、
前記第1ファイル内の第1および第2レコードを除く前記圧縮非対象レコードにおいて、前記第2レコードにおける記憶部にフラグが立てられていないフィールド番号に対応する前記第1ファイルの圧縮非対象レコードのデータと、前記第2レコードにおける記憶部にフラグが立てられていないフィールド番号に対応する前記第1ファイルの圧縮対象レコードにおけるフィールド番号の記憶部に格納されたデータを、前記第2レコードにおける記憶部にフラグが立てられたフィールド番号に対応する前記第1および第2レコードを除く前記圧縮非対象レコードにおけるフィールド番号の記憶部に移動した復元非対象レコードとからなり、
前記レコード群復元手段は、
前記第2ファイル内の前記第2レコードにおける記憶部にフラグが立てられたフィールド番号に対応する前記第1および第2レコードを除く前記復元非対象レコードにおける前記フラグが立てられたフィールド番号の記憶部に格納されたデータを、前記第2ファイルを前記第1ファイルに復元する復元ファイル内の前記圧縮対象レコードに対応する復元対象レコードにおける前記フラグが立てられたフィールド番号以外のフィールド番号の記憶部に移動し、
前記復元ファイルの前記第2レコード以降の全てのレコードにおける前記フラグが立てられたフィールド番号の記憶部に前記第1レコードの対応するフィールド番号の記憶部に格納されたデータを複写する各ステップを備える、
ことを特徴とするソートマージ処理装置。 - 複数のレコードを格納する入力ファイルからコンピュータに入力されるレコードを順次読取り、これらレコードをソートマージするコンピュータによるソートマージ処理方法において、
前記コンピュータのソート手段が、所定数のレコード毎に所定のキーに従ってソートする第1ステップと、
前記コンピュータの一時蓄積手段が、ソートしたレコード群を前記コンピュータの主記憶装置内の第1バッファに蓄える第2ステップと、
前記コンピュータの圧縮手段が、前記第1バッファに蓄えられたレコード群を圧縮する第3ステップと、
前記コンピュータの転送手段が、圧縮されたレコード群を前記第1バッファから前記コンピュータの外部記憶装置内の一時ファイルに転送し、転送された複数のレコード群を個別に前記一時ファイルから前記コンピュータの主記憶装置内の第2バッファに転送する第4ステップと、
前記コンピュータの復元手段が、前記第2バッファに蓄えられたレコード群を復元する第5ステップと、
前記コンピュータの生成手段が、復元した複数のレコード群をマージして1本のレコード列を生成する第6ステップと、
前記コンピュータの出力手段が、マージして生成された1本のレコード列を前記コンピュータの外部の出力ファイルに出力する第7ステップと、
を備え、
前記第3ステップは、請求項1に記載のデータ圧縮方法を用いて前記第1バッファに蓄えられたレコード群を圧縮することを特徴とするソートマージ処理方法。 - 複数のレコードを格納する入力ファイルからコンピュータに入力されるレコードを順次読取り、これらレコードをソートマージするコンピュータによるソートマージ処理方法において、
前記コンピュータのソート手段が、所定数のレコード毎に所定のキーに従ってソートする第1ステップと、
前記コンピュータの一時蓄積手段が、ソートしたレコード群を前記コンピュータの主記憶装置内の第1バッファに蓄える第2ステップと、
前記コンピュータの圧縮手段が、前記第1バッファに蓄えられたレコード群を圧縮する第3ステップと、
前記コンピュータの転送手段が、圧縮されたレコード群を前記第1バッファから前記コンピュータの外部記憶装置内の一時ファイルに転送し、転送された複数のレコード群を個別に前記一時ファイルから前記コンピュータの主記憶装置内の第2バッファに転送する第4ステップと、
前記コンピュータの復元手段が、前記第2バッファに蓄えられたレコード群を復元する第5ステップと、
前記コンピュータの生成手段が、復元した複数のレコード群をマージして1本のレコード列を生成する第6ステップと、
前記コンピュータの出力手段が、マージして生成された1本のレコード列を前記コンピュータの外部の出力ファイルに出力する第7ステップと、
を備え、
前記第5ステップは、前記第2バッファに蓄えられたレコード群を請求項3に記載のデータ復元方法を用いて復元することを特徴とするソートマージ処理方法。 - 複数のレコードを格納する入力ファイルからコンピュータに入力されるレコードを順次読取り、これらレコードをソートマージするコンピュータによるソートマージ処理方法において、
前記コンピュータのソート手段が、所定数のレコード毎に所定のキーに従ってソートする第1ステップと、
前記コンピュータの一時蓄積手段が、ソートしたレコード群を前記コンピュータの主記憶装置内の第1バッファに蓄える第2ステップと、
前記コンピュータの圧縮手段が、前記第1バッファに蓄えられたレコード群を圧縮する第3ステップと、
前記コンピュータの転送手段が、圧縮されたレコード群を前記第1バッファから前記コンピュータの外部記憶装置内の一時ファイルに転送し、転送された複数のレコード群を個別に前記一時ファイルから前記コンピュータの主記憶装置内の第2バッファに転送する第4ステップと、
前記コンピュータの復元手段が、前記第2バッファに蓄えられたレコード群を復元する第5ステップと、
前記コンピュータの生成手段が、復元した複数のレコード群をマージして1本のレコード列を生成する第6ステップと、
前記コンピュータの出力手段が、マージして生成された1本のレコード列を前記コンピュータの外部の出力ファイルに出力する第7ステップと、
を備え、
前記第3ステップは、請求項2に記載のデータ圧縮方法を用いて前記第1バッファに蓄えられたレコード群を圧縮することを特徴とするソートマージ処理方法。 - 複数のレコードを格納する入力ファイルからコンピュータに入力されるレコードを順次読取り、これらレコードをソートマージするコンピュータによるソートマージ処理方法において、
前記コンピュータのソート手段が、所定数のレコード毎に所定のキーに従ってソートする第1ステップと、
前記コンピュータの一時蓄積手段が、ソートしたレコード群を前記コンピュータの主記憶装置内の第1バッファに蓄える第2ステップと、
前記コンピュータの圧縮手段が、前記第1バッファに蓄えられたレコード群を圧縮する第3ステップと、
前記コンピュータの転送手段が、圧縮されたレコード群を前記第1バッファから前記コンピュータの外部記憶装置内の一時ファイルに転送し、転送された複数のレコード群を個別に前記一時ファイルから前記コンピュータの主記憶装置内の第2バッファに転送する第4ステップと、
前記コンピュータの復元手段が、前記第2バッファに蓄えられたレコード群を復元する第5ステップと、
前記コンピュータの生成手段が、復元した複数のレコード群をマージして1本のレコード列を生成する第6ステップと、
前記コンピュータの出力手段が、マージして生成された1本のレコード列を前記コンピュータの外部の出力ファイルに出力する第7ステップと、
を備え、
前記第5ステップは、前記第2バッファに蓄えられたレコード群を請求項4に記載のデータ復元方法を用いて復元することを特徴とするソートマージ処理方法。 - コンピュータに請求項1又は2に記載の各ステップを備えたデータ圧縮方法を実行させるためのプログラムを記録した媒体。
- コンピュータに請求項3又は4に記載の各ステップを備えたデータ復元方法を実行させるためのプログラムを記録した媒体。
- コンピュータに請求項9乃至12の何れか1項に記載の各ステップを備えたソートマージ処理方法を実行させるためのプログラムを記録した媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP34470797A JP4036514B2 (ja) | 1997-01-31 | 1997-12-15 | データ圧縮方法とデータ復元方法およびソートマージ処理装置とソートマージ処理方法およびこれら方法のプログラムを記録した媒体 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9-18658 | 1997-01-31 | ||
JP1865897 | 1997-01-31 | ||
JP34470797A JP4036514B2 (ja) | 1997-01-31 | 1997-12-15 | データ圧縮方法とデータ復元方法およびソートマージ処理装置とソートマージ処理方法およびこれら方法のプログラムを記録した媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10275105A JPH10275105A (ja) | 1998-10-13 |
JP4036514B2 true JP4036514B2 (ja) | 2008-01-23 |
Family
ID=26355370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP34470797A Expired - Fee Related JP4036514B2 (ja) | 1997-01-31 | 1997-12-15 | データ圧縮方法とデータ復元方法およびソートマージ処理装置とソートマージ処理方法およびこれら方法のプログラムを記録した媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4036514B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013045208A (ja) | 2011-08-23 | 2013-03-04 | Fujitsu Ltd | データ生成方法、装置及びプログラム、検索処理方法、装置及びプログラム |
-
1997
- 1997-12-15 JP JP34470797A patent/JP4036514B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10275105A (ja) | 1998-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4261779B2 (ja) | データ圧縮装置および方法 | |
US5245337A (en) | Data compression with pipeline processors having separate memories | |
EP0798656B1 (en) | File system level compression using holes | |
US5117495A (en) | Method of sorting data records | |
US6353910B1 (en) | Method and apparatus for implementing error correction coding (ECC) in a dynamic random access memory utilizing vertical ECC storage | |
JP3992495B2 (ja) | トリー構造に基づく機能的メモリ | |
CN105009067B (zh) | 管理对存储数据单元的操作 | |
JPH11212980A (ja) | インデクス作成方法および検索方法 | |
CN105653499A (zh) | 用于单指令多数据处理器的高效硬件指令 | |
KR0147355B1 (ko) | 그래픽 영상 데이타 압축 방법 | |
JP2888188B2 (ja) | 情報検索装置 | |
JP3251138B2 (ja) | ハッシュ方式 | |
JP6032292B2 (ja) | 圧縮プログラム、圧縮装置、伸張プログラムおよび伸張装置 | |
US6226411B1 (en) | Method for data compression and restoration | |
JP3515810B2 (ja) | ソート処理方法および装置 | |
JP4036514B2 (ja) | データ圧縮方法とデータ復元方法およびソートマージ処理装置とソートマージ処理方法およびこれら方法のプログラムを記録した媒体 | |
EP0517383A2 (en) | Image compression and storage | |
JP3859044B2 (ja) | インデクス作成方法および検索方法 | |
Linderman | The UNIX system: Theory and practice in the construction of a working sort routine | |
JPH08221254A (ja) | マージソート方法及びマージソート装置 | |
JPH09232967A (ja) | データ圧縮装置及び復元装置 | |
JP2507344B2 (ja) | 画像ファイル・システムにおけるデ―タ登録方法およびデ―タ検索方法 | |
JP2564749B2 (ja) | データ圧縮方法 | |
JP2772124B2 (ja) | 辞書検索方式 | |
JPS58123159A (ja) | 画像情報の登録方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070320 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070521 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070626 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070827 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20071002 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071030 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101109 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101109 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111109 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111109 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121109 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121109 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131109 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |