JPH0635968A - データベースの検索方法および検索装置 - Google Patents

データベースの検索方法および検索装置

Info

Publication number
JPH0635968A
JPH0635968A JP4188175A JP18817592A JPH0635968A JP H0635968 A JPH0635968 A JP H0635968A JP 4188175 A JP4188175 A JP 4188175A JP 18817592 A JP18817592 A JP 18817592A JP H0635968 A JPH0635968 A JP H0635968A
Authority
JP
Japan
Prior art keywords
data
total number
search
database
hash table
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.)
Withdrawn
Application number
JP4188175A
Other languages
English (en)
Inventor
Yoshihiro Yasue
良弘 泰江
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 JP4188175A priority Critical patent/JPH0635968A/ja
Publication of JPH0635968A publication Critical patent/JPH0635968A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【目的】 データの数、テーブル要素の大きさ、テーブ
ルの総数、テーブルの変化に係わりなく、データの検索
を短時間で実行しえる高速検索システムを提供するもの
である。 【構成】 テーブル総数2とテーブル要素3を含むデー
タベース1を構成する第1の工程、該データベース1に
格納されている該テーブル総数2に比例する大きさのハ
ッシュテーブルを作成する第2の工程、該ハッシュテー
ブルを用いてテーブル要素3を検索する第3の工程とか
ら構成されているデータベースの高速検索システム。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、データベースの検索技
術に関するものであり、更に詳しくは、テーブル要素を
用いてデータを高速演算処理し、高速の検索処理を実行
しうるデータベースの検索技術に関するものである。
【0002】
【従来の技術】近年のCADシステムを含んだ、高速、
大量データ処理システムに於いては、大規模化するデー
タベースを処理する為のターンアランドタイムを改善す
る事が要求されて来ている。その為には、例えば該CA
Dシステム等に於いては、参照するデータベースのテー
ブル要素を高速に検索する必要が有った。
【0003】即ち、従来に於けるデータベースの高速検
索方法に於いては、例えばハッシュテーブルを作成し
て、データベースのテーブルを細分化する事によって、
テーブル要素の高速検索を実現してきた。此処で、従来
に於ける高速検索方法に於いては、大量の検索データの
中から必要なデータを検索するのに、所定の記憶手段に
記憶されている全データを最初から順々に比較検索する
方法を用いており、係る検索方法では、所望のデータを
検索に時間が係るので、格納されているデータの数が多
くなると、それだけ検索時間を必要とすることになるの
で、実質的にリアルタイムでの検索処理が不可能となる
と言う問題が有った。
【0004】その為、係る従来の検索方法を改善する為
の一つの検索方法としてハッシュテーブル方式が提案さ
れている。ハッシュテーブルとは、大量の検索データの
内から、例えば比較的関連性のあるデータを一つのグル
ープとして把握して、係るグループを複数個形成させ、
そのグループ毎にそのデータを記憶させる様にするもの
で有って、換言すれば、全データを複数個のグループに
分割して記憶させると同時に、係る各グループにそれぞ
れ個別のハッシュ値、つまりポインタ値、或いはアドレ
ス値に相当するものを付与しておく。
【0005】一方、該各グループ内に分割格納された各
データ間の識別は、予め、それぞれのデータ毎に別個に
サブポインタ、或いはサブアドレスと称される表示コー
ドを与えておくものである。即ち、データの大きさ、或
いは内容等をキーとして、所定の関係を持って、幾つか
のグループに各データを分割して格納すると同時に、該
各グループ毎の先頭テーブルを指すハッシュ値、つまり
ポインタ値とをテーブル化したデータ表をハッシュテー
ブルと称している。
【0006】該ハッシュテーブルの具体的構成を図4を
参照しながら説明すると、ハッシュテーブルとは、図4
に示されている通り、テーブルを、被検索データ、即ち
テーブル要素の大きさをキーとして幾つかのグループ
(G1、G2、G3、G4、G5)に分け、各グループ
毎に当該グループの先頭を指すポインタ(P1、P2、
P3、P4、P5)をそれぞれ配分させておく。
【0007】上記の各ポインタが代表する各グループ
は、必要に応じて、更に当該グループに区分され、格納
される複数個のデータを格納しうる複数個のテーブル内
容格納部D1、D2・・・ をそれぞれ含んでおり、各
テーブル内容格納部のそれぞれは、サブポインタSP
1、SP2・・・とテーブル内容T1、T2・・・が対
となって構成されている。
【0008】尚、それぞれのグループに於いて、該ポイ
ンタP1、P2、P3、P4、P5に所定のグループが
存在していない場合には、当該グループに例えば、それ
以下にデータが存在していない事を表示する“NUL
L”の記号が付されているものである。又、該それぞれ
のグループに複数個のテーブル内容格納部D1、D2・
・・をそれぞれ含んでいる場合に、当該最終テーブル内
容格納部以降に別のテーブル内容格納部が存在しない場
合にも、それ以下にデータが存在していない事を表示す
る“NULL”の記号が付されているものである。
【0009】上記のハッシュテーブルに於ける該各グル
ープ内に於けるテーブル内容格納部の数は、任意であっ
てテーブル要素の数に応じて変化するものである。従っ
て、今、所定のデータを大量の検索データの中から検索
したい場合が発生した時には、先ず当該検索されようと
する被検索データを該ハッシュテーブルの中から、該被
検索データが属するグループをハッシュ値即ち、ポイン
タを利用して検索し、次いで、該検索された当該グルー
プの中から、該サブポインタを用いて、シノニム(異な
るデータが同時に検索されてしまう状態)を回避して、
適切な被検索データを正確に然かも短時間に検索しよう
とする方法で有った。
【0010】従って、上記したハッシュテーブル方式に
於いては、特に特定のグループ内に於けるシノニムを出
来るだけ発生しない様にサブポインタ、或いはサブアド
レスを設定しておく事が望ましい。又、上記したハッシ
ュテーブル検索方式に於いては、各グループに付与され
るポインタを通常のアドレスコードに対して、大幅に圧
縮したものを使用する事が出来るので、検索速度を著し
く短縮する事が出来るのである。
【0011】此処で、上記したハッシュテーブル検索方
式の検索アルゴリズムに付いて図5を参照しながら説明
する。該アルゴリズムをスタートさせる前に、ハッシュ
テーブルを作成する工程が、当然ながら存在する。係る
ハッシュテーブル作成工程は、例えば予め当該ハッシュ
テーブルの大きさが定められており、又検索対象となっ
ている全データ数、即ちテーブル要素の数も決められて
いるとすると、該ハッシュテーブルに於けるグループの
数、即ちポインタの数が固定されているので、先ずそれ
ぞれのグループに平均として、どの程度のテーブル要素
が割当られるかが決定され、次いで該総データ数のそれ
ぞれをどのグループに割り当てるかの操作を実行して、
グループ化を行うが、その一例としては、総テーブル要
素数を該ポインタ数で割算して、その余りの値が同じも
のを同一のグループに区分して同一のポインタを付与す
る様にしてグループ化を行う方法がある。
【0012】上記の様な方法でハッシュテーブルを作成
しておき、以下の検索操作を実行するものである。スタ
ート後、ステップ(1)に於いて、検索したいデータの
値と一致しているグループを持つハッシュテーブルのポ
イントを検索する。尚、被検索データのそれぞれは、上
記したと同様の方法で、ポインタが付与されているもの
である。
【0013】ステップ(2)に於いて、当該被検索デー
タのポインタ値と該ハッシュテーブルのポインタ値と一
致するか否かを判断し、一致するものがなければ、スタ
ートに戻り、一致するポインタが見つかれば、当該ポイ
ンタが代表しているグループのデータ群を呼び出し、ス
テップ(3)に進む。ステップ(3)に於いては、該ハ
ッシュテーブルの選択されたポインタに連結されている
複数個のテーブル内容格納部を順次検索し、被検索デー
タの内容と一致するテーブル内容格納部が有るか否かを
検索する。
【0014】該ステップ(3)でYESで有れば、ステ
ップ(4)に進み、検索したテーブル内容格納部に格納
されているデータを読み出しENDとなるが、該ステッ
プ(3)でNOで有れば、ステップ(5)に進み、検索
しているテーブル内容格納部は、該グループに属する最
後のテーブル内容格納部であるか否を判断し、NOであ
れば、ステップ(6)に進んで、当該グループの該テー
ブル内容格納部に連結されている次のテーブル内容格納
部を検索しステップ(3)に戻り上記の工程を繰り返
す。
【0015】又、該ステップ(5)に於いてYESであ
る場合には、検索すべきデータが当該グループ内に存在
していない事を意味するので、その時点で検索操作を中
止しENDとする事もできるが、オプションとして、ス
テップ(7)に於いて、当該被検索データを該グループ
に連結させ追加処理を行う。つまり、新たにハッシュテ
ーブルに当該被検索データを追加する事になる。
【0016】処で、上記したハッシュテーブルを使用し
たデータ検索方法に於いては、該ハッシュテーブルに連
結されているテーブル要素の大きさ、即ちデータ内容と
検索対象となるテーブル要素の大きさとを順次に比較し
て目的のデータを検索するものであるが、ハッシュテー
ブルの大きさが予め固定されている為、データの数が少
ない場合には、検索範囲が大きすぎて、検索に時間がか
かる事になり、又データの数が大きい場合には、一つの
ポインタが代表するグループのデータサイズが大きくな
り、データ衝突(シノニム)が多発したりしてやはり検
索に時間が係るし検索効率が悪化すると言う問題が存在
していた。
【0017】つまり、係る従来のハッシュテーブル検索
方法に於いては、データの総数が予め見積もられる場合
のみに適用されていると言う欠点が有った。又、テーブ
ルを用いたデータの検索方法の他の例としては、バイナ
リーサーチ方法があり、係る検索方法に於いては、テー
ブル要素をその大きさの順に並びかえてハッシュテーブ
ルを構成しておき、被検索対象データとなるテーブル要
素の大きさと並び換えて構成したテーブルに於けるデー
タの中央値とを比較する。
【0018】そして必要なデータが検索されない場合に
は、その検索範囲を当該中央値よりも大きい値に設定し
てその範囲の中央値と該被検索データの値と比較する。
係る操作を繰り返して、当該検索対象となる被検索デー
タのテーブル要素の大きさとテーブル内に於ける中央値
とを比較して、その大小によって、検索範囲を狭めて行
き、最後に検索対象データを見つける方法である。
【0019】かかる方法に於いては、全ての検索データ
が揃っていて、そのテーブル要素の大きさ順に全てのデ
ータが大きさ順に並んでいる事が必要であるので、デー
タに関するテーブル要素が変化しない場合にのみ利用し
えるものであるので、応用範囲が限られてしまうと言う
欠点が存在している。係るバイナリーサーチ方法の基づ
くデータの検索方法のアルゴリズムを図6を参照しなが
ら説明する。
【0020】即ち、ステップ(1)に於いて、検索対象
となる全データをテーブル要素の大きさによって、テー
ブル上で並べ換える操作を行う。次いでステップ(2)
に於いて、被検索データのテーブル要素を該テーブルの
中央値と比較して、該被検索データのテーブル要素が該
中央値より大きいか否かを判断する。
【0021】ステップ(2)でYESであれば、ステッ
プ(3)に進んで、当該検索範囲を該テーブルの中央値
よりも小さい値に設定して、ステップ(2)に戻り、上
記の操作を繰り返す。又ステップ(2)でNOであれ
ば、ステップ(4)に進んで、当該検索範囲を該テーブ
ルの中央値よりも大きい値に設定して、ステップ(5)
に進み、該被検索データのテーブル要素が該新規に設定
された中央値より大きいか否かを判断する。
【0022】ステップ(5)に於いてNOであれば、ス
テップ(6)で被検索データが発見された事になり、E
NDとなるが、YESであれば、ステップ(7)に進み
当該検索範囲を該中央値よりも更に大きい値に設定して
ステップ(2)に戻り、上記の操作を繰り返す。即ち、
従来に於けるハッシュテーブルを用いたデータの検索方
法に於いては、該ハッシュテーブルの大きさとデータベ
ース内のテーブルの総数が略一致している場合のみ、そ
の効果が大きいが、テーブルの総数によってはその効果
が小さくなり、処理時間が増大すると言う問題があり、
又バイナリーサーチ方法に於いては、テーブルがそのテ
ーブル要素の大きさの順に並んでいる事が必要であるこ
とから、テーブルの追加又は削除の度にテーブルの並び
換え処理を行う必要が生じるので、検索処理に要する処
理時間を増大させると言う欠点が有った。
【0023】
【発明が解決しようとする課題】本発明の目的は、係る
従来技術に於ける問題を解決し、データの数、テーブル
要素の大きさ、テーブルの総数、テーブルの変化に係わ
りなく、データの検索を短時間で実行しえる高速検索シ
ステムを提供するものである。
【0024】
【課題を解決するための手段】本発明は上記した目的を
達成するため、以下に記載されたような技術構成を採用
するものである。即ち、テーブル総数とテーブル要素を
含むデータベースを構成する第1の工程、該データベー
スに格納されている該テーブル総数に比例する大きさの
ハッシュテーブルを作成する第2の工程、該ハッシュテ
ーブルを用いてテーブル要素を検索する第3の工程とか
ら構成されているデータベースの高速検索システムを第
1の態様とするものであり、又テーブル要素を含むデー
タベースを構成する第1の処理手段、該データベースに
格納されている該テーブル要素をカウントしてテーブル
総数を求める第2の処理手段、該テーブル総数に比例す
る大きさのハッシュテーブルを作成する第3の処理手
段、該ハッシュテーブルを用いてテーブル要素を検索す
る第4の処理手段とから構成されているデータベースの
高速検索システムを第2の態様とするものである。
【0025】
【作用】本発明に係る該データベースの検索方法に於い
ては、上記した通りの技術構成を有しているので、ハッ
シュテーブルの大きさが、テーブル総数に比例するの
で、当該ポインタの数が検索対象データの数に応じて変
化させる事が出来、従って、当該ハッシュテーブルに連
結されている各グループのテーブル、即ちテーブル内容
格納部の数は、常に検索処理が高速に維持されうる数に
保つ事が可能となる。
【0026】従って、従来に於けるハッシュテーブルを
用いて検索する方法とは異なり、当該ハッシュテーブル
を用いてデータを検索する場合にテーブル総数に関係な
く、常時高速検索の行う事が可能となる。更に、本発明
に係るデータベースの高速検索システムに於いては、各
グループ内に於けるそれぞれのテーブル内容格納部をサ
ブポインタで連結しているので、当該テーブル、即ちテ
ーブル内容格納部の追加、或いは削除等の処理も該ポイ
ンタを入れ換えるだけで済み、全体の検索処理速度に影
響を与える事が無いので、理想的な高速検索システムを
実現させる事が可能となる。
【0027】
【実施例】以下に、本発明に係るデータベースの検索方
法の具体例を図面を参照しながら詳細に説明する。図1
は、本発明に係るデータベースの検索方法に使用される
ハッシュテーブルの構成例を示すブロックダイアグラム
であり、基本的な構成は、図4に示されるハッシュテー
ブルの構成と変わらないが、従来に於ける図4に示され
たハッシュテーブルと本発明に係るハッシュテーブルと
の違いは、該ハッシュテーブルに於ける大きさが、図4
の従来例に於いては、固定されており、従ってポインタ
の数も固定されていたのに対し、本発明に係るハッシュ
テーブルに於いては、ハッシュテーブルの大きさはテー
ブル総数、即ち検索データの総数に応じて変化する様に
構成されているもので有って、具体的には、該ハッシュ
テーブルを構成するポインタの数、換言すれば、検索デ
ータの総数を所定の関連性を付与しながら所定の数のグ
ループに分割して記憶させる当該グループの数が変化し
えると言う構成を採用したものである。
【0028】即ち、本発明に係る該ハッシュテーブル
は、図1に示されている通り、テーブルを、被検索デー
タ、即ちテーブル要素の大きさをキーとして幾つかのグ
ループ(G1、G2、G3、・・Gn−1、Gn)に分
け、各グループ毎に当該グループの先頭を指すポインタ
(P1、P2、P3、・・・・Pn−1、Pn)をそれ
ぞれ配分させておく。
【0029】つまり、本発明に於いては、該ポインタの
数が、検索データの総数によって変化する様に構成され
ているものである。又、本発明に於ける上記の各ポイン
タが代表する各グループは、図4に示されると同様に、
そのグループに区分され、格納される複数個のデータを
格納しうる複数個のテーブル内容格納部D2−1、D2
−2・・・D2−m をそれぞれ含んでおり、各テーブ
ル内容格納部のそれぞれは、サブポインタSP2−1、
SP2−2・・・SP2−mとテーブル内容T2−1、
T2−2・・・T2−mが対となって構成されている。
【0030】尚、それぞれのグループに於いて、該ポイ
ンタP1、P2、P3、・・・Pn−1、Pnに所定の
グループが存在していない場合には、当該グループに例
えば、それ以下にデータが存在していない事を表示する
“NULL”の記号が付されているものである。又、該
それぞれのグループに複数個のテーブル内容格納部D2
−1、D2−2・・・ D2−mをそれぞれ含んでいる
場合に、当該最終テーブル内容格納部以降に別のテーブ
ル内容格納部が存在しない場合にも、それ以下にデータ
が存在していない事を表示する“NULL”の記号が付
されているものである。
【0031】上記のハッシュテーブルに於ける該各グル
ープ内に於けるテーブル内容格納部の数は、任意であっ
てテーブル要素の数に応じて変化するものである。本発
明において、該ハッシュテーブルを用いてデータの高速
検索システムを実行する場合には、データベースの構成
を従来のデータベースの構成と異ならせる必要があり、
その一例として、図2に示される様な、データベースを
構築する必要がある。
【0032】即ち、本発明に係る第1の態様に於いて
は、図2(A)に示す様なテーブル総数2とテーブル要
素3とから構成されたデータベース1を使用するもので
有って、本発明に係る該データベースの検索方法を実行
する前に予め該データベース1を構成しておく必要があ
る。本発明に係る当該データベース1は、図2(B)に
示されている通り、検索データを分割格納させるグルー
プの数に相当するテーブル総数を設定するテーブル総数
設定領域20とそれぞれが異なる大きさを有するテーブ
ル要素を持った全検索データを格納させるテーブル要素
領域30とから構成されたものであり、該テーブル総数
設定領域20には、検索データベースの総数に応じて利
用されるグループの数を任意に設定出来る様に、構成さ
れているもので有って、該グループ数の変更は、ハード
的に設定する事も可能であるが、ソフト的に実行する事
も可能である。
【0033】即ち、図2(B)に於いては、該テーブル
総数領域20には、上記各グループに相当する各テーブ
ルNa、Nb・・・・・・Nmが構成されており、又該
テーブル要素領域30には、個別の大きさを有する各検
索データ、即ちテーブル要素が各グループ毎にまとめて
配置されており、例えば、第1欄のテーブル要素データ
a1、a2・・・・aNa は、該テーブル総数領域に於
けるグループNaに含まれるデータ群で、上記した様に
テーブル内容格納部Da1、Da2・・・・DNaを構
成するものである。
【0034】又第2欄のテーブル要素データb1、b2
・・・・bNb は、該テーブル総数領域に於けるグルー
プNbに含まれるデータ群であり更に第m欄のテーブル
要素データm1、m2・・・・mNm は、該テーブル総
数領域に於けるグループNmに含まれるデータ群であ
る。該テーブル総数領域20に於ける各グループNa、
Nb・・・・・・Nmには上記した通り、それぞれその
グループに含まれるデータの総数を表す値、若しくは、
当該グループに含まれるデータの特性、特徴等を表示す
るものが格納されている。
【0035】従って、本発明に係る第1の態様に於いて
は、検索データで構成されたデータベースのテーブル要
素、即ち、各データの数より最適なテーブル総数、即ち
グループ数を求めるものあるので、テーブル要素総数、
データ総数が少ない場合には、テーブル総数即ちグルー
プ数は少なくて良く、反対にデータ総数が多い場合に
は、該テーブル総数即ちグループ数が多くなる様に構成
するものである。
【0036】つまり、本発明に於いては、該ハッシュテ
ーブルの大きさ、換言すれば、テーブル総数あるいは
グループ数はデータの総数によって変化しえる様に構成
されているので、当該検索したいデータの総数に応じて
それに比例した最適な大きさのハッシュテーブルを構成
出来、従って検索処理も高速演算処理を行う事が可能と
なる。
【0037】係る本発明の第1の態様に関するデータの
検索処理方法を実行する手順を図2(C)を参照しなが
ら説明する。即ち、本発明に係る第1の態様に終えるデ
ータベースの検索方法は、テーブル総数2とテーブル要
素3を含むデータベース1を構成する第1の工程、該デ
ータベース1に格納されている該テーブル総数2に比例
する大きさのハッシュテーブルを作成する第2の工程、
該ハッシュテーブルを用いてテーブル要素3を検索する
第3の工程とから構成されているデータベースの高速検
索システムである。
【0038】該データベースの検索方法を実行する場合
には、例えば、ステップ(1)に於いて、先ず検索対象
となる全てのデータに付いて、データの総数とそれぞれ
のデータのテーブル要素を読み込み、それによってデー
タベース1を構成する第1の工程を実行し、ステップ
(2)に於いて、ステップ(1)で得られた情報から、
当該検索システムに要求されるハッシュテーブルの大き
さ、即ちグループ数を決定し、且つ各テーブル、即ち各
グループ毎に高速検索システムを実行する為に最適なテ
ーブル内容格納部の数も決定しておく事によって、テー
ブル総数に比例したハッシュテーブルを作成する。(第
2の工程) この場合に、従来のハッシュテーブル検索方法でも説明
した様に、各グループ毎に所定の圧縮されたポインタを
付与するものであるが、該ポインタの内容は、当該グル
ープに含まれるデータ群を共通的に表す内容とする事が
望ましい。
【0039】又、該各テーブル内容格納部Da1、Da
2・・・・DNaにも所定のアドレスに相当するサブポ
インタを付与するもので有って、それにより、主ポイン
タにより選択された所定のグループ内から、所望の被検
索データを容易に選択する事が可能となる。次いで、ス
テップ(3)に於いて、第3の工程である検索処理が実
行されるものであるが、所定の被検索データを該ハッシ
ュテーブルによるデータの検索システムに入力すると、
該検索データが、固有に有しているポインタとサブポイ
ンタとを用いて先ずグループの選択が行われ、当該被検
索データが含まれる関連するグループが見つかり、その
後に当該グループ内に於いて、該サブポインタを利用し
て、目的の被検索データを見つけだす操作を行うもので
ある。
【0040】次に、本発明に係る第2の態様のデータベ
ースの検索方法に付いて説明すると、該第2の態様に関
するデータベースの検索方法は、テーブル要素を含むデ
ータベースを構成する第1の処理手段、該データベース
に格納されている該テーブル要素をカウントしてテーブ
ル総数を求める第2の処理手段、該テーブル総数に比例
する大きさのハッシュテーブルを作成する第3の処理手
段、該ハッシュテーブルを用いてテーブル要素を検索す
る第4の処理手段とから構成されているものであり、そ
の具体例は、図3に示されている。
【0041】即ち、本発明に係る第2の態様に於いて
は、図3(A)に示す様なテーブル要素2とから構成さ
れたデータベース1を使用するもので有って、本発明に
係る該データベースの検索方法を実行する前に予め該デ
ータベース1を構成しておく必要がある。つまり、本発
明に係る第2の態様に於いては、当該データベース1
は、上記した様に、テーブル要素2のみで構成されるも
のであり、従って第1の態様に於ける様なテーブル総数
を有していない点で第1の態様と異なっているが、当該
テーブル要素2内の構成は、図3(B)に示されている
様に、基本的には図2(B)示された第1の態様におけ
る該テーブル要素3の構成と同一の構成を有している。
【0042】第1の態様のハッシュテーブルに於いて
は、該テーブル総数が当該ハッシュテーブルの大きさを
決定するもので有ったが、第2の態様に於けるハッシュ
テーブルに於いては、該テーブル要素領域30が存在す
るのみで、該テーブル総数領域20が存在しないので、
ハッシュテーブルの大きさを直接的に決定する事が出来
ないが、本発明に於いては、上記した様に、別途カウン
タを設け、該カウンタにより該検索対象となっている全
データをカウントし、そのカウント値に基づいてテーブ
ル総数を決定する様にしたものである。
【0043】尚、図3(B)のテーブル要素領域30の
構成に付いては、図2(B)と同じであるので、此処で
はその説明を省略する。むテーブル総数と。此処で、係
る本発明の第2の態様に関するデータの検索処理方法を
実行する手順を図3(C)を参照しながら説明する。
【0044】即ち、ステップ(1)に於いて、先ず検索
対象となる全てのデータに付いて、それぞれのデータの
テーブル要素を読み込み、ステップ(2)に於いて、ス
テップ(1)で得られた情報から、全データの数、即ち
テーブル要素の総数を適宜のカウンタを用いてカウント
し、当該検索システムに要求されるテーブル総数を決定
する。
【0045】次いでステップ(3)に於いて、ステップ
(2)に於いて得られたカウント値、即ちテーブル総数
に比例した大きさを持つハッシュテーブルを作成する。
係る工程に於けるテーブル総数及び各テーブル、即ち各
グループ毎に高速検索システムを実行する為に最適なテ
ーブル内容格納部の数も決定しておく事によって、テー
ブル総数に比例したハッシュテーブルを作成する。
【0046】この場合のハッシュテーブル作成方法は、
第1の態様に於けるハッシュテーブル作成方法の考え方
と同一であるので、詳細な説明は此処では省略する。次
いで、ステップ(4)に於いて、検索処理が実行される
ものであるが、所定の被検索データを該ハッシュテーブ
ルによるデータの検索システムに入力すると、該検索デ
ータが、固有に有しているポインタとサブポインタとを
用いて先ずグループの選択が行われ、当該被検索データ
が含まれる関連するグループが見つかり、その後に当該
グループ内に於いて、該サブポインタを利用して、目的
の被検索データを見つけだす操作を行うものである。
【0047】次に、本発明に係る第1の態様に係る他の
具体例を図7及び図8を参照しながら説明すると、図7
は、第1の態様に於けるデータベースを説明する図であ
り、テーブル総数領域20は、各テーブル要素即ちグル
ープa、b、c・・・・・nに対応するポインタPa、
Pb、Pc・・・・・Pnと、各グループa、b、c・
・・・・nに対応してそのグループ内のデータの数、即
ちテーブル要素の総数を表示する値Na、Nb、Nc・
・・・Nmとが記録されている。
【0048】従って、該データの数Na、Nb、Nc・
・・・・Nnにより、ハッシュテーブルの大きさが決定
される。図7に於ける該テーブル要素領域30は、例え
ばテーブル要素aを構成するテーブル要素、即ち該グル
ープに含まれる各データを格納するテーブル内容格納部
a1 a2・・・ai・・・aNaが記録されているテー
ブル要素a31とテーブル要素bを構成するテーブル要
素、即ち該グループに含まれる各データを格納するテー
ブル内容格納部b1,1 、b1,2 、・・・b1,Kb
2,1 、b2,2 ・・・・b2,Kb、bi,1 、bi,2 ・・・
i,kb、bNb,1、bNb,2・・・・bNb,Kb の様に二次元
に配列された検索データが記録されているテーブル要素
b32とが示されている。
【0049】此処で、Kbは、当該テーブル要素に於け
るレコードの数を示している。つまり、本具体例におい
ては、各テーブル要素の総数が、データベースのテーブ
ル総数によって管理されているものであり、又該レコー
ド数は、各テーブル毎に異なる様に構成する事が可能で
ある。図8は、図7のデータベースに基づくハッシュテ
ーブルの構成を説明する図である。本発明に係る該デー
タベースの検索方法に於けるハッシュテーブルに於いて
は、該ハッシュテーブルの大きさを該ハッシュテーブル
全体に格納される検索データの数に比例して変化される
もので有っても良いが、図8の様に、当該ハッシュテー
ブルの大きさ、即ちポインタの数を図7に於ける各テー
ブル要素31或いは32のデータの数に応じて変更する
もので有っても良く、図8(A)に於いては、ハッシュ
テーブルの大きさを該テーブル要素aを構成するテーブ
ル内容格納部D1、D2、・・・Di・・・DNa毎に別
々のポインタを付与して、グループ化したものに基づい
て変化させる事が出来、又図8(B)に示す様に、該ハ
ッシュテーブルの大きさを該テーブル要素bを構成する
テーブル内容格納部D1、D2、・・・Di・・・DNb
毎に別々のポインタを付与して、グループ化したものに
基づいて変化させる事が出来、内容格納部Db1,1 、D
1,2 、・・・Db 1,K1、Db2,1 、Db2,2 ・・・・
Db2,K2、Dbi,1 、Dbi,2 ・・・Di,ki、D
Nb,1、DbNb,2・・・・DbNb,KNbが記録されている
レコード数K1、K2、・・・Ki、・・・Kbの大き
さを変化させる事が出来る。
【0050】即ち、本発明に係るデータベースの検索方
法に於いては、該ハッシュテーブルの大きさはテーブル
総数に比例し、ハッシュテーブルに連結しているテーブ
ルは、テーブル毎に異なるレコード数を持つテーブル要
素と、次の連結しているテーブルへのサブポインタを有
している。一方、図9は、本発明に係る第2の態様の他
の具体例を説明する図であり、データベースの構成は、
図8の構成と比べるとランダムに配列された構成を示
す。
【0051】尚、該データベースに於ける符号は、図8
に於いて説明したものと同一の内容を含んでいるもので
あるから、此処では再度説明する事は省略する。本具体
例に於いては、各テーブル要素の総数がデータベース上
で管理されていないので、その替わりに、該データベー
スの検索方法を実行するに際して当該テーブル要素の総
数を適宜のカウンタによりカウントして該テーブル総
数、具体的には、グループの数を求めるものである。
【0052】図10は、上記に於けるハッシュテーブル
の構成を説明する図であり、ハッシュテーブルの大きさ
は、例えば当該テーブル要素aに関するテーブル総数N
aの値に応じて変化する例を示してある。つまり、本具
体例に於いては、ハッシュテーブルの大きさは、求めた
テーブル総数に比例し、該ハッシュテーブルに連結され
ているテーブルは、該テーブル要素と、次に連結してい
るテーブルへのポインタを有している。
【0053】
【発明の効果】本発明に係る該データベースの検索方法
は、上記した様な技術構成を有しているので、データの
数、テーブル要素の大きさ、テーブルの総数、テーブル
の変化に係わりなく、データの検索を常に高速で且つ短
時間で実行しえる高速検索システムを得る事が可能であ
り、更に例えばCADシステムに於ける様な、ターン・
アランド・タイムの減少に寄与する事が大きい。
【図面の簡単な説明】
【図1】図1は、本発明に係るデータベースの検索方法
に使用されるハッシュテーブルの構成例を説明する図で
ある。
【図2】図2は、本発明の第1の態様に係るデータベー
スの検索方法に於いて使用されるデータベースの構成と
検索処理の手順を接続する図である。
【図3】図3は、本発明の第2の態様に係るデータベー
スの検索方法に於いて使用されるデータベースの構成と
検索処理の手順を接続する図である。
【図4】図4は、従来に於ける、ハッシュテーブルの構
成例を説明する図である。
【図5】図5は、従来に於ける、ハッシュテーブルを用
いたデータの検索処理方法の手順の例を説明するフロー
チャートである。
【図6】図6は、従来に於けるバイナリサーチ方法に於
けるデータの検索処理方法の手順の例を説明するフロー
チャートである。
【図7】図7は、本発明の第1の態様に係るデータベー
スの検索方法に於いて使用されるデータベースの他の構
成例を説明するブロックダイアグラムである。
【図8】図8は、本発明の第1の態様に係るデータベー
スの検索方法に於いて使用されるハッシュテーブルの他
の構成例を説明するブロックダイアグラムである。
【図9】図9は、本発明の第2の態様に係るデータベー
スの検索方法に於いて使用されるデータベースの他の構
成を説明するブロックダイアグラムである。
【図10】図10は、本発明の第2の態様に係るデータ
ベースの検索方法に於いて使用されるハッシュテーブル
の他の構成例を説明するブロックダイアグラムである。
【符号の説明】
1…データベース 2…テーブル総数 3…テーブル要素 20…テーブル総数領域 30…テーブル要素領域 31、32…テーブル要素

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 テーブル総数とテーブル要素を含むデー
    タベースを構成する第1の工程、該データベースに格納
    されている該テーブル総数に比例する大きさのハッシュ
    テーブルを作成する第2の工程、該ハッシュテーブルを
    用いてテーブル要素を検索する第3の工程とから構成さ
    れている事を特徴とするデータベースの検索方法。
  2. 【請求項2】 テーブル要素を含むデータベースを構成
    する第1の処理手段、該データベースに格納されている
    該テーブル要素をカウントしてテーブル総数を求める第
    2の処理手段、該テーブル総数に比例する大きさのハッ
    シュテーブルを作成する第3の処理手段、該ハッシュテ
    ーブルを用いてテーブル要素を検索する第4の処理手段
    とから構成されている事を特徴とするデータベースの検
    索装置。
