JP2007534035A - リレーショナルデータベースシステムでデータを緻密化するためのdmlステートメント - Google Patents
リレーショナルデータベースシステムでデータを緻密化するためのdmlステートメント Download PDFInfo
- Publication number
- JP2007534035A JP2007534035A JP2006524117A JP2006524117A JP2007534035A JP 2007534035 A JP2007534035 A JP 2007534035A JP 2006524117 A JP2006524117 A JP 2006524117A JP 2006524117 A JP2006524117 A JP 2006524117A JP 2007534035 A JP2007534035 A JP 2007534035A
- Authority
- JP
- Japan
- Prior art keywords
- processors
- data
- dimension
- perform
- instructions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 claims abstract description 141
- 238000000638 solvent extraction Methods 0.000 claims abstract description 55
- 230000014509 gene expression Effects 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 7
- 230000008878 coupling Effects 0.000 claims description 6
- 238000010168 coupling process Methods 0.000 claims description 6
- 238000005859 coupling reaction Methods 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 4
- 238000005192 partition Methods 0.000 abstract description 68
- 238000000280 densification Methods 0.000 abstract description 39
- 238000004891 communication Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 239000002131 composite material Substances 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000011218 segmentation Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 3
- 238000013138 pruning Methods 0.000 description 3
- 101100328886 Caenorhabditis elegans col-2 gene Proteins 0.000 description 2
- 101100328884 Caenorhabditis elegans sqt-3 gene Proteins 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000007670 refining 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- 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/242—Query formulation
- G06F16/2433—Query languages
- G06F16/2445—Data retrieval commands; View definitions
-
- 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/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
この発明はデータ操作に関する。より特定的には、この発明は、1つ以上の次元に関してデータの集合を緻密化するための手法に関する。
「次元」という用語は、別個の値の関連集合を指す。たとえば、TIMES(時間)次元は、1998年1月から2003年12月までのすべての日付を含み得る。同様に、PRODUCTS(製品)次元は、ある会社のあらゆる可能な製品を表わす値を含み得る。
データを緻密化するためのDMLステートメントを提供するための方法および装置を記
載する。以下の記載では、説明のため、多数の特定の詳細がこの発明の完全な理解を提供するために述べられる。しかしながら、この発明がこれらの特定の詳細なしで実践され得ることは明らかである。他の点では、この発明を不必要に不明瞭にしないよう、周知の構造および装置はブロック図の形で示す。
DISTINCT演算、CROSS JOIN演算、およびOUTER JOIN演算の組合せを行なう必要なくデータを緻密化するための手法をここに説明する。たとえば、この発明の一実施例は、DISTINCT演算を行なうことなくデータを緻密化する。特に、データは、データが緻密化されていない次元の別個の値を見つけるためにソート演算を行なうことなく、緻密化される。
データベースサーバは、それらがサポートするデータベース言語に準拠するデータベー
スステートメントを実行するよう設計されている。SQLは、多くのデータベースサーバによってサポートされているデータベース言語である。データベース言語は通常、(1)演算を識別するための構文と、(2)演算を行なう対象となっているデータを識別するための構文とを含む。多くのデータベース演算はテーブルに対して行なわれるよう設計されているため、データベースステートメントは通常、演算を行なう対象となっているテーブルを特定するテーブル識別子を含む。データベース言語のシンタックスを記述する際、そのようなテーブル識別子はラベルtable_referenceによって表わされる。
図2Aに示すように、partitioned_table参照は、table_referenceとPARTITION BY句とを含む。PARTITION BY句の前にあるtable_referenceによって特定されるテーブルをここに、PARTITION BY句の「ターゲットテーブル」と呼ぶこととする。ターゲットテーブルは、ファクトテーブルであっても、または任意の他のタイプのテーブルであってもよい。PARTITION BY句における式および列はそれぞれ、区分化式および区分化列と呼ばれる。
221によって特定されたターゲットテーブルを区分へと分割し、各区分は、expr222に起因する列の次元値に対応している。たとえば、ターゲットテーブルがSALESファクトテーブルであり、exprがPRODUCT次元に対応する列である場合、SALESテーブルはprod_idによって区分化される。P1、P2およびP3という3つのprod_idがある場合、区分化された製品テーブルの第1の区分は、prod_idP1を有する行であり、第2の区分は、prod_idP2を有する行であり、第3の区分は、prod_idP3を有する行である。同様に、コンマ224を用いると、各prod_id値についてR1およびR2という2つの地域ID(regn_id)を有する地域次元がある場合、区分化テーブル句「SALES PARTITION BY{prod_id,regn_id}」は、テーブルを6つの区分に区分化する。第1の区分は製品ID P1と地域ID R1とを有し、第2の区分は製品ID P1と地域ID R2とを有し、第3の区分は製品ID P2と地域ID R1とを有し、第4の区分は製品ID P2と地域ID R2とを有し、第5の区分は製品ID P3と地域ID R1とを有し、第6の区分は製品ID P3と地域ID R2とを有する。
図2Bは、図2Cの外部結合タイプ230のシンタックスのブロック図である。外部結合タイプ230はオプション242を含む。
。FULL OUTER JOINでは、結果として生じるテーブルは、キーワード「OUTER JOIN」の右に現われるテーブル、左に現われるテーブル、および双方のテーブルからのすべての行を含む。どちらか一方の側にpartitioned_tableが現われる場合、各区分は、キーワード「OUTER JOIN」の他方の側にあるtable_referenceまたはpartitioned_tableに別々にOUTER JOINされる。
上述の事項を明確化するため、まず、正規ANSI準拠JOIN記法の結果記録に配置される列を説明し、次に、PARTITIONED OUTER JOIN記法の結果記録に配置される列を説明する。ANSI準拠記法において、2つのテーブルT1(c1,c2,c3)およびT2(c1,c4)があると仮定する。ここで、c1、c2、c3およびc4は列を表わす。名前を付けられたJOIN(たとえばUSING(使用する)句を有するJOIN、またはnatural(自然)JOIN)を使用する際、結果記録は、(1)結合キーとして使用される列と、(2)JOINオペランドの左からの非結合キーの列と、(3)JOINオペランドの右からの非結合キーの列とから構成される。たとえば、句T1 RIGHT OUTER JOIN T2 USING(c1)、または句T1 NATURAL RIGHT OUTER JOIN T2の結果は、列(c1,T1.C2,T1.C3,T2.c4
)から構成される。列c1はテーブルT1およびT2の双方に現われるが、列c1は結合キーとして使用されたため、結果には列c1のコピーが1つだけ配置される。
図2Cは、ブランチ202および204を有する拡張されたJOINシンタックスのブロック図である。ブランチ204は、区分化されたテーブル206、区分化されたテーブル2
08、区分化されたテーブル210、外部結合タイプ212、外部結合タイプ214、および条件216を含み、それらは以下の説明で言及される。
標準OUTER JOINへ戻る。
PARTITIONED OUTER JOINシンタックスを用いると、問合せQ1は以下のように書換可能である。
データベースサーバは、区分化外部結合を特定するステートメントを受取ることに応答して、区分化外部結合演算を行なうために1つ以上のルーチンを実行する。区分化外部結合を行なうために、さまざまな手法がデータベースサーバによって使用されてもよい。一実施例によれば、データベースサーバは、複数の手法の各々についてのルーチンを含み、次に、区分化外部結合演算を含む各ステートメントにとってどの手法が最も適切かを選択する。一実施例では、所与の問合せについて選択された方法は、その問合せを行なうためにどの方法がより効率的であるかに依存する。
めの3つの手法をここで説明する。提示された3つの方法の各々において、一連の「ミニ結合」(すなわち、テーブル全体に対して一度には行なわれない結合)が行なわれる。これら3つの方法の各々は、3つの方法のうちの別のものがより効率的かどうかを判断するために計算コストに関する見積りを行なうことなく、互いに別々に使用されてもよい。また、これに代えて、上述の方法の任意の2つが互いに組合されて使用されてもよく、所与の問合せについてその2つの方法のうちのどちらを使用するかを決めるためにコスト計算が行なわれる。
図3は、入れ子ループ区分化外部結合と呼ばれる方法300を示すフローチャートである。
)、方法300はステップ308へ進み、そこで、その測度についてヌル値を有する行が作成される。ステップ308の後で、方法300はステップ310へ進む。ステップ306の説明に戻ると、行が存在する場合、方法300は(ステップ308を行なわずに)ステップ310へ進む。ステップ310で、ステップ306で見つかった行、またはステップ308で作成された行が、提示される最終結果(または出力テーブル)に追加される。ステップ312で、インデックスIIを有するループについてのインデックス値が他にあるかどうかが判断される。インデックスII値が他にある場合、方法300はステップ304へ戻り、インデックスIIを有するループの別の実行を開始する。インデックスII値が他にない場合、方法300はステップ314へ進み、インデックスI値が他にあるかどうかをチェックする。インデックスI値が他にある場合、方法300はステップ302へ進み、インデックスIを有するループの別の実行を開始する。インデックスI値が他にない場合、方法300は終了する。ステップ310とステップ312との間の点線によって示すように、ステップ312および314に類似するステップが任意の数あってもよく、各ステップは異なるループに対応しており、各ループは異なる緻密化次元または区分化次元に対応している。
方法300のステップ302へ戻ると、一実施例では、存在する唯一のインデックスが区分化次元を複合インデックスの一部として使用し、複合インデックスが、複合インデックスの他の部分について他の次元を有する場合、区分化次元が複合インデックスの先頭列でなくても、区分化インデックス(たとえばインデックスI)のためにスキップスキャンが使用される。スキップスキャンの最中、複合インデックスの区分化次元は、1つ以上の先頭列の各値についてアクセスされる。一実施例では、区分化インデックスの第1の値を見つけた後で、その値を有するインデックスにおける他のエントリは、次に高い値が見つかるまでスキップされる。インデックスの次の値を見つけた後で、既に見つかったインデックス値すべてがスキップされる。区分化インデックスの各別個の値について、このプロセスを繰返すことが見つけられてもよい。区分化インデックスの新しい別個の値を見つけた後で、区分化ループが実行される。データ用の集合によってはフルテーブルスキャンよりもスキップスキャンの方が迅速であり得る1つの理由は、インデックスが次元値のシーケンスを追跡するように編成されているためである。インデックス値の編成は、スキップ可能なインデックス組合せを判断するために利用されてもよい。加えて、インデックスを記憶するディスク空間のサイズは、フルテーブルを記憶するディスク空間のサイズよりも小さく、より小さいディスク空間はより速いアクセス時間を有する。
であろうインデックスとして使用されてもよい。こうして、スキップスキャンを使用することにより、外部ループの新しい各値Iで、(区分化次元が次元値Iを有する)ファクトテーブルの対応する区分が見つけられる。スキップスキャンでは、ループは、ループが以前に実行されていない新しいprod_idに遭遇するたびに、繰返される。
図4は、PARTITIONED OUTER JOINを行なう第2の方法である方法400のためのフローチャートを示しており、以下の説明されるように、ターゲットテーブルは区分へと分割され、次に各区分はOUTER JOINされる。ファクトテーブルの区分への分割は、等価結合またはインデックスに頼ってはおらず、したがって、他の2つの方法よりも柔軟性があるかもしれないが、場合によっては効率が落ちるかもしれない。
図5は、ソートマージ区分化外部結合と呼ばれ得るPARTITIONED OUTER JOINを行なう第3の方法である方法500のフローチャートである。各区分内のソートマージ結合は、以下に説明されるように行なわれる。ソートマージ結合はインデックスを必要とせず、また、等価結合を使用する。
図6は、PARTITIONED OUTER JOINを実行可能なリレーショナルデータベース管理システムに含まれ得るオプティマイザの演算の方法600のフローチャートである。一実施例で
は、オプティマイザは、PARTITIONED OUTER JOINを実行するリレーショナルデータベース管理システムに含まれている。オプティマイザは、さまざまな異なる演算を行なうさまざまな方法の中から、テーブルの集合、および演算が行なわれつつあるステートメントについての各方法の計算コストに基づいて、決める。一実施例では、オプティマイザは、どの方法が最も効率的かに基づいて、PARTITIONED OUTER JOINを行なうための方法を決める。
JOINおよびOUTER JOINで通常使用される最適化は、PARTITIONED OUTER JOINででも使用可能である。たとえば、述語押込みおよび区分刈込みも、PARTITIONED OUTER JOINで使用されてもよい。述語押込みに関しては、区分化式全体にわたって定義された述語のみが、ビューのために押下げられるかまたは押上げられるべきである。言い換えれば、次元値の或る集合への出力を制限する条件を或る述語が課する場合、プログラムは、対象ではない
次元値に関する不必要な計算が行なわれないよう、初期計算を行ないながらその述語を適用する。特定されたポイントで述語を適用する代わりに、述語は、同じ結果を得るために行なわれる必要がある計算の量を最小限に抑えるかまたは少なくとも減少させる、プログラムの1つ以上のポイントで適用される。
上述の区分化外部結合実行手法は、各PARTITIONED OUTER JOIN計算が1組のスレーブに任され、それらが各々、他のスレーブから独立して結合演算を行なうことができるようになっているという点で、スケーラブルである。この文脈では、スレーブとは、任意のエンティティであって、他のそのようなエンティティと並行して命令を処理できるものである。たとえば、スレーブは、別のプロセッサ、プロセスまたはスレッドであってもよい。異なるスレーブが独立して区分を処理することを容易にするために、JOINの緻密化次元テーブルはスレーブのすべてにブロードキャストされる。JOIN演算の区分化されたターゲットテーブルは、プロセッサおよび/またはスレーブ全体にわたって、ハッシュ区分化または範囲区分化されてもよい。
Sテーブルの部分を受取ってもよい。しかしながら、プロセッサ1〜6の各々は、TIMESテーブル全体を受取る。したがって、各スレーブおよび/またはプロセスは、区分化されたテーブルのその切片についてPARTITIONED OUTER JOIN演算を行なうために、それが必要とするターゲットテーブルの区分および次元テーブル全体へのアクセスを有する。第1のプロセッサはまず製品ID♯1の区分にOUTER JOINしてもよく、次に製品ID♯2の区分にOUTER JOINしてもよい。第1のプロセスの演算と並行して、第2のプロセッサはまず製品ID♯3の区分にOUTER JOINしてもよく、次にID♯4の区分にOUTER JOINしてもよい。同時に、第3のプロセッサは製品ID♯5区分にOUTER JOINしてもよい。また、並行して、第4のプロセッサは製品ID♯6区分にOUTER JOINしてもよい。
PARTITIONED OUTER JOINの代わりに、緻密化のために適合された構文が使用されてもよい。たとえば、緻密化するための或る構文は、以下のシンタックスを有していてもよい。
図7は、この発明の一実施例が実施され得るコンピュータシステム700を示すブロック図である。この発明は、多くの異なるタイプのマシンで実施されてもよい。コンピュータシステム700はそのようなマシンのほんの一例である。コンピュータシステム700は、情報を通信するためのバス702または他の通信機構と、情報を処理するためにバス702と結合されたプロセッサ704とを含む。コンピュータシステム700はまた、プロセッサ704により実行されるべき命令および情報を記憶するためにバス702に結合された、ランダムアクセスメモリ(RAM)または他のダイナミック記憶装置といったメインメモリ706も含む。メインメモリ706は、プロセッサ704により実行されるべき命令の実行中に一時的な変数または他の中間情報を記憶するためにも使用されてもよい。コンピュータシステム700はさらに、プロセッサ704用の命令およびスタティック情報を記憶するためにバス702に結合された読出専用メモリ(ROM)708または他のスタティック記憶装置を含む。磁気ディスクまたは光ディスクといった記憶装置710が、情報および命令を記憶するために提供され、バス702に結合されている。
どの別のコンピュータ読み取り可能な媒体からメインメモリ706に読込まれてもよい。メインメモリ706に含まれる命令のシーケンスの実行により、プロセッサ704は、ここに説明された処理ステップを行なうようになる。代替的な実施例では、この発明を実施するために、ソフトウェア命令の代わりに、またはソフトウェア命令と組合わせて、配線接続回路が使用されてもよい。このため、この発明の実施例は、ハードウェア回路とソフトウェアとのどの特定の組合せにも限定されない。
Claims (39)
- マシンにより実施される方法であって、
複数の次元に関連付けられたデータの第1の集合に基づいて、複数の次元のうちの第1の次元に関してデータの第1の集合よりも密なデータの第2の集合を生成するステップを含み、
データの第1の集合はデータの複数の部分集合を含み、
生成するステップは、データの部分集合の各々とデータの第3の集合との間で外部結合を行なうことを含む、方法。 - データの第1の集合は、次元値組合せに関連付けられた行を含み、次元値組合せは、複数の次元から選択された次元値の組合せであり、
データの第2の集合は、データの第1の集合の行に対応する次元値組合せについて対応する行を含み、
対応する行は次元値組合せに関連付けられており、
生成するステップは、
次元値組合せの集合について、或る対応する行がデータの第2の集合に存在するかどうかをチェックするステップを含み、次元値組合せの集合は1つの次元に関して密であり、生成するステップはさらに、
対応する行が存在しない場合、行を作成するステップを含む、請求項1に記載の方法。 - チェックするステップは、次元値組合せの集合の各次元値組合せについて1つのループを行なう入れ子ループ命令の集合内で行なわれる、請求項2に記載の方法。
- データの部分集合の各々はデータの単一の行である、請求項1に記載の方法。
- データの部分集合の各々はデータの第1の集合の1区分であり、複数の次元のうちの1つの次元から選択された単一の次元値に関連付けられている、請求項1に記載の方法。
- 生成するステップは、データ操作言語ステートメントの検出に応答して行なわれる、請求項1に記載の方法。
- 生成するステップは、第1のプロセッサを用いて第1の部分集合に対して外部結合を行なうステップと、第1のプロセッサとは異なる第2のプロセッサを用いて第2の部分集合に対して外部結合を行なうステップとを含む、請求項1に記載の方法。
- 外部結合は右外部結合である、請求項7に記載の方法。
- 外部結合は左外部結合である、請求項8に記載の方法。
- 生成するステップはSQLエンジンによって行なわれる、請求項1に記載の方法。
- 生成するステップは、データの第1の集合を区分化するための区分化キーを示す式を受取るステップを含む、請求項1に記載の方法。
- 外部結合は、ブール式を含む結合条件に関連付けられている、請求項1に記載の方法。
- データの前記第1の集合は、行の第1の集合を含み、
前記外部結合は、行の前記第1の集合と行の第2の集合との間でのものであり、生成するステップは、行の前記第1の集合の部分集合、および行の前記第2の集合のすべてを、
複数のプロセスの各々に送るステップを含む、請求項1に記載の方法。 - 生成するステップは、
複数の次元のうちの少なくとも1つの次元を特定するステップと、
特定された次元に関してデータの第1の集合をハッシュ区分化するステップとを含む、請求項13に記載の方法。 - データの第2の集合にどの次元値組合せが含まれるかを限定する条件を含む構文を検出するステップと、
他の構文を検出することに応答して、データの第2の集合が限定されていた次元値組合せに関してのみ演算を行なうステップとをさらに含む、請求項1に記載の方法。 - データの第1の集合は複数の次元に関連付けられ、第2の集合は複数の次元に関連付けられ、データの第2の集合は、複数の次元のうちの1つに関してより密である、請求項1に記載の方法。
- マシンにより実施される方法であって、
複数の次元に関連付けられたデータの第1の集合に基づいて、複数の次元のうちの第1の次元に関してデータの第1の集合よりも密なデータの第2の集合を生成するステップを含み、
生成するステップは、複数の次元のうちの第2の次元の別個の値についてデータの第1の集合のソートの組合せを行なうことなく行なわれ、
前記方法はさらに、
見つかった別個の値と第1の次元の次元値の集合との外積を行なうことにより、行の第1の集合を生成するステップと、
行の第1の集合に行が存在しない次元値の集合の次元値に対応する行を、行の前記第1の集合に追加するステップとを含む、方法。 - 生成するステップは、データの第1の集合のソートを行なうことなく行なわれ、データの第1の集合のソートは、複数の次元のうちの第2の次元の別個の値を見つけるために使用される、請求項17に記載の、マシンにより実施される方法。
- 命令の1つ以上のシーケンスを保持するマシン読み取り可能な媒体であって、1つ以上のプロセッサによって実行される際、請求項1に記載の方法を1つ以上のプロセッサに行なわせる、マシン読み取り可能な媒体。
- 命令の1つ以上のシーケンスを保持するマシン読み取り可能な媒体であって、1つ以上のプロセッサによって実行される際、請求項2に記載の方法を1つ以上のプロセッサに行なわせる、マシン読み取り可能な媒体。
- 命令の1つ以上のシーケンスを保持するマシン読み取り可能な媒体であって、1つ以上のプロセッサによって実行される際、請求項3に記載の方法を1つ以上のプロセッサに行なわせる、マシン読み取り可能な媒体。
- 命令の1つ以上のシーケンスを保持するマシン読み取り可能な媒体であって、1つ以上のプロセッサによって実行される際、請求項4に記載の方法を1つ以上のプロセッサに行なわせる、マシン読み取り可能な媒体。
- 命令の1つ以上のシーケンスを保持するマシン読み取り可能な媒体であって、1つ以上のプロセッサによって実行される際、請求項5に記載の方法を1つ以上のプロセッサに行
なわせる、マシン読み取り可能な媒体。 - 命令の1つ以上のシーケンスを保持するマシン読み取り可能な媒体であって、1つ以上のプロセッサによって実行される際、請求項6に記載の方法を1つ以上のプロセッサに行なわせる、マシン読み取り可能な媒体。
- 命令の1つ以上のシーケンスを保持するマシン読み取り可能な媒体であって、1つ以上のプロセッサによって実行される際、請求項7に記載の方法を1つ以上のプロセッサに行なわせる、マシン読み取り可能な媒体。
- 命令の1つ以上のシーケンスを保持するマシン読み取り可能な媒体であって、1つ以上のプロセッサによって実行される際、請求項8に記載の方法を1つ以上のプロセッサに行なわせる、マシン読み取り可能な媒体。
- 命令の1つ以上のシーケンスを保持するマシン読み取り可能な媒体であって、1つ以上のプロセッサによって実行される際、請求項9に記載の方法を1つ以上のプロセッサに行なわせる、マシン読み取り可能な媒体。
- 命令の1つ以上のシーケンスを保持するマシン読み取り可能な媒体であって、1つ以上のプロセッサによって実行される際、請求項10に記載の方法を1つ以上のプロセッサに行なわせる、マシン読み取り可能な媒体。
- 命令の1つ以上のシーケンスを保持するマシン読み取り可能な媒体であって、1つ以上のプロセッサによって実行される際、請求項11に記載の方法を1つ以上のプロセッサに行なわせる、マシン読み取り可能な媒体。
- 命令の1つ以上のシーケンスを保持するマシン読み取り可能な媒体であって、1つ以上のプロセッサによって実行される際、請求項12に記載の方法を1つ以上のプロセッサに行なわせる、マシン読み取り可能な媒体。
- 命令の1つ以上のシーケンスを保持するマシン読み取り可能な媒体であって、1つ以上のプロセッサによって実行される際、請求項13に記載の方法を1つ以上のプロセッサに行なわせる、マシン読み取り可能な媒体。
- 命令の1つ以上のシーケンスを保持するマシン読み取り可能な媒体であって、1つ以上のプロセッサによって実行される際、請求項14に記載の方法を1つ以上のプロセッサに行なわせる、マシン読み取り可能な媒体。
- 命令の1つ以上のシーケンスを保持するマシン読み取り可能な媒体であって、1つ以上のプロセッサによって実行される際、請求項15に記載の方法を1つ以上のプロセッサに行なわせる、マシン読み取り可能な媒体。
- 命令の1つ以上のシーケンスを保持するマシン読み取り可能な媒体であって、1つ以上のプロセッサによって実行される際、請求項16に記載の方法を1つ以上のプロセッサに行なわせる、マシン読み取り可能な媒体。
- 命令の1つ以上のシーケンスを保持するマシン読み取り可能な媒体であって、1つ以上のプロセッサによって実行される際、請求項17に記載の方法を1つ以上のプロセッサに行なわせる、マシン読み取り可能な媒体。
- 命令の1つ以上のシーケンスを保持するマシン読み取り可能な媒体であって、1つ以上のプロセッサによって実行される際、請求項18に記載の方法を1つ以上のプロセッサに行なわせる、マシン読み取り可能な媒体。
- システムであって、
1つ以上のプロセッサと、
命令の1つ以上のシーケンスを保持するマシン読み取り可能な媒体とを含み、マシン読み取り可能な媒体は、1つ以上のプロセッサによって実行される際、請求項1に記載の方法を1つ以上のプロセッサに行なわせる、システム。 - システムであって、
1つ以上のプロセッサと、
命令の1つ以上のシーケンスを保持するマシン読み取り可能な媒体とを含み、マシン読み取り可能な媒体は、1つ以上のプロセッサによって実行される際、請求項17に記載の方法を1つ以上のプロセッサに行なわせる、システム。 - システムであって、
1つ以上のプロセッサと、
命令の1つ以上のシーケンスを保持するマシン読み取り可能な媒体とを含み、マシン読み取り可能な媒体は、1つ以上のプロセッサによって実行される際、請求項18に記載の方法を1つ以上のプロセッサに行なわせる、システム。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US49711103P | 2003-08-22 | 2003-08-22 | |
US60/497,111 | 2003-08-22 | ||
US49907803P | 2003-08-28 | 2003-08-28 | |
US60/499,078 | 2003-08-28 | ||
US10/796,217 | 2004-03-08 | ||
US10/796,217 US7356542B2 (en) | 2003-08-22 | 2004-03-08 | DML statements for densifying data |
PCT/US2004/027406 WO2005020105A1 (en) | 2003-08-22 | 2004-08-19 | Dml statements for densifying data in a relational database system |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2007534035A true JP2007534035A (ja) | 2007-11-22 |
JP2007534035A5 JP2007534035A5 (ja) | 2008-01-10 |
JP4747094B2 JP4747094B2 (ja) | 2011-08-10 |
Family
ID=34198989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006524117A Active JP4747094B2 (ja) | 2003-08-22 | 2004-08-19 | リレーショナルデータベースシステムでデータを緻密化するためのdmlステートメント |
Country Status (6)
Country | Link |
---|---|
US (1) | US7356542B2 (ja) |
EP (1) | EP1658572A1 (ja) |
JP (1) | JP4747094B2 (ja) |
AU (1) | AU2004267850B2 (ja) |
CA (1) | CA2534788C (ja) |
WO (1) | WO2005020105A1 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7356542B2 (en) | 2003-08-22 | 2008-04-08 | Oracle International Corporation | DML statements for densifying data |
US7539667B2 (en) * | 2004-11-05 | 2009-05-26 | International Business Machines Corporation | Method, system and program for executing a query having a union operator |
US8645313B1 (en) * | 2005-05-27 | 2014-02-04 | Microstrategy, Inc. | Systems and methods for enhanced SQL indices for duplicate row entries |
US20070094233A1 (en) * | 2005-10-24 | 2007-04-26 | Wolfgang Otter | Translating time-independent data using database operations |
US8027969B2 (en) * | 2005-12-29 | 2011-09-27 | Sap Ag | Efficient calculation of sets of distinct results in an information retrieval service |
US20090063527A1 (en) * | 2007-08-31 | 2009-03-05 | International Business Machines Corporation | Processing of database statements with join predicates on range-partitioned tables |
IL195956A0 (en) | 2008-12-15 | 2009-09-01 | Hyperroll Israel Ltd | Automatic data store architecture detection |
IL197961A0 (en) * | 2009-04-05 | 2009-12-24 | Guy Shaked | Methods for effective processing of time series |
US8370316B2 (en) | 2010-07-12 | 2013-02-05 | Sap Ag | Hash-join in parallel computation environments |
US8880503B2 (en) * | 2011-06-21 | 2014-11-04 | Microsoft Corporation | Value-based positioning for outer join queries |
US8468150B2 (en) | 2011-10-31 | 2013-06-18 | International Business Machines Corporation | Accommodating gaps in database index scans |
US8996544B2 (en) * | 2012-09-28 | 2015-03-31 | Oracle International Corporation | Pruning disk blocks of a clustered table in a relational database management system |
US9514187B2 (en) | 2012-09-28 | 2016-12-06 | Oracle International Corporation | Techniques for using zone map information for post index access pruning |
US9430550B2 (en) | 2012-09-28 | 2016-08-30 | Oracle International Corporation | Clustering a table in a relational database management system |
US9275111B2 (en) | 2013-03-15 | 2016-03-01 | International Business Machines Corporation | Minimizing result set size when converting from asymmetric to symmetric requests |
US10642837B2 (en) | 2013-03-15 | 2020-05-05 | Oracle International Corporation | Relocating derived cache during data rebalance to maintain application performance |
US9892158B2 (en) * | 2014-01-31 | 2018-02-13 | International Business Machines Corporation | Dynamically adjust duplicate skipping method for increased performance |
US9852184B2 (en) * | 2014-11-03 | 2017-12-26 | Sap Se | Partition-aware distributed execution of window operator |
US10387395B2 (en) | 2014-11-03 | 2019-08-20 | Sap Se | Parallelized execution of window operator |
US10157193B2 (en) | 2016-03-03 | 2018-12-18 | International Business Machines Corporation | Switching between a non-partitioned hash join and a partitioned hash join based on an amount of available memory |
US10776349B2 (en) * | 2017-01-31 | 2020-09-15 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing dynamic macros within a multi-tenant aware structured query language |
US10803062B2 (en) * | 2017-01-31 | 2020-10-13 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing a by partition command term within a multi-tenant aware structured query language |
US11086876B2 (en) | 2017-09-29 | 2021-08-10 | Oracle International Corporation | Storing derived summaries on persistent memory of a storage device |
US11954605B2 (en) * | 2020-09-25 | 2024-04-09 | Sap Se | Systems and methods for intelligent labeling of instance data clusters based on knowledge graph |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH077422B2 (ja) | 1991-08-23 | 1995-01-30 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ処理データベース・システムにおけるジョインの実行方法及びシステム |
US5423035A (en) * | 1992-12-23 | 1995-06-06 | Hughes Aircraft Company | Method for evaluating relational database queries with automatic indexing and ordering of join components |
US6073134A (en) * | 1997-05-29 | 2000-06-06 | Oracle Corporation | Method article of manufacture, and apparatus for generating a multi-dimensional record management index |
US5905985A (en) * | 1997-06-30 | 1999-05-18 | International Business Machines Corporation | Relational database modifications based on multi-dimensional database modifications |
US6112198A (en) | 1997-06-30 | 2000-08-29 | International Business Machines Corporation | Optimization of data repartitioning during parallel query optimization |
US6298342B1 (en) * | 1998-03-16 | 2001-10-02 | Microsoft Corporation | Electronic database operations for perspective transformations on relational tables using pivot and unpivot columns |
US6625593B1 (en) * | 1998-06-29 | 2003-09-23 | International Business Machines Corporation | Parallel query optimization strategies for replicated and partitioned tables |
US6397214B1 (en) | 1998-11-03 | 2002-05-28 | Computer Associates Think, Inc. | Method and apparatus for instantiating records with missing data |
US5991754A (en) * | 1998-12-28 | 1999-11-23 | Oracle Corporation | Rewriting a query in terms of a summary based on aggregate computability and canonical format, and when a dimension table is on the child side of an outer join |
US6282544B1 (en) * | 1999-05-24 | 2001-08-28 | Computer Associates Think, Inc. | Method and apparatus for populating multiple data marts in a single aggregation process |
US6397204B1 (en) * | 1999-06-25 | 2002-05-28 | International Business Machines Corporation | Method, system, and program for determining the join ordering of tables in a join query |
US6446063B1 (en) * | 1999-06-25 | 2002-09-03 | International Business Machines Corporation | Method, system, and program for performing a join operation on a multi column table and satellite tables |
US6345272B1 (en) * | 1999-07-27 | 2002-02-05 | Oracle Corporation | Rewriting queries to access materialized views that group along an ordered dimension |
US6665663B2 (en) * | 2001-03-15 | 2003-12-16 | International Business Machines Corporation | Outerjoin and antijoin reordering using extended eligibility lists |
US6606621B2 (en) * | 2001-05-30 | 2003-08-12 | Oracle International Corp. | Methods and apparatus for aggregating sparse data |
US7356542B2 (en) | 2003-08-22 | 2008-04-08 | Oracle International Corporation | DML statements for densifying data |
-
2004
- 2004-03-08 US US10/796,217 patent/US7356542B2/en active Active
- 2004-08-19 EP EP04781985A patent/EP1658572A1/en not_active Ceased
- 2004-08-19 CA CA002534788A patent/CA2534788C/en active Active
- 2004-08-19 JP JP2006524117A patent/JP4747094B2/ja active Active
- 2004-08-19 WO PCT/US2004/027406 patent/WO2005020105A1/en active Search and Examination
- 2004-08-19 AU AU2004267850A patent/AU2004267850B2/en active Active
Non-Patent Citations (1)
Title |
---|
JPN7010000553, WITKOWSIKI, "Spreadsheets in RDBMS for OLAP", PROCEEDINGS OF THE ACM SIGMOD 2003 CONFERENCE, 20030609, pp.52−63, US * |
Also Published As
Publication number | Publication date |
---|---|
JP4747094B2 (ja) | 2011-08-10 |
CA2534788A1 (en) | 2005-03-03 |
AU2004267850B2 (en) | 2010-04-08 |
US7356542B2 (en) | 2008-04-08 |
US20050044102A1 (en) | 2005-02-24 |
WO2005020105A1 (en) | 2005-03-03 |
AU2004267850A1 (en) | 2005-03-03 |
EP1658572A1 (en) | 2006-05-24 |
CA2534788C (en) | 2009-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4747094B2 (ja) | リレーショナルデータベースシステムでデータを緻密化するためのdmlステートメント | |
US10572484B2 (en) | Duplicate reduction or elimination with hash join operations | |
EP2901313B1 (en) | Pruning disk blocks of a clustered table in a relational database management system | |
US9390115B2 (en) | Tables with unlimited number of sparse columns and techniques for an efficient implementation | |
US7246108B2 (en) | Reusing optimized query blocks in query processing | |
US9430550B2 (en) | Clustering a table in a relational database management system | |
US8332389B2 (en) | Join order for a database query | |
US5557791A (en) | Outer join operations using responsibility regions assigned to inner tables in a relational database | |
US6792420B2 (en) | Method, system, and program for optimizing the processing of queries involving set operators | |
US7814042B2 (en) | Selecting candidate queries | |
US9740718B2 (en) | Aggregating dimensional data using dense containers | |
JP3640346B2 (ja) | データベース管理システムにおける集合述部および検索 | |
US9836519B2 (en) | Densely grouping dimensional data | |
CA2327167C (en) | Method and system for composing a query for a database and traversing the database | |
CN111367954A (zh) | 数据查询处理方法、装置及系统、计算机可读存储介质 | |
US20060161525A1 (en) | Method and system for supporting structured aggregation operations on semi-structured data | |
US6253197B1 (en) | System and method for hash loops join of data using outer join and early-out join | |
US7010539B1 (en) | System and method for schema method | |
Wi et al. | Towards multi-way join aware optimizer in SAP HANA | |
Schneider et al. | SimDataMapper: An Architectural Pattern to Integrate Declarative Similarity Matching into Database Applications. | |
Bertino et al. | Towards a Language for Pattern Manipulation and Querying. | |
CN115563148A (zh) | 数据库查询方法和装置 | |
Sciore et al. | Materialization and Sorting | |
Gupta et al. | Data densification in a relational database system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070817 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070817 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100302 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100527 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100603 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100802 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20101124 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110322 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20110330 |
|
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: 20110510 |
|
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: 20110516 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140520 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4747094 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |
|
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 |
|
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 |