JPS642970B2 - - Google Patents

Info

Publication number
JPS642970B2
JPS642970B2 JP17220879A JP17220879A JPS642970B2 JP S642970 B2 JPS642970 B2 JP S642970B2 JP 17220879 A JP17220879 A JP 17220879A JP 17220879 A JP17220879 A JP 17220879A JP S642970 B2 JPS642970 B2 JP S642970B2
Authority
JP
Japan
Prior art keywords
data
bytes
record
byte
field
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
Application number
JP17220879A
Other languages
English (en)
Other versions
JPS5696327A (en
Inventor
Hideki Sato
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP17220879A priority Critical patent/JPS5696327A/ja
Publication of JPS5696327A publication Critical patent/JPS5696327A/ja
Publication of JPS642970B2 publication Critical patent/JPS642970B2/ja
Granted legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】 本発明は、レコード・データ順序付け処理シス
テム、特に、可変長データや未定義値を含むフイ
ールドについて複数のフイールド間にわたつて昇
順あるいは降順に順序付けるようにして、上記フ
イールドを含むレコードのレコード・データを索
引できるようにするレコード・データ順序付け処
理システムに関するものである。
フアイル中の複数のレコードは一般に複数のフ
イールドに区分されて構成されている。このよう
なレコードに対して、或る幾つかのフイールドを
指定して当該フイールド全体にわたつて昇順ある
いは降順に配列することが行なわれる。
当該複数のフイールド全体にわたつて配列を行
う場合に、通常では、夫々対応するフイールド毎
に比較を行うようにし、その結果によつて上記複
数のフイールド全体にわたる昇順あるいは降順を
決定するようにされる。しかし、この場合には、
比較のためのコストが、順序付けの対象となるフ
イールドの数に比例することとなり、ソート処理
に要する時間やコストが問題となりかねない。こ
のことから、複数個分のフイールドをいわばまと
めて、当該複数個分のフイールドの値を連結した
擬似的フイールドを作成し、当該擬似的フイール
ド相互間で比較を行うという方法が行われる。こ
の方法によれば、比較のためのコストがフイール
ド数に依存することがなくなる。しかし、この方
法の場合にも問題がないわけではない。
この場合、上記各フイールドのデータが、(i)文
字データや2進数や10進数で表現されていたり、
(ii)可変長データであつたり、(iii)未定義値を含んで
いたりすることがある。上記(i)に対処するに当つ
ては予め定められた統一された表現形式に変換す
れば足りるが、上記(ii)(iii)の場合に次の如き問題が
生じる。
即ち可変長データを意識せずに仮り3バイト分
の固定長データとみなして処理すると、例えば、
レコードA内における2つのフイールドの値が
(20)、(3)であり、またレコードB内における2つ
のフイールドの値が(4)、(21)であつたとしても、
レコードA内における1つのフイールドの値が
(203)でありかつレコードB内における1つのレ
コードの値が(421)であるようにみなされ、フ
イールドについて例えば昇順に順序付けする場合
に不都合となる。また未定義値を例えば単に
(0)とすると、本来の値(0)と区別すること
ができない。
本発明は、上記の如き問題を解決してレコー
ド・データの順序付け処理を実行するレコード・
データ順序付け処理システムを提供することを目
的としている。そしてそのために本発明のレコー
ド・データ順序付け処理システムは、索引対象と
して指定される可変長フイールドを含む複数のフ
イールドで構成される複数のレコードの集まりか
らなるフアイルと、 前記フアイルの複数のレコードの索引対象とし
て指定される複数のフイールドに記録されたデー
タに基づいて昇順または降順に順序付けを行い、
前記フアイルの複数のレコードの順序付けを行う
レコード・データ処理部とを、 備えたレコード・データ順序付け処理システムで
あつて、 前記レコード・データ処理部に、前記索引対象
として指定される複数の可変長フイールドに記録
された可変長データを、予め定められた所定バイ
ト数の整数倍になるように所定数のヌルバイトを
附加し、該所定数のヌルバイトを附加した可変長
データを前記予め定められた所定数で分割し、該
分割したデータ毎にコントロール・バイトを附加
し、該分割したデータの最後の分割したデータの
コントロールバイトを除くコントロール・バイト
には所定のコード値を記録し、該分割したデータ
の最後の分割したデータのコントロール・バイト
には最後の分割したデータ中の有効データ数の指
示する有効バイト数を記録するよう構成したコン
トロール・バイト附加部を設けた ことを特徴としている。以下図面を参照しつつ説
明する。
第1図は本発明にいうレコード・データ処理部
の一実施例全体構成、第2図A,Bおよび第3図
A,Bは夫々本発明による一実施例処理を説明す
る説明図、第4図は本発明によるコントロール・
バイト附加部の一実施例処理をフローチヤートの
形で説明する説明図、第5図は第4図図示の処理
を実行するコントロール・バイト附加部の一実施
例構成、第6図はデータ変換の態様を説明する説
明図を示す。
第1図において、1は索引対象フイールドI1
I2,……Ioのみを抽出し与えられる1つのレコー
ドのレコード・データ、2はレコード・データ処
理部、3はフイールド・タイプ変換部であつて各
フイールドの内容が2進数であつたり10進数であ
つたりする場合に各フイールドの内容を1つの統
一された表現に変換するもの、4はコントロー
ル・バイト附加部であつて可変長データ、未定義
値を含む場合にも順番がくるわないように上記各
フイールドI1,I2,……Io全体にわたつてレコー
ド・データを配列してコントロール・バイトを附
加するもの、5は降順フイールド・ビツト反転部
であつて一部降順に配列する必要のあるフイール
ドが含まれている場合に当該フイールドの内容の
ビツト反転を行なうもの、6は連結部であつて得
られたデータZ1,Z2,……Zoについて連結し1つ
のレコードに対応するバイト・ストリング・デー
タSを出力するものを表わしている。
フイールド・タイプ変換部3は、与えられたフ
イールドI1,I2,……Ioの各データについてフイ
ールド間の順序関係を保存したままで、各フイー
ルド毎に次の処理を実行する。即ち、 (1) フイールドのデータが文字である場合には当
該フイールドのデータはそのままにする。
(2) フイールドのデータが2進固定小数点データ
や2進浮動小数点データの場合、例えば2進固
定小数点データに変換する(正数のサイン・ビ
ツトを「1」、負数のサイン・ビツトを「0」
とする)。
(3) フイールドのデータが10進固定小数点データ
である場合、サイン・ビツト列(4ビツト)を
削除し、正数のとき頭部に4ビツト分「0001」
を附加し、負数のとき頭部に4ビツト「1111」
を附加した上で全体のビツト反転を行う。
上記の如き変換を行なつた結果、上記フイール
ド{I1,I2,……Io}のレコード・データは{X1
X2,……Xo}に変換されてコントロール・バイ
ト附加部4に供給される。
コントロール・バイト附加部4は概念的には次
の如き処理を行なう。即ち、今第2図Aに示す如
くフイールド値が可変長データとして(11)、(20)、
(3)……をもつレコードAとフイールドの値が可変
長データとして(未定義)、(4)、(21)……をもつ
レコードBとが夫々あるものとしたとき、第2図
B図示の如く、レコードAとして(11、2)、
(20、2)、(30、1)……の如く変換してコント
ロール・バイト7を附加し、またレコードBとし
て(00、0)、(40、1)(21、2)……の如く変
換してコントロール・バイト7を附加する。即
ち、未定義値8については所定バイト分の▼00▼
(16進)を与える。また有効数値のバイト数が所
定バイト以下のフイールド9に対しては、所定バ
イト分になるよう▼0▼(8進)を附加する。即
ち例えば可変長データの有効数値が(4)であつた場
合を考えると例えば2バイト分の固定長データ
(40)に置換するようにする。そしてその上で各
フイールド毎に存在する所定バイトについて有効
数値のバイト数をコントロール・バイト7として
附加し、各フイールド間の境界をとりはずした一
連のバイト・ストリングにする。この結果が第2
図Bに示されている。このように変換してコント
ロール・バイトを附加することによつて、(i)未定
義値(00、0)と有効値(00、2)とを区別する
ことができ、(ii)有効値(20)〔但し読みはニ、ゼ
ロ〕と(4)〔但し読みはヨン〕との間の順番付けが
(20、2)〔但し読みはニ、ゼロ、ニ〕と(40、
1)〔但し読みはヨン、ゼロ、イチ〕となつてく
ずれることがない。しかし、実際には第4図以下
で説明する如く、或るフイールドの有効バイト数
が多い場合には、例えば3バイト(1バイトを8
ビツトとする)毎に区切りを入れて、第3図図示
の如く連続していることを表わす1バイト分の▼
FF▼(16進)10を挿入して、残余のバイトを3
バイト分のデータとした上で、末尾に当該末尾3
バイト中の有効バイト数をコントロール・バイト
7として附加するようにする。なお、上記の如く
コントロール・バイトを附加する理由は、次の如
きものであると考えてよい。即ち、第1は、第2
図図示末定義値8の場合のように、未定義のバイ
トを所定バイト分(例えば2バイト分)の固定長
データ「00(16進)」に置換する場合に、有効値と
して(00)をもつデータと区別をつけるためであ
る。この場合両者は上述の如く(00、0)と
(00、2)とに置換される。第2は、第2図図示
(4)や(3)の如く有効値が1桁(1バイト分)のデー
タと例えば(40)や(30)の如く有効値が2桁
(2バイト分)のデータとの間で区別をつけるた
めである。この場合両者は(40、1)や(30、
1)と(40、2)や(30、2)とに置換される。
上記の如くコントロール・バイトを附加された
バイト・ストリングは例えば第3図B図示の如き
ものとなる。第3図Aに示すものを第3図B図示
の如く、例えばK=3で区分することによつて、
2つのデータを比較するに当つて、 (i) 先頭から順次抽出された例えば上記の3バイ
ト毎を比較することによつて順位が判明するか (ii) 或る3バイトまでで順位が判明しない場合に
は、次の3バイトを抽出して比較する形とな
る。
(iii) 区分された個数が異なる2つのデータを比較
するに当つては、より少ない個数の側のデータ
がもつている個数までの比較で順位が判明す
る。何故ならば、個数の多いデータでは▼FF
▼(16進)がつなぎに挿入されており、より少
ない個数の側のデータには有効バイト長を示す
直が挿入されているからである。なお上記にお
いて例えばK=3と選んだのは、第3図A図示
の如きデータを適宜区分して作業用のレジスタ
にセツトするためであり、上記Kの値はレジス
タの容量を任意に選べる場合には 1≦K≦可変長データの最大長 であつてよい。
コントロール・バイト附加部4からの出力であ
るバイト・ストリングを{Y1,Y2,……Yo}と
するとき、このバイト・ストリングは第1図図示
の降順フイールド・ビツト反転部5に供給され
る。該降順フイールド・ビツト反転部5は、各レ
コード・データを例えば昇順に配列する場合にお
いて、1部のフイールドについてのみ降順に配列
することが希望される場合に、当該1部のフイー
ルドについてビツト反転を行なうようにする。こ
のようにすることによつて、後述する連結部6か
ら得られた各レコードに対応するバイト・ストリ
ングを、各レコード間で昇順に配列することによ
つて、全体として昇順に並んで1部フイールドに
ついて降順となつた形で各レコード・バイトを配
列することが可能となる。
連結部6はビツト反転部5からの出力{Z1
Z2,……Zo}を連結して1つのバイト・ストリン
グ・データSとして出力する。この各レコードに
対応したデータSについて、昇順に配列すること
によつて、レコード間の順序付けが行なわれる。
上述の如く擬似的フイールドを作成して比較す
る方法についての難点が解決されるが、データ処
理装置全体として考えた場合にはなお次の問題点
が包含されている。即ち、第1図に示されるレコ
ード・データ1自体を上述の如き擬似的フイール
ドの形に変換した形で保持することが考えられる
が、このようにすると、可変長データを固定長デ
ータに拡張した上でメモリなどに保持することで
あり、メモリ領域が圧迫されることが生じかねな
い。また保持されたデータにおいて実際のデータ
値と附加されたコントロール・バイトなどとを意
識して区分しつつ処理する必要が生じる。
このために、レコード間の順序付けを必要とす
る事態が生じた際に、所望の順序付けを行い得る
ようにすることが望まれることとなる。第1図図
示の連結部6の出力はバイト・ストリング・デー
タSであり、当該複数個のデータSがより後段に
おいて相互に比較され、例えば昇順に配列され、
レコード間の順序付けが行なわれる。
第4図は本発明によるコントロール・バイト附
加部の一実施例処理をフローチヤートの形で説明
する説明図を示す。第6図のデータ変換態様をあ
わせ参照して説明する。
今或るフイールドの内容Xiが与えられたとす
るとき、最初に当該内容Xiが未定義値であるか
否かをチエツクする。そして未定義値である場合
には、第5図に後述するレジスタRに予め定めた
固定値K例えば「3」をセツトする。また上記内
容Xiが第6図に示す如く「01020304050607」
(Y16進)であつたとすると、7バイトのデータ
であることから、値K(=3)から演算7/3を
行なつた余り「1」を減算し、その結果「2」を
上記レジスタRにセツトする。
次いで、内容Xiに対して、レジスタRの内容
に相当するバイト数の▼00▼(16進、00をヌルバ
イトという)を附加する。この結果の状態が第6
図中として示されている。そして出力レジスタ
(第5図)の内容をクリヤし、内容Xiのバイト数
が上記固定値K(=3)よりも大である場合には、
第4図および第6図図示の如く、内容Xiの先
頭3バイト「010203」を出力レジスタYiに排出
した上で出力レジスタYiの内容の末尾に▼FF▼
(16進)を附加し、内容Xiとして上記排出した3
バイト分を捨て去つたものとする。そして再び内
容Xiのバイト数が固定値K(=3)よりも大であ
るか否かを調べる。設定例の場合には大であり、
第4図および第6図図示の如く処理される。こ
の結果3たび内容Xiのバイト数が固定値K(=
3)よりも大であるか否かが調べられ、設定例の
場合にはKに等しいことから、第4図および第6
図図示の如くコントロール・バイト「01」を、
即ち、 {K−(レジスタRの内容)} で与えられる値を末尾に附加して、出力レジスタ
Yiの値として「010203FF040506RR070000、01」
(16進)を得る。
第5図は一実施例構成を示し、図中の符号11
はフイールド・データ(Xi)、12はデータ・バ
イト数測定回路、13はバイト数レジスタ(レジ
スタR)、14はフイールド・データ(Xi)レジ
スタ、15はバイト処理回路部、16は▼00▼附
加データ設定レジスタ、17はシフタ、18はバ
イト数チエツク・デコーダ、19は▼FF▼バイ
ト附加部、20はコントロール・バイト附加部、
21は出力レジスタを表わしている。
与えられたフイールド・データ(Xi)11に
ついて、データ・バイト数測定回路12はバイト
数を測定し、Xiが未定義値の場合にはレジスタ
13に値K(=3)をセツトし、第6図図示のデ
ータXiの場合にはレジスタ13に値「2」をセ
ツトする。この状態でレジスタ13と14との内
容はバイト処理回路15に転送され、レジスタ1
3の内容に応じた▼0▼(8進)をレジスタ16
上に附加する。レジスタ16の内容はシフタ17
によつて右方向に3バイト分シフトされ、このあ
ふれ出た3バイト分が出力レジスタ21にセツト
される。上記シフトの結果はレジスタ16に戻さ
れ、Xiの長さが値Kであるか否かがデコーダ1
8によつてチエツクされ、第6図を参照して説明
した如く、▼FF▼バイト附加部19によつて▼
FF▼(16進)が出力レジスタ21に供給される。
そしてXiの長さが値Kに等しくなつた場合、コ
ントロール・バイト附加部20によつて、コント
ロール・バイト例えば「01」が附加される。
以上説明した如く、本発明によれば、指示され
た複数のフイールドにまたがつた形で、各レコー
ドについて、昇順あるいは降順の順序付けを可能
にするバイト・ストリング・データを出力し、こ
の結果を用いてレコード・データを所望の順番に
配列することが可能となる。
【図面の簡単な説明】
第1図は本発明にいうレコード・データ処理部
の一実施例全体構成、第2図A,Bおよび第3図
A,Bは夫々本発明による一実施例処理を説明す
る説明図、第4図は本発明によるコントロール・
バイト附加部の一実施例処理をフローチヤートの
形で説明する説明図、第5図は第4図図示の処理
を実行するコントロール・バイト附加部の一実施
例構成、第6図はデータ変換の態様を説明する説
明図を示す。 図中、1はレコード・データ、2はレコード・
データ処理部、3はフイールド・タイプ変換部、
4はコントロール・バイト附加部、5は降順フイ
ールド・ビツト反転部、6は連結部、7はコント
ロール・バイトを表わす。

Claims (1)

  1. 【特許請求の範囲】 1 索引対象として指定される可変長フイールド
    を含む複数のフイールドで構成される複数のレコ
    ードの集まりからなるフアイルと、 前記フアイルの複数のレコードの索引対象とし
    て指定される複数のフイールドに記録されたデー
    タに基づいて昇順または降順に順序付けを行い、
    前記フアイルの複数のレコードの順序付けを行う
    レコード・データ処理部とを、 備えたレコード・データ順序付け処理システムで
    あつて、 前記レコード・データ処理部に、前記索引対象
    として指定される複数の可変長フイールドに記録
    された可変長データを、予め定められた所定バイ
    ト数の整数倍になるように所定数のヌルバイトを
    附加し、該所定数のヌルバイトを附加した可変長
    データを前記予め定められた所定数で分割し、該
    分割したデータ毎にコントロール・バイトを附加
    し、該分割したデータの最後の分割したデータの
    コントロールバイトを除くコントロール・バイト
    には所定のコード値を記録し、該分割したデータ
    の最後の分割したデータのコントロール・バイト
    には最後の分割したデータ中の有効データ数の指
    示する有効バイト数を記録するよう構成したコン
    トロール・バイト附加部を設けた ことを特徴とするレコード・データ順序付け処理
    システム。
JP17220879A 1979-12-28 1979-12-28 Record data ordering processing system Granted JPS5696327A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17220879A JPS5696327A (en) 1979-12-28 1979-12-28 Record data ordering processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17220879A JPS5696327A (en) 1979-12-28 1979-12-28 Record data ordering processing system

Publications (2)

Publication Number Publication Date
JPS5696327A JPS5696327A (en) 1981-08-04
JPS642970B2 true JPS642970B2 (ja) 1989-01-19

Family

ID=15937586

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17220879A Granted JPS5696327A (en) 1979-12-28 1979-12-28 Record data ordering processing system

Country Status (1)

Country Link
JP (1) JPS5696327A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5866152A (ja) * 1981-10-16 1983-04-20 Canon Inc 文字処理装置
JPS6074024A (ja) * 1983-09-30 1985-04-26 Toshiba Corp 文書作成装置
JPS6316330A (ja) * 1986-07-08 1988-01-23 Nec Corp ストリング変換方式
US5001477A (en) * 1988-11-03 1991-03-19 International Business Machines Encoding variable length and null data while preserving sort sequence

Also Published As

Publication number Publication date
JPS5696327A (en) 1981-08-04

Similar Documents

Publication Publication Date Title
US5357431A (en) Character string retrieval system using index and unit for making the index
US5812841A (en) Method and apparatus for recording and reading date data having coexisting formats
US4053871A (en) Method and system for the iterative and simultaneous comparison of data with a group of reference data items
US5737735A (en) Method and apparatus for recording and reading date data having coexisting formats
US3651483A (en) Method and means for searching a compressed index
JPS642970B2 (ja)
US3613086A (en) Compressed index method and means with single control field
US7433880B2 (en) Method and system for high speed encoding, processing and decoding of data
US6055532A (en) Method and apparatus for recording and reading date data having coexisting formats
JP2590287B2 (ja) データ圧縮方法およびデータ圧縮装置
GB886421A (en) Improvements in or relating to data processing apparatus
JP3337469B2 (ja) 情報処理装置
JP3044718B2 (ja) 情報処理装置
JPH0752450B2 (ja) 辞書デ−タ検索装置
JPH0644264B2 (ja) 単語記憶方式
JPH06162096A (ja) レコード検索方法
JPH02190971A (ja) 索引更新方式
JPH0471228B2 (ja)
JPS5824822B2 (ja) デ−タメモリブロックのアクセス方法
JP3047401B2 (ja) データ処理装置
JP2985093B2 (ja) 演算制御装置
JPS63118958A (ja) 索引フアイル記憶装置
JPH04328680A (ja) データ記憶方法
JPS5845084B2 (ja) 磁気カ−ドへのデ−タ書込み方法
JPH0851371A (ja) データ圧縮方法及び装置