JPH0335697B2 - - Google Patents

Info

Publication number
JPH0335697B2
JPH0335697B2 JP58115613A JP11561383A JPH0335697B2 JP H0335697 B2 JPH0335697 B2 JP H0335697B2 JP 58115613 A JP58115613 A JP 58115613A JP 11561383 A JP11561383 A JP 11561383A JP H0335697 B2 JPH0335697 B2 JP H0335697B2
Authority
JP
Japan
Prior art keywords
data item
separator
data
key
character
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
JP58115613A
Other languages
English (en)
Other versions
JPS607557A (ja
Inventor
Katsumi Hayashi
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 JP58115613A priority Critical patent/JPS607557A/ja
Publication of JPS607557A publication Critical patent/JPS607557A/ja
Publication of JPH0335697B2 publication Critical patent/JPH0335697B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

【発明の詳細な説明】 〔発明の技術分野〕 本発明は、文字型データの区分化圧縮法、特に
データベースのインデツクスを作成する際に用い
られる文字型データの区分化圧縮法に関するもの
である。
〔従来技術と問題点〕
区分化圧縮法は、可変長文字テキスト・キー又
はこれが複合キーを構成するときのインデツクス
作成において、データ圧縮を能率よく行うととも
に、目的とするキー値との大小一致比較を早期に
完結されるものである。
データベース管理システムのインデツクス部に
用いられる区分化圧縮されたキーは、単一の文字
キーと形式上同じに扱えるので、前方圧縮を施し
た後、インデツクス部に格納される。
従来の文字型データの区分化圧縮法(参考文献
1を参照)では、コード系によらず通常はブラン
クが最小値に位置付けられるので、それ以下の制
御コード等が包含されてはならず、また、PL/
IやC言語のデータ型に現れるような可変長デー
タ項目処理での比較は文字列の最後に続くブラン
ク及び制御文字を有効とし、データ長の復元を可
能とするといつたことは不可能であつた。
また、未婚者の旧姓のように適用されないこ
と、統計データでの欠測値のように未知であるこ
となどを表すNullを包含したデータ処理が多く
実現されている。データ項目の定義域の外にある
データ項目の存在は許されず区分化圧縮法の範疇
で処理は不可能であるので、これを実現するには
Nullか否かを示す項目を別に立て、これを複合
キーのデータ項目として先頭に付加することが行
われていた。
なお、Null値を示すためにデータ項目の特別
な値をNullとして約束するという手法が存在す
る。しかし、Nullとは姓名は判るけれども生年
月日は不明といつた例で考えると、DDD=000は
不詳といつた指定が可能である。しかし、この情
報量は「無い」ということが単に分明すれば済む
のであるから、わざわざ6桁も保持する必要はな
いはずである。
次に従来方式について更に詳しく説明する。本
発明はM.W.Blasgen et al(参考文献1を参照)
に基づく改良案(参考文献2を参照)を更に改良
したものである。
例えば、(姓、名、生年月日)という3つのデ
ータ項目からなる複合キーを、文字は五十音順
で、数字は昇順に並べるといつた場合が問題であ
る。
カナ文字名などを許すとき姓、名は通常各20文
字程度の領域を確保しておかなければならない。
生年月日は6桁程度(YYYDDD)で済むだろ
う。このようなキー値を例えば十万件を格納しよ
うとしたら、一件について20+20+6=46文字
分、計470万件文字を要する。所が、日本人の平
均的な姓名なら1.7+2+6=9.7文字程度で十分
であろうから、実際には97万文字もあれば情報量
としては十分だろうということは簡単に想像でき
る。
そこで、姓、名の部分を個別に必要な長さを勝
手に取つて一つの文字列にするというようなもの
であるけれども、(林、葉三朗、990115)、(林葉、
二朗、990115)というキー値を辞書順にならべる
と、「林」の方が「林葉」よりも文字の長さが短
いので前者が後者よりも先にこなければならない
筈なのに、‘二’は‘三’より小さいという文字
のコード系を採用しているときに、姓名を連結す
ると順序が逆転してしまう。
このような副作用がなく、しかも圧縮後のキー
値が文字列全体の単純比較であり且つ元のキー値
が復元可能な復合キーの圧縮手法として、文字列
の区分化格納方式が提案された。
すなわち、元データ項目をデータ項目の種類毎
に一定長に分割して、その間に制御文字を挟み、
データはデータ同士で制御部は制御部同士で比較
されるようにし、制御部の部分で圧縮されたデー
タの扱いを決めてしまえるようにすることが目的
である。
参考文献1の方式では、 (Σ1Σ2…Σo)というn個のデータ項目からな
る複合キーを想定するとき、 このΣiがσ1σ2…σMiという文字列(σは最小値を
ブランクとする文字コードだけからなるものとす
る)であるとき、これを次の関係とKi*li>Mi
満足する適当な長さ1のk区間に分割する。πは
適当なパツデイング文字とする。
σ1σ2…σL|σL+1σL+2…σ2*L|………|σ
(k-1)*L+1…σMiπ………π この切れ目「|」の部分をΣの実際に必要な長
さMにしたがつて、次の規則で制御コードと置換
する。ただし、の制御文字の長さはσと同じ
とする。
切れ目の右の全区間でブランク以外の文字が
存在するならHigh−Valueを入れる。
※∀x(‘σx’<High−Value)&文字数、で
High−Valueを定義する。
右の全区間にブランク以外の文字がなく、残
り文字が区間長以下の数のとき最後のブランク
以外の文字数を保持する。
その区間を含み右の全区間にブランク以外の
文字がない区間は省略する。
これを各Σと置換して、Σ1Σ2…Σoを一つにス
トリングとして扱う。
もしΣが一致していれば、その区間は完全に一
致する。不一致の場合は大小関係の決定される区
間で比較は完了する。一致する文字以降に出現す
る長さが異なる文字は長い方が又はの理由で
大きいことになる。Σiまで一致している場合は、
その次の区間について同じ規則で比較が繰り返さ
れる。降順指定のキーについては、コードの補数
をとる。
参考文献2の方式は、参考文献1の方式ではブ
ランクを最小コードとする文字列だけにデータ項
目を限定されていたが、これを文字以外のデータ
項目を含む複合キーも、データ項目の内容を問わ
ず最終区間だけからなる一つの文字列データ項目
と擬して連結すれば済むということを発見して拡
張したものである。なお、これを更に辞書順配列
するときは前方圧縮できることも示した。
〔参考文献〕
参考文献1 Blasgen、M.W.、Carey、R.G.、&
Eswaran、K.P.、‘An Encoding Method for
Mutifield Sorting and Indexing'、
Cmumnication of the ACM、Nov.1977、
Vol.20、No..11、pp874−878 参考文献2 特開昭58−2938号公報 〔発明の目的〕 本発明は、上記の考察に基づくものであつて、
圧縮対象をレコードの最小値のものと仮定する必
要がないとともに、Nullのデータ項目を扱い得
る区分化圧縮法を提供することを目的としてい
る。
〔発明の構成〕
そしてそのため、本発明の文字型データの区分
化圧縮法は、 複数の文字型データのデータ項目をキーとして
有する複合キーをデータ項目毎に指定された長さ
の区間に区分指定区分点にセパレータを挿入し、
セパレータに前後の状況によつて定まる値を与え
る文字型データの区分化圧縮法であつて、 データ項目を区分するに際して、データ項目長
が指定区間長の整数倍でない場合には埋込み文字
で埋めると共に、 データ項目がNullである場合にはこれを指定
区間長の所定コードで表現すると共にその後にセ
パレータを配置し、 セパレータがデータ項目の途中に存在し且つ次
の最初のブランク以外の文字がブランクより小で
あるか、 セパレータがデータ項目の途中に存在し且つ次
の最初のブランク以外の文字がブランクより大で
あるか、 セパレータがデータ項目の最後に存在し且つ次
にデータ項目がNullでないか、 セパレータがデータ項目の最終区間に存在し且
つ次のデータ項目がNullであるか、 対応するデータ項目がNullであるかを判断し、 判断結果に応じた特有値をセパレータに与える
ことを特徴とするものである。
〔発明の実施例〕
以下、本発明を図面を参照しつつ説明する。
第1図はキーの圧縮を説明する図、第2図は本
発明が適用されるデータベース管理システムの1
例を示すものである。
第1図イは完全キーを示すものである。完全キ
ーは、キーA、キーB及びキーPより構成されて
いる。キーA及びキーBはレコードのデータ項目
である。キーPはアドレスである。キーAのキー
長は50字としている。Nullとは、そのデータ項
目の値が未決定であることを示している。
第1図ロは、区分化圧縮を説明するものであ
る。キーAは区間4で圧縮され、キーBは区間3
であり圧縮しないものとしている。φは(ブラ
ンク)より小さいコードとしている。ブランクは
EBCDICコードでは16進数で、“40”なる値を有
している。第1図ロにおいて、四角枠□は区分化
のセパレータを示す。区分化セパレータの値は、 区分の右の区間以降に文字が続くならば、 −1 最初の文字として「空白記号」以外の文字
が「空白記号」以下だけのときは、0F16 これは、PL/IのVARCHARや、Cのn
区切りなどのような、長さ分のデータが有意
な場合の特殊な処理に利用される。その他で
は空白記号以下は区切りから省略するという
方式が踏襲される。
−2 最初の文字として「空白記号」以外の文字
が存在するときは、CF16 これは、文字列比較だけが目的で大小判定を
早めるためである。
区分の右の全区間に文字が無い場合や、非文
字項目のセパレータ −1 次の項目がNullでないときはBl16 −2 次の項目はNullであるときは、Cl16なお、
lは最終区間の有効長。
このキーがNullであるときFF16 先頭項目がNullの場合又は直前に区間制御
が存在しない場合に利用する。なお、lは有効
な文字数を示している(この例では区間長16以
下を仮定)。
第1図のロの(1)は第1図イの(1)のキーに対して
区分化圧縮法を施したものである。キーAを区間
4で圧縮すると、「LION」と「φ」との間に
最初のセパレータが入る。次の最初のブランク以
外の文字はφであり、φはブランクより小さい値
をもつので、最初のセパレータは「OF」なる値
をもつ。次の区間はφであり、2文字しかない
のでで埋め「φ」とする。この区間はキ
ーAの最終区間であり、有効な文字は最初の2文
字であるので、第2番目のセパレータは「B2」
なる値をもつ。キーBは桁数3であり、区分化圧
縮を行わないので、第3番目のセパレータは
「B3」なる値をもつ。第1図イの(2)、(3)、(4)も同
様に区分化圧縮される。
第1図の完全キーの大きさの順序は次のように
して定められる。まずキーAで大きさの順序を定
め、キーAで大きさの順序が決まらなかつた場合
にはキーBで大きさの順序を定め、キーBで定ま
らなかつた場合にはキーPで大きさの順序を定め
る。なお長さの異なるキーは後ろにをPadding
して同じ長さとし、比較するものとする。第1図
ロにおいて、(4)の区分化圧縮キーの第1区間は
FFFFFFFFなる値をもつので、(1)ないし(4)の中
で最も大きいものとされる。(1)、(2)、(3)の区分化
圧縮キーの第1区間は共に「LION」であるの
で、第1番目のセパレータの値を試みて大小関係
を決めることを試みる。(1)の区分化圧縮キーの第
1番目のセパレータ「OF」、(2)の区分化圧縮キー
の第1番目のセパレータは「C4」、(3)の区分化圧
縮法キーの第1番目のセパレータは「CF」であ
るので、(1)、(2)、(3)の区分化圧縮キーの大きさの
順序は(3)、(2)、(1)となる。
第1図ハは前方圧縮を説明するものである。第
1図ハにおいて、第1桁目は残り文字数を示し、
第2桁目は第何番目の文字から省略されていない
かを示している。第1図ロの(1)の区分化圧縮キー
の前方圧縮の結果は、その前との区分化圧縮キー
との比較で定まるので、図には示されていない。
第2図は本発明が適用されるデータベース管理
システムの構成を示す図である。
第2図において、1はコントローラ、2はデー
タベース、3はインデツクス部、4はエンコー
ダ、5もエンコーダ、6はデコーダ、7もデコー
ダ、8はアクセツサ、9は制御線、10はバス、
11はデータ線、12は入出力インタフエースを
それぞれ示している。エンコーダ4は第1図ロで
説明したような区分化圧縮を行うものであり、エ
ンコーダ5は第1図ハで説明したような前方圧縮
を行うものであり、デコーダ6はエンコーダ4の
逆の処理を行うものであり、デコーダ7はエンコ
ーダ5の逆の処理を行うものである。
入出力インタフエース12を介してコントロー
ラ1に送られて来たデータは、コントローラ1の
制御の下でエンコーダ4によつて区分化圧縮さ
れ、更にエンコーダ5を介して前方圧縮のための
マツチングを介しながらインデツクス部3の上の
データを探す。インデツクス部3には、区分化圧
縮された後に前方圧縮された形でキーと当該キー
を有するデータベース2上のレコードのアドレス
との組が入つている。これによつてレコードのア
ドレスがバス10を介してアクセツサ8に送ら
れ、データベース2からの目的レコードがデータ
線11、バス10およびコントローラ1を介して
入出力インタフエース12に送られる。レコード
を新たにデータ2に格納する際には、アクセツサ
8によつてアドレスを決めて入出力インタフエー
ス12、コントーラ1、バス10およびデータ線
11経由でデータベース2にレコードを格納する
とともに、このアドレスとキーをバス10、エン
コーダ4およびエンコーダ5を介して区分化圧
縮、前方圧縮を行い、インデツクス部3へ格納す
る。また、一定キー範囲に属するレコードを順次
取り出すときは、デコーダ7、デコーダ6、バス
10およびコントローラ1の経路が利用される。
〔発明の効果〕
以上の説明から明らかなように、本発明によれ
ば、Nullデータ項目を扱い得ることおよび圧縮
対象をコードの最小値のものと仮定する必要がな
いこと等の効果を奏することができる。
従来技術では文字列圧縮だけを念頭においてい
るので、PL/IのVARCHARのデータ処理や、
Cの\nのようなデリミタが後置される型のデー
タ処理は扱えない。すなわち、領域内には復元す
べきであるけれども文字列比較上は空白を無視し
てよい場合である。空白以外の文字があるものと
無いものとの比較をここで終了させることが可能
であるので、処理の高速化と、データの復元を両
立させることが可能である。もちろん、実施例で
あるからコード系に依存するけれども、文字列比
較では空白は無視できる。
【図面の簡単な説明】
第1図はキーの圧縮を説明する図、第2図は本
発明が適用されるデータベース管理システムの一
例を示すものである。 1……コントローラ、2……データベース、3
……インデツクス部、4……エンコーダ、5……
エンコーダ、6……デコーダ、7……デコーダ、
8……アクセツサ、9……制御線、10……バ
ス、11……データ線、12……入出力インタフ
エース。

Claims (1)

  1. 【特許請求の範囲】 1 複数の文字型データのデータ項目をキーとし
    て有する複合キーをデータ項目毎に指定された長
    さの区間に区分指定区分点にセパレータを挿入
    し、セパレータに前後の状況によつて定まる値を
    与える文字型データの区分化圧縮法であつて、 データ項目を区分するに際して、データ項目長
    が指定区間長の整数倍でない場合には埋込み文字
    で埋めると共に、 データ項目がNullである場合にはこれを指定
    区間長の所定コードで表現すると共にその後にセ
    パレータを配置し、 セパレータがデータ項目の途中に存在し且つ次
    の最初のブランク以外の文字がブランクより小で
    あるか、 セパレータがデータ項目の途中に存在し且つ次
    の最初のブランク以外の文字がブランクより大で
    あるか、 セパレータがデータ項目の最後に存在し且つ次
    にデータ項目がNullでないか、 セパレータがデータ項目の最終区間に存在し且
    つ次のデータ項目がNullであるか、 対応するデータ項目がNullであるかを判断し、 判断結果に応じた特有値をセパレータに与える
    ことを特徴とする文字型データの区分化圧縮法。
JP58115613A 1983-06-27 1983-06-27 文字型デ−タの区分化圧縮法 Granted JPS607557A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP58115613A JPS607557A (ja) 1983-06-27 1983-06-27 文字型デ−タの区分化圧縮法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP58115613A JPS607557A (ja) 1983-06-27 1983-06-27 文字型デ−タの区分化圧縮法

Publications (2)

Publication Number Publication Date
JPS607557A JPS607557A (ja) 1985-01-16
JPH0335697B2 true JPH0335697B2 (ja) 1991-05-29

Family

ID=14666981

Family Applications (1)

Application Number Title Priority Date Filing Date
JP58115613A Granted JPS607557A (ja) 1983-06-27 1983-06-27 文字型デ−タの区分化圧縮法

Country Status (1)

Country Link
JP (1) JPS607557A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62131348A (ja) * 1985-12-04 1987-06-13 Panafacom Ltd マルチインデツクスフアイルアクセス方式
US5649183A (en) * 1992-12-08 1997-07-15 Microsoft Corporation Method for compressing full text indexes with document identifiers and location offsets
GB2369695B (en) * 2000-11-30 2005-03-16 Indigo One Technologies Ltd Database

Also Published As

Publication number Publication date
JPS607557A (ja) 1985-01-16

Similar Documents

Publication Publication Date Title
US4611280A (en) Sorting method
US6119120A (en) Computer implemented methods for constructing a compressed data structure from a data string and for using the data structure to find data patterns in the data string
DE3852341T2 (de) Zeichenverarbeitungssystem mit Funktion zur Prüfung von Rechtschreibung.
US8659451B2 (en) Indexing compressed data
CN106202172A (zh) 文本压缩方法及装置
US5226148A (en) Method and apparatus for validating character strings
US5619199A (en) Order preserving run length encoding with compression codeword extraction for comparisons
EP1196890B1 (en) Data processor and method therefor
JPH0335697B2 (ja)
JPH024026B2 (ja)
US20010032073A1 (en) Coding and storage of phonetical characteristics of strings
JPH056398A (ja) 文書登録装置及び文書検索装置
Nevill-Manning et al. Compressing semi-structured text using hierarchical phrase identifications
JPH09232967A (ja) データ圧縮装置及び復元装置
JP3132774B2 (ja) データ圧縮・復元装置
JP3115066B2 (ja) 辞書検索方法
JPH1139344A (ja) 2次元配列コードを用いた文字列検索方法
JP2596332B2 (ja) データ組合せ抽出方法およびその装置
JPH04167821A (ja) データ符号化及び復号化方法
JP3388767B2 (ja) データ圧縮方式
JP2799228B2 (ja) 辞書初期化方式
JP2827658B2 (ja) 図形解析装置及び図形検索装置
JPH05341953A (ja) データ圧縮方法及び装置
JPH04114278A (ja) 文字列比較方式
JPS6394366A (ja) 英語文書圧縮装置