JP2000517448A - データベース・システム及びn次元データセットの編成方法 - Google Patents

データベース・システム及びn次元データセットの編成方法

Info

Publication number
JP2000517448A
JP2000517448A JP10512170A JP51217098A JP2000517448A JP 2000517448 A JP2000517448 A JP 2000517448A JP 10512170 A JP10512170 A JP 10512170A JP 51217098 A JP51217098 A JP 51217098A JP 2000517448 A JP2000517448 A JP 2000517448A
Authority
JP
Japan
Prior art keywords
area
cube
data
tree
stored
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
JP10512170A
Other languages
English (en)
Inventor
ルドルフ バイア
Original Assignee
ルドルフ バイア
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 ルドルフ バイア filed Critical ルドルフ バイア
Publication of JP2000517448A publication Critical patent/JP2000517448A/ja
Pending 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/2264Multidimensional index structures
    • 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

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)【要約】 本発明は、データベース・システム及び多次元データ・ストックを編成するための方法に関する。上記データベース・システムは、計算装置、主メモリ及び特に周辺メモリ装置を備える。所与の記憶容量を持つ周辺メモリ装置のメモリ・ページ上の多次元立方体内に存在するデータ・ストックを索引し、記憶するために、連続したサブ立方体を、それぞれが所与の記憶容量を持つ複数のメモリ・ページの一つ上に記憶することができるある量のデータ対象物を含む、複数の領域を形成するために結合できるようになるまで、すべての次元において上記多次元立方体は、サブ立方体に反復して分割される。データ対データ対象を編成し、挿入し、削除し、探索する本発明の方法は、アクセス時間を改善し、それにより、オンライン・アプリケーションでの使用に適する、「FB木]として周知の動的データ構造の形に設計される。

Description

