JPH07191891A - 多次元データを格納しかつアクセスするコンピュータ方法及び格納構造 - Google Patents

多次元データを格納しかつアクセスするコンピュータ方法及び格納構造

Info

Publication number
JPH07191891A
JPH07191891A JP6254923A JP25492394A JPH07191891A JP H07191891 A JPH07191891 A JP H07191891A JP 6254923 A JP6254923 A JP 6254923A JP 25492394 A JP25492394 A JP 25492394A JP H07191891 A JPH07191891 A JP H07191891A
Authority
JP
Japan
Prior art keywords
node
data
unit
storing
entry
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
JP6254923A
Other languages
English (en)
Other versions
JP3844370B2 (ja
Inventor
Allen Reiter
ライター アレン
Ian C Jose
チャールズ ホセ イアン
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JPH07191891A publication Critical patent/JPH07191891A/ja
Application granted granted Critical
Publication of JP3844370B2 publication Critical patent/JP3844370B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 ページ溢れを処理するため、水平及び垂直の
両方向にページ分割する。 【構成】 データを格納する多次元Bトリーは、サブト
リーがノード内に格納されるようにする、埋め込み“親
−子”構造を有し、サブトリーは、次にサブトリーを包
含できるサブノードを包含する。ノードは、主キー・バ
リューによってインデックスされ、サブトリーのサブノ
ードは、二次キー・バリューによってインデックスされ
る。多次元Bトリーのノードは、キー・バリュー表、サ
ブノード表、及びデータ領域を包含する。トリー・マネ
ージャがデータのユニットをページに格納する場合、そ
のページに対してあまりにも大きいときに、ページに現
在格納されているノードをサブノード及びサブトリーに
分割することを試みる。もしデータのユニットがサブノ
ード及びサブトリーに分割できないならば、ページに現
在格納されている一つ以上のノードが新しいページに移
される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般にデータを格納し
かつアクセスするコンピュータ方法及び格納構造に関
し、より特定的には、多次元データを格納しかつアクセ
スするコンピュータ方法及び格納構造に関する。
【0002】
【従来の技術】周知のBトリーのような、通常の格納構
造は、二次記憶装置に記憶された(データベースのデー
タレコードのような)データの特定ユニットを速く捜し
出すために用いられる。Bトリーは、データのユニット
へのポインタをクラスタする手段を提供して、ユニット
を速く捜し出すことができる。ポインタは、典型的に小
さくかつ固定の長さを有する。図1は、データベース・
インデックスを格納している通常のBトリー100のブ
ロック図である。Bトリー100は、根ノード(root n
odes)101、内部ノード102、103、104、及
び葉ノード(leaf nodes)105、106、107、1
08、109、110、111、112、113を有す
る。根ノード101は、トリー100の頂部のノードで
あり、葉ノード105、106、107、108、10
9、110、111、112及び113は、トリーの底
部のノードであり、内部ノード102、103及び10
4は、根ノードと葉ノードの間のノードの全部である。
根ノード101は、一つ以上のキー・バリュー(key va
lues)及び内部ノード102、103及び104への二
つ以上のポインタを包含する。各内部ノード102、1
03及び104は、一つ以上のキー・バリュー及び下方
レベルの内部ノードまたは葉ノード105、106、1
07、108、109、110、111、112及び1
13への二つ以上のポインタを包含する。各葉ノード1
05、106、107、108、109、110、11
1、112及び113は、キー・バリュー及びキー・バ
リューによってインデックスされたデータのユニットへ
のポインタを包含する。例えば、葉ノード107は、キ
ー・バリュー“40”及びキー・バリュー“40”に対
応するデータレコード119へのポインタ118を包含
する。葉ノードの全ては、Bトリーにおいて同じ深度で
ある。
【0003】ノードは、次の下方レベルでそれらがポイ
ントする子ノードと考えられるノードに対する親ノード
と考えられる。葉ノードは、子ノードを有していない。
例えば、内部ノード102は、根ノード101に対する
子ノードであり、かつ葉ノード105、106、107
に対する親ノードである。各キー・バリューは、ノード
が親ノードであるサブトリーのそのノードに保持される
最も高くインデックスされたキー・バリューを示す。一
般に、ある非葉ノード(non-leaf node )xに対して、
もしノードxがn[x]キー・バリューを包含するなら
ば、ノードxは、子ノードへのn[x]+1ポインタを
も包含する。ノードxのキー・バリューは、ノードxに
よって処理されたキー・バリューのレンジ(range )を
n[x]+1サブレンジ(subranges )に分けるための
分割点(ディバイディング・ポイント)として用いられ
る。各サブレンジは、ノードxの一つの子によって処理
される。この命題は、例により説明することができる。
図1において、内部ノード102は、二つのキー・バリ
ュー(“12”及び“32”)及び、葉ノード105へ
の一つのポインタ、葉ノード106への一つのポインタ
及び葉ノード107への一つのポインタの三つのポイン
タを包含する。葉ノード105は、“12”以下の値を
有するキー・バリューを包含し、葉ノード106は、
“12”よりも大きくかつ“32”以下の値を有するキ
ー・バリューを包含し、葉ノード107は、“32”よ
りも大きくかつ“50”以下の値を有するキー・バリュ
ーを包含する。
【0004】Bトリーは、二次記憶装置に格納されるの
で、共通(一般)の最適化(commonoptimization )
は、ページ全体を占有するノードを有することである。
データは、一度に一ページ、二次記憶装置から主記憶装
置へ一般に転送されるので、ノードのキー・バリューの
全てを読取るためにただ一つの二次記憶アクセスが要求
される。ノードがページ全体を占有することを許容され
るときには、ノード及びページがいっぱいになるまで、
即ちページに利用できる空間がなくなるまで、キー・バ
リュー及びポインタがノードへ加えられる。いっぱいの
ノードへキー・バリューを加えるために、ノードは、二
つのノードに分割され、付加のページがBトリーに割り
当てられ、そして二つのノードの一つが新しいページに
格納される。他のノードは、付加のページに、分割され
たノードとしてBトリーの同じレベルで格納される。キ
ー・バリュー及び新しいノードへのポインタは、分割さ
れたノードの親ノードに付加される。親ノードがいっぱ
いになったときには、同じ技法を用いて親ノードも分割
される。分割は、根ノードまでずっと伝搬されて、根が
分割されるといつでもBトリーに新しいレベルを生成す
る。
【0005】Bトリーにおいて特定なキー・バリューを
探索することは、各非葉ノードで双方向分岐決定をする
(即ち、二つの子ノードのどれを検査すべきかを決定す
る)代わりに、多方向分岐決定がなされることを除い
て、2分木(binary tree )を探索することに類似す
る。多方向分岐決定は、ノードの子ノードに依存する。
上述したように、n[x]キー・バリューを包含してい
るノードxに対して、ノードxは、n[x]+1子ノー
ドを有する。従って、各ノードxで、n[x]+1方向
分岐決定がなされる。Bトリーにおいてどのように探索
が実行されるのかを明らかにするために、例を考慮する
ことが有用である。図1のBトリーがデータベースファ
イルへのインデックスであり、かつ各ノードのキー・バ
リューがデータベースファイルのデータレコードにおけ
るキー・バリュー・フィールドに対応するものと想定す
る。“50”以下のキー・バリュー・フィールド・バリ
ュー(key value field value )を有するデータレコー
ドを捜し出すために、根ノード101から第1のポイン
タ114が追従される。“50”以上でかつ“82”以
下のキー・バリュー・フィールド・バリューを有するデ
ータレコードを捜し出すために、根ノード101から第
2のポインタ115が追従される。“82”以上のキー
・バリュー・フィールド・バリューを有するデータレコ
ードを捜し出すために、根ノード101から第3のポイ
ンタ116が追従される。(キー・バリュー“40”に
対応している)データレコード119を捜し出すため
に、ポインタは、根ノード101からずっとデータレコ
ード119まで追従されうる。[根ノード101から内
部ノード102まで第1のポインタ114を追従する。
次に、内部ノード102から葉ノード107まで第3の
ポインタ117を追従する。キー・バリュー“40”が
見つかるまで葉ノード107におけるキー・バリューを
探索する。最後に、葉ノード107からデータレコード
119までポインタ118を追従する。]Bトリーの総
合的論考及びBトリー保守アルゴリズムについて、Corm
en著、Introduction to Algorithms(The MIT Press 19
91)、pp. 381-399 を参照されたい。
【0006】階層データモデルは、データのユニットが
多次元“親−子”関係で関連付けられたものである。フ
ァイルシステムにおいて、例えば、ファイル及びサブデ
ィレクトリは、主ディレクトリから降順する。システム
における各逐次的下方レベル(each successively lowe
r level )は、それの上のものから分岐するサブディレ
クトリである。ファイルシステムは、各ディレクトリま
たはサブディレクトリがファイルと他のディレクトリの
両方を包含できるので、多重レベルを包含する。階層デ
ータモデルにおいて、使用者は、トリーとして論理的に
編成されてデータを見る、そしてデータの“ユニット”
は、それら自体がトリー或いはサブトリーでありうる。
Bトリーは、データのフラット(即ち、埋め込み構造
(imbeddedstructure)でない)な同種の収集に対して
のみ有用なので、伝統的なBトリー構造及び保守アルゴ
リズムは、階層データモデルを格納するのに不適当であ
る。葉ノードがデータの実際のユニットを包含するB*
トリーでさえも、データのユニットがより小さなユニッ
トへ論理的に可分であると考慮されないので不適当であ
る。
【0007】
【発明が解決しようとする課題】上述した従来の技術で
は、一つのページにあまりにも多くのデータのユニット
を格納しようと試みること、或いはユニットがページの
利用可能な空間よりも大きいときに、一つのページに単
一のデータのユニットを格納しようと試みることのいず
れかにより“ページ溢れ”の原因となりうるという問題
点があった。本発明の目的は、上記従来の技術における
問題点に鑑み、ページ溢れを処理する水平及び垂直の両
方向ページ分割の方法及びその方法を備えたコンピュー
タシステムを提供する。
【0008】
【課題を解決するための手段】本発明の上記目的は、デ
ータの一群をインデックスするトリーデータ構造の一部
として格納装置に第1の関連するノード識別子を有する
第1のノードエントリーを格納し、第1のノードエント
リーは、キー・バリューを格納するフィールドと、サブ
ノードに対する識別情報を格納するフィールドと、デー
タのユニットを格納する第1のデータ領域とを備え、デ
ータのユニットを第1のデータ領域に格納する段階を具
備する、格納装置にデータのユニットを格納するコンピ
ュータシステムの方法によって達成される。本発明の方
法では、トリーデータ構造の一部として格納装置に第2
のノードエントリーを格納し、第1のノードエントリー
にサブノードに対する識別情報を格納するためにフィー
ルドに第2のノードエントリーに対する識別子情報を格
納する段階を更に具備してもよい。本発明の方法では、
トリーデータ構造の一部として格納装置に第2のノード
エントリーを格納する段階は、データだけからなりかつ
トリー構造の一部として格納装置にキー・バリュー及び
サブノードに対する識別情報を有していない、第2のノ
ードエントリーを格納する段階を更に具備してもよい。
【0009】本発明の方法では、トリーデータ構造の一
部として格納装置に第2のノードエントリーを格納する
段階は、トリー構造の一部として格納装置に、フィール
ド格納キー・バリュー、サブノードに対するフィールド
格納識別子情報、及びデータのユニットを格納するため
のデータ領域を備えている、第2のノードエントリーを
格納する段階を更に具備してもよい。本発明の方法で
は、格納装置に前記トリー構造のデータのサブトリーを
格納する段階を更に備え、そして第2のノードエントリ
ーを格納する手段は、トリー構造の一部として記憶装置
に第2のノードエントリーとしてポインタノードを格納
する段階を更に具備し、ポインタノードは、データのユ
ニットのサブトリーへのポインタを保持するようにして
もよい。本発明の方法では、トリーデータ構造に、第1
のノードエントリーに対する親ノードエントリーを格納
し、親ノードエントリーは、それに対応付けられた第2
のノード識別子を有しかつキー・バリューを格納するフ
ィールドと、サブトリーに対する識別子情報を格納する
フィールドと、データのユニットを格納するデータ領域
とを備え、データのユニットは、キー・バリューを有
し、親ノードエントリーのキー・バリューを格納するた
めのフィールドにデータのユニットのキー・バリューを
格納し、親ノードエントリーのサブノードに対する識別
子情報を格納するためのフィールドに第1のノード識別
子を格納する段階を更に具備してもよい。
【0010】本発明の上記目的は、データの一群をイン
デックスするトリーデータ構造の一部として格納装置に
第1の関連するノード識別子を有する第1のノードエン
トリーを供給し、第1のノードエントリーは、キー・バ
リューを格納するフィールドと、サブノードに対する識
別子情報を格納するフィールドと、データのユニットを
格納する第1のデータ領域とを備え、格納装置にデータ
のユニットを格納するために要求を受け取り、データの
ユニットが第1のデータ領域に格納されうるかどうかを
決定し、データのユニットが第1のデータ領域に格納さ
れえないことが決定されたときに、格納装置に新しいノ
ードエントリーを生成し、新しいノードエントリーは、
新しいノード識別子を有しかつ新しいキー・バリュー表
と、新しいサブノード表と、新しいデータ領域とを備
え、データのユニットを新しいデータ領域に格納し、格
納装置にポインタノードエントリーを生成し、ポインタ
ノードエントリーは、ポインタノード識別子を有し、新
たなノード識別子をポインタノードエントリーに格納
し、ポインタノード識別子を第1のサブノード表に格納
し、データのユニットが第1のデータ領域に格納されう
ることが決定されたときに、データのユニットを第1の
データ領域に格納する段階を具備する、格納装置にデー
タのユニットを格納するコンピュータシステムの方法に
よっても達成される。
【0011】また、本発明の上記目的は、複数のノード
エントリー群を格納装置に格納し、各ノードエントリー
群は、一つ以上のノードエントリーを備えかつある量の
利用可能な空間を有し、各ノードエントリーは、固有な
ノード識別子を有しかつキー・バリュー表と、サブノー
ド表と、データのユニットを格納するデータ領域とを備
え、データのユニットのキー・バリューに基づいて、複
数のノードエントリー群のいずれに選択されたデータの
ユニットを記憶すべきかを決定し、データのユニットの
大きさと決定されたノードエントリー群の利用可能な空
間の量とに基づいて、選択されたデータのユニットが決
定されたノードエントリー群に格納されうるかどうかを
決定し、決定されたノードエントリー群の利用可能な空
間の量がデータのユニットの大きさよりも小さいとき
に、格納装置に新しいノードエントリー群を生成し、新
しいノードエントリー群は、新しいノード識別子を有す
る新しいノードエントリーを包含しかつ新しいキー・バ
リュー表と、新しいサブノード表と、新しいデータ領域
とを備え、データのユニットを新しいデータ領域に格納
し、新しいノードエントリーの新しいノード識別子を決
定されたノードエントリーのサブノード表に格納する段
階を具備する、格納装置に関連するキー・バリュー及び
大きさを有するデータの選択されたユニットを格納する
ためのコンピュータシステムの方法によっても達成され
る。
【0012】本発明の方法では、ノードエントリーのい
ずれに選択されたデータのユニットを記憶すべきかを決
定する段階は、選択されたデータのユニットのキー・バ
リューを各ノードエントリーに格納されたキー・バリュ
ーと比較する段階を含むようにしてもよい。本発明の方
法では、決定されたノードエントリーは、ある量の利用
可能な空間を有する固定サイズのページ内に包含され、
選択されたデータのユニットは、ある大きさを有し、選
択されたデータのユニットが決定されたノードエントリ
ーに格納されうるかどうかを決定する段階は、選択され
たデータのユニットの大きさをページの利用可能な空間
の量と比較することを含むようにしてもよい。更に、本
発明の上記目的は、格納装置に選択されたデータユニッ
トを格納するコンピュータシステムの方法であり、格納
装置は、複数の固定サイズブロックに論理的に分けら
れ、各ブロックは、ブロックヘッダーと、タグのアレイ
と、複数のノードエントリーとを備え、各ノードエント
リーは、キー・バリュー表と、サブノード表と、データ
表とを備えている方法であって、キー・バリューを選択
されたデータユニットに割り当て、割り当てられたキー
・バリューに基づいて、どのノードエントリーに選択さ
れたデータユニットが格納されるべきかを決定し、選択
されたデータユニットが決定されたノードエントリーを
包含するブロックに格納されうるかどうかを決定し、選
択されたデータユニットが決定されたノードエントリー
を包含するブロックに格納されうるときに、選択された
データユニットが決定されたノードエントリーに格納さ
れうるかどうかを決定し、選択されたデータユニットが
決定されたノードエントリーに格納されうるときに、選
択されたデータユニットを決定されたノードエントリー
に格納し、選択されたデータユニットが決定されたノー
ドエントリーに格納されえないが決定されたノードエン
トリーを包含するブロックに格納されうるときに、新し
いノードエントリーを生成しかつ選択されたデータユニ
ットを新しいノードエントリーに格納し、新しいノード
エントリーのノード識別子を決定されたノードエントリ
ーのサブノード表に格納し、選択されたデータユニット
のキー・バリューを決定されたノードエントリーのキー
・バリュー表に格納し、選択されたデータユニットが決
定されたノードエントリーに格納されえずかつ決定され
たノードエントリーを包含するブロックに格納されえな
いときに、新しいブロックの割り当てを要求し、新しい
ノードエントリーを生成しかつ選択されたデータユニッ
トを新しいノードエントリーに格納し、ポインタノード
を決定れたノードエントリーを包含するブロックに格納
しかつ新しいノードエントリーのノード識別子をポイン
タノードに格納し、ポインタノードのノード識別子を決
定されたノードエントリーのサブノード表に格納し、選
択されたデータユニットのキー・バリューを決定された
ノードエントリーのキー・バリュー表に格納する段階を
具備するコンピュータシステムの方法によっても達成さ
れる。
【0013】また、本発明の上記目的は、データのユニ
ットを格納装置に格納するコンピュータシステムであっ
て、一群のデータをインデックスするトリーデータ構造
の一部として格納装置にノードエントリーを格納するノ
ード格納機構と、ノードエントリーは、それに対応付け
られて第1のノード識別子を有しかつキー・バリューを
格納する第1のキー・バリュー表と、サブノードのノー
ド識別子を格納する第1のサブノード表と、データのユ
ニットを格納する第1のデータ領域とを備え、データの
ユニットを第1のデータ領域に格納するデータ格納機構
とを備えているコンピュータシステムによっても達成さ
れる。本発明のコンピュータシステムでは、ノードエン
トリーは、トリーデータ構造に親ノードエントリーを有
し、親ノードエントリーは、それに対応付けられた第2
のノード識別子を有しかつキー・バリューを格納する第
2のキー・バリュー表と、サブノードのノード識別子を
格納する第2のサブノード表と、データのユニットを格
納する第2のデータ領域とを備え、データのユニット
は、キー・バリューを有し、データのユニットのキー・
バリューを第2のキー・バリュー表に格納するキー格納
機構と、第1のノード識別子を第2のサブノード表に格
納するサブノード格納機構とを更に備えてもよい。
【0014】本発明のコンピュータシステムでは、デー
タのユニットが第1のデータ領域に格納されうるかどう
かを決定する機構と、データのユニットが第1のデータ
領域に格納されうると決定されたときに、新しいノード
エントリーを格納装置に生成するノード生成機構と、新
しいノードエントリーは、新しいノード識別子を有しか
つ新しいキー・バリュー表と、新しいサブノード表と、
新しいデータ領域と備え、データのユニットを新しいデ
ータ領域に格納する第2のデータ格納機構と、ポインタ
ノードエントリーを格納装置に生成するポインタノード
生成機構と、ポインタノードエントリーは、ポインタノ
ード識別子を有し、新しいノード識別子をポインタノー
ドエントリーに格納する第2のノード格納機構と、ポイ
ンタノード識別子を第1のサブノード表に格納すうポイ
ンタノード格納機構と、データのユニットが第1のデー
タ領域に格納されうると決定されたときに、データのユ
ニットを第1のデータ領域に格納する第3のデータ格納
機構とを更に備えてもよい。本発明の上記目的は、選択
されたデータのユニットを格納装置に格納するコンピュ
ータシステムであり、選択されたデータのユニットは、
関連するキー・バリューとある大きさを有し、格納装置
は、複数のノードエントリー群(ページ)を格納し、各
ノードエントリー群(ページ)は、一つ以上のノードエ
ントリーを備えかつある量の利用可能な空間を有し、各
ノードエントリーは、固有のノード識別子を有しかつキ
ー・バリュー表と、サブノード表と、データのユニット
を格納するデータ領域とを備えるコンピュータシステム
であって、データのユニットのキー・バリューに基づい
て、複数のノードエントリー群(ページ)のどれに選択
されたデータのユニットが格納されるべきかを決定する
手段と、データのユニットの大きさ及び決定されたノー
ドエントリー群(ページ)の利用可能な空間の量に基づ
いて、選択されたデータのユニットが決定されたノード
エントリー群(ページ)に格納されうるかどうかを決定
する手段と、決定されたノードエントリー群の利用可能
な空間の量がデータのユニットの大きさよりも小さいと
きに、新しいノードエントリー群(ページ)を格納装置
に生成する手段と、新しいノードエントリー群(ペー
ジ)は、新しいノード識別子を有する新しいノードエン
トリーを包含しかつ新しいキー・バリュー表と、新しい
サブノード表と、新しいデータ領域とを備え、データの
ユニットを新しいデータ領域に格納する手段と、新しい
ノードエントリーの新しいノード識別子を決定されたノ
ードエントリーのサブノード表に格納する手段とを備え
ているコンピュータシステムによっても達成される。
【0015】本発明のコンピュータシステムでは、ノー
ドエントリーのどれに選択されたデータのユニットが格
納されるべきかを決定する手段は、選択されたデータの
ユニットのキー・バリューを各ノードエントリーに格納
されたキー・バリューと比較する手段を含むように構成
してもよい。本発明のコンピュータシステムでは、決定
されたノードエントリーは、利用可能な空間のある量を
有している固定サイズのページ内に包含され、選択され
たデータのユニットは、ある大きさを有し、選択された
データのユニットが決定されたノードエントリーに格納
されうるかどうかを決定する手段は、選択されたデータ
のユニットの大きさをページの利用可能な空間の量と比
較することを含むように構成してもよい。更に、本発明
の上記目的は、選択されたデータユニットを格納装置に
格納するコンピュータシステムであり、格納装置は、複
数の固定サイズブロックに論理的に分けられ、各ブロッ
クは、ブロックヘッダーと、タグのアレイと、複数のノ
ードエントリーとを備え、各ノードエントリーは、キー
・バリュー表と、サブノード表と、データ表とを備えて
いるコンピュータシステムであって、キー・バリューを
選択されたデータユニットに割り当てる手段と、割り当
てられたキー・バリューに基づいて、どのノードエント
リーに選択されたデータユニットが格納されるべきかを
決定する手段と、選択されたデータユニットが決定され
たノードエントリーを包含するブロックに格納されうる
かどうかを決定する手段と、選択されたデータユニット
が決定されたノードエントリーを包含するブロックに格
納されうるときに、選択されたデータユニットが決定さ
れたノードエントリーに格納されうるかどうかを決定す
る手段と、選択されたデータユニットが決定されたノー
ドエントリーに格納されうるときに、選択されたデータ
ユニットを決定されたノードエントリーに格納する手段
と、選択されたデータユニットが決定されたノードエン
トリーに格納されえないが決定されたノードエントリー
を包含するブロックに格納されうるときに、新しいノー
ドエントリーを生成しかつ選択されたデータユニットを
新しいノードエントリーに格納する手段と、新しいノー
ドエントリーのノード識別子を決定されたノードエント
リーのサブノード表に格納する手段と、選択されたデー
タユニットのキー・バリューを決定されたノードエント
リーのキー・バリュー表に格納する手段と、選択された
データユニットが決定されたノードエントリーに格納さ
れえずかつ決定されたノードエントリーを包含するブロ
ックに格納されえないときに、新しいブロックの割り当
てを要求する手段と、新しいノードエントリーを生成し
かつ選択されたデータユニットを新しいノードエントリ
ーに格納する手段と、ポインタノードを決定れたノード
エントリーを包含するブロックに格納しかつ新しいノー
ドエントリーのノード識別子をポインタノードに格納す
る手段と、ポインタノードのノード識別子を決定された
ノードエントリーのサブノード表に格納する手段と、選
択されたデータユニットのキー・バリューを決定された
ノードエントリーのキー・バリュー表に格納する手段と
を備えているコンピュータシステムによっても達成され
る。
【0016】
【作用】本発明は、二次記憶装置に多次元データを格納
しかつアクセスするコンピュータ方法及び格納構造を提
供する。多次元データは、それがデータのサブユニット
に論理的に分けられることを許容する隠れ構造(埋め込
み構造)を有する。本発明により提供されるトリー・マ
ネージャは、ポインタ、可変長データレコード、他のB
トリー、及びディレクトリのようなデータを多次元Bト
リー(MDBトリー)に格納する。MDBトリーの各ノ
ードは、ゼロまたはそれ以上のキー・バリュー、サブノ
ード・テーブル、及びデータを包含することが可能な、
バイドの物理的に隣接のストリングである。二次記憶装
置は、固定サイズのブロックまたはページにしばしば論
理的に分けられるので、MDBトリーのデータのユニッ
トは、ページサイズ・サブトリーに物理的に分けられ
る。トリー・マネージャは、一つのページにあまりにも
多くのデータのユニットを格納しようと試みること、或
いはユニットがページの利用可能な空間よりも大きいと
きに、一つのページに単一のデータのユニットを格納し
ようと試みることのいずれかにより“ページ溢れ”の原
因となりうる。本発明の方法は、ページ溢れを処理する
水平及び垂直の両方向ページ分割を提供する。
【0017】トリー・マネージャが一つのページにあま
りにも多くのデータのユニットを格納しようと試みると
きには、トリー・マネージャは、通常のBトリーノード
分割スキームである、ページを水平方向に分割しなけれ
ばならない。単一ページの水平分割は、別のレベルがM
DBトリーへ付加されるようにすることができ、それに
よってトリーの探索をスローダウンする。トリー・マネ
ージャが一つのページにデータのユニットを格納しよう
と試みかつデータのユニットがページの利用可能な空間
よりも大きいときには、トリー・マネージャは、データ
のユニットを選択し、かつデータのユニットを垂直方向
に分割する。垂直方向に分割されるデータのユニット
は、その挿入が溢れの原因となったデータのユニットで
あることを必要としない。トリー・マネージャは、分割
するのに最適であると考えられるデータのユニットを選
択する。垂直方向の分割は、データのユニットがサブト
リーに分けられうるということを想定する。データのユ
ニットを垂直方向に分割するために、トリー・マネージ
ャは、新しいページの割り当てを最初に要求し、次に、
第1ノードとしてトップ・オブ・ページ(TOP)ノー
ドを生成しかつ新しいページに格納する。新しいページ
は、継子ページと称される。次に、トリー・マネージャ
は、データのユニットを第1及び第2のサブトリーに分
け、かつ第2のサブトリーを新しいページに移す。第2
のサブトリーは、TOPノードに対する子ノードにな
る。トリー・マネージャは、第2のサブトリーが格納さ
れていた、継子ページへのポインタだけを包含する、ポ
インタノードを格納する。トリー・マネージャは、次
に、ポインタノードへのポインタを分割ノードのサブノ
ード・テーブルに配置する。
【0018】継子ページの生成は、データの分割ユニッ
トに別のレベルを付加するが、しかしMDBトリーのデ
ータの別のユニットに別のレベルを付加しない。従っ
て、データのユニットを垂直方向に分割することは、M
DBトリーの探索をスローダウンしない。従って、MD
Bトリーを走査するときには、トリー・マネージャは、
もしサブトリーの最高のノードが必要なキー・バリュー
を有しないならば、複数のページにまたがっているサブ
トリーを効果的に無視する。ポインタノード及びTOP
ノードは、トリー・マネージャを除き、全てに対して見
えない。
【0019】
【実施例】本発明の好ましい実施例において、多次元B
トリー(MDBトリー)として知られているトリーデー
タ構造は、データベースような、データの量に対するイ
ンデックスとして役立つ。MDBトリーは、それらがデ
ータを保持しうるように全てが構築される、ノードで形
成される。それゆえに、MDBトリーの葉ノード及び非
葉ノードの両方とも、データを保持しうる。MDBトリ
ーに保持されうるデータの形式は、階層データを含む。
階層データに伴う一つの問題点(difficulty)は、階層
データが一般的にノードに格納するにはあまりにも大き
すぎることである;その結果、MDBトリーにおいて、
階層データは、別個のサブトリー(separate subtree)
として格納される。MDBトリーの対応するノードは、
サブトリーをアクセスするためのポインタを保持する。
MDBトリーのノードは、ノードに保持されたキー・バ
リューの探索を実行することによって捜し出される。サ
ブトリーのノードは、しかしながら、サブトリーに対す
るキー・バリューを有するノードを捜し出すための探索
をまず実行し、次に所望のノードを捜し出すためのサブ
トリーのノードの第2の探索を実行することによって見
出される。そのようにして、サブトリーは、トリーを多
次元にするトリーに、追加の次元を供給することがわか
る。
【0020】図2は、本発明の好ましい実施例を実施す
るためのコンピュータシステム20の好ましい実施例の
ブロック図である。コンピュータシステム20は、中央
処理装置(CPU)21、ランダムアクセスメモリ装置
(RAM)22、二次記憶装置23、出力装置24、及
び入力装置25を備えている。二次記憶装置23は、あ
る種のディスクシステムであることが好ましい。上述し
たように、MDBトリーは、ノードで構成されている。
図3は、ノード29のフォーマットを示す図である。ノ
ード29は、キー・バリュー表26、サブノード表2
7、及びデータ領域28を含む。キー・バリュー表は、
キー・バリュー、即ちキー・バリューK1及びK2を保
持する。これらのキー・バリューは、MDBトリーを探
索するのに用いられる探索キーとして作用する。サブノ
ード表27は、サブノードへのポインタ、即ちポインタ
1、ポインタ2、及びポインタ3を格納する。サブノー
ドは、他のノード或いはポインタノード(詳細は後述す
る)でありうる。データ領域28は、ノードにデータを
直接的に取り入れる(組み込む:incorporate )ことが
望ましいデータを保持する。キー・バリュー表26のキ
ー・バリュー及びサブノード表27のポインタによって
サーブ(提供)された役割(役務)は、MDBトリーの
小さな部分を調査することによってたぶん最もよく表さ
れる。図4は、親ノード30、第1の子ノード34、及
び第2の子ノード35を含むMDBトリーの部分のブロ
ック図である。親ノード30は、そのキー・バリュー表
にキー・バリュー“K1”を保持する。親ノード30
は、(“K1”以下のキー・バリューに対応付けられた
データを保持する)第1の子ノード34にポイントする
そのサブノード表のポインタ31及び、(“K1”より
大きいキー・バリューに対応付けられたデータを保持す
る)第2の子ノード35にポイントするポインタ33を
も保持する。
【0021】図4の説明において、親ノード30のサブ
ノード表のポインタは、子ノードにだけポイントする。
サブノード表のポインタがポインタノードにもポイント
しうるということは、評価されるべきである。ポインタ
ノードは、階層データを保持するサブノードへのアクセ
スを供給する。図5は、図4の第1の子ノード34がそ
のサブノード表のポインタノード38へのポインタを含
むときを説明する図である。ポインタノード38は、次
に、サブトリー37にポイントする。サブトリー37
は、トップ・オブ・ページ(TOP)ノード39、第1
のサブノード40、及び第2のサブノード41を含む。
TOPノードは、ノード識別子(即ち、ポインタ)だけ
を保持する特種なノードである。TOPノードは、キー
・バリュー或いは他のデータを含まない。ポインタノー
ド38に対するノード識別子は、親ノード30のサブノ
ード表にポインタとして格納される。TOPノード39
に対するノード識別子は、ポインタノード38にポイン
タとして格納される。加えて、第1のサブノード40及
び第2のサブノード41に対するノード識別子は、TO
Pノード39に格納される。ポインタノード38によっ
て供給されるインダイレクション(indirection )の追
加のレベルは、あたかもそれが第1の子ノード34の
“内部(within)”に格納されるようにサブトリー37
を論理的に現すことを許容する。ポインタノード38及
びTOPノード39の詳細は、後述する。
【0022】図4及び5は、それぞれ子ノード及びポイ
ンタノードにもっぱらポイントしているポインタを示し
ているけれども、ノードのサブノード表は、サブノード
の多重形式に対するポインタを同時に保持しうるという
ことは、評価されるべきである。それゆえに、ノードの
サブノード表は、子ノードへのポインタ及びポインタノ
ードへのポインタを同時に含みうる。図6は、MDBト
リー46を説明するブロック図である。根ノード48
は、三つの子サブノード50、52、及び54を有す
る。次に、サブノード50は、三つのサブノード56、
58、及び60を有する。サブノード56及び58は、
それらが子ノードを有しないので葉ノードとして知られ
る。葉ノードは、キー・バリュー或いはサブノードへの
ポインタを包含しない。サブノード60は、サブノード
76、78、80、及び82を含むサブトリー74への
ポインタを包含するポインタノードである。根ノード4
8のサブノード52は、複数のサブノード62、64、
66をも含む。サブノード62、64及び66は、全て
葉ノードである。根ノード48のサブノード54は、同
様に複数のサブノード68、70及び72を有する。サ
ブノード68及び72は、葉ノードであり、サブノード
70は、サブトリー84にポイントするポインタノード
である。サブトリー84は、TOPノード86及び葉ノ
ード88を含む。
【0023】どのように図6に示されるようなMDBト
リーがデータをインデックスするのに用いられうるかを
説明するために一つの例が有用であろう。以下に示す表
Aは、MDBトリーに格納されるべくよく適合した実例
のデータファイルを包含する。データファイルのデータ
のユニットは、各ユニットに包含される詳細の種々なレ
ベルにより、種々の長さを有する。階層データを表わす
データのユニットは、ビジネス電話帳(business telep
hone directory)(即ち、電子ビジネス電話帳(electr
onic business telephone directory )))に一般的に
見出される。電話帳は、通常、三つ以上の主題ヘッディ
ング(subject headings)を包含するけれども、説明の
簡単化のために、データファイルは、三つの主題ヘッデ
ィング(I、II、III )だけで示されている。データの
ユニットは、主題ヘッディング(“AUTOMOTIVE PARTS
(自動車部品)”、“MOVING COMPANIES(引っ越し会
社)”、及び“WASHERS & DRYERS(洗濯機及び乾燥
機)”)によってアルファベット順に示されている。こ
の形式の情報の典型であるように、データのユニットの
あるものは、サブユニットに論理的に分けられうる。例
えば、引っ越し会社(moving company)“U-HAUL-IT CO
MPANY ”の異なる店の位置(store locations )は、1
0のサブユニットに論理的に分かれている。サブユニッ
トは、店の番号順である。
【0024】
【表1】 表A I. AUTOMOTIVE PARTS A. AL'S PARTS STORE 1. ADDRESS 2. TELEPHONE NUMBER 3. PARTS LIST a. PART NUMBER 1 b. PART NUMBER 2 . . . n. PART NUMBER 50 B. THE CAR STORE 1. ADDRESS 2. TELEPHONE NUMBER 3. PICTURE OF STORE FRONT 4. PARTS LIST a. PART NUMBER 1, DESCRIPTION b. PART NUMBER 2, DESCRIPTION . . . n. PART NUMBER 50, DESCRIPTION II. MOVING COMPANIES A. JOE'S MOVERS, INC. 1. ADDRESS 2. TELEPHONE NUMBER B. U-HAUL-IT CO. 1. STORE 1 a. ADDRESS b. TELEPHONE NUMBER c. TRUCK INFORMATION d. TRAILER INFORMATION 2. STORE 2 a. ADDRESS b. TELEPHONE NUMBER . . . 10. STORE 10 a. ADDRESS b. TELEPHONE NUMBER III. WASHERS & DRYERS - see APPLIANCES MDBトリーは、表Aに示されたデータが二次記憶装置
23に効率的に編成されかつ格納されるようにする(図
2)。 通常のBトリーは、キー・バリュー及びデータ
へのポインタだけを格納するので、通常のBトリーは、
表Aに示されたデータを収容できない。
【0025】葉ノードにデータのユニットを格納する、
* トリーでさえも、B* トリーがその葉ノードに小さ
な、データの最小単位だけを格納するので、表Aに示さ
れたデータを収容することができない。MDBトリー
は、データを格納できるので、データのユニットは、サ
ブトリーを包含しえ、かつサブトリーのサブノードは、
別のサブトリーを包含しうる、等。MDBトリーは、サ
ブユニットへのデータの論理的な分割を考慮して、それ
によりデータの大きなユニットがその中に格納されるこ
とを許容する。表Aのデータを保持する例示のMDBト
リーの説明を続ける前に、MDBトリーに対するページ
フォーマットを最初に説明することが必要である。図7
は、本発明の好ましい実施例のMDBトリーのページ8
8に対する格納フォーマットのブロック図である。ペー
ジは、格納空間の隣接のブロックであり、一般的に4K
Bの大きさを有する。MDBトリーは、二次記憶装置2
3に書き込まれかつページユニットで二次記憶装置23
から読み取られる。空間最適化のために、MDBトリー
の各ノードは、長さにおいて一ページであることが好ま
しい。ページ88は、ページ識別子92及びタグ94の
アレイを包含する、ヘッダー(見出し)領域90を包含
する。ヘッダー領域90は、ページ88に残された自由
空間の量を特定するインディケータ(標識)をも包含し
うる。ページ88の残った部分は、トップ・オブ・ザ・
ページ(TOP)ノード・エントリー96、複数のノー
ド・エントリー96、98、100、及び104、そし
て自由空間領域106を包含する。自由空間領域106
は、現在割り当てられていない格納空間である。タグ9
4のアレイは、ページ88に格納された各ノードエント
リーの開始を識別するオフセットを包含する。各ノード
エントリー96、98、100、及び104は、他のノ
ードエントリーと同じ大きさである必要はない。TOP
ノードエントリー96は、TAB[0](即ち、タグ9
4のアレイにおける最初のタグ)によって常に識別され
ることが好ましい。タグ94のアレイがページ88のノ
ードエントリー96、98、100、及び104の位置
の跡をつけるので、ノードエントリーへの外部参照は、
ページ数とタグ数だけの跡をつけなければならない。二
次記憶装置にデータのユニットを格納するときに、本願
発明によって供給されたトリー・マネージャは、一つの
ページにあまりにも多くのデータのユニットを格納しよ
うと試みることによって、或いはユニットがページの利
用可能な空間よりも大きいときにページにデータのユニ
ットを格納しようと試みることによるいずれかで“ペー
ジ溢れ”の原因となりうる。本願発明の方法は、ページ
溢れを処理する、水平及び垂直の、双方向ページ分割を
提供する。水平分割は、通常のBトリーアルゴリズムに
よって用いられる分割の形式である。水平及び垂直ペー
ジ分割は、図12〜8Cを参照して、以下に詳細に説明
する。
【0026】図8は、MDBトリー108に編成された
ときの表Aの上部に示されたデータのブロック図であ
る。第1のページ110は、ノード112、114、1
16、118、120、122、124及び126を包
含する。ページ110は、TOPノード128及びポイ
ンタノード130、132を更に含む。MDBトリー1
08の第2のページ134は、TOPノード136とノ
ード138を包含する。MDBトリー108の第3のペ
ージは、ノード142、144、及び146とTOPノ
ード148を包含する。根ノード112は、そのキー・
バリュー表にキー・バリュー“B”及び“P”を、そし
てそのサブノード表に子ノード114、116、及び1
18に対するノード識別子を包含する。通常のBトリー
におけるように、ノード112に格納されたキー・バリ
ューは、MDBトリー108を探索するときに次の下方
レベルへのどの経路を追従すべきかを決定する基礎を供
給する。それゆえに、探索されているキー・バリューが
“B”以下であるときには、子ノード114にポイント
する、ポインタ113が追従される。探索されているキ
ー・バリューが“B”よりも大きいが“P”以下である
ときには、子ノード116にポイントするポインタ11
5が追従される。最後に、探索されているキー・バリュ
ーが“P”よりも大きいときには、子ノード118にポ
イントするポインタ117が追従される。ノード112
は、そのデータ領域にいかなるデータをも含まない。よ
り実用的な電話帳は、更に多くのキー・バリューを包含
することに注目すべきである。
【0027】ノード114は、“AUTOMOTIVE PARTS”の
主題ヘッディング(主題見出し)の下にエントリーをイ
ンデックスする、二次キー・バリュー“G”を包含す
る。ノード114のサブノード表は、サブノード120
と122に対するノード識別子(即ち、ポインタ119
と121)を包含する。サブノード120は、いかなる
キー・バリューもノード識別子も包含していない。サブ
ノード120は、店名(the name of the store )、店
のアドレス(address of the store)、店の電話番号
(telephone number of the store )、及び部品一覧表
(parts list)を含む、“AL'S PARTS STORE”に対する
データを包含する。サブノード122は、サブノード1
20のように、キー・バリューを包含しないが、しかし
ポインタノード130に対するノード識別子133を包
含する。ポインタノード130は、ノード122以外の
ページに格納されるサブトリー134に対するノード識
別子131を包含する。サブトリー134は、TOPノ
ード136及びサブノード138からなる。TOPノー
ド136は、サブノード122と同じページに格納され
るにはあまりにも大きいデータを包含する、サブノード
138に対するノード識別子137を包含する。サブノ
ード138のデータ領域に格納されたデータは、絵(pi
cture )のビットマップ及び部品一覧表を含む。サブノ
ード138は、そのキー・バリュー表にキー・バリュー
を包含せず、かつそのサブノード表にノード識別子を包
含しない。
【0028】子ノード116は、主題ヘッディング“MO
VING COMPANIES”の下にエントリーをインデックスす
る、二次キー・バリュー“P”を包含する。子ノード1
16のサブノード表は、二つのノード識別子125と1
27を包含する。ノード識別子125は、サブノード1
24にポイントし、かつ“P”以下の二次キー・バリュ
ーを捜しているときに追従される。ノード識別子127
は、サブノード126にポイントし、かつ“P”よりも
大きい二次キー・バリューを捜しているときに追従され
る。サブノード124は、キー・バリュー或いはノード
識別子を含まない葉ノードである。ノード124のデー
タ領域は、しかしながら、“JOE'S MOVERS, INC.”に対
するデータを保持する。サブノード126もキー・バリ
ューを含まない。ノード126は、他方、ポインタノー
ド132にポイントするノード識別子133を含む。ポ
インタノード132は、サブトリー140にポイントす
る。サブトリー140は、TOPノード148、及び三
つのサブノード142、144、及び146からなる。
TOPノード148は、サブノード144及び146に
包含されたデータをインデックスする、サブノード14
2にポイントするノード識別子141を包含する。サブ
ノード144及び146のデータ領域は、“U-HAUL-IT-
COMPANY ”に関するデータを包含する。
【0029】サブノード142は、二次キー・バリュー
“5”を包含する。サブノード142は、更に、それぞ
れサブノード144及び146にポイントする、ノード
識別子143及び145を含む。ノード識別子143
は、“5”以下の格納番号二次キー・バリューに対して
追従される。ノード144は、そのデータ領域の格納
“1”から“5”までに対するデータを保持するサブト
リー140の葉ノードである。サブノード144は、キ
ー・バリュー或いはノード識別子を含まない。サブノー
ド146もサブトリー140の葉ノードであるが、しか
しそのデータ領域の格納“6”から“10”までに対す
るデータを保持する。サブノード144のように、サブ
ノード146は、キー・バリュー或いはノード識別子を
含まない。サブノード144及び146は、サブノード
142の子ノードである。子ノード118は、MDBト
リー108の葉ノードである。子ノード118は、キー
・バリュー或いはノード識別子を含まない。ノード11
8のデータ領域は、主題ヘッディング“WASHERS & DRYE
RS”及び相互参照“SEE APPLIANCES”を識別する。サブ
トリー140がどのように実際に二次記憶装置に格納さ
れるかを理解することは、有用である。しかし、まず初
めに、サブトリー146に包含されるデータのユニット
の構造を調べることは、重要である。図9は、データの
ユニット150のブロック図であり、図10は、それが
サブユニット152、154、及び156に区分された
後のデータのユニット150のブロック図である。
【0030】図11は、図7の格納フォーマットに基づ
き二次記憶装置に格納されたサブトリー140のブロッ
ク図である。サブトリー140は、四つのノードエント
リー148、142、144、及び146からなる。T
OPノード148は、サブノード142へのポインタ1
41を包含する。TOP140は、キー・バリュー或い
はデータを包含しない。サブノード142は、そのキー
・バリュー表に“5”を包含し、そのサブノード表にポ
インタ143及び145を包含する。ポインタ143
は、サブノード144にポイントし、ポインタ145
は、サブノード146にポインタする。サブノード14
4は、キー・バリュー或いはサブノードへのポインタを
包含しないが、データのサブユニット152(図10)
を包含する。同様に、サブノード146は、キー・バリ
ュー或いはサブノードへのポインタを包含しないが、デ
ータのサブユニット154(図10)を包含する。ここ
で図8を参照すると、MDBトリー108は、適当なキ
ー・バリューが見出されたときに依存してキー・バリュ
ーを調べかつポインタを追従する通常のBトリー走査ル
ーチンを用いて走査される。ポインタノード130及び
132そしてTOPノード136及び148は、ルーチ
ンがノード122、126の“内部を見る(捜す)”こ
とがないかぎり、MDBトリー108を保守するルーチ
ンに対して見えない。
【0031】MDBトリー108にデータのユニットを
挿入するために、本発明の好ましい実施例は、挿入ルー
チンを提供する。挿入ルーチンは、図12〜8Cを参照
して以下に詳細に説明する。しかしながら、挿入ルーチ
ンの詳細を述べる前に、挿入ルーチン及び水平・垂直分
割の概要を最初に述べることは、有用である。MDBト
リー108のどこ(即ち、どのページ)にデータのユニ
ットが属するのかを決定した後に、トリー・マネージャ
は、ページにデータのユニットを格納することを試み
る。もしユニットがページの利用可能な空間よりも大き
いならば、好ましい実施例は、ページに現在格納された
データのユニット、挿入されているデータのユニット、
或いはページ自体のいずれかを分割することを試みる。
データのユニットを分割することは、垂直分割と呼ば
れ、ページを分割することは、水平分割と呼ばれる。一
般的に、垂直分割は、分割されるデータのユニットがサ
ブノードに区分されうることを想定する。サブノードの
一つは、ページに格納され、そして他のサブノードは、
新しいページにサブトリーとして格納される。(サブト
リーは、一つのサブノードだけで表されうる。)次に、
新しいページへのポインタは、サブノードのサブノード
表にノードエントリーとしてリストされた、ポインタノ
ードに格納される。ポインタノード及び新しいページの
生成は、MDBトリー全体に別のレベルを付加しない。
それよりも、分割されたデータのユニットだけが追加の
レベルを得る。
【0032】データのユニットが分割されるサブユニッ
トの数の決定は、ページで利用可能な自由空間の数及び
データのユニットの構造に依存する。データのユニット
150(図9)は、あらゆる数のサブユニットに分割さ
れうる。本発明の好ましい実施例がページにあまりにも
多くのデータのユニットを格納することを試みるときに
は、もしデータのユニットが垂直方向に分割されえない
ならば、ページは水平方向に分割されうる。一般的に、
ページを水平方向に分割するために、トリー・マネージ
ャは、ページのノードエントリーのサブセットを新しい
隣接ページに移動し、かつ新しいキー・バリュー及び新
しいページへのポインタを、分割されるページの親ペー
ジに格納する。通常のBトリーにおけるように、古いペ
ージと新しい隣接ページは、ページヘッダー(page hea
ders)の次ページ及び前ページ・リンクフィールド(ne
xt page and previous page link fields )によってリ
ンクされる。次ページ及び前ページ・リンクフィールド
は、トリーの上部レベルページを巡回することを必要と
せずにトリー走査を容易にする。MDBトリーの構造の
上記説明を与えて、どのようにトリーが保守されるかを
調べることは、有用である。本発明の好ましい実施例に
おいて、MDBトリーは、ファイルシステムの一部であ
るトリー・マネージャによって保守される。図12は、
MDBトリーに新しいデータのユニットを格納すること
におけるトリー・マネージャによって実行されるステッ
プスのフロー図である。ステップ160では、トリー・
マネージャは、新しいデータのユニットが格納されるべ
きページを選択する。この選択は、適当なページを見出
すためにMDBトリーの探索を要求する。ステップ16
2では、現行ページ変数を選択されたページに設定す
る。現行ページ変数は、値を保持するのに適用なあらゆ
るデータ構造である。ステップ164では、トリー・マ
ネージャは、MDBトリーに挿入されるべき新しいデー
タのユニットが、現行ページ変数によって指定されたよ
うに現行ページに適合するかどうかを決定する。即ち、
トリー・マネージャは、データのユニットの大きさが現
行ページの利用可能な空間の大きさよりも小さいかどう
かを決定する。もしデータのユニットが現行ページに適
合するならば、ステップ166では、トリー・マネージ
ャが現行ページにデータのユニットを格納し、そして挿
入されたユニットの親ノードを更新する。親ノードの更
新は、挿入されたユニットへのポインタを親ノードのサ
ブノード表に格納することを含む。
【0033】もしデータのユニットが現行ページに適合
しないならば(ステップ164)、ステップ168で
は、トリー・マネージャが現行ページの全てのサブトリ
ーの重みを決定する。サブトリーの“重み”は、サブト
リーの全てのサブノードの大きさである。もし1KBよ
りも大きな重みを有するサブトリーが存在するならば
(ステップ170)、例えば、トリー・マネージャは、
そのサブトリーを垂直方向に分割する。垂直分割は、図
13を参照してより詳細に説明する。もし1KBよりも
大きな重みを有するサブトリーが存在しないならば(ス
テップ170)、トリー・マネージャは、現行ページを
水平方向に分割する。水平分割は、図14を参照してよ
り詳細に説明する。図13は、ノード(図12及び図1
3の“B”を参照)を垂直方向に分割するためにトリー
・マネージャによって実行されるステップのフロー図で
ある。ノードの垂直分割は、ノードのサブトリーを新し
いページに移動させる。ステップ172では、トリー・
マネージャは、1KBよりも大きい重みを有するサブト
リーを選択する(ステップ170参照)。ステップ17
4では、トリー・マネージャは、ポインタノードを生成
し、かつ現行ページにポインタノードを格納する。ステ
ップ176では、トリー・マネージャは、選択されたサ
ブトリーの親ノードのサブノード表にポインタノードの
ノード識別子を格納する。ステップ178では、トリー
・マネージャは、ファイルシステムによって供給された
メモリマネージメントルーチンから新しいページの割り
当てを要求し、新しいページにTOPノードを格納す
る。ステップ180では、トリー・マネージャは、選択
されたサブトリーを新しいページに格納し(TOPノー
ドのサブトリーとして)、かつサブトリーへのポインタ
をTOPノードのサブノード表に格納する。ステップ1
82では、トリー・マネージャは、TOPノードへのポ
インタをポインタノードに格納する。垂直分割の後、ス
テップ184では、トリー・マネージャは、データのユ
ニットが現行ページに適合するかどうかを再び決定する
(図12の“C”を参照)。もしデータのユニットが現
行ページにまだ適合しないならば、トリー・マネージャ
は、現行ページを水平方向に分割する。もしデータのユ
ニットが現行ページに適合するならば、ステップ186
では、トリー・マネージャは、データのユニットを現行
ページに格納し、かつデータのユニットへのポインタを
挿入されたユニットの親ノードのサブノード表に格納す
る。
【0034】図14は、ページを水平方向に分割すべく
トリー・マネージャによって用いられるステップのフロ
ー図である。ステップ188では、トリー・マネージャ
は、ファイルシステムによって供給されたメモリマネー
ジメントルーチンから新しいページの割り当てを要求す
る。トリーの終わり(または始まり)に新しいノードを
挿入するときに、水平分割の特別の場合が発生する。ペ
ージの次ページ(または前ページ)リンク・フィールド
が空白(null)なので、トリーの終わり(または始ま
り)を認識することは、容易である。ステップ190で
は、トリー・マネージャは、現行ページがMDBトリー
の終わりであるか或いは始まりであるかを決定する。も
しそうであれば、半分にページを分割する代わりに、ス
テップ196では、トリー・マネージャは、新しいデー
タのユニットだけを新たに割り当てられた次ページに格
納する。これは、オーバーヘッドをセーブし、かつノー
ドがキー・バリュー・シーケンスで一度に一つ加えられ
るときに、短縮空間利用(compact space utilization
)に導く。もし現行ページがMDBトリーの終わりま
たは始まりでないならば、ステップ192では、トリー
・マネージャは、新しいページが現行ページの下(即
ち、現行ページよりも下方のアドレス)に物理的に位置
付けられているかどうかを決定する。もし新しいページ
が分割されるページの下に物理的に位置付けられている
ならば、ステップ194では、トリー・マネージャは、
中間のキー・バリュー以下のキー・バリューを有する子
ノードの全てを新しいページに移動する。中間キー・バ
リューは、分割されるページに格納された順序付けられ
たキー・バリューの全ての中間である。もし新しいペー
ジが現行ページの上(即ち、より高位のメモリアドレ
ス)に物理的に位置付けられているならば、ステップ1
98では、トリー・マネージャは、中間キー・バリュー
以上のキー・バリューを有する子ノードの全てを新しい
ページに移動する。子ノードを新しいページに移動した
後に、ステップ200では、トリー・マネージャは、中
間キー・バリューを、移動した子ノードに対する親ノー
ドのキー・バリュー表に格納し、かつ新しいページのT
OPノードのノード識別子を、移動した子ノードに対す
る親ノードのサブノード表に格納する。
【0035】右水平分割は、分割キー・バリュー以上の
キー・バリューを有する全ての子ノードを隣接次ページ
に移動する。左水平分割は、分割キー・バリュー以下の
キー・バリューを有する全ての子ノードを隣接前ページ
に移動する。オリジナル・ページでは、ノードの削除さ
れたサブセットは、ページ空間及びページタグをフリー
アップ(free-up )する。本発明の好ましい実施例にお
いて、上記方法は、格納された情報を表しかつ検索する
ための均一でかつ容易に保守可能な手段に導く。上記方
法は、例えば、大きなレコード、非常に大きなフィール
ド・オカレンス(field occurrences )(バイナリ・ラ
ージ・オブジェクト)、及びビットマップを表わすのに
有用である。ビットマップ、例えばビデオ画像は、しば
しば時間と共に成長するので、ビットマップは、多次元
Bトリーによって特によく表される。本発明により提供
される保守アルゴリズムは、サイズにおけるビットマッ
プの増大を効果的に扱う。本発明の方法及びシステム
は、好ましい実施例により記載されたけれども、本発明
がこの実施例に限定されたことを企図していない。本発
明のスピリット内における変更は、この技術分野の者に
とっては自明であろう。本発明のスコープは、特許請求
の範囲によってのみ規定される。
【0036】
【発明の効果】本発明のコンピュータシステムの方法で
は、データの一群をインデックスするトリーデータ構造
の一部として格納装置に第1の関連するノード識別子を
有する第1のノードエントリーを格納し、第1のノード
エントリーは、キー・バリューを格納するフィールド
と、サブノードに対する識別情報を格納するフィールド
と、データのユニットを格納する第1のデータ領域とを
備え、データのユニットを第1のデータ領域に格納する
段階を具備するので、ページ溢れを生じることなく効率
よく格納装置にデータのユニットを格納することができ
る。本発明のコンピュータシステムの方法では、データ
の一群をインデックスするトリーデータ構造の一部とし
て格納装置に第1の関連するノード識別子を有する第1
のノードエントリーを供給し、第1のノードエントリー
は、キー・バリューを格納するフィールドと、サブノー
ドに対する識別子情報を格納するフィールドと、データ
のユニットを格納する第1のデータ領域とを備え、格納
装置にデータのユニットを格納するために要求を受け取
り、データのユニットが第1のデータ領域に格納されう
るかどうかを決定し、データのユニットが第1のデータ
領域に格納されえないことが決定されたときに、格納装
置に新しいノードエントリーを生成し、新しいノードエ
ントリーは、新しいノード識別子を有しかつ新しいキー
・バリュー表と、新しいサブノード表と、新しいデータ
領域とを備え、データのユニットを新しいデータ領域に
格納し、格納装置にポインタノードエントリーを生成
し、ポインタノードエントリーは、ポインタノード識別
子を有し、新たなノード識別子をポインタノードエント
リーに格納し、ポインタノード識別子を第1のサブノー
ド表に格納し、データのユニットが第1のデータ領域に
格納されうることが決定されたときに、データのユニッ
トを第1のデータ領域に格納する段階を具備するので、
ページ溢れを生じることなく効率よく格納装置にデータ
のユニットを格納することができる。
【0037】本発明のためのコンピュータシステムの方
法では、複数のノードエントリー群を格納装置に格納
し、各ノードエントリー群は、一つ以上のノードエント
リーを備えかつある量の利用可能な空間を有し、各ノー
ドエントリーは、固有なノード識別子を有しかつキー・
バリュー表と、サブノード表と、データのユニットを格
納するデータ領域とを備え、データのユニットのキー・
バリューに基づいて、複数のノードエントリー群のいず
れに選択されたデータのユニットを記憶すべきかを決定
し、データのユニットの大きさと決定されたノードエン
トリー群の利用可能な空間の量とに基づいて、選択され
たデータのユニットが決定されたノードエントリー群に
格納されうるかどうかを決定し、決定されたノードエン
トリー群の利用可能な空間の量がデータのユニットの大
きさよりも小さいときに、格納装置に新しいノードエン
トリー群を生成し、新しいノードエントリー群は、新し
いノード識別子を有する新しいノードエントリーを包含
しかつ新しいキー・バリュー表と、新しいサブノード表
と、新しいデータ領域とを備え、データのユニットを新
しいデータ領域に格納し、新しいノードエントリーの新
しいノード識別子を決定されたノードエントリーのサブ
ノード表に格納する段階を具備するので、関連するキー
・バリュー及び大きさを有するデータの選択されたユニ
ットを、ページ溢れを発生しないで効率よく格納装置に
格納することができる。
【0038】本発明のコンピュータシステムの方法で
は、格納装置は、複数の固定サイズブロックに論理的に
分けられ、各ブロックは、ブロックヘッダーと、タグの
アレイと、複数のノードエントリーとを備え、各ノード
エントリーは、キー・バリュー表と、サブノード表と、
データ表とを備えている方法であって、キー・バリュー
を選択されたデータユニットに割り当て、割り当てられ
たキー・バリューに基づいて、どのノードエントリーに
選択されたデータユニットが格納されるべきかを決定
し、選択されたデータユニットが決定されたノードエン
トリーを包含するブロックに格納されうるかどうかを決
定し、選択されたデータユニットが決定されたノードエ
ントリーを包含するブロックに格納されうるときに、選
択されたデータユニットが決定されたノードエントリー
に格納されうるかどうかを決定し、選択されたデータユ
ニットが決定されたノードエントリーに格納されうると
きに、選択されたデータユニットを決定されたノードエ
ントリーに格納し、選択されたデータユニットが決定さ
れたノードエントリーに格納されえないが決定されたノ
ードエントリーを包含するブロックに格納されうるとき
に、新しいノードエントリーを生成しかつ選択されたデ
ータユニットを新しいノードエントリーに格納し、新し
いノードエントリーのノード識別子を決定されたノード
エントリーのサブノード表に格納し、選択されたデータ
ユニットのキー・バリューを決定されたノードエントリ
ーのキー・バリュー表に格納し、選択されたデータユニ
ットが決定されたノードエントリーに格納されえずかつ
決定されたノードエントリーを包含するブロックに格納
されえないときに、新しいブロックの割り当てを要求
し、新しいノードエントリーを生成しかつ選択されたデ
ータユニットを新しいノードエントリーに格納し、ポイ
ンタノードを決定れたノードエントリーを包含するブロ
ックに格納しかつ新しいノードエントリーのノード識別
子をポインタノードに格納し、ポインタノードのノード
識別子を決定されたノードエントリーのサブノード表に
格納し、選択されたデータユニットのキー・バリューを
決定されたノードエントリーのキー・バリュー表に格納
する段階を具備するので、ページ溢れを発生することな
く、効率的に選択されたデータユニットを格納装置に格
納することができる。
【0039】本発明のコンピュータシステムでは、一群
のデータをインデックスするトリーデータ構造の一部と
して格納装置にノードエントリーを格納するノード格納
機構と、ノードエントリーは、それに対応付けられて第
1のノード識別子を有しかつキー・バリューを格納する
第1のキー・バリュー表と、サブノードのノード識別子
を格納する第1のサブノード表と、データのユニットを
格納する第1のデータ領域とを備え、データのユニット
を第1のデータ領域に格納するデータ格納機構とを備え
ているので、ページ溢れを発生することなく効率よくデ
ータのユニットを格納装置に格納することができる。本
発明のコンピュータシステムでは、選択されたデータの
ユニットは、関連するキー・バリューとある大きさを有
し、格納装置は、複数のノードエントリー群(ページ)
を格納し、各ノードエントリー群(ページ)は、一つ以
上のノードエントリーを備えかつある量の利用可能な空
間を有し、各ノードエントリーは、固有のノード識別子
を有しかつキー・バリュー表と、サブノード表と、デー
タのユニットを格納するデータ領域とを備えるコンピュ
ータシステムであって、データのユニットのキー・バリ
ューに基づいて、複数のノードエントリー群(ページ)
のどれに選択されたデータのユニットが格納されるべき
かを決定する手段と、データのユニットの大きさ及び決
定されたノードエントリー群(ページ)の利用可能な空
間の量に基づいて、選択されたデータのユニットが決定
されたノードエントリー群(ページ)に格納されうるか
どうかを決定する手段と、決定されたノードエントリー
群の利用可能な空間の量がデータのユニットの大きさよ
りも小さいときに、新しいノードエントリー群(ペー
ジ)を格納装置に生成する手段と、新しいノードエント
リー群(ページ)は、新しいノード識別子を有する新し
いノードエントリーを包含しかつ新しいキー・バリュー
表と、新しいサブノード表と、新しいデータ領域とを備
え、データのユニットを新しいデータ領域に格納する手
段と、新しいノードエントリーの新しいノード識別子を
決定されたノードエントリーのサブノード表に格納する
手段とを備えているので、ページ溢れを発生することな
く効率よく選択されたデータのユニットを格納装置に格
納することができる。
【0040】本発明のコンピュータシステムでは、格納
装置は、複数の固定サイズブロックに論理的に分けら
れ、各ブロックは、ブロックヘッダーと、タグのアレイ
と、複数のノードエントリーとを備え、各ノードエント
リーは、キー・バリュー表と、サブノード表と、データ
表とを備えているコンピュータシステムであって、キー
・バリューを選択されたデータユニットに割り当てる手
段と、割り当てられたキー・バリューに基づいて、どの
ノードエントリーに選択されたデータユニットが格納さ
れるべきかを決定する手段と、選択されたデータユニッ
トが決定されたノードエントリーを包含するブロックに
格納されうるかどうかを決定する手段と、選択されたデ
ータユニットが決定されたノードエントリーを包含する
ブロックに格納されうるときに、選択されたデータユニ
ットが決定されたノードエントリーに格納されうるかど
うかを決定する手段と、選択されたデータユニットが決
定されたノードエントリーに格納されうるときに、選択
されたデータユニットを決定されたノードエントリーに
格納する手段と、選択されたデータユニットが決定され
たノードエントリーに格納されえないが決定されたノー
ドエントリーを包含するブロックに格納されうるとき
に、新しいノードエントリーを生成しかつ選択されたデ
ータユニットを新しいノードエントリーに格納する手段
と、新しいノードエントリーのノード識別子を決定され
たノードエントリーのサブノード表に格納する手段と、
選択されたデータユニットのキー・バリューを決定され
たノードエントリーのキー・バリュー表に格納する手段
と、選択されたデータユニットが決定されたノードエン
トリーに格納されえずかつ決定されたノードエントリー
を包含するブロックに格納されえないときに、新しいブ
ロックの割り当てを要求する手段と、新しいノードエン
トリーを生成しかつ選択されたデータユニットを新しい
ノードエントリーに格納する手段と、ポインタノードを
決定れたノードエントリーを包含するブロックに格納し
かつ新しいノードエントリーのノード識別子をポインタ
ノードに格納する手段と、ポインタノードのノード識別
子を決定されたノードエントリーのサブノード表に格納
する手段と、選択されたデータユニットのキー・バリュ
ーを決定されたノードエントリーのキー・バリュー表に
格納する手段とを備えているので、ページ溢れを発生す
ることなく効率よく選択されたデータユニットを格納装
置に格納することができる。
【図面の簡単な説明】
【図1】通常のBトリーのブロック図である。
【図2】本発明の好ましい実施例を実施するコンピュー
タシステムの好ましい実施例のブロック図である。
【図3】キー・バリュー・テーブル、サブノード・テー
ブル、及びデータ領域を備えているノードのブロック図
である。
【図4】多次元Bトリーの親ノード、第1の子ノード、
及び第2の子ノードのブロック図である。
【図5】サブノード及びサブトリーに分割された図4の
第1の子ノードのブロック図である。
【図6】多次元Bトリー構造のブロック図である。
【図7】本発明の好ましい実施例の多次元Bトリーに対
する格納フォーマットのブロック図である。
【図8】多次元Bトリーのノード及びサブノードに格納
されたデータを説明するためのブロック図である。
【図9】図8の多次元Bトリーの選択されたサブノード
に格納されたデータのユニットのブロック図である。
【図10】サブユニットに分けられた図9のデータのユ
ニットのブロック図である。
【図11】図7の格納フォーマットにより第2の格納装
置に格納された図10のデータのサブユニットのブロッ
ク図である。
【図12】図7の格納フォーマットを用いて二次記憶装
置にデータのユニットを格納するために好ましい実施例
に用いた方法の詳細なフロー図である。
【図13】図7の格納フォーマットを用いて二次記憶装
置にデータのユニットを格納するために好ましい実施例
に用いた方法の詳細なフロー図である。
【図14】図7の格納フォーマットを用いて二次記憶装
置にデータのユニットを格納するために好ましい実施例
に用いた方法の詳細なフロー図である。
【符号の説明】
20 コンピュータシステム 21 中央処理装置(CPU) 22 ランダムアクセスメモリ装置(RAM) 23 二次記憶装置 24 出力装置 25 入力装置 26 キー・バリュー表 27 サブノード表 28 データ領域 29 ノード
───────────────────────────────────────────────────── フロントページの続き (72)発明者 イアン チャールズ ホセ アメリカ合衆国 ワシントン州 98007 ベルヴィュー ノースイースト サーティ セヴンス プレイス 14507 エフ−17

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 格納装置にデータのユニットを格納する
    コンピュータシステムの方法であって、データの一群を
    インデックスするトリーデータ構造の一部として格納装
    置に第1の関連するノード識別子を有する第1のノード
    エントリーを格納し、該第1のノードエントリーは、キ
    ー・バリューを格納するフィールドと、サブノードに対
    する識別情報を格納するフィールドと、データのユニッ
    トを格納する第1のデータ領域とを備え、 前記データのユニットを前記第1のデータ領域に格納す
    る段階を具備することを特徴とする方法。
  2. 【請求項2】 前記トリーデータ構造の一部として前記
    格納装置に第2のノードエントリーを格納し、 前記第1のノードエントリーにサブノードに対する識別
    情報を格納するために前記フィールドに前記第2のノー
    ドエントリーに対する識別子情報を格納する段階を更に
    具備することを特徴とする請求項1に記載の方法。
  3. 【請求項3】 前記トリーデータ構造の一部として前記
    格納装置に前記第2のノードエントリーを格納する段階
    は、データだけからなりかつ前記トリー構造の一部とし
    て前記格納装置にキー・バリュー及びサブノードに対す
    る識別情報を有していない、前記第2のノードエントリ
    ーを格納する段階を更に具備することを特徴とする請求
    項2に記載の方法。
  4. 【請求項4】 前記トリーデータ構造の一部として前記
    格納装置に前記第2のノードエントリーを格納する段階
    は、該トリー構造の一部として該格納装置に、フィール
    ド格納キー・バリュー、サブノードに対するフィールド
    格納識別子情報、及びデータのユニットを格納するため
    のデータ領域を備えている、前記第2のノードエントリ
    ーを格納する段階を更に具備することを特徴とする請求
    項2に記載の方法。
  5. 【請求項5】 前記格納装置に前記トリー構造のデータ
    のサブトリーを格納する段階を更に備え、そして前記第
    2のノードエントリーを格納する手段は、前記トリー構
    造の一部として前記記憶装置に前記第2のノードエント
    リーとしてポインタノードを格納する段階を更に具備
    し、前記ポインタノードは、前記データのユニットのサ
    ブトリーへのポインタを保持することを特徴とする請求
    項2に記載の方法。
  6. 【請求項6】 前記トリーデータ構造に、前記第1のノ
    ードエントリーに対する親ノードエントリーを格納し、
    該親ノードエントリーは、それに対応付けられた第2の
    ノード識別子を有しかつキー・バリューを格納するフィ
    ールドと、サブトリーに対する識別子情報を格納するフ
    ィールドと、データのユニットを格納するデータ領域と
    を備え、該データのユニットは、キー・バリューを有
    し、 前記親ノードエントリーのキー・バリューを格納するた
    めの前記フィールドに前記データのユニットの前記キー
    ・バリューを格納し、 前記親ノードエントリーのサブノードに対する識別子情
    報を格納するためのフィールドに前記第1のノード識別
    子を格納する段階を更に具備することを特徴とする請求
    項1に記載の方法。
  7. 【請求項7】 格納装置にデータのユニットを格納する
    コンピュータシステムの方法であって、 データの一群をインデックスするトリーデータ構造の一
    部として前記格納装置に第1の関連するノード識別子を
    有する第1のノードエントリーを供給し、該第1のノー
    ドエントリーは、キー・バリューを格納するフィールド
    と、サブノードに対する識別子情報を格納するフィール
    ドと、データのユニットを格納する第1のデータ領域と
    を備え、 前記格納装置に前記データのユニットを格納するために
    要求を受け取り、 前記データのユニットが前記第1のデータ領域に格納さ
    れうるかどうかを決定し、 前記データのユニットが前記第1のデータ領域に格納さ
    れえないことが決定されたときに、 前記格納装置に新しいノードエントリーを生成し、該新
    しいノードエントリーは、新しいノード識別子を有しか
    つ新しいキー・バリュー表と、新しいサブノード表と、
    新しいデータ領域とを備え、 前記データのユニットを前記新しいデータ領域に格納
    し、 前記格納装置にポインタノードエントリーを生成し、該
    ポインタノードエントリーは、ポインタノード識別子を
    有し、 前記新たなノード識別子を前記ポインタノードエントリ
    ーに格納し、 前記ポインタノード識別子を前記第1のサブノード表に
    格納し、 前記データのユニットが前記第1のデータ領域に格納さ
    れうることが決定されたときに、該データのユニットを
    該第1のデータ領域に格納する段階を具備することを特
    徴とする方法。
  8. 【請求項8】 格納装置に関連するキー・バリュー及び
    大きさを有するデータの選択されたユニットを格納する
    ためのコンピュータシステムの方法であって、 複数のノードエントリー群を前記格納装置に格納し、各
    ノードエントリー群は、一つ以上のノードエントリーを
    備えかつある量の利用可能な空間を有し、各ノードエン
    トリーは、固有なノード識別子を有しかつキー・バリュ
    ー表と、サブノード表と、データのユニットを格納する
    データ領域とを備え、 前記データのユニットの前記キー・バリューに基づい
    て、前記複数のノードエントリー群のいずれに前記選択
    されたデータのユニットを記憶すべきかを決定し、 前記データのユニットの前記大きさと前記決定されたノ
    ードエントリー群の利用可能な空間の量とに基づいて、
    前記選択されたデータのユニットが前記決定されたノー
    ドエントリー群に格納されうるかどうかを決定し、 前記決定されたノードエントリー群の前記利用可能な空
    間の量が前記データのユニットの前記大きさよりも小さ
    いときに、前記格納装置に新しいノードエントリー群を
    生成し、該新しいノードエントリー群は、新しいノード
    識別子を有する新しいノードエントリーを包含しかつ新
    しいキー・バリュー表と、新しいサブノード表と、新し
    いデータ領域とを備え、 前記データのユニットを前記新しいデータ領域に格納
    し、 前記新しいノードエントリーの前記新しいノード識別子
    を前記決定されたノードエントリーの前記サブノード表
    に格納する段階を具備することを特徴とする方法。
  9. 【請求項9】 前記ノードエントリーのいずれに前記選
    択されたデータのユニットを記憶すべきかを決定する段
    階は、前記選択されたデータのユニットの前記キー・バ
    リューを各ノードエントリーに格納されたキー・バリュ
    ーと比較する段階を含むことを特徴とする請求項8に記
    載の方法。
  10. 【請求項10】 前記決定されたノードエントリーは、
    ある量の利用可能な空間を有する固定サイズのページ内
    に包含され、前記選択されたデータのユニットは、ある
    大きさを有し、前記選択されたデータのユニットが前記
    決定されたノードエントリーに格納されうるかどうかを
    決定する段階は、前記選択されたデータのユニットの前
    記大きさを前記ページの利用可能な空間の前記量と比較
    することを含む請求項8に記載の方法。
  11. 【請求項11】 格納装置に選択されたデータユニット
    を格納するコンピュータシステムの方法であり、該格納
    装置は、複数の固定サイズブロックに論理的に分けら
    れ、各ブロックは、ブロックヘッダーと、タグのアレイ
    と、複数のノードエントリーとを備え、各ノードエント
    リーは、キー・バリュー表と、サブノード表と、データ
    表とを備えている方法であって、 キー・バリューを前記選択されたデータユニットに割り
    当て、 前記割り当てられたキー・バリューに基づいて、どのノ
    ードエントリーに前記選択されたデータユニットが格納
    されるべきかを決定し、 前記選択されたデータユニットが前記決定されたノード
    エントリーを包含する前記ブロックに格納されうるかど
    うかを決定し、 前記選択されたデータユニットが前記決定されたノード
    エントリーを包含する前記ブロックに格納されうるとき
    に、前記選択されたデータユニットが前記決定されたノ
    ードエントリーに格納されうるかどうかを決定し、 前記選択されたデータユニットが前記決定されたノード
    エントリーに格納されうるときに、前記選択されたデー
    タユニットを前記決定されたノードエントリーに格納
    し、 前記選択されたデータユニットが前記決定されたノード
    エントリーに格納されえないが前記決定されたノードエ
    ントリーを包含する前記ブロックに格納されうるとき
    に、 新しいノードエントリーを生成しかつ前記選択されたデ
    ータユニットを前記新しいノードエントリーに格納し、 前記新しいノードエントリーの前記ノード識別子を前記
    決定されたノードエントリーの前記サブノード表に格納
    し、 前記選択されたデータユニットの前記キー・バリューを
    前記決定されたノードエントリーのキー・バリュー表に
    格納し、 前記選択されたデータユニットが前記決定されたノード
    エントリーに格納されえずかつ前記決定されたノードエ
    ントリーを包含する前記ブロックに格納されえないとき
    に、 新しいブロックの割り当てを要求し、 新しいノードエントリーを生成しかつ前記選択されたデ
    ータユニットを前記新しいノードエントリーに格納し、 ポインタノードを前記決定れたノードエントリーを包含
    する前記ブロックに格納しかつ前記新しいノードエント
    リーの前記ノード識別子を前記ポインタノードに格納
    し、 前記ポインタノードの前記ノード識別子を前記決定され
    たノードエントリーの前記サブノード表に格納し、 前記選択されたデータユニットの前記キー・バリューを
    前記決定されたノードエントリーの前記キー・バリュー
    表に格納する段階を具備することを特徴とする方法。
  12. 【請求項12】 データのユニットを格納装置に格納す
    るコンピュータシステムであって、 一群のデータをインデックスするトリーデータ構造の一
    部として前記格納装置にノードエントリーを格納するノ
    ード格納機構と、該ノードエントリーは、それに対応付
    けられて第1のノード識別子を有しかつキー・バリュー
    を格納する第1のキー・バリュー表と、サブノードのノ
    ード識別子を格納する第1のサブノード表と、データの
    ユニットを格納する第1のデータ領域とを備え、 前記データのユニットを前記第1のデータ領域に格納す
    るデータ格納機構とを備えていることを特徴とするコン
    ピュータシステム。
  13. 【請求項13】 前記ノードエントリーは、前記トリー
    データ構造に親ノードエントリーを有し、該親ノードエ
    ントリーは、それに対応付けられた第2のノード識別子
    を有しかつキー・バリューを格納する第2のキー・バリ
    ュー表と、サブノードのノード識別子を格納する第2の
    サブノード表と、データのユニットを格納する第2のデ
    ータ領域とを備え、該データのユニットは、キー・バリ
    ューを有し、 前記データのユニットの前記キー・バリューを前記第2
    のキー・バリュー表に格納するキー格納機構と、 前記第1のノード識別子を前記第2のサブノード表に格
    納するサブノード格納機構とを更に備えていることを特
    徴とする請求項12に記載のコンピュータシステム。
  14. 【請求項14】 前記データのユニットが前記第1のデ
    ータ領域に格納されうるかどうかを決定する機構と、 前記データのユニットが前記第1のデータ領域に格納さ
    れうると決定されたときに、 新しいノードエントリーを前記格納装置に生成するノー
    ド生成機構と、該新しいノードエントリーは、新しいノ
    ード識別子を有しかつ新しいキー・バリュー表と、新し
    いサブノード表と、新しいデータ領域と備え、 前記データのユニットを前記新しいデータ領域に格納す
    る第2のデータ格納機構と、 ポインタノードエントリーを前記格納装置に生成するポ
    インタノード生成機構と、該ポインタノードエントリー
    は、ポインタノード識別子を有し、 前記新しいノード識別子を前記ポインタノードエントリ
    ーに格納する第2のノード格納機構と、 前記ポインタノード識別子を前記第1のサブノード表に
    格納すうポインタノード格納機構と、 前記データのユニットが前記第1のデータ領域に格納さ
    れうると決定されたときに、該データのユニットを該第
    1のデータ領域に格納する第3のデータ格納機構とを更
    に備えていることを特徴とする請求項13に記載のコン
    ピュータシステム。
  15. 【請求項15】 選択されたデータのユニットを格納装
    置に格納するコンピュータシステムであり、該選択され
    たデータのユニットは、関連するキー・バリューとある
    大きさを有し、該格納装置は、複数のノードエントリー
    群を格納し、各ノードエントリー群は、一つ以上のノー
    ドエントリーを備えかつある量の利用可能な空間を有
    し、各ノードエントリーは、固有のノード識別子を有し
    かつキー・バリュー表と、サブノード表と、データのユ
    ニットを格納するデータ領域とを備えるコンピュータシ
    ステムであって、 前記データのユニットの前記キー・バリューに基づい
    て、前記複数のノードエントリー群のどれに前記選択さ
    れたデータのユニットが格納されるべきかを決定する手
    段と、 前記データのユニットの前記大きさ及び前記決定された
    ノードエントリー群の利用可能な空間の量に基づいて、
    前記選択されたデータのユニットが前記決定されたノー
    ドエントリー群に格納されうるかどうかを決定する手段
    と、 前記決定されたノードエントリー群の利用可能な空間の
    量が前記データのユニットの前記大きさよりも小さいと
    きに、新しいノードエントリー群を前記格納装置に生成
    する手段と、該新しいノードエントリー群は、新しいノ
    ード識別子を有する新しいノードエントリーを包含しか
    つ新しいキー・バリュー表と、新しいサブノード表と、
    新しいデータ領域とを備え、 前記データのユニットを前記新しいデータ領域に格納す
    る手段と、 前記新しいノードエントリーの前記新しいノード識別子
    を前記決定されたノードエントリーの前記サブノード表
    に格納する手段とを備えていることを特徴とするコンピ
    ュータシステム。
  16. 【請求項16】 前記ノードエントリーのどれに前記選
    択されたデータのユニットが格納されるべきかを決定す
    る手段は、前記選択されたデータのユニットの前記キー
    ・バリューを各ノードエントリーに格納された前記キー
    ・バリューと比較する手段を含むことを特徴とする請求
    項15に記載のコンピュータシステム。
  17. 【請求項17】 前記決定されたノードエントリーは、
    利用可能な空間のある量を有している固定サイズのペー
    ジ内に包含され、前記選択されたデータのユニットは、
    ある大きさを有し、前記選択されたデータのユニットが
    前記決定されたノードエントリーに格納されうるかどう
    かを決定する手段は、前記選択されたデータのユニット
    の前記大きさを前記ページの利用可能な空間の前記量と
    比較することを含むことを特徴とする請求項15に記載
    のコンピュータシステム。
  18. 【請求項18】 選択されたデータユニットを格納装置
    に格納するコンピュータシステムであり、該格納装置
    は、複数の固定サイズブロックに論理的に分けられ、各
    ブロックは、ブロックヘッダーと、タグのアレイと、複
    数のノードエントリーとを備え、各ノードエントリー
    は、キー・バリュー表と、サブノード表と、データ表と
    を備えているコンピュータシステムであって、 キー・バリューを前記選択されたデータユニットに割り
    当てる手段と、 前記割り当てられたキー・バリューに基づいて、どのノ
    ードエントリーに前記選択されたデータユニットが格納
    されるべきかを決定する手段と、 前記選択されたデータユニットが前記決定されたノード
    エントリーを包含する前記ブロックに格納されうるかど
    うかを決定する手段と、 前記選択されたデータユニットが前記決定されたノード
    エントリーを包含する前記ブロックに格納されうるとき
    に、前記選択されたデータユニットが前記決定されたノ
    ードエントリーに格納されうるかどうかを決定する手段
    と、 前記選択されたデータユニットが前記決定されたノード
    エントリーに格納されうるときに、前記選択されたデー
    タユニットを前記決定されたノードエントリーに格納す
    る手段と、 前記選択されたデータユニットが前記決定されたノード
    エントリーに格納されえないが前記決定されたノードエ
    ントリーを包含する前記ブロックに格納されうるとき
    に、 新しいノードエントリーを生成しかつ前記選択されたデ
    ータユニットを前記新しいノードエントリーに格納する
    手段と、 前記新しいノードエントリーの前記ノード識別子を前記
    決定されたノードエントリーの前記サブノード表に格納
    する手段と、 前記選択されたデータユニットの前記キー・バリューを
    前記決定されたノードエントリーのキー・バリュー表に
    格納する手段と、 前記選択されたデータユニットが前記決定されたノード
    エントリーに格納されえずかつ前記決定されたノードエ
    ントリーを包含する前記ブロックに格納されえないとき
    に、 新しいブロックの割り当てを要求する手段と、 新しいノードエントリーを生成しかつ前記選択されたデ
    ータユニットを前記新しいノードエントリーに格納する
    手段と、 ポインタノードを前記決定れたノードエントリーを包含
    する前記ブロックに格納しかつ前記新しいノードエント
    リーの前記ノード識別子を前記ポインタノードに格納す
    る手段と、 前記ポインタノードの前記ノード識別子を前記決定され
    たノードエントリーの前記サブノード表に格納する手段
    と、 前記選択されたデータユニットの前記キー・バリューを
    前記決定されたノードエントリーの前記キー・バリュー
    表に格納する手段とを備えていることを特徴とするコン
    ピュータシステム。
JP25492394A 1993-10-20 1994-10-20 多次元データを格納しかつアクセスするコンピュータ方法及び格納構造 Expired - Lifetime JP3844370B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13991693A 1993-10-20 1993-10-20
US08/139916 1993-10-20

Publications (2)

Publication Number Publication Date
JPH07191891A true JPH07191891A (ja) 1995-07-28
JP3844370B2 JP3844370B2 (ja) 2006-11-08

Family

ID=22488876

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25492394A Expired - Lifetime JP3844370B2 (ja) 1993-10-20 1994-10-20 多次元データを格納しかつアクセスするコンピュータ方法及び格納構造

Country Status (4)

Country Link
US (1) US5752243A (ja)
EP (1) EP0650131A1 (ja)
JP (1) JP3844370B2 (ja)
CA (1) CA2117846C (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10124528A (ja) * 1996-10-16 1998-05-15 Toshiba Corp 多次元データ管理方法、多次元データ管理装置、多次元データ管理プログラムを記録した媒体
JP2001043237A (ja) * 1999-07-30 2001-02-16 Mitsubishi Electric Corp データファイル及びデータ検索方法
JP2002532918A (ja) * 1998-11-06 2002-10-02 ザ トゥルスティーズ オブ コロンビア ユニバーシティ イン ザ シティ オブニュー ヨーク 映像記述システムおよび方法
KR100385528B1 (ko) * 1997-10-31 2003-05-27 인터내셔널 비지네스 머신즈 코포레이션 다차원 데이터 표시 방법 및 기록 매체
WO2013035287A1 (ja) * 2011-09-08 2013-03-14 日本電気株式会社 データベース管理装置、データベース管理方法、及びプログラム
WO2015129109A1 (ja) * 2014-02-27 2015-09-03 ウイングアーク1st株式会社 インデックス管理装置
JPWO2013171953A1 (ja) * 2012-05-15 2016-01-12 日本電気株式会社 分散データ管理装置及び分散データ操作装置

Families Citing this family (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE210856T1 (de) * 1994-06-06 2001-12-15 Nokia Networks Oy Verfahren zum daten speichern und daten wiederfinden und eine speicheranordnung
DE19621788A1 (de) * 1995-08-30 1997-03-06 Bayerisches Forschungszentrum Datenbanksystem zur Verwaltung von Arrays
US6272501B1 (en) 1995-08-30 2001-08-07 Peter Baumann Database system for management of arrays
US5968152A (en) * 1996-04-10 1999-10-19 Apple Computer, Inc. Method and apparatus for extending key space in a plug and play ROM
US5893104A (en) * 1996-07-09 1999-04-06 Oracle Corporation Method and system for processing queries in a database system using index structures that are not native to the database system
US6208993B1 (en) * 1996-07-26 2001-03-27 Ori Software Development Ltd. Method for organizing directories
IL118959A (en) 1996-07-26 1999-07-14 Ori Software Dev Ltd Database apparatus
US6175835B1 (en) * 1996-07-26 2001-01-16 Ori Software Development, Ltd. Layered index with a basic unbalanced partitioned index that allows a balanced structure of blocks
DE19709041A1 (de) * 1997-03-06 1998-09-10 Rudolf Prof Bayer Datenbanksystem und Verfahren zum Betrieb eines Datenbanksystems
FI102425B1 (fi) * 1997-03-14 1998-11-30 Nokia Telecommunications Oy Menetelmä muistin toteuttamiseksi
FI102426B1 (fi) * 1997-03-14 1998-11-30 Nokia Telecommunications Oy Menetelmä muistin toteuttamiseksi
FI102424B (fi) * 1997-03-14 1998-11-30 Nokia Telecommunications Oy Menetelmä muistin toteuttamiseksi
US6115716A (en) * 1997-03-14 2000-09-05 Nokia Telecommunications Oy Method for implementing an associative memory based on a digital trie structure
JP3034483B2 (ja) * 1997-04-21 2000-04-17 核燃料サイクル開発機構 オブジェクト探索方法およびその方法を用いた装置
US6021180A (en) * 1997-04-30 2000-02-01 The Business Edge Group, Inc. Processing of telecommunications transmissions and directing consumers to need providers
US6073134A (en) * 1997-05-29 2000-06-06 Oracle Corporation Method article of manufacture, and apparatus for generating a multi-dimensional record management index
US6278994B1 (en) 1997-07-10 2001-08-21 International Business Machines Corporation Fully integrated architecture for user-defined search
US6285996B1 (en) 1997-07-10 2001-09-04 International Business Machines Corp. Run-time support for user-defined index ranges and index filters
US6192358B1 (en) 1997-07-10 2001-02-20 Internatioanal Business Machines Corporation Multiple-stage evaluation of user-defined predicates
US6266663B1 (en) 1997-07-10 2001-07-24 International Business Machines Corporation User-defined search using index exploitation
DE19743267C1 (de) * 1997-09-30 1998-12-03 Siemens Ag Verfahren zum Aufsuchen einer Adresse in einem teilbesetzten, nicht balancierten Binären Baum
DE19743266C1 (de) * 1997-09-30 1999-03-11 Siemens Ag Verfahren zum Hinzufügen bzw. Entfernen einer Adresse in einem teilbesetzten Suchbaum
US6675173B1 (en) 1998-01-22 2004-01-06 Ori Software Development Ltd. Database apparatus
US6792432B1 (en) * 1998-03-31 2004-09-14 Sybase, Inc. Database system with methods providing high-concurrency access in B-Tree structures
US6081624A (en) * 1998-06-01 2000-06-27 Autodesk, Inc. Spatial index compression through spatial subdivision encoding
US6070164A (en) 1998-05-09 2000-05-30 Information Systems Corporation Database method and apparatus using hierarchical bit vector index structure
US6151630A (en) * 1998-05-15 2000-11-21 Avaya Technology Corp. Non-redundant browsing of a sequencing of web pages
EP0977128A1 (en) * 1998-07-28 2000-02-02 Matsushita Electric Industrial Co., Ltd. Method and system for storage and retrieval of multimedia objects by decomposing a tree-structure into a directed graph
US6356902B1 (en) 1998-07-28 2002-03-12 Matsushita Electric Industrial Co., Ltd. Method and system for storage and retrieval of multimedia objects
US6266660B1 (en) * 1998-07-31 2001-07-24 Unisys Corporation Secondary index search
FI981917A (fi) 1998-09-08 2000-03-09 Nokia Networks Oy Menetelmä FIFO-jonon toteuttamiseksi muistissa ja muistijärjestely
KR100284778B1 (ko) 1998-10-28 2001-03-15 정선종 내용기반 이미지 검색을 위한 고차원 색인구조의 삽입 방법
US6470344B1 (en) * 1999-05-29 2002-10-22 Oracle Corporation Buffering a hierarchical index of multi-dimensional data
US6381605B1 (en) 1999-05-29 2002-04-30 Oracle Corporation Heirarchical indexing of multi-attribute data by sorting, dividing and storing subsets
US6370534B1 (en) * 1999-06-01 2002-04-09 Pliant Technologies, Inc. Blocking techniques for data storage
US6813611B1 (en) * 1999-06-08 2004-11-02 International Business Machines Corporation Controlling, configuring, storing, monitoring and maintaining accounting of bookkeeping information employing trees with nodes having embedded information
US6334123B1 (en) 1999-09-03 2001-12-25 Whamtech, Inc. Index relational processor
US6829695B1 (en) 1999-09-03 2004-12-07 Nexql, L.L.C. Enhanced boolean processor with parallel input
US20040225865A1 (en) * 1999-09-03 2004-11-11 Cox Richard D. Integrated database indexing system
US6532476B1 (en) 1999-11-13 2003-03-11 Precision Solutions, Inc. Software based methodology for the storage and retrieval of diverse information
US6826472B1 (en) * 1999-12-10 2004-11-30 Tele Atlas North America, Inc. Method and apparatus to generate driving guides
US6750883B1 (en) 2000-04-05 2004-06-15 Microsoft Corporation Identity-based context aware computing systems and methods
US7743074B1 (en) * 2000-04-05 2010-06-22 Microsoft Corporation Context aware systems and methods utilizing hierarchical tree structures
US7213048B1 (en) 2000-04-05 2007-05-01 Microsoft Corporation Context aware computing devices and methods
US7076255B2 (en) * 2000-04-05 2006-07-11 Microsoft Corporation Context-aware and location-aware cellular phones and methods
US7421486B1 (en) 2000-04-05 2008-09-02 Microsoft Corporation Context translation methods and systems
US7096029B1 (en) * 2000-04-05 2006-08-22 Microsoft Corporation Context aware computing devices having a common interface and related methods
FR2811101B1 (fr) * 2000-07-03 2002-09-20 Axicare Procede de traitement de donnees structurees utilisant un langage informatique oriente objet
EP1338129B1 (en) * 2000-09-02 2006-11-29 Emageon, Inc. Method and communication module for transmission of dicom objects through data element sources
US6578038B1 (en) * 2000-09-29 2003-06-10 International Business Machines Corporation Managing directory listings in a relational database
US7269684B2 (en) * 2000-09-29 2007-09-11 International Business Machines Corporation Method and system for persistently storing objects in an object oriented environment
US7406443B1 (en) * 2000-12-18 2008-07-29 Powerloom Method and system for multi-dimensional trading
US6944679B2 (en) * 2000-12-22 2005-09-13 Microsoft Corp. Context-aware systems and methods, location-aware systems and methods, context-aware vehicles and methods of operating the same, and location-aware vehicles and methods of operating the same
US7493565B2 (en) 2000-12-22 2009-02-17 Microsoft Corporation Environment-interactive context-aware devices and methods
US7072956B2 (en) * 2000-12-22 2006-07-04 Microsoft Corporation Methods and systems for context-aware policy determination and enforcement
KR100488414B1 (ko) * 2000-12-30 2005-05-11 한국전자통신연구원 다중탐색 트리의 노드 생성 방법, 및 그에 따라 생성된 다중탐색 트리 구조의 자료 탐색 방법
US6804677B2 (en) * 2001-02-26 2004-10-12 Ori Software Development Ltd. Encoding semi-structured data for efficient search and browsing
US7170521B2 (en) * 2001-04-03 2007-01-30 Ultravisual Medical Systems Corporation Method of and system for storing, communicating, and displaying image data
AU2002318380A1 (en) * 2001-06-21 2003-01-08 Isc, Inc. Database indexing method and apparatus
JP4490012B2 (ja) * 2001-11-26 2010-06-23 富士通株式会社 ファイル検索装置、ファイル検索プログラム
KR20030044498A (ko) * 2001-11-30 2003-06-09 엘지전자 주식회사 주기억 장치 데이터베이스 관리 시스템의 자료 구조와블록 할당 및 레코드 검색 방법
FR2836573A1 (fr) * 2002-02-27 2003-08-29 France Telecom Representation informatique d'une structure de donnees arborescente et methodes de codage/decodage associees
US7287033B2 (en) * 2002-03-06 2007-10-23 Ori Software Development, Ltd. Efficient traversals over hierarchical data and indexing semistructured data
US6999966B2 (en) * 2002-04-23 2006-02-14 International Business Machines Corporation Content management system and methodology for implementing a complex object using nested/recursive structures
WO2003107174A1 (en) * 2002-06-13 2003-12-24 Cerisent Corporation Xml database mixed structural-textual classification system
US7171404B2 (en) 2002-06-13 2007-01-30 Mark Logic Corporation Parent-child query indexing for XML databases
AU2003236543A1 (en) * 2002-06-13 2003-12-31 Mark Logic Corporation A subtree-structured xml database
US20040133590A1 (en) * 2002-08-08 2004-07-08 Henderson Alex E. Tree data structure with range-specifying keys and associated methods and apparatuses
GB2394803A (en) * 2002-10-31 2004-05-05 Hewlett Packard Co Management of security key distribution using an ancestral hierarchy
US7146371B2 (en) * 2002-12-05 2006-12-05 International Business Machines Corporation Performance and memory bandwidth utilization for tree searches using tree fragmentation
US7039646B2 (en) * 2002-12-18 2006-05-02 International Business Machines Corporation Method and system for compressing varying-length columns during index high key generation
US20050102255A1 (en) * 2003-11-06 2005-05-12 Bultman David C. Computer-implemented system and method for handling stored data
US6839005B1 (en) * 2003-11-07 2005-01-04 Broadcom Corporation Low memory and MIPS efficient technique for decoding Huffman codes using multi-stage, multi-bits lookup at different levels
US7633886B2 (en) * 2003-12-31 2009-12-15 University Of Florida Research Foundation, Inc. System and methods for packet filtering
US7668845B1 (en) 2004-02-18 2010-02-23 Microsoft Corporation C-tree for multi-attribute indexing
WO2005086003A1 (ja) * 2004-03-08 2005-09-15 Annex Systems Incorporated データベース・システム
US7483906B2 (en) * 2004-04-14 2009-01-27 Microsoft Corporation Method and system for renaming consecutive keys in a B-tree
US7599949B1 (en) * 2004-04-30 2009-10-06 Unisys Corporation Database management system and method for maintaining a database in a range sensitive manner
US8572233B2 (en) * 2004-07-15 2013-10-29 Hewlett-Packard Development Company, L.P. Method and system for site path evaluation using web session clustering
KR100622945B1 (ko) * 2004-07-27 2006-09-19 재단법인서울대학교산학협력재단 복수 로드 스토어 명령어를 통한 코드 크기 감소 방법
GB2418747A (en) * 2004-09-29 2006-04-05 Siemens Ag A data structure distributed over a number of pages
US8150857B2 (en) * 2006-01-20 2012-04-03 Glenbrook Associates, Inc. System and method for context-rich database optimized for processing of concepts
FR2904447B1 (fr) * 2006-07-27 2008-10-03 Canon Kk Procede et dispositif de recherche d'un sous-element contenant une information d'identification d'une entite recherchee dans un fichier ecrit en langage de balisage.
US20080097954A1 (en) * 2006-10-20 2008-04-24 Microsoft Corporation Ranged lookups
US9146948B2 (en) * 2006-12-12 2015-09-29 International Business Machines Corporation Hilbert ordering of multidimensional tuples within computing systems
JP2009009545A (ja) * 2007-01-31 2009-01-15 Hewlett-Packard Development Co Lp データ処理システム及び方法
US20080307012A1 (en) * 2007-06-05 2008-12-11 Microsoft Corporation Tsb-tree page split strategy
CA2708669A1 (en) * 2007-12-13 2009-06-18 Redknee Inc. Method and system for storage
US20090254594A1 (en) * 2008-04-02 2009-10-08 Microsoft Corporation Techniques to enhance database performance
US8126927B1 (en) * 2008-06-06 2012-02-28 Amdocs Software Systems Limited Data structure, method, and computer program for providing a linked list in a first dimension and a plurality of linked lists in a second dimension
US8682872B2 (en) * 2009-12-17 2014-03-25 Bmc Software, Inc. Index page split avoidance with mass insert processing
US9092335B2 (en) * 2010-03-26 2015-07-28 Red Hat, Inc. Representing a tree structure on a flat structure
CN101866358B (zh) * 2010-06-12 2012-09-05 中国科学院计算技术研究所 一种多维区间查询方法及系统
US8375012B1 (en) * 2011-08-10 2013-02-12 Hewlett-Packard Development Company, L.P. Computer indexes with multiple representations
CN103514263B (zh) * 2013-08-21 2016-12-28 中国传媒大学 一种采用双key值的高维索引结构构建方法和检索方法
US10083195B2 (en) * 2014-04-24 2018-09-25 Futurewei Technologies, Inc. System and method for composing a multidimensional index key in data blocks
CN104112013A (zh) * 2014-07-17 2014-10-22 浪潮(北京)电子信息产业有限公司 HBase二级索引方法及装置
CN104317536B (zh) * 2014-11-12 2017-09-15 中国石油集团川庆钻探工程有限公司地球物理勘探公司 存储地震数据体和读取地震道的地震数据的设备及方法
US20170060924A1 (en) * 2015-08-26 2017-03-02 Exablox Corporation B-Tree Based Data Model for File Systems
US10698865B2 (en) * 2017-06-26 2020-06-30 Vmware, Inc. Management of B-tree leaf nodes with variable size values
FR3103664B1 (fr) * 2019-11-27 2023-04-07 Amadeus Sas Système de stockage distribué pour stocker des données contextuelles
US11671492B2 (en) * 2020-09-10 2023-06-06 EMC IP Holding Company LLC Multipart upload for distributed file systems
CN115374124B (zh) * 2022-08-29 2023-05-12 钟士平 基于a+树数据结构存储的数据查询方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4344134A (en) * 1980-06-30 1982-08-10 Burroughs Corporation Partitionable parallel processor
US4606002A (en) * 1983-05-02 1986-08-12 Wang Laboratories, Inc. B-tree structured data base using sparse array bit maps to store inverted lists
US4841435A (en) * 1986-10-29 1989-06-20 Saxpy Computer Corporation Data alignment system for random and block transfers of embedded subarrays of an array onto a system bus
GB2196764A (en) * 1986-10-30 1988-05-05 Apple Computer Hierarchical file system
CA2001390C (en) * 1988-12-19 1997-12-30 Ming-Chien Shan View composition in a data-base management system
US5408652A (en) * 1990-08-31 1995-04-18 Fujitsu Limited Method and apparatus for heterogenous database access by generating different access procedures for different database data structures
US5560007A (en) * 1993-06-30 1996-09-24 Borland International, Inc. B-tree key-range bit map index optimization of database queries
US5613105A (en) * 1993-06-30 1997-03-18 Microsoft Corporation Efficient storage of objects in a file system
US5446887A (en) * 1993-09-17 1995-08-29 Microsoft Corporation Optimal reorganization of a B-tree

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10124528A (ja) * 1996-10-16 1998-05-15 Toshiba Corp 多次元データ管理方法、多次元データ管理装置、多次元データ管理プログラムを記録した媒体
KR100385528B1 (ko) * 1997-10-31 2003-05-27 인터내셔널 비지네스 머신즈 코포레이션 다차원 데이터 표시 방법 및 기록 매체
JP2002532918A (ja) * 1998-11-06 2002-10-02 ザ トゥルスティーズ オブ コロンビア ユニバーシティ イン ザ シティ オブニュー ヨーク 映像記述システムおよび方法
JP2001043237A (ja) * 1999-07-30 2001-02-16 Mitsubishi Electric Corp データファイル及びデータ検索方法
WO2013035287A1 (ja) * 2011-09-08 2013-03-14 日本電気株式会社 データベース管理装置、データベース管理方法、及びプログラム
JPWO2013171953A1 (ja) * 2012-05-15 2016-01-12 日本電気株式会社 分散データ管理装置及び分散データ操作装置
WO2015129109A1 (ja) * 2014-02-27 2015-09-03 ウイングアーク1st株式会社 インデックス管理装置
JP2015162042A (ja) * 2014-02-27 2015-09-07 ウイングアーク1st株式会社 インデックス管理装置

Also Published As

Publication number Publication date
EP0650131A1 (en) 1995-04-26
US5752243A (en) 1998-05-12
CA2117846C (en) 2001-02-20
JP3844370B2 (ja) 2006-11-08
CA2117846A1 (en) 1995-04-21

Similar Documents

Publication Publication Date Title
JP3844370B2 (ja) 多次元データを格納しかつアクセスするコンピュータ方法及び格納構造
Lomet et al. A robust multi-attribute search structure
US6438562B1 (en) Parallel index maintenance
US5404510A (en) Database index design based upon request importance and the reuse and modification of similar existing indexes
Henrich The LSD/sup h/-tree: an access structure for feature vectors
US6029170A (en) Hybrid tree array data structure and method
US5515531A (en) Parallel database processing system and retrieval method using secondary key
US5852822A (en) Index-only tables with nested group keys
US5701467A (en) Computer data storage management system and methods of indexing a dataspace and searching a computer memory
US8271530B2 (en) Method and mechanism for managing and accessing static and dynamic data
US8099421B2 (en) File system, and method for storing and searching for file by the same
Evangelidis et al. The hB-tree: A multi-attribute index supporting concurrency, recovery and node consolidation
EP0437159B1 (en) Method for identifying documents having a particular attribute using a vector relational characteristical object
JP5152877B2 (ja) 文書ベースシステムにおける文書データ記憶方法およびその装置
Ooi Spatial kd-tree: A data structure for geographic database
Ramamohanarao et al. Recursive linear hashing
US7310719B2 (en) Memory management tile optimization
Hammer et al. Data structures for databases
Freeston A well-behaved file structure for the storage of spatial objects
JPH08235040A (ja) データファイル管理システム
JPH09305622A (ja) 文書検索機能を有するデータベース管理方法およびシステム
Norvag The Vagabond temporal OID index: An index structure for OID indexing in temporal object database systems
Henrich Adapting a spatial access structure for document representations in vector space
Song et al. Managing frequent updates in R-trees for update-intensive applications
KR20010109945A (ko) 비공간검색조건이 포함된 케이-최근접 질의를 위한알에스트리구조 및 점증적 최근접 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051212

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060313

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060612

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060807

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060815

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090825

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100825

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110825

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110825

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120825

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130825

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term