JPH1040255A - ハッシュ表管理装置 - Google Patents

ハッシュ表管理装置

Info

Publication number
JPH1040255A
JPH1040255A JP8198796A JP19879696A JPH1040255A JP H1040255 A JPH1040255 A JP H1040255A JP 8198796 A JP8198796 A JP 8198796A JP 19879696 A JP19879696 A JP 19879696A JP H1040255 A JPH1040255 A JP H1040255A
Authority
JP
Japan
Prior art keywords
binary tree
hash table
node
subtree
search
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
JP8198796A
Other languages
English (en)
Inventor
Kenji Kuribayashi
憲司 栗林
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.)
NEC Solution Innovators Ltd
Original Assignee
NEC Solution Innovators 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 NEC Solution Innovators Ltd filed Critical NEC Solution Innovators Ltd
Priority to JP8198796A priority Critical patent/JPH1040255A/ja
Publication of JPH1040255A publication Critical patent/JPH1040255A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 ハッシュ表に対する検索処理性能を低下させ
ないようにする。 【解決手段】 ハッシュ表103のエントリに対し二分
木構造でキーを管理し、登録手段101は、検索手段1
02によってハッシュ表を検索する。検索手段102は
ハッシュ表検索を行なうと同時に、二分木検索経路記録
手段105を作成する。登録手段101は、未登録キー
の登録時に、二分木バランス手段104によって二分木
をバランスさせる。二分木バランス手段は、二分木検索
経路記録手段105によって節の入れ換え処理を行ない
二分木をバランスさせる。これにより、データの登録順
序に関係なくバランスのとれた二分木を作成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データベース管理
システムにおけるハッシュ表管理装置に関し、特にシノ
ニム(同義語)の管理に関するものである。
【0002】
【従来の技術】従来、この種のハッシュ表管理は、キー
の衝突が多数発生しても検索効率を低下させないため
に、例えば特開平1−099131号公報に示されるよ
うに、同一のハッシュ値に変換された異なるキーを二分
木構造でチェーンさせてハッシュ表に登録し、または検
索する方式を採っている。
【0003】
【発明が解決しようとする課題】しかし、上述した従来
の技術では、二分木構造に新しいキーを登録するとき
に、常に木構造の末端の節の下に新しいキーを管理する
節を作成するので、木構造にキーを登録する順序によっ
て偏りができてしまうため、キーの登録順によって検索
時の性能が低下するという問題点がある。特に、データ
ベース管理システムにおいては、数十万あるいは数百万
のオーダのレコードを扱うことと、キーの指定によって
は上記のような偏りが発生しやすいという特徴があるの
で、上述の問題は、より深刻なものとなる。
【0004】したがって、本発明の目的は、キーの登録
順がハッシュ表検索の検索効率に影響を与えないような
ハッシュ表管理装置を提供することにある。
【0005】
【課題を解決するための手段】本発明の装置は、データ
ベース管理システムにおけるハッシュ表管理装置におい
て、キーをハッシングした結果のハッシュ値によってキ
ーを分類し、同一分類に含まれるキーを二分木構造で管
理するハッシュ表と、与えられたキーから前記ハッシュ
表を検索する検索手段と、二分木構造検索時にハッシュ
表エントリから二分木構造をどのような順番で節を検索
したかを記憶しておく二分木検索経路記録手段と、検索
の結果、該当するキーを管理する節が見つからなかった
ら新たにこのキーを管理する節を追加する登録手段と、
1つの節を追加した後に、前記二分木検索経路記録手段
の記憶内容を逆順に参照しながら二分木をバランス処理
する二分木バランス手段とを有することを特徴とする。
【0006】
【発明の実施の形態】次に、本発明の実施例について、
図面を参照して説明する。
【0007】図1を参照すると、本発明の実施の形態
は、登録手段101と検索手段102とハッシュ表10
3と二分木バランス手段104と二分木検索経路記録手
段105とを含む。
【0008】ハッシュ表103は、各エントリに、キー
を管理する二分木構造のルートのアドレスを持ってい
る。図2には、ハッシュ表201の最初のエントリによ
って指定されるアドレスによって示されるルートの節2
02を起点に左右に分かれる二分木構造のルートが図示
されている。二分木を構成する各節の構造は、図3に示
すように、キー値と左部分木のポインタと、右部分木の
ポインタと、左部分木の深さと、右部分木の深さを情報
に持つ。この節で管理するキー値より小さいキー値は、
この節の左部分木の節で管理されている。また、この節
で管理するキー値より大きいキー値は、この節の右部分
木以下の節で管理されている。
【0009】新たに節をチェーンする場合、登録手段1
01は、先ず与えられたキー値に対し、検索手段102
を用いて検索(詳細は後述する)を行なう。検索の結
果、未登録キーならば、このキーを管理する新たな節を
作成し、検索手段102から返却された最後に比較した
節のアドレスを参照し、その節の左部分木または右部分
木に新たに作成した節をチェーンする。その後、二分木
バランス手段104を用いて、節を追加したことによる
各節における左右の部分木の深さの情報を更新すると共
に、アンバランスを修正する。
【0010】二分木バランス処理104は、二分木検索
経路記録手段105を、記録順とは逆の順番に参照しな
がら、二分木検索経路記録手段105の指す節以下の部
分木に対し左右の部分木の深さを更新し、その結果、左
右の部分木の深さの差が2以上になる節に対しては、深
さの差が1以下になるようにバランス処理を行なう。
【0011】検索手段102は、与えられたキー値をハ
ッシュし、ハッシュ値からハッシュ表103上のエント
リを選択し、そのエントリに繋がっている二分木に対
し、与えられたキー値による二分木検索を行なう。この
二分木検索の結果、同一キーを管理する節が見つかれ
ば、その旨のフラグとのそ節のアドレスを返却し、見つ
からなければ最後に比較した節のアドレスを返却する。
また、二分木検索時に辿った節のアドレスおよび左右ど
ちらのポインタを参照したかを、二分木検索経路記録手
段105に記録する。
【0012】次に、本実施例について、さらに詳細に説
明する。
【0013】図2は、ハッシュ表エントリで管理するバ
ランスされた二分木とその節の管理内容を示した説明図
である。図2を参照すると、ハッシュ表の一つのエント
リが二分木構造のルートの節202のアドレスを管理し
ている。各節は、図3に示すように、左部分木のポイン
タ、左部分木の深さ、右部分木のポインタ、右部分木の
深さ、およびキー値を情報として持つ。ルートの節20
2以下の二分木は、どの節を調べても、左右の部分木の
深さの差は1以下であり、また、各節で管理するキー値
よりも小さいキー値はこの節の左部分木以下の節で管理
され、大きいキー値は右部分木以下の節で管理されてい
る。
【0014】図4は、本発明を実施したシステムにおけ
る、二分木検索経路記録手段105と、二分木に節を登
録した後のバランス処理による二分木の変化を示した説
明図である。図4を参照すると、二分木ポインタ301
以下の二分木は、登録処理によって新たに登録する節3
03をチェーンした直後の状態である。二分木検索経路
記録手段302は、二分木ポインタ301が指す節から
順番に、節304のアドレスおよび右部分木検索の情
報、節305のアドレスおよび右部分木検索の情報、節
306のアドレスおよび左部分木検索の情報を記録して
いる。この状態では、節303より上位にある節304
の右部分木の深さ、節305の右部分木の深さ、節30
6の左部分木の深さは登録以前の状態である。
【0015】図5に示す二分木は、上記説明の二分木に
対しバランス処理を施した結果の状態を表している。図
4における節304およびその左部分木の状態は、節3
08およびその左部分木で表される通り変化しない。節
303は節308の右部分木としてポイントされ、節3
09となる。節305は節309の左部分木としてポイ
ントされ、節310となる。節306は節309の右部
分木としてポイントされ、節311となる。
【0016】図6は二分木バランス手段104によるバ
ランス処理の流れを示す図である。図6を参照すると、
401では、初期設定として、一つ前にバランス処理し
た節のポインタを保持するためのPRIORに、登録す
る節303のアドレスを設定する。
【0017】二分木検索経路記録手段105の配列を記
録した順番とは逆に参照して、節(図4の例では30
6)のアドレスとこの節において左部分木を検索したか
右部分木を検索したかの情報を取り出す(402)。こ
のとき、全て参照し終ったら(403)、処理を終了す
る。二分木検索記録により左部分木検索か右部分木検索
かをチェックし(404)、図4の例のように左部分木
検索ならば、405にて当該節306の左部分木のポイ
ンタにポインタPRIORの保持するアドレスを設定す
る。また、当該節306の左部分木の深さについても、
PROIRの指す節の左右の部分木の深さ(現時点では
共に0)の大きい方の値+1を設定する。逆に、右部分
木検索であったなら、406において左部分木と同様
に、右部分木のポインタと深さを設定する。以上の処理
の結果、節306の左部分木の深さは1、右部分木の深
さは0、左部分木のポインタは節303のアドレス、右
部分木のポインタはNULLとなり、図4のように節3
06に節303がチェーンされたことになる。
【0018】上記処理の結果、407において現在の節
306の左右の部分木の深さの差が2以上になったかど
うかチェックする。図4の例では、深さの差は1であ
る。深さの差が2以上ならば408でバランス処理ルー
チンを呼び出しバランス処理する。バランス処理が不要
なら現在の節306のアドレスをPRIORに設定し
(409)、402の処理以降を繰り返す。
【0019】図4の例では、節305について以上の処
理が繰り返される。今回は、404にて右検索と判断さ
れ、406にて、PRIORに保持された節306の左
部分木の深さ1に+1された2が現在の節305の右部
分木の深さとなる。この結果、407にて、節305の
左部分木の深さ0と、右部分木の深さの差が2以上とな
るのでバランス処理ルーチン408に入ることになる。
【0020】図7は、408で呼び出すバランス処理ル
ーチンの流れ図である。バランス処理は深さの差が2以
上になる場合に動作するものなので、現在の節、その下
位の節、さらにその下位の節の3レベルの節間でポイン
タチェーンを張り替える処理である。図7を参照する
と、先ず、現在の節の検索経路を調べる(501)。
【0021】図4の例のように、現在の節305の検索
経路が右ならば、さらに一つ前の節306の検索経路を
調べる(505)。図4の例のように、一つ前の節30
8の検索経路が左ならば、506で、一つ前の節306
の左部分木の節303をTOPの節とする。TOPの節
306の左部分木には現在の節305を繋ぎ、右部分木
には現在の節305の右部分木の節306を繋ぐ。TO
Pの節303に繋がっていた左部分木(図4の例ではN
ULL)は、TOPの節303の左部分木の節305の
右部分木して繋ぎ、またTOPの節303に繋がってい
た右部分木(図4の例ではNULL)は、TOPの節3
03の右部分木の節306の左部分木として繋ぐ。この
結果、図4の二分木は図5のようにバランスする。
【0022】505で一つ前の節の検索経路が右なら
ば、507で、現在の節の右部分木の節をTOPにし、
TOPの左部分木を現在の節の右部分木に繋ぎ、現在の
節をTOPの左部分木に繋ぐ。
【0023】一方、501において、検索経路が左なら
ば、さらに一つ前の節の検索経路を調べる(502)。
一つ前の節の検索経路が右ならば、503で、一つ前の
節の右部分木の節をTOPの節とする。TOPの右部分
木には現在の節を繋ぎ、左部分木には現在の節の左部分
木を繋ぐ。TOPに繋がっていた左部分木と右部分木
は、それぞれ、TOPの左部分木の節の右部分木と、T
OPの右部分木の節の左部分木として繋ぐ。
【0024】502で一つ前の節の検索経路が左なら
ば、504で、現在の節の左部分木の節をTOPにし、
TOPの右部分木を現在の節の左部分木に繋ぎ、現在の
節をTOPの右部分木に繋ぐ。
【0025】508で左右の部分木のポインタを繋ぎ替
えた節について左右の部分木の深さについても更新す
る。最後に、TOPの節をバランス処理結果の節として
呼び出し元に返却する(509)。
【0026】なお、以上に説明した実施例においては、
図6の407で、左部分木の深さと右部分木の深さが2
以上の場合にバランス処理ルーチン408に入るが、こ
れを3以上または4以上というように、処理ルーチンに
入る機会を少なくしてもよい。
【0027】また、図6の403で二分木検索経路記録
を逆順に参照するのを二分木構造のトップに至るまで行
っているが、途中迄にしてもよい。
【0028】
【発明の効果】本発明によれば、二分木構造をバランス
することにより、二分木の一部の部分木の深さが深くな
り、その部分のツリーチェーンを辿る検索効率が悪くな
ることを防ぐことができる。
【図面の簡単な説明】
【図1】本発明のデータベース管理システムにおけるハ
ッシュ表管理装置を示すブロック図である。
【図2】本発明のハッシュ表エントリで管理するバラン
スされた二分木例を示した説明図である。
【図3】本発明における節の構造を示す図である。
【図4】本発明における二分木検索経路記録手段と、二
分木に節を登録した後のバランス処理前二分木を示した
説明図である。
【図5】図4に示した二分木についてのバランス処理後
の状態を示した説明図である。
【図6】本発明を用いた二分木バランス処理の流れを示
すフローチャートである。
【図7】図6の二分木バランス処理のなかで呼び出すバ
ランス処理ルーチンの流れを示すフローチャートであ
る。
【符号の説明】
101 登録手段 102 検索手段 103,201 ハッシュ表 104 二分木バランス手段 105,302 二分木検索経路記録手段

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】データベース管理システムにおけるハッシ
    ュ表管理装置において、 キーをハッシングした結果のハッシュ値によってキーを
    分類し、同一分類に含まれるキーを二分木構造で管理す
    るハッシュ表と、 与えられたキーから前記ハッシュ表を検索する検索手段
    と、 二分木構造検索時にハッシュ表エントリから二分木構造
    をどのような順番で節を検索したかを記憶しておく二分
    木検索経路記録手段と、 検索の結果、該当するキーを管理する節が見つからなか
    ったら新たにこのキーを管理する節を追加する登録手段
    と、 1つの節を追加した後に、前記二分木検索経路記録手段
    の記憶内容を逆順に参照しながら二分木をバランス処理
    する二分木バランス手段とを有することを特徴としたハ
    ッシュ表管理装置。
  2. 【請求項2】前記バランス処理は、当該節に対する前記
    二分木検索経路記録手段の記憶内容が左(右)なら、当
    該節の左(右)部分木の深さを、一つ前にバランス処理
    した節の左部分木の深さと右部分木の深さのうちの大き
    い方にプラス1した値とし、この値が2以上のときに行
    うことを特徴とする請求項1記載のハッシュ表管理装
    置。
  3. 【請求項3】前記バランス処理は、当該二分木構造のト
    ップに至る全ての節について行うことを特徴とする請求
    項1記載のハッシュ表管理装置。