【発明の詳細な説明】 データベース・システム及びn次元データセットの編成方法 本発明は、データベース・システム、及びn>1のn次元立方体内に存在する データセットの編成方法に関する。 いわゆるB木(又は、B*木又はプレフィックスB木)は、磁気ディスク・メ モリのような大容量メモリで、一次元の複数のボリュームのデータを編成するた めのデータ構造として周知のものである。簡単な探索木上のB木のデータ構造は 、より短い探索時間で、データにアクセスすることができるという利点を持つ。 あるデータの位置を特定するのに要する探索時間は、nノードを持つ簡単な探索 木の場合、少なくともlog2(n)ステップを含む。それ故、1,000,0 00のノードを持 アクセス動作が必要になるだろう。平均アクセス時間が0.1秒であると仮定し た場合、一つのノードを探索するのに要する時間は2秒である。上記数値は、実 際の動作の場合には長すぎる。B木のデータ構造の場合には、ディスク・アクセ ス動作の数は、一つのノードではなく、主メモリへの一つのノードに割り当てら れた磁気ディスクの全セグメントを転送し、このセグメント内を探索することに より、ディスク・アクセス動作の回数が少なくなる。例えば、B木を、それそれ が7ノードの領域に分割し、上記一つの領域が、各ディスク・アクセス動作によ り主記憶メモリに転送された場合には、一つのノードを探索するためのディスク ・アクセス動作は、最大6であったものが最大2に低減する。ノードが1,00 0,000ある場合には、それ故、log8(1,000,000)=7アクセ ス動作だけですむことになる。実際には、探索木は、通常、28−1から210− 1の大きさの部分的な領域に分割される。255ノードの大きさの領域の場合に は、1,000,000のノードを持つ木 アクセス動作を必要とする。そのため、ある所与の数値を探索するのに必要な時 間は、約0.3秒ですむ。上記ディスク・アクセス動作と比較すれば、主メモリ の255のノードを持つある部分的領域内での探索時間は無視することができる 。B木は、すべての葉が同じレベルに位置する垂直方向にバランスのとれた木で ある。 いわゆるdd木は、1984年に、シュプリンゲル・ハイデルベルグ社が発行 した、K.メルホンの「多次元探索及び計算上の幾何学」に記載されているよう に、多次元データセットを編成するためのものとして周知のものである。dd木 の場合には、主として三つの問い合わせ、すなわち、点問い合わせ、領域問い合 わせ及びいくつかの間隔が、(−無限、+無限)として与えられる問い合わせを 行うことができる。しかし、dd木のデータ構造の場合には、点問い合わせの場 合だけに高速なアクセスをすることできるだけである。何故なら、この場合には 、木の一つの経路だけを探索しさえすればよいからである。他の問い合わせの場 合には、木全体を探索しなければならない場合もでてくる。さらに、dd木は靜 的な木である。すなわち、編成対象の目的とするボリューム全体を、dd木をセ ットアップする前に知っておかなければならない。しかし、実際の大部分のアプ リケーションの場合、対象のボリュームは動的なものである。すなわち、木全体 を最初からセットアップしないでも、任意の順序で任意の時間に対象物を木に挿 入したり、又は削除しなければならない場合がでてくる。さらに、dd木は、主 メモリのアプリケーションだけに適している木で、非常に大量のデータを記憶す る必要がある周辺メモリには適していない。 1984年3月付のACM TODS、9巻、1号掲載のニベルケルト他の「 グリッド・ファイル」には、点及び領域に対する問い合わせが、索引構造、いわ ゆるグリッドに基づいて行われる、多次元データを編成 するための、いわゆる、グリッド・ファイルルが記載されている。このデータ編 成を使用すれば、点及び領域問い合わせを高速探索することができるけれども、 その手順は靜的手順であり、そのため、データ対象物が動的に挿入又は削除され る度に、全索引構造を完全に正規の手順で再編成しなければならない。それ故、 この方法は、多くのアプリケーション、特にオンラインのアプリケーションには 適していない。 いわゆるR木は、A.グットマンの1984年の、データ管理に関する国際会 議の議事録、ACM SIGMODの47−57ページ掲載の「空間探索用の動 的索引構造」に記載されているように、多次元データを編成するためのデータ構 造として周知である。いわゆる地球データベース用に主として使用される上記木 は、B木のように垂直方向にバランスがとれている木で、対象物を動的に挿入及 び削除することができる。しかし、問い合わせに対しての高速なアクセス時間は 保証されない。何故なら、ある状況の下では、ある問い合わせに答えるために、 対応する木の任意の数の経路、極端な場合には木全体を探索しなければならない からである。その結果、これらR木は、大部分のオンラインのアプリケーション には適していない。 多次元データセットを編成するために、現在実際に最も広く使用されている方 法は、元の複数の一次元B木に基づく方法である。この場合、一本のB木は、そ れぞれの場合、スタート・データセットの各次元に対して使用され、その結果、 n次元のデータセットの領域問い合わせは、n本のB木によりサポートされる。 ある領域問い合わせには、それ故、すべての対象物は、その数値が、その次元に 対する問い合わせに指定されている、間隔に位置する各次元に対する周辺メモリ から入手される。これらデータ対象物は、対応する次元でヒット数を形成する。 必要な応答セットを決定するためには、すべての次元のヒット数の一組の挿入を 計算しなければならないが、その場合、通常、これら組の分類を最初行 う必要がある。データ対象物を挿入又は削除する場合には、n本のB木も、探索 し必要に応じて修正しなければならない。 それ故、本発明の目的は、改善されたアクセス時間により、特にオンラインの アプリケーションで使用するのに適していて、データ対象物を動的に挿入又は削 除することができる、データベース・システム及びn次元のデータセットを編成 するための方法を提供することである。 本発明によれば、データベース・システムは、この目的を達成するめに、請求 項1記載の特徴を持つ。本発明のデータベース・システムは、計算装置、主メモ リ及び特に周辺メモリ装置であるメモリ装置を備える。本発明の基本的アイデア は、上記計算により上記データセットを索引し、記憶するために、すべての次元 において多次元立方体をサブ立方体に反復して繰り返し分割するために、編成対 象の多次元データセットを多次元立方体に設置することである。上記分割は、連 続しているサブ立方体を、それぞれが、特定の周辺メモリ装置の、所与の記憶容 量を持つメモリ・ページの一つ上に記憶することができる、多数のデータ対象物 を含む領域に結合することができるまで、非常に多くの回数反復して行われる。 連続サブ立方体の複数の領域が結合された場合、上記複数の領域も、また連続し ていて、その結果、上記複数の領域は、一次元の構造体を形成する。それ故、本 発明によれば、データ対象物の挿入又は削除が行われた場合、対象物と一本の木 のような一つのデータ構造体を修正するだけですむ。 本発明の一実施形態の場合、所与の記憶容量を持つ、あるページ上のある領域 のデータ対象物の記憶は、ポインタを、上記メモリ・ページ及び領域の境界を示 すアドレスに割当てながら行われる。それ故、記憶対象の各領域は、上記領域境 界を示す明確なアドレス、に割り当てられ、その上に対応する領域を記憶してい る、上記メモリ・ページを指しているポインタが記憶される。このようにして、 上記領域及び上記領域に含 まれるデータ対象物の位置決定は、問い合わせ及びデータ対象物の挿入及び削除 のような、編成ルーチンで簡単に行われる。 本発明の他の実施形態の場合には、上記ポインタ及び上記アドレスは、B木、 B*木又はプレフィックスB木に記憶されていて、その結果、アドレス探索の場 合には、上記アドレスに割り当てられ、必要な領域のメモリ・ページを指してい るポインタにより、必要な領域を識別するために、高速で行うことができる簡単 な探索をB木で行うことができる。 本発明の他の実施形態の場合には、データ対象物自身は、B木、B*木又はプ レフィックスB木の葉ページに記憶される。 本発明の好適な実施形態の場合には、領域境界を示すアドレスは、その領域を 形成している最後のサブ立方休上のデータからなる。アドレスが、領域の各分割 段階内に含まれる、サブ立方体の数についてのデータを含むデータベース・シス テムである場合、非常に有利であることが分かっている。それ故、その領域内に 完全に含まれる最後のサブ立方体も、また上記アドレス・データにより明確に指 定できる場合には、一つの領域をはっきりと指定することができる。この場合、 上記領域の始まりは、前の領域を形成している最後のサブ立方体上のアドレス・ データにより与えられる。 本発明の主題である目的をさらに達成するために、請求項8記載の機能を持つ 、n>1のn次元立方体内に存在するデータセットを編成するための方法が提案 されている。多次元データセットを索引し、記憶するために、本発明の方法の場 合には、上記データセットは、n>1のn次元立方体に収容される。この立方体 は、その全体に、上記データセットのすべてのデータ対象物を含む、スタート領 域を形成する。存在するデータ対象物の数が、あるメモリ・ページの所与の記憶 容量に対応するデータ対象物の数より小さいか、等しい場合には、上記スタート 領域が一つのメモリ・ページ上に記憶される。そうでない場合には、上記スター ト領域は、分割アドレスに沿って分割されるが、その場合、二つの新しい部分領 域が、データのほぼ中心に沿って発生するように、上記分割アドレスが選択され る。上記各部分領域は、その後、前と同じ方法で、スタート領域により処理され る。すなわち、それぞれの場合、部分領域内に含まれるデータ対象物の数が、決 定され、あるメモリ・ページの所与の記憶容量に対応する数と比較される。デー タセットが、所与の記憶容量のそれに対応する数より大きくない場合には、対応 する領域は、あるメモリ・ページ上に記憶され、そうでない場合には、データの 中心に沿って再び分割され、上記プロセスが新たにスタートする。 都合のよいことに、ある領域又は部分領域のデータ対象物は、対応する領域に 割り当てられたあるアドレス、及び上記アドレスに割り当てられ、記憶したデー タ対象物を含む、メモリ・ページを示すポインタの記憶と平行して記憶される。 平行に記憶されるアドレスとしては、都合のよいことに、一つの領域の終わり及 び他の領域の始まりを示す分割アドレスを使用することができる。 本発明の一実施形態の場合には、アドレス及びポインタは、B木、B*木又は プレフィックスB木に記憶される。この時、それぞれの場合、複数のアドレスが 連続アドレスで指定され、その領域のデータ対象物は、それぞれ、所与の記憶容 量のメモリ・ページ上に記憶される。 本発明の主題である上記目的をさらに達成するために、請求項11記載の機能 により、複数の領域に分割され、特定の周辺メモリ装置の所与の記憶容量のメモ リ・ページ上に記憶された、n>1のn次元のデータセットに、データ対象物を 挿入するための方法が提案されている。都合のよいことに、記憶されたn次元の データセットは、上記の本発明の方法により索引され、記憶されたデータセット である。本発明によれば、データ対象物及び、その上にこの領域を記憶している メモリ・ページを含むn次元のデータセットは、挿入対象のデータ対象物の座標 により決 定される。その後、このメモリ・ページ上に記憶したデータ対象物がカウントさ れる。記憶したデータ対象物の数が、メモリ・ページの所与の記憶容量に対応す る数より小さい場合には、挿入対象のデータ対象物は、同様に、このメモリ・ペ ージ上に記憶される。そうでない場合には、その分割アドレスに沿ってその領域 を分割することにより、第一及び第二の部分領域が形成されるように、このメモ リ・ページ上に記憶した領域に対して、一つの分割アドレスが選択される。その 時、それぞれの場合、所与のメモリ容量に対応するデータ対象物のほぼ半数以下 が、上記部分領域に含まれる。その後、その内部に、そのデータ対象物の座標を 含む部分領域に、上記データ対象物が挿入され、その場合、第一の及び第二の部 分領域は、それぞれ、一つのメモリ・ページ上に記憶される。 本発明によれば、それ故、データ構造体全体を修正又は新しく生成しないでも 、データ対象物を所与のデータ構造体へ挿入することができる。新しいデータ対 象物を挿入したため、挿入を行った領域を、もはや一つのメモリ・ページ上に記 憶することはできない。上記領域は さらに二つの領域に分割され、それにより 、さらに二つ領域に分割される対応する領域、又は分割により新しく生成した部 分領域だけを修正し、新しく記憶しさえすればよい。 都合のよいことに、メモリ・ページの位置の特定は、B木、B*木又はプレフ ィックスB木に記憶され、メモリ・ページに割り当てられたアドレス及びポイン タによるデータ対象物を挿入するための、本発明の方法により行われる。このよ うにして、必要なメモリ・ページの位置の特定を、特に簡単に高速で行うことが できる。従って、それぞれの場合、上記第一及び第二の部分領域に割り当てられ たアドレス及びポインタにより、分割領域の前のポインタ及びアドレスを置き換 えながら、新しく生成された部分領域を記憶すれば、非常に有利であることが分 かっている。この場合、例えば、分割アドレスを、第一の部分領域に対する制限 アドレスとして使用することができ、分割領域の上記制限アドレスを第二の部分 領域用に使用することができる。 領域を、それぞれの場合、連続アドレスで指定し、その領域のデータ対象物を 、それぞれの場合、所与の記憶容量のメモリ・ページに記憶して、アドレス及び ポインタを、B木、B*木又はプレフィックスB木に記憶すれば、非常に有利で あることが分かっている。 本発明の主題である目的をさらに達成するために、請求項15記載の機能によ りデータ対象物を削除する方法が提案されている。従って、削除対象のデータ対 象物の座標により、データ対象物及びその上にその領域が記憶されているメモリ ・ページを含む、n次元データセットのその領域が決定され、削除対象の対象物 が、このメモリ・ページから削除される。従って、このメモリ・ページが記憶し ているデータ対象物の数が決定され、記憶したデータ対象物の数が、メモリ・ペ ージの所与の記憶容量に対応するほぼ半分より少ない場合には、上記領域は、そ の二つの隣接する領域の一方を併合する。その後、合併装置により新しく生成さ れた、上記領域内に存在するデータ対象物の数が決定される。この数が、メモリ ・ページの所与の記憶容量に対応する数より小さい場合には、その領域が一つの メモリ・ページ上に記憶され、そうでない場合には、分割アドレスに沿った分割 により、それぞれ、分割対象の領域内に含まれるデータ対象物のほぼ半分を含む 第一の部分領域及び第二の部分領域が生成するように、分割アドレスが上記領域 に対して選択される。その場合、上記部分領域は、それぞれ、一つのメモリ・ペ ージ上に生成され、記憶される。 都合のよいことに、この方法の場合もまた、メモリ・ページの位置の特定は、 B木、B*木又はプレフィックスB木に記憶され、メモリ・ページに割り当てら れたアドレス及びポインタにより行われる。 本発明の主題である目的をさらに達成するために、請求項17記載の 機能による、所与のn次元問い合わせエリアに基づいて、データ問い合わせを実 行するための方法が提案されている。従って、n次元のデータセットを含む、所 与の問い合わせエリアの挿入の最も低い交点及び最も高い交点の座標は、その内 部に挿入の最も低い交点が存在する領域として決定される。その後、その上に決 定された領域を記憶したメモリ・ページが決定され、問い合わせエリアを含む、 一組の挿入を形成するこのメモリ・ページ上に記憶された、すべてのデータ対象 物が決定される。決定したデータ対象物は、その後、出力される。その後で、シ ーケンスの最後に決定された領域のサブ立方体が決定され、上記サブ立方体は問 い合わせエリアと交差し、問い合わせエリアの最も高い交差点が、このサブ立方 体内にある場合には、データ問い合わせは終了する。そうでない場合には、同じ 平面の、同じ次に高い立方体の次の問い合わせエリアと交差するサブ立方体が決 定され、新しく決定したサブ立方体含む問い合わせエリアの最も低い交点の座標 が決定され、その時点で、サブ立方体が決定された場合には、最も低い交点を含 む領域の決定と共に、プロセスが続行する。そうでない場合には、次に高い立方 体の平面の、問い合わせエリアと交差する次のサブ立方体が決定され、新し組立 体決定した立方体のサブ立方体と一緒に、同じ平面の、問い合わせエリアと交差 する同じ次に高い立方体の次のサブ立方体が決定される。次に高い立方体の平面 のサブ立方体の決定が行われない場合には、次に高い立方体が、上記サブ立方体 の役割を果たし、その後、この平面及び問い合わせエリアと交差する、同じ次に 高い立方体の次のサブ立方体が決定される。それ故、本発明によれば、すべての 関連する次に高い立方体のサブ立方体、及びその次に高い立方体は、問い合わせ エリアとのデータ対象物の交差セットについて、逐次チェックされる。 本発明の実施形態を図面に示し、以下に図面を参照しながら本発明を詳細に説 明する。 図1は、簡単な二次元のデータセットを含み、同じ大きさの四つのサブ立方体 に分割された二次元立方体である。 図2は、簡単な三次元のデータセットを含み、同じ大きさの八つのサブ立方体 に分割された三次元立方体である。 図3.1−図3.4は、二次元立方体内のサブ立方体のアドレス割当てを示す 。 図4は、三次元立方体内のサブ立方体のアドレス割当てを示す。 図5は、アドレス及びポインタの記憶を示す。 図6.1−図6.2は、データ対象物を挿入するために、一つの領域を分割す る際のアドレス及びポインタの修正及び記憶を示す。 図7は、簡単なデータセットを含む複数の領域に分割された、二次元立方体で ある。 図8は、二次元の場合の問い合わせエリアである。 図9は、問い合わせエリア内にサブ立方体を含む、図8の問い合わせエリアで ある。 図10は、問い合わせエリアに存在し、問い合わせエリアと交差している、複 数のサブ立方体を含む、図8及び図9の問い合わせエリアである。 図11は、拡張対象物の例示としてのデータセットである。 n次元のデータベースを編成する場合には、本発明により、その内部に編成対 象のデータ対象物が位置するデータ空間は、n次元の立方体であるか、又は一つ の立方体で囲まれているかである。この場合、nは、n>1の任意の自然数であ る。この立方体は箱型立方体と呼ばれる。 上記箱型立方体は、その各寸法を二分することによって、同じ大きさの2nの サブ立方体に分割される。これらサブ立方体は1−2nから決定される順番で番 号がつけられる。図1は、左頂部から左から右にまた上から下へ番号がつけられ る、同じ大きさの22=4のサブ立方体に分割 された、二次元データ空間の場合の正方形の二次元立方体である。 図2は、同様に番号が付けられた、同じ大きさの23=8のサブ立方体を持つ 三次元データ空間の箱型立方体である。この場合、後の左の部分からスタートし て、左から右、上から下、背後から前部に番号がつけられている。従って、3の 番号を持つサブ立方体は、図2の左背後に位置していて、見ることができない。 図1及び図2に示すスタート立方体の各サブ立方体は、同じ方法により、1か ら2nの番番号を持つ2nのサブ立方体に分割することができる。この分割は、必 要な回数だけ繰り返して(反復して)継続的に行うことができる。本発明を実際 に適用する場合、この分割プロセスは、一緒に位置するサブ立方体により、領域 を形成することができるまで反復して行われる。その領域のデータ対象物の数は 、所与の記憶容量のメモリ・ページ上に記憶される。 スタート立方体の側部の辺の長さが1である場合には、s回分割を行った後で は、サブ立方体の辺の長さは(1/2s)*1となる。立方体を識別するために 、これら立方体には、s段階の対応する分割に従って番号がつけられる。従って 、スタート立方体の段階は0であり、図1及び図2に示すサブ立方体の段階は1 である。 エリアAは、下記のように生成されるスタート立方体の特殊なサブ空間である 。 ・段階1において、第一のa1サブ立方体は、上記エリアaに完全に属する。こ の場合、0<=a1<2n。 ・段階2において、第一の段階の上記サブ立方体a1+1の第一のa2サブ立方体 は、上記エリアAに属する。 ・段階iまで同じプロセスが行われ、上記段階iにおいて、i番目の段階のサブ 立方体ai-j+1の第一のaiサブ立方体は、エリアAに属す。 このようにして形成されたエリアAは、数字a1、a2、a3...ai のシーケンスによりはっきりと表示される。この数字のシーケンスは、エリアA の明確なアドレス・アルファ(A)と呼ばれる。このことは、二次元の場合に対 する図3.1−3.4により、すなわち、n=2により表される。 図3.1は、同じ大きさの四つのサブ立方体に分割された二次元立方体である 。上記サブ立方体はさらに二回分割される。図3.1の灰色の陰をつけた部分は 、アルファ(A)=0.3というアドレスを持つエリアAを形成する。何故なら 、段階1における第一の二次元サブ立方体は、上記アドレスの第一の位置におい て、番号0で示すAに完全に属していないからである。しかし、このサブ立方体 の段階2の第一の三つのサブ立方体は、上記アドレスの第二の位置において、番 号3で示すAに属している。 図3.2は、エリアBを形成する他の灰色の陰をつけた部分を持つ、図3.1 の立方体である。この立方体は、アルフア(B)=132というアドレスを持つ 。何故なら、第一のサブ立方体は、エリアB(第一の位置における番号1)内に 、完全に含まれているからである。しかし、第二のサブ立方体の段階2の第一の 三つのサブ立方体だけが、(第二の位置における番号3に)含まれ、段階2の第 四のサブ立方体の段階3の二つのサブ立方体だけが、(第三の位置における番号 2に)含まれる。 図3.3は、また、アルファ(C)=2331のアドレスを持つ、エリアCを 形成する異なる灰色の陰を付けた部分を含む、図3.1及び3.2の二次元サブ 立方体である。 図3.4においては、全部の(灰色の陰をつけた)二次元サブ立方体が、アル ファ(D)=4のアドレスを持つエリアDを形成する。この特別のケースには、 例えば、アドレス(アルファ(D)=エプシロン)として、エプシロンが割り当 てられる。 上記アドレス割当てをさらに説明すために、図4は、アルファ(E) =541を持つ、三次元データセット立方体のエリアEを形成しているセクショ ンを示す。 一つの領域に依然として属するサブ立方体は、各分割段階において、係数2n により指数数的に小さくなる。このようにして、アドレスは依然として非常に短 い。例えば、バイエルン州の地図の一つの実行の場合、その最も小さなサブ立方 体の面積が8x8メートルである一つのエリアは、約32ビットの長さのアドレ スを持つ。 上記エリアは、セット理論により含まれている状態により、厳格に直線状に順 番がつけられる。エリアBの空間内に含まれるエリアAの場合には、下記のよう に表すことができる。 Bに含まれるA さらに、その領域内に属するアドレスは、辞書編集の場合の類似語のように、 アルファベット順に順番がつけられる。例えば、あるアドレス、αが、アドレス βより小さい場合には、上記アドレスは下記のように表すことができる。 α<<β それ故、例えば、下記のようになる。 132<<2331 及び 2331<<32 上記エリア及びアドレスは、下記の関係が適用されるような方法で編成される 。 α<<βである場合には、領域(α)は正確に領域(β)に含まれる。 すでに説明したように、上記領域は直線的に順番がつけられているので、その 違いが、常により大きい領域とより小さい領域との間に形成される。アドレスα がアドレスβより小さい場合には、すなわち、α<<βである場合には、領域r eg(α、β)は、領域(β)及び領域(α)の間の違いとして定義される。こ れは、下記式と同じ意味を持つ。 reg(α、β)=領域(β)−領域(α) 複数の領域は、所与のn次元空間内に非常に特殊なパターンで密集するという 特性を持つ。図7は、二次元立方体が複数の領域に密集している一つの例である 。それ故、01で示す第一の領域は、正確に全体の立方体の第一のサブ立方体の 第一のサブ立方体を含む。023で示す第二の領域は、第一のサブ立方体の完全 な第二のサブ立方体、及び以降の第三のサブ立方体の三つの第一のサブ立方体を 含む。図7においては、この領域は白い色をしている。それ故、上記領域は、ア ドレス01を持つサブ立方体の後から始まり、アドレス023のサブ立方体のと ころで終わる。これら二つのアドレスを与えることにより、上記のルール、すな わち、reg(01、023)=領域(023)−領域(01)がはっきりと定 義される。 従って、図7のサブ立方体内に描いた他の領域は、個々の領域内に示すアドレ スを使って形成することができる。この場合、接続領域を形成している複数のサ ブ立方体が、番号付け及び表示方法のために、接続していないように表示される 可能性はきわめて高い。これは、一つの領域が、その内部で番号が2から3、又 は4から1に飛んでいる複数のサブ立方体からなる場合に、丁度そのままあては まる。図7においては、例えば、それは白で描かれ、またすでに説明した領域r eg(01、023)に当てはまる。何故なら、ここでは、サブ立方体02及び 一方のサブ立方体03の複数の部分が一つの領域を形成しているが、02−03 への番号付けの変化があるために、表示が飛んでいるからである。これは、また 、例えば、領域reg(01、023)に隣接する、領域reg(023、10 1)の場合と同じである。この場合、前者は、サブ立方体04からサブ立方体1 1に延びる。 n次元立方体の上記領域は、特に、周辺コンピュータ・メモリに、対象物を記 憶する際に中心的役割を演じる。これらメモリは、その内容が、 メモリ・アクセス動作による入力/出力手順で、コンピュータのランダム・アク セス・メモリに集められる、いわゆるページ分割されるか、又はそこから周辺コ ンピュータのメモリに書き戻される。上記複数の領域は、一つの領域内に含まれ ているか、又は交差している記憶対象のデータ対象物を周辺コンピュータのメモ リの一つのページ上に記憶することができるように、下記のように設計される。 領域reg(α、β)に属する上記メモリ・ページは、例えば、page(α、 β)により指定することができる。 すべてのコンピュータ・アプリケーションの場合、空間の解像度、すなわち、 最小であって、しかも識別することができる空間素子が本質的な役割を演じる。 二次元の場合には、上記空間素子は、また(画素にちなんで)ピクセルとも呼ば れ、n次元の場合には(容積素子にちなんで)ボクセルと呼ばれる。一つの次元 当たりの識別可能な素子の数は、ピックスと呼ばれる。n次元空間内の一点の直 角座標が(x1、x2、...xn)である場合には、i=1、2、...nに対 して、式0<xi<pixが適用される。 その最後のサブ立方休が、点(xi、x2、...xn)に丁度達しているエリ アは、明確に指定でき、(x1、x2、...xn)から、容易にまた明確に計算す ることができるあるアドレスを持つ。この関数又は計算規則は、alpha(x1 、x2、...xn)により識別できる。逆に、一つの領域のアドレスαから、 依然としてこの領域に属している、最後の点の直角座標を計算することができる 。この関数は、cart(α)で識別できる。alpha及びcartは、相互 に逆関数であり、すなわち、下記式のようになる。 cart(alpha(x1、x2、...xn)=(x1、x2、...xn) alpha(cart(α))=α 上記のように、本発明のデータ編成においては、n次元の空間は、一組のエリ アにより、立方体の形をした複数の領域に完全に分割される。この場合、上記エ リアのアドレスは、辞書編集の場合のように分類され、一つの領域は、二つの連 続しているエリアの間の違い、又はそれらエリアのアドレスにより指定される。 可能な最小のエリアは、「データ・ユニバース」の最小のピクセルであり、アド レス00...01を持つ。本明細書においては、このアドレスはシグマで表す 。二次元の場合には、最大のアドレスは4であり、n次元の場合には、最大のア ドレスは2nであり、上記のように、本明細書においては、エプシロンで表す。 上記エリアの分類したアドレスは、本発明により、従来のB木、B*木又はプ レフィックスB木に記憶される。都合のよいことに、B木においては、(参照と も呼ぶ)一つのポインタは、その上に、領域reg(αi-1、αi)のデータ対象 物が記憶されている、周辺メモリのそのページ上に、領域reg(αi-1、α1 )を正確に指定している、二つの連続したアドレス、αi-1及びαiの間に記憶さ れる。このポインタはPiで示される。 図5は、この図の表示の一番上の平面に、アドレスとポインタが、それぞれの 場合交互に記憶されている上記記憶手順を示す。それそれが一つのポインタに割 り当てられた上記二つのアドレスにより、一つの領域の境界が、そのデータ対象 物に与えられ、上記二つのアドレスの間に位置するポインタが参照する。それ故 、図5の例の場合には、その内部において、それそれの場合、アドレスによりポ インタの左及び右に形成される、領域reg(αi-1、αi)のデータ対象物(こ の場合は、データ対象物の識別子)が位置する、メモリ・ページに引かれた矢印 により、ポインタPiは指定を行う。 上記ケースは、アドレス用のB*木に関連し、この木においては、ポインタpi は、いわゆる葉ページを指す。データ対象物それ自身又はそ の識別子は、これら葉ページ内に位置している。この場合、後者のケースでは、 データ対象物それ自身は、他のページ上で復元され、その識別子により、周辺メ モリで発見することができる。 上記の本発明のデータ構造体は、以下の説明においては、FB木と呼ばれる。 以下の説明においては、本発明の方法を、n次元空間内の点対象物の編成の一 例について説明する。一つの点対象物Pは、その直角座標(xi、x2、...xn )により与えられる。このことから、アドレスβ=alpha(xi、x2、.. .xn)が計算される。上記点Pは、下記の特性を持つはっきりと指定された領 域reg(αj-1、αj)に存在する。 αj-1<<β<<αj この領域は、上記ページpage(αj-1、αj)への参照Pjが発見される、 FB木における木探索により決定される。点P、すなわち、その識別子は、その 座標(x1、x2、...xn)と一緒に、周辺メモリのページpage(αj-1、 αj)上に記憶される。別の方法としては、上記点の識別子だけを、page( αj-1、αj)上に記憶することもでき、点それ自身、すなわち、その座標及びそ れに関する他の情報を他のページ上に再び回復することもできる。 周辺メモリのページは、ある所与の記憶容量だけを持ち、そのため、ある数M の対象物だけを受け入れることができる。他の対象物をある領域内に挿入しなけ ればならないのに、その領域に属するページが、それ以上対象物を受け入れるこ とができない状態になったら、直ちに、そのページの内容を二つのページに分割 し、その領域をそれに応じて二つの領域に分割しなければならない。 以下の説明においては、最初に上記領域の分割について記載する。領域reg (αj-1、αj)及び関連ページpage(αj-1、αj)につい て考えてみよう。領域の定義から、下記のようになる。すなわち、αj-1<<αj となる。二つのエリア・アドレスαj-1、αjの間に、βが存在する特性を持つ分 割アドレスβを選択し、領域reg(αj-1、αj)をほぼ中央で分割する。すな わち、対象物のほぼ半分は、領域reg(αj-1、β)に含まれ、他の半分は領 域(β、αj)に含まれる。その後、上記二つの領域reg(αj-1、β)及び領 域reg(β、αj)は、それそれ、1/2M+eps対象物以下の対象物を含む。 この場合、epsは、小さな所与の数であり、例えば、Mの約1/10とするこ とができる。 従って、対象物は、page(αj-1、αj)から、二つのpage(αj-1、 β)及びpage(β、αj)に分割される。この場合、上記二つのページの一 方を元のpage(αj-1、αj)と同じものにすることができる 領域reg(αj-1、αj)を分割した場合には、図6.1及び図6.2のFB 木を修正することができる。図6.1は、記憶したアドレスαj-1、αj及びαj+ 1 、及び上記アドレスの間にポインタPj及びPj+1を含む、平面(図面の表示の 一番上のところ)を持つFB木のスタート構造体である。この場合、ポインタPj は、ページpage(αj-1、αj)を指し、ポインタPj+1はpage(αj、 αj+1)を指す。ページpage(αj-1、αj)を分割した後には、図6.2に 示す木構造体ができる。この場合、ポインタPjとアドレスαjとの間の図面の次 に高い平面に、分割アドレスに対応するアドレスβ、及び新しいメモリ・ページ page(β、αj)を参照するポインタP’がすでに挿入されている。前のポ インタPjは、修正シート・ページpage(αj-1、β)を指し、変化していな いポインタPj+1は、同様に、変化していないページpage(αj、αj+1)を 指す。 次に高いノードにβ及びP’を挿入し、その挿入により、多すぎるア ドレス及びポインタが存在する結果になった場合には、次に高いページも分割し なければならない場合もでてくる。しかし、その後、これら分割手順は、従来技 術において周知のB木で正確に通常どおり実行される。現在のデータ・ユニバー ス内へ対象物を挿入した場合の、上記反復分割手順により、周知のB木の成長と 非常によく似た成長をするFB木が生成される。 上記方法をさらに説明するために、以下に現在のデータ・ユニバースからのデ ータ対象物の削除と、上記削除を行った後の領域の適応について説明する。 点対象物(x1、x2、...xn)を再び削除しなければならない場合には、 挿入手順のように、最初、上記点か位置している領域及び関連メモリ・ページが 決定される。結果として、上記ページの対象物の数が、1/2M−epsより少な くなった場合には、上記領域は、二つの隣接する領域の一方と併合される。この ように生成された領域が含む対象物の数が多すぎる場合には、すでに説明したよ うに、上記領域は中央で再び分割される。 一例として、領域reg(αj-1、αj)が、削除動作を行った後で十分な対象 物を含んでいない場合には、領域reg(αj-1、αj+1を形成するために、上記 領域を領域reg(αj、αj+1)と併合することができる。その後、領域reg (αj-1、αj)が含む対象物の数があまり多くなり過ぎた場合には、上記領域は 再び領域’reg(αj-1、β)及び領域reg(β、αj+1)に分割される。こ の場合、当然、適当なβを選択し、より多くの対象物が第一の領域内に含まれる ように、αi-1<<βと一緒に、下記の関係を適応しなければならない。 αi-1、<<β<<αi+1 一つの対象物が、領域reg(αj-1、αj)から削除されると、下記の三つの ケースが発生する。 ケース1:削除後に、領域reg(αj-1、αj)が、依然として少なくとも1/ 2M−epsの対象物を持っている場合。この場合、上記領域及び関連ページは 依然として存在する。 ケーズ2:領域reg(αj-1、αj)が、二つの隣接する領域reg(αj-2 、αj-1)又は領域reg(αi、αi+1)の一方と併合され、新しい領域reg (αi-2、αi)又は領域reg(αj-1、αi+1)とすることができる場合。 ケース3:ケース2のように、領域reg(αj-1、αj)が、最初、隣接する 領域と併合されるが、その後で、分割を行わなければならず、二つの領域reg (αi-2、β)及び領域reg(β、αi)又は領域reg(αi-1、β)及び領 域reg(β、αi+1)が生成される場合。 上記削除動作により、ある場合、隣接する領域を再び完全に併合することがで き、その結果、FB木は再び小さくなり、領域及びページの分割及びそれによる 成長の場合とは正反対の行動を示す。最後に、データ・ユニバースからすべての 対象物を削除した場合には、FB木は再び何にも含まなくなる。 本発明の方法をさらに説明するために、以下に点問い合わせへの応答について 説明する。 点問い合わせの場合には、それに対して、高さ又は温度又は株式取扱所の取引 の数値又は類似のもののような、追加情報を決定しなければならない点Pに対し て、直角座標(y1、...、yn)が与えられる。この追加情報は、上記点対 象物自身と一緒に記憶される。 最初に、上記点Pのアドレスppが、直角座標(y1、...、yn)から計 算される。上記点は、下記特性を持つはっきりと決定された領域reg(αi-1 、αi)に存在する。 αj-1<<pp<<=αi この領域及び上記領域に属するページpage(αi-1、αi)が、F B木の探索、及びそこに記憶されているポインタpにより発見され、検索される 。ページpage(αi-1、αi)上において、その後、点P(及び、当然、他の 点及びこの領域に属する対象物)に関する、完全で必要な情報の位置が特定され る。 本発明のFB木は、高さの点でB木のように、正確にバランスがとれているの で、木探索及び点Pの位置の特定を、時間O(logkN)で行うことができる 。 すべてのデータベース・システムの、一つの基本的な問い合わせタイプは、各 次元に関して一つの間隔が与えられる、いわゆるエリア問い合わせのタイプであ る。この場合、一つの次元に関する間隔データは、間隔(−無限、十無限)とし ては解釈されない。これら間隔の積により、問い合わせエリアを表すn次元の直 平行六面体が決定される。以下の説明において、この問い合わせエリアを問い合 わせボックスqと呼ぶ。 図8は、n次元の直平行六面体が長方形をしている、二次元の場合に対する例 示としての問い合わせボックスqである。図8の上記問い合わせボックスqの問 い合わせエリアは、最も低い数値(ローに対して1)に対する数値(qh1、q h2)、及び最も高い点(ハイに対してh)により与えられる。 エリア問い合わせへの応答は、上記問い合わせボックスq又はそれに交差する 点又は対象物の組である。 一般的なn次元の場合には、問い合わせボックスは、2*n値、qli及びq hiにより与えられる。この場合、iは、1、2、...、nであり、当然、上 記図8の例に従って、qli<qhiが適用される。(すべてのi値に対するqli =qhiに対しては、すでに処理済みの点問い合わせの特殊なケースが生じる。 ) それ故、上記問い合わせボックスの最も小さな点は、直角座標(ql1、ql2 、...、qln)を持ち、正確に指定された領域reg(αj -1 、αj)に存在する。この領域の位置を特定するために、最初に、最も小さい 点qの下記アドレスが計算される。 λ=alpha(ql1、ql2、...、qln) この動作は、周辺メモリにおける、何等のアクセス動作を必要としない主メモ リでの内部計算を示す。そのため、計算動作は無視できるほど簡単なものである 。 その後、下記特性を持つ領域reg(αj-1、αj)が決定される。 αj-1<<λ<<α3 この決定を行うには、FB木での探索を行う必要があり、その労力はO(lo gkN)である。この場合、O(logkN)ディスク・アクセス動作を必要とす る場合がある。この木探索の最後のページは、すべてのデータ対象物、又は領域 reg(αj-1、αj)に存在するか、又は交差している、完全なデータ対象物自 身の識別子を含むページpage(αj-1、αj)である。これらデータ対象物の 場合には、上記データ対象物が、問い合わせボックスqに交差しているかどうか について、個々に決定が行われる。その関連領域が問い合わせボックスと交差し ている場合(これは必要条件であるが、十分条件ではない)、上記データ対象物 は、qに交差しさえすればよいことに留意されたい。それ故、データ対象物の一 部は、問い合わせボックスq内に存在する。 発見された領域reg(αj-1、αj)は、上記のように、そのアドレスが順番 に並んでいるサブ立方体からできている。この場合、図7の領域reg(023 、101)は、例示としてのものであって、立方体024、04、101からな り、この順序に並んでいる。任意の領域が問い合わせエリアと交差している場合 には、当然、この領域のすべてのサブ立方体も、問い合わせエリアと交差する必 要はない。 問い合せエリアと交差している、領域reg(αj-1、αj)の最後のサブ立方 体のアドレスがは、βであると見なされる。さらに、βはB lという形をしているものと見なされる。この場合、lはβが位置する段階にお けるβの索引である。例えば、図7の領域reg(023、101)の場合には 、下記のようになる。 段階3における024の場合には、l=4 それ故、β=024は、B’lの形で表すことができる。この場合、β’=0 2であり、l=4である。この場合、アドレス表示のデジットの数が段階を表す 。 所与の領域reg(023、101)に含まれる、他の立方体04及び101 についても同じことがいえる。 段階2における04の場合には、l=4 段階3における101の場合には、l=1 l=0は発生しないことに留意されたい。何故なら、本発明のアドレス構造の 場合には、如何なるアドレスも0で終わることがないからである。 領域reg(αj-1、αj)が、上記のエリア問い合わせを終了した後で、問い 合わせエリアと交差する次の領域を発見しなければならない。そのために、問い 合わせボックスq、及びその内部にβ自身が含まれている、次に高い立方体と関 連して、立方体βの位置が考慮される。これは、その内部の立方体βと一緒に示 す、図8の問い合わせボックスを含む図9に図示してあるが、単に例示としての ものにすぎない。この場合、立方体βの次に高い立方体に属する、他の立方体は 点線で示してある。一つで、同じ次に高い立方体に属する、同じ段階のこれらの 点線で示すサブ立方体は、本明細書においては、兄弟サブ立方体と呼ぶ。それ故 、段階s−1の次に高い立方体の段階Sのすべてのサブ立方体は、兄弟サブ立方 体である。より低い指数lを持つ、同じ段階Sの一つのサブ立方体は、それ故、 より小さな兄弟サブ立方体となる。図7の例の場合には、サブ立方体023の大 きい兄弟サブ立方体は、サブ立方体024であり、 この場合、これら二つの兄弟サブ立方体は、同じ領域に存在しない。 エリア問い合わせの継続中、終了していないで、問い合わせボックスq内に存 在する領域reg(αj-1、αj)でまだ前に発見されていない次のデータ対象物 は、それ故、βのより大きい兄弟サブ立方体内、又はβの親のサブ立方体、又は βの他の先行項目に含まれる。 図10は、二次元の場合に対する形式β’2の立方体βに対する例示としての いくつかの可能な状況を示す。 立方体βのより大きな兄弟サブ立方体が、問い合わせボックスqと交差してい ない場合(図10の最後のケース)には、立方体βの親の立方体は、(より小さ な兄弟サブ立方体の前の探索により)まだ発見されていないか、しかし、問い合 わせボックスq内に存在することができる、それ以上の対象物を含んでいない。 このため、立方体βの親の立方体のより大きい兄弟サブ立方体を、それらサブ立 方体が、問い合わせボックスqに、交差しているかどうかをチェックするために 、調査を行わなければならない。交差していない場合には、アナログ的考慮に従 って、立方体βの祖父の立方体に切り替えたり、そのより大きい兄弟サブ立方体 が、問い合わせボックスqと交差しているかどうかをチェックする必要がある。 このようにして、最後に、全データ・ユニバースがカバーされ、問い合わせボッ クスq内のすべての対象物が発見される。 下記のことに留意されたい。すなわち、段階Sに立方体βが位置している場合 には、最大でs回親の立方体に切り替えることができ、問い合わせボックスqと 交差するために、それそれの場合、(その中の最大2n−1ある)そのより大き い兄弟サブ立方体をチェックすることができる。さらに、S<=ld(pix) で、親のノードへの切り替えの際、及び、それぞれの場合、問い合わせボックス qとの、より大きい兄弟サブ立方体の交差のチェックの際に、内部主メモリ計算 だけが行われる。それ故、入力/出力プロセス又はディスク・アクセス動作を必 要としな い。そのため、問い合わせボックスqと交差する次の立方体を発見するこの方法 は、非常に高速で、一つのエリア問い合わせの応答の際の全時間から見た場合、 無視することができる。 この方法により、問い合わせボックスqと交差する第一の立方体が決定された 場合、直ちに、問い合わせボックスqに交差している最も小さなピクセル(図1 0の小さな黒い正方形)の直角座標が計算される。上記正方形は下記のように作 られる。 一つの立方体が、その次元iに関して、数値ql又はqhに対する指定に基づ いて、xhi(最大座標)までのxli(最小座標)の広がりを持っているとしよ う。 この立方体が問い合わせボックスqに交差しない条件は、下記式により表され る。 存在する:i:xhi<qli又はxli>qhi この立方体の問い合わせボックスqと交差するための条件は、上記式の否定で ある。 存在しない:i:xhi<qli又はxli>qhi 又は、数学的ロジックの法則により、 全部のiに対して:xhi>qli及びxli<qhi それ故、問い合わせボックスqとの最小の交点spの座標は、i番目の次元に 関して下記のように作られる。 もし、xli>=qli、その場合、spi:=xli、そうでない場合、 spi:=qli それ故、交点spは、下記座標を持つ。 sp=(spi、SP2、...、spn) そのアドレスは、下記式により表される。 シグマ:=アルファ(spi、sp2、・・・・sPn) このステップまで、spを決定するための本発明の方法は、何等の入 力/出力手順、又は何等のディスク・アクセス動作を必要としなかったことに留 意されたい。 交点spに属する明確な領域を発見するためには、すでに説明したのと全く同 じアドレス、シグマに関する点問い合わせが必要になる。この点問い合わせは、 すでに分析したように、オーダーO(logkN)の時間的努力を必要とする。 しかし、そのため、エリア問い合わせ処理に応答する際に、問い合わせボック スqに実際に交差している、これら領域に対してだけコストが掛かることになる 。上記各領域の場合、上記コストはオーダ−O(logkN)であり、それ故、 r個の領域が、問い合わせボックスqと交差している場合には、全部でr*0( logkN)となる。 以下に、i=1、2、...nに対して座標qli及びqhiを持つ、n次元の 問い合わせボックスqに対する、エリア問い合わせに応答する方法を説明する。 以下に、一般的拡張対象物を編成することによる、本発明の方法を説明する。 一般的拡張対象物は、データ対象物の一つの重要なケースである。この場合、 例えば、図11に示すように、それは地図の湖に関する質問である。 拡張対象物Oは、まず、その次元に対応する軸平行の直平行六面体により囲ま れていて、上記直平行六面体は、その次元において、拡張対象物を丁度囲む程度 に小さく選択される。図11の例の場合には、上記拡張対象物は、湖とその湖を 丁度取り囲む二次元直平行六面体bb(=長方形)により図示されている。本明細 書においては、拡張対象物を囲む上記直平行六面体を境界ボックスと呼ぶ。 拡張対象物の場合、識別子Id(O)だけが、FB木に記憶される。この場合 、上記識別子の上記記憶は、数回行われ、その記憶は、拡張対象物と交差してい る各領域に対して行われる。拡張対象物自身は、離れた場所、他のメモリ・セク タ又はデータベースのFB木から記憶される。 一つの拡張対象物Oに対する境界ボックスは、ここでは、bb(O)と呼ばれる 。拡張対象物Oに対する識別子Id(O)は、拡張対象物Oと交差する各領域を 持つFB木に記憶される。この場合、拡張対象物Oは、境界ボックスbbと交差し ている領域とだけ交差することができることに留意されたい。これは必要条件で あって、本発明の方法をを実行するために、アルゴリズムを実質的に加速するた めに使用される十分条件ではない。 一般的拡張対象物Oを挿入する場合、最初に、関連境界ボックスbb(O)が計 算される。その後で、下記方法が実行される。 注:bb(O)と交差する領域Rを発見するために、bb(O)は、問い合わせボ ックスqと全く同じ方法で処理される。そうすることにより、下記の詳細なプロ セスが行われる。 拡張対象物Oを削除するためには、Oと交差することができるすべての領域を 発見するために、境界ボックスbb(O)が再び使用される。識別子ID(O)は 、上記領域内に含まれていて、拡張対象物(O)に実際に交差している関連ペー ジ上に記憶され、そのページから削除される。この場合も、すでに説明したよう に、領域及び関連ページを併合することができる。 それ故、本発明のデータベース・システム、及び多次元データを編成するため の方法を使用すれば、特に、多次元データ・セットへの、動的な追加マルチメデ ィア修正を行うことができる、本発明のデータ構造を持つ多次元データ・セット のデータに、高速で確実なアクセスをおこなうことができる。本発明によれば、 対象物を挿人又は削除するには、一本の木を修正するだけですむ。 問い合わせに応答する際には、本発明によるFB木は、下記の性能特性を示す 。この性能特性を達成するために、上記データセットの数値のPi%が、問い合 わせボックスqの問い合わせ間隔[qli:qhi]の、i番目の次元に関して存 在するものと仮定する。 それ故、下記に示すデータセットが、問い合わせボックスq内に存在する。 (p1%*P2%*...*pn%)*N qに交差するすべての領域が、q内に完全に含まれているわけではなく、qの 外側に延びている場合もあるので、問い合わせボックス内に存在するものより多 くの対象物を周辺メモリから取り出さなければならない。しかし、これら対象物 の数は、平均すると、q内に存在する対象物の二倍以下である。すなわち、*( p1%*P2%*...pn%)*N対象物である。 それ故、我々が行うのは、Nの一部の(従来技術の周知の方法におけるように )加算プロセスではなく、かけ算プロセスである。その結果は っきりとした改善が認められる。このことを簡単な計算例により示す。 p1=2%、p2=5%、p3=4%、p4=10%とすると、 Piの合計=21%=21*10-2 iの積=400*10-8=4*10-8=4*10-6 観察した全データ・ユニバースが、10,000,000対象物を含んでいる 場合には、(通常のデータベース・アプリケーションに対する、実際の、どちら かといえば小さなデータ・ユニバースの場合には)従来技術の場合、2,100 ,000対象物を周辺メモリから取り出してこなければならない。しかし、FB 木による新しい方法の場合には、2*107*4*10-6=80対象物だけです む。これは周知の従来技術と比較すると、約2,500の換算係数の改善である 。 当然のことであるが、本発明は、上記実施形態に制限されなず、当業者の範囲 内おいて他の実施形態も可能である。それ故、例えば、サブ立方体、及びサブ立 方体及び領域の構造体の番号付けは、本発明の範囲から逸脱しない限り他の方法 で行うことができる。
【手続補正書】特許法第184条の8第1項 【提出日】平成10年9月4日(1998.9.4) 【補正内容】 いわゆるR木は、A.グットマンの1984年の、データ管理に関する国際会 議の議事録、ACM SIGMODの47−57ページ掲載の「空間探索用の動 的索引構造」に記載されているように、多次元データを編成するためのデータ構 造として周知である。いわゆる地球データベース用に主として使用される上記木 は、B木のように垂直方向にバランスがとれている木で、対象物を動的に挿入お よび削除することができる。しかし、問い合わせに対しての高速なアクセス時間 は保証されない。何故なら、ある状況の下では、ある問い合わせに答えるために 、対応する木の任意の数の経路、極端な場合には木全体を探索しなければならな いからである。その結果、これらR木は、大部分のオンラインのアプリケーショ ンには適していない。 米国、ニュージャーシー州における、1990年6月16日付の、第10回パ ターン認識に関する国際会議のIEEEコンピュータ協会プレス、2巻掲載の、 Y.中村他の「階層構造を使用する、多層n次元データのデータ構造」の97− 102ページに記載されているように、多次元長方形空間に対する分割方法は周 知である。この周知の方法においては、所与の多次元の長方形空間は、上記空間 内のデータ点が、一つのデータ・ページの容量を超えるや否や、直ちに二つのサ ブ空間に分割される。初期空間の分割は、部分的長方形を切り取ることにより行 われる。この分割により新しく生成された空間構造、すなわち、切り取られた長 方形および初期空間の残りの部分は、BD木の層となり、この場合、多重切除部 分空間の場合には、木構造は、個々の部分空間が切り出される順序により異なる 。上記方法により生成された、上記BD木構造は2進木となり、その内部におい ては、上記BD木構造は、その長方形が新しいBD部分空間として切り取られる 各ブランチ・ノードにおいて決まる。 この連続的切除の結果、BD木は下方に向かって成長し、そのため、全空間内に おいて、データ点、すなわち、データ対象物の挿入、削除および探索を行う場合 、木のルートから葉(ブランチの先端)まで、一つの経路を探索しなければなら ない。この場合、各中間ノードにおいて、探索中のある一つの点の位置が、関連 切除部分空間またはその残りの空間内で特定されたかどうかをチェックする必要 がある。それ故、上記探索は、上記データセットに比例して成長することができ 、その結果、大きなデータセットおよび非常に大きなデータセットの場合、効率 が低下することになる。 多次元データセットを編成するために、現在実際に最も広く使用されている方 法は、元の複数の一次元B木に基づく方法である。この場合、一本のB木は、そ れそれの場合、スタート・データセットの各次元に対して使用され、その結果、 n次元のデータセットの領域問い合わせは、n本のB木によりサポートされる。 ある領域問い合わせには、それ故、すべての対象物は、その数値が、その次元に 対する問い合わせに指定されている、間隔に位置する各次元に対する周辺メモリ から入手される。これらデータ対象物は、対応する次元でヒット数を形成する。 必要な応答数を決定するために、すべての次元のヒット数の平均値を計算しなけ ればならない。そうするには、通常、最初に上記ヒット数を分類しなければなら ない。データ対象物を挿入または削除する場合には、n本のB木も、探索し必要 に応じて修正しなければならない。 それ故、本発明の目的は、改善されたアクセス時間により、特にオンラインの アプリケーションで使用するのに適していて、データ対象物を動的に挿入または 削除することができる、データベース・システムおよびn次元のデータセットを 編成するための方法を提供することである。 請求項1記載の特徴を持つ本発明のデータベース・システムにより、 この目的を達成するために、請求項8記載の特徴を持つn次元のデータセットを 編成する方法が提案されている。本発明のデータベース・システムは、計算装置 、主メモリおよび特に周辺メモリ装置であるメモリ装置を備える。本発明の基本 的アイデアは、上記計算装置により上記データセットを索引し、記憶するために 、すべての次元において多次元立方体をサブ立方体に反復して繰り返し分割する ために、編成対象の多次元データセットを多次元立方体に設置することである。 上記分割は、連続しているサブ立方体を、それそれが、特定の周辺メモリ装置の 、所与の記憶容量を持つメモリ・ページの一つ上に記憶することができる、多数 のデータ対象物を含む領域に結合することができるまで、非常に多くの回数反復 して行われる。連続サブ立方体の複数の領域が結合された場合、上記複数の領域 も、また連続していて、その結果、上記複数の領域は、一次元の構造体を形成す る。それ故、本発明によれば、データ対象物の挿入または削除が行われた場合、 対象物と一本の木のような一つのデータ構造体を修正するだけですむ。 本発明の一実施形態の場合、所与の記憶容量を持つ、あるページ上のある領域 のデータ対象物の記憶は、ポインタを、上記メモリ・ページおよび領域の境界を 示すアドレスに割当てながら行われる。それ故、記憶対象の各領域は、上記領域 境界を示す明確なアドレス、に割り当てられ、その上に対応する領域を記憶して いる、上記メモリ・ページを指しているポインタが記憶される。このようにして 、上記領域および上記領域に含まれるデータ対象物の位置決定は、問い合わせお よびデータ対象物の挿入および削除のような、編成ルーチンで簡単に行われる。 本発明の他の実施形態の場合には、上記ポインタおよび上記アドレスは、B木 、B*木またはプレフィックスB木に記憶されていて、その結果、アドレス探索 の場合には、上記アドレスに割り当てられ、必要な領 域のメモリ・ページを指しているポインタにより、必要な領域を識別するために 、高速で行うことができる簡単な探索をB木で行うことができる。 本発明の他の実施形態の場合には、データ対象物自身は、B木、B*木または プレフィックスB木の葉ページに記憶される。 本発明の好適な実施形態の場合には、領域境界を示すアドレスは、その領域を 形成している最後のサブ立方体上のデータからなる。アドレスが、領域の各分割 段階内に含まれる、サブ立方体の数についてのデータを含むデータベース・シス テムである場合、非常に有利であることが分かっている。それ故、その領域内に 完全に含まれる最後のサブ立方体も、また上記アドレス・データにより明確に指 定できる場合には、一つの領域をはっきりと指定することができる。この場合、 上記領域の始まりは、前の領域を形成している最後のサブ立方体上のアドレス・ データにより与えられる。 請求項8記載の本発明の方法の一実施形態の場合には、請求項9記載の特徴を 持つ方法が提案されている。多次元データセットを索引し、記憶するために、本 発明の方法の場合には、上記データセットは、n>1のn次元立方体に収容され る。この立方体は、その全体に、上記データセットのすべてのデータ対象物を含 む、スタート領域を形成する。存在するデータ対象物の数が、あるメモリ・ペー ジの所与の記憶容量に対応するデータ対象物の数より小さいか、等しい場合には 、上記スタート領域がーつのメモリ・ページ上に記憶される。そうでない場合に は、上記スタート領域は、分割アドレスに沿って分割されるが、その場合、二つ の新しい部分領域が、データのほぼ中心に沿って発生するように、上記分割アド レスが選択される。上記各部分領域は、その後、前と同じ方法で、スタート領域 により処理される。すなわち、それそれの場合、部分 領域内に含まれるデータ対象物の数が、決定され、あるメモリ・ページの所与の 記憶容量に対応する数と比較される。データセットが、所与の記憶容量のそれに 対応する数より大きくない場合には、対応する領域は、あるメモリ・ページ上に 記憶され、そうでない場合には、データの中心に沿って再び分割され、上記プロ セスが新たにスタートする。 都合のよいことに、ある領域または部分領域のデータ対象物は、対応する領域 に割り当てられたあるアドレス、および上記アドレスに割り当てられ、記憶した データ対象物を含む、メモリ・ページを示すポインタの記憶と平行して記憶され る。平行に記憶されるアドレスとしては、都合のよいことに、一つの領域の終わ りおよび他の領域の始まりを示す分割アドレスを使用することができる。 本発明の一実施形態の場合には、アドレスおよびポインタは、B木、B*木ま たはプレフィックスB木に記憶される。この時、それぞれの場合、複数のアドレ スが連続アドレスで指定され、その領域のデータ対象物は、それぞれ、所与の記 憶容量のメモリ・ページ上に記憶される。 請求項8記載の本発明の方法の一実施形態の場合には、請求項12記載の特徴 によるデータ対象物を挿入するための方法が提案されている。都合のよいことに 、記憶されたn次元のデータセットは、上記の本発明の方法により索引され、記 憶されたデータセットである。本発明によれば、データ対象物および、その上に この領域を記憶しているメモリ・ページを含むn次元のデータセットは、挿入対 象のデータ対象物の座標により決定される。その後、このメモリ・ページ上に記 憶したデータ対象物がカウントされる。記憶したデータ対象物の数が、メモリ・ ページの所与の記憶容量に対応する数より小さい場合には、挿入対象のデータ対 象物は、同様に、このメモリ・ページ上に記憶される。そうでない場合には、そ の分割アドレスに沿ってその領域を分割することにより、第一 および第二の部分領域が形成されるように、このメモリ・ページ上に記憶した領 域に対して、一つの分割アドレスが選択される。その時、それぞれの場合、所与 のメモリ容量に対応するデータ対象物のほぼ半数以下が、上記部分領域に含まれ る。それ故、挿入対象のデータ対象物は、上記データ対象物の座標を含む部分領 域内に挿入され、その場合、第一および第二の部分領域が、それそれ、一つのメ モリ・ページ上に記憶される。 本発明によれば、それ故、データ構造体全体を修正または新しく生成しないで も、データ対象物を所与のデータ構造体へ挿入することができる。新しいデータ 対象物を挿入したため、挿入を行った領域を、もはや一つのメモリ・ページ上に 記憶することはできない。上記領域はさらに二つの領域に分割され、それにより 、さらに二つ領域に分割される対応する領域、または分割により新しく生成した 部分領域だけを修正し、新しく記憶しさえすればよい。 都合のよいことに、メモリ・ページの位置の特定は、B木、B*木またはプレ フィックスB木に記憶され、メモリ・ページに割り当てられたアドレスおよびポ インタによるデータ対象物を挿入するための、本発明の方法により行われる。こ のようにして、必要なメモリ・ページの位置の特定を、特に簡単に高速で行うこ とができる。従って、それぞれの場合、上記第一および第二の部分領域に割り当 てられたアドレスおよびポインタにより、分割領域の前のポインタおよびアドレ スを置き換えながら、新しく生成された部分領域を記憶すれば、非常に有利であ ることが分かっている。この場合、例えば、分割アドレスを、第一の部分領域に 対する制限アドレスとして使用することができ、分割領域の上記制限アドレスを 第二の部分領域用に使用することができる。 領域を、それぞれの場合、連続アドレスで指定し、その領域のデータ 対象物を、それぞれの場合、所与の記憶容量のメモリ・ページに記憶して、アド レスおよびポインタを、B木、B*木またはプレフィックスB木に記憶すれば、 非常に有利であることが分かっている。 請求項8記載の本発明の方法の一実施形態の場合には、請求項16記載の特徴 によるデータ対象物を削除するための方法が提案されている。従つて、削除対象 のデータ対象物の座標により、データ対象物およびその上にその領域が記憶され ているメモリ・ページを含む、n次元データセットのその領域が決定され、削除 対象の対象物が、このメモリ・ページから削除される。従って、このメモリ・ペ ージが記憶しているデータ対象物の数が決定され、記憶したデータ対象物の数が 、メモリ・ページの所与の記憶容量に対応するほぼ半分より少ない場合には、上 記領域は、その二つの隣接する領域の一方を併合する。その後、合併装置により 新しく生成された、上記領域内に存在するデータ対象物の数が決定される。この 数が、メモリ・ページの所与の記憶容量に対応する数より小さい場合には、その 領域が一つのメモリ・ページ上に記憶され、そうでない場合には、分割アドレス に沿った分割により、それぞれ、分割対象の領域内に含まれるデータ対象物のほ ぼ半分を含む第一の部分領域および第二の部分領域が生成するように、分割アド レスが上記領域に対して選択される。その場合、上記部分領域は、それそれ、一 つのメモリ・ページ上に生成され、記憶される。 都合のよいことに、この方法の場合もまた、メモリ・ページの位置の特定は、 B木、B*木またはプレフィックスB木に記憶され、メモリ・ページに割り当て られたアドレスおよびポインタにより行われる。 請求項8記載の本発明の方法の一実施形態の場合には、請求項18記載の特徴 による所与のn次元問い合わせエリアに基づく、データ問い合わせを実行するた めの方法が提案されている。 請求の範囲 1.計算装置、主メモリ、及び特殊なメモリ手段の所与の記憶容量のメモリ・ペ ージ上の多次元立方体内に存在するデータセットを索引し、記憶するための、周 辺メモリ装置を含むデータベース・システムにおいて、連続しているサブ立方体 を、そのそれぞれが、所与の記憶容量のメモリ・ページの一つの上に、記憶でき る一組のデータ対象物を含む複数の領域に一緒に集めることができるまで、多次 元立方体を、反復して、繰り返しすべての次元のサブ立方体に分割するデータベ ース・システム。 2.請求項1記載のデータベース・システムにおいて、一つのポインタを前記メ モリ・ページ及び領域境界を示すアドレスに割り当てながら、一つの領域データ 対象物が、所与の記憶容量のメモリ・ページ上に記憶されるデータベース・シス テム。 3.請求項2記載のデータベース・システムにおいて、前記ポインタ及び前記ア ドレスが、B木、B*木又はプレフィックスB木に記憶されるデータベース・シ ステム。 4.請求項3記載のデータベース・システムにおいて、前記データ対象物が、B 木、B*木又はプレフィックスB木の葉ページ上に記憶されるデータベース・シ ステム。 5.請求項2−請求項4の何れか記載のデータベース・システムにおいて、前記 領域境界を示す前記アドレスが、その領域を形成する複数のサブ立方体の最後の サブ立方体上のデータからなるデータベース・システ ム。 6.請求項5記載のデータベース・システムにおいて、前記アドレスが、前記領 域内の各分割段階において含まれるサブ立方体の数に関するデータを含むデータ ベース・システム。 7.請求項5又は請求項6記載のデータベース・システムにおいて、前記アドレ スが、前記領域により依然として完全に囲まれている、対応する分割段階のそれ ぞれの場合に、最後のサブ立方体に割り当てられた一連の数からなるデータベー ス・システム。 8.請求項1−請求項7の何れか記載の特にデータベース・システムの動作に対 して、所与の記憶容量のメモリ・ページ上に設定された、n次元のデータセット を編成するための方法において、ある多次元立方体内に含まれるデータセットが 、連続しているサブ立方体を、そのそれぞれが所与の記憶容量のメモリ・ページ の、一つの上に記憶できる一組のデータ対象物を含む、複数の領域に一緒に集め ることができるまで、多重次元立方体を、すべての次元において、サブ立方体に 繰り返し、反復して分割する方法。 9.請求項8記載の方法において、特定の周辺メモリ装置の所与の記憶容量のメ モリ・ページ上のデータの索引と記憶に対して、下記ステップが実行される方法 、すなわち、 1).全立方体からなる、スタート領域を形成するステップと、 2).前記スタート領域内に存在するデータ対象物をカウントするステップと 、 3).スタート領域のデータ対象物の数が、一つのメモリ・ページの所与の容 量に対応するデータ対象物の数より大きくなかった場合は、前記スタート領域の データ対象物をメモリ・ページに記憶するステップと、 4).そうでない場合、分割アドレスに沿ってスタート領域を分割することに より、それそれの場合、スタート領域のデータ対象物のほぼ半分を含む、第一及 び第二の部分領域が生成されるように前記スタート部分領域に対する分割アドレ スを選択するステップと、 5).前記第一の部分領域をスタート領域として使用して、ステップ2から本 発明の方法を継続するステップと、 6).前記第二の部分領域をスタート部分領域として使用して、ステップ2か ら本発明の方法を実行するステップとを実行し、 ステップ4で生成された部分領域が、それぞれ、所与の記憶容量のメモリ・ペ ージの一方の上に記憶することができる一組のデータ対象物を含むまで、それぞ れのケースにおいて、ステップ5及び6を反復する方法。 10.請求項9記載の方法において、ステップ3によるりセーブ動作が、対応す る領域に割り当てられたアドレスの記憶と、前記アドレスに割り当てられたポイ ンタの記憶、及びステップ3により記憶されたデータ対象物を含むメモリ・ペー ジの参照と平行して行われる方法。 11.請求項10記載の方法において、前記アドレス及び前記ポインタのセーブ 動作が、B木、B*木又はプレフィックスB木で行われ、その場合、複数の領域 が、それぞれの場合、連続したアドレスにより指定され、その領域のデータ対象 物が、それぞれの場合、所与のメモリ容量のメモリ・ページ上に記憶される方法 。 12.請求項8記載の方法において、特に、請求項8−請求項11の何れかによ る方法により、複数の領域に分割され、特定の周辺記憶装置の所与の記憶容量の メモリ・ページ上に記憶された、n>1である、n次元データセットにデータ対 象物を挿入するために、下記ステップ、すなわち、 1).そのデータ対象物の座標から、前記n次元空間内に挿入する前記データ 対象物に関連するn次元のデータセットの一つの領域を決定するステップと、 2).前記領域を記憶するメモリ・ページの位置を特定するステップと、 3).このメモリ・ページ上に記憶した前記データ対象物の数を決定するステ ップと、 4).記憶したデータ対象物の数が、前記メモリ・ページの所与の記憶容量に 対応する数の約半分より小さい場合には、このメモリ・ページ上に前記データ対 象物を記憶するステップと、 5).そうでない場合、分割アドレスに沿って前記領域を分割することによっ て、それぞれの場合、所与の記憶容量に対応するデータ対象物の数の、ほぼ半分 以下が記憶されるように、第一及び第二の部分領域が含まれる、第一及び第二の 部分領域が発生するように、このメモリ・ページ上に記憶した、前記部分領域に 対する分割アドレスを選択するステツプと、 6).データ対象物の座標が存在する、部分領域内に前記データ対象物を挿入 するステップと、 7).それぞれの場合、一つのメモリ・ページ上に、第一及び第二の部分領域 を記憶するステップとを実行する方法。 13.請求項12記載の方法において、ステップ2によるメモリ・ページの位置 の特定が、B木、B*木又はプレフィックスB木に記憶され、メモリ・ページに 記憶されたアドレス及びポインタにより行われる方法。 14.請求項13記載の方法において、ステップ2からの前記ポインタ及びアド レスの代わりに、それぞれの場合、前記第一及び第二の部分領域に割り当てられ たアドレス及びポインタを使用して、ステップ7により第一及び第二の部分領域 の記憶が行われる方法。 15.請求項14記載の方法において、前記アドレス及び前記ポインタの記憶動 作が、B木、B*木又はプレフィックスB木で行われ、その場合、複数の領域が 、それぞれの場合、連続したアドレスにより指定され、その領域のデータ対象物 が、それぞれの場合、所与のメモリ容量のメモリ・ページ上に記憶される方法。 16.請求項8記載の方法において、特に、請求項8−請求項11の何れかによ る方法により、複数の領域に分割され、特定の周辺記憶装置の所与の容量のメモ リ・ページ上に記憶されたn次元データセットのデータ対象物を削除するために 、下記ステップ、すなわち、 1).前記n次元空間内のそのデータ対象物の座標から削除する前記データ対 象物に関連する、n次元のデータセットの一つの領域を決定するステップと、 2).前記領域を記憶するメモリ・ページの位置を特定するステップと、 3).このメモリ・ページ上に記憶したデータ対象物の数を決定する ステップと、 4).このメモリ・ページ上に記憶した前記データ対象物の数を決定するステ ップと、 5).記憶したデータ対象物の数が、前記メモリ・ページの所与の記憶容量に 対応する数の約半分より小さい場合には、前記領域をその隣接する二つの領域の 一方と併合するステップと、 6).前記併合により新しく生成された前記領域内のデータ対象物の数を決定 するステップと、 7).前記領域内に存在するデータ対象物の数が、前記メモリ・ページの所与 の記憶容量に対応する数より大きくない場合には、一つのメモリ・ページ上に前 記領域を記憶するステップと、 8).そうでない場合、分割アドレスに沿って分割することによって、それそ れが、ステップ6により決定した前記データ対象物の約半分を含む、第一の部分 領域及び第二の部分領域が発生し、前記二つの部分領域が、それぞれの場合、一 つのメモリ・ページに記憶されるように、前記領域に対するアドレスの分割を選 択するステップとを実行する方法。 17.請求項16記載の方法において、ステップ2によるメモリ・ページの位置 の特定が、B木、B*木又はプレフィックスB木に記憶され、前記メモリ・ペー ジに割り当てられたアドレス及びポインタにより行われる方法。 18.請求項8記載の方法において、この場合、特に、請求項8−請求項11の 何れかの方法により分割され、特定の周辺メモリの所与の記憶容量の複数のメモ リ・ページ上に記憶された次元のデータセットの所与のn次元の問い合わせエリ アに基づいてデータ問い合わせが行われる場 合に、下記のステップ、すなわち、 1).n次元データセットと問い合わせエリアとの最低交点及び最高交点の座 標を決定するステップと、 2).前記最低交点を含むその領域、及びその領域を記憶しているそのメモリ ・ページの位置を決定するステップと、 3).前記問い合わせエリアとの一組の交点を形成する、このメモリ・ページ 上に記憶されたすべてのデータ対象物、及び決定したデータ対象物の出力を決定 するステップと、 4).ステップ2で決定した、前記連続領域中の最後のサブ立方体であって、 問い合わせエリアと交差するサブ立方体を決定するステップと、 5).最高の交点がこのサブ立方体内に存在する場合には、前記データ問い合 わせを終了するステップと、 6).そうでない場合、同じ平面の次のサブ立方体と、前記問い合わせエリア と交差する同じ次の高い立方体を決定するステップと、 7).決定したサブ立方体により、前記問い合わせエリアとの最低交点の座標 を決定し、サブ立方体がステップ6で決定した場合には、ステップ2で本発明の 方法を継続するステップと、 8).そうでない場合、前記問い合わせエリアと交差するステップ6からの、 次に高い立方体の平面の前記次のサブ立方体を決定し、決定した立方休のサブ立 方休により、ステップ6を実行するステップと、 9).ステップ8において、ステップ6から次に高い立方体の平面のサブ立方 体を決定できなかった場合には、前記次に高い立方体に、前記サブ立方体の役割 を行わせることにより、ステップ6により、本発明の方法を続行する方法。

Claims (1)

  1. 【特許請求の範囲】 1.計算装置、主メモリ、及び 特殊なメモリ手段の所与の記憶容量のメモリ・ ページ上の多次元立方体内に存在するデータセットを索引し、記憶するための、 周辺メモリ装置を含むデータベース・システムにおいて、連続しているサブ立方 体を、そのそれぞれが、所与の記憶容量のメモリ・ページの一つの上に、記憶で きる一組のデータ対象物を含む複数の領域に一緒に集めることができるまで、多 次元立方休を、反復して、繰り返しすべての次元のサブ立方体に分割するデータ ベース・システム。 2.請求項1記載のデータベース・システムにおいて、一つのポインタを前記メ モリ・ページ及び領域境界を示すアドレスに割り当てながら、一つの領域データ 対象物が、所与の記憶容量のメモリ・ページ上に記憶されるデータベース・シス テム。 3.請求項2記載のデータベース・システムにおいて、前記ポインタ及び前記ア ドレスが、B木、B*木又はプレフィックスB木に記憶されるデータベース・シ ステム。 4.請求項3記載のデータベース・システムにおいて、前記データ対象物が、B 木、B*木又はプレフィックスB木の葉ページ上に記憶されるデータベース・シ ステム。 5.請求項2−請求項4の何れか記載のデータベース・システムにおいて、前記 領域境界を示す前記アドレスが、その領域を形成する複数のサブ立方体の最後の サブ立方体上のデータからなるデータベース・システム。 6.請求項5記載のデータベース・システムにおいて、前記アドレスが、前記領 域内の各分割段階において含まれるサブ立方体の数に関するデータを含むデータ ベース・システム。 7.請求項5又は請求項6記載のデータベース・システムにおいて、前記アドレ スが、前記領域により依然として完全に囲まれている、対応する分割段階のそれ ぞれの場合に、最後のサブ立方体に割り当てられた一連の数からなるデータベー ス・システム。 8.n>1の場合に、n次元立方体内に存在するデータセットを編成するための 方法において、それにより、特定の周辺メモリ装置の所与の記憶容量のメモリ・ ページ上で前記データセットを索引し、記憶するために、下記ステップが実行さ れる方法、すなわち、 1).全立方体からなる、スタート領域を形成するステップと、 2).前記スタート領域内に存在するデータ対象物をカウントするステップと 、 3).スタート領域のデータ対象物の数が、一つのメモリ・ページの所与の容 量に対応するデータ対象物の数より大きくなかった場合は、前記スタート領域の データ対象物をメモリ・ページに記憶するステップと、 4).そうでない場合、分割アドレスに沿ってスタート領域を分割することに より、それぞれの場合、スタート領域のデータ対象物のほぼ半分を含む、第一及 び第二の部分領域が生成されるように前記スタート部分領域に対する分割アドレ スを選択するステップと、 5).前記第一の部分領域をスタート領域として使用して、ステップ2から本 発明の方法を継続するステップと、 6).前記第二の部分領域をスタート部分領域として使用して、ステ ップ2から本発明の方法を実行するステップとを実行する方法。 9.請求項8記載の方法において、ステップ3によるりセーブ動作が、対応する 領域に割り当てられたアドレスの記憶と、前記アドレスに割り当てられたポイン タの記憶、及びステップ3により記憶されたデータ対象物を含むメモリ・ページ の参照と平行して行われる方法。 10.請求項9記載の方法において、前記アドレス及び前記ポインタのセーブ動 作が、B木、B*木又はプレフィックスB木で行われ、その場合、複数の領域が 、それぞれの場合、連続したアドレスにより指定され、その領域のデータ対象物 が、それぞれの場合、所与のメモリ容量のメモリ・ページ上に記憶される方法。 11.特に、請求項8−請求項10の何れかの方法により、複数の領域に分割さ れ、特定の周辺記憶装置の所与の記憶容量のメモリ・ページ上に記憶された、n >1であるn次元データセットにデータ対象物を挿入するための方法であって、 下記ステップ、すなわち、 1).前記n次元の空間内の前記データ対象物の座標から、挿入対象の前記デ ータ対象物に関連するn次元のデータセットの一つの領域を決定するステップと 、 2).前記領域を記憶するメモリ・ページの位置を特定するステップと、 3).このメモリ・ページ上に記憶した前記データ対象物の数を決定するステ ップと、 4).記憶したデータ対象物の数が、前記メモリ・ページの、所与の記憶容量 に対応する数より小さい場合には、このメモリ・ページ上に前記データ対象物を 記憶するステップと、 5).そうでない場合、前記分割アドレスに沿って前記領域を分割することに よって、それぞれの場合、所与の記憶容量に対応するデータ対象物の数のほぼ半 分以下が、それぞれ、記憶されるよう、第一及び第二の部分領域が発生するよう に、このメモリ・ページ上に記憶した前記部分領域に対する分割アドレスを選択 するステップと、 6).前記データ対象物の座標が存在するその部分領域内に前記データ対象物 を挿入するステップと、 7).それぞれの場合、一つのメモリ・ページ上に、第一及び第二の部分領域 を記憶するステップとを実行する方法。 12.請求項11記載の方法において、ステップ2によるメモリ・ページの位置 の特定が、B木、B*木又はプレフィックスB木に記憶され、メモリ・ページに 記憶されたアドレス及びポインタにより行われる方法。 13.請求項12記載の方法において、ステップ2からの前記ポインタ及びアド レスの代わりに、それぞれの場合、前記第一及び第二の部分領域に割り当てられ たアドレス及びポインタを使用して、ステップ7により第一及び第二の部分領域 の記憶が行われる方法。 14.請求項13記載の方法において、前記アドレス及び前記ポインタの記憶動 作が、B木、B*木又はプレフィックスB木で行われ、その場合、複数の領域が 、それぞれの場合、連続したアドレスにより指定され、その領域のデータ対象物 が、それぞれの場合、所与のメモリ容量のメモリ・ページ上に記憶される方法。 15.特に、請求項8−請求項10の何れかによる方法により、複数の領域に分 割され、特定の周辺記憶装置の所与の容量のメモリ・ページ上 に記憶されたn次元データセットのデータ対象物を削除するために、下記ステッ プ、すなわち、 1).前記n次元空問内のそのデータ対象物の座標から削除する前記データ対 象物に関連する、n次元のデータセットの一つの領域を決定するステップと、 2).前記領域を記憶するメモリ・ページの位置を特定するステップと、 3).このメモリ・ページ上に記憶したデータ対象物の数を決定するステップ と、 4).このメモリ・ページ上に記憶した前記データ対象物の数を決定するステ ップと、 5).記憶したデータ対象物の数が、前記メモリ・ページの所与の記憶容量に 対応する数の約半分より小さい場合には、前記領域をその隣接する二つの領域の 一方と併合するステップと、 6).前記併合により新しく生成された前記領域内のデータ対象物の数を決定 するステップと、 7).前記領域内に存在するデータ対象物の数が、前記メモリ・ページの所与 の記憶容量に対応する数より小さい場合には、一つのメモリ・ページ上に前記領 域を記憶するステップと、 8).そうでない場合、分割アドレスに沿って分割することによって、それぞ れが、ステップ6により決定した前記データ対象物の約半分を含む、第一の部分 領域及び第二の部分領域が発生し、前記二つの部分領域が、それぞれの場合、一 つのメモリ・ページに記憶されるように、前記領域に対するアドレスの分割を選 択するステップとを実行する方法。 16.請求項15記載の方法において、ステップ2によるメモリ・ページの位置 の特定が、B木、B*木又はプレフィックスB木に記憶され、 前記メモリ・ページに割り当てられたアドレス及びポインタにより行われる方法 。 17.特に、請求項8−請求項10の何れかの方法により分割され、特定の周辺 メモリの所与の記憶容量の複数のメモリ・ページ上に記憶された次元のデータセ ットの所与のn次元の問い合わせエリアに基づいてデータ問い合わせが行われる 場合に、下記のステップ、すなわち、 1).n次元データセットと問い合わせエリアとの最低交点及び最高交点の座 標を決定するステップと、 2).前記最低交点を含むその領域、及びその領域を記憶しているそのメモリ ・ページの位置を決定するステップと、 3).前記問い合わせエリアとの一組の交点を形成する、このメモリ・ページ 上に記憶されたすべてのデータ対象物、及び決定したデータ対象物の出力を決定 するステップと、 4).ステップ2で決定した、前記連続領域中の最後のサブ立方体であって、 問い合わせエリアと交差するサブ立方体を決定するステップと、 5).最高の交点がこのサブ立方体内に存在する場合には、前記データ問い合 わせを終了するステップと、 6).そうでない場合、同じ平面の次のサブ立方体と、前記問い合わせエリア と交差する同じ次の高い立方体を決定するステップと、 7).決定したサブ立方体により、前記問い合わせエリアとの最低交点の座標 を決定し、サブ立方体がステップ6で決定した場合には、ステップ2で本発明の 方法を継続するステップと、 8).そうでない場合、前記問い合わせエリアと交差するステップ6からの、 次に高い立方体の平面の前記次のサブ立方体を決定し、決定した立方体のサブ立 方体により、ステップ6を実行するステップと、 9).ステップ8において、ステップ6から次に高い立方体の平面の サブ立方体を決定できなかった場合には、前記次に高い立方体に、前記サブ立方 体の役割を行わせることにより、ステップ6により、本発明の方法を続行する方 法。
JP10512170A 1996-09-02 1997-08-20 データベース・システム及びn次元データセットの編成方法 Pending JP2000517448A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE19635429A DE19635429A1 (de) 1996-09-02 1996-09-02 Datenbanksystem und Verfahren zum Verwalten eines n-dimensionalen Datenbestands
DE19635429.3 1996-09-02
PCT/EP1997/004520 WO1998010357A1 (de) 1996-09-02 1997-08-20 Datenbanksystem und verfahren zum verwalten eines n-dimensionalen datenbestands

Publications (1)

Publication Number Publication Date
JP2000517448A true JP2000517448A (ja) 2000-12-26

Family

ID=7804316

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10512170A Pending JP2000517448A (ja) 1996-09-02 1997-08-20 データベース・システム及びn次元データセットの編成方法

Country Status (6)

Country Link
EP (1) EP0912952B1 (ja)
JP (1) JP2000517448A (ja)
AT (1) ATE188565T1 (ja)
DE (2) DE19635429A1 (ja)
ES (1) ES2142691T3 (ja)
WO (1) WO1998010357A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015530666A (ja) * 2012-09-24 2015-10-15 華為技術有限公司Huawei Technologies Co.,Ltd. データインデックス化方法及び装置
KR20190128391A (ko) * 2018-05-08 2019-11-18 주식회사 딥바이오 특정 데이터 군집의 종단지점 탐색 방법 및 이를 위한 데이터 처리시스템

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2354921A (en) * 1999-07-08 2001-04-04 Gordon Ross A method for multi-dimensional information representation processing and interaction using categorisation structures and processes
GB2393624A (en) * 2002-05-22 2004-03-31 Gordon Ross Three-dimensional database
EP1441293B1 (en) 2003-02-18 2004-08-04 Hermann Dr.-Ing. Tropf Database and method for organizing data elements
DE10331679B4 (de) * 2003-06-07 2005-06-16 Tropf, Hermann Verfahren für Suche in einem mehrdimensionalen Datenbestand

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3908684C2 (de) * 1989-03-16 1999-07-08 Gebelein Udo Dipl Ing Fh Dipl Verfahren zum Durchsuchen eines einer Datenverarbeitungsanlage zugehörigen Speichers und Vorrichtung zur Durchführung eines solchen Verfahrens

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015530666A (ja) * 2012-09-24 2015-10-15 華為技術有限公司Huawei Technologies Co.,Ltd. データインデックス化方法及び装置
KR20190128391A (ko) * 2018-05-08 2019-11-18 주식회사 딥바이오 특정 데이터 군집의 종단지점 탐색 방법 및 이를 위한 데이터 처리시스템
KR102273373B1 (ko) 2018-05-08 2021-07-06 주식회사 딥바이오 특정 데이터 군집의 종단지점 탐색 방법 및 이를 위한 데이터 처리시스템

