JPH04101271A - データテーブル検索方法 - Google Patents

データテーブル検索方法

Info

Publication number
JPH04101271A
JPH04101271A JP2218230A JP21823090A JPH04101271A JP H04101271 A JPH04101271 A JP H04101271A JP 2218230 A JP2218230 A JP 2218230A JP 21823090 A JP21823090 A JP 21823090A JP H04101271 A JPH04101271 A JP H04101271A
Authority
JP
Japan
Prior art keywords
character string
data table
length
searched
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.)
Pending
Application number
JP2218230A
Other languages
English (en)
Inventor
Katsutaka Suzuki
克孝 鈴木
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.)
Toshiba TEC Corp
Original Assignee
Tokyo Electric Co 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 Tokyo Electric Co Ltd filed Critical Tokyo Electric Co Ltd
Priority to JP2218230A priority Critical patent/JPH04101271A/ja
Publication of JPH04101271A publication Critical patent/JPH04101271A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、例えば情報管理システムにおいてデータアク
セス等のためにデータテーブル群から所望のデータテー
ブルを検索する方法に関する。
[従来の技術] 例えば情報管理システムにおいて、文字列からなるキー
により分類してデータテーブル群に登録されているデー
タをアクセスする場合に対象となるデータテーブルを効
率よく検索する方法としてハツシュ検索方法が知られて
いる。
このハツシュ検索方法は例えば検索対象の文字列とその
文字列長をもとにハツシュ関数によりハツシュ値を求め
、そのハツシュ値によりハツシュテーブルを索引して連
鎖されるデータテーブル群から任意のデータテーブルを
検索するようになっている。
ところでハツシュ関数によるハツシュ値算出方法として
は、キーである文字列の全文字を対象に算出する方法と
、ある長さ未満のキーについては全文字を対象に算出す
るが、ある長さ以上のキーに対しては文字列の特定部分
から固定長の文字列、例えば先頭より数文字を対象に算
出する方法がある。
文字列の比較的長いキーを扱うシステムにおいては算出
効率を高めるために後者の方法を使用する場合が多い。
しかしその反面、システムの扱うキー群の特性により算
出対象となる固定長の文字が一致する場合が多くなり、
その結果同じノ1ツシュ値に複数のキーが対応すること
が発生する。
このような場合、従来の方法では同じノ\ツシュ値のキ
ーを保持するデータテーブルをノ\ツシュテーブルの一
つの項から連結ポインタにより連結し、一つながりの連
鎖を形成して登録しておき、検索時には先頭のデータテ
ーブルから順次キーの検索を行い、キーが一致すれば対
象テーブルと判断してそのデータテーブルのデータ部を
アクセスし、また一致しなければ一致するキーが検索さ
れるまで連結ポインタによって連鎖をたどるという方法
をとっていた。
[発明が解決しようとする課題] しかしこの従来方法では連鎖の上位から下位へデータテ
ーブルを順次たどる必要があり、またそれぞれのデータ
テーブルでキーの全文字を比較するので、例えば検索す
べきデータテーブルが下位にあった場合、データテーブ
ルの検索処理に時間かかかり、検索効率が低下する問題
があった。
そこで本発明は、データテーブルの検索処理時間を短縮
でき、検索効率を向上できるデータテーブル検索方法を
提供しようとするものである。
[課題を解決するための手段と作用] 本発明は、ハツシュ関数に基づいて求められたハツシュ
値によりハツシュテーブルを索引し、索引された項によ
り連鎖されるデータテーブル群から任意のデータテーブ
ルを検索する場合に、データテーブルにキーとしての文
字列自体と文字列長を格納した領域を設けるとともに、
同一ハツシュ値に属する複数のデータテーブルのうち文
字列長の等しいデータテーブルを連結する同長連結ポイ
ンタ領域、文字列長の異なるデータテーブルを連結する
異長連結ポインタ領域及び文字列長の等しいデータテー
ブル間において最初に検索されるデータテーブルに格納
された文字列と自己の文字列との相違情報を格納した領
域を設け、検索時においては先ず検索すべき文字列長と
等しい文字列長を格納したデータテーブルを文字列長格
納領域の情報と異長連結ポインタ領域の情報により検索
し、検索すべき文字列長と等しい文字列長を格納したデ
ータテーブルを検索するとそのデータテーブルに格納さ
れた文字列と検索すべき文字列が一致していればそのデ
ータテーブルを検索対象テーブルと判断し、またそのデ
ータテーブルに格納された文字列と検索すべき文字列が
不一致のときには同長連結ポインタ領域の情報による連
鎖をたどりつつ他のデータテーブルの相違情報格納領域
の相違情報に基づいて検索すべき文字列の一部とデータ
テーブルに格納された文字列の一部のみを比較し、その
一部か一致していればそのデータテーブルを検索対象テ
ーブルと判断することにある。
[実施例] 以下、本発明の実施例を図面を参照して説明する。
第1図において1は被検索キーの文字列を格納する文字
列レジスタ、2は被検索キーの文字列長を格納する文字
列長レジスタで、この各レジスタ1.2の文字列及び文
字列長をハツシュ関数処理部3に入力してハツシュ値を
求め、そのハッシュ値によりハツシュテーブル4を索引
するようになっている。
そして前記ハツシュテーブル4により該当項にあるポイ
ンタが示す連鎖の先頭データテーブル5、を検査対象と
するようになっている。
52.53..54,55.56は前記データテーブル
51と同一ハツシュ値で連鎖する他のデータテーブルで
ある。
前記各データテーブル51〜56は第2図に示すように
文字列長の等しいデータテーブルを連結する同長連結ポ
インタ領域としての同長連結ポインタ部M1、文字列長
の異なるデータテーブルを連結する異長連結ポインタ領
域としての異長連結ポインタ部M2、キーとしての文字
列の長さ、すなわち文字列長を格納する領域としての文
字列長部M3、文字列長の等しいデータテーブル間にお
いて最初に検索されるデータテーブルに格納された文字
列と自己の文字列との相違情報を格納する領域としての
相違情報部M4、キーとしての文字列を格納する領域と
しての文字列部M、及びデータを格納する領域としての
データ部M6で構成されている。
6はキーの相違情報を格納する相違情報レジスタである
第3図は検索処理を示す流れ図で、先ず相違情報レジス
タ6を初期化しその値を「0」にする。
続いて文字列レジスタ1の文字列と文字列長レジスタ2
の文字列長からハツシュ関数処理部3にてハツシュ値を
求め、そのハツシュ値によりハツシュテーブル4を索引
し、さらにそのハツシュテーブル4により該当項にある
ポインタか示す連鎖の先頭データテーブル51を検査対
象とする。
続いてSlにて文字列長レジスタ2の文字列長とデータ
テーブルにおける文字列長部M3の文字列長を比較し、
一致していれば続いてS2にて相違情報レジスタ6の値
とデータテーブルにおける相違情報部M4の値を比較す
る。そして一致していれば続いてS3にて文字列レジス
タ1の文字列とデータテーブルにおける文字列部M5の
文字列を比較し、一致していれば検索すべきデータテブ
ルであると判断しそのデータテーブルのデータ部M6を
アクセスする。
また一致していなければ相違が判明した文字の番号を相
違情報レジスタ6に格納する。そしてS4にて同長連結
ポインタ部M1がrOJになっているか否かをチエツク
し、「0」でなければ同長連結ポインタ部M1のポイン
タが示すデータテーブルを次の検査対象にして前記S2
の比較に戻る。
またS4にて同長連結ポインタ部M1が「0」になって
いれば未登録エラーとして処理を終了する。
前記S1の比較にて文字列長レジスタ2の文字列長と文
字列長部M3の文字列長が一致していなければS5にて
異長連結ポインタ部M2が「0」になっているか否かを
チエツクし、「0」でなければ異長連結ポインタ部M2
のポインタが示すデータテーブルを次の検査対象にして
前記S1の比較に戻る。
またS、にて異長連結ポインタ部M2が「0」になって
いれば未登録エラーとして処理を終了する。
このような構成の本実施例において文字列レジスタ1に
例えばr abcdewx Jの文字列が格納されてい
るとするとこの文字列か検索対象となる。そして今キー
である文字列の先頭5文字からハツシュ値を求めるハツ
シュ関数を用いるとすると、rabcdexy J  
rabcde J  rabcdevJ  rabcd
exw Jr abcdevJ  r abcdewx
 Jは同じハツシュ値をもつので、これらのキーを文字
列部M、に格納したデータテーブル51〜56はハツシ
ュテーブル4の一つの項から連鎖構造を形成する。
r abcdevx Jの文字列は文字列長か「7」で
これと同じ文字列長のデータテーブルは5+、54゜5
6となる。従ってデータテーブル51+54+56は同
長連結ポインタにより連鎖される。そしてデータテーブ
ル56の同長連結ポインタ部M1には連鎖の末尾を示す
値、例えば「0」を格納しておく。
またデータテーブル53.55は文字列長が「6」で同
長連結ポインタにより連鎖される。そしてデータテーブ
ル5.の同長連結ポインタ部M1には連鎖の末尾を示す
「0」を格納しておく。
またデータテーブル51は下位に文字列が異なりしかも
同長連結ポインタで連鎖されないデータテーブル5□が
存在するのでこれを異長連結ポインタで連結する。また
データテーブル52は下位に文字列が異なりしかも同長
連結ポインタで連鎖されないデータテーブル53が存在
するのでこれを異長連結ポインタで連結する。またデー
タテーブル53〜56の異長連結ポインタ部M2にはそ
のような条件を満たすデータテーブルが存在しないこと
を示す値、例えば「0」を格納しておく。
以上によりデータテーブル5、〜56は、文字列長が「
7」の連鎖と、文字列長が「6」の連鎖と、文字列長が
異なる連鎖の3つの連鎖構造を成して登録されることに
なる。
またデータテーブルの相違情報部M4にはデータテーブ
ルが格納する文字列と、そのデータテーブルを同長連結
ポインタで連結するデータテーブルが格納する文字列が
、先頭文字から何文字目で初めて異なるかを示す文字番
号が格納される。例えば文字列に対する文字番号を先頭
文字から順にrO,1,2,3,・・・」とすると、デ
ータテーブル5.の文字列r abedexy Jとこ
のデータテーブル51に同長連結ポインタで連鎖するデ
ータテーブル54の文字列r abedexy」とは先
頭より7文字目がryJとr w Jで異なるので文字
番号「6」をデータテーブル54の相違情報部M4に格
納する。またデータテーブル53の文字列r abcd
eν」とこのデータテーブル53に同長連結ポインタで
連鎖するデータテーブル5.の文字列r abcdev
Jとは先頭より6文字目がrwJと「v」で異なるので
文字番号「5」をデータテーブル5.の相違情報部M4
に格納する。さらにデータテーブル54の文字列r a
bedexy」とこのデータテーブル54に同長連結ポ
インタで連鎖するデータテーブル56の文字列rabc
devx Jとは先頭より6文字目がrxJとr w 
Jで異なるので文字番号「5」をデータテーブル56の
相違情報部M4に格納する。
また同長連結ポインタで連結されていないデータテーブ
ル51,5゜、53の相違情報部M4にはrOJが格納
される。
従って文字列レジスタ1に格納されている文字列「ab
cdevx Jが格納されているデータテーブル56を
検索する場合にそのデータテーブル56が最下位にあっ
ても、検索はデータテーブル51→54→56の順に行
われ3つ目のデータテーブル検索で見付けることができ
る。
すなわちデータテーブル51においては文字列長レジス
タ2の値「7」と文字列長部M3の値「7」の一致が検
出され、続いて相違情報レジスタ6の値「0」と相違情
報部M4の値「0」の一致が検出され、文字列レジスタ
1の文字列r abcdewx Jと文字列部M、の文
字列rabcdexy Jが1文字ずつ比較される。そ
して6文字目においてr w Jと「x」の違いが検出
され、相違情報レジスタ6に文字番号の「5」がセット
される。
この状態でデータテーブル51の同長連結ポインタ部M
1により次の検査対象としてデータテーブル54が選択
される。
そしてデータテーブル54においては直ちに相違情報レ
ジスタ6の値「5」と相違情報部M4の値「6」の比較
が行われ、この両値は一致していないので直ちにデータ
テーブル54の同長連結ポインタ部M1により次の検査
対象としてデータテーブル56が選択される。
そしてデータテーブル56においては直ちに相違情報レ
ジスタ6の値「5」と相違情報部M4の値「5」の比較
が行われ、この両値は一致しているので続いて文字列レ
ジスタ1の文字列[abcdewx Jと文字列部M、
の文字列r abedevx Jを相違情報レジスタ6
の値「5」に基づいて6文字目、すなわち「W」から1
文字ずつ比較される。
そして6文字目がrwJとrWJて一致しているので続
いて7文字目が比較され、7文字目もrxJとrxJで
一致しているのでデータテーブル56が検索すべきテー
ブルであると判断される。
こうしてデータテーブル56のデータ部M6がアクセス
されるようになる。
このように先ず文字列長を比較し、一致していれば同一
文字列長の連鎖をたどり、しかも2つ目以降に検索され
るデータテーブルについては相違情報レジスタ6の値と
相違情報部M4の値を比較し、不一致であれば次の連鎖
をたどり、また一致していれば相違情報レジスタ6の値
に基づいて前の比較時に異なった文字番号から比較する
ようにしているので、検索テーブル数を減らすことがで
きるとともに各テーブルにおける検索時間を短縮でき、
従って検索処理に要する時間を大幅に短縮できて検索効
率を向上することができる。
また文字列r abedevJが格納されているデータ
テーブル5.を検索する場合はデータテーブル51→5
2→53→55の順に行われ4つ目のデータテーブル検
索で見付けることができる。
すなわちデータテーブル51においては文字列長レジス
タ2の値「6」と文字列長部M3の値「7」の比較によ
り不一致が検出されるので、データテーブル51の異長
連結ポインタ部M2により次の検査対象としてデータテ
ーブル52か選択される。
そしてデータテーブル52においても先ず文字列長レジ
スタ2の値「6」と文字列長部M3の値「5」の比較が
行われ、やはり不一致が検出されてデータテーブル5□
の異長連結ポインタ部M2により次の検査対象としてデ
ータテーブル53か選択される。
そしてデータテーブル53においても先ず文字列長レジ
スタ2の値「6」と文字列長部M3の値「6」の比較が
行われる。今度は一致しているので続いて相違情報レジ
スタ6の値「0」と相違情報部M4の値「0」の比較が
行われ、これも一致しているので続いて文字列レジスタ
1の文字列「abcdevjと文字列部M、の文字列r
 abedevJか1文字ずつ比較される。そして6文
字目においてrvJとr w Jの違いが検出され、相
違情報レジスタ6に文字番号の「5」がセットされる。
そして今度はデータテーブル5.の同長連結ポインタ部
M1により次の検査対象としてデータテーブル55が選
択される。
そしてデータテーブル55においては直ちに相違情報レ
ジスタ6の値「5」と相違情報部M4の値「5」の比較
が行われ、この両値は一致しているので続いて文字列レ
ジスタ1の文字列r abcdevJと文字列部M、の
文字列「abcde■」を相違情報レジスタ6の値「5
」に基づいて6文字目か比較される。そして6文字目が
rvJとrvJで一致しているのでこのデータテーブル
5.が検索すべきテーブルであると判断される。
こうしてデータテーブル55のデータ部M6がアクセス
されるようになる。
このように最初のデータテーブルの文字列長が異なって
いても異長連結ポインタによって同一文字列長のデータ
テーブルが見付かるまで異長連結の連鎖をたどり、同一
文字列長のデータテーブルが検索されると以降は同長連
結の連鎖をたどることになるので、この場合においても
検索テーブル数を減らすことができるとともに各テーブ
ルにおける検索時間を短縮でき、従って検索処理に要す
る時間を短縮できて検索効率を向上することかできる。
[発明の効果] 以上詳述したように本発明によれば、データテーブルの
検索処理時間を短縮でき、検索効率を向上できるデータ
テーブル検索方法を提供できるものである。
【図面の簡単な説明】
図は本発明の実施例を示すもので、第1図は検索過程を
説明するためのブロック図、第2図はデータテーブルの
構成を示す図、第3図は検索処理を示す流れ図である。 1・・・文字列レジスタ、 2・・・文字列長レジスタ、 3・・・ハツシュ関数処理部、 4・・・ハツシュテーブル、 51〜56・・・データテーブル、 6・・・相違情報レジスタ。 出願人代理人 弁理士 鈴江武彦

Claims (1)

    【特許請求の範囲】
  1. ハッシュ関数に基づいて求められたハッシュ値によりハ
    ッシュテーブルを索引し、索引された項により連鎖され
    るデータテーブル群から任意のデータテーブルを検索す
    る場合に、データテーブルにキーとしての文字列自体と
    文字列長を格納した領域を設けるとともに、同一ハッシ
    ュ値に属する複数のデータテーブルのうち文字列長の等
    しいデータテーブルを連結する同長連結ポインタ領域、
    文字列長の異なるデータテーブルを連結する異長連結ポ
    インタ領域及び文字列長の等しいデータテーブル間にお
    いて最初に検索されるデータテーブルに格納された文字
    列と自己の文字列との相違情報を格納した領域を設け、
    検索時においては先ず検索すべき文字列長と等しい文字
    列長を格納したデータテーブルを前記文字列長格納領域
    の情報と異長連結ポインタ領域の情報により検索し、検
    索すべき文字列長と等しい文字列長を格納したデータテ
    ーブルを検索するとそのデータテーブルに格納された文
    字列と検索すべき文字列が一致していればそのデータテ
    ーブルを検索対象テーブルと判断し、またそのデータテ
    ーブルに格納された文字列と検索すべき文字列が不一致
    のときには前記同長連結ポインタ領域の情報による連鎖
    をたどりつつ他のデータテーブルの相違情報格納領域の
    相違情報に基づいて検索すべき文字列の一部とデータテ
    ーブルに格納された文字列の一部のみを比較し、その一
    部が一致していればそのデータテーブルを検索対象テー
    ブルと判断することを特徴とするデータテーブル検索方
    法。
JP2218230A 1990-08-21 1990-08-21 データテーブル検索方法 Pending JPH04101271A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2218230A JPH04101271A (ja) 1990-08-21 1990-08-21 データテーブル検索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2218230A JPH04101271A (ja) 1990-08-21 1990-08-21 データテーブル検索方法

Publications (1)

Publication Number Publication Date
JPH04101271A true JPH04101271A (ja) 1992-04-02

Family

ID=16716650

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2218230A Pending JPH04101271A (ja) 1990-08-21 1990-08-21 データテーブル検索方法

Country Status (1)

Country Link
JP (1) JPH04101271A (ja)

Similar Documents

Publication Publication Date Title
US5819291A (en) Matching new customer records to existing customer records in a large business database using hash key
US6782380B1 (en) Method and system for indexing and searching contents of extensible mark-up language (XML) documents
US8266152B2 (en) Hashed indexing
US5721899A (en) Retrieval apparatus using compressed trie node and retrieval method thereof
US7370048B2 (en) File storage method and apparatus
US10474652B2 (en) Optimizing wide data-type storage and analysis of data in a column store database
US8073874B2 (en) Bit string searching apparatus, searching method, and program
US5664184A (en) Method and apparatus for implementing Q-trees
KR940003700B1 (ko) 검색방법 및 그 장치
US7062499B2 (en) Enhanced multiway radix tree and related methods
EP3289484B1 (en) Method and database computer system for performing a database query using a bitmap index
CN115757629A (zh) 多源异构数据增量同步方法、系统、存储介质和电子设备
CN108549666B (zh) 一种数据表的排序方法、装置、设备及存储介质
JPH04101271A (ja) データテーブル検索方法
US6260037B1 (en) Method and computer program product for implementing skip key processing for database grouping queries involving aggregate operations by using one or more indices
US7774347B2 (en) Vortex searching
US5261090A (en) Search arrangement adapted for data range detection
JP2003030040A (ja) オブジェクトデータベースシステムの複数ハッシュインデックスおよび非ユニークインデックス管理方式
JPS59146339A (ja) 情報検索方式
JPS6340938A (ja) 情報検索における同意語検索方式
JPS583032A (ja) 木構造アクセス処理方式
JP2922025B2 (ja) 名前検索方法
JP2690175B2 (ja) 不等長符号復号回路
CN114020800A (zh) 一种面向大数据的数据处理方法和装置
JPH0546666A (ja) 情報検索装置