JP2002507795A - 関係型データベース・テーブルにおける構成変更方法 - Google Patents
関係型データベース・テーブルにおける構成変更方法Info
- Publication number
- JP2002507795A JP2002507795A JP2000537159A JP2000537159A JP2002507795A JP 2002507795 A JP2002507795 A JP 2002507795A JP 2000537159 A JP2000537159 A JP 2000537159A JP 2000537159 A JP2000537159 A JP 2000537159A JP 2002507795 A JP2002507795 A JP 2002507795A
- Authority
- JP
- Japan
- Prior art keywords
- pivot
- row
- data
- value
- rows
- 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 title claims abstract description 67
- 230000008859 change Effects 0.000 title abstract description 8
- 238000005457 optimization Methods 0.000 claims abstract description 14
- 238000003860 storage Methods 0.000 claims description 8
- 238000007726 management method Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 claims description 3
- 238000013500 data storage Methods 0.000 claims 4
- 238000006243 chemical reaction Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 19
- 238000012545 processing Methods 0.000 description 17
- 230000014509 gene expression Effects 0.000 description 13
- 238000012937 correction Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 9
- 230000002776 aggregation Effects 0.000 description 7
- 238000004220 aggregation Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 4
- 101100328886 Caenorhabditis elegans col-2 gene Proteins 0.000 description 3
- 101100328884 Caenorhabditis elegans sqt-3 gene Proteins 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012797 qualification Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000017105 transposition Effects 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 230000036461 convulsion Effects 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 229940036310 program Drugs 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 230000001932 seasonal effect Effects 0.000 description 1
- 230000005477 standard model Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
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/284—Relational 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/99931—Database or file accessing
- Y10S707/99937—Sorting
-
- 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/99942—Manipulating data structure, e.g. compression, compaction, compilation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Magnetic Resonance Imaging Apparatus (AREA)
- Medicines Containing Antibodies Or Antigens For Use As Internal Diagnostic Agents (AREA)
Abstract
Description
る形式のデータベースのデータ管理ソフトウェアにおけるテーブル処理のための
新しいクエリ・オペレーションに関する。
ースでは、各々のデータが、文字列、数値、他の場所に置かれたデータに対する
ポインタ等の特定内容のデータ項目を含む数々のフィールドを持ち、それらデー
タはレコードのセットとしてコンピュータに記憶されている。関係型データベー
スには、相当数の矩形テーブルが含まれている。各テーブルはレコードセットを
持ち、各レコードはそのテーブルの列と呼ばれる。同じテーブル内にあるレコー
ドは、それぞれ同じ数のフィールドを持っている。(しかし、レコードのいくつ
かのフィールドにはデータが含まれておらず、このデータを持たないフィールド
は、NUll値を持っていると言われる。)テーブルのフィールドは、名前を指
定することができる行のセットから構成されているが、この名前はデータそれ自
身の一部ではない。レコードは、それらを個々に特定する外部的要素を持ってい
ない。その代わり、これらデータには、あるフィールドの組合せから成るキーを
使ってアクセスされる。つまり、関係型データベースは、ソフトウェアにより実
行される連想メモリと考えることができる。
データベースにおいてデータを記憶し維持管理し検索するためのコンピュータソ
フトウェアである。通常、DBMSは、索引、ロギング、レコードロッキング等
の、性能、信頼性、完全性を高める機能要素を備えている。また、DBMSは、
データベースから特定のデータを探し出すために、これらクエリをサーチエンジ
ンに与える一つ又は複数のインターフェースを常備している。サーチエンジンは
、データベースを検索し、通常、その結果をクエリの仕様に合わせた関係テーブ
ルの形でユーザーに伝える。
言語(SQL)である。このインターフェース言語には多くの種類があるが、米
国規格協会(ANSI)や国際標準化機構(ISO)により標準版が設定されて
いる。
それらの多くは、標準で設定されたもの以外の言語要素を含んでおり、言換える
と様々な標準対応レベルで言語構築されている。
タを取扱う。しかし、多くのデータベースは、理論的には多次元であり、例えば
時間{日、月、年}、場所{店舗、市、州}、カテゴリー{製品、製品グループ
}、関係者{会社員、部門、本部}、支払{現金、小切手、クレジット}等の軸
に基づくものである。ユーザーは、多くの集合体から成る1つの集合体としてこ
のようなデータを考えることに有用性を見出すことが多く、これらデータを色々
な観点から見たいと望んでいるかもしれない。上述した例において、1つの観点
としては、各レコードが場所を象徴しその場所に関する毎月の売上データの集合
体を含むようなレコードの集合体である場合で、他の観点では、各レコードが時
刻を表し各レコードのフィールド(即ち、テーブルの行)が様々なカテゴリーに
ついての売上数値を集合するようなレコード(即ち、テーブル列)の集合体が考
えられる。
ベーステーブルを構成変更できるようにすれば、従来のSQLのようなクエリ言
語に更なる有益な能力が付加されることになる。本明細書において、観点即ち次
元を変更するということは、行セットとしてテーブルに表された次元を、列セッ
トとして表された次元で置換えることを意味する。従来の関係型DBMS製品及
び標準機種では、観点を変更するための直接的なオペレーションを行うことはで
きない。これを間接的に行うためにSQLクエリを作ることは可能であるが、こ
のようなクエリは、大規模で複雑であり、またエラーが発生し易く処理速度も遅
く、更に並列処理が可能な場合であっても最適な状態で効率的な実行計画に移す
のは困難である。
の矩形セルデータの置換えを、マトリクス代数「転置」オペレーションにおいて
行列要素αijをαjiに移動させるのと同じ方法でユーザーが行えるものがある。
例えば、マイクロソフト・エクセルのピボットテーブルでは、ユーザーは、矩形
セルを選択してテンポラリー・クリップボードにコピーし、オプションメニュー
から「移行」を選択した後に目標セルを指して「特殊な貼り付け」オペレーショ
ンを行う。更に、ユーザーは、マイクロソフト・オフイス等の互換性のあるアプ
リケーションプログラム一式を使って、マイクロソフト・アクセスのデータベー
ス構成要素であるデータベーステーブルからデータを選択し、そのデータを、矩
形スプレッドシート・セルのようなエクセル構成要素に対し単独オブジェクトと
して移してそのセルを置換え、次に、そのセルを置換えられたフォーマットの状
態のレコード集合体としてアクセスデータベースに転送することもできる。
されたものである。小規模のデータベースであっても、1つのクエリを実行する
ためだけに他のアプリケーションプログラムを呼出すのは無駄が多い。大規模な
データベースに関しては、置換えられたデータがメモリ内に残るという従来の要
件により、この方法を行うことは不可能となっている。ホストコンピュータを基
盤としたサーチエンジンを使用したクライエント・サーバ・アーキテクチャに関
しては、このオペレーションを行うために、スプレッドシート・プログラムに接
続する方法は存在しない。どのような環境下においても、スプレッドシートによ
る移行には必ず手作業が伴うため、クエリの内的部分をデータベースプログラム
内に構成することにより置換えを行うことはできない。このような外部オペレー
ションは、従来のデータベースのクエリプロセスや他のサーチエンジンにおける
最新式への再設定、再書換え、他の最適手順に関与することはできない。より概
念的レベルにおいては、スプレッドシートと関係型データベーステーブルとの基
本的な差異によって、望ましい置換え形式を採ることが妨げられている。例えば
、データベーステーブルの行即ちフィールドの名前は、テーブルそれ自体の一部
ではない。つまり、スプレッドシートにおける行の索引がスプレッドシート内で
はセル列にあるという点で、それらデータベーステーブルのフィールドの名前は
、テーブルのレコードにはならない。このように、スプレッドシートの列がテー
ブルのレコードとしてデータベースプログラムに戻される場合、スプレッドシー
トの矩形セルを置換えることにより、セルの行をデータベーステーブルにおける
行の名前に構成変更することはできない。
ow_identifier、old_values、new_values)と いう書式を持つテーブル更新の各項目を、特定の列値及び行値を置換える「削除
項目」と「挿入項目」とに分離するための厳密なオペレーション、及び「削除項
目」と「挿入項目」とを「更新項目」に置換えるための類似したオペレーション
を行う。これらのオペレーションは、ユーザー向けに用意されたものではなく、
更にユーザークエリに関与することもできない。つまり、クエリプロセスは、デ
ータベースを更新している間に実行される特定機能の効率的実行を促進するため
だけに内部的にこれらオペレーションを利用しているに過ぎない。
る機能を付与することにより、データベース技術は飛躍的に拡充される可能性が
ある。更に、変更即ち置換えのオペレーションにおいて、その意味及び構文が通
常の拡張としてのSQL等のクエリ言語にうまく組込まれ、従来の構造化された
データベースクエリ・プロセッサや他のサーチエンジンでも、複雑或いは特異な
機能を必要とせず、最適化され実行することができるようにするというニーズも
存在する。
タベースに定義されているテーブルの列(レコード)と行(フィールド)とを置
換える「ピボット」オペレーションを提供する。本オペレーションは、入力テー
ブルとピボット仕様とを受取り、出力テーブルを作り出す。また、本オペレーシ
ョンは、従来のデータベースクエリプロセス、サーチエンジン、及びサーバに簡
単に組込まれるような方法によりインターフェース言語構成内で行われる。更に
、本オペレーションは、フィールドそれら自身の名前として1つ又はそれ以上の 指定されたテーブルの行の値を使用して、特定テーブルレコードのフィールド内
のデータを、異なるレコードの同じフィールド内に置換える。これ以外の行のデ
ータは、ピボット化されたテーブルのデータ値によりグループ化される。
において他の観点から他の関係オペレーションを実行する方がより簡単な場合が
ある。従って、本発明は、ピボット機能の逆機能としての「非ピボット」オペレ
ーションも提供する。また、記憶されたテーブル即ち中間的結果を非ピボット化
することが望ましい場合もある。
易で直感的な方法に加えて、クエリの書込みを簡素化するとともに、よりエラー
の起こりにくいものとする。例えば、本オペレーションは、テーブルをこれらオ
ペレーションに結び付ける必要性を減らす若しくは皆無とする。本オペレーショ
ンを行う方法によれば、簡単で有効な構文拡張と明確に定義された意味とを持っ
た状態で、深層にネスティングされた複数のオペレーションを行うことが可能と
なり、良く知られているプログラム言語例が用いられる。クエリにおける方法論
としてテキストの使用を可能とすることにより、幅広いSQL言語をより有効且
つ簡単に使用することができる。更に、このような形で使用することができる関
係代数式のセットを非手続き型のクエリ式に拡張する方法は、「sample」
、「top」、「rank」等の他のオペレーションにも適用することができる
。
ースを含む各種データ操作ソフトウェアやシステムアーキテクチャと本質的に互
換性を持っている。これらオペレーションは、言語レベル(例えば、SQLや他
のクエリ言語に対する直感的拡張を用いることによる)、及び処理レベル(例え
ば、クエリ最適化やクエリ実行)のいずれにおいても上記したシステムに組込む
ことができる。
を組込むと、「インピーダンス不適合」の問題に直面することが多い。定義付け
を主な要因として、このようなデータベースは、相当大規模なものとなる可能性
がある。このようなデータを正規化するか否かは、状況次第である。つまり、ピ
ボット化されたフォーム即ち観点にデータを記憶することは、1つのデータ構成
にとって最適−つまり、まさに必要−であるかもしれないが、他のデータ構成は
、非ピボットフォームを選択即ち必要とするかもしれない。従って、ピボット及
び非ピボットオペレーションを付加することは、異なるソースからのデータ、特
に多量のデータの組合せにとって大きなメリットとなる。
BMS処理は、例えシステムソースが限られた状態にあるにしてもその効率が高
められる。この新オペレーションの拡張可能な構文及び明確な意味により、特に
より効率的な実行のためにクエリを書換える場合において、複雑なクエリの自動
的な生成と最適化が促進される。これにより、索引の更新処理、完全性の保守管
理等の純粋に内部的なDBMS機能も恩恵を受ける。また、「IN」、「OR」
、及び「UNION」等のクエリを含むSQLクエリの処理を改善することがで
きる。クエリによる「GROUP」用に既に使用されている多くの最適化技術は
、ピボットや非ピボットクエリを処理するために通常どおり使用することができ
る。 これらクエリのための並列処理技術を含む従来の実行アルゴリズムは、選
別されておらず且つ区分化されているテーブルや結果を含むピボット化されたテ
ーブル即ちクエリ結果に適用される。
明により当業者に示されるであろう。
omputer)、中範囲(midrange)及びメインフレーム・コンピュータ(mainframe
computer)、ピアトゥピア(peer-to-peer)並びにクライアント/サーバ・ネ ットワーク(client/server networks)、及び多くのアーキテクチャの広範囲分
散型システムを含む、多くの異なる種類のデータ処理システムにおいて実行され
る。すべてのデータ処理システムは、本発明に適した環境である。しかしながら
、説明の目的で、本発明は図1に記載された従来のクライアント/サーバ・コン
ピュータ・システム100に関連して説明される。ネットワーク配線110は、
多くのパーソナル・コンピュータ(PCs)120を、ネットワーク・アダプタ
121及び131を介してサーバ130に相互接続する。サーバ130は、大量
のデータを通常の企業データベースに維持するための記憶サブシステム132を
含む。他のシステム・アーキテクチャもまた、本発明に適した環境である;例え
ば、装置120は、メインフレーム又は中範囲コンピュータ130に接続された
ターミナルでもよいし、又は装置130それ自身が、ピアトゥピア・ネットワー
クにおけるPCs120に接続されたPCを具備してもよい。小型の及び小さめ
のデータベースに対しては、システム100全体は、クライアント及びサーバの
両方として動作する単一のPCを具備してもよい。同様に、ファイル記憶装置は
、多くの異なるマシンの間で分散されてもよい。図1は、クライアントへの分散
及びダウンロードのためのクライアント及びサーバ・ソフトウェアを記憶しても
よい外部記憶媒体133、及びデータベース・テーブル(database tables)の オフライン記憶装置のための、ディスケット(diskette)等の他の媒体134を
図示したものである。
な説明を提供することを意図する。要求はされないが、本発明は、例えばプログ
ラム・モジュール(program module)等の、パーソナル・コンピュータで実行さ
れるコンピュータ実行可能型命令の一般的な文脈で説明されるであろう。一般的
に、プログラム・モジュールは、特定のタスクを実行し又は特定の抽象データ型
を実行するルーチン(routine)、プログラム、オブジェクト、コンポーネント 、データ構造等を含む。さらに当業者は、本発明が、ハンドヘルド(hand-held )機器、マルチプロセッサ・システム、マイクロ・プロセッサ−ベース又はプロ
グラム可能民生用電子機器、ネットワークPC、ミニコンピュータ、メインフレ
ーム・コンピュータ等を含む、他のコンピュータ・システム構成で実行されても
よいことを評価するであろう。本発明はまた、タスクが、通信ネットワークを通
してリンクされた分散型理装置によって実行される、分散型計算環境において実
行されてもよい。分散型計算環境において、プログラム・モジュールは、ローカ
ル及び遠隔両方の記憶装置に配置されてもよい。
従来のクライアント/サーバ・データベース管理システム200のブロック図で
ある。クライアント・アプリケーション・プログラム(client application pro
gram)210は、マイクロソフト・ウィンドウズ(Microsoft Windows)95等 のPCオペレーティング・システム(operating system)220の下で、各PC
の中で実行する。他の機能の中でも特に、クライアント・アプリケーション21
0は、PC120におけるユーザからのデータベース照会を受け付けるための機
能211を含む。ユーザ・エントリ(user entry)に加えて、PC120のいく
つかにおいて実行する他のアプリケーション・プログラム230は、予め定義さ
れたホスト言語のアプリケーション−プログラム・インターフェース (applicat
ion-program interfaces)(APIs)231を介して、DBMSクライアント
210への照会を表示してもよい。
rver)等のDBMSサーバ・アプリケーション240は、例えばマクロソフト・
ウィンドウズNT(Microsoft Windows NT)等のサーバ・オペレーティング・シ
ステム(server operating system)250の下で実行する。DBMSプログラ ム240は、データベース260によって例示された、多くの関係データベース
を生成し、照会し、保守し及び修正するためのサービスを提供する。プログラム
240は、オペレーティング・システム250のファイル−システム・サービス
(file-system service)251を採用してもよく、又は独自のファイル・シス テムを供給してもよい。オペレーティング・システム250は、クライアント2
10からの各要求に対して、DBMSアプリケーション全体の個別のインスタン
ス(instance)を実行することができる。しかしながら、より高い効率のために
、プログラム240は、各クライアント接続に、DBMSカーネル(kernel)に
おいて個別のスレッド(thread)242を付与する。さらに、このスレッドは、
固有のオペレーティング−システム・スレッドでもよく、処理メモリ保護、記憶
装置へのより良いアクセス等のためのすべてのウィンドウズNT機構を伴う。検
索エンジン(search engine)241は、以下でより完全に説明されるとおり、 データベース260のテーブル261上で、個人クライアント210からの照会
及び他の要求を処理する。それはまた、記録ロック(record locking)、アトミ
ック・トランザクション(atomic transaction)等のための従来の機能で、デー
タベースの完全性を実現する。マイクロソフトSQLサーバにおいて、照会機能
211と検索エンジン241との間のインターフェース言語は、トランザクトS
QL(Transact-SQL)であり、それは標準ANSI SQL89及びANSI
SQL92言語の機能のほとんどを、さらにより高い柔軟性及びプログラム可能
性を供給するための拡張機能を供給する。
た照会を処理するための、図2に記載された検索エンジン241のいくつかの従
来の機能300を示す。SQL照会は、その結果を得るための一連の段階よりも
むしろ、所望の結果の属性又は述語の仕様であるために、SQLは非手続き言語
である。すなわち、SELECT 年,四半期,売上 FROM Narrow
Where 売上 < (SELECT AVG(売上) FROM Nar
row) ORDER BY 年,四半期 等の照会は、出力テーブルの属性を 特定する。前記出力テーブルのカラムは、Narrowと名づけられた入力テー
ブルから引き出された年,四半期,及び売上と名づけられたカラムに対応する。
前記出力−テーブル列(記録)は、年で、それから各年の値の中の四半期で並べ
られ(すなわち分類され)る。前記出力に現れる前記入力テーブルからの記録は
、売上の値が、Narrowと名づけられたテーブルにおける売上のすべての値
の平均値よりも小さい場合のものだけである。SELECT AVG(売上)
FROM Narrowという入れ子型副照会(nested subquery)は、単一の カラム及びNarrowテーブルにおける売上の平均値を含む単一の列のみを有
するテーブルを生成する。前記入力テーブルの記録がアクセスされる方法並びに
順番、及び前記出力テーブルを作成するための手続き又は方式(plan)の他の詳
細は、照会それ自身によっては定義されない。
会を内部又はトークン化された(tokenized)形式に解析する。確認(validatio
n)段階320は、照会において名づけられたデータが実際にデータベースに存 在することを確証し、及びデータと完全性拘束条件を調べる。それは、前記照会
のある部分、例えば231におけるマクロ(macro)やビュー(view)を拡張し てもよい。出力322は、あらゆるエラーを、ユーザ又は照会の他のソースに報
告する。最も制約された検索エンジンを除くすべては、段階330に記載のとお
り、照会の時に大規模な最適化を実行する。最適化は、照会の部分を結合し又は
分割し、オペレーション及び副照会等を再編成し、及び記憶されたデータベース
・テーブルの記録へのアクセスを順番に実行し及び機能を修正する等の他の方法
によって、前記照会を書き換えることに関与してもよい。各候補実行戦略(cand
idate execution strategy)に対して、それらは、この戦略を使用して前記照会
を実行するために必要となる演算時間又はリソースを表す費用値を計算し、それ
からすべての可能性のある候補の中から一つの戦略を選択する。これらの最適化
プログラム(optimizer)を設計する技術は複雑であり難解であるが、当業者は 、様々な種類の新しい照会機能を含むように、従来の最適化プログラムを適応さ
せる能力を有する;他の、より手続き的な言語に対する翻訳プログラムの設計者
もまた、この同じ一般的なクラスの最適化プログラムを定期的に構築する。調査
論文、M.ジャーク及びJ.コック「データベース・システムにおける照会最適
化」、ACMコンピューティング・サーベイ(ACM Computing Survey)16,2
(1984年6月),111ページでは、データベース照会最適化プログラムの
構造がより詳細に議論された。
「方式」)である。段階340はこの方式を、通常は従来の関数ツリーとして表
示される、手続き的形式にコンパイルする。段階350は、データベース・オブ
ジェクト(database objects)に対する方式を実行するための、単純なツリー走
査アルゴリズム(tree-traversal algorithm)をランさせてもよい。前記段階3
50の出力は、前記照会のソースに戻される出力テーブルの形式の、前記照会の
結果である。ここに記載された一つ以外の検索エンジンは、個別の段階300を
結合し又は分割してもよく、又は段階を省略し又は追加してもよい。他の調査論
文、G.グレーフ「大規模データベースのための照会評価技術」ACMコンピュ
ーティング・サーベイ25,2(1993年6月),73ページは、参照のため
にここに採用されており、照会の実行の問題を扱い、及び追加の説明及び議論を
供給する数多くの参照を引用している。また、最新の検索エンジンの段階は、新
しい構文、新しい検索機能、最適化知識及び実行技術を備えるための容易な拡張
性のために特定的に設計されている。
ーションは、関係代数のレベルでのSQLオペレーションの階層に適合する。関
係データベース・システム及びインターフェースを設計する人は、照会処理を3
つのレベルに分割する。関係の数学的理論は、この種類のデータベースに対する
概念的フレームワークを供給するので、第一及び第二のレベルはしばしば、関係
論理及び関係代数と称される。
ョン、手続き又は他の方法に名前を付けることなく、所望の結果の高いレベルで
の説明又は仕様を扱う。すなわち、それは単にデータベースにおける現存の関係
について、所望の結果の関係(テーブル)の定義を表現する。例えばSELEC
T 従業員名,部署名 FROM 従業員,部署 WHERE 従業員.dep
t_id=部署.dept_idという照会は、結果関係の典型的なメンバ及び
前記結果メンバの定義属性を表す修飾に関する一つ以上の入力テーブルに関して
、出力テーブルの属性及び制約を記述する。関係論理は、データベース、テーブ
ル(「関係」)、及び照会の正式で、正確な理解のための根拠を供給し、及び現
在はANSI/ISO標準であるデータベース言語SQLの検索コンポーネント
における商業的実現を見た。SQLがデータ管理製品で果たす重要な役割がある
とすると、現実世界のためにデータベース機能を拡張することは、追加されたあ
らゆる機能が、SQL言語の構文的及び意味的に簡潔な拡張になることを要求す
る。
関係代数におけるオペレーション又は関数は、一つ以上の入力テーブルを使用し
、及び規則にしたがって出力テーブルを生成する。例えば、JOIN[従業員.
dept_id=部署.dept_id](従業員、部署)という関係オペレー
ションは、両方のテーブルにおいてdept_idと名づけられた共通のカラム
又はフィールドに沿って、従業員及び部署と名づけられたテーブルを結合する。
(これは、加法等のオペレーションに類似しており、例えば、「4+5」という
オペレーションが「9」を生成するように、2つの数を使用し、第三の数を生成
する。)関係代数の重要な特性は:(1)オペレーションは、同じ種類のオブジ
ェクト、すなわち関係式を使用し及び生成する;(2)オペレーションは、任意
で複雑な構造に入れ子されることができる;及び(3)新しいオペレーションが
追加されることができる、ということである。関係代数において、入力オブジェ
クトは、入力を有するだけではなく、追加の情報を表すタグを備えていてもよい
。すぐ上述の例においては、joinというオペレーションは、2つの関係代数
式、すなわち結合されるべき2つのテーブル(従業員、部署)を特定するだけで
なく、:各テーブルにおける特定のカラムの等しい値[従業員.dept_id
=部署.dept_id]に沿って、それらがどのように結合されるべきかを特
定する「結合述語」を指定する。
は困難であるが、それらは簡単に及び簡潔に関係代数レベルに積分することがで
きる。例えば、OUTER JOINは関係JOINオペレーションの変形であ
り、単純なSELECT...FROM...WHEREという照会構文には容
易に又は簡潔には適合しない。そのために、ANSI/ISOは、from文節
におけるテーブル、例えばSELECT従業員名 部署名 FROM 従業員
LEFT OUTER JOIN 部署 ON 従業員.dept_id=部署
.dept_idに代わって、一組の制限された関係代数式を許可する。すなわ
ち、関係代数式で関係論理型照会を拡張するための先例があるが、そのような拡
張は、JOINオペレーションの変形にかなり制限されてきた。関係代数オペレ
ーションはしばしば、図3に記載されたブロック330におけるとおり、選択(
selection)、射影(projection)、集約(aggregation)及び関係論理レベルで
の他の非手続き的仕様を有する照会の最適化に関与する。
レーションの入れ子は、実行の順番を示すかもしれないが、中間結果を生成する
ための特定の命令のアルゴリズム又はセットは、より高いレベルよりもむしろ、
実行方式のレベルで発生する。例えば、関係JOINオペレーションを実行する
ための3つの基本的方法:入れ子ループ(loop)、マージ結合及びハッシュ結合
がある;各方法は、大量の変形を有する。実行方式は、そのような選択肢からの
選択を明確に示し、及び図3に記載のブロック340において、照会処理の最低
レベルで公式化される。
ので、すべての3つのレベル:言語拡張、関係代数オペレーション、及び実行方
式で、あらゆる新しい機能を定義することが重要である。本発明は、ピボット及
び非ピボット機能を、言語への拡張として、SQL照会において明確に関与する
新しい関係代数オペレーションとして供給してもよい。
ット・オペレーションの正式な定義は:テーブル.PIVOT(<値_カラム>
FOR<ピボット_カラム> IN (<ピボット_リスト>))である;出力
のピボットされたテーブルはまた、有効な第一の標準的形式のテーブルである。
最も外側の括弧の間のテキストは、ピボット・オペレーションの仕様を構成する
。ピボット仕様における最初の2つのカラムは、ピボット・オペレーションの入
力テーブルにおけるカラムでなければならない。これらのカラムは、ピボット・
オペレーションの出力テーブルには現れない。その代わり、ピボット仕様の中の
ピボット・リストにおける各値は、ピボット・オペレーションの出力テーブルに
おける新しいカラムを定義する。入力テーブルにおいては、ピボット・リストに
おけるエレメントは、ピボット・カラムにおける値として現れる。値カラムにお
ける対応する値は、出力テーブルでの新しいカラムにおける値になる。「分類カ
ラム」と称される、ピボット仕様に含まれない入力テーブルにおけるすべてのカ
ラムは、出力テーブルに引き継がれる。
トすることで、出力テーブル430を生成する。Narrowと名づけられた入
力テーブル410において四半期と名づけられたピボット・カラム411は、出
力テーブル430において4つのカラム431、432、433、及び434に
なる。これらのカラムの名前は、春、夏、秋、冬、という4つの特有の値であり
、カラム411においては値として現れ、また420においてはINというキー
ワードに続く値のリストにおいて現れる。値カラム412における売上の数は、
4つのカラム431乃至434のうちの対応するものにおける値として現れるが
、同じ地域及び年に対する売上の数は、同じ列になるようにピボットされ又は回
転される。分類カラム413乃至414は、出力430においてカラム435乃
至436として現れる。仕様420がGROUP BY 地域、年という形式の
SQL文節を含んでいたかのように、出力において、前記列は、第一の分類カラ
ム413の等しい値によって、それから第二の分類カラム414の等しい値によ
って分類される。この例においては、ピボット・オペレーションの効果は、デー
タが見える見え方を修正することである。入力テーブル410は、主として企業
のNarrow地域に対する年間のデータ傾向を示す一方で、出力テーブル43
0は、四半期による季節的追跡を許可する。(関係テーブルにおける前記列は、
名前を有しないし、特定の順番もないことがここで思い出されるべきである。カ
ラムは名前を有し、分類される−すなわち、それらは、その名前が照会において
現れる順番で表示される。)ピボット・オペレーションは、比較的多くの列と及
び比較的少ないカラムを有する入力テーブルを、より少ない列とより多いカラム
を有する結果物としてのテーブルに変換する。
におけるデータと同じデータの種類(numeric型、varchar型等)
を有する。値カラム、ピボット・カラム及びピボットされたカラムは、計算され
た式よりもむしろ、簡潔なデータを具備する。両方のテーブルにおけるカラムの
順番は、ANSI SQLにおけるように重要ではない;カラムは、名前によっ
てのみ参照されることができ、位置によってはできない。テーブル430は、地
域及び年の分類カラムの値によって分類されるように図示されているが、ピボッ
ト・オペレーションは、前記列の特定の分類又は順番つけは含まない。
なければ、出力には現れない。入力−テーブル列は、同等の定義に関して、あら
ゆる分類カラムの等しい値によって分類される。各グループの中では、入力テー
ブルの各列は、互いにピボット・カラムにおいて特有の値を有する。各グループ
は、一つの出力列という結果になる。対応する入力列を有しない出力カラムに対
しては、値は、SQLで定義された特別な値、NULLである。
の、図3に記載されたモジュール300によって実行される段階のフローチャー
ト500である。ブロック510は、図1に記載のクライアント・ターミナル1
20のユーザ、又はここに記載されたいくつかの他のソースから照会を受け取る
。段階520は、データベース260におけるどのテーブル261が、オペレー
ションの入力テーブルとしての働きをするかを識別し又は選択する。段階521
は、入力テーブルのどのカラムがピボット・カラムになるのかを識別し、段階5
22は、どのピボット−カラムの値がピボットに関与するかを、前記ピボット・
リストから識別し、及び段階523は、前記入力のどのカラムが値カラムである
かを選択する。段階530は、他のテーブル261として出力を作成する。段階
531は、各データ−項目値のための個別のピボットされたカラムを、前記ピボ
ット・リストに配置する。段階532は、もしあれば、前記分類カラムを作成す
る。(前述のとおり、これらは、ピボット仕様において識別されなかった入力テ
ーブルのあらゆる追加のカラムである。)段階540は、上述のとおり、前記値
カラムのデータ−項目値を前記出力テーブルの列に挿入する;一つの方法は、段
階541で示されたように、転置(transposition)によるものである。この転 置を表現するための他の方法は、前記値カラムにおける各データ項目が、ピボッ
トされたカラムの一つ、すなわち前記入力テーブルの前記ピボット・カラムにお
けるデータ値と同じ名前を有するカラムへと配置されることである。段階550
は、出力−テーブル列を、あらゆる分類カラムの等しい値によって分類する。最
後に、段階560は、図2に記載のデータベース260に前記出力テーブルを記
憶する。
<テーブル_式 | 照会_式>.UNPIVOT(<値_カラム> FOR<
ピボット_カラム> IN (<カラム_リスト>)として形式的に定義される
。前記用語の意味は、前記ピボット・オペレーションに対するものと同じである
。同じ仕様を有するピボット及び非ピボット・オペレーションを入力テーブルに
適用することで、前記入力テーブルをその本来の状態に戻す。図4に記載の例に
おいて、前記非ピボット・オペレーションをピボットされたテーブル430に適
用することで、テーブル410を元に戻す;売上412及び四半期411と名づ
けられた前記2つのカラムは、カラム431乃至434に取って代わる。
、一つのピボットされたカラムに対して、出力テーブルの一つの列を生成する。
(しかしながら、ピボットされたカラムにおけるナル値は、出力列を生成しない
。)前記ピボット・リストにおけるすべてのカラムは、前記入力において同じデ
ータ種類を有していなければならず、及び前記出力の値カラムにおけるエントリ
は、この種類を有するであろう。テーブルをピボットさせないことは、その列の
数を増加させ、及びカラムの数を減少させる。また、図4は分類−カラム値によ
って分類されたテーブル410を示しているが、前記非ピボット・オペレーショ
ンは、前記出力において列の分類がないことを示す。
241の、図3に記載されたモジュール300によって実行される段階のフロー
チャート600である。段階610は、前記非ピボット・オペレーション及びそ
の仕様を受け取る。非ピボットは、ピボットの逆になるように、及びピボットさ
れたテーブルを正確にそのピボットされていない形式に戻すように定義されてい
るので、非ピボットの仕様は、ピボットのためのそれに補足的ではなく、むしろ
図4に記載の440において示されたとおり、前記ピボットされたテーブルを第
一の場所に生成した仕様のそれとまったく同じ形式を有する。また、段階610
は、前記オペレーションをユーザ照会又は他のソースから受け取ってもよい。段
階620は、ピボットされるべきでない261等の前記ピボットされたテーブル
を識別し又は選択する。このテーブルは、実際に以前のオペレーションでピボッ
トされている必要はないが、通常はされているであろう;すなわち、前記ピボッ
ト・オペレーションは通常、見える角度の最初の回転を達成するために使用され
、及び非ピボットは通常、テーブルを簡潔で単純な方法で、本来のピボットされ
ていない形式に戻すためだけに使用される。段階621は、前記仕様のピボット
・リストを使用して、どのカラムが、回転され又は転置されるべきピボットされ
たカラムであるかを識別する。段階622及び623は、前記値カラム及び前記
ピボット・カラムの名前を識別する。(少なくとも、以前のピボットがこの情報
を保存しているサイド・テーブル(side table)を保持していないかぎり)前記
ピボットされたテーブル内のどこにも現れないので、これらの名前は前記仕様に
含まれる。
ピボット・テーブルを作成する。段階631及び632は、段階622及び62
3において供給される名前を使用して、前記ピボット・テーブルにおいてピボッ
ト及び値カラムを形成する。段階633は、前記ピボット・テーブルにおいて分
類カラムを作成し、それは、段階610において受け取られる非ピボット仕様に
含まれない前記ピボットされたテーブルのカラムの各々に対して一つである。段
階640は、前記ピボットされたテーブルからのデータ項目を、前の段階におい
て作成された前記ピボットされていないテーブルに転置する。前記ピボットされ
たカラムの名前は、異なる列においてデータ項目になり、及び前記ピボットされ
たカラムにおける前記データ項目は、本来の(ピボットされた)テーブルにおい
て、それらが存在していたピボットされたカラムの名前と同じピボット−カラム
値をそれぞれ有する列において、新しい値カラムに入る。段階650は、分類−
カラム列の等しい値によって列を分類する。段階660は、図2に記載のデータ
ベース260に離して前記テーブルを記憶する。
された値ではないので、相関変数は、ピボット及び非ピボット・オペレーション
の仕様の中では許可されない。これらの新しいオペレーションは、どの相関変数
が、前記オペレーションが適用される照会式において許可されるか、また相関関
数が許可されるか否かについてまったく影響を与えない。ANSI SQLが、
ピボット又は非ピボット・オペレーションが起こらない照会式のためのテーブル
及びカラム・エイリアス(alias)を定義することを許可するなら、ピボット/ 非ピボット・オペレーションを含む前記照会式に対する前記エイリアスを定義す
ることは容認されるが、前記オペレーションを除く前記照会式に対しては容認さ
れない。例えば、テーブル1 AS テーブル2(col1,col2)が許可
される場合、テーブル1.PIVOT(...)AS テーブル2(col1,
col2,...)は容認されるが、テーブル1 AS テーブル2(col1
,col2).PIVOTは容認されない。
0において、あらゆる数の従来の最適化技術を使用してもよい。これらのオペレ
ーションは関係代数レベルの一部であるので、代数照会最適化プログラムは、最
適化技術を実現するために最も適切な伝達手段であるかもしれない。他の最適化
フレームワークも同様に適用可能であるかもしれない。
てもよい。明らかに、ピボット及び非ピボット・オペレーションの隣り合う対は
、互いに相殺してもよいし、照会から削除されてもよい。最適化プログラムは、
前記ピボットされた出力テーブルにおける前記分類カラムが、機能的に前記ピボ
ット及び値カラムを決定することを認識し、それゆえにその結果のテーブルの関
係キーを形成する。(これは、従来のGROUP BYオペレーションにおける
前記分類カラムに大変似ている。)非ピボット出力テーブルにおいては、前記分
類カラムは前記ピボット・カラムとともに、機能的に前記値カラムを決定する。
これらの属性は、代替的な実行方式を比較するための選択性の評価及び照会−費
用計算のための出力列の数を評価することに関して助けとなることができる。そ
れらはまた、照会の前記実行を単純化する書き換え規則を適用するための条件を
生成する場合に便利であるかもしれない。テーブルが縦に区切られている場合、
完全な列及びそれに引き続く非ピボットを再アセンブルするためのオペレーショ
ンは、両方のオペレーションを排除して、互いを相殺してもよい。
的類似性によって、前記文節を有する照会を最適化するための多くの技術及び規
則は、新しいオペレーションに対しても同様に機能することができる。典型例は
:(1)前記分類入力の大きさを低減させるため、又はより効果的な結合アルゴ
リズムを可能にするために、結合の上にピボットを引くこと;(2)前記結合入
力を低減させるため又は前記ピボットのためのより効果的な実行方式を使用する
ために、結合の下にピボットを送ること;(3)二つの隣接するピボットを併合
すること、おそらく効果的にそれらのうちの一つを排除すること;及び(4)ピ
ボットを二つの部分に分割し、そのうち一つを、結合を通って又は処理境界(pr
ocess boundary)を横切って、並行実行環境におけるローカル/グローバル集約
として送ること、を含む。通常は、−追加のカラムを計算する式を含む−前記分
類カラム及び射影オペレーション(projection operation)上の照会の述部は、
分類オペレーションと同じ方法で、ピボット/非ピボット・オペレーションを(
上又は下を)通って動くことができる。
)として取り扱われた時に、実行するのに効果的である−また表現するのにより
簡単である−。例えば、2つのピボットされたカラムを互いに比較することは、
表現するのに簡単であり、及び実行するのに効果的である一方で、前記ピボット
入力テーブルに適用される同じ述部は、複雑で、非効率的な入れ子照会を必要と
する。それゆえに、オペレーションのピボット/選択/非ピボットの順番を含む
ための前記照会の書き換えは、前記照会を最適化するために使用されることがで
きる。例えば、図4に記載のテーブル410において、秋における売上が春にお
ける売上を超えるテーブル列を選択するための照会を検討する。ピボットされた
テーブル430は、この照会を、春及び秋のカラム431及び433の間の比較
として備えることができる一方で、本来のテーブル410は、前記比較を実行す
るために、前記テーブルがそれ自身に結合することを要求する。図4に記載のテ
ーブルを使用して、ピボット及び非ピボット・オペレーションを(従来の複数行
の形式で)含む大きな照会は: (SELECT * FROM Narror.PIVOT(売上 FOR 四半期 IN(春、夏、秋、冬)
) WHERE 秋_売上>春_売上) .UNPIVOT (売上 FOR 四半期 IN(春、夏、秋、冬)) でもよい。
レーションのための従来の方式から引き出すことができる。特に、ループ、索引
付け、ストリーム、分類、及びハッシングに基づいた方式は、容易に思い浮かぶ
。早期集約分類及び混成ハッシングは、有用な変形である。ピボット/非ピボッ
ト・オペレーションは、共有メモリ、分散型メモリ、共有ディスク及びクラスタ
・マシン等の並行アルゴリズムを含む、並行−実行環境に変更可能である。ロー
カル/グローバル集約はすでに、一つの可能性として述べた。
る単一の入力、単一の出力方式のみを必要とする。このオペレーションは、共有
メモリ、分散型メモリ、共有ディスク、及びクラスタ・マシン上で、簡単に並行
して実行することができる。
いくつかの応用に有用であるかもしれない。当然、最も明白であるのは、ドット
呼び出し分離文字(dot invocation separator)等の表記規則の置換え又は増補
、及びコンポーネントの再編成である。 前述のピボット/非ピボット・オペレーションは、ピボットされたテーブル又は
出力テーブルにおけるカラム名に制限を設ける。標準SQLにおけるカラム名は
、スペースのない文字列でなければならない。カラム値はスペースを有するかも
しれず、及びピボットは値を名に変えるので、引用された識別子及びリテラル(
literals)をカラム名として使用するための方法を、簡単に案出することができ
る。同様に、文字列以外のデータ種類を有するカラム値を、カラム名に対する印
刷可能な及び読み取り可能な表示として表示することは簡単であろう。名前の連
結等、従来の名前操作は有用であろう。例えば、ピボット・リストは、SQLの
AS等のキーワードを使用して、カラム・エイリアスを含むかもしれない。(図
4において、四半期値が季節名の代わりに「1」乃至「4」である場合、420
の仕様は、(売上 FOR 四半期 IN (1 AS “春”、2 AS “
夏”、 3 AS “秋”、 4 AS “冬”))を読み取る。)さらに、A
Sはあらゆる文脈においてピボット−結果カラムに再度名づけるために使用され
てもよく、及びユーザ定義機能は、複雑なカラム名を変換するため、又は名前を
SQL実行の特定の制約に適合させるために供給されることができる。
でもよい。例えば、図4に記載のオペレーション450は、3つのカラム411
、412、及び414を、結果テーブル430の4つのカラム431乃至434
の代わりに、8つのカラムと入れ替える。すなわち、ピボット・カラムの組は、
すべてのピボット・リストのカルテシアン積又は外積を表す。前記ピボットされ
たカラムに名前を付けるための規定は、売上_1996_春等の、名前を結合す
ることに関与するだけかもしれない。同じ仕様での複数カラム非ピボット・オペ
レーションは、この拡張に対して真の逆を供給するように、前記名前をそれらの
本来の形式に復号することができる。さらなる拡張は、複数カラムが段階におい
てピボットすることを許可する。例えば、上述の8つのカラムを生成するために
、さらなるピボットを、カラム436についてすでにピボットされたテーブル4
30に適用することが望ましいであろう。テーブル430をピボットせずに複数
カラムのピボットを適用するよりもむしろ、拡張された形式は、値カラム、例え
ばWide.PIVOT ((春、夏、秋、冬) FOR 年 IN (199
6、1997))の代わりにカラムのリストを許可する。最適化プログラム34
0及びコンパイラ350は、これらのオペレーションを、実行のための単一の方
式へと簡単に縮めることができる。
る前記値カラムに対して、MIN、SUM、AVG、さらにCOUNT等の従来
のSQL集約又は分類機能をサポートすることができる。その場合、グループ当
たりの単一の列への制限は引き上げることができる。当然、新しいカラムの種類
は、本来のそれとは異なるかもしれない。図4に基づいた以下の例は、集約を使
用した照会を示す: (SELECT 年、四半期、売上 FROM Narrow) .PIVOT (SUM(売上) FOR 四半期 IN(春、夏、秋、冬)
この照会は、東部及び西部地域の売上を、各年に対する企業全体を表す単一の合
計へと統合する。分類機能が許可される変形においては、前記実行は、ピボット
・オペレーションが、さもなければピボットされたテーブルの異なる列における
重複一次キーを生成するであろうすべての場合に、SUM等の特定の機能の暗黙
アプリケーションを特定することができる。前記集約は情報の詳細を失うので、
分類を有するピボットは、逆にすることはできない;標準SQLで分類された出
力は、同じ理由から逆にすることができない。この拡張によって非ピボットは真
の逆として機能することができないが、実施形態は、すべての本来の値を保存す
る内部「サイド・テーブル」を加えることによって、この機能を維持する。
ラル・カラム名のリストを、SELECT照会と置き換えるための機能を加える
。より複雑な処理が、補助照会を最初にランさせ、それから前記補助照会の結果
を使用して、ピボットされたカラムのリストを結合することに関与するであろう
;すなわち、前記補助照会は、図3に記載のブロック340及び350において
、交互配置されたコンパイル及び実行を要求する。前記実行は、ピボットされる
べき照会式を計算することを、結果に対する照会をランさせることと同様に要求
する。
(default)照会を供給する。例えば、照会420からIN (春、夏、秋、冬 )文節を省略することで、SELECT DISTINCT 四半期 FROM
Narrowというデフォルト照会を代入することができる。これによって、
照会420は入力テーブルを2回参照することになるので、C++における「t
his」という名前に類似して、オペレーションの入力テーブルに対して専用の
名前を導入すると便利である。オペレーション420は次のようになる: Narrow.PIVOT (売上 FOR SELECT DISTINC
T 四半期 FROM INPUT)。
オペレーションの入力においてピボットされたカラムを除くすべての仕様を許可
するであろう。上で修正された例400において、逆オペレーションは図4に記
載の440のように: Wide.UNPIVOT (売上 FOR 四半期 IN(春、夏、秋、冬
)) か又は図4に記載の460のように: Wide.UNPIVOT (売上 OVER (地域、年)) と特定されることができる。 この文脈でOVERをサポートすることは、前記入力テーブルから前記一組のピ
ボットされたカラムを決定することを必要とし、及び上述のとおり、補助照会を
処理するための能力を要求する。IN及びOVER文節は結合されることができ
、一つ以上のカラムが分類カラムと同様にピボット・カラムになることを許可す
る。これが本出願の視点から意味をなすであろう状況は、各々の次の四半期のた
めに、第一の四半期以来の売上成長率の計算を許可するために、各出力列におけ
る春の売上を含む。
ができる;例えば、「都市」及び「月」と名づけられたカラムは、すべての月に
対するすべての都市に対して、テーブル・エントリを有する傾向にある。他のカ
ラムの組は、階層的である−例えば「州」、「都市」、及び「店舗」カラムを有
する「場所」テーブル等−及びそれらのデータは希薄である;すなわち、ごく小
数の都市が複数の州に現れるであろうし、及び複数の店舗を有する都市はほとん
どないであろう。後半の場合において、2つのIN文節を使用することは、ピボ
ット・オペレーションにおいて体裁を欠く構文及び意味になる。しかしながら、
単一のピボット・カラムの代わりにピボット・カラムのリストを使用することで
、この問題は改善される。「列値」のANSI SQLの概念は、この場合に適
切である。常にではないが、通常は、リテラル・カラム名のリストよりも、照会
を前記ピボット・リストとして特定する方が、より便利である。典型的な形式は
、Locations.PIVOT (売上量 FOR (都市、店舗) IN
(SELECT 都市、店舗 FROM アウトレット(outlets)))であ ろう。
セッサ300の内部オペレーションにおいても、便利であろう。さらに、参照一
貫性の制約は、削除されたキー候補及び新しい外部キーのためだけに強化される
必要がある;ピボット/非ピボット又は類似の回転を使用することは、同じキー
値に関連する削除及び挿入項目を縮めることができ、及び潜在的に一貫性検査を
冗長であるとして排除する。さらに、大変に大きいIN文節を有する従来の照会
においては、検索エンジンによって暗示的に呼び出された内部非ピボット・オペ
レーションは、多くのリテラル又はパラメータを含む単一の大変複雑な列を、カ
ラムとして、ループ、索引、統合及びハッシュ結合等の従来の結合方法、及びそ
れらの並行処理変形を使用して、データベース・テーブルに対抗することができ
る一組の列にマッピングすることができる。ピボット/非ピボット・オペレーシ
ョンの類似の内部引用は、IN文節にしばしば同等である、OR及びUNION
照会において有用であるかもしれない。
適化及び実行方式とともに、関係データベース・システムの分野外のデータベー
ス管理システム及びデータ−操作ソフトウェアに含むことができる。例えば、代
数を基礎とした統計的−分析製品又は独立型分類パッケージは、これらの新しい
オペレーションが、外部及び内部の両方で有用であることがわかるかもしれない
。SQL言語に関連して説明されたが、前記オペレーションは必ずしもSQLに
統合され又は実際にホスト言語に統合される必要はない。
の矩形セルデータの置換えを、マトリクス代数「転置」オペレーションにおいて
行列要素αijをαjiに移動させるのと同じ方法でユーザーが行えるものがある。
例えば、マイクロソフト・エクセルのピボットテーブルでは、ユーザーは、矩形
セルを選択してテンポラリー・クリップボードにコピーし、オプションメニュー
から「移行」を選択した後に目標セルを指して「特殊な貼り付け」オペレーショ
ンを行う。更に、ユーザーは、マイクロソフト・オフイス等の互換性のあるアプ
リケーションプログラム一式を使って、マイクロソフト・アクセスのデータベー
ス構成要素であるデータベーステーブルからデータを選択し、そのデータを、矩
形スプレッドシート・セルのようなエクセル構成要素に対し単独オブジェクトと
して移してそのセルを置換え、次に、そのセルを置換えられたフォーマットの状
態のレコード集合体としてアクセスデータベースに転送することもできる。スプ
レッドシートにおけるピボットオペレーションについては、J.C.Nessi
terの(ウインドウズのためのエクセル5の利用法、Que社、1995年)
及び B.Dosmariasの「信頼性使用のためのマイクロソフト・エクセ
ル・ピボットテーブルの利用法」IEEE34th春季信頼性シンポジューム(
1996年月18日)79−81頁に記載されている。
されたものである。小規模のデータベースであっても、1つのクエリを実行する
ためだけに他のアプリケーションプログラムを呼出すのは無駄が多い。大規模な
データベースに関しては、置換えられたデータがメモリ内に残るという従来の要
件により、この方法を行うことは不可能となっている。ホストコンピュータを基
盤としたサーチエンジンを使用したクライエント・サーバ・アーキテクチャに関
しては、このオペレーションを行うために、スプレッドシート・プログラムに接
続する方法は存在しない。どのような環境下においても、スプレッドシートによ
る移行には必ず手作業が伴うため、クエリの内的部分をデータベースプログラム
内に構成することにより置換えを行うことはできない。このような外部オペレー
ションは、従来のデータベースのクエリプロセスや他のサーチエンジンにおける
最新式への再設定、再書換え、他の最適手順に関与することはできない。より概
念的レベルにおいては、スプレッドシートと関係型データベーステーブルとの基
本的な差異によって、望ましい置換え形式を採ることが妨げられている。例えば
、データベーステーブルの行即ちフィールドの名前は、テーブルそれ自体の一部
ではない。つまり、スプレッドシートにおける行の索引がスプレッドシート内で
はセル列にあるという点で、それらデータベーステーブルのフィールドの名前は
、テーブルのレコードにはならない。このように、スプレッドシートの列がテー
ブルのレコードとしてデータベースプログラムに戻される場合、スプレッドシー
トの矩形セルを置換えることにより、セルの行をデータベーステーブルにおける
行の名前に構成変更することはできない。 一部の非関係データベースシステムには、スプレッドシート・ピボット・オペ
レーションと類似したオペレーションを持っているものがある。OLAP(オン
ライン分析処理)は、U.Flohrの「ウェブによるOLAP」BYTE、1
997年9月、81−84頁;B.Lindhon他の「次元特集概要:OLAP
サーバ」DATAMATION、1985年5月、70−71頁;M.Fran
kの「BrioQuery3.5」DBMS ONLINE、1996年2月;
「OLAP及びOLAPサーバ定義」(OLAP委員会、1995年);及びC
.B.Darlingの「OLAPBOX考」DATAMATION、1996
年4月15日、88−92頁に言及されているように、多次元「立方体」データ
に関する回転オペレーションを実行することができる。
<テーブル_式 | 照会_式>.UNPIVOT(<値_カラム> FOR<
ピボット_カラム> IN (<カラム_リスト>)として形式的に定義される
。前記用語の意味は、前記ピボット・オペレーションに対するものと同じである
。同じ仕様を有するピボット及び非ピボット・オペレーションを入力テーブルに
適用することで、前記入力テーブルをその本来の状態に戻す。図4に記載の例に
おいて、前記非ピボット・オペレーションをピボットされたテーブル430に適
用することで、テーブル410を元に戻す;売上412及び四半期411と名づ
けられた前記2つのカラムは、カラム431乃至434に取って代わる。 他のデータベースシステムのオペレーションは、M.Gysscns他の「ク
エリと再構築の実例としてのテーブル」PROCEEDINGS,1996年、
ACM SIGMOD INTEL、「データ管理のコンフィギュレーション」
Monteal、Quo、カナダ、1996年6月3−6日、93−103頁に
述べられているグループ化/分割や合併/決裂の対のような相互の反転として考え
ることができる。ピボット/非ピボットも同様に相互の反転である。
Claims (35)
- 【請求項1】 デジタルコンピュータ上の関係型データベース管理システム
内に出力テーブルを形成するために、入力テーブルからデータをピボット化する
方法であって、 前記入力テーブルを定義する段階、 前記入力テーブルのピボット行を定義する段階、 前記ピボット行からデータ項目のピボットリストを定義する段階、 前記入力テーブルの値行を定義する段階、及び 前記出力テーブルを構成するために、前記ピボットリスト内のデータ項目に基
づき、前記ピボット行について前記入力テーブルを置換える段階を含むことを特
徴とする方法。 - 【請求項2】 前記入力テーブルの少なくとも1つのグループ化する行を定
義する段階、及び 前記1つ又はそれ以上のグループ化する行内のデータ項目の均等値に従って、
前記出力テーブルの列をグループ化する段階を更に含むことを特徴とする請求項
1に記載の方法。 - 【請求項3】 前記置換える段階は、複数の遠隔の顧客場所に位置するユー
ザーに応答する中央サーバにおいて生じ、前記定義する段階は、前記ユーザーの
1人によって起こされることを特徴とする請求項1に記載の方法。 - 【請求項4】 前記定義する段階の各々は、前記ピボット方法を明示的オペ
レーションとして含まないユーザーからのクエリを最適化する段階の一部として
、前記中央サーバにおけるサーチエンジンに起こることを特徴とする請求項1に
記載の方法。 - 【請求項5】 複数の列及び行として編成されたデータ値のアレイを各々有
し、前記データ値から切離されるとともに前記行の各々に関連付けられた複数の
行の名前を各々有する、電子データプロセッサ内に記憶された関係型データベー
ス入力テーブル及び出力テーブルにおいて、前記入力テーブルから出力テーブル
にデータを構成変更する方法において、 ピボット行として、前記入力テーブルの第1行の名前を選択する段階、 値行として、前記入力テーブルの第2行の名前を選択する段階、 前記データプロセッサ内の入力テーブルにアクセスする段階、 前記ピボット行内のデータ値のセットを、前記出力テーブル内の複数のピボッ
ト化された行に関連付けられた各々の行名に変換する段階、及び 前記ピボット行内のデータ値セットの特定の1つと同じ前記入力テーブルの列 に位置する前記値行内の各データ値について、前記特定の1つのデータ値を、前
記出力テーブルのピボット化された行の特定の1つに置く段階を含み、前記特定 の1つのピボット化された行は、前記ピボット行内の前記特定の1つのデータ値
に対応する名前を持ち、更に 前記データプロセッサ内に前記出力テーブルを記憶する段階を含むことを特徴
とする方法。 - 【請求項6】 ピボットリストとして、前記ピボット行内のデータ値セット
の特定の1つを選択する段階を更に含み、前記変換する段階は、前記ピボットリ
スト内のこれらのデータ値のみを前記行名に変換することを特徴とする請求項5
に記載の方法。 - 【請求項7】 前記変換する段階は、前記ピボット行内のNULLデータ値
を有する前記入力テーブル内の列のいずれも、列の名前に変換しないことを特徴
とする請求項6に記載の方法。 - 【請求項8】 前記入力テーブルは、前記ピボット行及び値行以外の他の行
を含み、前記他の行の少なくとも一部の行内のデータ項目の均等値により、前記
出力テーブルの列をグループ化する段階を更に含むことを特徴とする請求項5に
記載の方法。 - 【請求項9】 前記グループ化する段階は、前記他の行の全ての行内の前記
データ項目の均等値により、前記出力テーブルの列をグループ化することを特徴
とする請求項8に記載の方法。 - 【請求項10】 デジタルコンピュータ上の関係型データベース管理システ
ム内に非ピボットテーブルを形成するために、ピボットテーブルからのデータを
非ピボット化する方法であって、 前記ピボット化テーブルを定義する段階、 前記非ピボット化テーブルに関するピボット行名を定義する段階、 前記ピボット化テーブルの行のピボットリストを定義する段階、 前記非ピボット化テーブルに関する値行名を定義する段階、 前記非ピボット化テーブル内にピボット行及び値行を構成する段階、及び 前記非ピボット化テーブルのピボット行内のデータ項目として前記ピボットリ
スト行の名前を置くとともに、前記ピボットリスト行内のデータ項目を前記非ピ
ボット化テーブルの値行の列に置くために、前記ピボットリスト内の行について
前記ピボット化テーブルを置換える段階を含むことを特徴とする方法。 - 【請求項11】 前記ピボット化テーブルの少なくとも1つのグループ化す
る行を定義する段階、及び 前記1つ又はそれ以上のグループ化する行内のデータ項目の均等値に従って、
前記非ピボット化テーブルの列をグループ化する段階を更に含むことを特徴とす
る請求項10に記載の方法。 - 【請求項12】 前記置換える段階は、複数の遠隔の顧客場所に位置するユ
ーザーに応答する中央サーバにおいて生じ、前記定義する段階は、前記ユーザー
の1人によって起こされることを特徴とする請求項10に記載の方法。 - 【請求項13】 前記定義する段階は、前記ピボット方法を明示的オペレー
ションとして含まないユーザーからのクエリを最適化する段階の一部として、前
記中央サーバにおけるサーチエンジンに起こることを特徴とする請求項10に記
載の方法。 - 【請求項14】 複数の列及び行として編成されたデータ値のアレイを各々
有し、且つ前記データ値から切離されるとともに前記行の各々に関連付けられた
複数の行名を各々有する、電子データプロセッサ内に記憶された関係型データベ
ースピボット化テーブル及び非ピボット化テーブルにおいて、前記ピボット化テ
ーブルから非ピボット化テーブルにデータを構成変更する方法において、 ピボット行の名前として、名前を選択する段階、 ピボットリストとして、前記ピボット化テーブル内の前記行の複数の名前を選
択する段階、 値行の前記名前として、名前を選択する段階、 前記データプロセッサ内のピボット化テーブルにアクセスする段階、 前記非ピボット化テーブル内に、前記ピボット行名として選択された名前を有
するピボット行を生成するする段階、 前記ピボットリスト内の行名を前記ピボット行内のデータ値に変換する段階、 前記値行に関して選択された名前を有する前記非ピボット化テーブル内の値行
を生成する段階、 前記ピボットリスト内の前記ピボット化テーブル行の各特定行内の各特定デー
タ値について、前記特定データ値を、前記ピボット化テーブルの前記特定行に対
応する前記ピボット行内のデータ値も含む列内の前記非ピボット化テーブルの値
行に置く段階、及び 前記データプロセッサ内に前記非ピボット化テーブルを記憶する段階を含むこ
とを特徴とする方法。 - 【請求項15】 前記ピボット化テーブルは、前記ピボットリスト以外の他
の行を含み、前記他の行の少なくとも一部の行内のデータ項目の均等値により、
前記非ピボット化テーブルの列をグループ化する段階を更に含むことを特徴とす
る請求項14に記載の方法。 - 【請求項16】 前記グループ化する段階は、前記他の行の全ての行内の前
記データ項目の均等値により、前記非ピボット化テーブルの列をグループ化する
ことを特徴とする請求項15に記載の方法。 - 【請求項17】 多数の顧客と、 関係型データベース内の入力テーブル、 前記入力テーブル内のピボット行(411)の名前と前記入力テーブル内の値
行の名前、及び前記ピボット行内のデータ値のピボットリストを指定するピボッ
トオペレーションを含む前記顧客の1人からのクエリを構文解析し最適化し実行 するためのサーチエンジンとを含み、前記サーチエンジンは、ピボット化出力テ
ーブルを構成するために、前記ピボットリスト内のデータ項目に基づいて、前記
ピボット行について前記入力テーブルの値行内のデータ項目を置換えることを特
徴とする関係型データベース。 - 【請求項18】 前記サーチエンジンは、中央サーバにあり、更に前記顧客
は、前記サーバから離れた複数の場所に物理的に位置することを特徴とする請求
項17に記載のシステム。 - 【請求項19】 前記最適化モジュールは、前記ピボットオペレーションを
含むクエリを最適化することを特徴とする請求項17に記載のシステム。 - 【請求項20】 前記1人の顧客からのクエリは、多数のピボット化行につ いて前記ピボット化テーブル内のデータ項目を置換えることによって、前記ピボ
ット化テーブルにおける前記ピボットオペレーションの効力を反転するために非
ピボットテーブルを指定する非ピボットオペレーションを含むことを特徴とする
請求項17に記載のシステム。 - 【請求項21】 前記ピボット化行内のデータ項目は、前記非ピボット化テ
ーブルの値行に置かれることを特徴とする請求項20に記載のシステム。 - 【請求項22】 入力テーブル、ピボット行、及び値行を含むピボット仕様
に従って列及び行内に置かれたデータ値を有する関係型データベース内のピボッ
ト化テーブルであって、 前記ピボット行内のデータ値の識別可能な1つのデータ値に対応する行名を各
々有する複数のピボット化行、及び 前記値行からの複数のデータ値を各々含む複数の列を含み、前記複数の列の1
つの列内のデータ項目の各々は、データ値として前記1つのピボット化行の名前
を含む前記入力テーブルの列に対応する名前を持つ前記ピボット化行の1つの行
内に位置していることを特徴とするテーブル。 - 【請求項23】 前記仕様は、ピボット値のピボットリストを更に含み、前
記出力テーブルのピボット化行は、前記ピボットリストに載せられた前記ピボッ
ト行内のデータ値に対応する行から成ることを特徴とする請求項22に記載のテ
ーブル。 - 【請求項24】 前記入力テーブルは、ピボット行及び値行以外に、他の行
を含み、前記出力テーブルは、前記入力テーブルの他の行からのデータ値を含む
グループ行を含むことを特徴とする請求項22に記載のテーブル。 - 【請求項25】 前記出力テーブルの列は、前記グループ行のデータ項目の
均等値によりグループ化されることを特徴とする請求項24に記載のテーブル。 - 【請求項26】 前記入力テーブルは前記他の行を複数含み、前記複数の他
の行は、前記出力テーブル内の切離されたグループ行を作り出すことを特徴とす
る請求項25に記載のテーブル。 - 【請求項27】 前記テーブルは、記憶媒体に記憶されていることを特徴と
する請求項22に記載のテーブル。 - 【請求項28】 ピボット入力テーブル、ピボット行、ピボットリスト及び
値行を含むピボット仕様に従って列及び行内に置かれたデータ値を有する関係型
データベース内の非ピボット化テーブルであって、 前記ピボット行に対応する名前を有するピボット行を含み、その列には前記ピ
ボットリストに載せられたピボット化テーブル行の名前から引出されたデータ項
目が含まれ、更に 前記仕様内の前記値行から引出された名前を有する値を含み、前記値行の各特
定列は、前記非ピボットテーブルの同じ特定列内のデータ項目に名前があるピボ
ット化行の1つの行内のデータ項目から引出されたデータ項目を含むことを特徴 とするテーブル。 - 【請求項29】 前記ピボット化テーブルは、前記ピボット化行以外に、少
なくとも1つの他の行を含むことを特徴とする請求項28に記載のテーブル。 - 【請求項30】 前記非ピボットテーブルの列は、前記少なくとも1つの他
の行の均等値によりグループ化されることを特徴とする請求項29に記載のテー
ブル。 - 【請求項31】 前記テーブルは、記憶媒体に記憶されていることを特徴と
する請求項28に記載のテーブル。 - 【請求項32】 入力テーブル、前記入力テーブルのピボット行、前記ピボ
ット行からのデータ項目のピボットリスト、及び前記入力テーブルの値行を定義
する仕様を受入れる段階、及び 出力テーブルを構成するために、前記ピボットリスト内のデータ項目に基づい
て前記ピボット行について前記入力テーブルを置換える段階を含む各段階を、好
適にプログラムされたコンピュータに実行させるようにするために記憶されたプ
ログラムを有することを特徴とするデータ記憶媒体。 - 【請求項33】 前記プログラムされたコンピュータは、 前記入力テーブルの少なくとも1つのグループ行を定義する段階、及び 前記少なくとも1つのグループ行内のデータ項目の均等値に従って、前記出力
テーブルの列をグループ化する更なる段階を実行することを特徴とする請求項3
2に記載のデータ記憶媒体。 - 【請求項34】 ピボット化テーブル、前記ピボット化テーブルからの行の
ピボットリスト、ピボット行名、及び非ピボット化テーブルに関する値行名を定
義する段階、 前記非ピボットテーブル内にピボット行及び値行を構成する段階、及び 前記非ピボット化テーブルの前記ピボット行内のデータ値として前記ピボット
リスト行の名前を置くとともに、前記ピボットリスト行内のデータ項目を前記非
ピボット化テーブルの値行の列に置くために、前記ピボットリスト内の行につい
て前記ピボット化テーブルを置換える段階を含む各段階を、好適にプログラムさ
れたコンピュータに実行させるようにするために記憶されたプログラムを有する
ことを特徴とするデータ記憶媒体。 - 【請求項35】 前記プログラムされたコンピュータは、 前記ピボット化テーブルの少なくとも1つのグループ行を定義する段階、及び 前記少なくとも1つのグループ行内のデータ項目の均等値に従って、前記非ピ
ボット化テーブルの列をグループ化する更なる段階を実行することを特徴とする
請求項34に記載のデータ記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/039,728 | 1998-03-16 | ||
US09/039,728 US6298342B1 (en) | 1998-03-16 | 1998-03-16 | Electronic database operations for perspective transformations on relational tables using pivot and unpivot columns |
PCT/US1999/005716 WO1999048029A1 (en) | 1998-03-16 | 1999-03-16 | Perspective transformations on relational database tables |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2002507795A true JP2002507795A (ja) | 2002-03-12 |
JP2002507795A5 JP2002507795A5 (ja) | 2006-05-11 |
JP4504560B2 JP4504560B2 (ja) | 2010-07-14 |
Family
ID=21907055
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000537159A Expired - Fee Related JP4504560B2 (ja) | 1998-03-16 | 1999-03-16 | 関係型データベース・テーブルにおける構成変更方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6298342B1 (ja) |
EP (1) | EP1101172B1 (ja) |
JP (1) | JP4504560B2 (ja) |
AT (1) | ATE246823T1 (ja) |
AU (1) | AU3092099A (ja) |
DE (1) | DE69910219T2 (ja) |
WO (1) | WO1999048029A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009508227A (ja) * | 2005-09-09 | 2009-02-26 | マイクロソフト コーポレーション | ブラウズモードデザイナ |
Families Citing this family (146)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6523022B1 (en) * | 1997-06-09 | 2003-02-18 | Allen Hobbs | Method and apparatus for selectively augmenting retrieved information from a network resource |
US6611829B1 (en) * | 1998-10-02 | 2003-08-26 | Ncr Corporation | SQL-based analytic algorithm for association |
US7272593B1 (en) * | 1999-01-26 | 2007-09-18 | International Business Machines Corporation | Method and apparatus for similarity retrieval from iterative refinement |
US6983291B1 (en) * | 1999-05-21 | 2006-01-03 | International Business Machines Corporation | Incremental maintenance of aggregated and join summary tables |
US6626959B1 (en) * | 1999-06-14 | 2003-09-30 | Microsoft Corporation | Automatic formatting of pivot table reports within a spreadsheet |
US6411313B1 (en) * | 1999-06-14 | 2002-06-25 | Microsoft Corporation | User interface for creating a spreadsheet pivottable |
US6523040B1 (en) * | 1999-06-24 | 2003-02-18 | Ibm Corporation | Method and apparatus for dynamic and flexible table summarization |
US6604095B1 (en) * | 1999-09-21 | 2003-08-05 | International Business Machines Corporation | Method, system, program, and data structure for pivoting columns in a database table |
US6965888B1 (en) * | 1999-09-21 | 2005-11-15 | International Business Machines Corporation | Method, system, program, and data structure for cleaning a database table using a look-up table |
US7120638B1 (en) * | 1999-09-21 | 2006-10-10 | International Business Machines Corporation | Method, system, program, and data structure for cleaning a database table |
US6748389B1 (en) * | 1999-09-21 | 2004-06-08 | International Business Machines Corporation | Method, system, and program for inverting columns in a database table |
US6920443B1 (en) * | 1999-09-21 | 2005-07-19 | International Business Machines, Corporation | Method, system, program, and data structure for transforming database tables |
US7328206B2 (en) * | 1999-10-15 | 2008-02-05 | Microsoft Corporation | Extensions for adding and removing calculated members in a multidimensional database |
US6779152B1 (en) * | 1999-12-07 | 2004-08-17 | International Business Machines Corporation | Method for rotating a dynamic HTML table |
US6356900B1 (en) * | 1999-12-30 | 2002-03-12 | Decode Genetics Ehf | Online modifications of relations in multidimensional processing |
US6434557B1 (en) | 1999-12-30 | 2002-08-13 | Decode Genetics Ehf. | Online syntheses programming technique |
US7016910B2 (en) * | 1999-12-30 | 2006-03-21 | Decode Genetics Ehf. | Indexing, rewriting and efficient querying of relations referencing semistructured data |
US7082436B1 (en) * | 2000-01-05 | 2006-07-25 | Nugenesis Technologies Corporation | Storing and retrieving the visual form of data |
AU2001253136A1 (en) * | 2000-04-04 | 2001-10-15 | Metamatrix, Inc. | A system and method for accessing data in disparate information sources |
CA2306928C (en) * | 2000-04-28 | 2004-05-25 | Ibm Canada Limited-Ibm Canada Limitee | Selectivity estimation for processing sql queries containing having clauses |
US6691120B1 (en) * | 2000-06-30 | 2004-02-10 | Ncr Corporation | System, method and computer program product for data mining in a normalized relational database |
AU2002222963B2 (en) * | 2000-07-13 | 2007-05-10 | Oracle International Corporation | Performing spreadsheet-like calculations in a database system |
US7143339B2 (en) * | 2000-09-20 | 2006-11-28 | Sap Aktiengesellschaft | Method and apparatus for dynamically formatting and displaying tabular data in real time |
US6965904B2 (en) * | 2001-03-02 | 2005-11-15 | Zantaz, Inc. | Query Service for electronic documents archived in a multi-dimensional storage space |
US20020165875A1 (en) * | 2001-05-04 | 2002-11-07 | Verta Patrick A. | Data capture and management system |
JP2002358402A (ja) * | 2001-05-31 | 2002-12-13 | Dentsu Tec Inc | 3指標軸による顧客価値を基準とした売上予測方法 |
US6763350B2 (en) * | 2001-06-01 | 2004-07-13 | International Business Machines Corporation | System and method for generating horizontal view for SQL queries to vertical database |
US7761403B2 (en) * | 2001-06-20 | 2010-07-20 | Oracle International Corporation | Run-time optimizations of queries with SQL spreadsheet |
US7177855B2 (en) * | 2001-06-20 | 2007-02-13 | Oracle International Corporation | Compile-time optimizations of queries with SQL spreadsheet |
WO2003017136A1 (en) * | 2001-08-16 | 2003-02-27 | Etagon Israel Ltd. | Using associative memory to perform database operations |
US20030061204A1 (en) * | 2001-09-25 | 2003-03-27 | Parry Travis J. | Systems and methods for selective information retrieval based on search source attributes |
CN1591405A (zh) * | 2001-11-09 | 2005-03-09 | 无锡永中科技有限公司 | 版本兼容的数据处理系统 |
US7237187B2 (en) * | 2002-01-31 | 2007-06-26 | Requisite Technology, Inc. | Interactively comparing records in a database |
US7035843B1 (en) | 2002-02-15 | 2006-04-25 | Oracle International Corporation | Evaluation of database hierarchical cubes by nesting rollup operators associated with multiple groupings |
US20030158944A1 (en) * | 2002-02-19 | 2003-08-21 | International Business Machines Corporation | Software control in a business transaction environment |
US6775681B1 (en) * | 2002-02-26 | 2004-08-10 | Oracle International Corporation | Evaluation of grouping sets by reduction to group-by clause, with or without a rollup operator, using temporary tables |
US6775682B1 (en) * | 2002-02-26 | 2004-08-10 | Oracle International Corporation | Evaluation of rollups with distinct aggregates by using sequence of sorts and partitioning by measures |
US7039650B2 (en) * | 2002-05-31 | 2006-05-02 | Sypherlink, Inc. | System and method for making multiple databases appear as a single database |
AU2003243635A1 (en) * | 2002-06-17 | 2003-12-31 | Beingmeta, Inc. | Systems and methods for processing queries |
US7406469B1 (en) * | 2002-06-20 | 2008-07-29 | Oracle International Corporation | Linear instance mapping for query rewrite |
US20040064441A1 (en) * | 2002-09-27 | 2004-04-01 | Tow Daniel S. | Systems and methods for providing structured query language optimization |
US7085755B2 (en) * | 2002-11-07 | 2006-08-01 | Thomson Global Resources Ag | Electronic document repository management and access system |
US20040103365A1 (en) * | 2002-11-27 | 2004-05-27 | Alan Cox | System, method, and computer program product for an integrated spreadsheet and database |
US7243096B2 (en) * | 2003-04-29 | 2007-07-10 | International Business Machines Corporation | Method and system in an electronic data table for managing order oriented criteria |
US7590638B2 (en) * | 2003-06-24 | 2009-09-15 | Microsoft Corporation | System and method for online analytical processing using dimension attributes and multiple hierarchies where first hierarchy has at least one attribute from the defined dimension not present in the second hierarchy |
US7480662B2 (en) * | 2003-07-03 | 2009-01-20 | Oracle International Corporation | Fact table storage in a decision support system environment |
US7356542B2 (en) * | 2003-08-22 | 2008-04-08 | Oracle International Corporation | DML statements for densifying data |
US7426520B2 (en) | 2003-09-10 | 2008-09-16 | Exeros, Inc. | Method and apparatus for semantic discovery and mapping between data sources |
US7979384B2 (en) * | 2003-11-06 | 2011-07-12 | Oracle International Corporation | Analytic enhancements to model clause in structured query language (SQL) |
US8135636B2 (en) * | 2003-11-25 | 2012-03-13 | International Business Machines Corporation | System for metering in an on-demand utility environment |
US8527498B1 (en) * | 2004-02-20 | 2013-09-03 | Teradata Us, Inc. | Method and system for organizing values of alternative equality conditions |
ATE484799T1 (de) * | 2004-03-16 | 2010-10-15 | Sap Ag | Verfahren, computerprogrammprodukt und datenverarbeitungssystem zum anzeigen einer mehrzahl von datenobjekten |
US7761455B2 (en) * | 2004-03-31 | 2010-07-20 | Hewlett-Packard Development Company, L.P. | Loading data from a vertical database table into a horizontal database table |
US7225200B2 (en) | 2004-04-14 | 2007-05-29 | Microsoft Corporation | Automatic data perspective generation for a target variable |
US7246116B2 (en) * | 2004-04-22 | 2007-07-17 | International Business Machines Corporation | Method, system and article of manufacturing for converting data values quantified using a first measurement unit into equivalent data values when quantified using a second measurement unit in order to receive query results including data values measured using at least one of the first and second measurement units |
US8706585B2 (en) * | 2004-05-27 | 2014-04-22 | Network Solutions Inc. | Certified offer service for domain names |
US7702627B2 (en) * | 2004-06-22 | 2010-04-20 | Oracle International Corporation | Efficient interaction among cost-based transformations |
US20050283471A1 (en) * | 2004-06-22 | 2005-12-22 | Oracle International Corporation | Multi-tier query processing |
US7707490B2 (en) | 2004-06-23 | 2010-04-27 | Microsoft Corporation | Systems and methods for flexible report designs including table, matrix and hybrid designs |
US7562069B1 (en) * | 2004-07-01 | 2009-07-14 | Aol Llc | Query disambiguation |
US20060026498A1 (en) * | 2004-07-30 | 2006-02-02 | Microsoft Corporation | Systems and methods for controlling report properties based on aggregate scope |
US7814042B2 (en) * | 2004-08-17 | 2010-10-12 | Oracle International Corporation | Selecting candidate queries |
US8271866B2 (en) | 2004-08-19 | 2012-09-18 | International Business Machines Corporation | User-controlled web browser table reduction |
US7559023B2 (en) * | 2004-08-27 | 2009-07-07 | Microsoft Corporation | Systems and methods for declaratively controlling the visual state of items in a report |
US7483880B2 (en) * | 2004-09-30 | 2009-01-27 | Microsoft Corporation | User interface for database display |
US7548925B2 (en) * | 2005-01-24 | 2009-06-16 | Microsoft Corporation | Diagrammatic access and arrangement of data |
US7614006B2 (en) * | 2005-02-11 | 2009-11-03 | International Business Machines Corporation | Methods and apparatus for implementing inline controls for transposing rows and columns of computer-based tables |
US7496589B1 (en) * | 2005-07-09 | 2009-02-24 | Google Inc. | Highly compressed randomly accessed storage of large tables with arbitrary columns |
US7548928B1 (en) | 2005-08-05 | 2009-06-16 | Google Inc. | Data compression of large scale data stored in sparse tables |
US7668846B1 (en) | 2005-08-05 | 2010-02-23 | Google Inc. | Data reconstruction from shared update log |
US7567973B1 (en) * | 2005-08-05 | 2009-07-28 | Google Inc. | Storing a sparse table using locality groups |
US7814091B2 (en) * | 2005-09-27 | 2010-10-12 | Oracle International Corporation | Multi-tiered query processing techniques for minus and intersect operators |
US7877379B2 (en) | 2005-09-30 | 2011-01-25 | Oracle International Corporation | Delaying evaluation of expensive expressions in a query |
US20070143250A1 (en) * | 2005-12-20 | 2007-06-21 | Beckman Coulter, Inc. | Adaptable database system |
US7945562B2 (en) * | 2006-03-15 | 2011-05-17 | Oracle International Corporation | Join predicate push-down optimizations |
US7676450B2 (en) * | 2006-03-15 | 2010-03-09 | Oracle International Corporation | Null aware anti-join |
US7644062B2 (en) * | 2006-03-15 | 2010-01-05 | Oracle International Corporation | Join factorization of union/union all queries |
US7809713B2 (en) * | 2006-03-15 | 2010-10-05 | Oracle International Corporation | Efficient search space analysis for join factorization |
US20070260578A1 (en) * | 2006-05-04 | 2007-11-08 | Microsoft Corporation | Pivot table without server side on-line analytical processing service |
US8645321B1 (en) | 2006-05-31 | 2014-02-04 | Verizon Data Services Llc | Asynchronous data integrity for enterprise computing |
US8161075B1 (en) * | 2006-05-31 | 2012-04-17 | Verizon Laboratories Inc. | Systems and methods for managing integrated and customizable data |
US8090658B2 (en) * | 2006-06-23 | 2012-01-03 | International Business Machines Corporation | System and method of member unique names |
US7877373B2 (en) * | 2006-06-30 | 2011-01-25 | Oracle International Corporation | Executing alternative plans for a SQL statement |
US20080086359A1 (en) * | 2006-10-04 | 2008-04-10 | Holton Peter R | Sales opportunity explorer |
US7860899B2 (en) * | 2007-03-26 | 2010-12-28 | Oracle International Corporation | Automatically determining a database representation for an abstract datatype |
US9047337B2 (en) * | 2007-04-27 | 2015-06-02 | International Business Machines Corporation | Database connectivity and database model integration within integrated development environment tool |
US9489418B2 (en) * | 2007-04-27 | 2016-11-08 | International Business Machines Corporation | Processing database queries embedded in application source code from within integrated development environment tool |
US8392880B2 (en) * | 2007-04-27 | 2013-03-05 | International Business Machines Corporation | Rapid application development for database-aware applications |
US8566793B2 (en) * | 2007-04-27 | 2013-10-22 | International Business Machines Corporation | Detecting and displaying errors in database statements within integrated development environment tool |
US8375351B2 (en) * | 2007-06-23 | 2013-02-12 | International Business Machines Corporation | Extensible rapid application development for disparate data sources |
US8019736B1 (en) * | 2007-07-25 | 2011-09-13 | Rockwell Collins, Inc. | Systems and methods for combining a plurality of terrain databases into one terrain database |
US8903801B2 (en) | 2007-09-14 | 2014-12-02 | Oracle International Corporation | Fully automated SQL tuning |
US8341178B2 (en) | 2007-09-18 | 2012-12-25 | Oracle International Corporation | SQL performance analyzer |
US8335767B2 (en) | 2007-10-17 | 2012-12-18 | Oracle International Corporation | Maintaining and utilizing SQL execution plan histories |
US8438152B2 (en) * | 2007-10-29 | 2013-05-07 | Oracle International Corporation | Techniques for bushy tree execution plans for snowstorm schema |
US9720971B2 (en) * | 2008-06-30 | 2017-08-01 | International Business Machines Corporation | Discovering transformations applied to a source table to generate a target table |
US8489572B2 (en) * | 2008-07-11 | 2013-07-16 | Thomson Reuters Global Resources | Systems, methods, and interfaces for researching contractual precedents |
US8041731B2 (en) * | 2008-07-21 | 2011-10-18 | Oracle International Corporation | Efficient evaluation of SQL pivot operations |
US8484351B1 (en) | 2008-10-08 | 2013-07-09 | Google Inc. | Associating application-specific methods with tables used for data storage |
US20100106561A1 (en) * | 2008-10-28 | 2010-04-29 | Sergiy Peredriy | Forecasting Using Share Models And Hierarchies |
US20100191718A1 (en) * | 2008-12-19 | 2010-07-29 | Aprimo, Inc. | Complex relational database extraction system and method with perspective based dynamic data modeling |
US8463806B2 (en) * | 2009-01-30 | 2013-06-11 | Lexisnexis | Methods and systems for creating and using an adaptive thesaurus |
US20110004521A1 (en) * | 2009-07-06 | 2011-01-06 | Yahoo! Inc. | Techniques For Use In Sorting Partially Sorted Lists |
US20110119268A1 (en) * | 2009-11-13 | 2011-05-19 | Rajaram Shyam Sundar | Method and system for segmenting query urls |
US8356027B2 (en) * | 2010-10-07 | 2013-01-15 | Sap Ag | Hybrid query execution plan generation and cost model evaluation |
US9244990B2 (en) | 2011-10-07 | 2016-01-26 | Oracle International Corporation | Representation of data records in graphic tables |
US9886474B2 (en) * | 2011-11-22 | 2018-02-06 | Microsoft Technology Licensing, Llc | Multidimensional grouping operators |
US8868545B2 (en) * | 2011-12-29 | 2014-10-21 | Teradata Us, Inc. | Techniques for optimizing outer joins |
US8930303B2 (en) * | 2012-03-30 | 2015-01-06 | International Business Machines Corporation | Discovering pivot type relationships between database objects |
WO2012103854A2 (zh) * | 2012-04-19 | 2012-08-09 | 华为技术有限公司 | 表格图形化管理方法和装置 |
US9836519B2 (en) | 2013-09-20 | 2017-12-05 | Oracle International Corporation | Densely grouping dimensional data |
US9990398B2 (en) | 2013-09-20 | 2018-06-05 | Oracle International Corporation | Inferring dimensional metadata from content of a query |
US9740718B2 (en) * | 2013-09-20 | 2017-08-22 | Oracle International Corporation | Aggregating dimensional data using dense containers |
US9870390B2 (en) | 2014-02-18 | 2018-01-16 | Oracle International Corporation | Selecting from OR-expansion states of a query |
US9292267B2 (en) * | 2014-06-27 | 2016-03-22 | International Business Machines Corporation | Compiling nested relational algebras with multiple intermediate representations |
US10621064B2 (en) | 2014-07-07 | 2020-04-14 | Oracle International Corporation | Proactive impact measurement of database changes on production systems |
US10387389B2 (en) * | 2014-09-30 | 2019-08-20 | International Business Machines Corporation | Data de-duplication |
US10152470B2 (en) | 2014-10-10 | 2018-12-11 | Apple Inc. | Updating formulas in response to table transposition |
US10585887B2 (en) | 2015-03-30 | 2020-03-10 | Oracle International Corporation | Multi-system query execution plan |
US10114867B2 (en) * | 2015-05-29 | 2018-10-30 | Looker Data Sciences, Inc. | Methods and systems for selectively retrieving data to provide a limited dataset for incorporation into a pivot table |
US10007700B2 (en) | 2015-06-29 | 2018-06-26 | Oracle International Corporation | Query optimization for group-by extensions and distinct aggregate functions |
US10783142B2 (en) | 2015-10-23 | 2020-09-22 | Oracle International Corporation | Efficient data retrieval in staged use of in-memory cursor duration temporary tables |
US10678792B2 (en) | 2015-10-23 | 2020-06-09 | Oracle International Corporation | Parallel execution of queries with a recursive clause |
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 |
US10133778B2 (en) * | 2015-11-20 | 2018-11-20 | Sap Se | Query optimization using join cardinality |
US11593342B2 (en) * | 2016-02-01 | 2023-02-28 | Smartshift Technologies, Inc. | Systems and methods for database orientation transformation |
US10585655B2 (en) | 2016-05-25 | 2020-03-10 | Smartshift Technologies, Inc. | Systems and methods for automated retrofitting of customized code objects |
US10089103B2 (en) | 2016-08-03 | 2018-10-02 | Smartshift Technologies, Inc. | Systems and methods for transformation of reporting schema |
US10558659B2 (en) | 2016-09-16 | 2020-02-11 | Oracle International Corporation | Techniques for dictionary based join and aggregation |
US11182549B2 (en) | 2017-03-06 | 2021-11-23 | AppExtremes, LLC | Systems and methods for modifying and reconciling negotiated documents |
US11003654B2 (en) * | 2017-09-20 | 2021-05-11 | AppExtremes, LLC | Systems and methods for requesting, tracking and reporting modifications to a record |
US11386058B2 (en) | 2017-09-29 | 2022-07-12 | Oracle International Corporation | Rule-based autonomous database cloud service framework |
US11086876B2 (en) | 2017-09-29 | 2021-08-10 | Oracle International Corporation | Storing derived summaries on persistent memory of a storage device |
US11327932B2 (en) | 2017-09-30 | 2022-05-10 | Oracle International Corporation | Autonomous multitenant database cloud service framework |
US10740075B2 (en) | 2018-02-06 | 2020-08-11 | Smartshift Technologies, Inc. | Systems and methods for code clustering analysis and transformation |
US10698674B2 (en) | 2018-02-06 | 2020-06-30 | Smartshift Technologies, Inc. | Systems and methods for entry point-based code analysis and transformation |
US10528343B2 (en) | 2018-02-06 | 2020-01-07 | Smartshift Technologies, Inc. | Systems and methods for code analysis heat map interfaces |
US11636431B2 (en) | 2019-01-04 | 2023-04-25 | AppExtremes, LLC | Systems and methods for dynamic assignment, monitoring and management of discrete tasks |
KR102230245B1 (ko) | 2019-05-02 | 2021-03-19 | 주식회사 티맥스티베로 | 피벗 쿼리를 처리하기 위한 컴퓨터 프로그램 |
US11768833B2 (en) * | 2019-07-24 | 2023-09-26 | International Business Machines Corporation | Optimizing relational online analytical processing sort operations |
CN110427382A (zh) * | 2019-08-09 | 2019-11-08 | 安徽工业大学 | 一种非匀质excel表转换成关系数据库表的方法 |
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 |
US11797521B1 (en) * | 2020-06-30 | 2023-10-24 | Amazon Technologies, Inc. | Associating a function with a table in a database system |
KR20210029174A (ko) | 2021-03-02 | 2021-03-15 | 주식회사 티맥스티베로 | 피벗 쿼리를 처리하기 위한 컴퓨터 프로그램 |
US11461351B1 (en) | 2021-05-31 | 2022-10-04 | Snowflake Inc. | Semi-structured data storage and processing functionality to store sparse feature sets |
US20220405281A1 (en) * | 2021-06-18 | 2022-12-22 | Bank Of America Corporation | Versatile query logic on data flux reverse analyzer |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08137967A (ja) * | 1994-11-07 | 1996-05-31 | Hitachi Ltd | 表デ−タ処理方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4819156A (en) | 1986-06-13 | 1989-04-04 | International Business Machines Corporation | Database index journaling for enhanced recovery |
US5350925A (en) * | 1988-12-08 | 1994-09-27 | Schlumberger Technology Corporation | Methods for determining values for earth formation properties |
WO1992004678A1 (en) * | 1990-09-10 | 1992-03-19 | Lotus Development Corporation | Apparatus and method for reformattable spreadsheet |
US5418898A (en) * | 1991-08-07 | 1995-05-23 | Occam Research Corporation | Multidimensional data display system and method |
US5504885A (en) * | 1993-06-29 | 1996-04-02 | Texas Instruments Incorporated | O-R gateway: a system for connecting object-oriented application programs and relational databases |
CA2174744C (en) | 1993-10-22 | 2006-10-10 | Michael Gene Emerson | Database link system |
US5818726A (en) * | 1994-04-18 | 1998-10-06 | Cadence Design Systems, Inc. | System and method for determining acceptable logic cell locations and generating a legal location structure |
US5604854A (en) * | 1994-04-22 | 1997-02-18 | Borland International, Inc. | System and methods for reformatting multi-dimensional spreadsheet information |
US5765153A (en) * | 1996-01-03 | 1998-06-09 | International Business Machines Corporation | Information handling system, method, and article of manufacture including object system authorization and registration |
US5933830A (en) * | 1997-05-09 | 1999-08-03 | Corda Technologies, Inc. | Device and method for arranging data for use by a data client, such as a graph |
US5913217A (en) * | 1997-06-30 | 1999-06-15 | Microsoft Corporation | Generating and compressing universally unique identifiers (UUIDs) using counter having high-order bit to low-order bit |
US6014670A (en) * | 1997-11-07 | 2000-01-11 | Informatica Corporation | Apparatus and method for performing data transformations in data warehousing |
US6044366A (en) * | 1998-03-16 | 2000-03-28 | Microsoft Corporation | Use of the UNPIVOT relational operator in the efficient gathering of sufficient statistics for data mining |
US6122644A (en) * | 1998-07-01 | 2000-09-19 | Microsoft Corporation | System for halloween protection in a database system |
-
1998
- 1998-03-16 US US09/039,728 patent/US6298342B1/en not_active Expired - Fee Related
-
1999
- 1999-03-16 JP JP2000537159A patent/JP4504560B2/ja not_active Expired - Fee Related
- 1999-03-16 WO PCT/US1999/005716 patent/WO1999048029A1/en active IP Right Grant
- 1999-03-16 EP EP99912573A patent/EP1101172B1/en not_active Expired - Lifetime
- 1999-03-16 DE DE69910219T patent/DE69910219T2/de not_active Expired - Lifetime
- 1999-03-16 AT AT99912573T patent/ATE246823T1/de not_active IP Right Cessation
- 1999-03-16 AU AU30920/99A patent/AU3092099A/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08137967A (ja) * | 1994-11-07 | 1996-05-31 | Hitachi Ltd | 表デ−タ処理方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009508227A (ja) * | 2005-09-09 | 2009-02-26 | マイクロソフト コーポレーション | ブラウズモードデザイナ |
Also Published As
Publication number | Publication date |
---|---|
AU3092099A (en) | 1999-10-11 |
ATE246823T1 (de) | 2003-08-15 |
DE69910219D1 (de) | 2003-09-11 |
WO1999048029A1 (en) | 1999-09-23 |
EP1101172A1 (en) | 2001-05-23 |
DE69910219T2 (de) | 2004-06-17 |
US6298342B1 (en) | 2001-10-02 |
EP1101172B1 (en) | 2003-08-06 |
JP4504560B2 (ja) | 2010-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2002507795A (ja) | 関係型データベース・テーブルにおける構成変更方法 | |
US6789071B1 (en) | Method for efficient query execution using dynamic queries in database environments | |
US8126870B2 (en) | System and methodology for parallel query optimization using semantic-based partitioning | |
US6505189B1 (en) | Aggregate join index for relational databases | |
US4769772A (en) | Automated query optimization method using both global and parallel local optimizations for materialization access planning for distributed databases | |
US6574623B1 (en) | Query transformation and simplification for group by queries with rollup/grouping sets in relational database management systems | |
US6792420B2 (en) | Method, system, and program for optimizing the processing of queries involving set operators | |
US6529896B1 (en) | Method of optimizing a query having an existi subquery and a not-exists subquery | |
US6505188B1 (en) | Virtual join index for relational databases | |
Chatziantoniou et al. | The MD-join: An operator for complex OLAP | |
US20040139061A1 (en) | Method, system, and program for specifying multidimensional calculations for a relational OLAP engine | |
US7440963B1 (en) | Rewriting a query to use a set of materialized views and database objects | |
US20070203925A1 (en) | Database system and methods | |
US20110302151A1 (en) | Query Execution Systems and Methods | |
ZA200100187B (en) | Value-instance-connectivity computer-implemented database. | |
JP2003526159A (ja) | 多次元データベースおよび統合集約サーバ | |
Karayannidis et al. | Processing star queries on hierarchically-clustered fact tables | |
Samtani et al. | Recent advances and research problems in data warehousing | |
Inkster et al. | Integration of vectorwise with ingres | |
Gopalkrishnan et al. | Issues of object-relational view design in data warehousing environment | |
de Vries et al. | On the integration of IR and databases | |
Ordonez | Horizontal aggregations for building tabular data sets | |
Zhang et al. | RainbowII: multi-XQuery optimization using materialized XML views | |
Carey et al. | Data access interoperability in the IBM database family | |
Blakeley et al. | Distributed/heterogeneous query processing in Microsoft SQL server |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060313 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060313 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20061121 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20061121 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090403 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090703 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090710 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090803 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090810 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20090902 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20090909 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091005 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20091117 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100315 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20100329 |
|
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: 20100416 |
|
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: 20100423 |
|
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: 20130430 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140430 Year of fee payment: 4 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |