JPH04101272A - データエレメント検索方法 - Google Patents
データエレメント検索方法Info
- Publication number
- JPH04101272A JPH04101272A JP2218231A JP21823190A JPH04101272A JP H04101272 A JPH04101272 A JP H04101272A JP 2218231 A JP2218231 A JP 2218231A JP 21823190 A JP21823190 A JP 21823190A JP H04101272 A JPH04101272 A JP H04101272A
- Authority
- JP
- Japan
- Prior art keywords
- hash
- data element
- key
- entry
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 15
- 230000006870 function Effects 0.000 claims abstract description 26
- 235000014121 butter Nutrition 0.000 abstract 2
- 238000010586 diagram Methods 0.000 description 3
- 241001137256 Cyanocitta cristata Species 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[産業上の利用分野コ
本発明は、例えば情報管理システムにおいてデータアク
セス等のためにハツシュ関数を使用してデータエレメン
ト群から所望のデータエレメントを検索する方法に関す
る。
セス等のためにハツシュ関数を使用してデータエレメン
ト群から所望のデータエレメントを検索する方法に関す
る。
[従来の技術]
データの登録及び検索を効率よく行う方法としてハツシ
ュ方式か知られている。このハツシュ方式はキーと呼ば
れる値(例えば文字列)か与えられ、そのキー値と対応
づけられたデータを検索する場合に予め用意されている
ハツシュ関数を用いてキー値に対応するハツシュ値を求
める。そしてこのハツシュ値に対応するハツシュテーブ
ル内のエントリー(事項)を参照することにより、目的
のデータの検索を行うようにしている。
ュ方式か知られている。このハツシュ方式はキーと呼ば
れる値(例えば文字列)か与えられ、そのキー値と対応
づけられたデータを検索する場合に予め用意されている
ハツシュ関数を用いてキー値に対応するハツシュ値を求
める。そしてこのハツシュ値に対応するハツシュテーブ
ル内のエントリー(事項)を参照することにより、目的
のデータの検索を行うようにしている。
しかしハツシュテーブルでは異なるキー、例えばrmo
usejとrdogjのハツシュ値が等しくなる、いわ
ゆるハツシュ値の衝突が発生することがあり、この時に
は同じハツシュ値をもつデータを対象にして、キー値を
もとにして目的のデータの検索を行わなければならない
。このため検索時間が長くなり、処理効率が低下する問
題がある。
usejとrdogjのハツシュ値が等しくなる、いわ
ゆるハツシュ値の衝突が発生することがあり、この時に
は同じハツシュ値をもつデータを対象にして、キー値を
もとにして目的のデータの検索を行わなければならない
。このため検索時間が長くなり、処理効率が低下する問
題がある。
このようなことから従来においては、例えば特開明60
−254254号公報に見られるように、それぞれ異な
るハツシュ関数を有する複数個のハツシュテーブルを設
け、1つのキーに該当する内容に対応した情報を各ハツ
シュテーブルに格納すると共にその内容をメモリに格納
し、各ハツシュテーブル参照時においてその情報が比較
され、共通する情報かすべてハツシュテーブルに存在す
れば該情報に対応する内容がメモリから読み出され、共
通する情報がすべてのハツシュテーブルに存在しなけれ
ば内容が未登録であると判定する方法が知られている。
−254254号公報に見られるように、それぞれ異な
るハツシュ関数を有する複数個のハツシュテーブルを設
け、1つのキーに該当する内容に対応した情報を各ハツ
シュテーブルに格納すると共にその内容をメモリに格納
し、各ハツシュテーブル参照時においてその情報が比較
され、共通する情報かすべてハツシュテーブルに存在す
れば該情報に対応する内容がメモリから読み出され、共
通する情報がすべてのハツシュテーブルに存在しなけれ
ば内容が未登録であると判定する方法が知られている。
[発明が解決しようとする課題]
しかしこのような従来方法では構成が複雑化する問題が
あった。
あった。
そこで本発明は、ハツシュ値の衝突を極力防止できて検
索時間の短縮、すなわち処理効率の向上を図ることがで
き、しかも構成が簡単となるデータエレメント検索方法
を提供しようとするものである。
索時間の短縮、すなわち処理効率の向上を図ることがで
き、しかも構成が簡単となるデータエレメント検索方法
を提供しようとするものである。
[課題を解決するための手段と作用コ
本発明は、キーにハツシュ関数を作用させてハツシュ値
を求め、そのハツシュ値によってハツシュテーブルのエ
ントリーを索引し、そのエントリーにより少なくともキ
ー部、データ部、ポインタ部からなり、ポインタによっ
て連結されたデータエレメント群の連鎖をたどって任意
のデータエレメントを検索するデータエレメント検索方
法において、キーに対して1対のハツシュ関数を作用さ
せてそれぞれハツシュ値を求め、その各ハツシュ値を2
次元構成のハツシュテーブルのインデックス値として作
用させてハツシュテーブルのエントリーを索引すること
にある。
を求め、そのハツシュ値によってハツシュテーブルのエ
ントリーを索引し、そのエントリーにより少なくともキ
ー部、データ部、ポインタ部からなり、ポインタによっ
て連結されたデータエレメント群の連鎖をたどって任意
のデータエレメントを検索するデータエレメント検索方
法において、キーに対して1対のハツシュ関数を作用さ
せてそれぞれハツシュ値を求め、その各ハツシュ値を2
次元構成のハツシュテーブルのインデックス値として作
用させてハツシュテーブルのエントリーを索引すること
にある。
[実施例〕
以下、本発明の実施例を図面を参照して説明する。
第1図において1.2はそれぞれ異なるハツシュ関数A
、Bをもったハツシュ関数処理部で、入力されるキーを
この各ハツシュ関数処理部1.2のハツシュ関数A、B
に基づいて処理しそれぞれハツシュ値を求めるようにし
ている。
、Bをもったハツシュ関数処理部で、入力されるキーを
この各ハツシュ関数処理部1.2のハツシュ関数A、B
に基づいて処理しそれぞれハツシュ値を求めるようにし
ている。
3は記憶装置で、この記憶装置3には2次元のハツシュ
テーブル4、複数のデータエレメント5゜6.7が設け
られている。前記各データエレメント5,6.7は例え
ば第2図に示すようにキー部M1 データ部M2、ポイ
ンタ部M3で構成されている。前記キー部M1にはデー
タアクセスの際に使用されキーか格納され、前記データ
部M2にはアクセスされるデータが格納され、前記ポイ
ンタ部M3には連鎖(シノニムチエイン)するときの次
のデータエレメントへのポインタが格納されている。な
お、連鎖するデータエレメントが無いときにはr NU
LLJが格納されるようになっている。
テーブル4、複数のデータエレメント5゜6.7が設け
られている。前記各データエレメント5,6.7は例え
ば第2図に示すようにキー部M1 データ部M2、ポイ
ンタ部M3で構成されている。前記キー部M1にはデー
タアクセスの際に使用されキーか格納され、前記データ
部M2にはアクセスされるデータが格納され、前記ポイ
ンタ部M3には連鎖(シノニムチエイン)するときの次
のデータエレメントへのポインタが格納されている。な
お、連鎖するデータエレメントが無いときにはr NU
LLJが格納されるようになっている。
前記ハツシュテーブル4は前記各ハツシュ関数処理部1
.2により求められる各ハツシュ値0〜n・・・ 0〜
m・・・をそれぞれインデックス値としてエントリーが
索引されるようになっている。例えばハツシュ関数処理
部1により求められるハツシュ値が「3」で、ハツシュ
関数処理部2により求められるハツシュ値が「3」のと
きには図中斜線で示すエントリーENか索引されること
になる。
.2により求められる各ハツシュ値0〜n・・・ 0〜
m・・・をそれぞれインデックス値としてエントリーが
索引されるようになっている。例えばハツシュ関数処理
部1により求められるハツシュ値が「3」で、ハツシュ
関数処理部2により求められるハツシュ値が「3」のと
きには図中斜線で示すエントリーENか索引されること
になる。
またアドレスレジスタ8が設けられている。
そしてデータエレメントを登録する場合は第3図に示す
流れ図に基づく処理か行われる。
流れ図に基づく処理か行われる。
今仮にキーとデータをそれぞれr Bluejay J
とrbirdJとすると、最初にキー及びデータにより
前記記憶装置3内にデータエレメントを作成する。
とrbirdJとすると、最初にキー及びデータにより
前記記憶装置3内にデータエレメントを作成する。
そしてデータエレメントのポインタ部には最初はr N
ULLJを書き込む。
ULLJを書き込む。
次にキーrBluejay Jに対して前記各ハツシュ
関数処理部1,2のハツシュ関数AとBを作用させてそ
れぞれのハツシュ値を求める。そしてこの各ハツシュ値
をもとに前記ハツシュテーブル4のエントリーを索引す
る。ここで索引したエントリーがr FFPFJである
か否かをチエツクする。
関数処理部1,2のハツシュ関数AとBを作用させてそ
れぞれのハツシュ値を求める。そしてこの各ハツシュ値
をもとに前記ハツシュテーブル4のエントリーを索引す
る。ここで索引したエントリーがr FFPFJである
か否かをチエツクする。
前記ハツシュテーブル4はデータが全く登録されていな
いときには各エントリーにはr FFFPJが格納され
ている。
いときには各エントリーにはr FFFPJが格納され
ている。
そしてチエツクの結果エントリーがr FFpH”Jで
あれば最初に作成したデータエレメントをボイントする
ポインタをそのエントリーに格納し登録を終了する。
あれば最初に作成したデータエレメントをボイントする
ポインタをそのエントリーに格納し登録を終了する。
またチエツクの結果エントリーがr PFPPJで無け
れば連鎖を作成することになる。例えば第5図に示すよ
うに連鎖を構成する前はハツシュテーブル4のエントリ
ーEN、は実線で示すようにデータエレメントDE、を
ポイントしているとすると、このデータエレメントDE
、と新規登録するデータエレメントDE2との連鎖を構
成するには、先ず最初にハツシュテーブル4のエントリ
ーEN、の内容を図中点線で示すようにアドレスレジス
タ8に格納する。
れば連鎖を作成することになる。例えば第5図に示すよ
うに連鎖を構成する前はハツシュテーブル4のエントリ
ーEN、は実線で示すようにデータエレメントDE、を
ポイントしているとすると、このデータエレメントDE
、と新規登録するデータエレメントDE2との連鎖を構
成するには、先ず最初にハツシュテーブル4のエントリ
ーEN、の内容を図中点線で示すようにアドレスレジス
タ8に格納する。
次にハツシュテーブル4のエントリーEN、(7)内容
を新規作成したデータエレメントDE2をポイントする
ポインタに書き替える。これにより第6図に示すように
ハツシュテーブル4のエントリーEN、はデータエレメ
ントDE2をポイントするようになる。
を新規作成したデータエレメントDE2をポイントする
ポインタに書き替える。これにより第6図に示すように
ハツシュテーブル4のエントリーEN、はデータエレメ
ントDE2をポイントするようになる。
次に新規作成したデータエレメントDE2のポインタ部
に第7図に点線で示すようにアドレスレジスタ8の内容
を書き込む。これによりデータエレメントDE2のポイ
ンタ部はデータエレメントDE、をポイントするように
なり連鎖が構成されることになる。
に第7図に点線で示すようにアドレスレジスタ8の内容
を書き込む。これによりデータエレメントDE2のポイ
ンタ部はデータエレメントDE、をポイントするように
なり連鎖が構成されることになる。
またデータエレメントを検索する場合は第4図に示す流
れ図に基づく処理が行われる。
れ図に基づく処理が行われる。
これはキーが入力されると、このキーに対して前記各ハ
ツシュ関数処理部1,2のノ\ツシュ関数AとBを作用
させてそれぞれのハツシュ値を求める。そしてこの各ハ
ツシュ値をもとに前記ハツシュテーブル4のエントリー
を索引する。そして索引したエントリーがr PFPP
Jであるか否かをチエツクする。
ツシュ関数処理部1,2のノ\ツシュ関数AとBを作用
させてそれぞれのハツシュ値を求める。そしてこの各ハ
ツシュ値をもとに前記ハツシュテーブル4のエントリー
を索引する。そして索引したエントリーがr PFPP
Jであるか否かをチエツクする。
そしてチエツクの結果エントリーがr PPFFJてあ
ればキーに対応したデータエレメントが登録されていな
いと判断して検索を終了する。
ればキーに対応したデータエレメントが登録されていな
いと判断して検索を終了する。
またチエツクの結果エントリーがr FFFFJで無け
ればこのエントリーの内容をアドレスレジスタ8に格納
する。
ればこのエントリーの内容をアドレスレジスタ8に格納
する。
そしてアドレスレジスタ8で指定されるデータエレメン
トのキー部と入力されたキーを比較する。
トのキー部と入力されたキーを比較する。
ここで両キーが一致するとそのデータエレメントが所望
のデータエレメントであるとしてそのデータ部をアクセ
スすることになる。
のデータエレメントであるとしてそのデータ部をアクセ
スすることになる。
また不一致のときはそのデータエレメントのポインタ部
を参照し、そのポインタ部がr NULLJ以外であれ
ばそのポインタ部の内容をアドレスレジスタ8に格納す
る。そしてアドレスレジスタ8で指定されるデータエレ
メントに対して前記と同様の方法でキー比較を行う。こ
うして連鎖をたどり所望のデータエレメントを検索する
。
を参照し、そのポインタ部がr NULLJ以外であれ
ばそのポインタ部の内容をアドレスレジスタ8に格納す
る。そしてアドレスレジスタ8で指定されるデータエレ
メントに対して前記と同様の方法でキー比較を行う。こ
うして連鎖をたどり所望のデータエレメントを検索する
。
また所望のデータエレメントが検索される前にポインタ
部がr NULLJであることが検出されると所望のデ
ータエレメントが登録されていないと判断して検索を終
了する。
部がr NULLJであることが検出されると所望のデ
ータエレメントが登録されていないと判断して検索を終
了する。
このような構成の本実施例においては、今ハツシュテー
ブル4とデータエレメントDE3゜DE4が第8図の関
係になっている状態でキーr butterJが入力さ
れると、このキーr butterJに対して各ハツシ
ュ関数処理部1.2のハツシュ関数AとBを作用させて
それぞれのハツシュ値を求める。そしてこの各ハツシュ
値をもとに前記ハツシュテーブル4のエントリーEN2
を索引する。
ブル4とデータエレメントDE3゜DE4が第8図の関
係になっている状態でキーr butterJが入力さ
れると、このキーr butterJに対して各ハツシ
ュ関数処理部1.2のハツシュ関数AとBを作用させて
それぞれのハツシュ値を求める。そしてこの各ハツシュ
値をもとに前記ハツシュテーブル4のエントリーEN2
を索引する。
このエントリーEN2にはデータエレメントDE3をポ
イントする内容が格納されているので、このエントリー
EN2の内容かアドレスレジスタ8に格納される。そし
てこのアドレスレジスタ8によって指定されるデータエ
レメントDE3のキー部rtableJと入力されたキ
ーr butterJか比較される。
イントする内容が格納されているので、このエントリー
EN2の内容かアドレスレジスタ8に格納される。そし
てこのアドレスレジスタ8によって指定されるデータエ
レメントDE3のキー部rtableJと入力されたキ
ーr butterJか比較される。
その結果不一致か検出されるのでデータエレメントDE
、のポインタ部により連鎖されているデータエレメント
DE、か次の検査対象として指定される。そしてデータ
エレメントDE4のキー部r butterJと入力さ
れたキーr butterJが比較される。
、のポインタ部により連鎖されているデータエレメント
DE、か次の検査対象として指定される。そしてデータ
エレメントDE4のキー部r butterJと入力さ
れたキーr butterJが比較される。
その結果一致が検出されるのてこのデータエレメントD
E4が検索すべきデータエレメントであると判断しその
データ部からデータrmilkJをアクセスするように
なる。
E4が検索すべきデータエレメントであると判断しその
データ部からデータrmilkJをアクセスするように
なる。
このように1対のハツシュ関数A、Bを使用して入力さ
れるキーからそれぞれハツシュ値を求め、その各ハツシ
ュ値をそれぞれインデックス値として2次元のハツシュ
テーブル4を索引してエントリーを参照するようにして
いるので、ハツシュテーブルにおいてハツシュ値が衝突
する確率は極めて少なくなり、従って各種データを検索
場合に検索に要する時間を短縮でき処理効率を向上させ
ることができる。
れるキーからそれぞれハツシュ値を求め、その各ハツシ
ュ値をそれぞれインデックス値として2次元のハツシュ
テーブル4を索引してエントリーを参照するようにして
いるので、ハツシュテーブルにおいてハツシュ値が衝突
する確率は極めて少なくなり、従って各種データを検索
場合に検索に要する時間を短縮でき処理効率を向上させ
ることができる。
しかも1対のハツシュ関数A、Bと2次元のハツシュテ
ーブル4を使用したのみ構成であり、構成は簡単である
。
ーブル4を使用したのみ構成であり、構成は簡単である
。
[発明の効果]
以上詳述したように本発明によれば、ハツシュ値の衝突
を極力防止できて検索時間の短縮、すなわち処理効率の
向上を図ることができ、しがも構成が簡単となるデータ
エレメント検索方法を提供できるものである。
を極力防止できて検索時間の短縮、すなわち処理効率の
向上を図ることができ、しがも構成が簡単となるデータ
エレメント検索方法を提供できるものである。
図は本発明の実施例を示すもので、第1図は構成を示す
ブロック図、第2図はデータエレメントの構成を示す図
、第3図はデータエレメントの登録処理を示す流れ図、
第4図はデータエレメントの検索処理を示す流れ図、第
5図乃至第7図はデータエレメントの登録時の処理過程
を説明するための図、第8図はデータエレメントの検索
時のハツシュテーブルとデータエレメントとの関係の一
例を示す図である。 1.2・・・ハツシュ関数処理部、 4・・・2次元ハツシュテーブル、 5〜7・・・データエレメント、 8・・・アドレスレジスタ。 出願人代理人 弁理士 鈴江武彦 第 図 第 図 第 図 キー人力 第 図 第 図 第 図
ブロック図、第2図はデータエレメントの構成を示す図
、第3図はデータエレメントの登録処理を示す流れ図、
第4図はデータエレメントの検索処理を示す流れ図、第
5図乃至第7図はデータエレメントの登録時の処理過程
を説明するための図、第8図はデータエレメントの検索
時のハツシュテーブルとデータエレメントとの関係の一
例を示す図である。 1.2・・・ハツシュ関数処理部、 4・・・2次元ハツシュテーブル、 5〜7・・・データエレメント、 8・・・アドレスレジスタ。 出願人代理人 弁理士 鈴江武彦 第 図 第 図 第 図 キー人力 第 図 第 図 第 図
Claims (1)
- キーにハッシュ関数を作用させてハッシュ値を求め、そ
のハッシュ値によってハッシュテーブルのエントリーを
索引し、そのエントリーにより少なくともキー部、デー
タ部、ポインタ部からなり、ポインタによって連結され
たデータエレメント群の連鎖をたどって任意のデータエ
レメントを検索するデータエレメント検索方法において
、キーに対して1対のハッシュ関数を作用させてそれぞ
れハッシュ値を求め、その各ハッシュ値を2次元構成の
ハッシュテーブルのインデックス値として作用させてハ
ッシュテーブルのエントリーを索引することを特徴とす
るデータエレメント検索方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2218231A JPH04101272A (ja) | 1990-08-21 | 1990-08-21 | データエレメント検索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2218231A JPH04101272A (ja) | 1990-08-21 | 1990-08-21 | データエレメント検索方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04101272A true JPH04101272A (ja) | 1992-04-02 |
Family
ID=16716665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2218231A Pending JPH04101272A (ja) | 1990-08-21 | 1990-08-21 | データエレメント検索方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04101272A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017519433A (ja) * | 2014-05-30 | 2017-07-13 | クアルコム,インコーポレイテッド | パケット処理のためのマルチテーブルハッシュベースのルックアップ |
US11144236B2 (en) | 2017-01-19 | 2021-10-12 | Fujitsu Limited | Information processing apparatus, information processing method, and non-transitory computer-readable storage medium for storing program |
-
1990
- 1990-08-21 JP JP2218231A patent/JPH04101272A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017519433A (ja) * | 2014-05-30 | 2017-07-13 | クアルコム,インコーポレイテッド | パケット処理のためのマルチテーブルハッシュベースのルックアップ |
US11144236B2 (en) | 2017-01-19 | 2021-10-12 | Fujitsu Limited | Information processing apparatus, information processing method, and non-transitory computer-readable storage medium for storing program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5333318A (en) | Creating and searching a quad linked list in a trunked communication system | |
US10678784B2 (en) | Dynamic column synopsis for analytical databases | |
US20140101132A1 (en) | Swapping expected and candidate affinities in a query plan cache | |
US8010568B2 (en) | Enforcing constraints from a parent table to a child table | |
CN112860802B (zh) | 数据库操作语句的处理方法、装置及电子设备 | |
CN111125216B (zh) | 数据导入Phoenix的方法及装置 | |
JPH04101272A (ja) | データエレメント検索方法 | |
JPH0644309A (ja) | データベース管理方式 | |
US7290085B2 (en) | Method and system for flexible and efficient protocol table implementation | |
CN110888870A (zh) | 数据存储表的查询方法、分区服务器及电子设备 | |
US20230297574A1 (en) | Query cached filter | |
JPH04112253A (ja) | 多層バッファを用いるデータアクセス方法 | |
JPS633351A (ja) | バツフア検索制御方式 | |
JPH0456344B2 (ja) | ||
JPS6143338A (ja) | 連想技術を使用して稀薄なデータベースをサーチする方法 | |
KR20220059072A (ko) | 블록 체인 기반 서버리스 서비스 개발 장치 및 방법 | |
JP2507399B2 (ja) | デ―タベ―ス装置 | |
CN116628037A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN117520383A (zh) | 查询优化方法、装置及设备 | |
CN116821921A (zh) | 访问文件的方法、装置、系统及存储介质 | |
JPH06332799A (ja) | 木情報格納方式 | |
CN110895531A (zh) | 数据存储表的数据写入方法、分区服务器及电子设备 | |
JPH04174071A (ja) | ハッシュ処理装置 | |
JPS63206837A (ja) | 区分デ−タセツトアクセス方式 | |
JPH0667968A (ja) | オブジェクト指向におけるデータ管理方式 |