Also Published As

Publication number Publication date
EP0912952B1 (de) 2000-01-05
WO1998010357A1 (de) 1998-03-12
EP0912952A1 (de) 1999-05-06
ES2142691T3 (es) 2000-04-16
DE19635429A1 (de) 1998-03-05
DE59700987D1 (de) 2000-02-10
ATE188565T1 (de) 2000-01-15

Similar Documents

Publication Publication Date Title
US6510435B2 (en) Database system and method of organizing an n-dimensional data set
Traina et al. Fast indexing and visualization of metric data sets using slim-trees
Nievergelt et al. Spatial data structures: Concepts and design choices
Procopiuc et al. Bkd-tree: A dynamic scalable kd-tree
US5943677A (en) Sparsity management system for multi-dimensional databases
JP3945771B2 (ja) データベース・システム
JP3433803B2 (ja) データベースの構造
Hoel et al. Benchmarking spatial join operations with spatial output
CN105975587B (zh) 一种高性能的内存数据库索引组织与访问方法
US20050071349A1 (en) Method and apparatus for accessing multidimensional data
KR20010083096A (ko) 가치-사례-연결을 통한 컴퓨터에 의해 구현되는데이터베이스
WO2006046669A1 (ja) データベース管理装置、方法、プログラム
JPH09212528A (ja) データベースを記憶する方法、データベースからレコードを検索する方法、および、データベース記憶/検索システム
CN111639075B (zh) 一种基于扁平化r树的非关系数据库矢量数据管理方法
JP2001043290A (ja) 表形式データの提示方法、挿入方法、削除方法、更新方法およびこれら方法を利用したトランザクション処理方法、並列処理方法、並びに、上記方法を実現するプログラムを記憶した記憶媒体
Ooi Spatial kd-tree: A data structure for geographic database
Rotem et al. Extendible arrays for statistical databases and OLAP applications
CN109885570A (zh) 一种辅助索引结合散列表的多维范围查询方法
JP2000517448A (ja) データベース・システム及びn次元データセットの編成方法
JP2001216307A (ja) リレーショナルデータベース管理システム及びそれを記憶した記憶媒体
JP2004534981A (ja) データベース・システムでデータを編成し、問合せを処理する方法、およびそのような方法を実施するためのデータベース・システムおよびソフトウェア製品
Feng et al. Indexing and incremental updating condensed data cube
Arpitha et al. A Navigation Supporting System Using R-Tree
Abel et al. Caching strategies for spatial joins
Koudas Indexing support for spatial joins