JPH0528194A - データアクセス方式 - Google Patents

データアクセス方式

Info

Publication number
JPH0528194A
JPH0528194A JP3182640A JP18264091A JPH0528194A JP H0528194 A JPH0528194 A JP H0528194A JP 3182640 A JP3182640 A JP 3182640A JP 18264091 A JP18264091 A JP 18264091A JP H0528194 A JPH0528194 A JP H0528194A
Authority
JP
Japan
Prior art keywords
key
data
chain
index
pointer
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
JP3182640A
Other languages
English (en)
Other versions
JP2990312B2 (ja
Inventor
Tadanobu Miyauchi
忠信 宮内
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP3182640A priority Critical patent/JP2990312B2/ja
Publication of JPH0528194A publication Critical patent/JPH0528194A/ja
Application granted granted Critical
Publication of JP2990312B2 publication Critical patent/JP2990312B2/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)【要約】 【目的】チェイン付きハッシュ法におけるキー衝突時の
チェックに際し、データサイズの縮小と検索の高速性維
持を同時に実現することができるようにする。 【構成】チェイン付きインデックス内のチェインポイン
タに、キーに関する情報を示す識別子を付加するように
し、このキー識別子に基づいて衝突時のチェックを行う
ようにした。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、データアクセス方式
に関し、特にチェイン付きハッシュ法の衝突処理方式に
関する。
【0002】
【従来の技術】従来、キーに基づいたデータ検索におけ
る高速なデータ構造としては、ハッシュ法が良く知られ
ている(参考文献:A.Aho他著,大野義夫訳,「デ
ータ構造とアルゴリズム」[情報処理シリーズ11],
培風館(1987))。ハッシュ法においては、キー衝
突時の取り扱いが問題となり、解決策として様々な方法
が提案されている。ハッシュ法は、オープンハッシュ法
とチェイン付きハッシュ法に大別され、一般に衝突が多
い場合はチェイン付きハッシュ法が採用されている。特
に、辞書的なデータを扱う場合は、本質的に衝突が多い
うえ、キーが一意でない場合も多い。また、こうした辞
書的なデータは規模が非常に大きいことがしばしばであ
り、主記憶容量の制限などから、データの実体をファイ
ルなどの2次記憶上に持つため、チェイン付きハッシュ
法が用いられている。
【0003】
【発明が解決しようとする課題】ところで、チェイン付
きハッシュ法では、衝突の際にチェインを辿って、求め
るキーとの比較によるチェックを順次行うが、この比較
のためのキー情報をいかに保持するかが問題となる。例
えば、キー情報をチェイン中に包含すると高速性は維持
されるが、本来データサイズが大きいためインデックス
情報が巨大なものとなる。また、チェインにはポインタ
のみ持ち、データの実体を参照するようにするとアクセ
スが遅くなってしまう。特に、逆引きのためのインデッ
クスを保持する場合にこの問題は顕著となり、さらに挿
入や削除も遅くなる。上述した参考文献「データ構造と
アルゴリズム」でも、こうした二次インデックスを用い
た場合の問題が述べられている。
【0004】一般に、英和辞書を代表とする電子辞書で
は、数万から数十万語の見出し語を持ち、さらに見出し
語以外の派生語、意味などからのインデックスまで含め
ると、データサイズも非常に大きくなる。そのうえ、対
話的に利用されることが多いため、検索には高速性が要
求される。したがって、これまでのデータアクセス方式
では、用途やハードウェアの制限などに応じて速度と容
量のいずれかを選択する形で妥協せざるを得なかったの
が現状である。
【0005】この発明は、辞書的なデータを対象とした
ハッシュ法におけるキー衝突のチェックに際し、データ
サイズの縮小と検索の高速性維持を同時に実現すること
ができるデータアクセス方式を提供することを目的とす
る。
【0006】
【課題を解決するための手段】この発明に係わるデータ
アクセス方式では、複数の検索キーと、ハッシュ表と、
チェイン付きインデックスと、実データファイルとを有
するデータ構造を具え、前記チェイン付きインデックス
内のチェインポインタに、キーに関する情報を示すキー
識別子を付加するようにしている。
【0007】前記キー識別子は、通常の検索キーに関し
ては識別に必要な情報のみを持つようにする。また、キ
ー識別子はチェインのリンクにおいて直前のキーと同一
である場合は、省略するように指定してもよい。さら
に、対象とするデータが名前を有し、検索キーが名前そ
のものである場合は、キー識別子は実データの名前を参
照するように指定することができる。同様に、対象とす
るデータが名前を有し、検索キーが名前から解釈可能で
ある場合は、キー識別子は実データの名前を解釈して参
照するように指定することができる。
【0008】
【作用】上記データアクセス方式では、まず、与えられ
た検索キーのハッシュ値を求め、ハッシュ表の該当する
位置の内容を読み込む。ここで、チェインポインタにキ
ー識別子が付加されているときは、このキー識別子に基
づいて現在のインデックスレコードがキーに対応するか
どうかを判別する。インデックスレコードがキーに対応
するときは、データポインタを読み込み、実データファ
イル上の位置からデータレコードを取り出して結果のリ
ストに追加する。
【0009】このように、チェイン付きインデックス内
にキーに関する情報を圧縮した形式でキー識別子として
埋め込むことにより、キー衝突時の比較のためのキー情
報を効率よく利用できるようになり、データサイズの縮
小と検索の高速性維持を同時に実現することが可能とな
る。
【0010】
【実施例】以下、この発明に係わるデータアクセス方式
を英和電子辞書システムに適用した場合の実施例を説明
する。
【0011】図2は、英和電子辞書システムの概略構成
を示すブロック図である。この計算機システムは、表示
画面上に各種のデータなどを表示するCRT21と、前
記CRT21での表示を制御するCRTドライバ22
と、コマンドや文字列、数値などの入力を行うキーボー
ド23と、ポインティングデバイスであるマウス24
と、ユーザーによるキーボード23やマウス24の操作
によって、各種のデータを出力するキーボード/マウス
ドライバ25と、ディスク装置26、ディスク装置ドラ
イバ27、主記憶装置28、CPU(中央処理装置)2
9とから構成されている。
【0012】ディスク装置26は、大量のデータを格納
するための二次記憶装置であり、後述するチェイン付き
インデックスや実データファイルなどが格納されてい
る。また、ディスク装置26のデータの入出力はディス
ク装置ドライバ27で制御されている。
【0013】主記憶装置28は、アプリケーションプロ
グラム、及びキーボード23やマウス24から入力され
た文字や数値などのデータのほか、後述するハッシュ表
を格納している。
【0014】CPU29は、システム全体の制御を行う
と共に、各種の命令に基づいて所定のデータに対する演
算処理を行う回路であり、後述のフローチャートに基づ
いてデータの検索処理を実行する。
【0015】上記英和電子辞書システムにおけるデータ
構造の概要を図1に示す。図1のデータ構造は、基本的
にはハッシュ表11、チェイン付きインデックス12、
実データファイル13の3つから構成されている。図に
示すように、通常の見出し語(a、Aなど)からの検索
に加え、転置キーの設定により単語の語義(ひとつの、
イ音など)や発音のカタカナ表記(エ、アなど)からの
検索を行えるようになっており、このため、キー/レコ
ード数ともに非常に多く、またあるキーに対するレコー
ドも一意ではない。
【0016】まず、ハッシュ表11は検索キーkのハッ
シュ値h(k)が指すアドレスよりチェイン付きインデ
ックス12へのポインタを3バイトで保持する。対応す
るキーが未登録の場合、FFFFFFHを保持する。
【0017】次に、チェイン付きインデックス12の詳
細を説明する。チェイン付きインデックス12は、デー
タレコードに一対一で対応する情報を持つインデックス
レコードの集合である。インデックスレコードの構造を
図3に示す。インデックスレコードは、レコードに設定
された全てのキーに関するチェインポインタ1〜nと、
キー識別子1〜nのペアの並び、及びデータファイルへ
のポインタ(データポインタ)を保持している。
【0018】チェインポインタは、対応するキーに関す
る次のインデックスレコードへのポインタであり、衝突
により同じハッシュ値を持つ登録キーのリスト(データ
のつながり)が構成される。各リストの先頭はハッシュ
表から直接指されており、衝突がある場合、各ポインタ
は図4に示すように次のチェインポインタのアドレスを
保持し、リストの終端の場合にはnilとして0000
00Hが格納される。チェインポインタは3バイトで表
現され、000000Hから7FFFFFHの値を取り
得る。
【0019】キー識別子はチェインポインタの直後に存
在し、入力キーが登録キーに対応するか否かのチェック
に用いられる。この実施例におけるキー識別子の記述ル
ールを以下に示す。なお、文字コードはEUCである。
【0020】(1)通常の検索キーにおいては、登録キ
ーの文字コード列の各文字コードの下位1バイトと00
80Hの論理和のバイト列を順に格納する。
【0021】(2)登録キーが見出し語から導出できる
場合であれば80Hを格納する。これは、キーが見出し
語そのものである場合はもちろん、“A,a”や“colo
(u)r”といった見出し語では一般的な表記をルール化す
ることで解釈できる。
【0022】(3)登録キーがチェインの直前と同じで
ある場合は省略される。
【0023】このように、キー識別子を導入することに
より、衝突のチェックのために見出し語以外のキーでは
実データを参照する必要がなくなる。ただし、その場
合、登録キーの情報量は落ちている。これにより、万一
異なるキーにもかかわらずキー下位1バイトが全て同じ
で、かつハッシュ値も等しい場合の区別ができなくなる
が、ハッシュ関数を十分吟味すれば実用上問題ないと考
えられる。また、検索のみを対象にした電子辞書では、
登録キーの情報はデータレコードに持つ必要はないた
め、データ量を節約することができる。例えば、発音の
カタカナ表記はキー設定時に用意したものであるが、実
際には実データにも含まれていないし、キー識別子にも
他のキーとの識別のための情報しか存在していない。
【0024】データポインタには実データにおける実際
のデータレコードの先頭を指すアドレスが、デリミタF
FHに続けて3バイトで格納されている。データポイン
タがFFFFFFHである場合は、データレコードが削
除されていることを示す。
【0025】実データファイルはデータレコードの集合
であり、データレコードは次の形式を持つ。
【0026】(見出し語)(見出し区切り[NULL])
(内容部)(レコード区切り[LF])キー識別子に前述
のように80Hが用いられた場合、このデータレコード
の見出し語を参照することでキーの識別を行う。ただ
し、このように実データを参照することは、ポインタを
手操る回数や次記憶へのアクセスが増える点で速度の低
下を招くため、速度を重視する場合であれば通常の検索
キーと同様のキー識別子を用いてもよい。
【0027】実データファイル13(内容部)は実際の
辞書記述部分であるが、この実施例ではキー識別子によ
り検索キーの情報を含まないため、この内部にフィール
ドなどの概念は不要であり、内容はフラットなテキスト
でよい。データレコードは全体で一つのテキストファイ
ルとなる。
【0028】次に、上述した英和電子辞書システムによ
るデータ検索のアルゴリズムを、図5のフローチャート
を用いて説明する。
【0029】まず、初期化(ステップ101)の後、検
索キーのハッシュ値hを求め、ハッシュ表の位置hの内
容をインデックスポジションipとして読み込む(ステ
ップ102)。次に、ip=FFFFFFHであるかど
うかを判定する(ステップ103)。ここで、ip=F
FFFFFHであれば未登録キーとわかるので終了す
る。また、ip=FFFFFFHでないときは、チェイ
ン付きインデックス上の位置ipから3バイトをチェイ
ンポジションcpとして読み込み(ステップ104)、
[ip+3]≧80Hかどうかを判定する(ステップ1
05)。ここで、ip+3から80H以上のバイト列が
続けば、それをキー識別子krとして読み込む(ステッ
プ106)。また、省略されている場合は直前のものを
用いる。次に、krに基づいて現在のインデックスレコ
ードがキーに対応するか否かを判定し(ステップ10
7)、対応するときはチェイン付きインデックス上のF
FHまでスキップし、続く3バイトをデータポインタd
pとして読み込む(ステップ108)。続いて、dp=
FFFFFFHであるかどうかを判定する(ステップ1
09。ここで、dp=FFFFFFHでなければデータ
レコードは存在するので、データファイル上の位置dp
から、データレコードのフォーマットに従い0AH(=
LF)までを結果のリストに追加する(ステップ11
0)。次に、cp=0かどうかを判定し(ステップ10
1)、cp=0であるなら終了、そうでなければチェイ
ンが続いているので、ipにcpを代入して(ステップ
112)、ステップ104へ戻る。
【0030】なお、挿入、削除に関しても、チェインの
インデックスとデータの実体が分離されているため、ポ
インタのつなぎかえにより高速に実現可能である。
【0031】上記実施例ではインデックスをディスク装
置26に保持することを前提にしているが、主記憶装置
28の容量に余裕があれば主記憶装置28に保持するこ
とによりさらに高速化を図ることができる。
【0032】また、この発明に係わるデータアクセス方
式は、チェイン付きハッシュ法一般に適用可能であり、
上記実施例に示した英和電子辞書システムだけに限定さ
れるものではない。例えば、テキストデータベースなど
の大量の情報を高速に探索するシステムにおける基本的
なデータ構造として利用することもできる。
【0033】
【発明の効果】以上説明したように、この発明に係わる
データアクセス方式では、チェイン付きインデックス内
のチェインポインタに、キーに関する情報を示す識別子
を付加するようにしたため、キーの比較のためのキー情
報を効率よく利用できるようになり、データ検索の高速
性とデータサイズの節約が同時に可能となる。これによ
り、電子辞書を代表とする検索キーを主体とした検索を
非常に効率的に実現することが可能となる。
【図面の簡単な説明】
【図1】英和電子辞書システムにおけるデータ構造の概
要を示す図。
【図2】英和電子辞書システムの概略構成を示すブロッ
ク図。
【図3】インデックスレコードの構造を示す図。
【図4】インデックスレコードにおけるチェインポイン
タのリストを示す図。
【図5】英和電子辞書システムによるデータ検索のアル
ゴリズムを示すフローチャート。
【符号の説明】
11…ハッシュ表、12…チェイン付きインデックス、
13…実データファイル

Claims (1)

  1. 【特許請求の範囲】 【請求項1】ハッシュ表と、チェイン付きインデックス
    と、実データファイルとを有するデータ構造を具えたデ
    ータアクセス方式であって、前記チェイン付きインデッ
    クス内のチェインポインタに、キーに関する情報を示す
    識別子を付加したことを特徴とするデータアクセス方
    式。
JP3182640A 1991-07-23 1991-07-23 データアクセス方法および装置 Expired - Fee Related JP2990312B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3182640A JP2990312B2 (ja) 1991-07-23 1991-07-23 データアクセス方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3182640A JP2990312B2 (ja) 1991-07-23 1991-07-23 データアクセス方法および装置

Publications (2)

Publication Number Publication Date
JPH0528194A true JPH0528194A (ja) 1993-02-05
JP2990312B2 JP2990312B2 (ja) 1999-12-13

Family

ID=16121837

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3182640A Expired - Fee Related JP2990312B2 (ja) 1991-07-23 1991-07-23 データアクセス方法および装置

Country Status (1)

Country Link
JP (1) JP2990312B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099524A (ja) * 2004-09-30 2006-04-13 Nec Commun Syst Ltd データ構造およびデータ検索方法
CN109101640A (zh) * 2018-08-21 2018-12-28 赛凡信息科技(厦门)有限公司 一种对象数据在文件系统中的分布方案

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006099524A (ja) * 2004-09-30 2006-04-13 Nec Commun Syst Ltd データ構造およびデータ検索方法
CN109101640A (zh) * 2018-08-21 2018-12-28 赛凡信息科技(厦门)有限公司 一种对象数据在文件系统中的分布方案

Also Published As

Publication number Publication date
JP2990312B2 (ja) 1999-12-13

Similar Documents

Publication Publication Date Title
US5721899A (en) Retrieval apparatus using compressed trie node and retrieval method thereof
US4922417A (en) Method and apparatus for data hashing using selection from a table of random numbers in combination with folding and bit manipulation of the selected random numbers
US8190613B2 (en) System, method and program for creating index for database
US6778985B1 (en) Implementing descending indexes with a descend function
US20040221226A1 (en) Method and mechanism for processing queries for XML documents using an index
JPH10501912A (ja) Nグラム・ワード分解を用いた携帯型文書索引付け用のシステム及び方法
JPH02271468A (ja) データ処理方法
US5566329A (en) System and method for mutation of selected assignment operations on large data objects
JP3003915B2 (ja) 単語辞書検索装置
JPH09506195A (ja) 拡張属性ファイルシステム
KR20050020927A (ko) 구조화 문서의 데이터를 검색하는 장치 및 방법
US5950184A (en) Indexing a database by finite-state transducer
US5347652A (en) Method and apparatus for saving and retrieving functional results
US5956705A (en) Reverse-byte indexing
JP3459053B2 (ja) 文書検索方法および装置
US20030023584A1 (en) Universal information base system
JP2990312B2 (ja) データアクセス方法および装置
US6469643B1 (en) Information processing system
JP3565840B2 (ja) 文書管理方法および文書管理装置
JP3288063B2 (ja) 可変長データの格納および参照システム
JP2000090115A (ja) インデクス作成方法および検索方法
CN117235291B (zh) 基于静态索引表的全文检索方法及装置
CN117290523B (zh) 基于动态索引表的全文检索方法及装置
JPH07168848A (ja) 単語辞書検索装置
JP2025108374A (ja) Rdfデータセットのスナップショットをファイルにアーカイブする読み取り専用データ構造

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071015

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20081015

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees