JPH0581101A - キーの記憶割り当て方法 - Google Patents

キーの記憶割り当て方法

Info

Publication number
JPH0581101A
JPH0581101A JP3267232A JP26723291A JPH0581101A JP H0581101 A JPH0581101 A JP H0581101A JP 3267232 A JP3267232 A JP 3267232A JP 26723291 A JP26723291 A JP 26723291A JP H0581101 A JPH0581101 A JP H0581101A
Authority
JP
Japan
Prior art keywords
key
node
length
stored
keys
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
JP3267232A
Other languages
English (en)
Other versions
JP2874810B2 (ja
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 JP3267232A priority Critical patent/JP2874810B2/ja
Publication of JPH0581101A publication Critical patent/JPH0581101A/ja
Application granted granted Critical
Publication of JP2874810B2 publication Critical patent/JP2874810B2/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)【要約】 【目的】 ノード長より長いキーに対する記憶割り当て
を可能にする。 【構成】 B+‐treeのノード中の固定長領域に格納で
きないキーに対しては、格納可能なキー部分をノードの
キー先頭部18に記憶し、オーバーフローした部分を、
入出力ブロックの可変長領域であるキー記憶領域13に
格納する。キースロット領域11には、格納されたキー
の長さとその格納位置が記憶される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、二次記憶装置上に木構
造インデックスを構築する際のキーの記憶割り当て方法
において、ノードに格納できない長いキーに対する記憶
割り当て方法に関する。
【0002】
【従来の技術】VSAM(Virtual Storage Access
Method;仮想記憶アクセス方式)は、データ管理プロ
グラムの内の一つのアクセス技法であり、外部記憶装置
である磁気ディスク装置と仮想記憶装置内のプログラム
とのデータのやり取りを行うもので、外部記憶装置の物
理的属性から独立するように、その記憶形式が設計され
ている。すなわち、図5に示すように、VSAMでは、
複数個のレコードからなるコントロールインタバル(C
I)を単位として、磁気ディスク装置とメモリ間で入出
力データの転送が行われる。更に、VSAMでは、連続
した領域にある複数個のCIの集合であるコントロール
エリア(CA)を単位にして管理し、CAは磁気ディス
ク装置上の連続した領域(エクステント)に割り付けら
れる。
【0003】VSAMデータセットの編成法の一つにキ
ー順データセット(Key SeqencedData Set;KSD
S)があり、このデータセットは、キー(例えば、社員
番号、年齢等)の昇順にレコードが順序付けられてい
て、レコードの取りだしを高速に行うためのインデック
スを持っている。
【0004】インデックスは、木構造を用いて作成され
る。木構造とは、図6に示すように、根を上に葉を下に
して構成され、A,B,C,...J,Kをノード
(節)といい、根以外のノードは上位のノードに接続さ
れ、末端のノード(C,E,F,G,I,J,K)を葉
という。
【0005】図7は、VSAMにおける木構造インデッ
クスを示し、インデックスレコードの集まりであるシー
ケンスセットと、シーケンスセットよりも一つ上のレベ
ルのインデックスレコードの集まりであるインデックス
セットからなる階層構造となっている。図中における各
箱は前述したCIを示している。
【0006】図8は、KSDSのデータセット構成図で
ある。シーケンスセットにおけるインデックスレコード
は、一つのCA対応に作成され、CAを構成する各CI
内のレコードの最高キーと、それに対応する各CIへの
ポインタ(垂直ポインタ)が格納されている。この最高
キーと垂直ポインタのペアをインデックスエントリとい
う。また、インデックスセット内のインデックスレコー
ドは、一つ下位にある複数のインデックスレコード、す
なわちシーケンスセットを管理し、それらのインデック
スレコード内の最高キーと、それに対応する各インデッ
クスレコードへのポインタ(垂直ポインタ)を持ってい
る。さらに、シーケンスセット、インデックスセット
は、同レベルの次のインデックスレコードへのポインタ
(水平ポインタ)を持っている。
【0007】キーによってレコードを検索する場合に
は、インデックスセットから垂直ポインタをたどってシ
ーケンスセットのCIを探す。このCIは一つのCA内
のレコードを指しているので、そのポインタをたどるこ
とによってレコードを検索する。また、キー順処理の場
合は、シーケンスセットを使用し、CA内の最高キーを
処理した後、次のCAに移るとき、シーケンスセットの
水平ポインタをたどって次のシーケンスセットを読み込
み、キー順にレコードをアクセスする。
【0008】上記したファイル編成法は、レコードの挿
入、削除処理が頻繁に行われても、インデックスを動的
に再配置してバランスを保つようになっていて(つま
り、インデックスセットからシーケンスセットを経てレ
コードに至るどのルートにおいても、そのアクセス時間
にバラツキがない)、このような木構造インデックスを
B+‐treeという。
【0009】
【発明が解決しようとする課題】上記した木構造インデ
ックス(B+‐tree)を磁気ディスク装置等の二次記憶
装置上に構築する場合、通常、ノード(前述したVSA
Mにおけるコントロールインタバル,CI)の大きさ
と、キーを格納する領域の大きさを固定長としている。
このため、データ中に一つでもデータ長が長いキーがあ
る場合、キー格納領域の大きさをそれに合わせて確保し
なければならず、従って短いキーが格納されている領域
については、その記憶領域が無駄になってしまうという
問題があった。
【0010】更に、1ノード中に格納されるキーの数
は、前述したように木の分岐数となるので、ノードの大
きさに対してキーの格納領域をあまり大きく確保するこ
とができず、このためノード長を越えるような長さのキ
ーを処理することができないという問題があった。
【0011】本発明の目的は、ノード長より長いキーに
対する記憶割り当てが可能で、長さの異なるキーを格納
する場合の記憶効率を向上させたキーの記憶割り当て方
法を提供することにある。
【0012】
【課題を解決するための手段】前記目的を達成するため
に、本発明では、二次記憶装置上に木構造インデックス
を作成するときのキーの記憶割り当て方法において、木
構造インデックスのノードに収容できないキーの一部分
を、ノード外の所定領域に格納することを特徴としてい
る。
【0013】
【作用】B+‐treeのノード中の固定長領域に格納でき
ないキーに対しては、格納可能なキー部分をノードのキ
ー先頭部に記憶し、オーバーフローした部分を、入出力
ブロックの可変長領域であるキー記憶領域に格納し、格
納されたキーの長さとその格納位置をキースロット領域
に記憶する。これによって、ノードに格納できないよう
な長いキーの場合でも処理することができ、またキー格
納領域を可変長領域に割り付けているので、長さが異な
るキーを効率良く格納することができる。
【0014】
【実施例】以下、本発明の一実施例を図面を用いて具体
的に説明する。図2は、本発明に係るB+‐tree構造デ
ータ処理装置のブロック構成図を示し、キーボード、マ
ウス等からなる入力装置21、中央処理装置22Aと主
記憶装置22Bからなるデータ処理装置22、後述する
入出力ブロックが記憶されている二次記憶装置23、処
理された情報を表示するための表示装置24、処理され
た情報を記憶印刷するためのプリンタ25から構成され
ている。
【0015】図1は、本発明に係る二次記憶装置23上
に設けられた入出力ブロックの構成を示す図である。B
+‐treeのノード(VSAMのコントロールインタバ
ル,CI)14は、複数のキー1,キー2と垂直ポイン
タ15からなり、各キーは、キー長16と、ポインタ1
7とキー先頭部18からなっている。キー長16には、
キーの長さが格納され、キー先頭部18は、ノードに格
納されたキーの一部分を表し、ノードに格納できないオ
ーバーフローしたキー部分は、ポインタ17で指示され
た入出力ブロックに格納される。
【0016】入出力ブロックは、前(低位のアドレス)
からブロック管理領域10、キースロット領域11、空
き領域12、キー記憶領域13の順に配列構成されてい
る。ブロック管理領域10には、入出力ブロックの空き
領域12の長さを表す空き長さデータ記憶領域10A
と、空き領域12の先頭位置を表す空き先頭アドレス記
憶領域10Bと、空き最終位置を表す空き最終スロット
領域10Cからなっている。キースロット領域11に
は、ノードに全てを格納できない各キーについて、入出
力ブロック中に格納されるオーバーフローした部分のキ
ーの長さ(第1キー長、第2キー長等)とその格納位置
(第1キー位置、第2キー位置等)が記憶されている。
この第1キー長と第1キー位置を合わせた長さをスロッ
ト長という。そして、キー記憶領域13には、入出力ブ
ロックの最後(高位のアドレス)から前の方に順に、第
1キー13A、第2キー13B,第3キー13Cが記憶
されている。このように、本実施例では、一つの入出力
ブロック中には複数個のキーが格納される。
【0017】このように構成された本発明の入出力ブロ
ックは、以下のようにして管理される。すなわち、 (1)キーは入出力ブロックの最後から順に、可変長領
域に割り当てられて格納される。 (2)スロットは、オーバーフローした部分のキー長と
キー位置(つまり入出力ブロックの先頭からのオフセッ
ト)のペアからなり、各キーが管理される。 (3)スロットは入出力ブロックの先頭から確保され
る。 (4)レコードが削除されてそのレコードのキーを削除
する場合は、スロットは空きスロットとなり(空きスロ
ットマークを付ける)、キー記憶領域13は後につめら
れる。 (5)ノードからキーを指すために張るポインタ17
は、キーを直接指さずに、そのキーを管理しているスロ
ットを指しているので、削除処理によってキーを削除し
てもスロットを空きスロットにするだけで、キーを指す
ポインタを張り変える必要がない。 (6)B+‐treeは、一つの木の中に同じキーが複数回
現われるが、これらの同一のキーは1ヶ所に格納共用さ
れ、重複することはない。
【0018】図3は、本実施例のキー格納領域確保の処
理を表すフローチャートである。すなわち、この処理
は、B+‐treeに新しくレコードを挿入する際に、キー
の長さがノード内の固定長領域より長い場合に、キー格
納用のブロックに領域を確保して、ノードに格納できな
いオーバーフローしたキー部分を該領域中に入れる処理
である。
【0019】ブロック管理領域10のデータ記憶領域1
0Aに示される空き長さが、“オーバーフロー部分のキ
ー長+スロット長”以上あるか否かをステップ301で
判断し、“オーバーフロー部分のキー長+スロット長”
以上ある場合は、ステップ302に、そうでない場合
は、ステップ305に進む。“オーバーフロー部分のキ
ー長+スロット長”以上ある場合は、ステップ302
で、空きスロットマークの付いたスロットが調べられ、
空きスロットマークの付いたスロットがないときには、
ブロック管理領域10の最終スロット領域10Cを変更
してスロットを確保し、次いでステップ303で、ブロ
ック管理領域10の空き先頭アドレス記憶領域10Bを
変更して、キー格納領域を確保し、ステップ304で入
出力ブロックの空き領域12を変更する。
【0020】ステップ301で、ブロック管理領域10
のデータ記憶領域10Aに示される空き長さが、“オー
バーフロー部分のキー長+スロット長”に満たない場合
は、ステップ305で、他の入出力ブロックを生成し
て、前記したステップ301からステップ304と同様
にしてキー格納領域を確保する。
【0021】図4は、本実施例のキー格納領域解放処理
のフローチャートである。レコードが削除されてそのレ
コードのキーを削除するときは、ステップ401で削除
されるキー(例えば、図1の第2キーとする)より前に
あるキー(図1の第3キー)を全て後に移動することに
よって、当該キーを削除し、ステップ402に進む。ス
テップ402では、移動したキーを管理するスロットの
キー位置を変更し、次いでステップ403では、空き領
域12の長さを表す空き長さデータ記憶領域10Aの長
さを、削除したオーバーフロー部分のキー長分だけ増加
し、ステップ404では、削除されたキーのスロットに
空きスロットマークを付けて処理を終了する。
【0022】
【発明の効果】以上、説明したように、本発明によれ
ば、木構造インデックスの長いキー部分をノード外の入
出力ブロックに動的に格納しているので、ノードに格納
できないような長いキーの場合でも処理することがで
き、またキー格納領域を可変長領域に割り付けているの
で、長さが異なるキーを効率良く格納することができ
る。更に、木構造インデックス内に複数回現われるキー
を1ヶ所に格納し共用しているので、記憶効率と処理効
率を向上させることができ、またキーの一部分がノード
内にあるので、ノード内のキー部分のみを参照すること
によって検索することも可能である。
【図面の簡単な説明】
【図1】本発明に係る二次記憶装置上に設けられた入出
力ブロックの構成を示す図である。
【図2】本発明に係るB+‐tree構造データ処理装置の
ブロック構成図である。
【図3】本実施例のキー格納領域確保処理のフローチャ
ートである。
【図4】本実施例のキー格納領域解放処理のフローチャ
ートである。
【図5】VSAMにおけるファイル構成図である。
【図6】木構造の例を示す図である。
【図7】VSAMにおける木構造インデックスを示す図
である。
【図8】KSDSのデータセット構成図である。
【符号の説明】
10 ブロック管理領域 11 キースロット領域 12 空き領域 13 キー記憶領域 14 B+‐treeのノード 15 垂直ポインタ 16 キー長 17 ポインタ 18 キー先頭部

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 二次記憶装置上に木構造インデックスを
    作成するときのキーの記憶割り当て方法において、木構
    造インデックスのノードに収容できないキーの一部分
    を、ノード外の所定領域に格納することを特徴とするキ
    ーの記憶割り当て方法。
JP3267232A 1991-09-18 1991-09-18 キーの記憶割り当て方法 Expired - Fee Related JP2874810B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3267232A JP2874810B2 (ja) 1991-09-18 1991-09-18 キーの記憶割り当て方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3267232A JP2874810B2 (ja) 1991-09-18 1991-09-18 キーの記憶割り当て方法

Publications (2)

Publication Number Publication Date
JPH0581101A true JPH0581101A (ja) 1993-04-02
JP2874810B2 JP2874810B2 (ja) 1999-03-24

Family

ID=17441977

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3267232A Expired - Fee Related JP2874810B2 (ja) 1991-09-18 1991-09-18 キーの記憶割り当て方法

Country Status (1)

Country Link
JP (1) JP2874810B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000037515A (ko) * 1998-08-19 2000-07-05 윤종용 히스토리 관리용 비플러스 트리 구성 방법
JP2019520627A (ja) * 2016-05-13 2019-07-18 ティブコ ソフトウェア インク データベース中にグラフ情報を記憶するためのb木使用

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000037515A (ko) * 1998-08-19 2000-07-05 윤종용 히스토리 관리용 비플러스 트리 구성 방법
JP2019520627A (ja) * 2016-05-13 2019-07-18 ティブコ ソフトウェア インク データベース中にグラフ情報を記憶するためのb木使用
US11567999B2 (en) 2016-05-13 2023-01-31 Tibco Software Inc. Using a B-tree to store graph information in a database

