JP4231943B2 - 2次元またはそれ以上の次元のデータベース照会を最適化するシステムおよび方法 - Google Patents
2次元またはそれ以上の次元のデータベース照会を最適化するシステムおよび方法 Download PDFInfo
- Publication number
- JP4231943B2 JP4231943B2 JP53775598A JP53775598A JP4231943B2 JP 4231943 B2 JP4231943 B2 JP 4231943B2 JP 53775598 A JP53775598 A JP 53775598A JP 53775598 A JP53775598 A JP 53775598A JP 4231943 B2 JP4231943 B2 JP 4231943B2
- Authority
- JP
- Japan
- Prior art keywords
- data object
- database
- data
- objects
- spatial
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 83
- 230000006870 function Effects 0.000 description 48
- 238000010586 diagram Methods 0.000 description 15
- 230000008520 organization Effects 0.000 description 11
- 238000007726 management method Methods 0.000 description 10
- 230000006399 behavior Effects 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 8
- 238000009826 distribution Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 238000000354 decomposition reaction Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000002860 competitive effect Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000008450 motivation Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000012885 constant function Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000009940 knitting Methods 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012887 quadratic function Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000000547 structure data Methods 0.000 description 1
- 230000008961 swelling Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2264—Multidimensional index structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99943—Generating database or data structure, e.g. via user interface
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99948—Application of database or data structure, e.g. distributed, multimedia, or image
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Processing Or Creating Images (AREA)
Description
発明の分野
本発明は、コンピュータ・データベースに関する。特に、本発明は、2次元および3次元空間におけるオブジェクトの位置、サイズ、および形状を記述する情報を含むデータベースレコードに索引を付ける方法に関する。
関連技術の説明
データ構造の目的は、大量の情報を編成してコンピュータがデータ構造の内容を選択的に処理できるようにすることである。このための動機は単純である。すなわち、いつでも、時間的要件、プロセッサ速度、メイン・メモリ、ディスク・アクセス時間の点で一度にすべて処理できる以上のデータがある。データおよびアプリケーションの性質に応じて、データ編成戦略は、同様のプロパティを備えたサブセットに内容を区分すること、または高速ランダム・アクセス用の索引付けおよびハッシングをサポートするためにデータに順序付けを行うことができる。データべースおよびデータベース管理システムでは、このような概念を拡張し、構造化データの永続的記憶およびトランザクション制御編集を行えるようにしている。
2次元マップを記述するような空間データは、効率のよい編成の必要性の点ではまったく変わりはない。マップ・データは、この点では特に要求が厳しいものである。中位のサイズの地域社会の総合的な街路マップは、数万ないし数十万個の個々の街路セグメントからなることがある。ロサンジェルスまたはニューヨークの広域マップは、数百万個のセグメントを含むことがある。各マップ・データ・オブジェクトの内容もいくらかかさばる可能性がある。たとえば、個々の街路セグメントのレコードは、その終点の座標、使用法の分類、街路名、街路住所範囲、街路の左右側、法人都市名、郵便番号を含むことができる。
しかし、その中心部の空間データは、2次元空間内でオブジェクトを編成しようと試みるので、特に厄介な問題を提起する。空間座標は、互いに独立しているがほとんどの空間照会にとって同様に重要な2つ(またはそれ以上)の値からなる。確率されたデータ構造およびデータベース方法は、多次元空間の表現ではなく、単一の値を効率よく処理するように設計されている。
このような困難については、数十万個の空間オブジェクトからなるデータベース(家屋を取り囲む都市のマップ)からマップ・データの小さいウィンドウ(たとえば、家屋を取り囲む平方マイル)を提示するアプリケーションの作成という問題を検討することによって例示することができる。これを行うための動機は実際には2つの面がある。第1に、コンピュータ・モニタの典型的な解像度が限られており、所与の量の情報しか表すことができないことである。第2に、すべてのデータがモニタ内におさまる場合でも、この大量の情報を計算するためのデータ処理時間(取出し、変換、クリッピング、描画)は、平均的なパーソナル・コンピュータにとっては長すぎるものになるだろう。
この問題を解決するためには、モニタ上に生成される「ウィンドウ」内に現れる街路セグメントをすべて検出し、現れない街路セグメントについてはできるだけ多くのセグメントを回避することが有利である。したがって、x座標(または経度)値およびy座標(または緯度)値の特定の範囲内にあるすべてのオブジェクトが収集される。この問題は、一般に、矩形ウィンドウ検索と呼ばれ、より基本的なタイプの空間照会の1つである。この方法は、以下に示す編成方法のそれぞれの有効性を評価するための方法として以下の項で使用する。
最も厳重に調査され、一般的に使用されている空間データ構造(地理データおよび幾何データを編成するために使用するデータ構造)は、タイルベースの階層ツリーという概念を頼りにしている。このコンテキストにおけるタイルとは、座標空間の矩形(またはその他の規則正しい形状または不規則な形状の)区画であり、座標系のどの単一点も複数のタイル内に存在することがないように各区画はタイル同士を分離する明瞭な線を有する。階層ツリーは、座標空間全体を表すルートから開始して、その空間をより小さいタイルに再帰的に分解することにより、座標空間を分割するための構造の1つである。このシステムにおけるタイル間の「ハード・エッジ」とは、空間内のあらゆる点が正確に階層の各レベルの1つのタイル内に存在することを意味する。いかなる点も複数のタイルに共存することはできない。
周知の階層ツリーの一例は、クワッドツリー・データ構造である。一例のクワッドツリーは、地球の表面を表すことができるだろう。クワッドツリーのルートには、地球の表面全体を表すノードが存在する。次にこのルートは、緯度空間および経度空間の各象限を表す4つの子、すなわち、グリニッジより東で赤道より北、グリニッジより東で赤道より南、グリニッジより西で赤道より北、最後に、グリニッジより西で赤道より南という子を有することになる。グリニッジ子午線および赤道上の点は、1つの象限または残りの部分に属するものとして任意に定義される。これらの子のそれぞれは、より多くの象限、すなわち、その子の子などにさらに分割され、クワッドツリーに記憶すべきデータの量および密度をサポートするのに必要な区分度に至るまで分割される。
クワッドツリー構造の主な問題は、その構造がアンバランスになっていることである。ツリー内の各ノードのデータ記憶容量は制限されているので、その制限を上回る場合、ノードは4つの子に分割しなければならず、データ内容はツリーの下の方の凹部に押し込まれる。その結果、クワッドツリーの深さは、データ密度が低ければ浅くなり、データ密度が高ければ深くなる。たとえば、地球の表面上の人口の中心を検出するために使用するクワッドツリーは、大洋中央および極地域では非常に浅くなり(たとえば、少数のノードを有する)、米国の東部および南部などの地域では非常に深くなる(たとえば、多数のノードを有する)。
クワッドツリーは本質的にアンバランスなものなので、クワッドツリーの矩形ウィンドウ検索行動は予測が難しい。ソフトウェアにとっては、必要なデータを検出するために訪れなければならない可能性のある多くのノードがどの程度の深さにあるかを予測することは困難なことである。大規模な空間データベースでは、クワッドツリー階層で他のノードに移行するための各ステップは、通常、時間のかかるディスク・シークを必要とする。さらに、必要なデータをすべて検出するためには、ツリーの複数のブランチをたどらなければならないだろう。第2に、データ構造の内容が動的なものである場合、効率のよい空間管理は問題を含むことになる。というのは、各ノードは一定量の空間と一定の地域範囲の両方を有するからである。現実のデータ方式では、この2つが対応することはめったにない。このような問題を最小限にしようと試みるために、クワッドツリーの変形がいくつか存在する。しかし、依然として効率の悪さが持続する。
これまで、各空間オブジェクトが単一組の座標を含む場合に複数の点を含むデータ構造についてのみ説明してきた。線、曲線、円、多角形は、次元を有するので、さらに複雑さを増す。したがって、タイリング方式が極めて不自然なものでない限り、これらのオブジェクトはもはやタイル・ベースのデータ構造にきちんとおさまらなくなる。ある座標領域から他の座標領域へハード・エッジのタイル境界を横切るようなオブジェクトの部分が必ず存在することになる。ただし、これは、オブジェクトの記述の単純さにかかわらず真実であることに留意されたい。たとえば、線分はその2つの終点によって記述され、円はその中心点と半径によって記述される。
この問題を取り巻く単純で一般的に使用される方法は、タイル境界を横切るオブジェクトを複数のオブジェクトに分割することである。したがって、その終点が2つの隣接タイル内に含まれる線分は2つの線分に分割され、1つのタイルから始まり、そのもう一方の端部までの間に50個のタイルを通過する線分は、それが接触する各タイルごとの1つずつ、合計52個の線分に分解される。
この手法は、読取り専用である所与のアプリケーションにとっては有効な戦略になりうる。しかし、これは、動的内容を備えたデータ構造によっては不十分な戦略である。新しいデータ・オブジェクトの追加は比較的単純であるが、データの削除および変更はより難しい。元のオブジェクトが完全な状態のままであると保証されるわけではないので、問題が発生する。線分を移動または除去する必要がある場合、データベースが予想通りに動作するようにその線分を何とかして再構成しなければならない。これには、追加のデータベースブックキーピング、より複雑なアルゴリズム、それに付随する設計の単純さおよびパフォーマンスの低下が必要になる。
多次元オブジェクトの編成に関するもう1つの一般的な問題は、これらのオブジェクトの多くがいったん分解してしまうと数学的に記述するのが難しくなることである。たとえば、1つの円が4つの隣接する矩形タイルに重なるようにする方法は多数ある。配置によっては、同じサイズの円が2つ、3つ、または4つの異形片になる可能性がある。過度に断片化された線分の場合と同様、そのオブジェクトの本来の「自然な」特徴は完全に失われる。
代替戦略は、タイル境界を横切るオブジェクトを多様に参照する迂遠的方法(indirection)を使用することである。しかし、各参照ごとにそのオブジェクトを回復するための余分なステップが必要であり、同じ照会によって同じオブジェクトを複数回検索することができるが、解決するためには追加の複雑さが必要になる。データベース内のオブジェクトの数が大きくなると、この余分な迂遠レベルは費用がかかりすぎ、実行可能なシステムを作成することができなくなる。
クワッドツリーで使用するもう1つの戦略は、タイル境界を横切るオブジェクトをそれらが最終的におさまるまでツリーのより高いレベルに押し込むことである。この戦略の難しさは、より高いノードに含まれるマップ・オブジェクトの数が増加した場合、データベース操作によって上位ノードのすべてのオブジェクトを検査しないと、有用な情報を含む可能性の高いより小さいノードに探索を向けることができないことである。この結果、データを検出するために膨大な遅れ時間が発生する。
従来のDBMSにおける照会の最適化
前述のように、空間内のオブジェクトの位置、サイズ、形状を記述するデータは一般に空間データと呼ばれる。空間データの集合は空間データベースと呼ばれる。様々なタイプの空間データベースの例としては、マップ(街路マップ、地形図、土地利用図など)、2次元および3次元の建築図面、集積回路設計図などがある。
従来のデータベース管理システム(DBMS)では、所与のフィールドに特定のデータ値を有するレコードの検索を最適化するために索引付け方法を使用している。データベース内の各レコードごとに、対応する値を含むレコードに戻るためのポインタとともに関心のあるフィールドの値をツリーまたは同様の索引付けデータ構造内のキーとして記憶する。
データベース表1は、架空の企業の元従業員に関する情報を含む単純なデータベース表の例を示している。表内の各行は単一レコードに対応する。各レコードは単一の元従業員に関する情報を含む。表内の列は、その氏名や雇用開始日および雇用終了日を含む各元従業員に関する様々な事実を記憶する各レコード内のフィールドに対応する。
照会例1は、1993年中に就業を開始したすべての元従業員の氏名を検出するSQL照会を示している。元従業員データベース内のレコードの数が大きく、定期的または適時に照会を実行する必要がある場合、この照会をより効率よく実行させるために開始日フィールド上に索引を作成すると有用である可能性がある。Bツリーなどの順次索引付けデータ構造を使用すると、データベース表2に示すように、索引付けされたフィールドの順にデータベース表が効果的に再整理される。このような順次索引付け方法の重要な特徴は、索引付きフィールド内に特定の値を含むレコードと、索引付きフィールド内に所定の範囲の値を有するレコードの両方について、非常に効率のよい探索が可能になることである。
照会例1
1993年中に雇用されたすべての元従業員を検出するためのSQL
分析のため、コンピュータ・アルゴリズムとそのサポート・データ構造の効率をOrder関数で表すが、この関数はアルゴリズムの近似行動を関連オブジェクトの総数の関数として記述するものである。Orderを表すために使用する簡略表記は00である。データ処理アルゴリズムの場合、Order関数は処理するオブジェクトの数に基づくものになる。
たとえば、最良ソート・アルゴリズムは通常、O(N×log(N))というコストで行われ、式中、Nはソートするレコードの数である。オブジェクトを管理するために使用するデータ構造(たとえば、データベース内の索引)の場合、Order関数は管理するオブジェクトの数に基づくものになる。たとえば、最良データベース索引付け方法は通常、O(log(N))という探索コストを有し、式中、Nはデータベースに記憶されるレコードの数である。所与のアルゴリズムは、別個であるが通常はまれな最悪ケースのコストも有するが、これは他のOrder関数によって示すことができる。オブジェクトの総数とは無関係な定数関数は関数O(K)によって示される。
Bツリーおよび同様の索引順次アクセス方式(すなわちISAM)は一般に、O(log(N))というコストによって所与のキー値へのランダム・アクセスを可能にするものであり、式中、Nは表内のレコードの数であり、また、O(K)という平均コストで後続レコードへの順次アクセスを可能にし、式中、Kは索引によりレコードを読み取るという不利益を表す小さい定数である(Kを最小限にするために、索引クラスタおよびキャッシュを含む様々な戦略を使用することができる)。したがって、照会例1を実行するための全コストはO(log(N)+(M×K))になり、式中、Mは照会を満足するレコードの数である。Nが大きく、MがNに対して小さい場合、索引を使用して照会を実行するためのコストは、表全体を走査するためのO(N)というコストより実質的に小さくなる。データ・表1は、NおよびMの様々な値について何らかのOrder関数による計算値を示すことによってこの事実を示すものである。この例は、極めて単純であるが、索引を使用して照会を最適化するという広く使用され一般的に受け入れられているデータベース管理の慣行を代表するものである。
式1
索引によりデータベース表から連続レコードを検索するためのコスト
照会例2は、1993年中に就業していたすべての元従業員の氏名を検出するSQL照会を示している。照会例1とは異なり、任意の条件境界、この場合は任意の時間範囲に関して照会例2を大幅に改善する索引を従来の方法のみを使用して構築することは不可能である。データベース理論の観点から見ると、この照会の難しさは、以下の2通りの事実の相互作用によるものである。すなわち、2つの条件が別々のフィールド値に関するものであり、2つの条件のうちの一方を満足するすべてのレコードを検査して、もう一方の条件も満足するかどうかを確認する必要があることと、各条件が不等式であり、したがって、検査しなければならないレコードのセットがテスト値の一方の前または後に現れる(どちらのフィールド値を最初に検査するかによる)すべてのレコードを含むことである。
照会例2
1993年中に就業していたすべての元従業員を検出するためのSQL
データベース表2によって表されている索引を使用して照会例2を満足するプロセスについて検討する。2つのフィールドのいずれかに基づく索引を使用して照会例2を実行するためのコストは、O(K×N/2)という平均コストと、O(K×N)という最悪ケース・コストになるだろう。換言すれば、照会は平均すると表の半分を調べなければならず、2つの条件のうちの最初の条件を満足するレコードのすべてを検出するためには表全体を検査する必要がある場合もある。索引なしで表全体を走査するためのコストはO(N)なので、索引を使用する価値は完全に失われる(表3を参照)。実際には、このようなタイプの状況が検出されると、照会最適化プログラム(照会を満足するために実行される実際の一連のステップを決定する前処理機能)は、通常、表全体を走査するために索引の使用を放棄する。
式2
開始値または終了値に関する従来のデータベース索引を使用する間隔に重なるすべてのレコードを検索するためのコスト
より抽象的な観点から見ると、この例の難しさは、従来のデータベース表現が考慮に入れていないより多くの情報が実際に存在することである。事実、開始日と終了日は、含まれる時間範囲である単一データ項目の2通りのファセットである。空間的に表現すると、開始日フィールドと終了日フィールドは時間線上の2つの位置を定義し、これらの位置間の差によってサイズが定義される。単純な1次元データの場合でも、従来のデータベース管理では位置とサイズの両方に基づいて照会を最適化することができない。
2次元空間データの概説
空間データベースは、関連オブジェクトの数が膨大であるため、効率のよいデータベース管理を特に厳しく要求している。中位のサイズの地域社会の総合的な街路マップは、数万ないし数十万個の個々の街路ブロックからなる可能性があり、カリフォルニア州ロサンジェルスまたはニューヨーク州ニューヨークの広域マップは、百万個以上の街路ブロックを含む可能性がある。同様に、最新の集積回路の設計図も数百万個のコンポーネントを含む。
図1は、X軸とY軸を有する座標平面を示している。以下に示す例のため、平面のサイズは200×200座標単位になるように選択し、X軸とY軸の両方について最小座標値および最大座標値をそれぞれ−100および100とする。ただし、以下の例について述べる原理は、平面、円柱表面、球面の各座標系を含みかつこれに限定されない任意のサイズのいかなる有界2次元座標系についても適用可能であることに留意されたい。最小緯度値および最大緯度値が−90度および+90度であり、最小経度値および最大経度値が−180度および+180度である地球表面の緯度/経度座標系はこのような球座標系の一例である。
図2は、図1の平面上における点の分布を示している。前述のように、点は最も単純なタイプの空間データ・オブジェクトである。その空間記述は座標位置情報のみからなる。一般に点オブジェクトに関連する非空間記述の例としては、その位置にある事業所の名前とタイプ、たとえば、「レオンズ ビービーキュー」または「レストラン」を含む可能性がある。
図3は、マップを表す線形および多角形空間データ・オブジェクトの分布を示している(ただし、「Hwy 1」および「Hwy 2」というテキスト・ストリングはそれ自体は空間データ・オブジェクトではなく、むしろそれに対応するオブジェクトに近接配置されたラベルであることに留意されたい)。線形および多角形データ・オブジェクトの空間記述はより複雑なものになる。というのは、座標系におけるそれぞれの位置に加え、サイズおよび形状情報を含むからである。一般に線形マップ・オブジェクトに関連する非空間記述の例としては、その線が表す街路の名前と住所範囲、たとえば、「100-199メインストリート」を含む可能性がある。また、一般に多角形マップ・オブジェクトに関連する非空間記述の例としては、多角形オブジェクトの名前とタイプ、たとえば、「ミシガン湖」、「大きい湖」になる。
図4は、様々な線形および多角形空間データ・オブジェクトの最小境界矩形(MBR)を示している。ある空間データ・オブジェクトの最小境界矩形は、そのオブジェクトを完全に含み、座標軸に直交する最小矩形である。最小境界矩形は、通常、その空間記述に現れる最小座標値および最大座標値の単純な検査によって非常に容易に計算できるものである。空間データ記憶検索方法では、最小境界矩形を使用して、オブジェクトの近似位置およびサイズを表す場合が多い。というのは、その単純な内容(2対の座標)が非常に効率のよい処理に向いているからである。
従来のデータベース管理システムにおける2次元空間データの記憶
データベース表3は、図2の点の一部を正規のデータベース表に表す方法を示している。データベース表3の点は、図2に示す点のうち、*マーカで示した点のサブセットに対応する。照会例3は、矩形ウィンドウ内のすべての点を取り出すSQL照会を示している。矩形ウィンドウ照会は、一般に使用される幾何照会タイプのうちの最も単純なタイプである。検査によって、「エミリーズ ブックストア」がこの照会によってデータベース表3から選択される唯一のレコードであることが明らかになる。図5は、図2に示す点の上に重ねられた照会例3に対応する矩形ウィンドウを示している。
照会例3
ウィンドウ内のすべての事業所を検出するためのSQL
この例が示す主な問題は、単純な索引を構築する従来の照会最適化方法では有用と言えるほど十分にうまく機能しないことである。Xフィールド値に基づいて索引を構築する方法について検討する。この索引を使用して照会例3を満足すると、その結果、図6に示す2本の太い垂直バーが示すようにデータベース表のオーバーサンプリングが発生する。この照会を実行する場合、実際に陰影付きウィンドウ内におさまるかなり小さいサブセットを検出するために、この2本のバー間にあるすべての点オブジェクトのレコードを検査することが必要になる。データベース表3の「スーパー セーバー」レコードは、不必要に検査されそうなレコードの一例である。
照会を開始するのに必要な作業は対数であるが、オーバーサンプリングが行われる点オブジェクトの予想数は、式3が示すように、データベース内の点オブジェクトの数の線形関数になる。これは、データベース内のオブジェクトの数が増すにつれて、この照会のパフォーマンスが直線的に低下する傾向があることを意味する。データ・ボリュームが大きくなると、この線形行動は好ましいO(log(N))よりかなり悪くなり、このスタイルの解決がまったく無効になる。Yに基づく索引の場合も同じ問題が発生する。この問題の根本的原因は、2次元空間座標が互いに独立しているがほとんどの空間照会の場合に同じように重要な2つの値(XとY)からなることである。従来のデータベース管理技法は、2次元データの処理にはあまり適していない。
式3
ほとんど均一なXの分布を想定し、従来のデータベース索引付け方法を使用して2次元矩形ウィンドウ照会を実行するための平均コスト
関連の2次元空間データ構造の説明
従来のデータベース管理方法が空間データに関して問題を抱えているので、その結果、空間データ構造と呼ばれる様々な専用データ記憶検索方法が開発された。ハナン サメットによる空間データ構造の設計及び分析(The Design and Analysis of Spatial Data Structures)には、このような方法の多くに関する検討内容が記載されている。一般に使用される空間データ構造の多くは、タイル・ベースの階層ツリーの概念を頼りにしている。
図7は空間の矩形再帰的分解を示しているが、図8はその分解によって形成されたタイルを編成して「ツリー」(探索のために設計された階層データ構造)を形成する方法を示している。このタイプのデータ構造はクワッドツリーと呼ばれる。図9は、このクワッドツリーの「リーフノード」に分散された図2の点を示している。
図10は、照会例3の矩形ウィンドウ検索が接触するクワッドツリーのサブセットを示している。ただし、クワッドツリー内で検査しなければならない2つの下位レベル・ノードと、図6に示すように従来のデータベース索引付けを使用して検査しなければならない長いストライプとのコントラストに留意されたい。図10の2つのノードからの点のうち、すべての検査済みの点は、少なくともこの矩形の近傍にあり、図6のストライプの内側のいくつかの点は文字通り座標系の向こう側のエッジ(底部)にある。この例は単純なので検査済みの点の数の差は大きくないが、点オブジェクトの数が非常に大きい場合はパフォーマンス・コントラストが劇的なものになる。クワッドツリーは、座標系の両方の軸に沿って同時に索引を付けるので、位置ベースのデータを記憶するのに非常に適したものである。
クワッドツリーの最も基本的な実施態様では、階層内の各タイルは、そのタイルに関連する情報を含む「レコード」に対応する。そのタイルがルートまたはブランチ・レベルにある場合、対応するレコードは、各子タイルに関するレコードの座標およびそのレコードを指すポインタを含むことになる。タイルがリーフ・レベルにある場合、対応するレコードは、タイルの外周内に幾何学的に含まれる空間データ・オブジェクトのサブセット(点、線、または多角形オブジェクトおよびその属性)を含む。クワッドツリー・データベースの「レコード」は、ルートがファイルの先頭になり、幅優先または深さ優先の順序でディスク・ファイルに記憶される。また、一部の空間データ・オブジェクトを階層のより高いレベルに保持し、ほとんどまたは完全に空であるリーフおよびブランチ用のレコードは実際には作成しないような様々な変形例が存在する。たとえば、図9のリーフ133および144はどちらも空である。
クワッドツリー・データ構造の利点は、データの空間密度がかなり均一である場合にO(log(N))というコストを示し、その結果、うまくバランスの取れたツリーが得られることである。このバランスは、ブランチの量を制御する構成アルゴリズムによって推進される。クワッドツリー内のブランチの量(したがって、最大深さ)は、空間データ・オブジェクトの局所密度と、リーフ・レベル・レコードに収容可能なこのようなオブジェクトの最大数との相互作用によって推進される。具体的には、リーフ・レコード内のデータ記憶が一杯になると、そのリーフは4つの子に分割され、それに応じてその空間データ・オブジェクトは幾何学的封じ込めによって再配分される。これが行われるたびに、ツリーの局所高さは1だけ大きくなる。しかし、このアルゴリズムの行動の結果、局所データ密度が非常に高くなり、そのため、ツリーの深さが過大になったことによりクワッドツリーのパフォーマンスがO(N)というコストに向かって低下する。
また、座標系内のハード・エッジ・タイルの非階層的使用法は多種多様である。このような方法の1つでは、タイルを順序付けるために空間充填曲線を使用する。図11は、ペアノ−ヒルベルト曲線を使用して4×4のタイリングを順序付ける方法を示している。この結果得られるタイルは、一方の側に50ユニットになる。このように順序付けられたタイルは、クワッドツリー内のリーフと同様のレコードに記憶することができ、各レコードに記憶されたデータはタイルの外周内に含まれるサブセットに対応する。レコードは、タイル番号をレコード位置に変換する表によって簡単に索引を付けることができる。
また、このタイルは、タイルのメンバーシップを割り当てるための単純な計算フレームワークとして使用することができる。データベース表4は、図11からの対応タイル番号フィールドによって強化された事業所位置データベース表を示している。タイル番号は、その点を含むタイルのXおよびYの列番号および行番号の2進表現を計算し、周知のペアノ−ヒルベルト・ビットインタリーブ・アルゴリズムを適用してシーケンス内のタイル番号を計算することによって決定される。タイル番号フィールド上の索引を構築することにより、従来のデータベースにレコードを記憶する場合でも、そのレコードを幾何学的照会によって効率よく探索することができる。たとえば、タイル番号8または9によってマークされたレコードだけを検査することにより、照会例3に示す矩形ウィンドウSQL照会を満足できることを計算することは可能である。
このシステムの予想コストの分析によって、このシステムと同様のすべてのシステムが共用するタイル細分性の重要性が示される。式1に示すデータベース照会用のOrder関数から補外すると、この方法のorder関数が式4によって示される。固定サイズのウィンドウ検索矩形の場合、タイルの予想数は式5によって示される(ウィンドウ検索が少なくとも1つのタイル境界を横切る可能性を反映するために各括弧内で1が加算されている)。したがって、所与の平均サイズ・ウィンドウ検索の場合、式4のAの値はタイリングの細分性の逆幾何関数になり、これはタイリングの細分性を増加することによって最小限にすることができる。タイルあたりの点の予想数は式6によって示される。したがって、所与の平均データ密度の場合、式4のBの値は、おおよそ、タイリングの細分性の二次関数になり、これはタイリングの細分性を減少することによって最小限にすることができる。したがって、所与の平均検索ウィンドウ・サイズおよび平均データ密度の場合、式4の予想値は、AおよびBの競争傾向によってシステムの最良最小行動が得られる点を見つけるためにタイリングの細分性を調整することによって最小限にすることができる。
式4
データベース表に埋め込まれたタイル番号を使用するウィンドウ検索の予想コスト
式5
検索あたりのタイルの予想数
式6
タイルあたりの点の予想数
この技法では依然としてデータベースのオーバーサンプリングが行われるが、サンプリングされるレコードの予想数は、タイル内のレコードの予想数に照会を満足するために必要なタイルの平均数を掛ける関数になる。タイル・サイズを調整することにより、X座標またはY座標のみに基づく単純な索引とは異なり、このデータベース索引付け方式のO(log(N))という特性を保持するように、この方法の行動を制御することが可能である。2次元の「HHCODES」のオラクル社によるインプリメンテーションはこのタイプの方式の一例である。
すべてのタイル・ベース方式が抱える問題は、図12および図13が示すように、より高次元のオブジェクト(セグメント、ポリライン、多角形)は点のようにきちんとはその方式に適合しないことである。図12は図3からの線形および多角形データ・オブジェクトがクワッドツリー例の様々なノードに自然に分かれる様子を示している。ただし、クワッドツリーのより高いレベルにどれだけ多くのオブジェクトが存在するかに留意されたい。具体的には、下位レベルのタイル境界の1つを横切るオブジェクトはツリー内の次に高いレベルに保持されなければならない。というのは、そのタイルは、そのオブジェクトを完全にカバーする最小タイルであるからである。これは、単一エンティティとして境界を横切る可能性のあるオブジェクトを収容するためにクワッドツリー・タイル階層が有する唯一の方法である。
図13は、階層ツリーを上へ移動するデータが矩形ウィンドウ検索例に及ぼす劇的影響を示している。線形および多角形データは位置に加え、サイズを有するので、一部の実質的なサブセットは必ずタイル境界をまたぐことになる。データベース内のオブジェクトの数が増大するにつれて、クワッドツリーの上位ノード内に存在するオブジェクトの数も増大し、その結果、構造を使用するというパフォーマンス上の利点が損なわれることになる。この問題は、すべてのハード・タイル境界方法(クワッドツリー、K−Dツリー、グリッドセル他)が分担している。
タイル境界をまたぐオブジェクトを管理するという問題に打ち勝つために使用する主な方法は、1)タイル境界を横切るオブジェクトを複数の断片に分割し、それによりデータ・オブジェクトを適合させること、2)オブジェクトが接触する余分なタイルごとに1回ずつそのオブジェクトを複製すること、3)それが接触する各タイルごとに1回ずつ各オブジェクトを間接的に参照することの3通りがある。特に、断片化は、読取り専用マップ・データ・アプリケーションで最も頻繁に使用されるものである。これらの各方法はそれぞれの長所を有するが、そのすべてが分担している弱点は、特に空間データベースの内容を動的に編集しなければならないときにインプリメンテーションの複雑さが大幅に増すことである。ただし、これらの技法は違反オブジェクトのそれぞれに適用する必要があり、このオブジェクトは、図13の中間レベルおよび上位レベルのノードのオブジェクト集団が示すように、データベースの相当な部分になる可能性があることにも留意されたい。
Rツリー(またはレンジツリー)は、線形および多角形データの複雑さに対処するように特に進化したデータ構造である。クワッドツリーと同様に、Rツリーは、1つのルートと、実際の空間データを含むリーフに至る複数のブランチ・レベルからなる階層探索構造である。平面のトップダウン正規分割から構築されるクワッドツリーとは異なり、Rツリーは、空間データ・オブジェクトの不規則性に適合するようにボトムアップで構築される。リーフレベル・レコードは、同様のサイズおよび局所性を有するデータ・オブジェクトをまとめて収集することによって形成される。各レコードごとに、レコード内のセット・オブジェクトの最小座標値および最大座標値を定義する最小境界矩形が計算される。次に、同様のサイズおよび局所性を有するリーフ・レコードは小枝レベルのレコード内に収集されるが、このレコードは、それぞれの子レコードの最小境界矩形とその子レコードを指すポインタのリストと、集合全体を取り囲む追加の最小境界矩形からなる。次に、このような小枝レコードをまとめて収集して次のレベルのブランチを形成し、ツリーが単一ルート・レコードに収束するまで繰り返す。うまくバランスの取れたRツリーはO(log(N))という効率を示す。
Rツリーの難しさは、ツリーを構築するためにどのようにデータ内容がまとめて「適合する」かによってその定義が決まるので、Rツリーを構築し維持するためのアルゴリズムが複雑になり、そのデータ内容に非常に敏感になる傾向があることである。データ内容が変化しないようなRツリーの静的アプリケーションは実現するのに最も容易なものである。データが絶えず変更されるような動的アプリケーションはかなり難しいものである。これは、幾分、空間データの幾何学的記述を変更するような編集操作が包含レコードの最小境界矩形を変更する可能性を暗に有するからであり、それが親の小枝レコードの最小境界矩形に影響し、ルートに至るまで次々に影響する可能性があるからである。したがって、どの操作もツリー構造の大幅な再編成を引き起こす可能性があり、その構造はO(log(N))という効率を維持するためにうまくバランスが取れた状態を保持しなければならない。
要約すると、様々な専用データ構造は、多次元空間データ記憶の特定の要件を満足するように進化してきた。これらの技法は2次元空間データに関連する問題の一部を効果的に解決するが、連続範囲の値を表すデータを扱うときに1次元の方法が有するのと同じ固有の弱点も分担している。1次元の場合、問題データ・オブジェクト・タイプは単一変数の閉区間、たとえば、時間区間である。2次元の場合、線、円、多角形などの問題データ・オブジェクト・タイプは、2つの変数の閉区間によって記述される。
3次元およびより高次元の空間データ構造の説明
3次元表面を記述する空間データには、効率よく編成するための同様の要件がある。追加された複雑さとしては、3次元空間データが同等の重みを有する3つの独立変数(X、Y、Z)からなることである。線、表面、ボリュームの3次元の幾何学的記述も2次元の線および多角形より複雑なものになり、このため、データはいくらかかさが増すことになる。
しかし、3次元の基本データベース編成問題は基本的には2次元空間のものと同じであり、したがって、非常によく似た解決策に従うことになる。クワッドツリーと同等で、3次元空間の正規立方分割を使用する3次元技術が存在する。オラクル社では、点オブジェクトを記憶するためのその「HHCODE」技術の3次元バージョンも実現した。また、Rツリーと同等で、3次元最小境界枠を使用してリーフおよびブランチの座標範囲を定義する3次元技術も存在する。これらの技術も、連続する3次元区間を表すデータを処理するときに1次元および2次元技術と同じ制限を分担する。
また、同じ原理はより高次元のデータにも適用される。特に、オラクル社では、最高11次元までの点オブジェクトに対処するためにその「HHCODE」技術を拡張した。
前述のように、データベース内の多次元空間データを効率よく編成し、索引を付けることに関連する問題がいくつかある。このため、空間データを凝視するための改良された方法が有利になるだろう。この利点は、本発明のシステムによって提供される。
発明の概要
前述のように、情報のデータベースは数百メガバイトのデータを含むことができ、それにより、効率よく探索するのが非常に困難になる。しかし、本発明の方法およびシステムによって記憶される多次元データは、従来のシステムよりかなり少ないプロセッサ・サイクルおよびディスク・シークで検索することができる。
従来、大量の空間データを編成するための1つの方法は、まず、空間データの上に座標系を重ねることであった。空間データベース内の各オブジェクトにはX座標とY座標が割り当てられるはずである。線、多角形、その他の形状など、より大きいオブジェクトには、そのオブジェクトをその位置に保持するためのアンカーのように機能する座標系内の単一位置点が割り当てられるはずである。たとえば、線はその一方の端部に対応する位置点を有する可能性があり、そのオブジェクトの残りの部分はもう一方の端部のX座標とY座標、線の太さ、カラー、その他の特徴に関する情報を含むはずである。このようにして、空間データベース内の各オブジェクトは、そのオブジェクトがデータベース内でどのくらいの大きさであっても、単一位置点を有するはずである。
より大きい座標系を小区域に分割することにより、特定の小区域に各位置点を割り当てることができるだろう。このような小区域は、1組の空間データを含む座標系の上に重ねられた一連のタイルに似ているので、タイルと呼ばれる。したがって、各タイルは、特定の1組の空間データを保持するだろう。その結果、どのタイルが所望の情報を保持しているかを知っているユーザだけがその特定のタイルを探索すればよかった。コンピュータ・ユーザが空間データベース内の所望の領域内の空間データを識別すると、システムは、メモリからこのいくつかのタイルを読み取り、そのタイルからオブジェクトを収集するプロセスを開始した。この方法では、それにより、システムがコンピュータ・ユーザのすべての要求に対してデータベース全体のすべてのオブジェクトを分析するのを防止していた。
データ・オブジェクトにタイル番号を割り当てるというこのシステムは点のみを含むデータにはうまく機能していたが、より大きいデータ・オブジェクトが関連すると非常に遅くなった。より大きいデータ・オブジェクトは空間データベース内の線、円、多角形になる可能性がある。空間データ・オブジェクトの編成に関連する多くの問題は、オブジェクトが多くのタイルを横切る場合にこれらのオブジェクトを唯一のタイルに割り当てるという難しさを処置しなければならなかった。たとえば、3つのタイルを横切る長い線は多くの問題を提起する可能性がある。その長い線には特定のタイルが一切割り当てられていないので、その線は間違ったタイルかまたは一連のタイルに割り当てられる可能性がある。線などのオブジェクトを複数のタイルに割り当てると、このような関連付けのすべてをコンピュータ・システム内で維持しなければならないので、膨大なコンピュータ・オーバヘッドが発生する。
一実施の形態によれば、空間データベース内のすべてのタイル間に一連のオーバラップを設けることにより、このような従来の問題が低減される。このようなオーバラップ・タイルは、ここでは「シングル(shingle)」と呼ばれ、それぞれの最も近い4つの隣接物にオーバラップするタイルを表す。どのシングルについてもオーバラップの面積は、最大効率をもたらすようにあらかじめ決定することができる。たとえば、マップ・データを保持する空間データベースは、10平方マイルというシングル・サイズを有し、各シングル・オーバラップが5平方マイルを含むようにプログラミングすることが可能である。したがって、あらゆるシングルは、隣接シングルのサイズに等しい、その最も近い4つの隣接物とのオーバラップを有することになるだろう。このシングル・オーバラップにより、空間データベース内のより多くのデータ・オブジェクトを唯一のシングルに割り当てることができ、複数のハード・エッジ・タイル間で分割されない。前述のように、1つのオブジェクトを複数のタイル間で分割することは非常に不利なことである。というのは、特定のオブジェクトに割り当てられたすべてのタイルをシステムが追跡しなければならないからである。
したがって、層状シングル構造の目的は、データベースへの空間照会を適時にかつ効率よく解明するための論理フレームワークを提供することである。空間データ構造は、空間データ・セット内のオブジェクトに索引を付けるための編成を可能にする概念構造である。層状シングル構造は、有用かつ効果的になるように特定のコンピュータ・データ構造で実施する必要はない。層状シングル構造は、空間におけるそれぞれの同様の位置およびサイズに基づくサブセットに線、四角形、多角形などの1組の空間データ・オブジェクトを編成するための計算ツールの一部である。さらに、層状シングル構造は、データベースへの特定の空間照会が要求する必要かつ十分な空間データ・オブジェクトを含むデータベースのサブセットを識別するためのメカニズムを提供することができる。
本発明のシステムおよび方法は、タイトル境界を横切る小さいオブジェクトがツリーのより上位レベルへ移動するという従来システムで見られた問題を軽減する。一実施の形態では小区域の層が生成され、オーバラップする領域ができるようにタイルが計算される。したがって、タイル間にはいかなるハード・エッジも存在しないか、あるいは1つのオブジェクトが2つのタイル内に同時に存在する可能性がある。このようなオーバラップした小区域はシングルと呼ばれる。シングルは、たとえば、その最も近い近隣物の半分とオーバラップする可能性があるので、大きいシングル領域におさまるオブジェクトは、可能な限り最低のレベルにとどまることになる。本発明のもう1つの利点は、空間データベースに対して最高速アクセスを行えるように各層のシングル・オーバラップ・サイズを事前にプログラミングすることができるので、個々のデータベースの効率が改善されることである。
街路などの多数の小さいオブジェクトを伴うデータベースは、フリーウェイなどの多数の大きいオブジェクトを有するデータベースより小さいシングル・オーバラップ・サイズでプログラミングすることができる。シングルおよびオーバラップ領域のサイズを平均データ・オブジェクトのサイズに応じて調整すると、より多くのデータ・オブジェクトが本発明のデータベースアーキテクチャ内の単一の下位レベルに保持される。しかし、1つのシングル内におさまることができないデータ・オブジェクトは、次に高いレベルのシングルに記憶させることができる。
たとえば、第1のレベルのシングルは、5平方マイルのシングル・サイズを有し、マップ・データベースを10000個のシングルに分割する可能性がある。しかし、第2のレベルのシングルは、10平方マイルのシングル・サイズを有し、マップ・データベースを2500個のシングルに分割する可能性がある。これについては、図12を参照して以下により具体的に説明する。
本発明の実施の形態は、マップ・データベース内の空間データ・オブジェクトを編成する方法であり、データ・オブジェクトを領域内の位置点としてある座標系に対して基準付けする(referencing)こと、その領域を複数の小区域に分割すること、およびオブジェクトのいずれの部分も所定の量だけその小区域の外に延びていない限り、その位置点がその1つの小区域内に入っているデータ・オブジェクトをその小区域に割り当てることを含む。
本発明の他の実施の形態は、空間データ・オブジェクトをコンピュータ・メモリに記憶する方法であり、(1)座標系内の各データ・オブジェクトのサイズを決定するステップと、(2)各空間データ・オブジェクトを座標系内の位置点に割り当てるステップと、(3)座標系内の各点が少なくとも1つの小区域に割り当てられるように座標系のオーバラップ小区域の第1の層の境界を計算するステップと、(4)第1の層内の前記小区域のサイズより小さい各空間データ・オブジェクトに、各空間データ・オブジェクトの位置点に基づいて座標系の特定の小区域を参照させるステップと、(5)特定の小区域に対するその参照とともに空間データ・オブジェクトをコンピュータ・メモリに記憶するステップとを含む。
【図面の簡単な説明】
図1は、2次元空間における座標平面を示す図である。
図2は、図1の座標平面上の点空間データ・オブジェクトの分布を示すコンピュータ・データベースの図である。
図3は、図1の座標平面上のマップを表す線形および多角形空間データ・オブジェクトの分布を示すコンピュータ・データベースの図である。
図4は、コンピュータ・データベース内の線分、ポリライン、多角形に対応する最小境界矩形を示す図である。
図5は、図1の座標平面上の矩形ウィンドウ検索を示す図である。
図6は、図1の座標系を示す図であり、従来のコンピュータ・データベース索引付け方式が座標平面内の空間分布データの探索に適用されている。
図7は、図1の座標平面の正規象限ベースの分解を示す図である。
図8は、コンピュータ・データベース用のクワッドツリータイプの空間データ構造を形成するために図7の座標平面分解の象限および小象限を編成する方法を示すツリーの図である。
図9は、コンピュータ・データベースの空間データ構造におけるクワッドツリー・ノードへの点データ・オブジェクトの分散を示す図である。
図10は、コンピュータ・データベースのクワッドツリーベースのデータ構造に適用された矩形ウィンドウ検索の図であり、2次元点データを管理する場合にこのデータ構造が有効であることを示す図である。
図11は、ペアノ−ヒルベルト空間充填曲線を計算することにより、コンピュータ・データベースが正規象限ベースのタイリング方式を使用して2次元データを編成する方法を示す図である。
図12は、線形および多角形空間データ・オブジェクトがクワッドツリーとして編成されたコンピュータ・データベースの2次元データ構造におさまる様子を示す図である。
図13は、クワッドツリーとして編成され、線形および多角形データを含むコンピュータ・データベースに適用された矩形ウィンドウ検索の図である。この図は、2次元データをこのタイプのデータ構造に編成し、固有のサイズを有する空間データを管理することが無効であることを示している。
図14は、座標平面に適用された3レベルの層状シングル構造を有するコンピュータ・データベースの編成を示す図である。
図15は、本発明の層状シングル構造を使用して編成されたコンピュータ・データベースに分散された線形および多角形マップ・データ要素を示す図である。
図16は、本発明の層状シングル構造に適用されたコンピュータ・データベース用の矩形ウィンドウ検索の図であり、サイズを有する空間データを管理する場合にこのデータ構造が有効であることを示す図である。
好ましい実施の形態の詳細な説明
次に添付図面を参照するが、図面全体を通して同様の番号は同様の部分を示す。また、便宜上、以下の説明は、概要、関数の説明、データベース表内のインプリメンテーション例、経験的分析、数学的分析、結論という主な項として編成する。
1.概要
本発明は、大量のデータを編成するための方法およびシステムである。本発明の実施の形態を示すために使用する例はマップ・データを編成するためのものであるが、この技法は他のタイプのデータにも適用可能である。適用可能な他のデータ・タイプとしては、機械製図および建築図面、アニメーションおよびバーチャル・リアリティ・データベース、ラスタ・ビットマップのデータベースなどがある。
さらに、添付図面では2次元のオブジェクトを表すデータを編成するために使用可能な本発明の実施の形態を示しているが、本発明は3次元またはそれ以上の次元のオブジェクトに関するデータの編成にも適用可能である。
したがって、前述のように、層状シングル構造の目的は、コンピュータ・データベースへの空間照会を適時にかつ効率よく解明するための論理フレームワークを提供することである。層状シングル構造は、有用かつ効果的になるように特定のコンピュータ・データ構造で実施する必要はない。層状シングル構造は、空間におけるそれぞれの同様の位置およびサイズに基づくサブセットに線、四角形、多角形などの1組の空間データ・オブジェクトを編成するための計算ツールの一部である。さらに、層状シングル構造は、データベースへの特定の空間照会が要求する必要かつ十分な空間データ・オブジェクトを含むデータベースのサブセットを識別するためのメカニズムを提供する。さらに、層状シングル構造は、好ましい一実施の形態ではIntel(R)プロセッサ・ベースのコンピュータ・システムで動作することができる。しかし、Apple(R)、DEC(R)、IBM(R)が販売しているような他のコンピュータ・システムも本発明の範囲内で機能することが予想される。
図14は、それが図1に示す座標平面例に適用されるはずなので、3レベルの層状シングル構造を示す図である。この層状シングル構造は、図7に示す座標平面の正規象限ベースの分解と同様のものである。しかし、各レベルのデータ構造が別個のハードエッジ・タイルで編成されるのではなく、各レベルはオーバラップ・シングルからなる。隣接シングル間のオーバラップについては、以下に詳述するが、図14では陰影付きバンド22で示す。ただし、他の構成は可能であるが、座標軸に対して垂直の正規オーバラップ四角形または矩形によって形成されるシングル1〜18は、最も理解しやすく、実現しやすいものであることに留意されたい。
層状シングル構造の最も微細なレベル(図14のシングル1〜16)は、空間データの大多数のための索引付け媒体として機能するように設計されている。したがって、データ・オブジェクトの大多数がデータ構造のこのレベルのシングルに割り当てられることが望ましい。したがって、空間オブジェクトは、所定の量を上回る量だけ、シングルの中央部分のエッジを越えて延びる(たとえば、そのオーバラップは階層内の次に高い層に割り当てられることになる)。その最も微細なレベルの細分性(シングルのサイズおよびオーバラップの量)は、そのレベルのシングルに「おさまる」空間データ・オブジェクトの数を最小限にする場合(シングルのサイズを増大することによって実施する)と分割の程度を最大限にする場合(シングルのサイズを低減することによって実施する)の競争傾向間のバランスを取るように調整することができる。より粗大なレベルのシングル(シングル17〜20からなる図14のシングル・レベル)は、その最も近い隣接物とのシングル付きオーバラップを含み、最も微細なレベルにおさまらないオブジェクト(すなわち、空間的に大きすぎて特定のタイル内におさまらないオブジェクト)のための代替索引付け媒体として機能する。ただし、オーバラップの絶対サイズは、連続的により粗大になる各レベルのタイル・サイズが増大するにつれて増大することに留意されたい。最後に、大きすぎてデータ構造の他のタイル内におさまらないような少数のオブジェクトを割り当てるために使用する最上位レベルのシングル21(図14)が存在する。
図15は、図3に示す線形および多角形オブジェクトのそれぞれを本発明の層状シングル構造データ内に編成する方法を示す図である。以下に説明するように、各シングルは同様の位置およびサイズを有するオブジェクトのサブセットを含む。本発明のデータ構造によって提供される正規オーバラップ・タイルの利点は、図15の本発明のデータ構造編成と図12のデータ構造編成を比較することによって分かるだろう。このシングル付きオーバラップ・システムにより、従来技術のデータ構造の任意のタイル境界上に位置していた小さいデータ・オブジェクト(図12のタイル100、110、120、130、140内の集団の大部分)は層状シングル構造の最低レベル内にとどまることができる。具体的には、所与のレベルのオーバラップのサイズより小さいオブジェクトは、そのレベルまたはそのレベルより下にある何らかのシングルにおさまることが保証されている。さらに、シングル・オーバラップより大きい多くのオブジェクトは、それより下のレベル内におさまることができる。たとえば、図15のシングル1、6、9は、このようなオブジェクトでほとんど占められている。ただし、同じオブジェクトの図12における位置に留意されたい。データ・表2は、図15対図12のデータ・オブジェクト分割の数値比較を示している。
図16と図13を対照すると、層状シングル構造によってもたらされる改良された分割方式によって、従来技術に基づく同等の構造より矩形ウィンドウ照会パフォーマンスが改善される理由が分かる。データ照会中に検査する必要があるタイルの数は図13の5から図16の7にわずかに増加しているが、検査しなければならないデータ・オブジェクトの数はほぼ半分だけ(16対31)低下している。この低下は、まさに、各区画のサイズがわずかに増大したことによって、より多くのオブジェクトがより微細な区画レベルにおさまることができるためである。前述のように、空間データ照会は、その照会のパラメータを満足する各タイル内のあらゆるオブジェクトを検査しなければならない。したがって、図13の場合、最上位レベル・タイル100内の各データ・オブジェクトを検査して、それが空間データ照会のパラメータを満足するかどうかを判定しなければならない。本発明の方法によって編成されると、このように多くのデータ・オブジェクトがより小さいタイル構造内に存在できるので、空間データ照会中に検査すべきデータ・オブジェクトの数は少なくなる。このため、本発明のシステムによって編成されるコンピュータ・データベースは、従来技術のシステムより高速で探索することができる。
ただし、実際には、図12および図13に示す従来技術に基づく同等の構造はめったに実現されないことに留意されたい。これは、上位レベルに固定されたオブジェクトの数が多すぎて、妥当なパフォーマンスを可能にするには負担になるからである。むしろ、ハード境界方法は、タイル境界で個々のデータ・オブジェクトを断片化すること、オブジェクトが接触する各タイルごとに1回ずつそのオブジェクトを複製すること、オブジェクトが接触する各タイルごとに1回ずつそのオブジェクトを間接的に参照することを含む、代替戦略を頼りにしている。
2.関数の説明
本発明の好ましい実施の形態は、2通りの主なクラスの関数を提供する。第1のクラスであるシングル割当て関数は、空間データ・オブジェクトの空間記述を「シングルキー」に変換するものである。シングルキーは、層状シングル構造内の特定のシングルを一意的に表す数値である。第2のクラスである照会制御関数は、所与の共通幾何照会の照会指定を、照会を満足するために必要なデータを「含む」必要かつ十分なシングルキーのリストに変換するものである。
付録Aには、Cプログラミング言語で作成された本発明の好ましい一実施の形態が記載されている。所定の最小境界矩形の場合のシングルキーを計算する1つのシングル割当て関数KeyForBox(0507行から始まる)と、矩形ウィンドウ照会を解決するために必要なすべてのシングルキーをまとめて計算して返す1つの照会制御関数セット、すなわち、KeyRectCreate(0703行)、KeyRectRange(1030行)、KeyRectDestroy(1125行)が存在する。KeyForBox関数呼出しとKeyRectCreate関数呼出しはどちらも、それぞれに対応する空間記述パラメータが小数を伴う経度(X1およびX2)および緯度(Y1およびY2)座標で表されるものと予想する。また、これらの関数はどちらも、層状シングル構造にどちらのレベルを含めるべきかを制御するnLevelMaskと、隣接シングル間のオーバラップの量を制御するnLevelLapという2つの追加パラメータを取る。付録Aに含まれるインライン・ドキュメンテーションには、パラメータの用法が詳細に記載されている。
ただし、KeyForBoxとKeyRectCreateのどちらの場合も、倍精度の経度/緯度座標が直ちに固定小数点整数表現に変換され、360度分の経度が28ビットの整数X座標で表され、180度分の緯度が27ビットの整数Y座標で表されることに留意されたい。この表現の分解能は概略で地上の最も近い1/2フィートの精密さである。倍精度から固定小数点へのこの変換により、シングル封じ込めとペアノ−ヒルベルト・シングル順序付けの両方を計算するために非常に効率のよいモジュール2進算術演算を使用することができる。
便宜上、この項の残りの部分は、以下のようにシングル割当て関数、照会制御関数、従来のデータベース内でのインプリメンテーションという3つの項に分割する。
2.1 シングル割当て関数
シングル割当て関数によって生成されるシングルキーは、1組の空間データのメンバをサブセットに分割するために使用するが、この場合、1つのサブセットのすべてのメンバは同じシングルキーを有する。これは、1つのサブセットの各メンバを同じシングル上に「おさめる」ことができることを意味する(たとえば、そのオブジェクトを含む最小境界枠のサイズがタイルより大きくない)。さらにこれは、1つのサブセットのすべてのメンバが同様の空間サイズと位置を有することを意味する。したがって、シングルキーによって記憶メカニズム内のデータに索引を付けてクラスタ化すること(効率を改善するための共通のデータベース管理慣行)は非常に効果的である。というのは、通常、空間照会は同様の位置およびサイズを有する複数のオブジェクトを1つのグループとして選択するからである。
手順表1は、特定の空間データ・オブジェクトに対応するシングルキーを導出する1組の計算ステップを示している。この表内のステップは、付録AのKeyForBox関数の0536〜0652行に対応する。これらのステップの一部については、後続パラグラフで詳述する。
手順表1に示すステップ1は、空間データ・オブジェクトの最小境界矩形を計算することである。空間データ・オブジェクトの最小境界矩形は、座標軸に対して垂直で、そのオブジェクトを完全に含む最小矩形である。最小境界矩形を表す典型的な方法は、最小点(従来の座標系の左下隅)と最大点(右上隅)という2つの点によるものである。図4は、いくつかの一般的なタイプの空間オブジェクトの最小境界矩形を示している。手順表2は、様々な一般的なタイプの空間データ・オブジェクトについて最小境界矩形を計算する方法を記述したものである。場合によっては、精密な計算では費用がかかりすぎるときに、最小境界矩形のわずかな過大評価を使用することができる。
手順表1のステップ3では、現行レベルのシングルの最小点(右下隅)が空間オブジェクトの最小境界矩形に最も近くしかもそれ以下であるかどうかの判定が行われる。層状シングル構造が(図14に示し、付録Aに記載したように)座標平面の正規矩形または四角形タイリングに基づいている場合、候補シングルは最小境界矩形の最小点を含むタイルに対応するシングルである。付録AのKeyForBox関数の0590行および0591行では、2進モジュール算術演算を直接使用して、シングルの最小点の座標が計算される(タイル封じ込めが暗示される)。
手順表1のステップ4では、候補シングルの最大点(右上隅)が計算される。この点は、現行レベルの標準シングル幅をx座標に加え、現行レベルの標準シングル高さをy座標に加えることによって、シングルの最小点から直接決定することができる。付録Aでは、この計算はKeyForBox関数の0598〜0601行で行われる。付録Aで使用する層状シングル構造はオーバラップ四角形に基づくものなので、各座標に同じ値が加えられる。
手順表1のステップ5では、シングルの最大コーナーが最小境界矩形(MBR)の最大コーナーと比較される。これは、シングルの最大x座標とMBRの最大x座標ならびにシングルの最大y座標とMBRの最大y座標との区分比較によって実施される。シングルの各座標値がMBRの対応する値より大きい場合、シングルの最大コーナーはMBRの最大コーナーより大きいと言われる。付録Aでは、この計算はKeyForBox関数の0609〜0610行で行われる。
最小境界矩形におさまるシングルが見つからずにステップ2〜5の反復ループが完了した場合のみ、手順表1のステップ6が行われる。したがって、最小境界矩形によって表される空間オブジェクトはシングル構造の下位レベル(たとえば、層)のいずれにもおさまらない。したがって、定義上、それは最上位レベルのシングル内におさまらなければならない。付録Aでは、このステップはKeyForBox関数の0651行および0652行で行われる。
手順表1に示すステップ7は、そのデータ・オブジェクトに「最良適合」であると判断されたシングル用のシングルキーを決定するものである。付録Aでは、KeyForBox関数の0623〜0625行に示すKeyGenerator関数呼出しにより、ペアノ−ヒルベルト空間充填曲線を使用してシングルキー番号を割り当てる。KeyGenerator関数は付録Aの0043〜0485行に実現されている。KeyGenerator関数に与えられるパラメータとしては、シングルの最小点の座標と、層状シングル構造内の対応するレベルとを含む。ただし、異なるレベル間におけるシングルキー番号の固有性は、付録Aの0482行のステートメントによって保証されることに留意されたい。
2.2 照会制御関数
第2のクラスの関数は、コンピュータ・データベースへの空間照会を制御するために使用する。このクラスの関数は、所与の共通幾何照会の照会指定を、照会を満足するために必要なデータを含む必要かつ十分なシングル・キーのリストに変換するものである。このシングルキーのリストは、個々のキーを網羅するリストまたはキー範囲のリスト(その範囲の最小値と最大値を含みかつこれらの値の間にあるすべてのキーが必要であることを暗示する)として表すことができる。
最も一般的なタイプの空間照会は、選択された外周によって定義される領域にオーバラップするすべてのオブジェクトを検出するものである。例としては、矩形ウィンドウ照会と多角形オーバラップ照会がある。手順表3は、このタイプの照会制御関数の一般的な用法を示している。
データベースのいくつかの領域(たとえば、タイル)にオーバラップする照会の場合、照会した領域にオーバラップする1組のシングルは、その領域にオーバラップする各階層レベルからのシングルの和集合である。所与のレベルのシングルは、まずその領域の外周に接触するすべてのシングルを識別し、次に中央セクションから欠落しているシングルで充填することによって検出することができる。照会の外周に接触するすべてのシングルを検出するための方法の1つは、冗長出現を除去するよう注意して、シングルの配置によって各コンポーネントの経路を計算処理で追跡することである。中央セクションから欠落しているシングルを充填するための方法は、外周上で検出されたシングル間を下から上へ、左から右へ計算処理で走査することである。
付録Aのソフトウェア・プログラムは、0655〜1135行で1つの照会制御関数セットを実現する。この関数セットは、所与の経度/緯度矩形にオーバラップするすべてのシングルを識別するものである。手順表4は、この関数セットのアルゴリズム用法を示している。
付録Aのソフトウェア・コードの0792〜1020行に実現された内部関数KeyRectGeneratorは、現行レベルの1組のシングルを計算するために使用する。上記で概説した方法と同様に、この関数は矩形の各エッジに沿ってシングルを追跡する。しかし、ペアノ−ヒルベルト空間充填曲線はシングルを順序付けるために使用し、ペアノ−ヒルベルト曲線はその性質上、連続することが保証されているので、曲線がエッジ上の各シングルで矩形内に向かうかまたは矩形から外へ向かうかに留意し、結果として得られるリストをソートして暗示された各範囲の最小および最大を見つけ、曲線に中央部を充填させるだけで十分である。図17は、ペアノ−ヒルベルト空間充填曲線が空間データベースの1つのレベル内の各タイルを連続的にうねって進む様子を示している。
矩形検索の代わりに汎用多角形検索を実行するために同じ方法を拡張することは可能である。汎用多角形検索は、照会の目的が任意の多角形の内部にあるかまたは任意の多角形の境界に接触しているすべてのデータベースオブジェクトを取り出すことである点で、矩形ウィンドウ検索と同様のものである。しかし、システム照会言語(SQL)の制約のため、照会例3と同等の形式で汎用多角形照会を表すことは不可能である。
汎用多角形照会を実行するために手順表4のアルゴリズムを拡張するには、どのシングルが入口点と出口点に対応するかならびに冗長なものがあればどれが冗長であるかを同時に追跡しながら、外周シリングによって多角形の経路を追跡するように配慮しなければならない。しかし、境界シングルが識別されると、同じ最小および最大範囲編成が機能することに留意されたい。一般に、この方法は、任意の閉領域にオーバラップするすべてのシングルを検出する場合に機能するだろう。
2.3 従来のデータベース内のインプリメンテーション
データベース表5は、図3からの街路セグメントの一部を表すデータ・オブジェクトを含むサンプル・データベース表を示している。シングルという列は図15からの割当て済みシングルキーを含んでいる。X1/Y1およびX2/Y2という列は、選択されたシングル内の各オブジェクト用の最小境界矩形の座標を含んでいる。
照会例4は、付録Aと同様の関数インタフェースがこの層状シングル構造についても存在していると想定し、矩形照会ウィンドウにオーバラップする最小境界矩形を備えた各データ・オブジェクトの一部を検出するためにデータベース表5に照会する方法を示している。この照会は、手順表4のステップ3〜5に対応する。このため、この照会は、矩形にオーバラップするすべてのセグメントを検出するために各キー範囲ごとに1回ずつ繰り返さなければならないだろう。
図16に示すように、照会例4のウィンドウに対応するキー範囲は、8〜9、17〜20、21〜21である。ただし、データベース表5上のこのようなキー範囲を使用してこの照会を実行した結果、シングル9に割り当てられたシングル・オーバラップ・セグメントがどのように選択されるかに留意されたい。データベース表5にリストしていない図3からの他のオブジェクトもこのウィンドウにオーバラップする。
照会例4
キー範囲MinKey〜MaxKeyの場合にウィンドウ内のすべてのセグメントを検出するためのSQL
3.経験的分析
図12および図15の先行比較で識別された分割の改善は、大量の実マップ・データが与えられたときに本発明がどのように機能するかを測定することによって妥当性を検査することができる。データ・表3は、このような測定の1つの結果を示している。このような測定を行うために使用するデータは、カリフォルニア州ロサンジェルス郡の米国Census BureauのTopographically Integrated Geographic Encoding and Referencing(TIGER)データベースファイルからの街路セグメントの抜粋である。CensusのTIGERファイルは、事実上の業界標準の街路マップ・データ・ソースを含む。ロサンジェルス郡というのは、そのサイズが大きく(この抜粋では426367個のセグメント)、包含範囲が多様(密集した都市化の中心、不規則に広がる郊外、人口密度の低い山岳地域および砂漠地域)なので、代表的な選択としては良好なものである。
データ・表3では、25%のオーバラップを有する層状シングル構造と従来技術で見られるような同等のハード境界タイリングにおけるTIGER街路セグメントの自然分布を比較している。これらの統計は、付録Aに示すソフトウェア・プログラムからのKeyForBox関数に各セグメントを供給することによって生成されたものである。25%のオーバラップを有するシングルの統計を生成するため、nLevelLapパラメータに2という値を使用した(shingle_overlap=tile_size * 1/2nLevelLap)。ハード境界タイルの統計を生成するには、オーバラップ量を強制的にゼロにするために、nLevelLapパラメータに32という値を使用した。
データ・表3のレベルという列は、タイル/シングル構造のレベルを示し、0は最も微細な分割であり、14は最も粗大であり、15は最上位レベルの区画である。サイズという列は、結果として得られる象限分割のサイズ(幅と高さの両方)を緯度/経度の度数(=180/2(15-Lev))で示す。シングルのサイズは、実際にはサイズ列に示された値より25%大きい。ただし、付録Aのソフトウェア・プログラムはシングルを緯度/経度空間の四角形として実現することに留意されたい。セグメントという列は、このレベルに自然に適合する(すなわち、タイル/シングル境界を横切らず、KeyForBox関数のpnLevelパラメータによって返される)TIGER街路セグメントの総数を累積する。シングルおよタイルという列は、KeyForBox関数によって返される固有のキー値の総数を累積する。Avという列は、固有のタイル/シングルあたりのセグメントの平均数を計算する。Mxという列は、いずれか1つのタイル/シングルに関連していたセグメントの最大数を示す。
データ・表3の25%のオーバラップを有するシングルという列は、層状シングル構造がこのデータ・セットをどの程度効率よく編成するかを示している。ただし、この構造の下位レベルへのセグメントの浅い分布、すなわち、セグメント95%以上がデータ構造の最下位レベルに定着していることに留意されたい。また、必要な追加レベルは非常に少なく、これらのレベルのシングルあたりのセグメントの平均数および最大数も小さいことに留意されたい。
次に、データ・表3の25%のオーバラップを有するシングルの統計と対応するハードタイル境界構造とを対照させる。これは、街路セグメントデータというこの付加を受けてクワッドツリー・データ構造がどのように行動するかを示す概略モデルとして機能する(しかし、クワッドツリー・ノードあたりの記憶空間に対する構造上の依存状態のために、この対応関係は精密ではない)。より微細な各レベルで導入される新しい境界によって切断されるセグメントの断片を増大するような全体的な傾向を観察する。具体的には、レベル6〜1の場合、レベルが1段ずつ下がるごとに、セグメント数が倍増する。この倍増は、より微細な各レベルがハード・タイル境界の全長を倍増し、したがって、所与のセグメントが横切る可能性が倍増するために発生する(ただし、分割の細分性がロサンジェルス郡の空間範囲を超え始めるので、この傾向はレベル6より上では次第に消えていくことに留意されたい)。さらに、レベル4以上には10000個以上のセグメントが位置することに留意されたい。これらのセグメントがこの状態でクワッドツリーに記憶された場合、クワッドツリーの主なブランチを実質的に混乱させ、パフォーマンスを大幅に妨げることになるだろう。たとえば、記憶されるデータの量が100倍に増加した場合、これに対応して、タイル境界交差セグメントの数も100倍に増大し(レベル4で500K、レベル5で250K、レベル6で125Kなど)、上位レベルのブランチにとって完全に過負荷になるだろう。
ハードタイル境界の列の不十分な統計は、このタイプのマップ・データをこの形式で記憶する場合にクワッドツリーを使用できない理由を示している。むしろ、この種の問題にうち勝つために、これまではデータ断片化、複製、または複数間接参照などの戦略を使用してきた。データ・表4は、様々なタイル・サイズについてこれらの特殊ケースの方法の1つで処理しなければならないオブジェクトの数をまとめたものである。この表の統計は、タイルあたりのセグメントの数の最小化と特殊ケースにより管理しなければならないセグメントの数の制限との兼ね合いを明確に示している。
4.数学的分析
経験的分析で識別された統計傾向の結果、式7および式8によって分かる空間検索の対数コストが非常に予測可能なものになる。これらの式は、正規データベース表/索引が空間データ用の記憶/検索メカニズムとして使用され、索引はシングルキーに基づくという想定に基づくものである。式7は、データベース表に点を記憶するためのタイルベースの方法の行動を設定した式4から導かれる。式7における主な改良点は、複数レベルにわたるオブジェクトの広がりを反映するために合計を累積しなければならないことである。式11は、主に、オーバラップによって照会ウィンドウが接触するタイルの数が増加する傾向があるという事実を反映するためにオフセット係数を1から2に変更することによって式5から導かれる。表13は、経度0.016度×緯度0.0145度の矩形ウィンドウ(カリフォルニア州ロサンジェルスの緯度ではおよそ1マイルの四角形)の場合のALおよびBL用のプラグイン値を示している。
表13に示す値のうちの適度なサイズを巨大人口サイズと比較したものは、O(log(N))パフォーマンス行動を可能にする係数である。たとえば、ロサンジェルス郡のみではなく米国のすべての郡に関するTIGERファイルのセット全体を使用する場合、人口サイズの約100倍の増加は、式7の対数成分を2だけ増加するものでなければならない(log10(400,000)=6.6;log10(40,000,000)=8.6)。式の他のすべての成分はだいたい同じ状態を維持するだろう。さらに、矩形ウィンドウ検索サイズが劇的に変化する場合、行動はアンバランスな状態になるので、シングル・サイズを上下に調整して補正することができる。付録Aに示すソフトウェア・プログラムは、非常に詳細な街路マップ・データを処理するために調整されたものである。
ただし、式7は実際には大幅に改善可能な最悪のケースを表していることに留意されたい。具体的には、AL×log(N)という式の一部分の値ALは、付録Aに示すソフトウェア・インプリメンテーションで行われているように、コンピュータ・データベースにシングルを記憶するときにペアノ−ヒルベルト空間充填曲線を使用してシングルを順序付けることによって、実質的に低減することができる。この曲線を使用すると、多くの隣接シングルに連続して番号が付けられることが保証される。たとえば、ペアノ−ヒルベルト曲線で順序付けられたフィールド内の隣接シングルを任意に3×3でグループ化する場合、多くても4つの連続シーケンスができる可能性がある(図8および図17を参照)。
式7
データベース表内の本発明のシングル番号を使用するウィンドウ検索の予想コスト
式8
レベル別の検索あたりのシングルの予想数
5.結論
本発明は、大量のデータを編成するための効率のよい方法およびシステムを提供するものである。前述のように、情報のデータベースは、数百メガバイトのデータを含むことができ、それにより、効率よく探索するには非常に困難なものになる。しかし、本発明の方法およびシステムによって記憶された多次元データは、従来システムよりかなり少ないプロセッサ・サイクルおよびディスク・シークで検索することができる。
より大きい座標系を小区域に分割することにより、各空間オブジェクトは特定の小区域に割り当てられる。これらの小区域は、1組の空間データの上に重ねられると一連のタイルに似ているので、タイルと呼ばれる。したがって、各タイルは、特定の1組の空間データを保持するだろう。その結果、どのタイルが所望の情報を保持しているかを知っているユーザだけがその特定のタイルを探索すればよかった。コンピュータ・ユーザが空間データベース内の所望の領域内に位置する空間データを識別すると、システムは、メモリからこのいくつかのタイルを読み取り、そのタイルからオブジェクトを収集するプロセスを開始することができる。この方法では、それにより、システムがコンピュータ・ユーザのすべての要求に対してデータベース全体のすべてのオブジェクトを分析するのを防止する。
本発明では、空間データベース内のすべてのタイル間に一連のオーバラップを設ける。このようなオーバラップ・タイルは、ここでは「シングル」と呼ばれ、それぞれの最も近い隣接物にオーバラップするタイルを表す。どのシングルについてもオーバラップの面積は、最大効率をもたらすようにあらかじめ決定される。従来システムで行われていたように、このシングル・オーバラップにより、空間データベース内のより多くのデータ・オブジェクトを唯一のシングルに割り当てることができ、これらのオブジェクトは複数のハード・エッジ・タイル間で分割されなくなる。前述のように、1つのオブジェクトを複数のタイル間で分割することは非常に不利なことである。というのは、特定のオブジェクトに割り当てられたすべてのタイルをシステムが追跡しなければならないからである。
本発明のシステムおよび方法は、タイトル境界を横切る小さいオブジェクトが上位レベルへ移動するという問題を軽減する。本発明では、小区域の層が生成されるときに、オーバラップの領域ができるようにそれらが計算される。本発明では、空間データベースに対して最高速アクセスを行えるように各層のシングル・オーバラップ・サイズを事前にプログラミングすることができるので、個々のデータベースの効率が改善される。
街路などの多数の小さいオブジェクトを伴うデータベースは、フリーウェイなどの多数の大きいオブジェクトを有するデータベースより小さいシングル・サイズでプログラミングすることができる。タイルおよびシングルのサイズを平均データ・オブジェクトのサイズに応じて調整すると、より多くのデータ・オブジェクトが本発明のデータベースアーキテクチャ内の単一の下位レベルに保持される。したがって、単一のシングル内におさまることができないデータ・オブジェクトは、次に高いレベルのシングルに記憶させることができる。
付録 A
Claims (23)
- コンピュータ・データベース内に空間データ・オブジェクトを記憶する、コンピュータによって実行される方法であって、
領域(21)内の各データ・オブジェクトに、座標系における位置点を割り当てるステップと、
割り当てられた前記位置点を前記データベース内に記憶するステップと、
複数のシングル(17)を前記データベース内に記憶するステップであり、前記シングルの各々が、少なくとも他の前記シングルの1つに隣接し、前記シングルの各々が、該シングルに隣接している他の前記シングルと、所定面積でオーバーラップしており、階層的なシングル構造を有し、同じ層に在る前記シングルが同じ大きさであるステップと、
前記シングル(17)の各々に関して、位置点が前記シングル(17)内にある前記データ・オブジェクトを、前記データ・オブジェクトの大きさが前記シングルに完全に包含されている限り、隣接するシングルにオーバーラップしているシングルの部分を含んでいるそのシングルのみに割り当てるステップと、
割り当てられた前記データ・オブジェクトの情報及びシングルを前記データベースに記憶するステップとを含む方法。 - 前記データ・オブジェクトが空間データ・オブジェクトである、請求項1に記載の方法。
- 前記データ・オブジェクト用の最小境界矩形を決定することにより、該データ・オブジェクトの前記位置点が割り当てられる、請求項1又は2に記載の方法。
- 前記データ・オブジェクト用の最小境界矩形が過大評価される、請求項3に記載の方法。
- シングル(17)のそれぞれに固有のコードが割り当てられる、請求項1〜4の何れか1項に記載の方法。
- オーバーラップする前記所定面積が1つのシングルの面積の半分に等しい、請求項1〜5の何れか1項に記載の方法。
- オーバーラップする前記所定面積が1つのシングルの面積の1/4に等しい、請求項1〜6の何れか1項に記載の方法。
- 前記データ・オブジェクトが、線、円、四角形及び多角形からなる群の中から選択される、請求項1〜7の何れか1項に記載の方法。
- 前記領域(21)が、正方形、長方形、円形、又は六角形の複数のシングル(17)に分割される、請求項1〜8の何れか1項に記載の方法。
- 空間データ・オブジェクトを記憶するコンピュータシステムであって、
複数のシングル(17)に区分された領域(21)に関するデータベースを記憶するコンピュータメモリであって、前記シングルの各々が、少なくとも他の前記シングルの1つに隣接し、前記シングルの各々が、該シングルに隣接している他の前記シングルと、所定面積でオーバーラップしており、階層的なシングル構造を有し、同じ層に在る前記シングルが同じ大きさであるコンピュータメモリと、
プロセッサとを備え、
前記プロセッサが、
座標系におけるデータ・オブジェクトの位置を決定するステップと
位置点がシングル(17)内にある前記データ・オブジェクトを、前記データ・オブジェクトの大きさが前記シングルの大きさより小さく、前記データ・オブジェクトが完全に前記シングルに包含されている限り、隣接するシングルにオーバーラップしているシングルの部分を含んでいるそのシングルに割り当てるステップと、
前記データ・オブジェクトを、それが割り当てられている前記シングルを参照して、前記コンピュータメモリ内に記憶するステップとを、
実行するように構成されているコンピュータシステム。 - 前記空間データ・オブジェクトが、地図データベースの構成要素の一部である、請求項10に記載のコンピュータシステム。
- 前記空間データ・オブジェクトが、線、円、多角形、及び四角形からなる群の中から選択される、請求項10又は11に記載のコンピュータシステム。
- 前記プロセッサが、空間データ象限を順序付けるためのペアノ−ヒルベルト方法を実行するように構成されている、請求項10〜12の何れか1項に記載のコンピュータシステム。
- オーバーラップする前記所定面積が1つのシングルの面積の半分に等しい、請求項10〜13の何れか1項に記載のコンピュータシステム。
- オーバーラップする前記所定面積が1つのシングルの面積の1/4に等しい、請求項10〜13の何れか1項に記載のコンピュータシステム。
- 前記プロセッサが実行するデータ・オブジェクトの決定する前記ステップが、前記空間データ・オブジェクト用の最小境界矩形を計算することを含む、請求項10〜15の何れか1項に記載のコンピュータシステム。
- 割り当てる前記ステップが、前記空間データ・オブジェクト用の前記最小境界矩形の左下隅の座標位置を決定することを含む、請求項16に記載のコンピュータシステム。
- 前記空間データ・オブジェクトが、機械製図および建築図面、アニメーションおよびバーチャル・リアリティ・データベース、ラスタ・ビットマップからなる群の中から選択される、請求項10〜17の何れか1項に記載のコンピュータシステム。
- 前記プロセッサが、
前記座標系内の各点が少なくとも1つのシングルに割り当てられるように前記座標系のオーバーラップしているシングルの第2の層の境界を計算するステップと、
前記第1の層内の前記シングルのサイズより大きい各空間データ・オブジェクトに、各空間データ・オブジェクトの位置点に基づいて前記第2の層の特定のシングルを割り当てるステップとを実行するように構成されている、請求項10〜18の何れか1項に記載のコンピュータシステム。 - 前記領域が、正方形、長方形、円形、又は六角形の複数のシングルに分割される、請求項10〜19の何れか1項に記載のコンピュータシステム。
- 前記空間データ・オブジェクトを記憶する前記ステップが、前記データ・オブジェクトを、多次元オブジェクトのデータベースに記憶することを含み、
前記多次元オブジェクトのデータベースが、
各オブジェクトが座標系内における1つの位置点を含む、1組の多次元オブジェクトと、
各多次元オブジェクトを、座標系のシングルに参照付けるコードと、
を有する、請求項10〜20の何れか1項に記載のコンピュータシステム。 - 前記多次元データ・オブジェクトが、線、円、四角形及び多角形からなる群の中から選択される、請求項21に記載のコンピュータシステム。
- 前記多次元データ・オブジェクト用の最小境界矩形を決定することにより、前記位置点が計算される、請求項22に記載のコンピュータシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/807,471 | 1997-02-27 | ||
US08/807,471 US5963956A (en) | 1997-02-27 | 1997-02-27 | System and method of optimizing database queries in two or more dimensions |
PCT/US1998/003493 WO1998038561A2 (en) | 1997-02-27 | 1998-02-25 | A system and method of optimizing database queries in two or more dimensions |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2001513925A JP2001513925A (ja) | 2001-09-04 |
JP2001513925A5 JP2001513925A5 (ja) | 2005-10-06 |
JP4231943B2 true JP4231943B2 (ja) | 2009-03-04 |
Family
ID=25196452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP53775598A Expired - Lifetime JP4231943B2 (ja) | 1997-02-27 | 1998-02-25 | 2次元またはそれ以上の次元のデータベース照会を最適化するシステムおよび方法 |
Country Status (7)
Country | Link |
---|---|
US (4) | US5963956A (ja) |
EP (1) | EP0974108B1 (ja) |
JP (1) | JP4231943B2 (ja) |
AU (1) | AU733949B2 (ja) |
CA (1) | CA2282022C (ja) |
TW (1) | TW405079B (ja) |
WO (1) | WO1998038561A2 (ja) |
Families Citing this family (205)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US6148261A (en) | 1997-06-20 | 2000-11-14 | American Calcar, Inc. | Personal communication system to send and receive voice data positioning information |
US6133853A (en) | 1998-07-30 | 2000-10-17 | American Calcar, Inc. | Personal communication and positioning system |
US6675173B1 (en) | 1998-01-22 | 2004-01-06 | Ori Software Development Ltd. | Database apparatus |
US6081624A (en) * | 1998-06-01 | 2000-06-27 | Autodesk, Inc. | Spatial index compression through spatial subdivision encoding |
US6370551B1 (en) * | 1998-04-14 | 2002-04-09 | Fuji Xerox Co., Ltd. | Method and apparatus for displaying references to a user's document browsing history within the context of a new document |
US6223182B1 (en) * | 1998-06-30 | 2001-04-24 | Oracle Corporation | Dynamic data organization |
US6732120B1 (en) * | 1998-09-03 | 2004-05-04 | Geojet Information Solutions Inc. | System and method for processing and display of geographical data |
US6772139B1 (en) * | 1998-10-05 | 2004-08-03 | Smith, Iii Julius O. | Method and apparatus for facilitating use of hypertext links on the world wide web |
CA2347760A1 (en) | 1998-10-21 | 2000-04-27 | American Calcar Inc. | Positional camera and gps data interchange device |
EP1131932B3 (en) * | 1998-11-16 | 2012-04-11 | Cycore Aktiebolag | A data administration method |
US6721759B1 (en) * | 1998-12-24 | 2004-04-13 | Sony Corporation | Techniques for spatial representation of data and browsing based on similarity |
US6389375B1 (en) * | 1999-01-22 | 2002-05-14 | Interlego Ag | Virtual reality modelling |
US6859769B1 (en) * | 1999-01-26 | 2005-02-22 | Analytical Graphics, Inc. | Method and apparatus for creating elements and systems for description of position and motion of bodies in three-dimensional space to support orbital maneuver analysis |
US6323874B1 (en) * | 1999-02-08 | 2001-11-27 | Silicon Graphics, Inc. | System and method for rendering an image |
US6353832B1 (en) * | 1999-05-11 | 2002-03-05 | Lucent Technologies Inc | Selectivity estimation in spatial databases |
US6401098B1 (en) * | 1999-07-15 | 2002-06-04 | American Management Systems, Inc. | System for database creation, maintenance and access using event marking and two-dimensional partitioning |
US6473809B1 (en) * | 1999-08-03 | 2002-10-29 | Matsushita Electric Industrial Co., Ltd. | Scheduling method and apparatus for network-attached storage devices and other systems |
US6374242B1 (en) * | 1999-09-29 | 2002-04-16 | Lockheed Martin Corporation | Natural-language information processor with association searches limited within blocks |
KR100845568B1 (ko) | 1999-10-19 | 2008-07-10 | 아메리칸 캘카어 인코포레이티드 | 사용자 선호도에 기초한 효과적인 내비게이션 기술 |
WO2001031510A1 (en) | 1999-10-27 | 2001-05-03 | American Calcar Inc. | System and method for user navigation |
US6636849B1 (en) * | 1999-11-23 | 2003-10-21 | Genmetrics, Inc. | Data search employing metric spaces, multigrid indexes, and B-grid trees |
US6526418B1 (en) * | 1999-12-16 | 2003-02-25 | Livevault Corporation | Systems and methods for backing up data files |
KR20000023961A (ko) * | 1999-12-22 | 2000-05-06 | 김정태 | 정보 모델링방법 및 데이터베이스 검색시스템 |
CA2400161C (en) * | 2000-02-22 | 2015-11-24 | Metacarta, Inc. | Spatially coding and displaying information |
US6324470B1 (en) | 2000-03-07 | 2001-11-27 | Navigation Technologies Corporation | Method and system for representing restricted driving maneuvers |
JP2003530793A (ja) * | 2000-04-11 | 2003-10-14 | アメリカン カルカー インコーポレイテッド | Gps発行アプリケーション・サーバ |
AU2001255425A1 (en) * | 2000-04-14 | 2001-10-30 | The Orton Family Foundation | Integrated system for and method of supporting spatial decision making and land-use scenario analysis |
US6591270B1 (en) | 2000-07-28 | 2003-07-08 | Navigation Technologies Corporation | Method for organizing map data |
AU2001278953A1 (en) | 2000-07-28 | 2002-02-13 | American Calcar, Inc. | Technique for effective organization and communication of information |
US7027072B1 (en) * | 2000-10-13 | 2006-04-11 | Silicon Graphics, Inc. | Method and system for spatially compositing digital video images with a tile pattern library |
US7689621B1 (en) * | 2000-11-06 | 2010-03-30 | Navteq North America, Llc | Multi-dimensional spatial index for a geographic database |
AU2002222172A1 (en) * | 2000-12-15 | 2002-06-24 | British Telecommunications Public Limited Company | Method of retrieving entities |
US7358974B2 (en) | 2001-01-29 | 2008-04-15 | Silicon Graphics, Inc. | Method and system for minimizing an amount of data needed to test data against subarea boundaries in spatially composited digital video |
US6804677B2 (en) * | 2001-02-26 | 2004-10-12 | Ori Software Development Ltd. | Encoding semi-structured data for efficient search and browsing |
US7283987B2 (en) * | 2001-03-05 | 2007-10-16 | Sap Ag | Compression scheme for improving cache behavior in database systems |
FR2822275B1 (fr) * | 2001-03-13 | 2003-06-06 | Opteway | Procede pour rechercher un objet au sein d'un espace, procede et systeme de cartographie vectorielle integrant ce procede de recherche et appareil electronique mettant en oeu vre ce procede de cartographie vectorielle |
US6732107B1 (en) * | 2001-03-26 | 2004-05-04 | Ncr Corporation | Spatial join method and apparatus |
US7167856B2 (en) * | 2001-05-15 | 2007-01-23 | Jonathan Keir Lawder | Method of storing and retrieving multi-dimensional data using the hilbert curve |
US20030033217A1 (en) * | 2001-05-18 | 2003-02-13 | International Business Machines Corporation | Method and system for mapping shelf space |
US7580927B1 (en) * | 2001-05-29 | 2009-08-25 | Oracle International Corporation | Quadtree center tile/boundary tile optimization |
US7080065B1 (en) | 2001-06-22 | 2006-07-18 | Oracle International Corporation | Query pruning using interior rectangles in an R-tree index |
US7219108B2 (en) * | 2001-06-22 | 2007-05-15 | Oracle International Corporation | Query prunning using exterior tiles in an R-tree index |
US6879980B1 (en) * | 2001-06-29 | 2005-04-12 | Oracle International Corporation | Nearest neighbor query processing in a linear quadtree spatial index |
US6985144B2 (en) * | 2001-10-30 | 2006-01-10 | Hewlett-Packard Development Company, L.P. | Layout design apparatus and method for three-dimensional graphical environments |
US6919910B2 (en) * | 2001-10-30 | 2005-07-19 | Hewlett-Packard Development Company, L.P. | Apparatus and method for distributing representative images in partitioned areas of a three-dimensional graphical environment |
US7287033B2 (en) | 2002-03-06 | 2007-10-23 | Ori Software Development, Ltd. | Efficient traversals over hierarchical data and indexing semistructured data |
US7152071B2 (en) * | 2002-05-01 | 2006-12-19 | Sun Microsystems, Inc. | Shape-based geometric database and methods and systems for construction and use thereof |
US7383275B2 (en) | 2002-05-10 | 2008-06-03 | International Business Machines Corporation | Methods to improve indexing of multidimensional databases |
US7143098B2 (en) * | 2002-05-10 | 2006-11-28 | International Business Machines Corporation | Systems, methods, and computer program products to reduce computer processing in grid cell size determination for indexing of multidimensional databases |
US7373353B2 (en) | 2002-05-10 | 2008-05-13 | International Business Machines Corporation | Reducing index size for multi-level grid indexes |
US6891170B1 (en) * | 2002-06-17 | 2005-05-10 | Zyvex Corporation | Modular manipulation system for manipulating a sample under study with a microscope |
US6782319B1 (en) | 2002-11-26 | 2004-08-24 | Navteq North America, Llc | Method for organizing map data |
US7272608B2 (en) | 2002-11-27 | 2007-09-18 | Zyvex Labs, Llc | Isosurface extraction into splat hierarchy |
US7519603B2 (en) * | 2002-11-27 | 2009-04-14 | Zyvex Labs, Llc | Efficient data structure |
US7272607B2 (en) | 2002-11-27 | 2007-09-18 | Zyvex Labs, Llc | System and method for processing a hierarchical data tree |
KR20040055901A (ko) * | 2002-12-23 | 2004-06-30 | 한국전자통신연구원 | 점진적인 공간 데이터 서비스 시스템 및 방법 |
US6993538B2 (en) * | 2003-01-28 | 2006-01-31 | Microsoft Corporation | System and process for identifying objects and/or points nearby a given object or point |
EP1441293B1 (en) * | 2003-02-18 | 2004-08-04 | Hermann Dr.-Ing. Tropf | Database and method for organizing data elements |
US20040181518A1 (en) * | 2003-03-14 | 2004-09-16 | Mayo Bryan Edward | System and method for an OLAP engine having dynamic disaggregation |
US7181467B2 (en) * | 2003-03-27 | 2007-02-20 | Oracle International Corporation | Delayed distance computations for nearest-neighbor queries in an R-tree index |
US7099882B2 (en) * | 2003-04-29 | 2006-08-29 | Navteq North America, Llc | Method and system for forming, updating, and using a geographic database |
US7034837B2 (en) * | 2003-05-05 | 2006-04-25 | Silicon Graphics, Inc. | Method, system, and computer program product for determining a structure of a graphics compositor tree |
US7177882B2 (en) * | 2003-09-05 | 2007-02-13 | Oracle International Corporation | Georaster physical data model for storing georeferenced raster data |
CN1871684B (zh) * | 2003-09-23 | 2011-08-24 | 塞威仪器公司 | 采用fib准备的样本的抓取元件的显微镜检查的方法、系统和设备 |
US8972380B2 (en) * | 2003-09-29 | 2015-03-03 | International Business Machines Corporaton | System and method for monitoring events against continual range queries |
US7835953B2 (en) * | 2003-09-29 | 2010-11-16 | International Business Machines Corporation | Method and structure for monitoring moving objects |
US7225208B2 (en) * | 2003-09-30 | 2007-05-29 | Iron Mountain Incorporated | Systems and methods for backing up data files |
CA2550306A1 (en) * | 2003-12-19 | 2005-07-14 | Telcontar, Inc. | Geocoding locations near a specified city |
US7668845B1 (en) * | 2004-02-18 | 2010-02-23 | Microsoft Corporation | C-tree for multi-attribute indexing |
TW200531420A (en) | 2004-02-20 | 2005-09-16 | Zyvex Corp | Positioning device for microscopic motion |
JP2005251745A (ja) | 2004-02-23 | 2005-09-15 | Zyvex Corp | 荷電粒子ビーム装置プローブ操作 |
US20050198008A1 (en) * | 2004-03-02 | 2005-09-08 | Adler David W. | Index exploitation for spatial data |
US7326293B2 (en) | 2004-03-26 | 2008-02-05 | Zyvex Labs, Llc | Patterned atomic layer epitaxy |
US7313568B2 (en) * | 2004-03-31 | 2007-12-25 | International Business Machines Corporation | Generating and analyzing business process-aware modules |
EP1797510A2 (en) * | 2004-10-06 | 2007-06-20 | Permabit, Inc. | A storage system for randomly named blocks of data |
US7400784B2 (en) * | 2004-10-19 | 2008-07-15 | Institut National De L'audiovisuel-Ina | Search of similar features representing objects in a large reference database |
US20080091691A1 (en) * | 2004-10-28 | 2008-04-17 | Kukui, University Of | Datebase Device, Database Management Method, Data Structure Of Database, Database Management Program, And Computer-Readable Storage Medium Storing Same Program |
US7389283B2 (en) * | 2004-12-07 | 2008-06-17 | International Business Machines Corporation | Method for determining an optimal grid index specification for multidimensional data |
US7877405B2 (en) * | 2005-01-07 | 2011-01-25 | Oracle International Corporation | Pruning of spatial queries using index root MBRS on partitioned indexes |
US20060227135A1 (en) * | 2005-03-31 | 2006-10-12 | Johnson Peter W | System and method for N-dimensional parametric analysis |
US7353034B2 (en) | 2005-04-04 | 2008-04-01 | X One, Inc. | Location sharing and tracking using mobile phones or other wireless devices |
US20060235742A1 (en) * | 2005-04-18 | 2006-10-19 | Castellanos Maria G | System and method for process evaluation |
US20060242169A1 (en) * | 2005-04-25 | 2006-10-26 | Microsoft Corporation | Storing and indexing hierarchical data spatially |
US7991779B1 (en) * | 2005-04-25 | 2011-08-02 | Hewlett Packard Development Company, L.P. | Method and apparatus for populating an index table |
US20060265352A1 (en) * | 2005-05-20 | 2006-11-23 | International Business Machines Corporation | Methods and apparatus for information integration in accordance with web services |
EP1904938A2 (en) | 2005-06-28 | 2008-04-02 | Metacarta, Inc. | User interface for geographic search |
AU2005239672B2 (en) * | 2005-11-30 | 2009-06-11 | Canon Kabushiki Kaisha | Sortable collection browser |
US7903125B1 (en) | 2006-02-07 | 2011-03-08 | Adobe Systems Incorporated | Compact clustered 2-D layout |
JP2009526327A (ja) | 2006-02-10 | 2009-07-16 | メタカータ・インコーポレーテッド | メディアオブジェクトについての空間サムネイルおよびコンパニオンマップのためのシステムおよび方法 |
US20070192215A1 (en) * | 2006-02-10 | 2007-08-16 | Taylor Thomas B | Computer-implemented registration for providing inventory fulfillment services to merchants |
TW200731760A (en) * | 2006-02-13 | 2007-08-16 | Benq Corp | Image capturing method and image-capturing device thereof |
US7912296B1 (en) | 2006-05-02 | 2011-03-22 | Google Inc. | Coverage mask generation for large images |
US7965902B1 (en) | 2006-05-19 | 2011-06-21 | Google Inc. | Large-scale image processing using mass parallelization techniques |
US20080010605A1 (en) * | 2006-06-12 | 2008-01-10 | Metacarta, Inc. | Systems and methods for generating and correcting location references extracted from text |
US8762493B1 (en) * | 2006-06-22 | 2014-06-24 | Google Inc. | Hierarchical spatial data structure and 3D index data versioning for generating packet data |
US9721157B2 (en) | 2006-08-04 | 2017-08-01 | Nokia Technologies Oy | Systems and methods for obtaining and using information from map images |
US20080065685A1 (en) * | 2006-08-04 | 2008-03-13 | Metacarta, Inc. | Systems and methods for presenting results of geographic text searches |
US20080056538A1 (en) * | 2006-08-04 | 2008-03-06 | Metacarta, Inc. | Systems and methods for obtaining and using information from map images |
US20080140348A1 (en) * | 2006-10-31 | 2008-06-12 | Metacarta, Inc. | Systems and methods for predictive models using geographic text search |
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 |
WO2009075689A2 (en) | 2006-12-21 | 2009-06-18 | Metacarta, Inc. | Methods of systems of using geographic meta-metadata in information retrieval and document displays |
US20080222080A1 (en) * | 2007-03-06 | 2008-09-11 | Nitrosecurity, Inc. | Inferred index of circular tables in a database |
US8244772B2 (en) * | 2007-03-29 | 2012-08-14 | Franz, Inc. | Method for creating a scalable graph database using coordinate data elements |
US7853480B2 (en) * | 2007-05-21 | 2010-12-14 | Amazon Technologies, Inc. | System and method for providing export services to merchants |
EP2015275B1 (en) * | 2007-07-11 | 2017-12-13 | Alcatel Lucent | Method for tracking moving entities |
US8943038B2 (en) * | 2007-10-04 | 2015-01-27 | Gefemer Research Acquisitions, Llc | Method and apparatus for integrated cross platform multimedia broadband search and selection user interface communication |
KR100907283B1 (ko) * | 2007-10-31 | 2009-07-13 | 연세대학교 산학협력단 | 지속적으로 발생되는 데이터 객체들로 구성되는 비한정적데이터 집합인 데이터 스트림으로부터 클러스터를 찾는방법 및 장치 |
US20090132469A1 (en) * | 2007-11-16 | 2009-05-21 | Urban Mapping, Inc. | Geocoding based on neighborhoods and other uniquely defined informal spaces or geographical regions |
JP4921335B2 (ja) * | 2007-12-10 | 2012-04-25 | キヤノン株式会社 | ドキュメント処理装置及び検索方法 |
US8429133B2 (en) * | 2007-12-13 | 2013-04-23 | Oracle International Corporation | Partial key indexes |
US8001139B2 (en) * | 2007-12-20 | 2011-08-16 | Yahoo! Inc. | Using a bipartite graph to model and derive image and text associations |
US7734714B2 (en) * | 2008-01-11 | 2010-06-08 | Spacecurve, Inc. | Spatial Sieve Tree |
US8185568B2 (en) * | 2008-03-24 | 2012-05-22 | Shlomo Selim Rakib | Method of providing space filling patterns |
AU2009231001A1 (en) | 2008-04-01 | 2009-10-08 | Decarta Inc. | Point of interest search along a route |
AU2009251839C1 (en) | 2008-04-01 | 2015-09-17 | Uber Technologies, Inc. | Transmission of routes between client and server using route IDs |
US8489324B2 (en) * | 2008-04-01 | 2013-07-16 | Decarta Inc. | Retrieval of vehicular traffic information optimized for wireless mobile environments |
WO2010075309A2 (en) * | 2008-12-23 | 2010-07-01 | Zhijing George Mou | Method and system for multi-dimensional and geographic search |
US20100185672A1 (en) * | 2009-01-21 | 2010-07-22 | Rising Iii Hawley K | Techniques for spatial representation of data and browsing based on similarity |
KR101911956B1 (ko) | 2009-04-01 | 2018-10-25 | 우버 테크놀로지스, 인크. | 복귀를 갖는 경로에 따른 관심지점 검색 |
EP2241983B1 (en) * | 2009-04-17 | 2012-12-19 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Method for searching objects in a database |
US8255418B2 (en) * | 2009-05-05 | 2012-08-28 | Real Estate Portal Usa, Llc | Networked computer system providing an integrated suite of web services and a geographic information system (GIS) for real property and land parcels |
US8532925B2 (en) * | 2009-05-08 | 2013-09-10 | Alpine Electronics, Inc. | Spatial indexing method and apparatus for navigation system for indexing and retrieval of XML map data |
US20130066881A1 (en) * | 2009-05-15 | 2013-03-14 | Hyundai Motor Company | Indexing system of spatial information for combined soi object and content |
US8290952B2 (en) * | 2009-06-24 | 2012-10-16 | Nokia Corporation | Method and apparatus for retrieving nearby data |
WO2011038427A1 (en) | 2009-10-02 | 2011-04-07 | Vrvis Zentrum Für Virtual Reality Und Visualisierung Forschungs-Gmbh | Visual queries in data exploration |
US20110087425A1 (en) * | 2009-10-08 | 2011-04-14 | Telenav, Inc. | Navigation system with map compression and method of operation thereof |
KR101405460B1 (ko) * | 2009-12-04 | 2014-06-11 | 한국전자통신연구원 | 3d 공간색인 및 3d 컬링기법 기반의 전파분석 고속화 시스템 및 방법 |
GB2477307A (en) * | 2010-01-28 | 2011-08-03 | Adsensa Ltd | Embedding authentication data into an electronic document image |
US20110196602A1 (en) * | 2010-02-08 | 2011-08-11 | Navteq North America, Llc | Destination search in a navigation system using a spatial index structure |
WO2011110903A1 (en) * | 2010-03-07 | 2011-09-15 | Onn Haran | System and method for improving communications in ad-hoc vehicular networks |
TWI398828B (zh) * | 2010-04-06 | 2013-06-11 | Univ Nat Sun Yat Sen | A Method of Seeking Range Query in Hilbert Curve |
US8788543B2 (en) * | 2010-05-13 | 2014-07-22 | International Business Machines Corporation | Scalable, concurrent resizing of hash tables |
US8352480B2 (en) * | 2010-12-20 | 2013-01-08 | Nokia Corporation | Methods, apparatuses and computer program products for converting a geographical database into a map tile database |
JP5678790B2 (ja) * | 2011-05-02 | 2015-03-04 | 富士通株式会社 | インデックス管理方法、インデックス管理プログラムおよびインデックス管理装置 |
US20120311474A1 (en) * | 2011-06-02 | 2012-12-06 | Microsoft Corporation | Map-based methods of visualizing relational databases |
US8659600B2 (en) * | 2011-07-13 | 2014-02-25 | Pixar | Generating vector displacement maps using parameterized sculpted meshes |
WO2013046669A1 (ja) * | 2011-09-27 | 2013-04-04 | 日本電気株式会社 | 空間充填曲線処理システム、空間充填曲線処理方法およびプログラム |
US9069707B1 (en) | 2011-11-03 | 2015-06-30 | Permabit Technology Corp. | Indexing deduplicated data |
JP5867145B2 (ja) * | 2012-02-20 | 2016-02-24 | 富士通株式会社 | ファイル管理装置、ファイル管理システム、ファイル管理方法およびファイル管理プログラム |
US9148699B2 (en) * | 2012-06-01 | 2015-09-29 | Texas Instruments Incorporated | Optimized algorithm for construction of composite video from a set of discrete video sources |
US8650220B2 (en) * | 2012-06-05 | 2014-02-11 | Google Inc. | System and method for storing and retrieving geospatial data |
CN111667885A (zh) * | 2012-08-07 | 2020-09-15 | 皇家飞利浦有限公司 | 使用基于树的空间数据结构对基因数据集的群体分类 |
US8812488B2 (en) * | 2012-08-16 | 2014-08-19 | Oracle International Corporation | Constructing multidimensional histograms for complex spatial geometry objects |
US8751526B1 (en) | 2012-08-29 | 2014-06-10 | Bentley Systems, Incorporated | Efficient range unions in SQL |
US9053191B2 (en) | 2012-08-30 | 2015-06-09 | Facebook, Inc. | Retroactive search of objects using k-d tree |
US9058347B2 (en) * | 2012-08-30 | 2015-06-16 | Facebook, Inc. | Prospective search of objects using K-D forest |
US8965900B2 (en) | 2012-09-14 | 2015-02-24 | Bentley Systems, Incorporated | Efficiently finding spatially scored best entities |
US9157751B2 (en) * | 2012-11-09 | 2015-10-13 | Here Global B.V. | Navigation system and method |
CN103116610A (zh) * | 2013-01-23 | 2013-05-22 | 浙江大学 | 基于HBase的矢量空间大数据存储方法 |
CN103106276B (zh) * | 2013-02-17 | 2016-03-30 | 南京师范大学 | 一种基于小角编码的矢量数据网格索引方法 |
US9367938B2 (en) * | 2013-02-28 | 2016-06-14 | Nokia Technologies Oy | Method and apparatus for automated real-time detection of overlapping painted markup elements |
US9953042B1 (en) | 2013-03-01 | 2018-04-24 | Red Hat, Inc. | Managing a deduplicated data index |
US9501526B2 (en) * | 2013-04-17 | 2016-11-22 | Excalibur Ip, Llc | Efficient database searching |
US9922062B2 (en) * | 2013-07-16 | 2018-03-20 | Clearag, Inc. | High-performance gridded data storage, arrangement and extraction |
US9317529B2 (en) | 2013-08-14 | 2016-04-19 | Oracle International Corporation | Memory-efficient spatial histogram construction |
US9990398B2 (en) | 2013-09-20 | 2018-06-05 | Oracle International Corporation | Inferring dimensional metadata from content of a query |
US9836519B2 (en) | 2013-09-20 | 2017-12-05 | Oracle International Corporation | Densely grouping dimensional data |
US9740718B2 (en) | 2013-09-20 | 2017-08-22 | Oracle International Corporation | Aggregating dimensional data using dense containers |
US10210197B2 (en) | 2013-10-18 | 2019-02-19 | New York Air Brake Corporation | Dynamically scalable distributed heterogenous platform relational database |
CN105637499B (zh) * | 2013-10-18 | 2019-02-26 | 纽约气闸有限公司 | 动态可扩展分布式异构平台关系型的数据库系统装置 |
US20150113379A1 (en) * | 2013-10-23 | 2015-04-23 | Schlumberger Technology Corporation | Representation of unstructured grids |
WO2015158697A1 (en) * | 2014-04-15 | 2015-10-22 | King.Com Limited | Device, game and methods therefore |
US9613055B2 (en) * | 2014-05-09 | 2017-04-04 | Sap Se | Querying spatial data in column stores using tree-order scans |
US9720931B2 (en) | 2014-05-09 | 2017-08-01 | Sap Se | Querying spatial data in column stores using grid-order scans |
CN106796589B (zh) * | 2014-05-30 | 2021-01-15 | 湖北第二师范学院 | 空间数据对象的索引方法和系统 |
GB2528669B (en) * | 2014-07-25 | 2017-05-24 | Toshiba Res Europe Ltd | Image Analysis Method |
JP6220323B2 (ja) | 2014-09-05 | 2017-10-25 | 株式会社東芝 | オブジェクト検索装置およびその検索方法 |
US9916671B2 (en) * | 2014-09-09 | 2018-03-13 | Adobe Systems Incorporated | Spatial visualization of metrics |
US10162860B2 (en) | 2014-10-20 | 2018-12-25 | International Business Machines Corporation | Selectivity estimation for query execution planning in a database |
US10007677B1 (en) | 2014-12-04 | 2018-06-26 | Google Llc | System and method for geospatial indexing |
US9786071B2 (en) * | 2015-03-25 | 2017-10-10 | International Business Machines Corporation | Geometric shape hierarchy determination to provide visualization context |
US20160332585A1 (en) * | 2015-05-15 | 2016-11-17 | Richard Gary John BAVERSTOCK | Systems and methods for efficient resource management during vehicular journeys |
GB201515950D0 (en) * | 2015-09-09 | 2015-10-21 | Ibm | Method for processing large data tables |
US10642831B2 (en) | 2015-10-23 | 2020-05-05 | Oracle International Corporation | Static data caching for queries with a clause that requires multiple iterations to execute |
US10678792B2 (en) | 2015-10-23 | 2020-06-09 | Oracle International Corporation | Parallel execution of queries with a recursive clause |
US10783142B2 (en) | 2015-10-23 | 2020-09-22 | Oracle International Corporation | Efficient data retrieval in staged use of in-memory cursor duration temporary tables |
US10156842B2 (en) | 2015-12-31 | 2018-12-18 | General Electric Company | Device enrollment in a cloud service using an authenticated application |
US10839569B2 (en) * | 2016-02-03 | 2020-11-17 | NorthStar Memorial Group LLC | System for geospatial mapping of cemetery properties |
CN105828292A (zh) * | 2016-05-09 | 2016-08-03 | 青岛海信移动通信技术股份有限公司 | 一种基于地理围栏的位置检测方法及装置 |
JP6630825B2 (ja) * | 2016-06-06 | 2020-01-15 | Kddi株式会社 | 地図に重畳表示するオブジェクトを送信する地図情報送信装置、地図表示装置、プログラム及び方法 |
US10650012B1 (en) * | 2016-07-13 | 2020-05-12 | United States Of America As Represented By Secretary Of The Navy | Multi-dimensional range-index searching using search box approximation and splitting |
JP7189867B2 (ja) | 2016-08-25 | 2022-12-14 | コーニンクレッカ フィリップス エヌ ヴェ | 空間データの保存又は取り出しのためのシステム、方法、コンピュータ・プログラム及び記録媒体 |
US10558659B2 (en) | 2016-09-16 | 2020-02-11 | Oracle International Corporation | Techniques for dictionary based join and aggregation |
US11741137B2 (en) * | 2016-09-26 | 2023-08-29 | Sanjiv Kapoor | Biased string search structures with embedded range search structures |
US20180199549A1 (en) * | 2017-01-15 | 2018-07-19 | Thomas A. Brake | Hygienic nesting Cavity for Birds |
US10678842B2 (en) | 2017-03-21 | 2020-06-09 | EarthX, Inc. | Geostory method and apparatus |
US11086876B2 (en) | 2017-09-29 | 2021-08-10 | Oracle International Corporation | Storing derived summaries on persistent memory of a storage device |
US11048679B2 (en) | 2017-10-31 | 2021-06-29 | Oracle International Corporation | Adaptive resolution histogram on complex datatypes |
US10747783B2 (en) | 2017-12-14 | 2020-08-18 | Ebay Inc. | Database access using a z-curve |
US11580105B2 (en) | 2018-10-31 | 2023-02-14 | Anaplan, Inc. | Method and system for implementing subscription barriers in a distributed computation system |
US11481378B1 (en) | 2018-10-31 | 2022-10-25 | Anaplan, Inc. | Method and system for servicing query requests using document-based metadata |
US11573927B1 (en) | 2018-10-31 | 2023-02-07 | Anaplan, Inc. | Method and system for implementing hidden subscriptions in a distributed computation system |
US11281683B1 (en) | 2018-10-31 | 2022-03-22 | Anaplan, Inc. | Distributed computation system for servicing queries using revisions maps |
US11475003B1 (en) * | 2018-10-31 | 2022-10-18 | Anaplan, Inc. | Method and system for servicing query requests using dataspaces |
US11354324B1 (en) | 2018-10-31 | 2022-06-07 | Anaplan, Inc. | Method and system for servicing query requests using revisions maps |
CN111221813B (zh) | 2018-11-27 | 2023-06-23 | 阿里巴巴集团控股有限公司 | 数据库索引以及数据库查询的处理方法、装置及设备 |
US11222018B2 (en) | 2019-09-09 | 2022-01-11 | Oracle International Corporation | Cache conscious techniques for generation of quasi-dense grouping codes of compressed columnar data in relational database systems |
US11507590B2 (en) | 2019-09-13 | 2022-11-22 | Oracle International Corporation | Techniques for in-memory spatial object filtering |
CN113220928B (zh) * | 2020-01-21 | 2024-06-11 | 北京达佳互联信息技术有限公司 | 一种图像搜索方法、装置、电子设备及存储介质 |
CN113179313B (zh) * | 2021-04-25 | 2023-04-07 | 湖南视觉伟业智能科技有限公司 | 分布式时空查询方法及系统 |
KR102508100B1 (ko) * | 2022-07-22 | 2023-03-10 | 헬리오센 주식회사 | 비공간 정보와 3차원 공간정보 매핑데이터의 신뢰도를 향상시킨 고속 검색 시스템 및 방법 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2027253C (en) * | 1989-12-29 | 1997-12-16 | Steven C. Bagley | Editing text in an image |
US5353391A (en) * | 1991-05-06 | 1994-10-04 | Apple Computer, Inc. | Method apparatus for transitioning between sequences of images |
US5359712A (en) * | 1991-05-06 | 1994-10-25 | Apple Computer, Inc. | Method and apparatus for transitioning between sequences of digital information |
US5546572A (en) * | 1991-08-28 | 1996-08-13 | Hitachi, Ltd. | Method for retrieving database of image information |
US5566349A (en) * | 1994-05-16 | 1996-10-15 | Trout; Ray C. | Complementary concurrent cooperative multi-processing multi-tasking processing system using shared memories with a minimum of four complementary processors |
US5568200A (en) * | 1995-06-07 | 1996-10-22 | Hitachi America, Ltd. | Method and apparatus for improved video display of progressively refreshed coded video |
-
1997
- 1997-02-27 US US08/807,471 patent/US5963956A/en not_active Expired - Lifetime
-
1998
- 1998-02-25 WO PCT/US1998/003493 patent/WO1998038561A2/en active IP Right Grant
- 1998-02-25 JP JP53775598A patent/JP4231943B2/ja not_active Expired - Lifetime
- 1998-02-25 EP EP98907591A patent/EP0974108B1/en not_active Expired - Lifetime
- 1998-02-25 AU AU63357/98A patent/AU733949B2/en not_active Expired
- 1998-02-25 CA CA002282022A patent/CA2282022C/en not_active Expired - Lifetime
- 1998-02-26 TW TW087102772A patent/TW405079B/zh not_active IP Right Cessation
-
1999
- 1999-01-14 US US09/231,515 patent/US6470287B1/en not_active Expired - Lifetime
-
2002
- 2002-10-22 US US10/278,126 patent/US7035869B2/en not_active Expired - Fee Related
-
2006
- 2006-03-20 US US11/385,625 patent/US7725425B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
AU733949B2 (en) | 2001-05-31 |
EP0974108A4 (en) | 2005-05-18 |
CA2282022A1 (en) | 1998-09-03 |
AU6335798A (en) | 1998-09-18 |
JP2001513925A (ja) | 2001-09-04 |
US20060184519A1 (en) | 2006-08-17 |
TW405079B (en) | 2000-09-11 |
EP0974108A2 (en) | 2000-01-26 |
US20030187867A1 (en) | 2003-10-02 |
US5963956A (en) | 1999-10-05 |
CA2282022C (en) | 2006-02-14 |
WO1998038561A3 (en) | 1998-12-03 |
WO1998038561A2 (en) | 1998-09-03 |
US7035869B2 (en) | 2006-04-25 |
US7725425B2 (en) | 2010-05-25 |
EP0974108B1 (en) | 2013-01-16 |
US6470287B1 (en) | 2002-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4231943B2 (ja) | 2次元またはそれ以上の次元のデータベース照会を最適化するシステムおよび方法 | |
Procopiuc et al. | Bkd-tree: A dynamic scalable kd-tree | |
Gaede et al. | Multidimensional access methods | |
Hoel et al. | Benchmarking spatial join operations with spatial output | |
Henrich | A Distance Scan Algorithm for Spatial Access Structures. | |
Hjaltason et al. | Ranking in spatial databases | |
Roussopoulos et al. | Nearest neighbor queries | |
US7080065B1 (en) | Query pruning using interior rectangles in an R-tree index | |
Hoel et al. | A qualitative comparison study of data structures for large line segment databases | |
US7181467B2 (en) | Delayed distance computations for nearest-neighbor queries in an R-tree index | |
Gunther et al. | Tree-based access methods for spatial databases: Implementation and performance evaluation | |
Ooi | Spatial kd-tree: A data structure for geographic database | |
Ooi et al. | Indexing in spatial databases | |
Gavrila | R-tree index optimization | |
Aref et al. | Efficient window block retrieval in quadtree-based spatial databases | |
Roumelis et al. | An efficient algorithm for bulk-loading xBR+-trees | |
Song et al. | Spatial indexing for massively update intensive applications | |
Al-Badarneh et al. | A new enhancement to the R-tree node splitting | |
Ooi et al. | Spatial indexing in binary decomposition and spatial bounding | |
Belussi et al. | Using spatial data access structures for filtering nearest neighbor queries | |
Kim et al. | Sibling clustering of tree-based spatial indexes for efficient spatial query processing | |
Koudas | Indexing support for spatial joins | |
Van Oosterom et al. | Testing current DBMS products with real spatial data | |
Kuo et al. | A data structure for fast region searches | |
Egenhofer | Managing storage structures for spatial data in databases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050221 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050221 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080408 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080704 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080811 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080806 |
|
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: 20081021 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081119 |
|
A72 | Notification of change in name of applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A721 Effective date: 20081119 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111219 Year of fee payment: 3 |
|
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: 20121219 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121219 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131219 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |