JPH0991303A - データ管理装置 - Google Patents

データ管理装置

Info

Publication number
JPH0991303A
JPH0991303A JP7244861A JP24486195A JPH0991303A JP H0991303 A JPH0991303 A JP H0991303A JP 7244861 A JP7244861 A JP 7244861A JP 24486195 A JP24486195 A JP 24486195A JP H0991303 A JPH0991303 A JP H0991303A
Authority
JP
Japan
Prior art keywords
hash value
data
index table
stored
identification information
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.)
Granted
Application number
JP7244861A
Other languages
English (en)
Other versions
JP3647940B2 (ja
Inventor
Satoru Shimoyanagi
悟 下柳
Keiji Moriya
圭司 守屋
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
PFU Ltd
Original Assignee
Fujitsu Ltd
PFU 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, PFU Ltd filed Critical Fujitsu Ltd
Priority to JP24486195A priority Critical patent/JP3647940B2/ja
Publication of JPH0991303A publication Critical patent/JPH0991303A/ja
Application granted granted Critical
Publication of JP3647940B2 publication Critical patent/JP3647940B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 本発明の課題は、索引テーブルに格納される
情報量を減少し、データの検索時間を短縮しうるデータ
管理装置を提供することである。 【解決手段】 本発明のデータ管理装置は、データと識
別情報とを格納するデータ部と、識別情報をハッシュ値
に変換するハッシュ変換手段と、ハッシュ値と識別情報
と格納位置とを格納するブロックからなる第1索引テー
ブルと、各ブロックの見出しとなるハッシュ値を格納す
る第2索引テーブルと、識別情報をハッシュ値に変換
し、第2索引テーブルでハッシュ値の大小を比較してハ
ッシュ値を格納するブロックを特定し、第1索引テーブ
ルで格納したハッシュ値を検索し、このハッシュ値に属
する識別情報を対比して検索対象を特定し、当該識別情
報により対応データを検索する検索手段とを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はデータ管理装置に関
する。さらに詳細には、データ部に格納したデータを、
各データに対応する識別情報とデータの格納位置とを格
納した索引を用いて管理するデータ管理装置に関する。
【0002】
【従来の技術】一般に、記憶手段に格納した複数のデー
タを管理するため、このデータから抽出した検索用の識
別情報とデータの格納位置とを格納する索引を作成し、
データへのアクセス時間を短縮して検索効率を向上する
ようにしている。
【0003】例えば、図5に示すように、従来のデータ
管理装置は、記憶手段20に形成され複数のデータと各
データに対応する識別情報とを格納したデータ部50
と、この各データの識別情報とデータ部における各デー
タの格納位置を示すポインタとを二組格納する二つのブ
ロック41、42からなる第1の索引テーブル40と、
第1の索引テーブル40の見出しとなる識別情報を格納
した第2の索引テーブル30と、この第1の索引テーブ
ル40と第2の索引テーブル30とを用いてデータ部5
0のデータを検索する検索手段13とを備えている。
【0004】そして、データ部50にはデータとして氏
名が格納され、識別情報として従業員番号が格納されて
いる。また、第2の索引テーブル30は、各ブロック4
1、42に格納した識別情報のうち大きい値が格納され
ている。
【0005】このようなデータ管理装置において、例え
ば、氏名上田、従業員番号5787を検索する場合を説
明する。まず、検索手段13に従業員番号5787を入
力する。すると、検索手段13が、第2の索引テーブル
30において、従業員番号5787と第2の索引テーブ
ル30に格納されている従業員番号とを対比する。そし
て、第1索引テーブル40のうち、従業員番号5787
が格納されるブロック41を特定する。
【0006】次に、ブロック41において、入力された
従業員番号5787と格納されている従業員番号とを対
比して検索対象の従業員番号5787を特定する。最後
にこの従業員番号5787に対応するポインタの指示に
従い、データ部50から氏名上田を検索する。
【0007】
【発明が解決しようとする課題】しかし、従来のデータ
管理装置は、前記例のように、第1の索引テーブル40
と第2の索引テーブル30とに識別情報を格納しデータ
検索の際のキーとしている。このため、識別情報のビッ
ト長が長い場合や複数の識別情報に対する索引(複合イ
ンデックス)の場合は、各索引テーブル30、40に格
納される情報量が大きくなり、データのアクセスに時間
を要するという問題点がある。
【0008】本発明は、前記問題点に鑑みなされたもの
であり、索引テーブルに格納される情報量を減少し、デ
ータへの検索時間を短縮し得るデータ管理装置を提供す
ることを技術的課題とする。
【0009】
【課題を解決するための手段】本発明は、データ管理装
置であって、前記技術的課題を解決するために以下の手
段を採用する。
【0010】すなわち、複数のデータとこのデータに対
応する検索用の識別情報とを格納するデータ部と、前記
識別情報をハッシュ関数に従って識別情報のビット長よ
り短いハッシュ値に変換するハッシュ変換手段と、前記
ハッシュ変換手段により変換されたハッシュ値を複数所
定範囲でまとめたハッシュ値群、このハッシュ値に対応
する識別情報、及び、この識別情報のデータ部における
格納位置、を格納する複数のブロックからなる第1索引
テーブルと、前記第1索引テーブルの各ブロックの先頭
に格納されるハッシュ値、及び、このハッシュ値の第1
索引テーブルにおける格納位置、を格納する第2索引テ
ーブルと、データ検索時に入力された識別情報をハッシ
ュ値に変換し、このハッシュ値と第2の索引テーブルに
格納された各ハッシュ値とを比較して同一のハッシュ値
が格納されたブロックを特定し、そのブロックにおいて
同一のハッシュ値を検索し、検索したハッシュ値に対応
する識別情報と検索用に入力した識別情報とを対比して
同一の識別情報を検索対象として特定し、この識別情報
より前記データ部から対応データを検索する検索手段
と、を備えている(請求項1に対応)。
【0011】以下、本発明に必須の構成要素を説明す
る。 (データ部)データ部は、複数のデータとこのデータに
対応する検索用の識別情報を格納するものである。識別
情報は、データの一部を指定したものでも良く、また、
別個に指定したものでも良い。識別情報には、例えば、
データが氏名である場合は、年齢、従業員番号、生年月
日等が用いられる。このデータ部は、例えばテーブル状
にし、各データと識別情報とを組として格納するのが好
ましい。
【0012】(ハッシュ変換手段)ハッシュ変換手段
は、識別情報をハッシュ関数に従って識別情報のビット
長よりも短いハッシュ値に変換し、索引テーブルに格納
する情報量を小さくするものである。このハッシュ変換
手段は、ハッシュ関数を格納してあり、識別情報が入力
されると、識別情報をハッシュ値に変換するようにして
ある。ハッシュ関数は一定の法則に基づき識別情報を短
いハッシュ値に変換できるものであれば良い。
【0013】例えば、ハッシュ関数を以下のように定義
しても良い。 データ=abcd ハッシュ関数h=(ab+cd)mod100 このようなハッシュ関数により、例えば識別情報544
3を変換すると、ハッシュ値は97となり、識別情報よ
りも短いものとなる。この変換されたハッシュ値は、第
1の索引テーブルと第2の索引テーブルとに格納され、
この格納したハッシュ値を検索することによりデータ部
に格納したデータの検索を行う。
【0014】(第1索引テーブル)第1索引テーブル
は、データ部に格納した各データの索引となるものであ
る。この第1索引テーブルは複数のブロックからなる。
各ブロックには、ハッシュ変換手段により変換されたハ
ッシュ値を複数所定範囲でまとめたハッシュ値群が格納
される。
【0015】この所定範囲は、自由に定め得るものであ
るが、変換されたハッシュ値の分布状況を考慮し、各ハ
ッシュ値群がほぼ同数の変換されたハッシュ値を有する
ようにまとめる。なお、ブロックの数は、このハッシュ
値群の数に対応して設ける。このとき、ブロックに格納
するハッシュ値の数が多くなり、ブロック内の検索に時
間がかからないようにする。また、各ブロックに格納さ
れるハッシュ値は、大きい順または小さい順に並べて格
納し、各ブロックの先頭には各ハッシュ値群の最大値ま
たは最小値を格納するのが好ましい。
【0016】例えば、ハッシュ値が99,44,91及
び97の4つ存在する場合は、ハッッシュ値を大きい順
に並べ、99と97とで一つのハッシュ値群を形成し、
所定範囲をハッシュ値99から92までと定める。ま
た、同様にして91と44とでもう一つのハッシュ値群
を形成し、所定範囲を91から00と定める。そして、
第1索引テーブルを2つのブロックから構成し、ブロッ
クの一方にハッシュ値99を先頭として格納し、ブロッ
クの他方にハッシュ値91を先頭として格納する。な
お、この後に、追加されたデータの識別情報がハッシュ
値70に変換された場合は、ブロックの他方にハッシュ
値70を格納する。もっとも、データの増加に伴い、変
換されたハッシュ値の数が増加した場合は、所定範囲を
変更してブロック数を増加しても良い。
【0017】また、各ブロックにはハッシュ値に対応す
る識別情報が格納される。これは、例えば二つの識別情
報をハッシュ値に変換すると、識別情報の値が異なるに
も拘わらずハッシュ値が同一値となる場合がある(ハッ
シュ値の衝突)。従って、この識別情報を格納しない
と、ハッシュ値によりデータを検索した場合に、いずれ
の識別情報に対応するハッシュ値であるのか判断でき
ず、データ検索が不正確なものとなるおそれがある。こ
のため、ハッシュ値を変換する元となった識別情報をハ
ッシュ値とともに格納することにより、ハッシュ値の衝
突によるデータ検索ミスを回避しようとするものであ
る。従って、一つのハッシュ値に対応する識別情報が複
数ある場合は、その全てを格納する。
【0018】さらに、各ブロックには、データ部におけ
る識別情報の格納位置を格納する。これらのハッシュ値
と識別情報と格納位置とは一組として各ブロックに格納
するのが良い。
【0019】なお、各ブロックにはさらに一つのハッシ
ュ値に属する識別情報の格納数を格納するようにしても
良い。 (第2索引テーブル)第2索引テーブルは、第1索引テ
ーブルの索引の役目を果たすものである。この第2索引
テーブルは、第1索引テーブルの各ブロックの先頭に格
納されるハッシュ値を格納する。この第2索引テーブル
に格納されるハッシュ値は、第1索引テーブルの各ブロ
ックの見出しとされる。また、この見出しとなるハッシ
ュ値の第1索引テーブルにおける格納位置を格納する。
なお、格納されるハッシュ値は、大きい順か小さい順に
ならべて格納するのが好ましい。
【0020】この第2索引テーブルにより、データ検索
の際に、まず第2索引テーブルを検索し、第1テーブル
のどのブロックに検索データの識別情報を変換したハッ
シュ値が格納されているかを特定できるようにする。
【0021】例えば、ハッシュ値が上限を99とし下限
を00とする場合において、0から50までのハッシュ
値を所定範囲とするブロックと、51から99までのハ
ッシュ値を所定範囲とするブロックとから第1索引テー
ブルが形成されている場合には、第2索引テーブルにハ
ッシュ値99とハッシュ値50とを格納する。そして、
検索データのハッシュ値が例えば70である場合は、5
0と70を対比し、さらに99と70とを対比し、50
<70≦99と特定し、ハッシュ値51からハッシュ値
99までを所定範囲とするブロックを検索するようにす
る。
【0022】なお、この第2索引テーブルに格納するハ
ッシュ値の数は、第1の索引テーブルのブロック数に対
応するものであるが、この格納数が増加した場合は、第
2の索引に格納されたハッシュ値を所定範囲のハッシュ
値群に分けるとともに、第2索引テーブルを各ハッシュ
値群を格納する複数のブロックからなるようにし、さら
に上位に第3の索引テーブルを作成し、この第2の索引
テーブルに格納したハッシュ値の格納位置と、第2の索
引テーブルに格納したハッシュ値の見出しとなるハッシ
ュ値とを格納するようにしても良い。要するに本発明
は、格納されるデータの数に応じて索引テーブルを2階
層以上に形成しても良いものであり、幾階層に形成して
も良いものである。
【0023】(検索手段)検索手段は、ハッシュ変換手
段により変換したハッシュ値に基づき、第2索引テーブ
ル、第1索引テーブルの順に検索し、データ部に格納し
たデータを検索するものである。
【0024】検索手段は、まずデータ検索時に入力され
た識別情報をハッシュ値に変換する。次に、第2索引テ
ーブルにおいて、変換されたハッシュ値と第2索引テー
ブルとに格納されたハッシュ値との大小を比較する。そ
して、同一のハッシュ値が格納されたブロックを特定す
る。
【0025】このブロックの特定にあたり、例えば、検
索手段に、予めハッシュ値群の所定の範囲と先頭の値を
登録しておく。そして、検索手段が変換したハッシュ値
と格納された各ハッシュ値との大小を順に比較して、変
換したハッシュ値が含まれるハッシュ値群を特定するよ
うにする。そして、特定されたハッシュ値群の先頭に格
納されるハッシュ値に対応して格納された第1索引テー
ブルの格納位置に従って第1索引テーブルのブロックを
検索するようにする。
【0026】次に、特定したハッシュ値群を格納するブ
ロックにおいて変換したハッシュ値と同一のハッシュ値
を検索する。これは、例えば、変換したハッシュ値と特
定ブロックに格納されたハッシュ値とを順次対比し、一
致するハッシュ値を検索することにより行う。
【0027】次に検索した同一のハッシュに対応して格
納されている識別情報と検索用に入力した識別情報とを
対比して同一の識別情報を検索し、この識別情報を検索
対象として特定する。このとき、第1索引テーブルにハ
ッシュ値に対応する識別情報を格納しておくと、検索手
段が識別情報同士を対比する回数を指定することができ
る点で好ましい。
【0028】最後に、この識別情報より前記データ部か
ら対応データを検索する。これは、識別情報に対応して
格納されているデータ部における対象データの格納位置
に従ってデータ部を検索することにより行う。
【0029】(本発明の付随的構成要素)本発明のデー
タ管理装置は、以上説明した必須の構成要素からなるも
のであるが、以下に説明する付随的構成要素を付加した
場合であっても成立する。
【0030】(登録手段)本発明のデータ管理装置は、
新規データを追加したとき、第1索引テーブルにおい
て、前記新規データに対応する新規識別情報のハッシュ
値がすでに存在するときは、そのハッシュ値下に属する
ものとして前記新規識別情報とこの識別情報に対応する
データのデータ部における格納位置とを前記第1索引テ
ーブルに登録する登録手段を備えていても良い。
【0031】(削除手段)登録手段に加え、さらに、デ
ータを削除する際、削除データに対応する識別情報のハ
ッシュ値を検索し、第1索引テーブルにおいて、前記ハ
ッシュ値に属する識別情報が1つ格納されているとき、
当該識別情報とハッシュ値とを削除し、そのハッシュ値
に属する識別情報が複数格納されているとき、削除デー
タ対応の識別情報を削除する削除手段を備えても良い。
【0032】このように登録手段と削除手段とを備える
と、データの追加と削除とに対応して第1索引テーブル
と第2索引テーブルとの格納内容が変更されることとな
り、検索手段は、適切な内容の第1索引テーブルと第2
索引テーブルとを検索してデータ検索を行うことが可能
となる。
【0033】(本発明の作用)本発明のデータ管理装置
によると、データと識別情報とがデータ部に格納される
と、ハッシュ変換手段は、識別情報をハッシュ関数に従
って識別情報のビット長より短いハッシュ値に変換す
る。このハッシュ値は、第1索引テーブルに格納され
る。また、ハッシュ値群の先頭となるハッシュ値は、第
2索引テーブルに格納される。また、第1索引テーブル
には、格納したハッシュ値に対応する識別情報が格納さ
れ、さらにデータ部における各データの格納位置が格納
される。
【0034】また、第2索引テーブルには、格納したハ
ッシュ値の第1の索引テーブルにおける格納位置が格納
され、第2索引テーブルに格納した各ハッシュ値の第1
索引テーブルにおける格納位置が格納される。
【0035】次に、データ検索時のデータ管理装置の作
用を説明する。検索手段にデータの識別情報が入力され
ると、検索手段は、まず、入力された識別情報をハッシ
ュ値に変換する。次に、第2索引テーブルにおいて、変
換したハッシュ値と第2索引テーブルに格納されたハッ
シュ値とを比較して同一のハッシュ値が格納された第1
索引テーブルのブロックを特定する。
【0036】例えば、第2索引テーブルにハッシュ値9
9と91が格納されている場合において、検索手段があ
る識別情報をハッシュ値93に変換したとする。この場
合、検索手段は第2索引テーブルにおいて、ハッシュ値
93とハッシュ値99とを比較し93≦99と認識す
る。また、検索手段は、ハッシュ値93とハッシュ値9
1とを比較して91<93≦99と認識する。これによ
り、変換したハッシュ値93が含まれるハッシュ値群を
特定する。すなわち、第2索引テーブルに格納されたハ
ッシュ値99は、ハッシュ値99からハッシュ値92ま
でを所定範囲とする第1検索テーブルのブロックの見出
しと認識する。
【0037】このように、ブロックを特定すると、検索
手段は、第2索引テーブルに格納されているハッシュ値
と同一のハッシュ値が第1索引テーブルに格納されてい
る位置の指示に従い、特定した第1索引テーブルにおい
て、変換したハッシュ値と同一のハッシュ値を対比する
ことにより検索する。この同一のハッシュ値を検索する
と、このハッシュ値に対応して格納された識別情報と検
索用に入力されたハッシュ値とを対比して一致する識別
情報を検索対象として特定する。これは、識別情報が複
数の場合は、一致する識別情報を検索するまで繰り返し
て行われる。
【0038】最後に、検索対象として特定した識別情報
に対応するデータ部のデータ格納位置の指示に従いデー
タ部から対応データを検索する。なお、第1検索テーブ
ルに一つのハッシュ値に属する識別情報の格納数が格納
されている場合は、第1索引テーブルの特定ブロックに
おいて同一のハッシュ値を検索した際、検索したハッシ
ュ値下に属する識別情報の格納数が一つのときはその識
別情報により記憶手段から対応データを検索する。
【0039】一方、検索したハッシュ値下に属する識別
情報の格納数が複数のときは検索用に入力された識別情
報とハッシュ値下に属する複数の識別情報とを対比し
て、同一の識別情報を検索対象として特定する。そし
て、当該識別情報によりデータ部から対応データを検索
する。
【0040】また、本発明が登録手段を備える場合は以
下のようになる。データ部に新規データを追加した際、
新規データに対応する識別情報はハッシュ変換手段によ
りハッシュ値に変換される。登録手段は、このハッシュ
値により、第2索引テーブルにおいて変換したハッシュ
値を格納したブロックを特定し、第1索引テーブルにお
いて既に同一のハッシュ値が格納されているかを調べ
る。そして、新規識別情報のハッシュ値が既に第1索引
テーブルに存在するときは、新規識別情報をそのハッシ
ュ値下に属するものとして第1索引テーブルに登録し、
さらにこの新規識別情報に対応するデータのデータ部に
おける格納位置を登録する。一方、新規識別情報のハッ
シュ値が第1索引テーブルに存在しない場合は、ハッシ
ュ値、識別情報、データ部における格納位置を登録す
る。
【0041】さらに、本発明が削除手段を備える場合は
以下のようになる。データ部からデータを削除する際、
削除手段は削除データに対応する識別情報のハッシュ値
をデータ検索の際と同様にして、第1索引テーブルにお
いて検索する。そして、そのハッシュ値に属する識別情
報が1つ格納されているとき、当該識別情報とハッシュ
値と削除データのデータ部における格納位置を削除す
る。
【0042】一方、そのハッシュ値に属する識別情報が
複数格納されているとき、削除手段は削除データ対応の
識別情報を削除し、さらに削除した識別情報に対応する
削除データのデータ部における格納位置を削除する。
【0043】
【発明の実施の形態】以下、本発明のデータ管理装置の
好適な実施の形態を図を用いてさらに詳細に説明する。
図1には、本実施の形態にかかるデータ管理装置10の
概要が示されている。このデータ管理装置10は、ハッ
シュ変換部12と、検索部13と、登録部14と、削除
部15と、第2索引テーブル30と、第1索引テーブル
40とを備える。
【0044】なお、このデータ管理装置10は、記憶部
20に形成したデータ部50にデータである氏名と識別
情報である従業員番号とを格納して管理するものであ
る。 〈実施の形態のハード的構成〉実施の形態にかかるデー
タ管理装置10は、ハード的には、システムバスを介し
て接続されたCPUと主記憶装置と補助記憶装置とから
構成されている。データ管理装置10の構成要素のう
ち、ハッシュ変換部12と検索部13と登録部14と削
除部15とは、補助記憶装置に格納されたプログラムで
あり、必要に応じて主記憶装置に読み出され、CPUに
よりロードされて実現する機能である。
【0045】〈記憶部〉記憶部20には補助記憶装置が
用いられている。この補助記憶装置は、フロッピーディ
スク、ハードディスク、MO(Magnet Optical)等を用
いることができる。この記憶部20に氏名と従業員番号
を対応させて格納するためのデータ部50が形成されて
いる。
【0046】〈データ部〉データ部50は、二つのセル
縦列により形成されている。そして、左側のセル縦列に
従業員番号がそれぞれ格納され、右側のセル縦列に従業
員番号に対応する氏名が格納される。ここでは、6人の
氏名がデータとして格納されており、また、各氏名に対
応する従業員番号がそれぞれ格納されている。
【0047】〈ハッシュ変換部〉ハッシュ変換部12
は、入力された従業員番号をハッシュ関数に従って従業
員番号のビット長よりも短いハッシュ値に変換するもの
である。このハッシュ変換部12には一定の法則に基づ
くハッシュ関数が格納されている。ここで用いられてい
るハッシュ関数は、氏名に対応する従業員番号を1バイ
ト単位に区切り、区切ったそれぞれの値を合計するもの
がである。数式で表せば、 従業員番号=abcd h=(ab+cd) mod 100 である。従ってハッシュ値の上限は99であり、下限は
00である。
【0048】ハッシュ変換部12は、このハッシュ値を
必要に応じて検索部13、登録部14、削除部15のい
ずれかに送るようにしてある。 〈第1索引テーブル〉第1索引テーブル40は、第1ブ
ロック41と第2ブロック42とから形成されている。
各ブロック41、42は、4つのセル縦列から形成され
ている。このセル縦列のうち、左端のセル縦列には、ハ
ッシュ変換部12により変換されたハッシュ値が上から
大きい順に並べて格納される。また、左から2番目のセ
ル縦列は、一つのハッシュ値に属する従業員番号の数が
格納される。さらに、左から3番目のセル縦列はハッシ
ュ値に対応する従業員番号が格納される。そして、右端
のセル縦列は、データ部50における従業員番号と氏名
との格納位置を示すポインタが格納される。
【0049】なお、従業員番号を格納するセルとポイン
タを格納するセルとは、ハッシュ値の衝突が生じる場合
には横に分割され、それぞれの従業員番号が格納され
る。また、ポインタを格納するセルには、データ部50
における各従業員番号及び氏名の格納位置がそれぞれ格
納される。
【0050】この第1索引テーブル40の第1ブロック
41は、先頭をハッシュ値99とし所定範囲をハッシュ
値99からハッシュ値92までとし、この範囲のハッシ
ュ値を格納するものである。また、第2ブロック42
は、先頭をハッシュ値91とし所定範囲をハッシュ値9
1からハッシュ値00までとし、この範囲のハッシュ値
を格納するものである。
【0051】〈第2索引テーブル〉第2索引テーブル3
0は、二つのセル縦列から形成され、左側のセル縦列に
は、ハッシュ変換部12により変換されたハッシュ値の
うち、第1索引テーブル40の各ブロックの先頭に格納
されるハッシュ値が、上から大きい順に格納される。右
側のセル縦列にはここに格納された各ハッシュ値の第1
索引テーブル40における格納位置を示すポインタが格
納される。
【0052】ここでは、第2索引テーブルには、ハッシ
ュ値99とハッシュ値91とが格納されている。このハ
ッシュ値99は、第1索引テーブルにおけるハッシュ値
99から92までのハッシュ値群を格納する第1ブロッ
ク41の見出しとなっている。また、ハッシュ値91
は、ハッシュ値91から00までのハッシュ値群を格納
する第2ブロック42の見出しとなっている。
【0053】〈検索部〉検索部13は、第2索引テーブ
ル30、第1索引テーブル40の順に検索してデータ部
50からデータを検索するものである。
【0054】この検索部13は、ハッシュ関数を有し、
従業員番号が入力されると、従業員番号をハッシュ値に
変換するようにされている。検索部13は、変換したハ
ッシュ値により第2索引テーブル30を検索し、変換し
たハッシュ値と同一のハッシュ値が格納されているブロ
ックを、第1ブロック41と第2ブロック42とのいず
れか一方から特定する。これは、変換したハッシュ値
と、第2索引テーブル30に格納されているハッシュ値
との大小を順に比較することにより、ハッシュ値が属す
るハッシュ値群を特定することにより行う。
【0055】検索部13は、各ハッシュ値群の先頭の値
であるハッシュ値99とハッシュ値91とを有してお
り、その特定したハッシュ値群の先頭に格納されている
ハッシュ値99またはハッシュ値91に対応して格納さ
れたポインタに従い、第1索引テーブル40の第1ブロ
ック41と第2ブロック42との一方において変換した
ハッシュ値を検索する。
【0056】次に、検索したハッシュ値に対応する従業
員番号と検索用に入力した従業員番号とを対比し、同一
の従業員番号を検索対象として特定する。最後に、この
従業員番号に対応して格納されたポインタの指示に従い
データ部50から氏名を検索するようにされている。
【0057】〈登録部〉登録部14は、氏名と従業員番
号とが入力されると、データ部50にこれらを登録する
ようにされている。また、ハッシュ変換部12からハッ
シュ値が入力されるようになっており、ハッシュ値が入
力されると、第2索引テーブル30において、ハッシュ
値を格納する第1索引テーブルのブロックを第1ブロッ
ク41と第2ブロック42との一方から特定する。次に
特定したブロックにおいて、ハッシュ値とこのハッシュ
値に対応する従業員番号とこの従業員番号のデータ部5
0における格納位置を示すポインタとを格納し、さら
に、一つのハッシュ値下に属する従業員番号の格納数を
1つ加算するようにされている。
【0058】もっとも、第1索引テーブル40の特定し
たブロックにおいて、入力されたハッシュ値と同一のハ
ッシュ値が既に格納されている場合は、そのハッシュ値
に属するものとして従業員番号を第1索引テーブル40
に登録するとともに、当該ハッシュ値に属する従業員番
号数の値を1つ加算するようにされている。
【0059】〈削除部〉削除部14は、氏名と従業員番
号とが入力されると、データ部50から氏名と従業員番
号とを削除するようにされている。また、ハッシュ変換
部12からハッシュ値が入力される。すると、まず、第
2索引テーブル30において、入力されたハッシュ値と
格納されたハッシュ値との大小を比較して、同一のハッ
シュ値が格納されたブロックを第1ブロック41と第2
ブロック42との一方から特定する。
【0060】次に、特定した第1索引テーブル40のブ
ロックにおいて、削除氏名に対応する従業員番号のハッ
シュ値を検索する。そして、そのハッシュ値に属する従
業員番号が1のとき、当該従業員番号とハッシュ値とポ
インタとを削除するとともに従業員番号の格納数を1つ
減算するようにされている。
【0061】このとき、ハッシュ値に属する従業員番号
の格納数が複数のときは、入力された従業員番号と格納
されている従業員番号とを対比して、削除氏名対応の従
業員番号を特定する。そして、この従業員番号とポイン
タとを削除するとともに、当該ハッシュ値下に属する従
業員番号の数の値を1つ減算するようにされている。
【0062】〈実施の形態の作用〉以上説明したデータ
管理装置10の作用を図1と図2とを用いて説明する。
例えば、氏名香川、従業員番号5443を新規に登録す
る場合と追加する場合とにおけるデータ管理10の動作
について説明する。
【0063】まず、登録部14に氏名香川、従業員番号
5443が入力されると、登録部14はこれらをデータ
部50に登録する。このとき、ハッシュ変換部12に従
業員番号5443が入力される。
【0064】次にハッシュ変換部12は従業員番号54
43をハッシュ値97に変換する。すなわちh=(54
+43)mod100=97である。このハッシュ値9
7は登録部14に入力される。
【0065】次に、登録部14は、この変換されたハッ
シュ値97と第2索引テーブル30に格納されているハ
ッシュ値99との大小を比較し97≦99と認識する。
同様にハッシュ値97とハッシュ値91との大小を比較
し、91<97と認識する。これにより、登録部14
は、ハッシュ値97を格納するハッシュ値群の所定範囲
は、91<97≦99と認識する。このとき、登録部1
4に格納されているハッシュ値群の先頭の値99より、
登録部14は、ハッシュ値99が先頭に格納されている
第1ブロック41をハッシュ値97が格納されるブロッ
クと特定する。
【0066】次に、第2索引テーブル30に格納された
ハッシュ値99に対応するポインタの指示に従い、第1
ブロック41において変換したハッシュ値97と格納し
てあるハッシュ値とを先頭のハッシュ値99から順に対
比することにより同一のハッシュ値97を検索する。
【0067】このとき、第1ブロック41には同一のハ
ッシュ値97は格納されていないものとする。登録部1
4は、未だハッシュ値97が格納されていないことを認
識すると、第1ブロック41にハッシュ値97を登録す
る。また、このハッシュ値97を変換する元になった従
業員番号5443とデータ部50における従業員番号5
443の格納位置を示すポインタとを登録する。また、
ハッシュ値97下に属する従業員番号の格納数を1つ換
算する。
【0068】なお、第1ブロック41に既にハッシュ値
97が格納されている場合は、同一のハッシュ値97を
検索すると、登録部14は、ハッシュ値97に対応する
従業員番号を格納するセルに既に格納されている従業員
番号5443に加え、従業員番号4354を登録する。
また、従業員番号4354のデータ部50における格納
位置を示すポインタを登録する。さらに、ハッシュ値9
7下に属する従業員番号の格納数1に1つ加算し2とす
る。
【0069】このようにして、次々とデータを登録する
と、図1に示すデータ部50と第1索引テーブル40と
のようになる。このようなデータの格納状況において、
データ部50から、例えば、氏名佐々木、従業員番号4
354を検索する場合のデータ管理装置10の動作を図
1と図3とを用いて以下に説明する。
【0070】まず、検索部13に従業員番号4354が
入力される。すると、検索部13はハッシュ関数を呼び
出し、h=(43+54)mod100=97の演算を
行い、従業員番号4354をハッシュ値97に変換す
る。次に、検索部13はハッシュ値97により、第2索
引テーブル30において、変換されたハッシュ値97と
格納されているハッシュ値99とを比較し、97≦99
と認識する。
【0071】同様にハッシュ値97とハッシュ値91と
の大小を比較し、91<97と認識する。これにより、
検索部13は、ハッシュ値97を格納するハッシュ値群
の所定範囲は、91<97≦99と認識する。このと
き、検索部13に格納されているハッシュ値群の先頭の
値99より、検索部13は、ハッシュ値99が先頭に格
納されている第1ブロック41をハッシュ値97が格納
されるブロックと特定する。
【0072】次に、第2索引テーブル30に格納された
ハッシュ値99に対応して格納されたポインタの指示に
従い、第1ブロック41において変換したハッシュ値9
7と格納してあるハッシュ値とを先頭のハッシュ値99
から順に対比することにより同一のハッシュ値97を検
索する。
【0073】この同一のハッシュ値97を検索すると、
次に検索部13は、このハッシュ値97下に属する従業
員番号の格納数2を検索し、格納されている従業員番号
と、検索用に入力された従業員番号4354との比較を
最大2回行えば良いことを認識する。そして、従業員番
号を上から順に対比し、2回目の対比において、同一の
従業員番号4354を検索し、この同一の従業員番号4
354を検索対象として特定する。
【0074】最後に、この従業員番号4354に対応し
て格納されたデータ部50における従業員番号4354
の格納位置を示すポインタに従い、データ部50から氏
名佐々木を検索する。
【0075】このとき、ハッシュ値97下に属する従業
員番号の格納数が1である場合は、従業員番号の対比を
一度だけ行い検索対象を特定し、従業員番号4354に
対応するポインタに従ってデータ部50から氏名佐々木
を検索する。
【0076】なお、検索部13は、第1索引テーブル4
0においてハッシュ値97を検索できないときは該当氏
名なしのメッセージを出し、CRT等の出力装置が表示
するようにされている。
【0077】〈データの削除〉次に、データ部50に格
納した氏名山田、従業員番号8110を削除する場合の
データ管理装置10の動作を図1と図4とを用いて以下
に説明する。
【0078】まず、削除部15に氏名山田と従業員番号
8110とが入力されると、ハッシュ変換部12に従業
員番号8110が入力される。すると、ハッシュ変換部
12がハッシュ関数を呼び出し、h=(81+10)m
od100=91の演算を行い、従業員番号8110を
ハッシュ値91に変換する。このハッシュ値91は削除
部15に送られる。
【0079】次に、削除部15は、この変換されたハッ
シュ値91と第2索引テーブル30に格納されているハ
ッシュ値99との大小を比較し91≦99と認識する。
次ににハッシュ値91とハッシュ値91とを比較し、9
1≦91と認識する。この場合は、変換したハッシュ値
91がハッシュ値群の先頭の値91と一致するため、削
除部15は、ハッシュ値91が先頭に格納されている第
2ブロック42をハッシュ値91が格納されるブロック
と特定する。
【0080】次に、第2索引テーブル30に格納された
ハッシュ値91に対応するポインタの指示に従い、第1
ブロック41において変換したハッシュ値91と格納し
てあるハッシュ値とを先頭のハッシュ値99から順に対
比することにより同一のハッシュ値91を検索する。
【0081】このとき、ハッシュ値91下に属する従業
員番号の格納数が1である場合は、入力された従業員番
号8110と格納されている従業員番号8110とを1
回対比し、削除データに対応する従業員番号8110を
特定する。そして、第1索引テーブル40からハッシュ
値91と従業員番号8110とポインタとを削除する。
また、ハッシュ値91下に属する従業員番号の格納数を
1つ減算する。
【0082】そして、削除するポインタをもとに、デー
タ部50から氏名山田と従業員番号8110とを削除す
る。一方、従業員番号の格納数が複数の場合、すなわ
ち、図1のように、従業員番号8110の他に従業員番
号1081が格納されている場合は、入力された従業員
番号8110と格納されている従業員番号との対比を最
大2回行えば良いことを認識する。そして、従業員番号
の格納順に上から対比を行い、一回目の対比で従業員番
号同士が一致するため、この従業員番号8110を削除
氏名に対応する従業員番号8110と特定する。そし
て、第1索引テーブル40の第2ブロック42から従業
員番号8110とこの8110に対応するポインタとを
削除する。また、ハッシュ値91下に属する従業員番号
の格納数を一つ減算する。
【0083】そして、ポインタをもとに、データ部50
から氏名山田と従業員番号8110とを削除する。 〈データの更新〉データ部50に格納した氏名を更新す
る場合におけるデータ管理装置の動作は、データ部50
から氏名と従業員番号とを削除し、続けて氏名と従業員
番号とを追加する場合の動作と同様にして行われる。し
たがって、詳細な説明は省略する。
【0084】〈実施の形態の効果〉以上説明した実施の
形態にかかるデータ管理装置の効果を以下に述べる。デ
ータ管理装置10によると、第2索引テーブル30と第
1索引テーブル40とには、ハッシュ変換手段12によ
り変換されたハッシュ値が格納されている。このハッシ
ュ値は、元の識別情報である従業員番号に比べると2分
の1のビット長である。従って、第2索引テーブル30
と第1索引テーブル40とに格納された情報量は全体と
して減少する。このため、検索部13は、データ検索を
短時間で行うことができる。
【0085】また、第2索引テーブル30を有している
ため、変換されたハッシュ値が格納されたブロック4
1、42を早く検索することができる。また、登録部1
4と削除部15とを備えることにより、常に最新のデー
タ部50の格納内容に対応する索引テーブル30と第1
索引テーブル40とを再編成することができる。この再
編成も短時間で処理することができる。
【0086】また、第1索引テーブル40に従業員番号
を格納するため、ハッシュ値の衝突が生じる場合であっ
ても、検索手段は正確にデータを検索することができ
る。
【0087】
【発明の効果】本発明のデータ管理装置によると、ハッ
シュ変換手段によりデータの識別情報をハッシュ関数に
従って識別情報のビット長よりも短いハッシュ値に変換
するため、索引テーブルに格納する情報量の減少を図る
ことができる。このため、記憶手段に格納したデータの
検索時間を短縮することができる。また、ハッシュ値の
衝突の発生に拘わらず適切にデータを検索することがで
きる。
【図面の簡単な説明】
【図1】図1は、本発明の実施の形態にかかるデータ管
理装置の概要を示すブロック図である。
【図2】図2は、データ部にデータを登録する際におけ
るデータ管理装置の動作の手順を示すフローチャートで
ある。
【図3】図4は、データ部に格納したデータを検索する
際におけるデータ管理装置の動作の手順を示すフローチ
ャートである。
【図4】図4は、データ部からデータを削除する際にお
けるデータ管理装置の動作の手順を示すフローチャート
である。
【図5】図5は、従来のデータ管理装置の概要を示すブ
ロック図である。
【符号の説明】
12 ハッシュ変換部 13 検索部 14 登録部 15 削除部 20 記憶部 30 第2索引テーブル 40 第1索引テーブル 41 第1ブロック 42 第2ブロック 50 データ部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 守屋 圭司 長野県松本市深志1丁目765番地 株式会 社富士通パソコンラボ内

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 複数のデータとこのデータに対応する検
    索用の識別情報とを格納するデータ部と、 前記識別情報をハッシュ関数に従って識別情報のビット
    長より短いハッシュ値に変換するハッシュ変換手段と、 前記ハッシュ変換手段により変換されたハッシュ値を複
    数所定範囲でまとめたハッシュ値群、このハッシュ値群
    に対応する識別情報、及び、この識別情報のデータ部に
    おける格納位置、を格納する複数のブロックからなる第
    1索引テーブルと、 前記第1索引テーブルの各ブロックの先頭に格納される
    ハッシュ値、及び、このハッシュ値の第1索引テーブル
    における格納位置、を格納する第2索引テーブルと、 データ検索時に入力された識別情報をハッシュ値に変換
    し、このハッシュ値と第2索引テーブルに格納された各
    ハッシュ値との大小を比較して同一のハッシュ値が格納
    された第1索引テーブルのブロックを特定し、そのブロ
    ックにおいて同一のハッシュ値を検索し、検索したハッ
    シュ値に対応する識別情報と検索用に入力した識別情報
    とを対比して同一の識別情報を検索対象として特定し、
    この識別情報より前記データ部から対応データを検索す
    る検索手段と、 を備えたデータ管理装置。
JP24486195A 1995-09-22 1995-09-22 データ管理装置 Expired - Fee Related JP3647940B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24486195A JP3647940B2 (ja) 1995-09-22 1995-09-22 データ管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24486195A JP3647940B2 (ja) 1995-09-22 1995-09-22 データ管理装置

Publications (2)

Publication Number Publication Date
JPH0991303A true JPH0991303A (ja) 1997-04-04
JP3647940B2 JP3647940B2 (ja) 2005-05-18

Family

ID=17125088

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24486195A Expired - Fee Related JP3647940B2 (ja) 1995-09-22 1995-09-22 データ管理装置

Country Status (1)

Country Link
JP (1) JP3647940B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100325688B1 (ko) * 1999-11-19 2002-02-25 오길록 해쉬 인덱스 구조의 확장 해슁 디렉토리 분할 시점 제어방법 및 이를 이용한 엔트리 삽입, 삭제, 검색 방법
US6978368B1 (en) 1998-10-06 2005-12-20 Hitachi, Ltd. Method for detecting invalid electronic storage media and card system using the method
JP2007304985A (ja) * 2006-05-12 2007-11-22 Fujitsu Ltd プレゼンス情報を取り扱うシステム
JP2009140302A (ja) * 2007-12-07 2009-06-25 Hitachi Ltd 転置インデックス作成装置及びフォワードインデックス作成装置
CN101957858A (zh) * 2010-09-27 2011-01-26 中兴通讯股份有限公司 数据比对方法和装置
JP2011203958A (ja) * 2010-03-25 2011-10-13 Nec System Technologies Ltd データ処理装置、データ処理方法およびプログラム
JP4810611B2 (ja) * 2006-09-06 2011-11-09 マイクロソフト コーポレーション 暗号化されたデータの検索

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04123171A (ja) * 1990-12-25 1992-04-23 Sony Corp データ検索方法
JPH06162092A (ja) * 1992-11-18 1994-06-10 Fujitsu Ltd 情報検索装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04123171A (ja) * 1990-12-25 1992-04-23 Sony Corp データ検索方法
JPH06162092A (ja) * 1992-11-18 1994-06-10 Fujitsu Ltd 情報検索装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6978368B1 (en) 1998-10-06 2005-12-20 Hitachi, Ltd. Method for detecting invalid electronic storage media and card system using the method
KR100325688B1 (ko) * 1999-11-19 2002-02-25 오길록 해쉬 인덱스 구조의 확장 해슁 디렉토리 분할 시점 제어방법 및 이를 이용한 엔트리 삽입, 삭제, 검색 방법
JP2007304985A (ja) * 2006-05-12 2007-11-22 Fujitsu Ltd プレゼンス情報を取り扱うシステム
JP4810611B2 (ja) * 2006-09-06 2011-11-09 マイクロソフト コーポレーション 暗号化されたデータの検索
JP2009140302A (ja) * 2007-12-07 2009-06-25 Hitachi Ltd 転置インデックス作成装置及びフォワードインデックス作成装置
JP2011203958A (ja) * 2010-03-25 2011-10-13 Nec System Technologies Ltd データ処理装置、データ処理方法およびプログラム
CN101957858A (zh) * 2010-09-27 2011-01-26 中兴通讯股份有限公司 数据比对方法和装置
WO2012041110A1 (zh) * 2010-09-27 2012-04-05 中兴通讯股份有限公司 数据比对方法和装置

Also Published As

Publication number Publication date
JP3647940B2 (ja) 2005-05-18

Similar Documents

Publication Publication Date Title
US6782380B1 (en) Method and system for indexing and searching contents of extensible mark-up language (XML) documents
US5745904A (en) Buffered table user index
US4775956A (en) Method and system for information storing and retrieval using word stems and derivative pattern codes representing familes of affixes
US6675160B2 (en) Database processing method, apparatus for carrying out the same and medium storing processing program
US5950184A (en) Indexing a database by finite-state transducer
JPH0991303A (ja) データ管理装置
JPH09305622A (ja) 文書検索機能を有するデータベース管理方法およびシステム
JP2880192B2 (ja) 文字列検索方法及び装置
JPH0773187A (ja) 検索システム
JP2000322416A (ja) 文書検索装置
JPH05204978A (ja) 情報検索装置
JPH03137772A (ja) データベース利用システム
JPS6118071A (ja) 辞書検索方式
JPS6295628A (ja) インデクスキ−管理方式
JPS61251941A (ja) デ−タベ−ス管理方式
JP3644765B2 (ja) 文書管理方式および文書管理方法
JPH0546666A (ja) 情報検索装置
JPS60105060A (ja) 内容検索処理方式
JPH10301940A (ja) 情報処理装置及びその方法
JPH05165891A (ja) データベースのデータ登録・検索方式
JPH09147039A (ja) 為替処理方法及び装置
JPS61267828A (ja) 情報登録検索装置
JPH0969113A (ja) 文書管理方式
JPH09179762A (ja) 索引順編成型ファイルの簡易照会方法
JPH0225974A (ja) データベース更新検索方式

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041019

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041210

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: 20050201

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050210

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080218

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090218

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090218

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100218

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110218

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110218

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120218

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees