JP3813089B2 - Rdbm断片化を管理するシステム - Google Patents
Rdbm断片化を管理するシステム Download PDFInfo
- Publication number
- JP3813089B2 JP3813089B2 JP2001535859A JP2001535859A JP3813089B2 JP 3813089 B2 JP3813089 B2 JP 3813089B2 JP 2001535859 A JP2001535859 A JP 2001535859A JP 2001535859 A JP2001535859 A JP 2001535859A JP 3813089 B2 JP3813089 B2 JP 3813089B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- data structure
- index
- index tree
- tree data
- 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 - Fee Related
Links
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- 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/2246—Trees, e.g. B+trees
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query 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/953—Organization of data
- Y10S707/957—Multidimensional
-
- 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/99932—Access augmentation or optimizing
-
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Electrotherapy Devices (AREA)
- Computer And Data Communications (AREA)
Description
【発明の属する技術分野】
本発明は、リレーショナル・データベースでの断片化を使用するデータの索引付けおよび管理に関する。
【0002】
【従来の技術】
データベースは、情報の集合である。リレーショナル・データベースは、表の集合としてユーザに知覚されるデータベースである。各表では、項目が行に編成され、項目の属性が列に編成される。表の行のそれぞれは、項目(レコードまたはタプルとも称する)に対応し、表の列のそれぞれは、項目の属性(フィールドまたは、より正確には、属性型またはフィールド型と称する)に対応する。
【0003】
断片化(フラグメンテーション)は、データベース性能を高めるのに使用される技法である。所与の関係を片またはフラグメントに分割できる場合に、システムがデータ断片化をサポートする。データは、最も頻繁に使用される位置に保管することができる。さらに、2タイプの断片化すなわち、制約事項および射影という関係演算に対応する水平断片化および垂直断片化を使用することができる。行を断片(フラグメント)に割り当てる規則は、データベース・ユーザまたは管理者によって定義され、「断片化方式(フラグメンテーション・スキーム)」の一部である。表の行のどれもが、あるフラグメントについて断片化方式の割当規則を満足しない場合に、所与の表のフラグメントを空にすることが可能である。「断片化除去」は、データベース・システムが、照会の結果に加わることができないフラグメントを表から識別し、照会の処理でこれらのフラグメントを考慮対象から除去し、したがって、データベース・システムの性能を改善する処理である。
【0004】
また、フラグメントは、別のディスク、もしくはコンピュータ・クラスタまたはネットワーク・アーキテクチャの別のノードに個別に保管することができる。論理的には、すべてのフラグメントを同時に走査し、これによって、データの物理的ストレージの制限の対象になる、完全な表を読み取ることができる総合的な速度を高めることができる。
【0005】
【発明が解決しようとする課題】
データベース・システムに情報を保管するミッションクリティカル・システムから行われる仕事が増えるにつれて、企業全体の意思決定支援を提供し、データベース照会を介するクリティカルなビジネス情報へのタイムリーなオンライン・アクセスを提供するために、これらのデータベース・システムに課せられる要求がますます高くなる。したがって、そのようなシステムの性能を、継続的に強化する必要がある。データベース・システムの性能を強化する方法の1つが、フラグメント関連動作の改良である。
【0006】
【課題を解決するための手段】
リレーショナル・データベース・システムは、照会または断片化式を中間範囲表現に変換し、中間範囲表現を整数範囲表現に写像し、データ・フラグメントに関連する検索空間を表現するために索引ツリー(SKDツリー)データ構造を作成し、索引ツリー・データ構造を使用して所望のデータ・フラグメントを突き止めることによって、データベース内のデータ・フラグメントを管理する。
【0007】
システムの実施形態に、下記の1つまたは複数を含めることができる。整数範囲表現は、構造化照会言語(SQL)データ型から独立とすることができる。ツリー・データ構造は、データ・フラグメントを更新することができる。ツリー・データ構造は、データ・フラグメントにデータを挿入することができる。ツリー・データ構造は、データ・セット内のデータを選択することができる。ツリー・データ構造を、内部データベース動作中に使用することができる。データを、SQLのSELECTステートメントを使用して選択することができる。データツリー構造を使用して、データ・フラグメントを突き止めることができる。データ・セットを均等なセグメントに区分して、ツリー・データ構造を平衡化することができ、これを使用して、ツリー・データ構造を移植することができる。ツリー・データ構造は、すべてのデータ型を整数空間に写像することもできる。データ点収集を、1つまたは複数の断片化式(フラグメンテーション・エクスプレションズ)に使用することができ、データ点は、多次元配列に保管される。最初の索引を、NULL値の索引点として配列内で使用することもでき、配列の上限も、正の無限大の索引点として使用することができる。中間範囲表現が、ソートされる。写像ステップに、中間範囲表現を整数範囲表現に変換する際の二分探索を使用するステップを含めることができる。索引ツリー・データ構造は、多次元検索空間を表す。索引ツリー・データ構造は、二進ツリーとすることができ、O(log(N))の検索複雑さで検索することができる。データ・フラグメントがオーバーラップすることができる。
【0008】
もう1つの態様では、システムに、照会式を中間範囲表現に変換する手段と、中間範囲表現を整数範囲表現に写像する手段が含まれる。このシステムには、データ・フラグメントに関連する検索空間を表す索引ツリー・データ構造を作成する手段と、所望のデータ・フラグメントを突き止めるために索引ツリー・データ構造を使用する手段も含まれる。
【0009】
本発明の特徴には、下記の1つまたは複数が含まれる。本発明は、データベース内のデータ・フラグメントの管理に関する高い性能を提供する。本発明は、任意の個数の列の断片化方式を管理することができる。この特性を用いると、本発明が、断片化に使用される列の数が非常に大きくなる可能性がある大きいデータベースを管理できるようになる。
【0010】
ツリーの構成中に、整数配列を使用して、フラグメントに関連する範囲構造を表現する。ツリーが、フラグメントを突き止めるのに使用される時に、配列の索引が、検索を行うのに使用される。整数比較が、SQLタイプの比較より計算的に「安価」なので、これは、単純であると同時に効率的である。さらに、SQLデータ型から整数へのモデル化および写像は、データ断片化に関する動作を実行する際の本発明の単純さおよび効率に貢献する。オーバーラップするフラグメントが、ツリーから枝刈りされ、したがって、検索性能が改善される。さらに、本発明によって生成されるツリーの高さは、最小化される。したがって、ツリーの検索が、高速かつ効率的になる。これによって、データベースへの挿入動作および照会最適化(不要なフラグメントの除去)動作が、より効率的になる。また、このシステムは、低いデータ・ストレージ要件を有する。これらの長所に起因して、本発明は、データベース内のデータ・フラグメントを効率的に管理することができる。
【0011】
【発明の実施の形態】
図1は、本発明によるデータベース・エンジン30の実施形態を示す図である。データベース・エンジン30は、クライアント・アプリケーション・プログラミング・インターフェース(API)34と通信するユーザ・アプリケーション32を有する。クライアントAPI34は、1つまたは複数のSQL式を有するSQL照会をその構成要素に構文解析するSQLパーサ38と通信し、この構成要素は、照会の構成要素を表す二進ツリー・データ構造に保管することができる。SQLパーサ38の出力は、SQL式から中間コードを出力するコード・ジェネレータ40に供給される。中間コードは、SQL照会を満足する実行プランを表す。コード・ジェネレータ40は、冗長なデータの除去と、表名および列名の有効性の確認などのエラー検査の実行も行う。このコードが、最適化プログラム42によって最適化され、最適化プログラム42は、照会実行プランを定式化するコストベース分析を使用してコードを最適化する。実行プランに関連する、結果の最適化されたコードが、フラグメント・マネージャ44に供給され、フラグメント・マネージャ44は、所定の断片化方式に従って、断片化された表への参照を処理する。フラグメント・マネージャ44は、索引ツリーを展開するが、この索引ツリーの作成および動作は、下で詳細に説明する。フラグメント・マネージャ44の出力は、実行プランを実行するためにRSAM46に供給される。RSAM46は、たとえばディスク・マネージャなどの、1つまたは複数のデータ・ストレージ・デバイス・マネージャを制御する。クライアントAPI34、SQLパーサ38、コード・ジェネレータ40、最適化プログラム42、フラグメント・マネージャ44、およびRSAM46は、ライブラリ48を参照し、プロセッサによって実行されるアクセス・メソッドなどのさまざまな低水準ルーチンを呼び出す。実行プランの結果が、ユーザ・アプリケーション32に供給される。
【0012】
図2および3は、本発明によるデータ・フラグメントの作成および管理の処理の流れ図である。図2および3では、ユーザ・アプリケーション32によって生成される照会断片化式が、範囲表現を用いる中間範囲表現に構文解析される(ステップ102)。次に、中間範囲表現を、N次元整数空間に変換するが、ここで、Nは、断片化式または断片化方式の列の数である(ステップ104)。検索空間を表現する索引ツリーを生成する(ステップ106)。このツリーを、データベース・カタログの一部として永久的に保管する(ステップ108)。ツリーを構成した後に、下で詳細に説明するように、そのツリーを使用して、データ・フラグメントを突き止めることができる。
【0013】
図3を参照すると、データを突き止めるためのツリーの応用が示されている。まず、照会断片化式を、範囲表現を用いる中間範囲表現に構文解析する(ステップ110)。次に、中間範囲表現をN次元整数空間に変換するが、ここで、Nは、断片化式または断片化方式の列の数である(ステップ112)。その後、ツリーを使用して、データ・フラグメントを突き止める(ステップ114)。
【0014】
図2および3の実施形態では、空間区分問題としてデータ断片化がモデル化される。すなわち、各列が、N次元空間内の1つの次元とみなされる。SKDツリーが、索引付け機構として使用される。データ断片化は、さまざまな式すなわち>、>=、<、<=、=、および論理演算子IN、NOT、AND、OR、ISNULLについて実行することができる。複雑な式を用いる一連の組合せを処理することができる。この実施形態では、異なるSQLデータ型を整数値に写像する。この処理で、断片化式に使用されるすべてのデータ点(SQLデータ値)が、収集され、多次元配列として保管される。各列のデータ点が、配列に保管される。図2および3の実施形態では、NULL値の索引点として配列の索引0が使用される。これによって、ISNULL式が極小点としてモデル化される。また、このシステムでは、「正」の無限大の索引点として配列の上限を使用する。
【0015】
1実施形態では、2種類のノードすなわち、索引ノードおよびデータ・ノードが、ツリー内で使用される。データ・ノードは、ツリーの葉ノードであり、データ項目だけが含まれる。ツリー内のデータ項目は、空間を記述する範囲(low, up)の配列によって表される。(low, up)の各対によって、空間の1つの次元の範囲が記述される。
【0016】
索引ノードは、ツリーの内部(葉以外の)ノードである。各索引ノードには、下記のフィールドが含まれる。
Index dimension(索引次元) 索引キーが存在する次元。
Index key(索引キー) 索引ノードの索引キー値(k)。
Space covered(カバーされる空間) 各索引が、サブスペースの責任を負い、このフィールドによって、この索引ノードの下のすべてのデータ項目によってカバーされる空間が記述される。
Index bitmap(索引ビットマップ) このフィールドは、任意選択であり、このノードによってカバーされるフラグメントを表す。これによって、フラグメントをアクティブとしてマークすることがはるかに簡単になる。
Left(左) このフィールドは、D次元内のすべてのデータ項目の値が索引キーK未満(またはKと等しい)であるサブスペースを表すSKDツリーをポイントする。
Right(右) このフィールドは、D次元内のすべてのデータ項目の値が索引キーKを超える(またはKと等しい)サブスペースを表すツリーをポイントする。
Equal flag(等値フラグ) このフラグは、D次元の値が索引キーKと等しいサブスペースをどのサブツリーが表すかを示す。これは、LeftまたはRightのいずれかになる。デフォルトでは、Equal flagにRightがセットされる。
【0017】
処理は、データ・セットSから開始される。Sの各データ項目によって、m次元空間内のサブスペースが記述され、Sのデータ項目は次の形である。
(lb_l, low_l, up_l, ub_l), ..., (lb_m, low_m, up_m, ub_m)
ここで、(lb_i, low_i, up_i, ub_i)のそれぞれが、第I次元の範囲を記述し、lb_iおよびub_iは、範囲が下の点または上の点を含むかどうかを示す(1<I<m)。さらに、多次元配列Vが使用され、ここで、V[i]に、点の数と、データ・セットSの第i次元の値が記録される。
【0018】
その後、データ・セットが、選択された索引キー値を用いて均等に区分され、その結果、平衡ツリーを作成することができるようになる。これは、まず最大の分散(最多の点)を有する次元を、索引付け次元として選択することによって達成される。その次元の中央値の点を索引キー値として使用して、データ・セットを区分する。
【0019】
索引キー値を選択した後に、そのキーに基づいてデータ・セットを区分する。索引次元がDであり、索引キー値がKであり、それに関連するEqual flagがEである場合に、下記の動作が実行される。データ・セット内の(low, up, flag)の形のデータ項目の次元値dのそれぞれについて、区分ルーチンを実行する。図4に、区分アルゴリズムを示す。図4の処理では、データ・セットが、左部分Lと右部分Rの2つの部分に区分される。処理120では、ルーチンappendを呼び出して、データ項目をデータ・セットに追加し、ルーチンsplitを呼び出して、データ項目を分離する。データ項目を分離する際に、データ項目のコピーが作られ、データ項目が、区分する次元およびキーに従って、新しいデータ項目の対応する列の範囲を変更することによって区分される。新しいデータ項目は、区分する次元に正しいフラグを有する必要がある。
【0020】
また、ツリーの葉ノードのデータ項目は、互いにオーバーラップしてはならない。これは、データ項目を区分に追加する時に、オーバーラッピング検査を追加することによって達成される。データ項目によって表されるサブスペースが、既に区分に含まれるデータ項目によって既に完全にカバーされている場合には、そのデータ項目は、その区分に追加されない。これによって、ツリーの葉ノード内のオーバーラップするサブスペースが効果的に除去される。
【0021】
図4に移ると、データセットを区分する処理120が示されている。各レコードが1つのフラグメント内だけに常駐することができるので、この処理が、断片化方式の管理に必要である。したがって、データセットを区分しなければならない。処理120では、データセット内の(low, up, flag)という形式のデータ項目Dのそれぞれについて、処理120が実行される。処理120では、データセットを、左部分Lおよび右部分Rという2つの部分に区分する。
【0022】
図4では、各データ項目Dのup属性を、索引キー値Kと比較する(ステップ122)。up属性がK未満である場合、または、up属性がKと等しく、範囲にup境界が含まれない(up_boundary = 0)場合に、データ項目が、左の区分に置かれる(ステップ123)。そうでない場合には、処理120では、データ項目Dのそれぞれのlow属性をKと比較する(ステップ124)。low属性がKを超える場合、または、low属性がKと等しく、範囲にlow境界が含まれない(low_boundary = 0)場合に、処理120は、そのデータ項目を右区分に置く(ステップ126)。そうでない場合に、low属性が、up属性と等しく、かつ、Kと等しい場合(ステップ128)、処理120では、左区分を示すequal flag Eが送られたかどうかを判定する(ステップ130)。そうである場合には、データ項目を左区分に置く(ステップ132)。ステップ130から、Eが左区分と等しくない場合には、処理120は、Eに右区分をセットし、データを、append呼出しを使用してその区分に置く(ステップ134)。ステップ122、126、132、または134から、処理120が終了する。
【0023】
ステップ128から、low属性がup属性と等しくない場合、または、low属性がKと等しくない場合には、処理120は、データ項目を分割し(ステップ136)、データ項目を、append関数を使用して右と左の両方の区分に追加し(ステップ138)、終了する。
【0024】
図4の流れ図の擬似コードは、次のようになる。
If up < K または (up = k かつ non-inclusive), append(L, d)を用いてデータ項目を左区分に置く
Else if low > K または (low = k かつ non-inclusive), append(R, d)を用いてデータ項目を右区分に置く
Else if low = up = K: if Equal flag E = Left, append(L, d)を呼び出してデータ項目を左に区分する; otherwise, E に Right をセットし append(R, d)
Otherwise, low <= K <= up だが low = up でない。この場合には、下記のように、データ項目を分割し、その一部が左 L, 一部が右 R に置かれるようにする
(a)分割ルーチン split(d, ld, rd, D, K, E) を呼び出すことによって、データ項目を2つの部分 ld および rd に分割する
(b)それらを、それぞれ append(L, ld) および append(R, rd) によって左と右の区分に追加する
【0025】
断片化を管理するためのツリーの実施形態では、各データ・ノードに1つのデータ項目だけが含まれる。したがって、各レコードは、1つのフラグメントだけに常駐することができる。この実施形態では、データ・セットをさらに区分する必要がある。点のカウントが2未満の時には、いくつかの索引キー値だけを使用することができる。たとえば、範囲(x1, x2)および(x1, x2]は、処理120を使用して区分することができない(「]」は、上限が含まれる状態を表す)。この場合には、さらなる区分のための追加の規則を適用する必要がある。この場合には、適当な右の列を選択する必要がある。異なるデータ項目の範囲が異なるフラグを有する列を、索引付けの列として選択しなければならない。これは、yが索引付け列として選択された場合に限って、2つの範囲(1 < x < 5, 1 < y < 5)および(1 < x < 5, 1 < y <= 5)を2つに区分できるという観察から得られたものである。正しい区分を達成できるようにEqual flagをセットする必要がある。ヒューリスティックは次の通りである。
/* 最大値は各列に2点である
* 分割キーの選択に関して注意しなければならない
* そうでなければ、再帰が終了しない。
* 2つの点が、x1<x2であるものとして、
* 次の方式に従う
* x2(up)
* /\
* < / \ (>=)
* x1(lw) [x2, x2]
* /\
* <= / \ >
* [x1,x1] (x1, x2)
*/
【0026】
図5を参照すると、図2および3で作成されたツリーを検索する処理150が詳細に示されている。まず、処理150は、ツリーの根から開始される(ステップ152)。その後、処理150では、検索キー値を索引キーと比較する(ステップ154)。次に、処理150では、キー値を索引キーと比較する(ステップ156)。キー値が索引キーより大きい場合には、処理150は、ポインタに従い、右のツリーの下に進む(ステップ160)。その代わりに、キー値が索引キー以下である場合には、処理150は、ポインタに従い、左のツリーの下に進む(ステップ158)。
【0027】
ツリーを検索する時に、この処理が、ツリーの根から開始され、検索されるキー値を索引キーと比較し、比較の結果に従ってポインタに従う。データ・ノード・レベルでは、検索点をテストして、それがそのノード内のサブスペースによってカバーされるかどうかを調べる。
【0028】
特定の範囲を検索する時には、この処理では、まず、検索されるサブスペースを、索引ノードによってカバーされる空間と比較する(根から始める)。検索されるサブスペースが、索引ノードによって記述される空間をカバーする場合には、索引ノードによってカバーされるすべてのフラグメントを、索引ノードのbitmapフィールドを使用して活動化する。範囲検索では、図4で説明したように区分を行わなければならない場合があり、したがって、ツリーの複数のパスに従う場合がある。処理が葉レベルまで検索を終えた後に、検索空間が、ツリーのノードによって完全にはカバーされていない場合に、残りのフラグメントが存在するならば、残りのフラグメントを活動化する。
【0029】
図6を参照すると、図2および3で使用されるツリーを作成する処理180が詳細に示されている。処理180での基本的な前提は、データ・セットが、データ・セットに対する少数の挿入、削除、および更新を有する、比較的静的なものであることである。データ・セットに対する最も頻繁な動作は、ルックアップ(検索)である。この処理では、データ・セットが均等に区分されるように区分値(索引キー値)を選択する。
【0030】
まず、処理180では、データセットに0個の項目が含まれるかどうかを判定する(ステップ182)。そうである場合には、処理180は、単純に終了する。そうではなく、データセットに1つ以上の項目が含まれる場合には、処理180では、データセットに1つの項目だけが含まれるかどうかを検査する(ステップ184)。そうである場合には、ツリーのデータ・ノードでその項目を返し(ステップ186)、処理180が終了する。そうではなく、複数の項目がデータセット内に存在する場合には、処理180では、前に説明したように、所定の次元を選択して、データセットを均等に区分する(ステップ188)。次に、索引ノードを作成する(ステップ190)。処理180では、その後、左のツリーを作成し(ステップ192)、右のツリーも作成する(ステップ194)。その後、1実施形態では、ビットマップを構成することによって、索引ノードに書き込む(ステップ196)。完成したツリーを返し(ステップ198)、その後、図6の処理が終了する。
【0031】
図7に移ると、最適化の処理200が示されている。まず、処理200では、ユーザ照会空間を整数空間に写像する(ステップ202)。次に、処理200では、オーバーラップする整数空間に関連するフラグメントを判定する(ステップ204)。最後に、処理200では、整数空間にオーバーラップするフラグメントをルック・アップする(ステップ206)。ユーザ照会空間の整数空間への写像は、整数演算だけを実行する必要があるので有利である。対照的に、通常のユーザ照会空間には、複雑になる可能性があるさまざまなデータ型が含まれる可能性がある。
【0032】
図2から7の動作を、N個のフラグメントを有するm個の列に対する範囲式によって断片化された表に適用すると、ツリーの高さが、平均してO(log N)になる。レコード挿入中に、正しいフラグメントを見つける検索時間は、O(m+log N)にならなければならない。というのは、葉ノードにおりるのにO(log N)を要し、レコードがそのフラグメントに属するかどうかを判定するのにm回の比較を要するからである。したがって、ツリーを使用することによって、性能が強化される。ツリーがなければ、システムは、フラグメントを見つけるのに平均してN/2回の比較を実行すると期待される。1つの次元だけが区分される特殊な場合に、ツリーが二分探索ツリーになることに留意されたい。
【0033】
範囲照会除去について、検索空間が索引ノードによって記述される空間をカバーする場合に、その索引ノード内のビットマップを使用してその索引ノードによって記述されるすべてのフラグメントが活動化されることの実現にも起因して、性能が改善される。このショートカットによって、かなりの検索コストが節約される。
【0034】
本発明は、すべての範囲がすべての次元で互いにオーバーラップするが、どれもが他の範囲によってカバーされないというワースト・ケースのシナリオの下では最適でなくなる。このシナリオでは、ツリーの構成によって、より多くの分割が生成され、したがって、性能に悪影響がおよぶ。これはありそうもない状況なので、ツリーによって、総合的により性能がもたらされるはずである。
【0035】
次に、本発明の1実施形態で使用されるいくつかのデータ構造を説明する。まず、列内の範囲を表す、dimension_tに関連する構造体を下に示す。
/* 列内の点の相対索引によって表される列内の範囲 */
typedef struct dimension
{
char dm_lb; /* 下限を含める場合は1 */
char dm_ub; /* 上限を含める場合は1 */
int dm_lw; /* 範囲の下索引 */
int dm_up; /* 範囲の上索引 */
} dimension_t;
【0036】
次に、サブスペースのリンク・リストであるsplistのデータ構造を示す。各サブスペースは、dimension_tの配列である。各サブスペースが、1つのフラグメントを表す。
/* 列内の索引によってインデクシングされる範囲表現によって表されるサブスペース */
typedef struct splist
{
long sp_fragid;
dimension_t *sp_range;
struct splist *sp_next;
} splist_t;
【0037】
次に、skdtree_tが、ツリー・データ構造である。これは、ノードが索引ノードとデータ・ノードのどちらであるかを示すフラグを有する。skd_internal_tが、索引ノード・データ構造である。skd_data_tが、データ・ノードのデータ構造である。
【0038】
fragrange_tは、フラグメント除去情報データ構造である。これには、あるメタデータ情報およびツリーへのポインタが保管される。これは、フラグメント管理情報に関するアクセス点でもある。
ストレージおよび比較の時間を節約するために、すべての点の値(value_t構造体)が、整数値に変換される。この整数値は、colarr_t->col_pts配列内の索引である。
【0039】
さらに、keyarr_tは、ツリーの構成中に使用されるデータ構造である。これには、キー配列のbase_keyと、配列内のキーの数が記録される。これは、区分中に使用され、base_key変数とcnt変数の両方が、区分に従って修正される。
【0040】
図8から11に移って、論理演算子を有する単純化された式に対する例示的動作を次に説明する。この例では、単純化された式が、次の通りである。
<単純式> <論理演算> <単純式>
ここで
<単純式> => <列> <演算> <定数>
である。この例では、次のコマンドを使用して表が作成される。
CREATE TABLE T( a char(10), b date)
【0041】
この例では、列aが、文字型(char)であり、最大10文字を保管することができ、列bが、日付型の情報を保管する。データベースは、第1、第2、および第3のデータベース・フラグメント、db1、db2、およびdb3について、下記の式によって断片化される。
'cc' < a < 'ff' and '7-1-66' < '10-1-86' in db1
'dd' < a < 'LL' and '7-1-76' < b < '10-1-96' in db2
and the remainder is in db3
【0042】
図8を参照すると、上の式が、中間表現に変換されている。この表現は、式の範囲構造を記述する2次元配列のリストとして示されている。この時点で、2次元データ点配列がソートされていないことに留意されたい。
【0043】
図9では、中間表現を整数空間表現に写像する動作が実行される。この段階で、フラグメント・データ点配列がソートされる。さらに、配列の位置0が、NULL値のために予約され、データ点が、その後に保管される。また、上限値upに、データ点配列への索引値が保管される。'ff'が、ソートされたデータ点配列の第3要素なので、upに3の値が保管される。写像動作が、dimension_t配列の残りの要素について実行される。
【0044】
図10および11に、この例のツリーを作成するステップを示す。まず、システムが、最大の個数のデータ点を有する列を選択する。この例では、aおよびbが、同一の個数のデータ点を有する。したがって、システムは、デフォルト選択としてaを選択する。
【0045】
図10では、システムが、索引に列a、キーに2、EqualにRightをセットされて、dimension_t配列を分割する。この分割によって、1つの左区分と2つの右区分が作成される。左区分(下限=1、上限=2)は、1つのデータ・ノードだけを有するので、システムは、左区分について終了している。
【0046】
右区分に関して、システムは、列bが最も多数のデータ点を有するので、列bを選択する。索引に列b、キーに2、EqualにRightをセットされた分割の後に、ツリーが、1つの左区分と2つの右区分を有する。やはり、左区分は、1つのノードだけを有するのでそのまま残される。右区分が、索引に列a、キーに3、EqualにRightをセットされた状態でもう一度分割される。
【0047】
図11に、ステップ3での右列の分割の結果を示す。この場合には、分割によって、もう1つの左区分と1つの右区分がもたらされる。図11の最下部の区分に、オーバーラップする区分が含まれることに留意されたい。最下部の区分は、その後、破棄される。この形で、オーバーラップするフラグメントが、ツリーから枝刈りされ、したがって、検索性能が高まる。さらに、本発明によって生成されるツリーの高さは、最小化される。
【0048】
動作中に、ユーザが、下記などの照会を実行することができる。
Select from T when 'dd' < a 'ff' & '7-1-76 < b < '7-1-86'
【0049】
この照会は、図12の中間形態に解決される。この例では、写像処理によって、中間表現が3の整数値に写像されて、値'7-1-86'を表す。その後、SKDツリーを、SQL比較演算ではなく、配列の索引に対する整数比較演算を使用して、すばやく検索することができる。これは、SQLタイプの比較と比較して、単純であり効率的である。
【0050】
したがって、このツリーは、データベース内のデータ・フラグメントの管理に関して高い性能をもたらす。断片化方式が、この例では2つの列だけを表すが、ツリーは、断片化に使用される列の数が非常に多くなる可能性がある大きいデータベースを管理することができる。SQLデータ型から整数へのモデル化および写像は、データ断片化に関する動作を実行する際のシステムの単純さおよび効率に貢献する。
【0051】
図13に、リレーショナル・データベース・システムをサポートし、単に表と称するリレーショナル・データベース表を保管するのに適するプラットフォームであるコンピュータ・システム400を示す。コンピュータ・システム400には、1つまたは複数のコンピュータ402(個別にはコンピュータ402aおよび402b)が含まれる。複数のコンピュータをリンク404によって接続することができ、リンク404は、コンピュータのクラスタを作成する高速バックボーンもしくはコンピュータをリンクするローカル・エリア・ネットワーク接続または広域ネットワーク接続とすることができる。コンピュータは、1つまたは複数の永続的データ・ストア406aから406eを有する。通常、各データ・ストアは、他のすべてのデータ・ストアのディスク・ドライブから独立に動作する1つまたは複数のディスク・ドライブを含むストレージ・サブシステムであり、このディスク・ドライブは、関連するコンピュータにインストールされたディスク・コントローラを介して制御され、データベース・システムの最終的な制御の下で動作する。
【0052】
例示のために説明され、使用されるデータベース・システムでは、データベース定義が、当初は、データベース・システムに対する「create database」コマンドの動作によってデータベースが配置される1つのデータベース・ストレージ・スペースに常駐する。データベースには、当初は、システム・カタログと称するリレーショナル表の組(図示せず)が含まれる。システム・カタログによって、すべての表の定義およびすべての表の断片化を含む、データベースのすべての態様が記述される。たとえば「create table」コマンドを用いて、新しい表が作成される時に、新しい表を記述するために、新しいデータがシステム・カタログに追加される。
【0053】
システム・カタログには、データベースの断片化に関する情報を永続的に保管するための、システム・フラグメント表が含まれる。各フラグメントは、システム・フラグメント表の個々の行によって表現することができる。システムは、フラグメントへの参照を必要とする時に、システム・フラグメント表に対して照会して、任意の所与の表に関する必要なフラグメント情報を得ることができる。システム・フラグメント表の属性の1つが、断片化方法である。本明細書で後で説明する参照断片化方式を使用して断片化された表は、参照断片化方式を用いて作成されたものとしてフラグメントを識別する、「reference」などの属性値を有する。参照断片化方式によって使用される参照キー情報も、システム・カタログ内の表に保管される。
【0054】
各データ・ストアに、データベース・システムによって管理される1つまたは複数の表の1つまたは複数のフラグメント408aから408iを保管することができる。一般に、並列に動作することができるデータ・ストレージ・サブシステムにまたがってフラグメントを分割しないことが有利である。
【0055】
図14に示されているのは、図1に関して前に説明したコンピュータ・システム・プラットフォーム内での使用に適するコンピュータ1002のブロック図である。本発明は、ディジタル電子回路内またはコンピュータ・ハードウェア内、ファームウェア、ソフトウェア、もしくはこれらの組合せで実施することができる。本発明の装置は、コンピュータ・プロセッサによる実行のために機械可読記憶装置内で有形に実施されるコンピュータ・プログラム製品で実施することができ、本発明の方法ステップを、入力データに対して作用し、出力を生成することによって本発明の機能を実行するためのプログラムを実行するコンピュータ・プロセッサによって実行することができる。適当なプロセッサ1020には、たとえば、汎用マイクロプロセッサと特殊目的マイクロプロセッサの両方が含まれる。一般に、プロセッサは、読取専用メモリ1022またはランダム・アクセス・メモリ1021から命令およびデータを受け取る。コンピュータ・プログラム命令を有形に実施するのに適するストレージ・デバイスには、例としてEPROM、EEPROM、およびフラッシュ・メモリ・デバイスなどの半導体メモリ・デバイスを含むすべての形態の不揮発性メモリ、磁気テープ、内蔵ハード・ディスクおよび取外し可能ディスク1040などの磁気ディスク、光磁気ディスク、およびCD−ROMディスクが含まれる。前述のいずれであっても、特別に設計されたASIC(特定用途向け集積回路)によって補足するか、それに組み込むことができる。
【0056】
他の実施形態は、請求項の1つまたは複数の範囲に含まれる。
【図面の簡単な説明】
【図1】 本発明によるデータベース・エンジンを示す図である。
【図2】 ツリー・データ構造を作成する処理を示す流れ図である。
【図3】 照会に応答してツリー・データ構造を適用する処理を示す流れ図である。
【図4】 図2から3のデータ断片化処理でのデータセット区分の処理を示す流れ図である。
【図5】 図2から3で作成されたツリーを検索する処理を示す流れ図である。
【図6】 図2から3に従ってツリーを作成する処理を示す流れ図である。
【図7】 本発明によるデータ断片化を最適化する処理を示す流れ図である。
【図8】 図1のシステムの例示的動作を示す図である。
【図9】 図1のシステムの例示的動作を示す図である。
【図10】 図1のシステムの例示的動作を示す図である。
【図11】 図1のシステムの例示的動作を示す図である。
【図12】 図1のシステムの例示的動作を示す図である。
【図13】 本発明によるデータベース・システムの実施形態を実施するのに適するコンピュータ・システム・プラットフォームを示すブロック図である。
【図14】 図1のデータベース・エンジンでの使用に適するコンピュータおよびコンピュータ要素を示すブロック図である。
【符号の説明】
30 データベース・エンジン
32 ユーザ・アプリケーション
34 クライアント・アプリケーション・プログラミング・インターフェース(API)
38 SQLパーサ
40 コード・ジェネレータ
42 最適化プログラム
44 フラグメント・マネージャ
46 RSAM
48 ライブラリ
Claims (40)
- リレーショナル・データベース・システムにおいて、データベース内のデータ・フラグメントを管理するコンピュータ実施される方法であって、
照会式を中間範囲表現に変換するステップと、
前記中間範囲表現を整数範囲表現に写像するステップと、
前記データ・フラグメントに関連する検索空間を表現するために索引ツリー・データ構造を作成するステップと、
所望のデータ・フラグメントを突き止めるために前記索引ツリー・データ構造を使用するステップと
を含む方法。 - 前記整数範囲表現が、構造化照会言語(SQL)データ型から独立である、請求項1に記載の方法。
- さらに、前記データ・フラグメントを更新するために前記索引ツリー・データ構造を使用するステップを含む、請求項1に記載の方法。
- さらに、データ・フラグメントにデータを挿入するために前記索引ツリー・データ構造を使用するステップを含む、請求項1に記載の方法。
- さらに、データ・セット内のデータを選択するために前記索引ツリー・データ構造を使用するステップを含む、請求項1に記載の方法。
- さらに、内部データベース動作中に前記索引ツリー・データ構造を使用するステップを含む、請求項1に記載の方法。
- さらに、SQL SELECTステートメントを使用して前記データを選択するステップを含む、請求項1に記載の方法。
- 前記索引ツリー・データ構造が、前記データ・フラグメントを突き止めるのに使用される、請求項1に記載の方法。
- さらに、前記索引ツリー・データ構造を平衡化するためにデータ・セットを均等なセグメントに区分するステップを含む、請求項1に記載の方法。
- さらに、前記検索ツリー・データ構造を移植するステップを含む、請求項9に記載の方法。
- さらに、すべてのデータ型を整数空間に写像するステップを含む、請求項1に記載の方法。
- 1つまたは複数の断片化式で使用されるデータ点を収集するステップと、
前記データ点を多次元配列に保管するステップと
をさらに含む、請求項1に記載の方法。 - さらに、NULL値の索引点として、前記多次元配列への第1索引を使用するステップを含む、請求項1に記載の方法。
- さらに、正の無限大の索引点として、前記多次元配列の上限を使用するステップを含む、請求項1に記載の方法。
- 前記中間範囲表現が、ソートされる、請求項1に記載の方法。
- 前記写像するステップが、さらに、前記中間範囲表現を前記整数範囲表現に変換する際に二分探索を使用するステップを含む、請求項15に記載の方法。
- 前記索引ツリー・データ構造が、多次元検索空間を表す、請求項1に記載の方法。
- 前記使用するステップが、さらに、O(log(N))検索複雑さで前記検索ツリー・データ構造を検索するステップを含む、請求項1に記載の方法。
- 前記データ・フラグメントの1つまたは複数がオーバーラップする、請求項1に記載の方法。
- 前記索引ツリー・データ構造が、二進ツリーである、請求項1に記載の方法。
- リレーショナル・データベース・システムであって、
照会式を中間範囲表現に変換する手段と、
前記中間範囲表現を整数範囲表現に写像する手段と、
前記データ・フラグメントに関連する検索空間を表現するために索引ツリー・データ構造を作成する手段と、
所望のデータ・フラグメントを突き止めるために前記索引ツリー・データ構造を使用する手段と
を含むリレーショナル・データベース・システム。 - 前記整数範囲表現が、構造化照会言語(SQL)データ型から独立である、請求項21に記載のシステム。
- さらに、前記データ・フラグメントを更新するために前記索引ツリー・データ構造を使用する手段を含む、請求項21に記載のシステム。
- さらに、データ・フラグメントにデータを挿入するために前記索引ツリー・データ構造を使用する手段を含む、請求項21に記載のシステム。
- さらに、データ・セット内のデータを選択するために前記索引ツリー・データ構造を使用する手段を含む、請求項21に記載のシステム。
- さらに、内部データベース動作中に前記索引ツリー・データ構造を使用する手段を含む、請求項21に記載のシステム。
- さらに、SQL SELECTステートメントを使用して前記データを選択する手段を含む、請求項21に記載のシステム。
- 前記索引ツリー・データ構造が、前記データ・フラグメントを突き止めるのに使用される、請求項21に記載のシステム。
- さらに、前記索引ツリー・データ構造を平衡化するためにデータ・セットを均等なセグメントに区分する手段を含む、請求項21に記載のシステム。
- さらに、前記検索ツリー・データ構造を移植する手段を含む、請求項29に記載のシステム。
- さらに、すべてのデータ型を整数空間に写像する手段を含む、請求項21に記載のシステム。
- 1つまたは複数の断片化式で使用されるデータ点を収集する手段と、
前記データ点を多次元配列に保管する手段と
をさらに含む、請求項21に記載のシステム。 - さらに、NULL値の索引点として、前記多次元配列への第1索引を使用する手段を含む、請求項21に記載のシステム。
- さらに、正の無限大への索引点として、前記多次元配列の上限を使用する手段を含む、請求項21に記載のシステム。
- 前記中間範囲表現が、ソートされる、請求項21に記載のシステム。
- 前記写像する手段が、さらに、前記中間範囲表現を前記整数範囲表現に変換する際に二分探索を使用する手段を含む、請求項35に記載のシステム。
- 前記索引ツリー・データ構造が、多次元検索空間を表す、請求項21に記載のシステム。
- 前記使用する手段が、さらに、前記検索ツリー・データ構造を検索するO(log(N))検索複雑さ手段を含む、請求項21に記載のシステム。
- 前記データ・フラグメントの1つまたは複数がオーバーラップする、請求項21に記載のシステム。
- 前記索引ツリー・データ構造が、二進ツリーである、請求項21に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/434,849 | 1999-11-04 | ||
US09/434,849 US6681218B1 (en) | 1999-11-04 | 1999-11-04 | System for managing RDBM fragmentations |
PCT/US2000/030638 WO2001033436A1 (en) | 1999-11-04 | 2000-11-06 | System for managing rdbm fragmentations |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003517165A JP2003517165A (ja) | 2003-05-20 |
JP3813089B2 true JP3813089B2 (ja) | 2006-08-23 |
Family
ID=23725934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001535859A Expired - Fee Related JP3813089B2 (ja) | 1999-11-04 | 2000-11-06 | Rdbm断片化を管理するシステム |
Country Status (8)
Country | Link |
---|---|
US (1) | US6681218B1 (ja) |
EP (1) | EP1234258B1 (ja) |
JP (1) | JP3813089B2 (ja) |
AT (1) | ATE366442T1 (ja) |
AU (1) | AU777792B2 (ja) |
CA (1) | CA2388515C (ja) |
DE (1) | DE60035432T2 (ja) |
WO (1) | WO2001033436A1 (ja) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2406678B (en) * | 2000-11-30 | 2005-05-18 | Coppereye Ltd | Database |
US7523218B1 (en) * | 2002-04-30 | 2009-04-21 | University Of Florida Research Foundation, Inc. | O(log n) dynamic router tables for prefixes and ranges |
US7444318B2 (en) * | 2002-07-03 | 2008-10-28 | University Of Florida Research Foundation, Inc. | Prefix partitioning methods for dynamic router tables |
DK1629406T3 (en) | 2003-05-19 | 2016-11-07 | Huawei Tech Co Ltd | LIMITATION OF scans SOLVED SUBSIDIARY AND / OR GROUP READY RELATIONS BY APPROXIMATE SUBSIDIARY PICTURES |
US9514181B2 (en) * | 2004-03-23 | 2016-12-06 | Linguaversal, SL | Calculation expression management |
EP1674382A1 (de) | 2004-12-22 | 2006-06-28 | Prinoth A.G. | Kettensteg für Laufketten |
JP4933222B2 (ja) * | 2006-11-15 | 2012-05-16 | 株式会社日立製作所 | インデックス処理方法及び計算機システム |
US20080155574A1 (en) * | 2006-12-20 | 2008-06-26 | Gohel Nilesh R | Meta-data driven data access system |
JP4856196B2 (ja) * | 2007-01-30 | 2012-01-18 | 富士通株式会社 | 設定チェック用情報収集方法,設定チェック用情報収集装置および設定チェック用情報収集プログラム |
US20090240699A1 (en) * | 2008-03-18 | 2009-09-24 | Morgan Christopher B | Integration for intelligence data systems |
US20100185672A1 (en) * | 2009-01-21 | 2010-07-22 | Rising Iii Hawley K | Techniques for spatial representation of data and browsing based on similarity |
US8903794B2 (en) * | 2010-02-05 | 2014-12-02 | Microsoft Corporation | Generating and presenting lateral concepts |
US8983989B2 (en) * | 2010-02-05 | 2015-03-17 | Microsoft Technology Licensing, Llc | Contextual queries |
US20110231395A1 (en) * | 2010-03-19 | 2011-09-22 | Microsoft Corporation | Presenting answers |
US8412701B2 (en) * | 2010-09-27 | 2013-04-02 | Computer Associates Think, Inc. | Multi-dataset global index |
US9760609B2 (en) * | 2013-11-22 | 2017-09-12 | Here Global B.V. | Graph-based recommendations service systems and methods |
CN105224536A (zh) | 2014-05-29 | 2016-01-06 | 国际商业机器公司 | 划分数据库的方法和装置 |
US10089357B2 (en) | 2014-09-26 | 2018-10-02 | Oracle International Corporation | System and method for generating partition-based splits in a massively parallel or distributed database environment |
US10528596B2 (en) | 2014-09-26 | 2020-01-07 | Oracle International Corporation | System and method for consistent reads between tasks in a massively parallel or distributed database environment |
US10394818B2 (en) | 2014-09-26 | 2019-08-27 | Oracle International Corporation | System and method for dynamic database split generation in a massively parallel or distributed database environment |
US10180973B2 (en) | 2014-09-26 | 2019-01-15 | Oracle International Corporation | System and method for efficient connection management in a massively parallel or distributed database environment |
US10380114B2 (en) * | 2014-09-26 | 2019-08-13 | Oracle International Corporation | System and method for generating rowid range-based splits in a massively parallel or distributed database environment |
US10078684B2 (en) | 2014-09-26 | 2018-09-18 | Oracle International Corporation | System and method for query processing with table-level predicate pushdown in a massively parallel or distributed database environment |
US10387421B2 (en) | 2014-09-26 | 2019-08-20 | Oracle International Corporation | System and method for generating size-based splits in a massively parallel or distributed database environment |
US10089377B2 (en) | 2014-09-26 | 2018-10-02 | Oracle International Corporation | System and method for data transfer from JDBC to a data warehouse layer in a massively parallel or distributed database environment |
US20160188643A1 (en) * | 2014-12-31 | 2016-06-30 | Futurewei Technologies, Inc. | Method and apparatus for scalable sorting of a data set |
US9916359B2 (en) * | 2015-06-01 | 2018-03-13 | Sap Se | Indexing dynamic hierarchical data |
US10713232B2 (en) * | 2018-04-16 | 2020-07-14 | Computational Systems, Inc. | Efficient data processing |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5128860A (en) * | 1989-04-25 | 1992-07-07 | Motorola, Inc. | Manufacturing or service system allocating resources to associated demands by comparing time ordered arrays of data |
US5319777A (en) * | 1990-10-16 | 1994-06-07 | Sinper Corporation | System and method for storing and retrieving information from a multidimensional array |
US5822749A (en) | 1994-07-12 | 1998-10-13 | Sybase, Inc. | Database system with methods for improving query performance with cache optimization strategies |
CA2167790A1 (en) * | 1995-01-23 | 1996-07-24 | Donald S. Maier | Relational database system and method with high data availability during table data restructuring |
US5829004A (en) * | 1996-05-20 | 1998-10-27 | Au; Lawrence | Device for storage and retrieval of compact contiguous tree index records |
US5893104A (en) | 1996-07-09 | 1999-04-06 | Oracle Corporation | Method and system for processing queries in a database system using index structures that are not native to the database system |
US5974411A (en) * | 1997-02-18 | 1999-10-26 | Sand Technology Systems International, Inc. | N-way processing of bit strings in a dataflow architecture |
US5875445A (en) | 1997-05-29 | 1999-02-23 | Oracle Corporation | Performance-related estimation using pseudo-ranked trees |
US5960426A (en) | 1997-06-30 | 1999-09-28 | International Business Machines Corporation | Database system and method for supporting current of cursor updates and deletes from a select query from one or more updatable tables in single node and mpp environments |
US5943668A (en) * | 1997-06-30 | 1999-08-24 | International Business Machines Corporation | Relational emulation of a multi-dimensional database |
-
1999
- 1999-11-04 US US09/434,849 patent/US6681218B1/en not_active Expired - Lifetime
-
2000
- 2000-11-06 AU AU14729/01A patent/AU777792B2/en not_active Ceased
- 2000-11-06 EP EP00992956A patent/EP1234258B1/en not_active Expired - Lifetime
- 2000-11-06 JP JP2001535859A patent/JP3813089B2/ja not_active Expired - Fee Related
- 2000-11-06 DE DE60035432T patent/DE60035432T2/de not_active Expired - Lifetime
- 2000-11-06 CA CA2388515A patent/CA2388515C/en not_active Expired - Fee Related
- 2000-11-06 AT AT00992956T patent/ATE366442T1/de not_active IP Right Cessation
- 2000-11-06 WO PCT/US2000/030638 patent/WO2001033436A1/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
CA2388515A1 (en) | 2001-05-10 |
JP2003517165A (ja) | 2003-05-20 |
ATE366442T1 (de) | 2007-07-15 |
EP1234258A4 (en) | 2005-08-10 |
DE60035432T2 (de) | 2008-03-06 |
EP1234258B1 (en) | 2007-07-04 |
AU777792B2 (en) | 2004-10-28 |
CA2388515C (en) | 2010-05-25 |
DE60035432D1 (de) | 2007-08-16 |
AU1472901A (en) | 2001-05-14 |
WO2001033436A1 (en) | 2001-05-10 |
US6681218B1 (en) | 2004-01-20 |
EP1234258A1 (en) | 2002-08-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3813089B2 (ja) | Rdbm断片化を管理するシステム | |
US10769142B2 (en) | Graph processing in database | |
US10102253B2 (en) | Minimizing index maintenance costs for database storage regions using hybrid zone maps and indices | |
US7171427B2 (en) | Methods of navigating a cube that is implemented as a relational object | |
US5832475A (en) | Database system and method employing data cube operator for group-by operations | |
US5899992A (en) | Scalable set oriented classifier | |
US8868544B2 (en) | Using relational structures to create and support a cube within a relational database system | |
Beckmann et al. | A revised R*-tree in comparison with related index structures | |
US20100179955A1 (en) | Relational Pattern Discovery Across Multiple Databases | |
EP1208478A1 (en) | Value-instance-connectivity computer-implemented database | |
US20120296913A1 (en) | System and Method of Partitioned Lexicographic Search | |
US7509332B1 (en) | Customized indexes for user defined data types | |
Srivastava et al. | TBSAM: An access method for efficient processing of statistical queries | |
Song et al. | Haery: a Hadoop based query system on accumulative and high-dimensional data model for big data | |
US6826563B1 (en) | Supporting bitmap indexes on primary B+tree like structures | |
Bertino et al. | The indispensability of dispensable indexes | |
KR102351846B1 (ko) | 분산형 데이터베이스상의 인덱스 병합을 활용한 질의 최적화 방법 | |
US20070078888A1 (en) | Method and System for Managing An Index Arrangement for a Directory | |
Shekita | High Performance Implementation Techniques for Next Generation Database Systems | |
Yang et al. | Workload-based ordering of multi-dimensional data | |
US9015187B1 (en) | Mapping table rows to characters | |
US7933867B1 (en) | Maintaining views of cube-based operations in a database system | |
JP3980326B2 (ja) | データ管理方法およびコンピュータ読み取り可能な記録媒体 | |
Raigoza et al. | Temporal join processing with hilbert curve space mapping | |
Arsov et al. | Prediction of Horizontal Data Partitioning Through Query Execution Cost Estimation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20040227 |
|
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: 20060523 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060530 |
|
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: 20100609 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110609 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110609 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120609 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120609 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130609 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |