JPH10240741A - 木構造型データの管理方法 - Google Patents

木構造型データの管理方法

Info

Publication number
JPH10240741A
JPH10240741A JP9046368A JP4636897A JPH10240741A JP H10240741 A JPH10240741 A JP H10240741A JP 9046368 A JP9046368 A JP 9046368A JP 4636897 A JP4636897 A JP 4636897A JP H10240741 A JPH10240741 A JP H10240741A
Authority
JP
Japan
Prior art keywords
node
tree structure
record
stored
parent
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
JP9046368A
Other languages
English (en)
Inventor
Fumikazu Konishi
史和 小西
Nobuyuki Kobayashi
伸幸 小林
Yoshihisa Natsume
義久 夏目
Shuichi Nishioka
秀一 西岡
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.)
Nippon Telegraph and Telephone Corp
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 JP9046368A priority Critical patent/JPH10240741A/ja
Publication of JPH10240741A publication Critical patent/JPH10240741A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 木構造型データに対する高速な検索が可能で
あるとともに、木構造型データを効率よく格納し得る木
構造型データの管理方法を提供する。 【解決手段】 木構造型データを関係データベースに格
納する処理において木構造の節点に当たるデータを関係
データベースのレコードとして格納し、この格納された
レコードの格納位置を表すIDを設け、該IDをレコー
ドのカラムに格納し、木構造における1つの親とその親
に対する複数の子との間の枝を前記複数の子の中の任意
の有限個の子との間の枝に限定する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、木構造型データを
格納するとともに、この格納された木構造型データを検
索する木構造型データの管理方法に関する。
【0002】
【従来の技術】木構造型データは、図3に示すような構
造を有するデータである。同図において、丸で表したも
のそれぞれを節点(頂点)と呼ぶ。節点の中の1つを他
と区別して根(root)と呼ぶ。節点と節点との間には親
子関係が存在し、親と子との節点の間は枝(辺)と呼ば
れる線で結ばれている。枝の上側の節点が親であり、下
側の節点が子である。根以外の各節点には1つだけ親が
ある。
【0003】一方、節点の子の数には制限はなく、1個
の親に対してn個の子の枝が存在し得る。各節点はいく
つの子の節点を持っていてもよいし、子を持たない節点
があってもよい。このような規則に従って全ての節点を
枝で結んだものが木構造型データである。
【0004】このような木構造型データを関係データベ
ースで扱う場合、以下に示す方法がある。
【0005】第1の方法として、図4に示すように、木
構造全体を1つのテーブルとして表現する。すなわち、
テーブルの1つのレコードが木構造上の1つの節点を表
し、テーブルにカラムを木構造の段数分用意し、根から
ある節点に至る道筋に存在する全ての節点のキーを順番
にカラムに格納することで木構造の上下関係を表現す
る。
【0006】第2の方法として、図5に示すように、木
構造の各節点に、木構造内で一意に識別するためのキー
を定め、テーブルの各レコードは各々の節点を表し、テ
ーブルのカラムに各節点のキー、すなわち自分自身のキ
ーと、その直接上位の節点のキーである親の節点のキー
をそれぞれ格納することで、木構造における上下関係を
表現する。
【0007】
【発明が解決しようとする課題】上述した従来の木構造
型データの管理方法では、以下のような問題点があっ
た。
【0008】(1)第1の方法を用いると、木構造の検
索に必要なデータベース操作は少なくて済むが、テーブ
ルに予め全ての段数分カラムを用意する必要があるの
で、利用しないカラムを多く含み、データの格納効率が
非常に悪い。また、木の段数はデータの挿入に伴い増加
していく可能性があり、その場合テーブルのカラム数が
変化するので、データベースを作り直す必要が出てく
る。
【0009】(2)第2の方法を用いると、木構造をm
段検索するためには、m回のテーブルに対するデータベ
ース操作(参照操作)が必要である。木構造の段数が深
い場合かなりの検索時間を要する。
【0010】本発明は、上記に鑑みてなされたもので、
その目的とするところは、木構造型データに対する高速
な検索が可能であるとともに、木構造型データを効率よ
く格納し得る木構造型データの管理方法を提供すること
にある。
【0011】
【課題を解決するための手段】上記目的を達成するた
め、請求項1記載の本発明は、木構造型データを関係デ
ータベースに格納する処理において木構造の節点に当た
るデータを関係データベースのレコードとして格納し、
この格納されたレコードの格納位置を表すIDを設け、
該IDをレコードのカラムに格納し、木構造における1
つの親とその親に対する複数の子との間の枝を前記複数
の子の中の任意の有限個の子との間の枝に限定すること
を要旨とする。
【0012】請求項1記載の本発明にあっては、木構造
型データにおける各節点に当たるデータを関係データベ
ースのレコードに格納し、この格納したレコードの格納
位置を表すIDを取得し、レコードのカラムに格納し、
木構造における親子関係をIDで表現している。また、
木構造における親子関係を関係データベースで表現する
ために、任意の節点を親とした場合の親とその親に対す
る複数の子との枝を有限個に限定し、有限個数分のID
を格納するためのカラムをレコードに用意し、任意の節
点を親とした場合の親に対する複数の子同士の間に互い
に有限個の枝を定義し、この枝分のIDを格納するため
のカラムをレコードに設けて、木構造を関係データベー
スに格納している。
【0013】また、請求項2記載の本発明は、請求項1
記載の発明において、木構造型データを格納した関係デ
ータベースから木構造中の任意の節点から前記節点の子
を検索する際に、前記IDで示される格納位置に存在す
るレコードを検索することを要旨とする。
【0014】請求項2記載の本発明にあっては、関係デ
ータベースに格納された木構造型データに対して任意の
節点(レコード)からその子の節点への検索を行う場合
に、前記IDが指し示す位置にIDを用いて直接該当レ
コードを検索する。
【0015】
【発明の実施の形態】以下、図面を用いて本発明の実施
の形態について説明する。
【0016】図1を参照して、本発明の一実施形態に係
る木構造型データの管理方法について説明する。
【0017】まず、図1(a)に示す木構造型データ1
00を関係データベースに格納する方法を説明する。
【0018】節点2のように枝が5本ある場合、節点2
の子への枝をテーブルに格納するためにはカラムが5個
必要となり、節点1のように枝が2本ある場合は、節点
1の子への枝をテーブルに格納するためにはカラムが2
個必要となり、節点が持つ子への枝の数に応じて必要な
カラム数が変化することになる。
【0019】そこで、本実施形態では、親と子の間の枝
を有限個に固定し、木構造型データ100における親と
子の関係を図1(b)に示す構造101のように変形さ
せる。このことにより、節点6のように、1つの節点が
必要とする枝の数は最高で3本(下矢印、右矢印、左矢
印)となり、枝の数を固定することが可能になる。
【0020】このように有限個のカラムで格納できるよ
うになった構造101を図1(c)に示すテーブル10
2に格納する方法を説明する。
【0021】テーブル102には、キーを格納するカラ
ムと、下の節点が格納されているレコードの格納位置を
指すIDを格納するカラムと、右の節点が格納されてい
るレコードの格納位置を指すIDを格納するカラムと、
左の節点が格納されているレコードの格納位置を指すI
Dを格納するカラムを用意する。ただし、この例では、
テーブルはメモリ上に配置してあるものとし、レコード
の格納位置を指すIDはメモリアドレスとするが、格納
位置を指すIDは、格納されている位置を直接に表現で
きるようなものであれば何でもかまわない。
【0022】構造101のデータをテーブル102に格
納する処理のステップは以下の通りである。
【0023】(ステップS1)節点1のキーをテーブル
102のレコード103に格納する。
【0024】(ステップS2)節点2のキーをテーブル
102のレコード104に格納する。
【0025】(ステップS3)レコード103の下の節
点のID格納カラム105にレコード104のメモリア
ドレス111を格納する。
【0026】(ステップS4)節点3のキーをテーブル
102のレコード107に格納する。
【0027】(ステップS5)レコード104の右の節
点のID格納カラム108にレコード107のメモリア
ドレス109を格納する。
【0028】(ステップS6)レコード107の左の節
点のID格納カラム110にレコード104のメモリア
ドレス111を格納する。
【0029】上記のステップを構造101の全ての節点
について行う。ただし、節点8のように、右もしくは左
もしくは下の節点が存在しない場合は、それ以上節点が
存在しないことが識別できる値を格納する。
【0030】次に、テーブル102に対する検索方法を
説明する。
【0031】テーブル102に対して、節点1(キーは
1とする)の子である節点3(キーは3とする)を検索
する処理のステップは以下の通りである。
【0032】(ステップS1)節点1が格納されている
レコード103の、下の節点のID格納カラムに格納さ
れているメモリアドレス105を用いて、レコード10
4にジャンプする。
【0033】(ステップS2)レコード104のキー2
と与えられた節点3のキー3を比較する。
【0034】(ステップS3)キーが一致しないので、
レコード104の、右の節点のID格納カラム108に
格納されているメモリアドレス109を用いて、レコー
ド107にジャンプする。
【0035】(ステップS4)レコード107のキー3
と与えられた節点3のキー3を比較する。
【0036】(ステップS5)キーが一致したので、検
索処理を終了する。
【0037】上記のステップを目的の節点が見つかるま
で続ける。もし、上記のそれ以上節点が存在していない
ことが識別できる値が右の節点のID格納カラムに格納
されていた場合、そのキーと一致する節点がデータベー
ス内に存在しないことを意味する。
【0038】次に、図2を参照して、本発明の他の実施
形態について説明する。
【0039】図2(a)に示す木構造型データ200を
関係データベースに格納する方法を説明する。
【0040】本実施形態においては、親と子との間の枝
を有限個に固定するために、木構造型データ200にお
ける親と子の関係を図2(b)に示す構造201のよう
に変形させる。このことにより、節点3のように、1つ
の節点が必要とする枝の数は最高で5本(左下矢印、下
真ん中矢印、右下矢印、右矢印、左矢印)となり、枝の
数を固定することが可能となる。
【0041】次に、上記により有限個のカラムで格納で
きるようなった構造201をテーブルに格納する方法は
図1の実施形態と同様である。ただし、構造201にお
ける節点5から節点9までのキーを予め昇順もしくは降
順に並べ替えを行っておく。
【0042】次に、テーブルに対する検索方法も図1の
実施形態と同様である。ただし、任意の節点からその子
を検索する際に、下真ん中矢印の指す節点のキー値とで
比較を行ってから、3つの下向きIDのレコードにジャ
ンプするかの決定を行う。
【0043】上述したように、本発明の木構造型データ
の管理方法では、木構造における各節点をレコードに格
納し、各節点間の枝(関係)をレコードの格納位置を指
すIDとしてレコードのカラムに格納することで、木に
対する検索を行う場合に、索引経由の検索を行うことな
く、IDの指すレコードに直接ジャンプすることで、高
速な検索を可能にする。
【0044】また、木構造における1:nの親子関係
を、親から子への枝を有限個に限定し、子同士を互いに
枝で結ぶことで、有限(固定)個のカラムで木構造を表
現するので、利用しないカラムが無くなり効率的な格納
が行える。
【0045】
【発明の効果】以上説明したように、本発明によれば、
木構造における親子関係を各節が格納されている格納位
置を表すIDを用いて表現しているため、任意の節点の
子を検索する場合に、前記IDを用いることで物理的レ
コードの位置を取得することが可能となり、これにより
直接前記レコードを求めることが可能となる。よって、
木構造型データの検索に、データベース操作(参照操
作)を用いる必要がない。
【0046】また、任意の節点を親とした場合の、前記
親と前記親に対する複数の子との間の枝を有限個に限定
でき、前記親に対する複数の子同士の間の枝も有限個に
限定できるので、テーブルに必要なカラムは、木構造の
段数に関係なく固定にでき、利用しないカラムが無くな
り格納効率が非常によくなる。
【0047】また、テーブルに必要なカラムは固定数
(上記有限個)であるので、木構造の段数が増えた場合
などにおいて、新たにデータベースを作り直す必要がな
くなる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る木構造型データの管
理方法を説明するための図である。
【図2】本発明の他の実施形態を説明するための図であ
る。
【図3】木構造型データを説明するための図である。
【図4】従来の木構造型データの管理方法を説明するた
めの図である。
【図5】従来の木構造型データの管理方法を説明するた
めの図である。
【符号の説明】
100,200 木構造型データ 101,201 変換後の木構造型データ 102 テーブル 103 節点1を格納するレコード 104 節点2を格納するレコード 105 レコード103のカラム 106 レコード103のメモリアドレス 107 節点3を格納するレコード 108 レコード104のカラム 109 レコード107のメモリアドレス 110 レコード107のカラム 111 レコード104のメモリアドレス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 西岡 秀一 東京都新宿区西新宿三丁目19番2号 日本 電信電話株式会社内

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 木構造型データを関係データベースに格
    納する処理において木構造の節点に当たるデータを関係
    データベースのレコードとして格納し、 この格納されたレコードの格納位置を表すIDを設け、 該IDをレコードのカラムに格納し、 木構造における1つの親とその親に対する複数の子との
    間の枝を前記複数の子の中の任意の有限個の子との間の
    枝に限定することを特徴とする木構造型データの管理方
    法。
  2. 【請求項2】 木構造型データを格納した関係データベ
    ースから木構造中の任意の節点から前記節点の子を検索
    する際に、前記IDで示される格納位置に存在するレコ
    ードを検索することを特徴とする請求項1記載の木構造
    型データの管理方法。