Also Published As

Publication number Publication date
JP2874810B2 (ja) 1999-03-24

Similar Documents

Publication Publication Date Title
JP3844370B2 (ja) 多次元データを格納しかつアクセスするコンピュータ方法及び格納構造
US4849878A (en) Self-extending administrative memory file
EP0124097B1 (en) Method for storing and retrieving data in a data base
US8099421B2 (en) File system, and method for storing and searching for file by the same
US5687361A (en) System for managing and accessing a dynamically expanding computer database
CN109446362A (zh) 基于外存的图数据库结构、图数据存储方法、装置
JPH11154155A (ja) ファイル管理方法
JPH08129551A (ja) ハッシュ方式
CN117573676A (zh) 基于存储系统的地址处理方法、装置、存储系统及介质
JPH0581101A (ja) キーの記憶割り当て方法
KR100951099B1 (ko) 데이터 저장 관리 방법 및 그 방법을 수행하기 위한프로그램이 기록된 기록매체
JPH0277949A (ja) ファイル作成方法
JP2675958B2 (ja) 情報検索用計算機システム及びその記憶装置の動作方法
JP2679761B2 (ja) データ管理システム
CN115374127B (zh) 数据存储方法及装置
CN110990394A (zh) 分布式面向列数据库表的行数统计方法、装置和存储介质
JP3061385B2 (ja) データ管理装置およびデータ管理方法
JPH01145720A (ja) B木のノード管理方式
JPS62287350A (ja) インデツクス一括更新方式
JP2745882B2 (ja) ブロック管理方法
JP2521907B2 (ja) ファイル構築方法
JPS593549A (ja) フアイル管理方式
DE69531692D1 (de) Verfahren zur analysedatenspeicherung in einer fernsprechvermittlungsanlage
JPH07152623A (ja) ファイルシステムおよびそのアクセス方法
JPH0557624B2 (ja)

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees