JPH0514938B2 - - Google Patents

Info

Publication number
JPH0514938B2
JPH0514938B2 JP60200951A JP20095185A JPH0514938B2 JP H0514938 B2 JPH0514938 B2 JP H0514938B2 JP 60200951 A JP60200951 A JP 60200951A JP 20095185 A JP20095185 A JP 20095185A JP H0514938 B2 JPH0514938 B2 JP H0514938B2
Authority
JP
Japan
Prior art keywords
search
index
node
level
key
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.)
Expired - Lifetime
Application number
JP60200951A
Other languages
English (en)
Other versions
JPS6261118A (ja
Inventor
Hiroshi Yoshida
Kotaro Okazaki
Masayuki Nemoto
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 JP60200951A priority Critical patent/JPS6261118A/ja
Publication of JPS6261118A publication Critical patent/JPS6261118A/ja
Publication of JPH0514938B2 publication Critical patent/JPH0514938B2/ja
Granted legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、電子計算機システムにおけるデータ
検索方式に関し、特に木構造のインデクスを持つ
データの効率的な検索方式を提供するものであ
る。
〔発明の従来技術と問題点〕
従来より、複数の属性により識別されるデータ
の検索キーとして、それら各属性のコード名を繋
げて検索キーとし、一方、各データと検索キーと
の関係を木構造のインデクスとして設け、与えら
れた検索キーをもとにインデクスを辿つて目的と
するデータを見付ける方法は公知である。
しかし、従来のインデクスの構造及びその検索
方式は、必ずしも効率的とはいえず、特に所謂ワ
イルド・カード(wild card)検索には不便な点
が多かつた。
ここで、ワイルド・カード検索について説明す
ると、例えば(A.B.FORT)なるキーを持つデ
ータと、(A.C.FORT)なるキーを持つデータ
と、(A.D.FORT)なるキーを持つデータとがあ
るとき、検索キーとして(A.〓.FORT)を指
定すると上記3つのデータがすべて検索されるよ
うな方式をいう。つまり、検索項目としてドン
ト・ケア(don't care)な部分を持つ検索キーを
使用できるもので、非常に便利な機能である。
尚、このドント・ケア部分の指定記号には次の
3種類がある。
? −−1文字(英数字及び記号) 〓 −−1〜8文字からなる1属性コード % −−任意の数の属性コード 尚、属性コードは1〜8文字であり、各属性コ
ード間はピリオドで区切るものとする。従つて属
性コードにはピリオドは使用できず、上記?、
〓、にもピリオドは含まれない。
〔発明の目的〕
本発明は、上記ワイルド・カード検索が効率よ
く検索できるようなインデクス構造、及びその検
索方式を提供することを目的とする。以下図面に
より詳述する。
〔発明の実施例〕
第1図は本発明の一実施例によるワイルド・カ
ード検索方式の説明図であり、1はインデクス・
テーブル、2はリフアレンス・テーブル、3はス
タツク・テーブル、4,5,6は夫々各テーブル
の参照位置を示すポインタであり、夫々Iポイン
タ、Rポインタ、Sポインタと略称する。これら
はすべてデータ処理システムの主記憶装置上に設
けられる。また第2図は木構造のインデクスの例
を示す図である。
第2図aにおいて、各枝の分岐点にある文字は
1つの属性コードを示し(以下ノード名という)、
最上位のノード名から最下位のノード名までのノ
ード名の連鎖が、ある1つのデータに対する検索
キーとなる。例えば、右端のデータは (A.M.PL1.Q)という検索キーにより検索され
るべきデータである。
また図中Tなる添字はそのノードがタイプノー
ドであることを示し、タイプノードより下位のレ
ベルは高々1つしかないものとする。
第2図bは同図aを横書きにし、且つ同一レベ
ル内ではアルフアベツト順となるように並べ変え
たものである。
第1図のインデクス・テーブル1は欄がノー
ド名、欄がレベル番号、欄がタイプノードで
あることを示すフラグ、欄が次ポインタで、第
2図bから容易に作成される。次ポインタは、自
ノードと同一レベル又はより高レベルのノードで
あつて、此のテーブル上で次に現れるものの位置
を示す。但し図示例では、自ノードからの距離で
その位置を示している。テーブルの右側に図示さ
れた矢印は次ポインタの説明のためのものであ
る。
ここでタイプノード以上のレベルのノードだけ
に次のポインタを付加したが、これは、タイプノ
ード以下のレベルは、高々1レベルしかなく(最
下位レベル)、しかも、あるタイプノード配下の
エントリはノード名の昇順に詰められた形で配置
されている。従つて最下位レベルのあるエントリ
ーの次のキーを持つ同じ最下位レベルのエントリ
は、物理的に隣のエントリとなるため、次ポイン
タは不要である。
またインデクス・テーブル上での順番は、同一
レベルのノードがアルフアベツト順など一定の順
序に従うようにされる。
第1図のインデツクステーブルはノード名、そ
のノード名のレベル番号、次エントリポインタの
組を一つのエントリとし、これをノード名の文字
例を文字コード順に比較して、昇順に並べた例で
ある。このインデツクステーブルは、実際には複
数個のブロツクに分割されており、各ブロツクの
最初のエントリのノード名、すなわちそのブロツ
クで文字コード順の最も小さいノード名を「最小
キー」、最後のエントリのノード名、すなわちそ
のブロツクで文字コード順の最も大きいノード名
を「最大キー」と呼ぶ。
このようなインデクス・テーブルを用いて例え
ば(A.M.PL1,Q)なる検索キーを持つデータ
を検索する一般的方法を説明する。
イ まず、1レベル目のAについては特に問題は
ない。
ロ 次の2レベル目のMを検索するため、1レベ
ル目のAの次のノードを見る。
このノードのノード名はDで、Mとは一致し
ない。そこで、次ポインタに従つて4つ先のノ
ードを見るとこれもDATAで一致しない。更
にその次ポインタに従つて2つ先のノードを見
ると、ノード名がMで一致し目的の2レベル目
のノードが見つかつたなる。
ハ 次に3レベル目のPL1を探すために、ノード
Mの次のノードOBJから上記ロ)と同様の検
索を行なう。今度はOBJのポインタの指す2
つ先のノードがPL1でありすぐ見つかる。
ニ ノードPL1はタイプノードである。タイプノ
ードに達したときは、そのタイプノードの次ポ
インタが指す次のタイプノードまでの範囲を二
分検索法で検索すればよい。今の例ではすぐに
Qが見つかる。
このように、インデクス・テーブルにレベル番
号と、同一レベルの次のノード又はより高いレベ
ルを指すポインタとを設け、また必要により各種
のフラグを付加することにより、効率的に検索が
行なえる。
次に上記第1図にそつてワイルド・カード検索
の方式を述べる。尚、リフアレンス・テーブル2
及びスタツク・テーブル3には、ノード名及びそ
のレベル番号の欄が設けてある。
まず、〓によるワイルド・カード検索について
説明する。
a まず第1図のリフアレンス・テーブル2には
検索キー(A.〓.FORT)の各ノード名及び
そのレベル番号がセツトされる。スタツク・テ
ーブル3は最初クリアされている。また各ポイ
ンタ4,5,6はすべて初期値1となつて、第
1エントリを指している。
b この状態で、まずリフアレンス・テーブル2
のRポインタ5の指すエントリの内容とインデ
クス・テーブル1のIポインタ4の指すエント
リの内容とを比較する。この例ではともにAで
あり、且つレベル番号も一致するので、その内
容A及びレベル番号をスタツク・テーブル3の
Sポインタ6の指すエントリに書き込む。しか
るのち各ポインタ4,5,6を1歩進して次レ
ベルの検索に移る。
c 若し比較の結果一致しない時は、Iポインタ
4に次ポインタの値を加算して、そのエントリ
のレベルをみる。もし、レベルが今まで参照し
ていたエントリのレベルよりも高いレベルとな
つていれば、この検索キーに該当するデータは
無いということになる。レベルが同一であれ
ば、そのエントリのノード名をみる。一致して
いれば上記と同様にスタツク・テーブル3に書
き込んで、各ポインタ4,5,6を歩進して次
レベルの検索に移る。尚Iポインタ4は当該見
つかつたエントリの位置から1歩進させる。
尚、それでも見つからなければ、この検索キ
ーに該当するデータは無いということになる。
d リフアレンス・テーブル2のRポインタ5の
指すエントリが〓であるときは、レベル番号の
みを比較して一致するノード名があればそれを
スタツク・テーブル3に書き込み、各ポインタ
4,5,6を歩進して次レベルの検索に移る。
e Rポインタ5の指示が、当該検索キーのノー
ド数(これは与えられた検索キーを見れば判る
ので予めRポインタ5の上限値として保持して
おく)を越えたとき、スタツク・テーブル3中
には1つの見つかつたキーが完成していること
になる。従つて、スタツク・テーブル3の内容
を出力するか、または最下位レベルのノードに
付加されているデータ・アドレスを出力する。
f 尚、このときIポインタ4がインデクス・テ
ーブル1の最後に到達していない場合は、それ
以降に別の該当キーが存在する可能性がある。
そこで、さらにIポインタ4を順次歩進して、
当該エントリのレベル番号に応じてRポインタ
5及びSポインタ6を同一レベルに合せ、イン
デクス・テーブル1の内容とリフアレンス・テ
ーブル2の内容とを比較していく。
一旦1つのキーが見つかつたときは、Iポイ
ンタは最下位レベルのエントリを指している筈
であり、その次のエントリはより上位のレベル
の筈である。従つて、リフアレンス・テーブル
2において、Rポインタ5が上限値に達するた
びに、新たなキーが見つかつたことになる。
g Iポインタ4がインデクス・テーブル1の最
終値に一致すれば、検索終了したことになる。
h 尚、〓が複数箇所に存在する検索キーの場合
も、上記と全く同様にして検索できる。何れの
場合もインデクス・テーブル1上では一回のみ
走査すれば検索は終了である。
次に?によるワイルド・カード検索について説
明する。?は1つのノード名のなかの1文字につ
いてドント・ケア扱いにするものである。よつて
上記〓による検索におけるノード名比較の際
に、?部分に対応する位置の文字をマスクして比
較すればよく、あとは上記a)〜h)と同様であ
る。
次に、%によるワイルド・カード検索方式につ
いて述べる。この場合は上記と若干異なる検索手
順となる。
i 初期状態は上記a)と同じである。また%が
出現するまでは上記b)c)と同じである。
j リフアレンス・テーブル2上で%が出現した
ら、インデクス・テーブル1上の当該レベルか
ら最下位レベルまでの一連のノード名をスタツ
ク・テーブル3上に展開し、リフアレンス・テ
ーブル2と各ノード名を比較して、最下位レベ
ルまで一致すれば正解として出力する。
k 他の正解を検索するために、上記%が出現し
たレベルのインデクス・テーブル1の次ポイン
タを利用して、同一レベル(この場合はより高
いレベルは含まない)で別のノード名が無いか
否かを調べる。もし有れば上記j)と同様の処
理をする。もしインデクス・テーブル1の最後
まで達すれば、検索は終了である。
l 上記j)の比較照合における途中に%が出現
した場合には、より下位のレベルの%の位置に
ついて上記k)の処理を行ない、それを順次上
位のレベルの%の位置について、再帰的に行な
えばよい。
以上の如くにして、ワイルド・カード検索が可
能である。
又、インデクス・テーブルが大きくなると、そ
れを複数のブロツクに分割して各ブロツク毎に取
り扱うことが行なわれるが、この分割に際しても
従来の分割方法はワイルド・カード検索には不便
であつた。
従来はインデクス・テーブルを複数のブロツク
に分割したとき、補助インデクス・テーブルを設
け、その中に各ブロツクを代表するキーとして、
各ブロツクの最大キー(第1図のインデクス・テ
ーブル1でいえば一番下のエントリに記載された
ノードに対応するキー)を使用していた。しかし
例えばnブロツク目の最大キーが(A.B.C)n+
1ブロツク目の最小キーが(A.D.B)のとき、新
たに(A.B.E)なるキーのデータを登録しようと
すると、これはnブロツク目の最大キーより大き
いので、n+1ブロツク目に挿入しなければなら
ない。(もしnブロツク目に挿入せんとすると、
nブロツクの代表キーを変更せねばならなくな
る。)その結果、(A.B.〓)のようなワイルド・
カード検索の際にはn,n+1の両ブロツクを参
照する必要が生じ、検索処理が複雑となる。
そこで本発明では、補助インデクス・テーブル
に登録するキーとして、対応ブロツクの最大キー
ではなく、その次のブロツクの最小キーを登録し
ておく。そして新データの挿入に際しては、その
データのキーより大きい補助インデクス・キーを
持つブロツクに挿入するようにする。
第3図は本発明の一実施例による分割インデク
ス・テーブル11,12,13と補助インデク
ス・テーブル14を示している。この場合、例え
ば(A.M.OBJ.P)なる挿入キーはブロツク12
に挿入されることとなり、且つ補助インデクス・
キーの変更も不要である。そして(A.M.OBJ.
〓)なるワイルド・カード検索はブロツク12に
ついてのみの処理で可能となる。
〔発明の効果〕
以上の如く、本発明のインデクス・テーブルを
用いることにより、ワイルド・カード検索が簡単
なアルゴリズムで簡単なテーブルを用いて実現出
来る。
【図面の簡単な説明】
第1図は本発明の一実施例の説明図、第2図は
木構造のインデクスの一例を示す図、第3図は複
数ブロツクに分割したインデクスの一実施例を示
す図であり、 図中、1はインデクス・テーブル、2はリフア
レンス・テーブル、3はスタツク・テーブル、
4,5,6は各テーブルのポインタである。

Claims (1)

  1. 【特許請求の範囲】 1 複数の属性コードの連鎖を検索キーとするデ
    ータの検索を、該検索キーと各データとの関係を
    示す木構造のインデクスを用いて検索する方式に
    おいて、 上記インデクスを格納するインデクス・テーブ
    ル1として各エントリに、少なくとも上記属性コ
    ードに相当するノード名と該ノード名のレベル番
    号と該レベル番号と同一又はより上位のレベル番
    号であつて該テーブル上で次に現れるエントリを
    指すポインタとを格納したインデクス・テーブル
    を設け、また、 与えられる検索キーのノード名とレベル番号と
    にもとづき、上記インデクス・テーブルを辿つて
    目的のデータを検索する手段を設けたことを特徴
    とする木構造インデクスの検索方式。 2 上記検索手段には、検索キーを各ノード名と
    レベル番号との対として格納するリフアレンス・
    テーブル2と、該リフアレンス・テーブルの各ノ
    ード名及びレベル番号と上記インデクス・テーブ
    ルの各ノード名及びレベル番号とを比較照合する
    手段と、比較した結果一致したノード名及びレベ
    ル番号を順次組み立てるスタツク・テーブル3と
    を含むことを特徴とする特許請求の範囲第1項記
    載の木構造インデクスの検索方式。 3 上記インデクス・テーブル1は複数のブロツ
    ク11,12,13と、各ブロツクの代表キーを
    格納した補助インデクス・テーブル14とから成
    り、且つ補助インデクス・テーブルの各代表キー
    としては該当するブロツクの次のブロツクにおけ
    る最小のキーを格納してあることを特徴とする特
    許請求の範囲第1項または第2項記載の木構造イ
    ンデクスの検索方式。
JP60200951A 1985-09-11 1985-09-11 木構造インデクスの検索方式 Granted JPS6261118A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60200951A JPS6261118A (ja) 1985-09-11 1985-09-11 木構造インデクスの検索方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60200951A JPS6261118A (ja) 1985-09-11 1985-09-11 木構造インデクスの検索方式

Publications (2)

Publication Number Publication Date
JPS6261118A JPS6261118A (ja) 1987-03-17
JPH0514938B2 true JPH0514938B2 (ja) 1993-02-26

Family

ID=16433020

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60200951A Granted JPS6261118A (ja) 1985-09-11 1985-09-11 木構造インデクスの検索方式

Country Status (1)

Country Link
JP (1) JPS6261118A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998029916A1 (fr) 1996-12-27 1998-07-09 Japan Storage Battery Co., Ltd. Electrode a diffusion gazeuse, membrane a electrolyte polymere solide, procede de fabrication et pile a combustible de type a electrolyte polymere solide les utilisant
US7569302B2 (en) 2002-11-05 2009-08-04 Panasonic Corporation Fuel cell for generating electric power

Also Published As

Publication number Publication date
JPS6261118A (ja) 1987-03-17

Similar Documents

Publication Publication Date Title
US7756859B2 (en) Multi-segment string search
US7080091B2 (en) Inverted index system and method for numeric attributes
Morrison PATRICIA—practical algorithm to retrieve information coded in alphanumeric
US5721899A (en) Retrieval apparatus using compressed trie node and retrieval method thereof
EP0124097B1 (en) Method for storing and retrieving data in a data base
US6192373B1 (en) Managing directory listings in a relational database
US6782380B1 (en) Method and system for indexing and searching contents of extensible mark-up language (XML) documents
US5627748A (en) Method of identifying pattern matches in parameterized strings and square matrices
Giancarlo A generalization of the suffix tree to square matrices, with applications
EP2172853B1 (en) Database index and database for indexing text documents
KR100240243B1 (ko) 데이터 검색장치
US5619199A (en) Order preserving run length encoding with compression codeword extraction for comparisons
KR960018993A (ko) 정보 검색 방법 및 시스템
JP3258063B2 (ja) データベース検索システム及び方法
KR890016474A (ko) 데이타베이스 대상물 분석방법 및 시스템
JPH0514938B2 (ja)
Akagi et al. Grammar index by induced suffix sorting
Sahni Tries
JPH04326164A (ja) データベース検索システム
JPH07210569A (ja) 情報検索方法および情報検索装置
Amir et al. Searching for a modified pattern in a changing text
JPH10240741A (ja) 木構造型データの管理方法
US7676330B1 (en) Method for processing a particle using a sensor structure
JP2718107B2 (ja) 比較処理方式
JPH0748218B2 (ja) 情報処理装置