JPH1166096A - データ蓄積方法、そのデータ蓄積方法によって蓄積されたデータベース及びそのデータベースの検索方法 - Google Patents

データ蓄積方法、そのデータ蓄積方法によって蓄積されたデータベース及びそのデータベースの検索方法

Info

Publication number
JPH1166096A
JPH1166096A JP9228527A JP22852797A JPH1166096A JP H1166096 A JPH1166096 A JP H1166096A JP 9228527 A JP9228527 A JP 9228527A JP 22852797 A JP22852797 A JP 22852797A JP H1166096 A JPH1166096 A JP H1166096A
Authority
JP
Japan
Prior art keywords
node
bit
pattern information
address
nodes
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
JP9228527A
Other languages
English (en)
Inventor
Hiroyuki Kimiyama
博之 君山
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.)
NTT Inc
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP9228527A priority Critical patent/JPH1166096A/ja
Publication of JPH1166096A publication Critical patent/JPH1166096A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

(57)【要約】 【課題】二分探索木構造で蓄積されたデータベースの検
索における無駄な検索時間を減らすと共に、情報検索の
データ構造として無駄なノードを作ることによるメモリ
の浪費を減らすことを目的とする 【解決手段】各ノードは、メモリアドレス0、メモリア
ドレス1、アドレスパタン情報及びビットパタン情報に
より構成される。ビットパタン情報はそのノードが判断
するビット位置を示し、アドレスパタン情報は、分岐の
条件式を与える。メモリアドレス0は、条件式が”偽”
の場合の次のノードを示し、メモリアドレス1は”真”
ノード場合の次のノード又は検索の情報を与える。本発
明は、ビットパタン情報とアドレスパターン情報によ
り、数ビットまとめて、検索アドレスの検査をすること
ができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ蓄積方法、
そのデータ蓄積方法によって蓄積されたデータベース及
びそのデータベースの検索方法に関する。特に、回線交
換、ネットワークルータ等でネットワークアドレス、電
話番号等の数値化された情報に関連づけてルーティング
情報、加入者情報等をツリー状に蓄積し、その蓄積され
たデータベース中から、そのネットワークアドレス、電
話番号等の数値化されたデータをキーにしてルーティン
グ情報、加入者情報等の情報を二分探索木により検索す
る方法に関する。
【0002】
【従来の技術】数値化されたネットワークアドレス情報
をキーにして経路情報を検索する従来の方法として、テ
ーブル検索による方法や二分探索による方法がある。前
者のテーブル検索法の場合は、図1のように、ネットワ
ークアドレス情報及び経路情報を1対1のテーブルとし
て持っておく。そして、この場合の検索は、テーブルを
先頭から比較し、条件に合致したアドレス情報を見つけ
た時点で検索を止める。後述するように経路情報量が多
くなった場合に、検索に多大な時間を要するために、後
者の二分探索法が一般的に用いられる。
【0003】後者の場合は、数値化されたネットワーク
アドレス情報をもとに、ツリー状にノードを作成する。
各ノードには次のノードが格納されているメモリアドレ
スを二つ格納し,ツリーの一番最後のノードには経路情
報を格納しておく(図2)。このツリーを使って検索す
る場合は、図2の左の方からノードデータを読み出し、
キーとなるアドレスの先頭のビットを調べ、0であるな
らばそのノードの上側のノードを次のノードとして読み
だす。そうでない場合は、下側のノードを読みだす。そ
して、2番目のビット、3番目のビットというように、
上位のビットから順番に比較を繰り返し、最後にたどり
着いたところの経路情報を目的の経路情報として求め
る。
【0004】
【発明が解決しようとする課題】従来のテーブル検索の
場合は、比較処理の回数の最大値は格納されている情報
数に等しい。そして、順番にテーブルの先頭から検索す
るため、情報数が多くなりそのテーブルが大きくなった
場合、比較の回数が非常に大きくなり、検索処理に多く
の時間を費やすという問題がある。
【0005】一方、二分探索法では、この方法の場合の
最大検索回数は、検索キーのアドレスの大きさに依存す
る。つまりアドレスが8ビットであれば8回であり、ア
ドレスが32ビットであれば32回である。この場合
は、格納情報が増えても検索回数は増加しない。しか
し、アドレス情報として、H'8350、H'8351、H'8352、H'
8353、....、H'835E、H'835Fといった16ビットのアド
レスとその経路情報が16個だけ登録された場合、図3
のような二分探索木を形成する。このような場合は、多
くのネットワークで用いられているような、一つのネッ
トワークアドレスを複数のサブネットに分割して使用し
ている場合に頻繁に起こる。この例の場合、全ての経路
データは最初の12ビットが同じであるため、ノード1
からノード12の12ノード分の「無駄な」メモリ領域
を使ってしまうだけでなく、検索時には、その12個の
ノードをたどる無駄な検索処理が必要という問題もあ
る。
【0006】そこで、本発明は、上記の問題点を解消
し、情報検索における無駄な検索時間を減らすと共に、
情報検索のデータ構造として無駄なノードを作ることに
よるメモリの浪費を減らすことを目的とする。
【0007】
【課題を解決するための手段】本発明では、各ノードで
上位ビットから順次、分岐しつつ判断する二分探索木に
おいて、図3のように複数のノードで連続して分岐が無
い場合に、1ビットずつ分岐の判断をするのでなく、連
続した分岐の無いビットをまとめて(縮退して)図4の
ように分岐すると考える(なお、図4は、縮退ノード3
1が本発明によるものであり、その他は、必ずしも本発
明によるものとは限らないので、あくまでも縮退を説明
するための模試図である。)。そして、この縮退ノード
31では、ノード1からノード12の個々に行われた判
断を、縮退した全ビットをまとめて一回で判断する。そ
のために、縮退したビット列のビット位置(まとめて判
断されるビット位置)を示すビットパタン情報(検索ア
ドレスのビット列の中で、該当するビット位置に1を立
て、それ以外のビット位置は”0”とする)と、登録さ
れた検索アドレスに対して”真”と判断されるアドレス
パタン情報(検索アドレスのビット列の中で、縮退ビッ
ト位置では、登録されたアドレス情報の二値情報とし、
それ以外のビット位置は”0”とする)とを、縮退ノー
ド31に設ける。ところで、登録されたアドレス AN
D ビットパタン=アドレスパタンの関係となっている
ので、この縮退ノード31で登録されたアドレス情報か
否かの判断ができる。従って、これを分岐条件として、
検索アドレス情報に対して、そのアドレスに応じて、分
岐させることができる。
【0008】図4により、縮退ノード31について、具
体的に説明すると、図5に示されるように、登録された
アドレス情報(これは検索アドレス、又はネットワーク
アドレスでもある。)がH'8350、H'8351、H'8352、H'83
53、....、H'835E、H'835Fであるので、二値情報として
は、全16ビットのうち、上位12ビットの部分は同じ
であって、分岐の必要は無い。そこで、上位12ビット
をまとめて判断するために、全16ビットのうち上位1
2ビットのみ1であるH'FFF0(11111111111
10000)をビットパタン情報としてノードに与え
る。一方、上記登録されたアドレス情報( つまりH'835
0、H'8351、H'8352、H'8353、....、H'835E、H'835F)
の縮退ビット位置(上位12ビット)の二値情報は、図
5に示すように全て(100000110101)であ
るので、アドレスパタン情報として(10000011
01010000)を縮退ノード31に設ける。この、
(1000001101010000)は、登録された
アドレス情報の一つであるH'8350のアドレスでもある。
【0009】次にこの場合における縮退ノード31での
検索は、次の通り行われる。いま、アドレスH'8352の検
索を考える。アドレスH'8352(10000011010
10010)とノードのビットパタン情報(11111
11111110000)の論理積をとり、その値(1
000001101010000)とアドレスパタン情
報(1000001101010000)と比較する
と、一致する。従って、ノード31は、”真”と判断し
て分岐する。図4の他の登録されたアドレスを選んで判
断しても、おなじ結果が得られる。従って、縮退ノード
31で、H'8350、H'8351、H'8352、H'8353、....、H'83
5E、H'835Fの登録されたアドレス情報に対して、縮退ノ
ード31でまとめて上位12ビットの判断がなされ、検
索が進んだこととなる。
【0010】以上を含めて一般的には、その分岐の無い
ノードをまとめて一つのノードに縮退し、縮退したビッ
トを示すビットパタン情報(図3では上位12ビットを
まとめているのでH'FFF0(1111111111110000)) としてそ
の縮退ノード31に付加する。そして、検索時に、検索
したいアドレス(この場合、アドレスは数値化され、0/
1 の二値データとして表現されている:数値化されたデ
ータ)とビットパタン情報(縮退されない場合は、その
ノードで判断するビット位置のみ1の二値データ、縮退
ノード31の場合は、縮退したビット位置のみ1の二値
データ)との論理積をとり、その値( 縮退されない場合
は、そのノードの判断ビット位置の0/1情報、縮退ノー
ド31の場合は、縮退したビット位置の0/1 情報が得ら
れる)とノードに付加されているアドレスパタン情報と
を比較し、一致した場合は、次のノードをたどり、不一
致の場合は、次の別のノードをたどるか又は検索を終了
する。
【0011】
【発明の実施の形態】次に、本発明の実施例について説
明するために、8ビットのネットワークアドレスに経路
情報を関連づけたデータベースからネットワークアドレ
スをもとに経路情報を検索するシステムを考える。第6
図は、そのデータベースを検索するための二分探索木及
び各ノードの概略図である。図で登録されているのは、
ネットワークアドレス(=登録されたアドレス情報=検
索アドレス=データベースのアドレス)(本発明のデー
タ蓄積、検索方法においては、アドレスは数値化され、
0/1 の二値データとして表現されている:数値化された
データ)H'24(00100100)、H'2E(00101110)、H'3C(00110
010)、H'CD(11001101)に関連する四つの経路情報であ
る。ツリー上の各分岐点には、図7に示す構成のノード
が配置されており、各ノードは、分岐を判定する条件式
が”偽”(FALSE)の場合に参照する次のアドレス
が格納されているメモリアドレス(メモリアドレス
0)、”真”(TRUE)の場合に参照するメモリアド
レス(メモリアドレス1)、アドレスパタン情報及びビ
ットパタン情報から構成されている。予めノードの領域
をメモリ上に確保し、ノード番号を割り振っている場合
は、”メモリアドレス0”と”メモリアドレス1”の代
わりに、そのノード番号を使用することも可能である。
なお、「二分探索木構造でデータを蓄積する」における
「データ」とは、図6における、二分探索木を構成する
ノードのデータ、経路情報及びこれと同等のものを指
す。
【0012】アドレスパタン情報は、分岐を判定する条
件式となるものであり、縮退した場合は、その縮退部分
のビット位置のアドレスが”真”と判断されるアドレス
の二値情報である。ビットパタン情報は、前記二分探索
木のノードのうち分岐する先が一方向しか無いノードが
複数連続する場合は、前記一連のノード群を一つのノー
ドとし、該一連のノード群で検査すべきであったビット
位置の全てのビットを1にしそれ以外のビット位置のビ
ットを0にしたデータであり、前記二分探索木のノード
のうち分岐する先が一方向しか無いノードが複数連続し
ない場合は、そのノードで検査すべきビット位置のビッ
トを1にしそれ以外のビット位置のビットを0にしたデ
ータである。つまり、このビットパタン情報は、数値化
されたデータのビット列に対し当該ノードでの検査ビッ
ト位置に1を立てたもので、その検査ビット位置を示
す。
【0013】アドレスパタン情報は、縮退しない場合
は、ビットパタン情報をそのまま使用することができ
る。また縮退している場合は、”真”として分岐される
ネットワークアドレスとビットパタン情報の論理積の結
果をその縮退ノードのアドレスパタン情報とする。な
お、縮退しない場合も、縮退した場合と同じように、ネ
ットワークアドレスとビットパタン情報の論理積からア
ドレスパタン情報を作成することもできる。
【0014】縮退していないノードにもビットパタン情
報とアドレスパタン情報を付加することにより、縮退ノ
ードと同じように検索したいアドレスとビットパタン情
報との論理積と、アドレスパタン情報とを比較すること
により、分岐の判定が可能となる。なお、縮退していな
いノードには、上記のアドレスパタン情報とビットパタ
ン情報の代わりに分岐していないことを示す値(例え
ば”0”)を入れておくことができる。こうすることに
よって、次にどのノードに行くかを判定する前に、アド
レスパタン情報を検査し、その値が”0”ならば従来の
判定方法を適用して分岐を判定することができる。
【0015】図6を簡単に説明する。ネットワークアド
レスH'24(00100100)、H'2E(00101110)、H'3C(0011001
0)、H'CD(11001101)の第1ビット目を見ると、H'24、H'
2E及びH'3Cが”0”であるのに、H'CDは”1”であるた
め、先頭のノード1(32)で分岐が必要となり、次の
ノード(33、34)が格納されている二つのメモリア
ドレス、アドレスパタン情報及びビットパタン情報を付
加する。8ビットの先頭のビットを判断し分岐するので
あるから、ビットパタン情報としては、(100000
00)となる、これは、H'80であり、アドレスパタン情
報としても同じH'80を格納する。これにより、登録され
たアドレス情報とビットパタン情報の論理積を取ったも
のとアドレスパタン情報を比較すると、H'CDには、”
真”を与え、H'24、H'2E及びH'3Cには”偽”を与え
る。”真”のネットワークアドレスにはメモリアドレス
1からノード8(33)のアドレスを与え、”偽”のネ
ットワークアドレスにはメモリアドレス0からノード2
(34)のアドレスを与えて、分岐を行う。該ノード2
(34)は、ノード1(32)での判定が”偽”であっ
た場合、つまり、上位1ビット目が0であった場合の、
次の判定を行うためのノードである。上位1ビット目が
0になるのは、本実施の形態の場合は、H'24(0010010
0)、H'2E(00101110)、H'3C(00110010)、の三つである。
これらの三つのアドレスは、上位2ビット目と3ビット
目がそれぞれ0、1であるので、一つに縮退させること
ができる。従って、上位2ビット目と3ビットを縮退し
たことを示すために、ビットパタン情報として、上位2
ビット目と3ビット目を1として、残りのビットを0と
した値(H'60:01100000 )を格納する。また上位2ビッ
トと3ビット目をそれぞれ0、1として、残りのビット
を全て0にしたもの(H'20:00100000 )をアドレスパタ
ン情報として格納する。このアドレスパタン情報は、H'
24、H'2EあるいはH'3Cとビットパタン情報の論理積によ
って求めることできる。さらに、このノードのメモリア
ドレス0には、終点を示す値(例えば”0”)を入れて
おく。このようにすることによって、ここから先に該当
する情報が無いことがこの時点で判明し、無駄な検索を
中止することができる。メモリアドレス1には、ノード
3(35)の番地を格納しておく。ノード3(35)で
は、H'24、H'2E、H'3Cの三つのアドレスの中に上位4ビ
ット目が異なるものがあるため、分岐が生じる。したが
って、ここでは、ノード1(32)を作ったのと同様に
ノード3(35)を作る。以上の作業を四つのアドレス
分繰り返すことによって、図6のツリーを作ることがで
きる。図に示すように、最後になったノードには、経路
情報が格納されているメモリアドレスを格納しておき経
路情報を取り出すことができる。
【0016】最後のノード、例えばノード8(33)の
ビットパタン情報としては、先に分岐判定されたビット
以外のビット(この場合は、下位の7ビット)を”1”
とした情報(01111111)つまりH'7Fをビットパ
タン情報とし、このビットパタン情報と検索されるアド
レス情報であるH'CD(11001101)の論理積を求め、その値
をアドレスパタン情報(01001101=H'4D)とす
る。そして、メモリアドレス0には”0”を入れ、メモ
リアドレス1には、経路情報のアドレスを入れる。
【0017】図8に、本発明の検索方式の概略フローチ
ャートを示す。このフローチャートをもとに、図6のツ
リーから与えられたアドレスに対する経路情報を検索す
る例を示す。先ず、ユーザ、外部等からネットワークア
ドレスH'2Eに対する経路情報検索の要求が来たとする。
最初にノード1(32)のデータを読みだす。ノード1
(32)では、H'2Eとビットパタン情報(H'80) との論
理積を計算し(H'00) アドレスパタン情報(H'80)と比較
する。この場合は一致しないので、メモリアドレス0を
参照し”0”でないので、その値の示すノード、つまり
ノード2(34)のアドレスを読みだす。ノード2(3
4)においても、同じようにH'2EとH'60との論理積を計
算(H'20) し、H'20と比較する。一致するので、ノード
2(34)のメモリアドレス1を参照し、ノード3(3
5)に進む。同様にしてノード4(36)、ノード6
(39)とたどり最後に経路情報2(41)を検索する
ことができる。
【0018】次に、このネットワークアドレスに登録さ
れていないネットワークアドレスH'5Eに対する経路情報
の要求が来たとする。先ず、ノード1(32)では、H'
5EとH'80との論理積を計算(H'00) し、H'80と比較す
る。一致しないのでメモリアドレス0を参照し、ノード
2(34)に進む。同じくノード2(34)でH'5EとH'
60との論理積を計算(H'60) し、H'20と比較する一致し
ないのでメモリアドレス0を参照するが、メモリアドレ
ス0には”0”が格納されているので、ここで検索を終
了し、検索要求元に対して該当する経路情報が無いこと
を通知する。
【0019】次に、経路情報を追加する手順を説明す
る。図9及び図10にその概略フローチャートを示す。
また、図11には、H'DFの経路情報を追加した後のツリ
ーを示す。図6のツリーにネットワークアドレスH'DFの
経路情報を追加する要求が来たとする。先ず、検索要求
時と同様に、ツリーを検索する。検査して若し見つかれ
ば、既に登録済みなので、登録済であるというエラーを
返して終了する。この場合、登録されていないので、検
索がノード1(32)から開始される。ノード1(3
2)でH'DFとH'80との論理積が取られ、その値(H'80)と
ノード1(32)のアドレスパタン情報H'80と比較さ
れ、一致するのでメモリアドレス1 を参照してノード8
(33)に進む。ノード8(33)では、H'DFとH'7Fと
の論理積が取られ、その値とノード8(33)のアドレ
スパタン情報H'4Dと比較され、一致しないのでノード8
(33)のメモリアドレス0を参照するがそこには”
0”が格納されており、検索は失敗に終わる。従って、
このノード8(33)のところにノードを追加する必要
が有ることが判明する。ノード8(33)に格納されて
いるビットパタン情報から、縮退が上位の何ビット目
(Nu)から何ビット目(Nl)までまとめられている
かを調べる。若し、縮退していなければ、新規のノード
を作り、そのノードに経路情報のアドレスを納め、か
つ、この新規のノードをノード8(33)に接続して終
了する。この例では、ビットパタン情報が(01111
111)であるので、2ビット目から8ビット目までが
縮退されているので、Nu=2、Nl=8となる。そこ
で、アドレスパタン情報H'4D(01001101)とH'
DF(11011111)の上位から2ビット目から8ビ
ット目までを順番に比較し、最初に異なるところが分岐
ノードとなるので、そのビット数Nbを求める。この例
では、4ビット目が異なるため、Nbは4となる。
【0020】次に、上位からNbビット目つまりこの例
では、4ビット目のノードを作成する。図11では、ノ
ード10(46)に該当する。ノード10(46)で
は、4ビット目だけ判断するので、判断するビットであ
る上から4ビット目のみが”1”のアドレス(0001
0000:H'10)をノード10(46)のビットパタン
情報とする。ノード10(46)は、縮退が無いことか
ら、アドレスパタン情報は、ビットパタン情報と同じH'
10とする。次にNuとNbを比較して等しくない場合
は、ノードを作成し、そうでない場合は、ノードを作ら
ずに、先程作成したノード10(46)のアドレスをノ
ード8(33)の一つ手前のノードつまりノード1(3
2、44)のメモリアドレス1に書き込む。しかし、こ
の例では、NuとNbが等しくないのでNuからNb-1
まで縮退させたノード9(45)を作成する。ここで
は、上位2ビット目と3ビット目が縮退されるので、上
位2ビットと3ビットのみが”1”のアドレスH'60(0
1100000)をノード9(45)のビットパタン情
報とし、アドレスパタン情報は、このH'60と追加ネット
ワークアドレスH'DFの論理積H'40(01000000)
をアドレスパタン情報とする。また、メモリアドレス0
には、”0”を入れ、メモリアドレス1には、次のノー
ドであるノード10(46)のメモリアドレスを入れ
る。そして、追加前のノード8(33)の一つ手前のノ
ード(ノード1(32、44))のメモリアドレス1に
今作ったノード(ノード9(45))のメモリアドレス
を入れる。そして、経路情報を作成し、NlとNbとを
比較し、若し、等しく無ければ、Nb+1ビット目からN
lビット目までまとめた次のノードを作る。若し、Nb
とNlが等しい場合は、ノード10(46)に作成した
経路情報を接続する。この例では、等しくないので、5
ビットから8ビット目をまとめめた図11のノード11
(48)を作成する。経路情報はこのノード11(4
8)に接続し、さらに、ノード10(46)とノード1
1(48)を接続するため、追加登録するネットワーク
アドレスH'DFの4ビット目を検査し、その値が”1”で
あるのでノード10(46)のメモリアドレス1に、ノ
ード11(48)のアドレスを入れる。さらに、分岐が
必要と判断されたノード8(47)のアドレスをノード
10(46)のメモリアドレス0に入れ、ノード8(4
7)のビットパタン情報とアドレスパタン情報の上位N
uからNbビットまで(つまり2ビットから4ビットま
で)を”0”に変更して、H'DFの追加処理が終了する。
【0021】最後に削除の一例について説明する。図1
2に削除のフローチャートを示す。この例では、図11
のネットワークアドレスH'DFの経路情報の削除を行う方
法について述べる。先ず最初に、ネットワークアドレス
H'DFの経路情報が、登録されているかを調べる。経路情
報が登録されていなければ、未登録であるというエラー
を返す。この例では、ノード11(48)にその経路情
報5として接続されていることが検索できる。この検索
時に二つ前までのノードのメモリアドレスを保持してお
く。つまり、図11のノード9(45)とノード10
(46)のメモリアドレスを保持しておく。そして、一
つ前のノードつまり、ノード10(46)のメモリアド
レス1を”0”に変える。次に、経路情報5(49)の
データとノード11(48)のデータをメモリから削除
する。削除の処理はこれで終了であるが、削除後に縮退
できるか否かを検査する。そこで、一つ手前のノード
(ノード10(46))の先程削除しなかった方のメモ
リアドレス(つまりメモリアドレス0)のノード(ノー
ド8(47))と削除したノードの二つ手前のノード
(ノード9(45))の分岐数をそれぞれ調べる。両ノ
ードとも二方向に分岐している場合は、縮退できないた
め正常終了で、削除処理を終了する。一つでも、一方向
が有れば、縮退できるので、縮退処理を行う。この例で
は、ノード8(47)、ノード9(45)ともに片方向
分岐であるので、ノード10(46)と一緒に縮退する
ことができる。縮退の方法は、先ず、縮退対象のノード
データのビットパタン情報の論理和を計算(H'7F) しそ
の値を縮退するノードの一番上流側のノードのビットパ
タン情報として格納する。そして、次に縮退しているノ
ードについてはアドレスパタン情報をそのまま使用し、
縮退していないノードについては、メモリアドレス0
が”0”の場合だけアドレスパタン情報をそのまま使用
し、そうでないときは、”0”をアドレスパタン情報と
して使用し、ビットパタン情報と同様に論理和を取る。
この例では、ノード9(45)、ノード10(46)、
ノード8(47)のアドレスパタン情報(H'40、H'10、
H'0D)の論理和(H'4D) をアドレスパタン情報とし、上
記で計算したH'7Fをビットパタン情報として、ノード9
(45)に格納する。最後に、縮退する最下流のノード
のメモリアドレス0とメモリアドレス1をノード9(4
5)にコピーし、ノード8(47)とノード10(4
6)の領域を開放して終了となる。
【0022】以上、キーとなるアドレスが8ビットの場
合について述べたが、32ビット、64ビットなどに拡
張した、データ蓄積方法、そのデータ蓄積方法によって
蓄積されたデータベース及びそのデータベースの検索
も、同じ処理で可能である。
【0023】
【発明の効果】本発明を用いることにより、ネットワー
クアドレスに関連して蓄積されている経路情報や、電話
番号に関連して蓄積されている加入者データなどを比較
的少ない演算量で高速に検索することが可能となる。ま
た、追加及び削除も単純な処理の組み合わせで行うこと
が可能である。
【0024】本発明は、特に、ローカルエリアネットワ
ーク中のルータやローカルエリアの交換機などで、ネッ
トワークアドレスや電話番号の一部が同じものが多く蓄
積されている場合に特に大きな効果を発揮する。
【図面の簡単な説明】
【図1】テーブル検索の例を説明するための図である。
【図2】従来の二分探索木の例を説明するための図であ
る。
【図3】複数ノードで連続して分岐の無い場合の例を説
明するための図である。
【図4】図3のH'835 のツリー部分を一つのノードに縮
退した図を説明するための模式図である。
【図5】検索アドレスのビット情報の表である。
【図6】本発明の一実施例の二分探索木を説明するため
の図である。
【図7】ノードの構成例を説明するための図である。
【図8】本発明の検索アルゴリズムの例を説明するため
の図である。
【図9】本発明の登録アルゴリズムの例を説明するため
の図(その1)である。
【図10】本発明の登録アルゴリズムの例を説明するた
めの図(その2)である。
【図11】本発明により登録を行った後の二分探索木の
例を説明するための図である。
【図12】本発明の削除アルゴリズムの例を説明するた
めの図である。
【符号の説明】
1〜30 従来のノード 31 縮退ノード 32〜39、44〜48 本発明のノード 40〜43、49 経路情報

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 数値化されたデータをキーにして二分探
    索木構造でデータを蓄積する方法において、 前記二分探索木のノードのうち分岐する先が一方向しか
    無いノードが複数連続するかどうかを判定し、連続する
    場合は、前記一連のノード群を一つのノードとし、該一
    連のノード群で検査すべきであったビット位置の全ての
    ビットを1にしそれ以外のビット位置のビットを0にし
    たデータをビットパタン情報として上記一つのノードに
    付加する段階と、前記数値化されたデータと該ビットパ
    タン情報のビットパタンとの論理積をとり、該論理積を
    そのノードのアドレスパタン情報として前記一つのノー
    ドに付加する段階とからなるデータ蓄積方法。
  2. 【請求項2】 数値化されたデータをキーにして二分探
    索木構造でデータを蓄積する方法において、 前記二分探索木のノードのうち分岐する先が一方向しか
    無いノードが複数連続するかどうかを判定し、前記二分
    探索木のノードのうち分岐する先が一方向しか無いノー
    ドが複数連続しない場合は、そのノードで検査すべきビ
    ット位置のビットを1にしそれ以外のビット位置のビッ
    トを0にしたデータをビットパタン情報として上記ノー
    ドに付加する段階と、該ビットパタン情報をそのノード
    のアドレスパタン情報として前記ノードに付加する段階
    とからなるデータ蓄積方法。
  3. 【請求項3】 数値化されたデータをキーにして二分探
    索木構造で蓄積されたデータベースにおいて、 前記二分探索木のノードのうち分岐する先が一方向しか
    無いノードが複数連続する場合は、前記一連のノード群
    を一つのノードとし、該一連のノード群で検査すべきで
    あったビット位置の全てのビットを1にしそれ以外のビ
    ット位置のビットを0にしたデータをビットパタン情報
    とし、前記数値化されたデータと該ビットパタン情報の
    ビットパタンとの論理積をとり、該論理積をそのノード
    のアドレスパタン情報としたノードからなる二分探索木
    構造で蓄積されたデータベース。
  4. 【請求項4】 数値化されたデータをキーにして二分探
    索木構造で蓄積されたデータベースにおいて、 前記二分探索木のノードのうち分岐する先が一方向しか
    無いノードが複数連続しない場合は、そのノードで検査
    すべきビット位置のビットを1にしそれ以外のビット位
    置のビットを0にしたデータをビットパタン情報とし、
    該ビットパタン情報をそのノードのアドレスパタン情報
    としたノードからなる二分探索木構造で蓄積されたデー
    タベース。
  5. 【請求項5】 二分探索木のノードのうち分岐する先が
    一方向しか無いノードが複数連続する場合は、この一連
    のノード群を一つのノードとし、該一連のノード群で検
    査すべきであったビット位置の全てのビットを1にしそ
    れ以外のビット位置のビットを0にしたデータをビット
    パタン情報とし、数値化されたデータベースの検索アド
    レス情報と該ビットパタン情報のビットパタンとの論理
    積をとり、該論理積をそのノードのアドレスパタン情報
    としたノードからなる二分探索木構造で蓄積されたデー
    タベースを検索する方法であって、 上記ノードに付加されている上記ビットパタン情報と検
    索キーとして示された数値化されたデータとの論理積を
    求める段階と、該論理積の値とアドレスパタン情報とを
    比較する段階と、その比較結果によって次のノ─ドを決
    定するか又は検索の終了かを決定する段階とからなるデ
    ータベースの検索方法。
  6. 【請求項6】 数値化されたデータをキーにして二分探
    索木を用いて、該数値化されたデータと関連のある情報
    の検索方法において、 前記二分探索木のノードのうち分岐する先が一方向しか
    無いノードが複数連続しない場合は、そのノードで検査
    すべきビット位置のビットを1にしそれ以外のビット位
    置のビットを0にしたデータをビットパタン情報とし、
    該ビットパタン情報をそのノードのアドレスパタン情報
    としたノードからなる二分探索木構造で蓄積されたデー
    タベースを検索する方法であって、 上記ノードに付加されている上記ビットパタン情報と検
    索キーとして示された数値化されたデータとの論理積を
    とる段階と、該論理積の値とアドレスパタン情報とを比
    較する段階と、その比較結果によって次のノ─ドを決定
    するか又は検索の終了かを決定する段階とからなるデー
    タベースの検索方法。
JP9228527A 1997-08-25 1997-08-25 データ蓄積方法、そのデータ蓄積方法によって蓄積されたデータベース及びそのデータベースの検索方法 Pending JPH1166096A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9228527A JPH1166096A (ja) 1997-08-25 1997-08-25 データ蓄積方法、そのデータ蓄積方法によって蓄積されたデータベース及びそのデータベースの検索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9228527A JPH1166096A (ja) 1997-08-25 1997-08-25 データ蓄積方法、そのデータ蓄積方法によって蓄積されたデータベース及びそのデータベースの検索方法

Publications (1)

Publication Number Publication Date
JPH1166096A true JPH1166096A (ja) 1999-03-09

Family

ID=16877820

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9228527A Pending JPH1166096A (ja) 1997-08-25 1997-08-25 データ蓄積方法、そのデータ蓄積方法によって蓄積されたデータベース及びそのデータベースの検索方法

Country Status (1)

Country Link
JP (1) JPH1166096A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000307641A (ja) * 1999-04-16 2000-11-02 Nec Corp 転送先検索方法、転送先検索装置、検索テーブル記録媒体及び検索プログラム記録媒体
JP2003516660A (ja) * 1999-12-10 2003-05-13 モサイド・テクノロジーズ・インコーポレイテッド 最長一致アドレスルックアップのための方法および装置
DE10028563B4 (de) * 1999-06-09 2007-03-22 Nec Corp. Kommunikationssteuerungseinheit
JP2008011081A (ja) * 2006-06-28 2008-01-17 Fujitsu Ltd 通信装置、アドレス学習方法およびアドレス学習プログラム
JP2013020613A (ja) * 2011-07-13 2013-01-31 Palo Alto Research Center Inc メモリ効率の良い、プランニングに関する状態設定の表示
JP2014126883A (ja) * 2012-12-25 2014-07-07 Nippon Telegr & Teleph Corp <Ntt> 部分的木構造に応じた適応型再構成装置及び方法及びプログラム
CN112508440A (zh) * 2020-12-18 2021-03-16 深圳市赛为智能股份有限公司 数据质量评估方法、装置、计算机设备及存储介质

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000307641A (ja) * 1999-04-16 2000-11-02 Nec Corp 転送先検索方法、転送先検索装置、検索テーブル記録媒体及び検索プログラム記録媒体
DE10028563B4 (de) * 1999-06-09 2007-03-22 Nec Corp. Kommunikationssteuerungseinheit
JP2003516660A (ja) * 1999-12-10 2003-05-13 モサイド・テクノロジーズ・インコーポレイテッド 最長一致アドレスルックアップのための方法および装置
JP2008011081A (ja) * 2006-06-28 2008-01-17 Fujitsu Ltd 通信装置、アドレス学習方法およびアドレス学習プログラム
JP2013020613A (ja) * 2011-07-13 2013-01-31 Palo Alto Research Center Inc メモリ効率の良い、プランニングに関する状態設定の表示
JP2014126883A (ja) * 2012-12-25 2014-07-07 Nippon Telegr & Teleph Corp <Ntt> 部分的木構造に応じた適応型再構成装置及び方法及びプログラム
CN112508440A (zh) * 2020-12-18 2021-03-16 深圳市赛为智能股份有限公司 数据质量评估方法、装置、计算机设备及存储介质
CN112508440B (zh) * 2020-12-18 2024-06-07 深圳市赛为智能股份有限公司 数据质量评估方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
EP0804769B1 (en) Variable length data sequence matching method and apparatus
US20030123397A1 (en) Method for generating nodes in multiway search tree and search method using the same
CN110975290B (zh) 一种基于模式数据库的路径规划方法及系统
JP2001274837A (ja) データ・パケットを分類する方法および手段
US7460538B2 (en) Communication control apparatus and method for searching an internet protocol address
US20080133494A1 (en) Method and apparatus for searching forwarding table
US6570866B1 (en) High-speed flexible longest match retrieval
JPH1166096A (ja) データ蓄積方法、そのデータ蓄積方法によって蓄積されたデータベース及びそのデータベースの検索方法
JPH1010970A (ja) 地図データ更新システム
CN105025013B (zh) 基于优先级Trie树的动态IP匹配模型的建立方法
JP3691018B2 (ja) 最長一致検索回路および方法およびプログラムおよび記録媒体
US8166043B2 (en) Bit strings search apparatus, search method, and program
JP2000358064A (ja) ルーティングテーブル検索装置および検索法
CN117312608B (zh) 一种基于深度优先搜索的河网节点简并方法
JP4048861B2 (ja) アドレス検索装置
WO2001071483A2 (en) Determinaton of a minimum or maximum value in a set of data
JPH07210569A (ja) 情報検索方法および情報検索装置
JP2003296157A (ja) データ記憶装置、データ処理装置、データ処理方法、データ処理プログラム
KR100378599B1 (ko) 주소 메모리 블록의 간섭 인덱싱에 기반한 라우팅 테이블검색 방법
KR100560420B1 (ko) 트라이를 이용한 인터넷 프로토콜 주소 검색 방법
JPH0581102A (ja) テーブル管理方式
US7860712B2 (en) Method of storing data in a memory circuit for AHO-corasick type character recognition automaton and corresponding storage circuit
JPH10240741A (ja) 木構造型データの管理方法
JPH0832613A (ja) 経路選択情報の検索装置
JPH10253376A (ja) 最小コスト経路探索方法およびシステム