JPH01145720A - B木のノード管理方式 - Google Patents

B木のノード管理方式

Info

Publication number
JPH01145720A
JPH01145720A JP87305376A JP30537687A JPH01145720A JP H01145720 A JPH01145720 A JP H01145720A JP 87305376 A JP87305376 A JP 87305376A JP 30537687 A JP30537687 A JP 30537687A JP H01145720 A JPH01145720 A JP H01145720A
Authority
JP
Japan
Prior art keywords
node
tree
block
input
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
JP87305376A
Other languages
English (en)
Inventor
Toyoaki Suzuka
豊明 鈴鹿
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.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering 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 Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP87305376A priority Critical patent/JPH01145720A/ja
Publication of JPH01145720A publication Critical patent/JPH01145720A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、二次記憶装置上にB木を構成する際のノード
の記憶割当てに係り、特に各ノード中の項目数が少ない
場合に大きな記憶効率を得ることができる技術に関する
ものである。
〔従来の技術〕
従来、二次記憶装置上にB木を構成するデータ構造の実
現手法に関連する技術は、例えば、アイ・ビー・エム、
システムジャーナル、第12巻、第4号(1973年)
、第368頁から第423頁[I BM、 5yst、
J、、 Vol、l 2. NO,4(1973)pp
368〜423]において論じられている。
[発明が解決しようとする問題点〕 しかしながら、前記従来のB木を実現しているシステム
では、ノードを固定長としており、ノード中の項目数が
少ない場合は空欄が多くなり、記憶領域の充填効率が最
低で50%になってしまうという問題があった。
本発明は、前記問題点を解決するためになされたもので
ある。
本発明の目的は、二次記憶装置上にB木を構築する際の
記憶利用率を向上することができる技術を提供すること
にある。
本発明の前記ならびにその他の目的と新規な特徴は、本
明細書の記述及び添付図面によって明らかになるであろ
う。
〔問題点を解決するための手段〕
本願において開示される発明のうち、代表的なものの概
要を簡単に説明すれば、下記のとおりである。
すなわち、二次記憶装置上にB木を構築する際のノード
の記憶割当てにおいて、一つの入出力ノード中に複数の
ノードを可変長に格納する手段を備えたことを特徴とす
るものである。
〔作用〕
前述した手段によれば、B木のノード中の空欄部分を二
次記憶装置上に記憶割り付けせず、子ノードとキーを持
った部分だけを動的に記憶割り付けするため、ノードは
可変長となり、入出力ブロック内にノードのブロック内
での位置と、その長さの組を持つことによって管理する
ので、記憶利用率を向上することができる。
〔実施例〕
以下1本発明の一実施例を図面を用いて具体的に説明す
る。
なお、実施例を説明するための全回において、同一機能
を有するものは同一符号を付け、その繰り返しの説明は
省略する。
まず、B木について簡単に説明する。
“節点”とよばれる要素の集合に対して階層的な(親子
の)関係を与えたものを“木”という。
“節点″のうちの一つを根”と呼んで他の″節点′″と
区別している。9節点″はリストの要素と同様にどんな
型であってもよい。ここで“節点″は、長方形で示す。
正式には1′木”は次のように再帰的に定義される。
(1)単一の“節点”はそれ自身で一つの“木”をなす
。この″節点″は゛′木″の“根″でもある。
(2)nを″節点″とし、T1.T、−−−Tkが“木
”であってこれらの“根”がnz+ nZ・・・nkで
あるとし、このときnをn、、n、・・・nkの親とす
ると、新しい“木”が得られる。この木”では、nが“
根”で、 T1. T2・・・Tkはこの゛根″の部分
木である。゛′節点u nl、 nz・・・nkは″節
点”の子と呼ばれる。
B木の各゛′節点″には同じ大きさのノード(ブロック
)が対応する1m次のB木の各“節点”は最大2m個の
データと2m+1個のポインタ数の最小値は、根節点(
−格上)が2で他はm + 1であり、mの最小値は1
である。各“節点″にはデータがはいっているので、木
”の“根”に近い方にあるデータ程短い時間で検索でき
る。
前記「再帰的」とは、ある処理を実現する時に。
処理の中に自分自身が含まれている時、再帰的であると
言われる。これは、数学の漸化式と同様なものである。
また、B木では、均衡したm次のB木で各ブロックのレ
コード数がm以上であるものから始めて挿入操作や削除
操作を繰り返し適用しても結果はやはり均衡したm次の
B木で各ノードのレコード数がm以上のもの(充填率は
50%以上)となる。
この挿入や削除の連鎖は、順次木を上がって行くため、
たかだか木の高さだけ連鎖して終了してしまう。   
′ 第1図は1本発明に係るB木構造データ処理装置の概略
構成を示すブロック図、・ 第2図は、第1図に示す二次記憶装置上の入出力ブロッ
クの概略構成を説明するための図である。
本発明に係るB木構造データ処理装置は、第1図に示す
ように、キーボード、マウス等からなる入力装置1、コ
ンピュータからなるデータ処理装置2、入出力ブロック
単位で複数ブロックが記憶されている二次記憶装置3、
処理された情報を表示するための表示装置4、処理され
た情報を記録印刷するためのプリンタ5が備えられてい
る。データ処理装置2は、中央処理装置2Aと主記憶装
置2Bとからなっている。
前記二次記憶装置3に記憶されている入出力ブロックの
概略構造は、第2図に示すように、前からブロック管理
領域10、ノードスロット領域11゜空き領域12、ノ
ード記憶領域13の順に並べられている。
前記ブロック管理領域10には、ブロック管理領域10
の空き長さを表わす空き長さデータ記憶領域10A、空
き先頭位置を表わす空き先頭アドレス記憶領域10B、
空き最終位置を表わす空き最終スロット領域10Cから
なっている。ノードスロット領域11には、各ノードの
長さ及び位置のスロットが記憶される。
そして、ノード記憶領域13には、第2図では最後から
第1ノード13A、第2ノード13B、第3ノード13
Cが記憶されている。このように、ノードは、一つの入
出力(Ilo)ブロック(以下、単にブロックという)
中に複数個入れられる。第2図は、三つのノードが一つ
の入出力ブロック中に入っている様子を示している。
入出力ブロック内は次のように管理される。
(■)、ノードは入出力ブロックの最後から順に確保さ
れる。
(■)、スロットは、ノード長とノード位W(入出力ブ
ロックの先頭からのオフセット)の二つ組みからなり、
各ノードを管理する。
(■)、スロットは入出力ブロックの先頭から確保され
る。
(■)0項目が追加されノードが大きくなると。
ノードの延長の手続をとり、入出力ブロック内に新しく
領域を確保し、そちらにノードの内容がコピーされる。
スロットは移動せず、内容が更新されるだけである。ま
た、元のノードがあった位置は、ガーベージとなる。ペ
ージは必要に応じて回収される。
(■)0項目が削除されノードが小さくなった場合は、
ノード短縮の手続をとり、ノードを移動せず、その場で
縮める。
(■)、木を構成するために張るポインタは、ノードを
直接指さず、そのノードを管理しているスロットを指す
。このことによりノードの長さが変わってその場所が移
動しても木を構成するポインタを張り変える必要がない
次に、各手続の処理について説明する。
第3A図乃至第3D図は、本発明の一実施例の二次記憶
装置上にB木を構築する際のノード管理方式に用いる各
手続の処理を説明するためのフローチャートである。
(A)、ノードの確保処理 ノード確保とは、例えば、B木における新しいノード領
域を確保することをいう。一般的にはノード確保はレコ
ード確保となる。
(イ)、ブロック管理領域の空き長さがパノード要分十
スロット長”である場合 第3A図に示すように、ブロック管理領域の空き長さが
“ノード要分十スロット長”以上ある場合か否かをステ
ップ101で判断し、“ノード要分十スロット長″以上
ある場合(YES)の時はステップ102に移り、′ノ
ード要分十スロット長″′に満だない場合(NO)の時
はステップ105に移る。
ステップ102で空きスロットマークの付いたスロット
がない時は、ブロック管理域の最終スロットを変更しス
ロットを確保し、ステップ103に移る。ステップ10
3でブロック管理域の空き先頭を変更しノードを確保し
、ステップ104に移り、ブロック管理域の空きを変更
する。
(ロ)、ブロック管理領域の空き長さが“ノード要分十
スロット長”に満たない場合 第3A図のステップ101の判断において、NOの場合
であり、ステップ105の処理を行う。
すなわち、他のブロックから前記ステップ101乃至1
04と同様にしてノード確保を行い処理を終了する。
(B)、ノードの破棄処理 第3B図に示すように、ステップ201で該当ノードよ
り前にあるノードを全て後に移動し、縮めることにより
該当ノードを削除し、ステップ202に移る。ステップ
202で移動したノードを管理するスロットのポインタ
を変更し、ステップ203に移る。ステップ203でブ
ロック管理域の空き長さを破棄したノード要分だけ増し
、ステップ204に移り、該当ノードのスロットに空き
スロットマークを付けて処理を終了する。
(C)、ノードの延長処理 第3C図に示すように、ステップ301でノードの確保
と同様の手続で新しい長さのノードを確保し、ステップ
302に移る。ステップ302で旧ノードの内容を新し
く確保したノードにコピーし、ステップ303に移り、
ノードの破棄の処理と同様の手続で旧ノードを削除して
処理を終了する。
(D)、ノードの短縮処理 第3D図に示すように、ステップ401で該当ノードの
スロット中のノード長を変更しステップ402に移る。
ステップ402で短くなった分だけノードを縮めなおし
ステップ403に移り、そのために移動したノードのス
ロット中のノード位置を変更して処理を終了する。
次に、B木に対するレコード(データ)の挿入及び削除
の処理について説明する。
(i)、B木に対してレコード(データ)を挿入する場
合の処理 新しいレコード(データ)をあるノードに挿入する場合
には、ノード延長、ノード短縮及びノード確保の各処理
が必要である。
(イ)、ノード延長処理の場合、ノードにレコードの溢
れがない時には処理は終了する。レコードの溢れがある
場合にはレコード数はすでにある2m個に挿入の1個を
加えた計2m+1個となる。
(ロ)、ブロックを二つに分ける場合にはノードの確保
処理が必要である。この場合、小さい順に前のm個を一
つのブロックに入れ、中央のレコードを親のブロックに
入れる。
(ハ)、前記(ロ)の結果が親のブロックで溢れを起こ
す時はこのブロックについて(イ)の処理から操作を繰
り返す。
次に、B木に対するレコードの挿入の一実施例を第4図
乃至第7図に示す。
第4図乃至第7図は1図を簡単にするために、m=1と
した場合であり、A−Gはブロックの位置を表わす符号
である。
第4図は、B木の上から2段目までレコードが完全につ
まっている状態を示す。
そして、レコード50を2段目中央のブロックCに入れ
ると、第5図に示すように、−格上ブロックAで溢れが
生じた状態となるので、処理(イ)〜(ハ)の操作を繰
り返すことにより第6図に示す状態となる。すなわち、
第6図において、ブロックA及びCでノード短縮処理を
行い、ブロックF及びGでノード確保処理を行っている
次に、第6図において、3段目のブロックEにレコード
65を挿入すると、ノード延長処理が行われて第7図に
示す状態となる。
(ii) 、 B木に対してレコード(データ)を削除
する場合の処理 B木に対してレコード(データ)を削除する場合には、
前記ノード短縮処理及びノード破棄処理が必要である。
(イ)、削除してもそのブロックのレコード数がm以上
であれば終了する。
(ロ)、レコード数がm−1個となれば、そのブロック
と同じレベルの前又は後のブロックのレコード数がm+
1個以上なら、ここから最後部又は最前部のレコードを
この二つのブロックの間にある親のキーに移し、この親
のキーを始めにレコード不足を起こしたレコードに入れ
て終了する。
(ハ)、同じレベルの前又は後のブロックを合わせてレ
コード数が2m−1個にしかならないときは、この二つ
のブロック間のキーも含めて、レコード数が2m個の一
つのブロックにまとめる。
(ニ)、前記(ハ)の処理の結果、一つ上のレベルのブ
ロックのレコード数が減少するので、前記(イ)の処理
から始まる操作を適用する。
次に、B木に対するレコードの削除処理の一実施例を第
8図及び第9図に示す。
第8図及び第9図は、図を簡単にするために。
m=1とした場合であり、A−Dはブロックの位置を表
わす符号である。
第8図において、2段目のブロックCからレコード50
を削除すると、このブロックCのレコードがm−1(m
−1(個になるが前記のブロック数もm個で両方を合わ
せても2m−1にしかならない。この場合は、前記(ハ
)の処理を適用して第9図に示す状態が得られる。
以上の説明かられかるように、本実施例によれば、B木
のノード中の空欄部分を二次記憶装置S上に記憶割り付
けせず、子ノードとキーを持った部分だけを動的に記憶
割り付けするため、ノードは可変長となり、入出力ブロ
ック内にノードのブロック内での位置と、その長さの組
を持つことによって管理するので、二次記憶装置S上に
B木を構築する際の記憶利用率を向上することができる
これにより、入出力処理の効率を向上することができる
以上、本発明を実施例にもとづき具体的に説明したが、
本発明は、前記実施例に限定されるものではなく、その
要旨を逸脱しない範囲において種々変更可能であること
は言うまでもない。
〔発明の効果〕
以上、説明したように、本発明によれば、二次記憶装置
上に効率良くB木のノードを記憶割り当てできるので、
二次記憶装置上にB木を構築する際の記憶利用率を向上
することができる。
【図面の簡単な説明】
第1図は1本発明に係るB木構造データ処理装置の概略
構成を示すブロック図、 第2図は、第1図に示す二次記憶装置上の入出力ブロッ
クの概略構成を説明するための図、第3A図乃至第3D
図は、本発明の一実施例の二次記憶装置上にB木を構築
する際のノード管理方式に用いる各手続の処理を説明す
るためのフローチャート。 第4図乃至第7図は、B木に対するレコードの挿入の一
実施例を説明するための説明図、第8図及び第9図は、
B木に対するレコードの削除処理の一実施例を説明する
ための説明図である。 図中、1・・・入力装置、2・・・データ処理装置、3
・・・二次記憶装置、4・・・表示装置、5・・・プリ
ンタ、10・・・ブロック管理領域、11・・・ノード
スロット領域、12・・・空き領域、13・・・ノード
記憶領域である。

Claims (1)

    【特許請求の範囲】
  1. (1)、二次記憶装置上にB木を構築する際のノードの
    記憶割当てにおいて、一つの入出力ブロック中に複数の
    ノードを可変長に格納する手段を備えたことを特徴とす
    るB木のノード管理方式。
JP87305376A 1987-12-01 1987-12-01 B木のノード管理方式 Pending JPH01145720A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP87305376A JPH01145720A (ja) 1987-12-01 1987-12-01 B木のノード管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP87305376A JPH01145720A (ja) 1987-12-01 1987-12-01 B木のノード管理方式

Publications (1)

Publication Number Publication Date
JPH01145720A true JPH01145720A (ja) 1989-06-07

Family

ID=17944372

Family Applications (1)

Application Number Title Priority Date Filing Date
JP87305376A Pending JPH01145720A (ja) 1987-12-01 1987-12-01 B木のノード管理方式

Country Status (1)

Country Link
JP (1) JPH01145720A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04229372A (ja) * 1990-04-26 1992-08-18 Internatl Business Mach Corp <Ibm> メモリ空間再使用管理方法及びシステム
WO2008038416A1 (fr) * 2006-09-26 2008-04-03 Justsystems Corporation Dispositif de recherche de document et procédé de recherche de document

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04229372A (ja) * 1990-04-26 1992-08-18 Internatl Business Mach Corp <Ibm> メモリ空間再使用管理方法及びシステム
WO2008038416A1 (fr) * 2006-09-26 2008-04-03 Justsystems Corporation Dispositif de recherche de document et procédé de recherche de document
JP2008083769A (ja) * 2006-09-26 2008-04-10 Just Syst Corp 文書検索装置および文書検索方法

Similar Documents

Publication Publication Date Title
JP4886693B2 (ja) 情報処理方法、情報処理装置および情報処理プログラム
JP3844370B2 (ja) 多次元データを格納しかつアクセスするコンピュータ方法及び格納構造
US7788287B2 (en) System and method for storing and accessing data in an interlocking trees datastore
US5799299A (en) Data processing system, data retrieval system, data processing method and data retrieval method
US6532476B1 (en) Software based methodology for the storage and retrieval of diverse information
Chin et al. A fast algorithm for computing longest common subsequences of small alphabet size
Raman Eliminating amortization: on data structures with guaranteed response time
CN112100989A (zh) 文档编辑方法、文档编辑系统以及计算机存储介质
JPH01145720A (ja) B木のノード管理方式
US7313567B1 (en) Schemaless XML payload generation
CN114329720A (zh) 一种ui数据的同步方法、装置、电子设备及存储介质
JP2874810B2 (ja) キーの記憶割り当て方法
JP2643811B2 (ja) データベース再編成方式
Kaporis et al. ISB-tree: A new indexing scheme with efficient expected behaviour
JPH086825A (ja) ファイル生成方法
Baker et al. Algorithms for resolving conflicts in dynamic storage allocation
JP4412291B2 (ja) 記憶装置
JP2004178614A (ja) 文書管理方法および文書管理装置
JP4251727B2 (ja) ファイル管理方法
Sherk Self-adjusting k-ary search trees
JPH08328946A (ja) 2次記憶領域の管理方法
JP2679761B2 (ja) データ管理システム
US20110208782A1 (en) Method and computer program product for creating ordered data structure
Chazelle Car-pooling as a data structuring device: The soft heap
JPH0833899B2 (ja) 索引更新方式