JP9046368A 1997-02-28 1997-02-28 木構造型データの管理方法 Pending JPH10240741A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9046368A JPH10240741A (ja) 1997-02-28 1997-02-28 木構造型データの管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9046368A JPH10240741A (ja) 1997-02-28 1997-02-28 木構造型データの管理方法

Publications (1)

Publication Number Publication Date
JPH10240741A true JPH10240741A (ja) 1998-09-11

Family

ID=12745219

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9046368A Pending JPH10240741A (ja) 1997-02-28 1997-02-28 木構造型データの管理方法

Country Status (1)

Country Link
JP (1) JPH10240741A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005088479A1 (ja) * 2004-03-16 2005-09-22 Turbo Data Laboratories Inc. ツリー型データ構造を取り扱う方法、情報処理装置、及び、プログラム
WO2005119516A1 (ja) * 2004-06-03 2005-12-15 Turbo Data Laboratories Inc. 配列の生成方法、情報処理装置、及び、プログラム
WO2006054506A1 (ja) * 2004-11-17 2006-05-26 Turbo Data Laboratories Inc. ツリーデータの検索・集計・ソート方法及びプログラム
WO2006080268A1 (ja) * 2005-01-25 2006-08-03 Turbo Data Laboratories Inc. ツリーの検索、集計、ソート方法、情報処理装置、および、ツリーの検索、集計、ソートプログラム
JP4712718B2 (ja) * 2004-10-01 2011-06-29 株式会社ターボデータラボラトリー 配列の生成方法、及び、配列生成プログラム

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2005088479A1 (ja) * 2004-03-16 2008-04-24 株式会社ターボデータラボラトリー ツリー型データ構造を取り扱う方法、情報処理装置、及び、プログラム
WO2005088479A1 (ja) * 2004-03-16 2005-09-22 Turbo Data Laboratories Inc. ツリー型データ構造を取り扱う方法、情報処理装置、及び、プログラム
US7627604B2 (en) 2004-03-16 2009-12-01 Turbo Data Laboratories, Inc. Method for handling tree-type data structure, information processing device, and program
JP4537391B2 (ja) * 2004-03-16 2010-09-01 株式会社ターボデータラボラトリー ツリー型データ構造を取り扱う方法、情報処理装置、及び、プログラム
JP4681544B2 (ja) * 2004-06-03 2011-05-11 株式会社ターボデータラボラトリー 配列の生成方法、情報処理装置、及び、プログラム
WO2005119516A1 (ja) * 2004-06-03 2005-12-15 Turbo Data Laboratories Inc. 配列の生成方法、情報処理装置、及び、プログラム
JPWO2005119516A1 (ja) * 2004-06-03 2008-04-03 株式会社ターボデータラボラトリー 配列の生成方法、情報処理装置、及び、プログラム
US7962494B2 (en) 2004-06-03 2011-06-14 Turbo Data Laboratories, Inc. Method, information processing apparatus, and program for generating array
JP4712718B2 (ja) * 2004-10-01 2011-06-29 株式会社ターボデータラボラトリー 配列の生成方法、及び、配列生成プログラム
WO2006054506A1 (ja) * 2004-11-17 2006-05-26 Turbo Data Laboratories Inc. ツリーデータの検索・集計・ソート方法及びプログラム
JP4796970B2 (ja) * 2004-11-17 2011-10-19 株式会社ターボデータラボラトリー ツリーデータの検索・集計・ソート方法及びプログラム
JPWO2006080268A1 (ja) * 2005-01-25 2008-08-07 株式会社ターボデータラボラトリー ツリーの検索、集計、ソート方法、情報処理装置、および、ツリーの検索、集計、ソートプログラム
US7937399B2 (en) 2005-01-25 2011-05-03 Turbo Data Laboratories, Inc. Method, information processing apparatus, and program of searching for, aggregating and sorting trees
JP4653157B2 (ja) * 2005-01-25 2011-03-16 株式会社ターボデータラボラトリー ツリーの検索、集計、ソート方法、情報処理装置、および、ツリーの検索、集計、ソートプログラム
WO2006080268A1 (ja) * 2005-01-25 2006-08-03 Turbo Data Laboratories Inc. ツリーの検索、集計、ソート方法、情報処理装置、および、ツリーの検索、集計、ソートプログラム

Similar Documents

Publication Publication Date Title
US9195738B2 (en) Tokenization platform
US5257365A (en) Database system with multi-dimensional summary search tree nodes for reducing the necessity to access records
CN101819598B (zh) 存储设备和记录介质
US6965894B2 (en) Efficient implementation of an index structure for multi-column bi-directional searches
US20050267902A1 (en) Database and method of generating same
JPH06103497B2 (ja) レコード検索方法及びデータベース・システム
JPH11212980A (ja) インデクス作成方法および検索方法
JP2004518226A (ja) データベースシステムおよびクエリオプティマイザ
US6735600B1 (en) Editing protocol for flexible search engines
CN102867049A (zh) 一种基于单词查找树实现的汉语拼音快速分词方法
CN108984626B (zh) 一种数据处理方法、装置及服务器
CN114491172A (zh) 树形结构节点的快速检索方法、装置、设备及存储介质
US7302377B1 (en) Accelerated event queue for logic simulation
JPH10240741A (ja) 木構造型データの管理方法
JP2005135221A (ja) 表形式データの結合方法、結合装置およびプログラム
JP6260339B2 (ja) 情報処理装置,データ変換プログラム,及びデータ変換方法
KR20220099745A (ko) 지리공간 블록체인 데이터 검색을 위한 공간 분할 기반의 트리 인덱싱 및 질의어 처리 방법 및 장치
JPH1040255A (ja) ハッシュ表管理装置
US6901396B1 (en) Packed radix search tree implementation
CN110489516B (zh) 一种快速为海量结构化数据建立前缀索引的方法
US8849866B2 (en) Method and computer program product for creating ordered data structure
JP2001134598A (ja) T木インデックス構築方法及びt木インデックス検索方法及びt木インデックス構築装置及びt木インデックス検索装置及びt木インデックス構築プログラムを格納した記憶媒体及びt木インデックス検索プログラムを格納した記憶媒体
JPH11242627A (ja) データアクセス方法およびプログラムを記録した媒体
JPH02190970A (ja) インデクスの構造およびこれを用いるサーチ処理方法
JP2001101233A (ja) データベース処理装置