JP4188175A 1992-07-15 1992-07-15 データベースの検索方法および検索装置 Withdrawn JPH0635968A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4188175A JPH0635968A (ja) 1992-07-15 1992-07-15 データベースの検索方法および検索装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4188175A JPH0635968A (ja) 1992-07-15 1992-07-15 データベースの検索方法および検索装置

Publications (1)

Publication Number Publication Date
JPH0635968A true JPH0635968A (ja) 1994-02-10

Family

ID=16219078

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4188175A Withdrawn JPH0635968A (ja) 1992-07-15 1992-07-15 データベースの検索方法および検索装置

Country Status (1)

Country Link
JP (1) JPH0635968A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4843273A (en) * 1987-05-12 1989-06-27 Thermo-Watt Stromerzeugungsanlagen Gmbh Heater mechanism with thermoelectric power generator

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4843273A (en) * 1987-05-12 1989-06-27 Thermo-Watt Stromerzeugungsanlagen Gmbh Heater mechanism with thermoelectric power generator

Similar Documents

Publication Publication Date Title
Faloutsos Gray codes for partial match and range queries
EP0124097B1 (en) Method for storing and retrieving data in a data base
JP5342958B2 (ja) 圧縮データの構造を問い合わせる方法
EP1234258B1 (en) System for managing rdbm fragmentations
JP3318834B2 (ja) データファイルシステム及びデータ検索方法
US9141666B2 (en) Incremental maintenance of range-partitioned statistics for query optimization
EP2344959A2 (en) Index compression in databases
CN113032427A (zh) 一种用于cpu和gpu平台的向量化查询处理方法
KR20050067194A (ko) 연쇄된 조인 테이블의 트리구조로의 변환 방법 및 변환프로그램
JP3860992B2 (ja) データの結合・提示方法、および、データ結合・提示プログラム
WO2005043409A1 (ja) 表形式データの結合方法、結合装置およびプログラム
JPH0635968A (ja) データベースの検索方法および検索装置
CN110597929A (zh) 一种基于MapReduce的并行数据立方构建方法
JP2007048318A (ja) リレーショナルデータベースの処理方法およびリレーショナルデータベース処理装置
JPS6172333A (ja) 複数ファイルのマージ方法
JP2000517448A (ja) データベース・システム及びn次元データセットの編成方法
JPH11232283A (ja) 情報検索方法
JPS62287350A (ja) インデツクス一括更新方式
US20110208782A1 (en) Method and computer program product for creating ordered data structure
Bartere et al. Optimization of Query Processing Time Base on Materialized Sample View
Mehedinţu et al. Indexing strategies for optimizing queries on MySql
CN117216054A (zh) 一种索引树的创建方法及终端
JP2708625B2 (ja) 均質ハッシング処理方式
Smith Underlying Structures
JPH02259942A (ja) データベース世代管理処理方式

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19991005