JP8198796A 1996-07-29 1996-07-29 ハッシュ表管理装置 Pending JPH1040255A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8198796A JPH1040255A (ja) 1996-07-29 1996-07-29 ハッシュ表管理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8198796A JPH1040255A (ja) 1996-07-29 1996-07-29 ハッシュ表管理装置

Publications (1)

Publication Number Publication Date
JPH1040255A true JPH1040255A (ja) 1998-02-13

Family

ID=16397055

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8198796A Pending JPH1040255A (ja) 1996-07-29 1996-07-29 ハッシュ表管理装置

Country Status (1)

Country Link
JP (1) JPH1040255A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002152187A (ja) * 2000-11-09 2002-05-24 Sony Corp 情報処理装置、および情報処理方法、並びにプログラム記憶媒体
JP2002198951A (ja) * 2000-12-26 2002-07-12 Sony Corp 情報処理システム、情報処理方法、および情報記録媒体、並びにプログラム記録媒体
JP2005130488A (ja) * 2003-10-03 2005-05-19 Nippon Telegr & Teleph Corp <Ntt> 時刻証明装置、時刻証明要求受付装置、時刻証明方法、時刻証明要求受付方法、時刻証明プログラム、時刻証明要求受付プログラム、時刻証明検証プログラム、およびプログラム記録媒体
US7263495B2 (en) * 2001-05-24 2007-08-28 Lightsurf Technologies, Inc. Order scheduling system and methodology
US7505599B2 (en) 2000-04-06 2009-03-17 Sony Corporation Information processing system and method for managing encrypted data with tag information
US7707410B2 (en) 2000-04-06 2010-04-27 Sony Corporation Information processing system and method
US8224829B2 (en) 2000-11-30 2012-07-17 Bernard Consulting Limited Database

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5790755A (en) * 1980-11-28 1982-06-05 Fujitsu Ltd Record storing method of file system
JPH0199131A (ja) * 1987-10-12 1989-04-18 Nec Corp 記号表の登録及び探索方式
JPH02227735A (ja) * 1989-02-28 1990-09-10 Nec Corp ネームテーブル探索装置
JPH038083A (ja) * 1989-06-06 1991-01-16 Fujitsu Ltd 識別子付情報の木構造管理方式
JPH0381830A (ja) * 1989-08-24 1991-04-08 Nec Corp ネームテーブル探索装置
JPH03260867A (ja) * 1990-03-12 1991-11-20 Mitsubishi Electric Corp データ処理システム
JPH0524549B2 (ja) * 1983-02-09 1993-04-08 Hitachi Ltd
JPH05120339A (ja) * 1991-05-24 1993-05-18 Nec Ic Microcomput Syst Ltd 二分木構造データ登録処理方法
JPH05135106A (ja) * 1991-11-08 1993-06-01 Nec Ic Microcomput Syst Ltd 二分木構造登録処理装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5790755A (en) * 1980-11-28 1982-06-05 Fujitsu Ltd Record storing method of file system
JPH0524549B2 (ja) * 1983-02-09 1993-04-08 Hitachi Ltd
JPH0199131A (ja) * 1987-10-12 1989-04-18 Nec Corp 記号表の登録及び探索方式
JPH02227735A (ja) * 1989-02-28 1990-09-10 Nec Corp ネームテーブル探索装置
JPH038083A (ja) * 1989-06-06 1991-01-16 Fujitsu Ltd 識別子付情報の木構造管理方式
JPH0381830A (ja) * 1989-08-24 1991-04-08 Nec Corp ネームテーブル探索装置
JPH03260867A (ja) * 1990-03-12 1991-11-20 Mitsubishi Electric Corp データ処理システム
JPH05120339A (ja) * 1991-05-24 1993-05-18 Nec Ic Microcomput Syst Ltd 二分木構造データ登録処理方法
JPH05135106A (ja) * 1991-11-08 1993-06-01 Nec Ic Microcomput Syst Ltd 二分木構造登録処理装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7505599B2 (en) 2000-04-06 2009-03-17 Sony Corporation Information processing system and method for managing encrypted data with tag information
US7707410B2 (en) 2000-04-06 2010-04-27 Sony Corporation Information processing system and method
JP2002152187A (ja) * 2000-11-09 2002-05-24 Sony Corp 情報処理装置、および情報処理方法、並びにプログラム記憶媒体
JP4622087B2 (ja) * 2000-11-09 2011-02-02 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム記憶媒体
US8224829B2 (en) 2000-11-30 2012-07-17 Bernard Consulting Limited Database
JP2002198951A (ja) * 2000-12-26 2002-07-12 Sony Corp 情報処理システム、情報処理方法、および情報記録媒体、並びにプログラム記録媒体
US7263495B2 (en) * 2001-05-24 2007-08-28 Lightsurf Technologies, Inc. Order scheduling system and methodology
JP2005130488A (ja) * 2003-10-03 2005-05-19 Nippon Telegr & Teleph Corp <Ntt> 時刻証明装置、時刻証明要求受付装置、時刻証明方法、時刻証明要求受付方法、時刻証明プログラム、時刻証明要求受付プログラム、時刻証明検証プログラム、およびプログラム記録媒体
JP4602729B2 (ja) * 2003-10-03 2010-12-22 日本電信電話株式会社 時刻証明装置、時刻証明要求受付装置、時刻証明方法、時刻証明要求受付方法、時刻証明プログラム、時刻証明要求受付プログラム、時刻証明検証プログラム、およびプログラム記録媒体

Similar Documents

Publication Publication Date Title
US6338053B2 (en) Inventory managing method for automatic inventory retrieval and apparatus thereof
US7080091B2 (en) Inverted index system and method for numeric attributes
US7409401B2 (en) Method and system for supporting multivalue attributes in a database system
US8103658B2 (en) Index backbone join
US20070073759A1 (en) Methods and systems for joining database tables using indexing data structures
US20030018688A1 (en) Method and apparatus to facilitate accessing data in network management protocol tables
US7873041B2 (en) Method and apparatus for searching forwarding table
US8312050B2 (en) Avoiding database related joins with specialized index structures
US20040167922A1 (en) Database processing system, method, program and program storage device
CN109189759A (zh) Kv存储系统中的数据读取方法、数据查询方法、装置及设备
JPH1040255A (ja) ハッシュ表管理装置
US6678675B1 (en) Techniques for searching for best matches in tables of information
CN115577147A (zh) 可视化情报图谱检索方法、装置、电子设备及存储介质
JPH10240741A (ja) 木構造型データの管理方法
US6763348B2 (en) Method and apparatus for searching databases employing a trie search structure
CN107204927B (zh) 一种icn网络中基于名字拆分的信息查找方法
JPH11242627A (ja) データアクセス方法およびプログラムを記録した媒体
JPH04337867A (ja) データベース検索システム
KR100535839B1 (ko) 대표번호 검색방법
JP2697559B2 (ja) 情報検索装置
JP3092524B2 (ja) ルーチングシステム
CN118484459A (zh) 一种bom一致性的优化方法及设备、存储介质
CN117097505A (zh) 基于哈希链表的流量处理规则维护方法、装置及电子设备
JPH06149635A (ja) レコード追加処理方法
JP2001155028A (ja) リレーショナルデータベースにおける集約演算処理方法、その装置及び集約演算処理プログラムを記録したコンピュータ読み取り可能な記録媒体

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19990525