JP3772704B2 - データソート方法、データソート装置およびデータソートプログラム - Google Patents
データソート方法、データソート装置およびデータソートプログラム Download PDFInfo
- Publication number
- JP3772704B2 JP3772704B2 JP2001227587A JP2001227587A JP3772704B2 JP 3772704 B2 JP3772704 B2 JP 3772704B2 JP 2001227587 A JP2001227587 A JP 2001227587A JP 2001227587 A JP2001227587 A JP 2001227587A JP 3772704 B2 JP3772704 B2 JP 3772704B2
- Authority
- JP
- Japan
- Prior art keywords
- sort
- order
- automaton
- key
- record
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/06—Arrangements for sorting, selecting, merging, or comparing data on individual record carriers
- G06F7/08—Sorting, i.e. grouping record carriers in numerical or other ordered sequence according to the classification of at least some of the information they carry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99937—Sorting
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
Description
【発明の属する技術分野】
本発明は、複数項目からなるレコードが大量に集まった大量レコードデータを、着目する特定の項目をソートキー項目と指定して、各レコードのソートキー項目の値を比較してレコードを順序づけて分類するデータソート技術に係り、特に、CSV形式のデータやXML文書のようなテキスト形式データでレコード構造をもつ文字列データのデータソート技術に関する。
【0002】
【従来の技術】
従来のデータソートの方法として、選択ソート、挿入ソート、バブルソート、シェルソート、クイックソート等の方法がある。これらの方法はソート単位であるレコードを1件ずつ比較してソートを行うため、同一レコードを何度も繰り返して読み出す必要があり、ソート処理に必要な時間はレコード件数の増加に従い級数的に増加する。一般にレコード件数をnとすると、各方式でのソート時間は以下の数式で表される。
単純選択法:n2
クイックソート:nlog n〜n2
挿入ソート:n2 (大量件数の場合)
バブルソート:n〜n2
シェルソート:n1.5 〜n1.25
【0003】
【発明が解決しようとする課題】
このように従来のデータソート方法では大量レコードからなるデータをソートするための処理時間はレコード件数の増加に従い級数的に増加するので、データの保守性・運用性を著しく損なう、という課題があった。本発明はこのような課題を解決するために、同一レコードを一度読み出すだけで所望のソート順序値が得られるデータソートの方法、装置およびプログラムを提供することを目的とする。
【0004】
【課題を解決するための手段】
上記課題は、図1に示す如く、各レコードのソートキー項目の文字列を受理するオートマトンで、かつその最終遷移状態に当該レコード識別子を対応付けたオートマトンを生成するオートマトン作成処理段階(ステップS111)と、前記オートマトンを走査して前記レコードを昇順または降順に順番付けた順序値と当該レコード識別子との組である順序値タプルを生成する順序値タプル生成段階(ステップS115)とを有するデータソート方法によって解決される。
【0005】
すなわち、図2のように構成されたデータソート装置の場合、外部から指定されるキー条件kcを入力データd に適用する前段階を経て、ステップS111でオートマトン作成処理手段3は入力レコードを識別するレコード識別子rid をレコード識別子設定手段1から取得し、当該レコードの指定キーの値に対応するキー文字列k-str をキーデータ前処理手段2から取得する。
【0006】
オートマトン作成処理手段3は入力されるすべてのレコードについて、このキー文字列k-str を受理するオートマトンamを生成する。オートマトンamはキー文字列k-str の文字数(可変長の場合はその最大桁数)分の階層をもつ状態遷移表の集合であり、これらの表は相互にリンクされ、図2中に示す如く、初期状態遷移表(00と表示)を根とするツリー構造を形成する。
【0007】
本発明ではこのオートマトンamの各キー文字列k-str を受理する最終遷移状態を示す最終状態遷移表に当該レコード識別子を対応付けて記録するものである。従って、入力全レコードのレコード識別子rid がいずれかの状態遷移表に記録されている。
次いで、ソートテーブル作成処理手段4中の順序値タプル生成手段41は、ステップS115において、前記オートマトンamのツリーを根元から順序づけられた状態順に枝にそって深さ優先で走査して得られた状態遷移表に記録されたレコード識別子rid を取得する。この時、走査順序に従って順序値jvalが当該レコード識別子rid と対応付けられる。これによって順序値タプル生成手段41は順序値jvalと当該レコード識別子rid との組である順序値タプルj-tpl を生成する。
【0008】
以上の順序値タプル生成段階は、指定ソートモードが昇順の場合、順序値jvalの最小値から生成されるので、例えば昇順で上位20のレコードを求める場合、本順序値タプル生成段階を20ループするだけで所望のレコードが求まる。先のステップS111のオートマトン作成処理段階で全レコードを一度読み込むだけでこのように所望のソート順序値が得られるので従来技術よりその処理スピードははるかに迅速である。
【0009】
また、全レコードに関するソートを完成させる場合、ステップS115の順序値タプル生成段階を完遂し、全順序値タプルj-tpl を順序値jvalの昇順または降順に並べたソートテーブルであるソート順ソートテーブルs-stを作成すればよく、やはり従来技術よりその処理スピードははるかに迅速である。
入力キー条件kcで指定ソートキー項目が複数項目の場合、例えば第1優先キー、第2優先キー、... 、第K 優先キーが設定された場合は、オートマトンamはソートキー項目毎にK 個作成される。この場合、1レコード読み込む毎に、ステップS111のオートマトン作成処理段階はK 回ループし、K 個のオートマトンamを更新成長させる。また、全レコード読み込み終了後、ステップS115のソートテーブル作成処理段階もK 回ループしてK 個のオートマトンamを順次走査して、レコード識別子rid の昇順または降順に並べたソートテーブルであるレコード順ソートテーブルr-stを生成する。
【0010】
このように生成したレコード順ソートテーブルr-stでは、各レコード毎にその第1優先キー順序値jval(1) 、第2 優先キー順序値jval(2) 、... 、第K 優先キー順序値jval(K) の複数順序値タプルが得られる。この複数順序値タプルを文字列とみなして、この文字列を複数順序値キー文字列として、レコード順ソートテーブルr-st中の全タプルに対して、オートマトン作成処理手段3にこれを与え、これを受理するオートマトンを生成し(ステップS111を適用)、このオートマトンをソートテーブル作成処理手段4に与えて走査する(ステップS115を適用)と、前記複数ソートキーに対する総合的な順番として新たに順番付けた総合順序値と当該レコード識別子との組である総合順序値タプルを生成する。従って、ステップS115は総合順序値タプル生成段階となる。ここで得られた総合順序値タプルから総合的なソート順ソートテーブルs-stが得られ、複数キーに対するデータソートが完成する。この場合も全レコードを一度読み込むだけで所望のソート順序値が得られるので、従来技術よりその処理スピードははるかに迅速である。
【0011】
さらに、図1のステップS14に示すように、入力データから読み出したレコード毎に、当該レコードの開始アドレスを当該レコードを識別するレコード識別子と対応付けたタプルを記録するレコード識別子設定段階を設けることで、データd 中に明示的なレコード識別子が存在しない場合でもレコード識別子rid を付与でき、本発明の適用範囲が広がる。
【0012】
さらに、図1のステップS19に示すように、指定されたソートキー項目毎のソート方法に関する条件であるキー条件kcに応じて、入力されたソートキー項目データを前記オートマトン作成処理に適するキー文字列k-str に変換するキーデータ前処理段階を設けることで、キーデータのデータ型や桁数をソートに適するように変換をし、ソート可能なデータd の範囲を広げることができる。
【0013】
【発明の実施の形態】
本発明のデータソート方法の実施例を図1〜図9により説明する。なお、本発明におけるコンピュータ処理は、コンピュータプログラムにより当該コンピュータの主記憶装置上で実行されるが、このコンピュータプログラムの提供形態は、当該コンピュータに接続された補助記憶装置をはじめ、フロッピーディスクやCD−ROM等の可搬型記憶装置やネットワーク接続された他のコンピュータの主記憶装置及び補助記憶装置等の各記録媒体に格納されて提供されるもので、このコンピュータプログラムの実行に際しては、当該コンピュータの主記憶装置上にローディングされ実行されるものである。
【0014】
最初に本発明の中心となるオートマトンの構造例について、図3の具体例によって説明する。既に図2のツリー図でオートマトンamを示したように、オートマトンamは複数の状態遷移表の集合で、キー文字列k-str を受理する状態遷移を写像するものである。すなわち、各ノードに状態遷移表を配し、ノード間のリンクをするアローがキー文字列k-str の各文字に対応する。一つの状態遷移表から次の状態遷移表へリンクするアローの数が状態遷移数である。オートマトンamではキー文字列k-str の一文字がとりうる値の種類に応じて状態遷移を行う。よってキー文字列k-str の一文字単位のビット列の長さによってオートマトンamの 1文字当りの状態遷移数が異なる。その事情を図3(a) で説明する。
【0015】
図3(a) ではキー項目の値が文字列『富士通』の場合のキー文字列k-str の設定例を示した。本例ではこれらの日本語文字はSJISコードで一文字 2バイト(16ビット)で文字数は3で、合計48ビットのビット列である。キー文字列k-str の 1文字単位とみなすビット数( 1文字単位ビット数)を16とすると、第 1文字はx9578であり、1文字当り最大遷移状態数は65536である。同様に、 1文字単位ビット数を8とすると、第 1文字はx95であり、1文字当り最大遷移状態数は256であり、 1文字単位ビット数を4とすると、第 1文字はx9となり、1文字当り最大遷移状態数は16である。このように受理するキー文字列k-str の 1文字単位ビット数によってオートマトンamの構造が異なる。本実施例ではキー文字列k-str の 1文字単位ビット数を4として以下の説明を行うが、本発明のキー項目の文字列を受理するオートマトンamがこれに限定されるものではない。
【0016】
図3(b) にキー文字列k-str を 4ビット文字とする第p 文字受理状態遷移表tid(p)の構成例を示す。表id欄は本表を識別する識別子であり、同時に本表へのアクセスアドレスxxxxを記録する。文字i 受理遷移先欄(i=0,1,...,F) は入力キー文字列k-str の第p 文字の内容がi であった場合に遷移する第p+1 文字状態遷移表tid(p+1)へのポインタである。図の例では文字0 受理遷移先欄にポインタtid(p+1)=yyyy を記入し、第p+1 文字状態遷移表tid(p+1)=yyyy にリンクすることを示している。また、文字1 受理遷移先はヌル("")であるが、これは本オートマトンamが第p 文字1 のキー文字列k-str を受理しないことを示す。( すなわち、本発明ではそのようなキー文字列k-str が存在しなかったことを含意する。)
遷移元表id欄は本表に遷移する元の第p-1 文字状態遷移表tid(p-1)を示すポインタであり、図の例では wwww によって示される。なお、オートマトンamのツリーの根は初期状態遷移表tid(0)であるが、当然、初期状態遷移表tid(0)においては遷移元表id欄はヌル("")となっている。
【0017】
最終遷移状態フラグ欄は本表を最終遷移状態とするキー文字列k-str を持つレコードの存在を示すフラグである。本欄の値が0の場合、本表を最終遷移状態とするレコードはない。一方、本実施例では本最終遷移状態フラグを受理件数カウンタとしても利用する。すなわち、最終遷移状態フラグ欄の値はこの表を最終とするキー文字列k-str のレコード件数を示す。図の例では18件が本表を最終遷移状態として受理されている、すなわち、18件の異なるレコードがすべて同一のキー文字列k-str をもつことがわかる。
【0018】
受理レコード識別子リスト欄は上記18件のレコードのレコード識別子rid のリストである。また、受理レコード補助情報欄は上記レコードの補助情報を受理レコード識別子リスト欄のリストに対応して持つ。補助情報とは、例えば当該レコードの開始アドレスやレコード長などの関連情報である。これらの情報は図5(d) に示すようなレコード識別子設定テーブルrid-t に基づいてとられる。
【0019】
以上のオートマトンamを利用して、本発明のデータソート装置が動作する。図2は本発明のデータソート装置の構成の一例である。図2に示す如く、本データソート装置は外部からデータd およびキー条件kcが与えられ、動作を開始する。データd は多数のレコードからなるデータ集合であり、キー条件kcはこのデータd のレコードをソートするキーに関する条件を指定する。図4には入力されるデータd の構造とキー条件kc設定例を示す。これに基づいて、本発明の実施例を説明する。
【0020】
図4(a) はデータd の構造例である。図の如く、データd はタグ文字列<R−END>によってレコード構造をもつテキスト形式データで、さらにレコード内も不等号文字で囲まれたタグ文字列によって項目が識別され区切られている。図の例では一つのレコードは部コード、氏名、入社年度、売上の 4つの項目データからなっている。それぞれのレコードを識別するレコード識別子rid は本例ではデータ中には存在しない。図では最初のレコードをレコード識別子rid =1、次のレコードをレコード識別子rid =2、...とし、最終レコードはレコード識別子rid =Rmaxで合計Rmax件のレコードからなっている。
【0021】
図4(b) にはキー条件kcの設定例を示す。キー条件kcはキー優先順位、キー項目名、ソートモード、データ型、最大文字数を設定するものである。キー優先順位は複数キーを設定する場合の各キーに与える優先順位である。図の例では 3つのキー項目<売上><入社年度><部コード>がこの順の優先順位で設定されている。ソートモードは昇順/降順を指定する。例では<売上>を降順指定し、他は昇順としている。
【0022】
データ型は数値型と文字列型とがある。文字列型は項目データを文字列として扱うことを指定しており単純である。すなわち、キー文字列k-str は項目データを構成するビット列を4 ビットずつ区切って1 文字と数えるだけでよい。例えば図4(c) の文字列"-123.456"はこれを文字列と指定するとキー文字列k-str は16文字からなるx2D3132332E343536 となる。
【0023】
これに対し数値型指定は項目データの文字列が数値を表すこと、かつ、ソートに際してはこれを数値として比較することを要求する。従って、キーデータ前処理手段2は該当項目データの文字列が意味する数値を解釈してこれを相互比較可能な標準形文字列であるキー文字列k-str に変換する。数値にはゼロサプレス、小数点、正負符号、仮数指数表現、スペース挿入、全角半角混在などの表現のばらつきがあるので、キーデータ前処理手段2はこれらを解釈して標準の内部文字列に変換する。
【0024】
数値型の内部文字列変換仕様は本実施例では 4バイト(32ビット)の浮動小数点形式であり、符号部 1ビット、指数部は指数符号部 1ビット指数絶対値 7ビットの計8ビット、仮数部は仮数整数値を23ビットでとり、符号部、指数符号部とも負=0 、正=1 とする。例えば図4(c) の文字列"-123.456"はこれを数値型と指定するとキー文字列k-str は8文字からなるx4181E240 となる。これは通常のANSI/IEEE規格754の浮動小数点形式とは異なるが、この 4バイト8 文字のキー文字列k-str のビット並びが数値としての大小関係を反映するよう考慮したものである。
【0025】
また、キー条件kcとして最大文字数を設定すると、当該キー項目データが最大文字数を越える場合に、越えた文字列を無視してソートを行うことを指定する。ここでいう最大文字数はデータとしての文字数でありキー文字列k-str の文字数ではない。以上、キー条件kcの各設定はキー項目名を除いてそれぞれデフォルト設定があり、入力によってこれを変更するものとする。
【0026】
以上でのキー文字列k-str の構造およびそれを受理するオートマトンamの構造を説明したが、本発明のデータソート装置の動作説明の前に、ソートテーブルについて予備説明を行う。本発明のデータソート装置は後述するように、個々のレコード識別子rid と当該レコードのソート結果の順序を示す順序値jvalとの組である順序値タプルj-tpl を次々につくり出し、これをソートテーブルの形で蓄積していく。図6にソートテーブルのデータ構造例を示すように、本発明ではソート順ソートテーブルs-stとレコード順ソートテーブルr-stの 2種類のソートテーブルをもつ。
【0027】
図6(a) は順序値タプルj-tpl の構造を示す。順序値jvalはソート指定キーが複数の場合にはキー毎に生成されるので複数順序値タプルとも呼ぶ。キー条件kcによって第k 優先キーと決められたキーでの順序値jval(k)(k=1,2,...,K)の組が一つのレコード識別子rid と対応するので図6(a) のような順序値タプルj-tpl となる。これを特定の順序値jvalに注目して順序値jvalの昇順に蓄積したものが図6(b) に示すソート順ソートテーブルs-stである。図に示すように一般に順序値jvalは同一値を複数レコード識別子rid に対応させることができる。すなわち、同一順序( 順序をつけられない) のレコードが複数個出現する。
【0028】
図6(c) はレコード順ソートテーブルr-stの構造例である。これは図6(a) の複数順序値タプルをレコード識別子rid の値の昇順に蓄積したテーブルである。なお、本実施例では図のように各レコード識別子rid 行にキー毎の順序値jval欄の他にキー欠落フラグ欄を設ける構造とした。キー欠落とは当該レコードの指定キーを探索した場合に指定キー項目が存在しなかった場合、または存在するがその項目データがヌル値であった場合をいう。後述するように、本発明のデータソート装置ではキー欠落を検査して発見すると、このレコード順ソートテーブルr-stの該当キー欠落フラグを立てる。図6(c) ではレコード識別子rid =3の第1優先キー、レコード識別子rid =6の第2優先キーなどにキー欠落フラグが立てられている。
【0029】
キー欠落時の対処には種々のインプリメントがあるが、本実施例ではそのようなレコードは該当キーの順序値jvalが最大であるとする。すなわち、昇順、降順にかかわらずこれらのレコードは最下位にソートされるものとした。図6(c) ではこの最下位の順序値jvalをmax(k)と表しているが、その値は後述するように順序値タプル生成段階で決定される。
【0030】
以上の準備を踏まえて、本発明のデータソート装置の動作を図1、5、7、8、9の動作フローに従って説明する。図1は本発明のデータソート方法の動作フロー例である。ステップS11は初期設定段階であり、図5(a) にその詳細動作を示す。
まず、レコード識別子設定手段1は図5(d) に示すレコード識別子設定テーブルrid-t の領域設定を行う。次いでレコード識別子設定手段1は既読レコード数変数rrをリセットする。(rr ←0)。本既読レコード数変数rrは、後述のレコード識別子設定段階(ステップS14)でレコード識別子設定手段1が各レコード読み込み時に対応するレコード識別子rid を発行する拠り所となるものである。キーデータ前処理手段2はキー条件kcを読み込み格納する。次いで、レコード識別子設定手段1はキーデータ前処理手段2からキー項目数を得て、先に図6で説明したレコード順ソートテーブルr-stの領域設定を行い、また、ソート順ソートテーブルs-stの領域設定を行う。ここでは、単にこれらの領域を確保するのみでその値はすべてヌルクリアされている。次いでレコード識別子設定手段1は第k 優先キー初期状態遷移表tid-k(0)(k=1,2,...,K) を作成する。図4(b) のように 3個のキーが設定された場合はK=3 で、第1 優先キー初期状態遷移表tid-1(0)= iiii(1) 、第2 優先キー初期状態遷移表tid-2(0)= iiii(2) 、第3 優先キー初期状態遷移表tid-3(0)= iiii(3) が生成される。 iiii(k)は各初期状態遷移表tid-k(0)のアドレスでかつ表idである。
【0031】
次いで、データソート装置の共通制御部(図2には図示せず)は図1のステップS12でデータd の1レコードを読み込む。ステップS13でファイル終了でなければステップS14でレコード識別子設定段階の動作を行う。ここでは図5(b) に示すように、まず、既読レコード数変数rrをインクリメントし (rr←[rr]+1) 、これを図5(d) のレコード識別子設定テーブルrid-t のレコード識別子rid 欄に設定し(レコード識別子rid ←[rr])、開始アドレスオフセット値、レコード長の設定を行う。なお、このレコード識別子設定テーブルrid-t は、レコード識別子rid によって該当レコードをダイレクトアクセスするためのインデクスとして使用されるものである。
【0032】
これによって当該レコードに対するレコード識別子rid の設定ができたので、次いで、先に領域設定されたレコード順ソートテーブルr-stの所定行にこのレコード識別子rid ←[rr]を登録する。
次いで、ステップS15、16、17は第k 優先キー(k=1,2,...,K) の処理に移行するループ制御である。ステップS18ではキーデータ前処理手段2は当該レコードに当該第k 優先キーが存在するか、またそのキーデータがヌル値でないかを検査し、キー欠落でなければステップS19でキーデータ前処理を行う。この処理は先に図4(c) で述べたように、当該第k 優先キーのキー条件kcに基づいて、キーデータをキー文字列k-str に変換するものである。またステップS18でキー欠落と判定の場合はステップS110に移行し図5(c) に示すキー欠落処理段階の動作を行う。
【0033】
図5(c) によってこれを示すと、まず、キーデータ前処理手段2は図6(c) のレコード順ソートテーブルr-stの当該レコード識別子rid の行の第k 優先キー欠落フラグを立てる。次いで、第k 優先キー初期状態遷移表tid-k(0)の最終遷移状態フラグ欄を1 加算し、受理レコード識別子リスト欄に当該レコード識別子rid をアペンドする。すなわち、キー欠落レコードは当該キーのオートマトンamの初期状態遷移表tid-k(0)の受理レコード識別子リスト欄に記入することによって分類される。
【0034】
図1に戻り、正常にキー文字列k-str が取得できた場合はステップS111に達し、ここでオートマトン作成処理手段3は図7に示す第k 優先キー対応のオートマトンamの更新を行う。図7には現在のオートマトンamが新たにキー文字列k-str =c(1),c(2),...,c(C)を受理するように更新される動作例を示す。
まずステップS71でオートマトン作成処理手段3は第k 優先キーのキー文字列k-str の文字を取り出す文字ポインタcpをリセットし、第k 優先キーのオートマトンamから状態遷移表を取り出す表ポインタtpをオートマトンamの根(すなわち、初期状態遷移表tid-k(0)) にポイントする。
【0035】
次いでステップS72、73によって文字ポインタcpを一つ進め最終文字に達するまでループ制御する。第cp文字c(cp) が存在するときはステップS74に、全文字終了時はステップS79に分岐する。
ステップS74ではオートマトン作成処理手段3は当該文字c(cp) のコード[c(cp)]=i を調べ、当該状態遷移表tpの文字i受理遷移先欄がヌルかを検査する。ヌルであった場合はまだかつて受理されていないキー文字列k-str であるのでステップS75で対応する新たな状態遷移表を生成する。すなわち、オートマトン作成処理手段3は新しい状態遷移表生成アドレス=aaaa を取得し、第cp文字状態遷移表tid-k(cp) を生成し、その表id欄にtid-k(cp)=aaaaを記入する。また、その遷移元表id欄に元の状態遷移表ポインタ値[tp]を記入する。また、これと対応して、ステップS76で遷移元表( 表id[tp]=tid-k([cp]-1)の表) の文字[c(cp)] 受理遷移先欄に値tid-k(cp)=aaaaを記入する。これはステップS74で検査してヌルであった[tp {文字[c(cp)] 受理遷移先}] を値aaaaと書き換えることに他ならない。
【0036】
かくして、キー文字列k-str の第c(cp) 文字まで受理したので、次の文字を検査すべくステップS77において、表ポインタtpをステップS75で生成した状態遷移表へと進める。一方、ステップS74で[tp {文字[c(cp)] 受理遷移先}] がヌルでなかった場合は既にこの文字を受理した状態遷移表が存在し、その状態遷移表のアドレスが得られているので、オートマトン作成処理手段3はステップS78でこれを新たに表ポインタtpとして設定する。
【0037】
ステップS77またはステップS78で表ポインタtpを次文字用に設定し、ステップS72に戻り文字ポインタcpを一つ進めて次の文字に対処する。全文字終了時にステップS79に到達する。この時点での表ポインタtpの値tid-k(C)で示す状態遷移表は当該キー文字列k-str を受理する最終遷移状態を示している。よってオートマトン作成処理手段3はステップS79でこの表tpの最終遷移状態フラグ欄を1 加算し、受理レコード識別子リスト欄に値[rr](すなわち、当該受理キー文字列k-str をキーデータとするレコードのレコード識別子rid )をアペンドする。また受理レコード補助情報欄に関連設定を行う。
【0038】
図1に戻り、ステップS111の第k 優先キー対応オートマトン作成処理段階を終えるとステップS16に戻り次の第k+1 優先キーに対応するオートマトンamについて同様処理を行う。かくして当該1レコード中の複数キーの全部に対してK 個のオートマトンamの作成更新が終了すると、ステップS17でループを外れ、ステップS12に戻りデータソート装置の共通制御部はデータd の次の1レコードを読み込む。
【0039】
このように、すべてのレコードを読み、これに対応するレコード識別子設定、オートマトンam更新を終え、ファイル終了を検出すると、データソート装置の共通制御部はステップS112に移り、これまで生成更新したオートマトンamを走査する段階に至る。ステップS112〜114は第k 優先キー毎のループ制御を行い、ステップS115でソートテーブル作成処理手段4は当該第k 優先キー対応の順序値タプル生成およびソートテーブル生成を行う。その動作を図8によって以下に説明する。
【0040】
図8のステップS81は順序値タプル生成の初期設定で、先に説明したキー欠落レコードを同定する。すなわち、ソートテーブル作成処理手段4の順序値タプル生成手段41は表ポインタtpを第k 優先キーオートマトンamの初期状態遷移表tid-k(0)=iiii(k)に設定し(tp←tid-k(0))、コードインデックスcodeを0 とする(code ←0)。( コードインデックスcodeについては後述する。) そして初期状態遷移表tid-k(0)=iiii(k)の最終遷移状態フラグ欄の値を同位値カウンタscountに設定する(同位値カウンタscount← [tp {最終遷移状態フラグ}] )。これによって第k 優先キー欠落レコードが[scount]件あることがわかる。一方、既読レコード数変数rrの値は全レコード件数Rmaxを示しているはずである。よって[rr]-[scount]=Rmax-[scount] 件のレコードを走査対象とするのであるから、すべてのキー欠落レコードの順序値jvalは最下位値 Rmax -[scount]+1 が与えられるべきである。
【0041】
順序値タプル生成手段41は順序値タプルj-tpl を生成するために、レコード識別子ワークridwk および順序値ワークjvalwkからなる領域順序値タプルワークj-tplwk を用いる。ステップS81では上記のキー欠落レコードの順序値jvalである Rmax -[scount]+1 を順序値ワークjvalwkに設定する( 図8ステップS81のjvalwk=max(k) ← Rmax -[scount]+1 ) 。同時に、この値が先に図6(c) で説明したmax(k)でもあるので、ステップS82〜84において順序値タプル生成手段41はレコード順ソートテーブルr-st上およびソート順ソートテーブルs-st上の該当位置にもこの値を設定する。ステップS83では初期状態遷移表tid-k(0)=iiii(k)の受理レコード識別子リスト欄のリスト要素([scount]件ある) を順に取り出してレコード識別子ワークridwk に代入して順序値タプルワークj-tplwk を完成している。
【0042】
以上によってキー欠落レコードに対する順序値jvalの設定が完了したので、順序値タプル生成手段41は次にステップS85以降で第k 優先キーオートマトンamを走査して、各レコード識別子rid に第k 優先キーの順序値jvalを対応付ける。このとき、順序値タプル生成手段41がステップS85以降でとる戦略は以下のようなものである。すなわち、まず、順序値jvalを与えるインデックス変数として順序値インデックスjindを使用する。最初に順序値インデックスjindを初期値に設定しておいて、オートマトンamの第k 優先キー初期状態遷移表tid-k(0)から出発してすべてのリンクする状態遷移表を走査する。このときアクセスする状態遷移表を一つ進める毎に順序値インデックスjindをソートモードの昇順/降順に応じて調整設定し、該当の状態遷移表の受理レコード識別子リスト欄のレコード識別子rid にその順序値インデックスjind値を順序値jvalとして対応付けるのである。この戦略から明らかなように、順序値タプル生成手段41の状態遷移表アクセス順序が第k 優先キー文字列k-str のソート順序に対応するようなアクセス順序でなければならない。
【0043】
キー文字列k-str の昇順で状態遷移表をアクセスする順序について考えると、まず、第 1文字c(1)の値が最小すなわちコード0 のキー文字列k-str に対応する状態遷移表を選ぶ。これは第k 優先キー初期状態遷移表tid-k(0)の文字0 受理遷移先欄のポインタが示す第1 文字状態遷移表tid-k(1)である。もしもこの第1 文字状態遷移表tid-k(1)の最終遷移状態フラグ欄が1 以上であるなら、それはキー文字列k-str がコード0 の1 文字であるレコードがあることを意味する。( 先に説明したようにここでいう文字はキー文字列k-str の文字単位、本実施例では4 ビット、であり、実際の文字コード体系での文字の割りあての有無についてはここでは問わない。) このようにして最上位の順序値jvalがこの第1 文字状態遷移表tid-k(1)の受理レコード識別子リスト欄に記入されたリスト要素の各レコード識別子rid に対応付けられる。その件数分順序値インデックスjind値を増やして次の順序値jvalを用意して、次はこの第1 文字状態遷移表tid-k(1)の文字0 受理遷移先欄に書かれた第2 文字状態遷移表tid-k(2)にアクセスする。
【0044】
このように順序値タプル生成手段41はオートマトンamのツリー構造を深さ優先でたどり、また、文字0 受理遷移先欄から文字F 受理遷移先欄の最大16個の枝についてはこの順序で走査を進める。状態遷移表を深さ優先でたどるために表ポインタtpを用いるが、分岐枝を文字0 受理遷移先欄から文字F 受理遷移先欄へたどるためにステップS81で設定したコードインデックスcodeを使用する。あるノードtpの状態遷移表の分岐枝code( すなわち文字[code]受理遷移先欄) から出発して深さ優先の走査処理を終えると、またこのノードtpの状態遷移表の分岐枝codeに戻って次の枝に走査を移すバックトラック制御が必要である。これを実現するために、順序値タプル生成手段41は走査のバックトラック用に、表ポインタtpとコードインデックスcodeとの組をスタックするバックトラック用スタックを用いる。本スタックはlast-in-first-out 型のスタックであって、ポップ命令によって、最後にプッシュされた値が読み出される構造である。
【0045】
以上の戦略を実現する動作フローを図8のステップS85以降で示す。ステップS85では、順序値タプル生成手段41は順序値jvalを与える順序値インデックスjindを初期設定するが、その値は当該第k 優先キーのソートモードの昇順/降順によって異なる。既に述べた戦略で走査すると昇順走査であるのでソートモードが昇順の場合には順序値インデックスjindは初期値0からインクリメントするが、ソートモードが降順の場合は順序値インデックスjindは最下位値[max(k)]を初期値としてデクリメントする。
【0046】
先にステップS81で表ポインタtpは第k 優先キー初期状態遷移表tid-k(0)を指し、コードインデックスcodeは0 を指しているので、はじめてステップS86にはいった時点ではオートマトンamツリーのルートノードの文字[code]受理遷移先欄を出発点とする。一般には第cp-1文字状態遷移表tid-k(cp-1) ノードの文字[code]受理遷移先欄を指定してステップS86に到達する。コードインデックスcodeがx10 に達していない場合、すなわち、コードインデックスcodeが値0〜F である場合、ステップS87で当該状態遷移表の文字[code]受理遷移先欄に次リンク先があるかを検査し、ない場合はステップS88でコードインデックスcodeをインクリメントする。ステップS87でリンク先があった場合、順序値タプル生成手段41はステップS89でまず現在の表ポインタtp、コードインデックスcodeをバックトラック用スタックにプッシュし、ステップS810で該当のリンク先すなわち、[tp {文字[code]受理遷移先}] を新たに表ポインタtpに設定してステップS811の順序値タプル生成・ソートテーブル作成ルーチンに分岐する。このルーチンについては図9で後述する。
【0047】
ステップS811で目的の順序値タプルj-tpl やソートテーブルの作成更新を終えると、その状態遷移表について、分岐枝をたどるべくステップS88でコードインデックスcodeをインクリメントし再びステップS86の未処理枝有無判定に入る。コードインデックスcodeがx10 に達した場合はこれ以上分岐枝がないので当該状態遷移表での処理終了となりステップS812でバックトラック用スタックから次の分岐先をポップする。これによって最後にプッシュされた表ポインタtpとコードインデックスcodeの位置を取り出すことができる。
【0048】
ステップS813はポップされた表ポインタtpがないこと、すなわち最終スタックを処理し終えて、全バックトラックが終了したことを検査して、yesならば全処理終了となる。ポップされた表ポインタtpとコードインデックスcodeが存在する時は、順序値タプル生成手段41はステップS814でこれをもとにこの状態遷移表の次の分岐枝に進む、すなわち、ステップS88に戻り処理を継続する。
【0049】
最後にステップS811において順序値タプルj-tpl を取得し、ソートテーブルを更新する動作を図9によって説明する。本順序値タプルj-tpl 生成・ソートテーブル生成ルーチンは入力として、順序値インデックスjind 、ソートモードフラグsm(k) および表ポインタtpを与えてコールし、出力として順序値タプルj-tpl ( 順序値タプルワークj-tplwk として与える) の他、図6(c) に示すレコード順ソートテーブルr-stの該当レコード識別子rid 行を更新する。また、必要に応じて図6(b) のソート順ソートテーブルs-stを生成する。例えばK=1 すなわちキーの数が1 個の場合はソート順ソートテーブルs-stを作成すれば目的のソートを実行したことになる。この際にはレコード順ソートテーブルr-stの作成を省くことも可能である。また、本ルーチンは入力の順序値インデックスjindを用いて所定の順序値jvalを発行し、最後に順序値インデックスjindを更新して出力し、次の走査に供する。
【0050】
図9のステップS91は指定された状態遷移表tpの最終遷移状態フラグ欄を参照して順序値jvalを発行すべきレコード識別子rid の件数を知り、これを同位値カウンタscountにセットする。そしてソートモードフラグsm(k) が昇順の場合は順序値インデックスjind値+1から順序値jvalを発行すべきなので、順序値ワークjvalwkに順序値インデックスjind値+1をセットする。一方、ソートモードフラグsm(k) が降順の場合は、[scount]件分に対して同一の順序値jvalを発行してその次の下位が現在の順序値インデックスjind値になるべきであるので、発行すべき順序値jvalの値は[jind]-[scount] となり、順序値ワークjvalwkには[jind]-[scount] をセットする。
【0051】
次いで順序値タプル生成手段41はステップS92〜94で[scount]件分のループ制御を行い、ステップS95で順序値ワークjvalwkに対応すべきレコード識別子ワークridwk を取得する。すなわち、状態遷移表tpの受理レコード識別子リスト欄には対応すべき[scount]件分のレコード識別子rid を要素とするリストが書かれてあるので、これらすべてのレコード識別子rid に同一の順序値ワークjvalwkが対応する。かくしてレコード識別子ワークridwk に該当のレコード識別子rid を設定して順序値タプルワークj-tplwk (ridwk,jvalwk)を生成する。同時に、レコード順ソートテーブルr-st上の該当するレコード識別子rid 行の第k 優先キー順序値jval列のセルに順序値ワークjvalwkの値を転記する。これによってレコード順ソートテーブルr-stの更新が行われた。また、K=1 すなわち、ソートキーが1 個の場合は、上記レコード順ソートテーブルr-stに加え、ソート順ソートテーブルs-st上にも(ridwk,jvalwk)を転記することにより目的のソートを実行したことになる。すなわち、キーが一つで昇順指定であれば、図8の順序値タプル生成動作実行に従い、ソート順ソートテーブルs-stは順序値jvalの上位順に埋まって行くので、オートマトンamの全状態遷移表を走査し終えなくとも、上位20位までのレコード識別子rid を得る、などの用途では、上記ソート順ソートテーブルs-stの更新中途段階で十分ソートの目的が達成されたことになるので、従来技術のデータソートに比べ一層高速のレスポンスを得ることになる。
【0052】
以上で順序値タプル生成、ソートテーブル作成更新を終えると、最後に次の処理に備えてステップ96で順序値インデックスjindを更新する。[scount]件分の処理を行ったので、ソートモードフラグsm(k) が昇順の場合は順序値インデックスjind値は[jind]+[scount] に、降順の場合は[jind]-[scount] に更新する。 以上、本実施例ではK 個のソートキーが指定された場合に図6(c) のレコード順ソートテーブルr-stが形成される動作について述べた。各レコード識別子rid に対応して第1 優先キー順序値jvalから第K 優先キー順序値jvalまでのすべてのセルが順序値jvalで埋められている。本レコード順ソートテーブルr-stから総合的な順序値、すなわち、第1 優先キー順序値jvalが等しいレコード識別子rid 間では第2 優先キー順序値jvalの昇順に、第1 〜第2優先キー順序値jvalまでが等しいレコード識別子rid 間では第3 優先キー順序値jvalの昇順に、...,第1 〜第K-1 優先キー順序値jvalまでが等しいレコード識別子rid 間では第K 優先キー順序値jvalの昇順に全レコード識別子rid を順序づける総合順序値を与える必要がある。この総合順序値と当該レコード識別子との組である総合順序値タプルを生成する総合順序値タプル生成段階について以下に述べる。
【0053】
本段階は図2のデータソート装置において、データd として、上述の作成されたレコード順ソートテーブルr-stそのものを与えることにより行われる。すなわち、図6(c) のレコード順ソートテーブルr-stの各レコード識別子rid は( 第1 優先キー順序値jval, 第2 優先キー順序値jval,..., 第K 優先キー順序値jval) の複数順序値の列をもっているので、この複数順序値の列を一つの文字列に置き換えて、これを当該レコード識別子に属する文字列とみなし、この文字列を複数順序値キー文字列fjk として前記レコード順ソートテーブル中の全タプルに対して、図2のデータソート装置に与えて動作させる。この複数順序値キー文字列fjk の昇順に総合順序値が順序付けられる。従って、本データソート装置の動作でキー数1 でキー項目が複数順序値キー文字列fjk の場合のステップS95の動作で得られたソート順ソートテーブルs-stは総合順序値順にレコード識別子rid を並べたテーブルとなり所期の結果が得られる。
【0054】
(付記1) 指定されたソートキー項目に従ってレコードを昇順または降順に並べ替えるデータソート方法であって、
各レコードのソートキー項目の文字列を受理するオートマトンで、かつその最終遷移状態に当該レコード識別子を対応付けたオートマトンを生成するオートマトン作成処理段階と、
前記オートマトンを走査して前記レコードを昇順または降順に順番付けた順序値と当該レコード識別子との組である順序値タプルを生成する順序値タプル生成段階と、
を有することを特徴とするデータソート方法。
【0055】
(付記2) 指定されたソートキー項目に従ってレコードを昇順または降順に並べ替えるデータソート装置であって、
各レコードのソートキー項目の文字列を受理するオートマトンで、かつその最終遷移状態に当該レコード識別子を対応付けたオートマトンを生成するオートマトン作成処理手段と、
前記オートマトンを走査して前記レコードを昇順または降順に順番付けた順序値と当該レコード識別子との組である順序値タプルを生成する順序値タプル生成手段と、
を有することを特徴とするデータソート装置。
【0056】
(付記3) 指定されたソートキー項目に従ってレコードを昇順または降順に並べ替えるデータソートをコンピュータに実行させるためのデータソートプログラムであって、
各レコードのソートキー項目の文字列を受理するオートマトンで、かつその最終遷移状態に当該レコード識別子を対応付けたオートマトンを生成するオートマトン作成処理段階と、
前記オートマトンを走査して前記レコードを昇順または降順に順番付けた順序値と当該レコード識別子との組である順序値タプルを生成する順序値タプル生成段階と、
をコンピュータに実行させることを特徴とするデータソートプログラム。
【0057】
(付記4) 付記3記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
(付記5) 前記ソートキー項目は複数項目であり、前記順序値タプルは複数の順序値と一つのレコード識別子との組であることを特徴とする付記1記載のデータソート方法。
【0058】
(付記6) さらに、前記順序値タプルを所定の順に並べたソートテーブルを生成するソートテーブル生成段階を有することを特徴とする付記1または付記5記載のデータソート方法。
(付記7) 前記ソートテーブル生成段階において、順序値の昇順または降順に並べたソートテーブルであるソート順ソートテーブルを生成することを特徴とする付記6記載のデータソート方法。
【0059】
(付記8) 前記ソートテーブル生成段階において、レコード識別子の昇順または降順に並べたソートテーブルであるレコード順ソートテーブルを生成することを特徴とする付記6記載のデータソート方法。
(付記9) ソートキー項目は複数項目であり、複数の順序値と一つのレコード識別子との組である複数順序値タプルに基づいて、レコード順ソートテーブルを生成する付記8記載のデータソート方法であって、さらに、
前記レコード順ソートテーブルの複数順序値の列を当該レコード識別子に属する文字列とみなし、この文字列を複数順序値キー文字列として前記レコード順ソートテーブル中の全タプルに対してこれを受理するオートマトンを生成するオートマトン作成処理段階と、
前記オートマトンを走査して、前記複数ソートキーに対する総合的な順番として新たに順番付けた総合順序値と当該レコード識別子との組である総合順序値タプルを生成する総合順序値タプル生成段階と、
を有することを特徴とする付記8記載のデータソート方法。
【0060】
(付記10) 入力データから読み出したレコード毎に、当該レコードの開始アドレスを当該レコードを識別するレコード識別子と対応付けたタプルを記録するレコード識別子設定段階、をさらに有することを特徴とする付記1記載のデータソート方法。
(付記11) 指定されたソートキー項目毎のソート方法に関する条件であるキー条件に応じて、入力されたソートキー項目データを前記オートマトン作成処理に適するキー文字列に変換するキーデータ前処理段階、をさらに有することを特徴とする付記1記載のデータソート方法。
【0061】
【発明の効果】
以上の説明から明らかなように、本発明によれば、各レコードのソートキー項目の文字列を受理するオートマトンを生成し、その最終遷移状態に当該レコード識別子を対応付け、このオートマトンを走査することにより、従来のデータソート方法より高速なデータソートが可能となる、という効果がある。
【図面の簡単な説明】
【図1】本発明のデータソート方法の動作フロー例
【図2】本発明のデータソート装置の機能ブロック図
【図3】状態遷移表によるオートマトン生成例
【図4】入力されるデータd の構造とキー条件kc設定例
【図5】オートマトンam生成準備の各段階の動作例とレコード識別子設定テーブルrid-t
【図6】ソートテーブルのデータ構造例
【図7】オートマトン作成処理段階の動作フロー例
【図8】ソートテーブル作成処理段階の動作フロー例
【図9】順序値タプルj-tpl 生成・ソートテーブル生成ルーチンの動作例
【符号の説明】
1 レコード識別子設定手段
2 キーデータ前処理手段
3 オートマトン作成処理手段
4 ソートテーブル作成処理手段
41 順序値タプル生成手段
k-str キー文字列
kc キー条件
am オートマトン
tid(0) 初期状態遷移表
tid(p) 第p 文字状態遷移表
j-tpl 順序値タプル
rid レコード識別子
jval 順序値
s-st ソート順ソートテーブル
r-st レコード順ソートテーブル
rid-t レコード識別子設定テーブル
tp 表ポインタ
cp 文字ポインタ
scount 同位値カウンタ
code コードインデックス
rr 既読レコード数変数
Claims (3)
- 指定されたソートキー項目に従ってレコードを昇順または降順に並べ替えるデータソート方法であって、
各レコードの複数のソートキー項目の文字列を受理するオートマトンで、かつその最終遷移状態に当該レコード識別子を対応付けて前記複数のソートキー項目毎にオートマトンを生成するオートマトン作成処理段階と、
前記オートマトンを走査して前記レコードを昇順または降順に順番付けた複数の順序値と一つの当該レコード識別子との組である複数順序値タプルを生成する順序値タプル生成段階と、
さらに、前記複数順序値タプルを複数順序値キー文字列として、前記複数順序値タプルに含まれる全タプルに対し前記オートマトンを生成し、該生成したオートマトンを走査することによって総合的なソートテーブルを生成するソートテーブル作成処理段階と、
を有することを特徴とするデータソート方法。 - 指定されたソートキー項目に従ってレコードを昇順または降順に並べ替えるデータソート装置であって、
各レコードの複数のソートキー項目の文字列を受理するオートマトンで、かつその最終遷移状態に当該レコード識別子を対応付けて前記複数のソートキー項目毎にオートマトンを生成するオートマトン作成処理手段と、
前記オートマトンを走査して前記レコードを昇順または降順に順番付けた複数の順序値と一つの当該レコード識別子との組である複数順序値タプルを生成する順序値タプル生成手段と、
さらに、前記複数順序値タプルを複数順序値キー文字列として、前記複数順序値タプルに含まれる全タプルに対し前記オートマトンを生成し、該生成したオートマトンを走査することによって総合的なソートテーブルを生成するソートテーブル作成処理手段と、
を有することを特徴とするデータソート装置。 - 指定されたソートキー項目に従ってレコードを昇順または降順に並べ替えるデータソートプログラムであって、
各レコードの複数のソートキー項目の文字列を受理するオートマトンで、かつその最終遷移状態に当該レコード識別子を対応付けて前記複数のソートキー項目毎にオートマトンを生成するオートマトン作成処理段階と、
前記オートマトンを走査して前記レコードを昇順または降順に順番付けた複数の順序値と一つの当該レコード識別子との組である複数順序値タプルを生成する順序値タプル生成段階と、
さらに、前記複数順序値タプルを複数順序値キー文字列として、前記複数順序値タプルに含まれる全タプルに対し前記オートマトンを生成し、該生成したオートマトンを走査することによって総合的なソートテーブルを生成するソートテーブル作成処理段階と、
をコンピュータに実行させることを特徴とするデータソートプログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001227587A JP3772704B2 (ja) | 2001-07-27 | 2001-07-27 | データソート方法、データソート装置およびデータソートプログラム |
US10/086,696 US7103596B2 (en) | 2001-07-27 | 2002-03-04 | Data sort method, data sort apparatus, and data sort program |
EP02251763A EP1280050A3 (en) | 2001-07-27 | 2002-03-13 | Data sort method, data sort apparatus, and data sort program |
KR1020020013994A KR100798609B1 (ko) | 2001-07-27 | 2002-03-15 | 데이터 소트 방법, 데이터 소트 장치 및 데이터 소트 프로그램을 기억하는 기억 매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001227587A JP3772704B2 (ja) | 2001-07-27 | 2001-07-27 | データソート方法、データソート装置およびデータソートプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003044267A JP2003044267A (ja) | 2003-02-14 |
JP3772704B2 true JP3772704B2 (ja) | 2006-05-10 |
Family
ID=19060225
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001227587A Expired - Fee Related JP3772704B2 (ja) | 2001-07-27 | 2001-07-27 | データソート方法、データソート装置およびデータソートプログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US7103596B2 (ja) |
EP (1) | EP1280050A3 (ja) |
JP (1) | JP3772704B2 (ja) |
KR (1) | KR100798609B1 (ja) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6505123B1 (en) | 2000-07-24 | 2003-01-07 | Weatherbank, Inc. | Interactive weather advisory system |
GB0204412D0 (en) * | 2002-02-25 | 2002-04-10 | Bae Systems Plc | Ordering by hamming value |
US7203694B2 (en) * | 2002-12-20 | 2007-04-10 | International Business Machines Corporation | System and method for multicolumn sorting in a single column |
US20040220941A1 (en) * | 2003-04-30 | 2004-11-04 | Nielson Mark R. | Sorting variable length keys in a database |
US7212817B2 (en) * | 2003-04-30 | 2007-05-01 | Hewlett-Packard Development Company, L.P. | Partitioning a database keyed with variable length keys |
US7180328B2 (en) * | 2003-05-23 | 2007-02-20 | Sensory Networks, Inc. | Apparatus and method for large hardware finite state machine with embedded equivalence classes |
US7225194B2 (en) * | 2003-10-24 | 2007-05-29 | Sap Ag | Composite record identifier generator |
US20060161469A1 (en) | 2005-01-14 | 2006-07-20 | Weatherbank, Inc. | Interactive advisory system |
US8832121B2 (en) | 2005-02-02 | 2014-09-09 | Accuweather, Inc. | Location-based data communications system and method |
WO2006100715A1 (ja) | 2005-03-18 | 2006-09-28 | Fujitsu Limited | データ提示装置、データ提示プログラム及びデータ提示方法 |
US20060212449A1 (en) * | 2005-03-21 | 2006-09-21 | Novy Alon R J | Method and apparatus for generating relevance-sensitive collation keys |
JP4479908B2 (ja) | 2005-06-30 | 2010-06-09 | 富士通株式会社 | データソート処理プログラム、データソート処理方法およびデータソート処理装置 |
FR2892847B1 (fr) * | 2005-11-03 | 2007-12-21 | St Microelectronics Sa | Procede de memorisation de donnees dans un circuit de memoire pour automate de reconnaissance de caracteres de type aho-corasick et citcuit de memorisation correspondant. |
WO2007092101A2 (en) * | 2005-12-29 | 2007-08-16 | Boston Scientific Limited | Foam electrode for tissue resection |
US8229467B2 (en) | 2006-01-19 | 2012-07-24 | Locator IP, L.P. | Interactive advisory system |
HU227781B1 (hu) * | 2006-03-17 | 2012-02-28 | Pal Bela Dr Doemoesi | Szimmetrikus kulcsú kriptográfiai berendezés és eljárás információk titkosítására és visszafejtésére |
US8634814B2 (en) | 2007-02-23 | 2014-01-21 | Locator IP, L.P. | Interactive advisory system for prioritizing content |
KR100794188B1 (ko) * | 2007-03-05 | 2008-01-14 | (주)하나금속 | 수관 연결용 어댑터를 일체로 갖춘 냉각 자켓용 블럭과, 그냉각 자켓용 블럭의 수관 연결용 어댑터 결합방법. |
US8307101B1 (en) | 2007-12-13 | 2012-11-06 | Google Inc. | Generic format for storage and query of web analytics data |
DE202008018638U1 (de) * | 2007-12-13 | 2017-01-31 | Google Inc. | Generisches Format für die effiziente Übertragung von Daten |
US8429243B1 (en) | 2007-12-13 | 2013-04-23 | Google Inc. | Web analytics event tracking system |
US8200673B2 (en) * | 2009-06-29 | 2012-06-12 | Sap Ag | System and method for on-demand indexing |
JP5765244B2 (ja) | 2012-01-11 | 2015-08-19 | 富士通株式会社 | テーブル処理装置、テーブル処理方法、及びプログラム |
US9900302B2 (en) | 2016-06-22 | 2018-02-20 | FinancialForce.com, Inc. | Seamless authentication for an application development platform |
US10984359B2 (en) | 2016-06-23 | 2021-04-20 | FinancialForce.com, Inc. | Combining batch and queueable technologies in a salesforce platform for large volume parallel processing |
US10191744B2 (en) * | 2016-07-01 | 2019-01-29 | Intel Corporation | Apparatuses, methods, and systems for element sorting of vectors |
US10515082B2 (en) * | 2016-09-14 | 2019-12-24 | Salesforce.Com, Inc. | Identifying frequent item sets |
US10956503B2 (en) | 2016-09-20 | 2021-03-23 | Salesforce.Com, Inc. | Suggesting query items based on frequent item sets |
US10496741B2 (en) | 2016-09-21 | 2019-12-03 | FinancialForce.com, Inc. | Dynamic intermediate templates for richly formatted output |
US11038689B2 (en) | 2018-03-01 | 2021-06-15 | FinancialForce.com, Inc. | Efficient block chain generation |
US10846481B2 (en) | 2018-06-29 | 2020-11-24 | FinancialForce.com, Inc. | Method and system for bridging disparate platforms to automate a natural language interface |
US11200143B2 (en) | 2019-01-08 | 2021-12-14 | FinancialForce.com, Inc. | Software development framework for a cloud computing platform |
JP7095800B2 (ja) | 2019-03-22 | 2022-07-05 | 富士通株式会社 | 情報処理プログラム、情報処理方法及び情報処理装置 |
US10922485B2 (en) | 2019-07-10 | 2021-02-16 | FinancialForce.com, Inc. | Platform interpretation of user input converted into standardized input |
CN111510154B (zh) * | 2020-04-17 | 2023-07-21 | 环荣电子(惠州)有限公司 | 坐标数据压缩方法 |
US20210365204A1 (en) * | 2020-05-20 | 2021-11-25 | Micron Technology, Inc. | Sort in memory using index and key tables |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61141035A (ja) | 1984-12-14 | 1986-06-28 | Hitachi Ltd | デ−タ検索方式 |
CA1280215C (en) * | 1987-09-28 | 1991-02-12 | Eddy Lee | Multilingual ordered data retrieval system |
US5138669A (en) * | 1990-06-29 | 1992-08-11 | Hitachi, Ltd. | Range-conditional character string retrieving method and system |
JP2549475B2 (ja) | 1991-06-21 | 1996-10-30 | 東洋インキ製造株式会社 | 反応種拡散電極構造体 |
JPH06139278A (ja) | 1992-10-26 | 1994-05-20 | Hitachi Ltd | 文字コード変換機能を備えた文字列検索装置 |
US5758353A (en) | 1995-12-01 | 1998-05-26 | Sand Technology Systems International, Inc. | Storage and retrieval of ordered sets of keys in a compact 0-complete tree |
US5924091A (en) * | 1996-08-28 | 1999-07-13 | Sybase, Inc. | Database system with improved methods for radix sorting |
JP3148692B2 (ja) * | 1996-09-04 | 2001-03-19 | 株式会社エイ・ティ・アール音声翻訳通信研究所 | 類似検索装置 |
US6745173B1 (en) * | 2000-06-14 | 2004-06-01 | International Business Machines Corporation | Generating in and exists queries using tensor representations |
-
2001
- 2001-07-27 JP JP2001227587A patent/JP3772704B2/ja not_active Expired - Fee Related
-
2002
- 2002-03-04 US US10/086,696 patent/US7103596B2/en not_active Expired - Lifetime
- 2002-03-13 EP EP02251763A patent/EP1280050A3/en not_active Ceased
- 2002-03-15 KR KR1020020013994A patent/KR100798609B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
EP1280050A2 (en) | 2003-01-29 |
KR100798609B1 (ko) | 2008-01-28 |
KR20030011220A (ko) | 2003-02-07 |
US7103596B2 (en) | 2006-09-05 |
US20030033278A1 (en) | 2003-02-13 |
JP2003044267A (ja) | 2003-02-14 |
EP1280050A3 (en) | 2005-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3772704B2 (ja) | データソート方法、データソート装置およびデータソートプログラム | |
US7962524B2 (en) | Computer program, device, and method for sorting dataset records into groups according to frequent tree | |
US7809758B2 (en) | Database and method of generating same | |
US5721899A (en) | Retrieval apparatus using compressed trie node and retrieval method thereof | |
US5819291A (en) | Matching new customer records to existing customer records in a large business database using hash key | |
JP2638307B2 (ja) | データベースの登録簿を探索する方法 | |
US7080091B2 (en) | Inverted index system and method for numeric attributes | |
JP2001167087A (ja) | 構造化文書検索装置,構造化文書検索方法,構造化文書検索用プログラム記録媒体および構造化文書検索用インデックス作成方法 | |
US6741999B2 (en) | String tree utility data structure and order n sort | |
US20120209855A1 (en) | Bit-string key classification/distribution apparatus, classification/distribution method, and program | |
US5226148A (en) | Method and apparatus for validating character strings | |
CN114491172B (zh) | 树形结构节点的快速检索方法、装置、设备及存储介质 | |
WO2006059425A1 (ja) | データベース構築装置、データベース検索装置、データベース装置、データベース構築方法、及びデータベース検索方法 | |
CN111752542B (zh) | 基于xml模板的数据库查询接口引擎 | |
US7275208B2 (en) | XML document processing for ascertaining match of a structure type definition | |
US20060074971A1 (en) | Method and system for formatting and indexing data | |
CN114386100A (zh) | 一种公有云用户敏感数据管理方法 | |
US7194405B2 (en) | Method for presenting a natural language comparison of items | |
CN106933844B (zh) | 面向大规模rdf数据的可达性查询索引的构建方法 | |
CN114925764B (zh) | 基于大数据的工程管理文件分类识别方法及系统 | |
CN108256083A (zh) | 基于深度学习的内容推荐方法 | |
JPH08235033A (ja) | オブジェクト指向データベース管理システムにおける結合演算方式 | |
CN111723552B (zh) | 一种高效json文件格式及内容验证方法 | |
Song et al. | BioDIFF: an effective fast change detection algorithm for genomic and proteomic data | |
JP3443356B2 (ja) | パケット分類装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20040610 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20040610 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050629 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050705 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050830 |
|
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: 20060124 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060206 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3772704 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090224 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100224 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110224 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110224 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120224 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130224 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130224 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140224 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |