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
Application number
JP2000537159A
Other languages
English (en)
Other versions
JP2002507795A5 (ja
JP4504560B2 (ja
Inventor
ゲーツ グレイファ
ジェフ アルガー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2002507795A publication Critical patent/JP2002507795A/ja
Publication of JP2002507795A5 publication Critical patent/JP2002507795A5/ja
Application granted granted Critical
Publication of JP4504560B2 publication Critical patent/JP4504560B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99937Sorting
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating 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

(57)【要約】 【課題】 関係型データベース・テーブルにおける構成変更方法を提供する。 【解決手段】「ピボット」オペレーションは、関係データベース・テーブルにおけるデータ項目を回転させ、前記テーブルにおける一定のデータ値が、前記ピボットされたテーブルのカラム名になるようにし、及び特定された値カラムのデータ項目は、前記ピボットされたテーブルの新しいカラムにおける対応する列に現れる。ピボット・リストは、前記ピボット・カラム・データ項目の一定の値のみが、前記オペレーションに関与するように規定する。入力テーブルの追加のカラムは、出力テーブルにおいてカラムとして現れる;前記出力テーブルの前記列は、これらの分類カラムにおいて、等しいデータ−項目値によって分類される。「非ピボット」オペレーションは、前記ピボット・オペレーションの逆を供給する。両方のオペレーションは、代数レベルで、SQLユーザ照会に入れ子されてもよい。前記オペレーションは、関係データベース管理システムの検索エンジンにおいて出現してもよく、また、他の照会の最適化の一部として呼び出されてもよい。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】
本発明は、電子データ処理に係り、特に、関係型データベース及びそれに類す
る形式のデータベースのデータ管理ソフトウェアにおけるテーブル処理のための
新しいクエリ・オペレーションに関する。
【0002】
【従来の技術】
(発明の背景) データベースとは、編成構造化されたデータの集合体である。通常のデータベ
ースでは、各々のデータが、文字列、数値、他の場所に置かれたデータに対する
ポインタ等の特定内容のデータ項目を含む数々のフィールドを持ち、それらデー
タはレコードのセットとしてコンピュータに記憶されている。関係型データベー
スには、相当数の矩形テーブルが含まれている。各テーブルはレコードセットを
持ち、各レコードはそのテーブルの列と呼ばれる。同じテーブル内にあるレコー
ドは、それぞれ同じ数のフィールドを持っている。(しかし、レコードのいくつ
かのフィールドにはデータが含まれておらず、このデータを持たないフィールド
は、NUll値を持っていると言われる。)テーブルのフィールドは、名前を指
定することができる行のセットから構成されているが、この名前はデータそれ自
身の一部ではない。レコードは、それらを個々に特定する外部的要素を持ってい
ない。その代わり、これらデータには、あるフィールドの組合せから成るキーを
使ってアクセスされる。つまり、関係型データベースは、ソフトウェアにより実
行される連想メモリと考えることができる。
【0003】 データベース管理システム(DBMS、或いはデータベースシステム)とは、
データベースにおいてデータを記憶し維持管理し検索するためのコンピュータソ
フトウェアである。通常、DBMSは、索引、ロギング、レコードロッキング等
の、性能、信頼性、完全性を高める機能要素を備えている。また、DBMSは、
データベースから特定のデータを探し出すために、これらクエリをサーチエンジ
ンに与える一つ又は複数のインターフェースを常備している。サーチエンジンは
、データベースを検索し、通常、その結果をクエリの仕様に合わせた関係テーブ
ルの形でユーザーに伝える。
【0004】 最も良く知られている関係型データベースのインターフェースは構造化クエリ
言語(SQL)である。このインターフェース言語には多くの種類があるが、米
国規格協会(ANSI)や国際標準化機構(ISO)により標準版が設定されて
いる。
【0005】 現在最も商業化されているSQLは、これらの標準版に従ったものであるが、
それらの多くは、標準で設定されたもの以外の言語要素を含んでおり、言換える
と様々な標準対応レベルで言語構築されている。
【0006】 関係型データベースや関係型クエリ言語は、矩形テーブルのセットとしてデー
タを取扱う。しかし、多くのデータベースは、理論的には多次元であり、例えば
時間{日、月、年}、場所{店舗、市、州}、カテゴリー{製品、製品グループ
}、関係者{会社員、部門、本部}、支払{現金、小切手、クレジット}等の軸
に基づくものである。ユーザーは、多くの集合体から成る1つの集合体としてこ
のようなデータを考えることに有用性を見出すことが多く、これらデータを色々
な観点から見たいと望んでいるかもしれない。上述した例において、1つの観点
としては、各レコードが場所を象徴しその場所に関する毎月の売上データの集合
体を含むようなレコードの集合体である場合で、他の観点では、各レコードが時
刻を表し各レコードのフィールド(即ち、テーブルの行)が様々なカテゴリーに
ついての売上数値を集合するようなレコード(即ち、テーブル列)の集合体が考
えられる。
【0007】 この視点から、データの次元をある観点から他の観点に変更するようにデータ
ベーステーブルを構成変更できるようにすれば、従来のSQLのようなクエリ言
語に更なる有益な能力が付加されることになる。本明細書において、観点即ち次
元を変更するということは、行セットとしてテーブルに表された次元を、列セッ
トとして表された次元で置換えることを意味する。従来の関係型DBMS製品及
び標準機種では、観点を変更するための直接的なオペレーションを行うことはで
きない。これを間接的に行うためにSQLクエリを作ることは可能であるが、こ
のようなクエリは、大規模で複雑であり、またエラーが発生し易く処理速度も遅
く、更に並列処理が可能な場合であっても最適な状態で効率的な実行計画に移す
のは困難である。
【0008】 一部のスプレッドシート(ワークシート)のソフトウェアには、ユーザー選択
の矩形セルデータの置換えを、マトリクス代数「転置」オペレーションにおいて
行列要素αijをαjiに移動させるのと同じ方法でユーザーが行えるものがある。
例えば、マイクロソフト・エクセルのピボットテーブルでは、ユーザーは、矩形
セルを選択してテンポラリー・クリップボードにコピーし、オプションメニュー
から「移行」を選択した後に目標セルを指して「特殊な貼り付け」オペレーショ
ンを行う。更に、ユーザーは、マイクロソフト・オフイス等の互換性のあるアプ
リケーションプログラム一式を使って、マイクロソフト・アクセスのデータベー
ス構成要素であるデータベーステーブルからデータを選択し、そのデータを、矩
形スプレッドシート・セルのようなエクセル構成要素に対し単独オブジェクトと
して移してそのセルを置換え、次に、そのセルを置換えられたフォーマットの状
態のレコード集合体としてアクセスデータベースに転送することもできる。
【0009】 この方法によるデータ項目の置換えは、下手なやり方でもあり機能的にも制限
されたものである。小規模のデータベースであっても、1つのクエリを実行する
ためだけに他のアプリケーションプログラムを呼出すのは無駄が多い。大規模な
データベースに関しては、置換えられたデータがメモリ内に残るという従来の要
件により、この方法を行うことは不可能となっている。ホストコンピュータを基
盤としたサーチエンジンを使用したクライエント・サーバ・アーキテクチャに関
しては、このオペレーションを行うために、スプレッドシート・プログラムに接
続する方法は存在しない。どのような環境下においても、スプレッドシートによ
る移行には必ず手作業が伴うため、クエリの内的部分をデータベースプログラム
内に構成することにより置換えを行うことはできない。このような外部オペレー
ションは、従来のデータベースのクエリプロセスや他のサーチエンジンにおける
最新式への再設定、再書換え、他の最適手順に関与することはできない。より概
念的レベルにおいては、スプレッドシートと関係型データベーステーブルとの基
本的な差異によって、望ましい置換え形式を採ることが妨げられている。例えば
、データベーステーブルの行即ちフィールドの名前は、テーブルそれ自体の一部
ではない。つまり、スプレッドシートにおける行の索引がスプレッドシート内で
はセル列にあるという点で、それらデータベーステーブルのフィールドの名前は
、テーブルのレコードにはならない。このように、スプレッドシートの列がテー
ブルのレコードとしてデータベースプログラムに戻される場合、スプレッドシー
トの矩形セルを置換えることにより、セルの行をデータベーステーブルにおける
行の名前に構成変更することはできない。
【0010】 マイクロソフトSQLサーバの実行エンジンは、更新項目ストリーム内に(r
ow_identifier、old_values、new_values)と いう書式を持つテーブル更新の各項目を、特定の列値及び行値を置換える「削除
項目」と「挿入項目」とに分離するための厳密なオペレーション、及び「削除項
目」と「挿入項目」とを「更新項目」に置換えるための類似したオペレーション
を行う。これらのオペレーションは、ユーザー向けに用意されたものではなく、
更にユーザークエリに関与することもできない。つまり、クエリプロセスは、デ
ータベースを更新している間に実行される特定機能の効率的実行を促進するため
だけに内部的にこれらオペレーションを利用しているに過ぎない。
【0011】 このように、特に関係型データベースに対し、観点を迅速且つ効率的に変更す
る機能を付与することにより、データベース技術は飛躍的に拡充される可能性が
ある。更に、変更即ち置換えのオペレーションにおいて、その意味及び構文が通
常の拡張としてのSQL等のクエリ言語にうまく組込まれ、従来の構造化された
データベースクエリ・プロセッサや他のサーチエンジンでも、複雑或いは特異な
機能を必要とせず、最適化され実行することができるようにするというニーズも
存在する。
【0012】
【課題を解決するための手段】
(発明の要約) 本発明は、テーブルのデータ項目に異なる観点を設定するために、関係型デー
タベースに定義されているテーブルの列(レコード)と行(フィールド)とを置
換える「ピボット」オペレーションを提供する。本オペレーションは、入力テー
ブルとピボット仕様とを受取り、出力テーブルを作り出す。また、本オペレーシ
ョンは、従来のデータベースクエリプロセス、サーチエンジン、及びサーバに簡
単に組込まれるような方法によりインターフェース言語構成内で行われる。更に
、本オペレーションは、フィールドそれら自身の名前として1つ又はそれ以上の 指定されたテーブルの行の値を使用して、特定テーブルレコードのフィールド内
のデータを、異なるレコードの同じフィールド内に置換える。これ以外の行のデ
ータは、ピボット化されたテーブルのデータ値によりグループ化される。
【0013】 最終的な結果が元の観点を持つような場合においても、データベーステーブル
において他の観点から他の関係オペレーションを実行する方がより簡単な場合が
ある。従って、本発明は、ピボット機能の逆機能としての「非ピボット」オペレ
ーションも提供する。また、記憶されたテーブル即ち中間的結果を非ピボット化
することが望ましい場合もある。
【0014】 本オペレーションは、これらオペレーションをデータベースクエリに組込む簡
易で直感的な方法に加えて、クエリの書込みを簡素化するとともに、よりエラー
の起こりにくいものとする。例えば、本オペレーションは、テーブルをこれらオ
ペレーションに結び付ける必要性を減らす若しくは皆無とする。本オペレーショ
ンを行う方法によれば、簡単で有効な構文拡張と明確に定義された意味とを持っ
た状態で、深層にネスティングされた複数のオペレーションを行うことが可能と
なり、良く知られているプログラム言語例が用いられる。クエリにおける方法論
としてテキストの使用を可能とすることにより、幅広いSQL言語をより有効且
つ簡単に使用することができる。更に、このような形で使用することができる関
係代数式のセットを非手続き型のクエリ式に拡張する方法は、「sample」
、「top」、「rank」等の他のオペレーションにも適用することができる
【0015】 本発明によるピボット及び非ピボットオペレーションは、特に関係型データベ
ースを含む各種データ操作ソフトウェアやシステムアーキテクチャと本質的に互
換性を持っている。これらオペレーションは、言語レベル(例えば、SQLや他
のクエリ言語に対する直感的拡張を用いることによる)、及び処理レベル(例え
ば、クエリ最適化やクエリ実行)のいずれにおいても上記したシステムに組込む
ことができる。
【0016】 複数のデータソースがそれぞれ異なる形、つまり異なる列/行の比を有する場 合、複数のデータベースから単一のデータウェアハウス・データベースにデータ
を組込むと、「インピーダンス不適合」の問題に直面することが多い。定義付け
を主な要因として、このようなデータベースは、相当大規模なものとなる可能性
がある。このようなデータを正規化するか否かは、状況次第である。つまり、ピ
ボット化されたフォーム即ち観点にデータを記憶することは、1つのデータ構成
にとって最適−つまり、まさに必要−であるかもしれないが、他のデータ構成は
、非ピボットフォームを選択即ち必要とするかもしれない。従って、ピボット及
び非ピボットオペレーションを付加することは、異なるソースからのデータ、特
に多量のデータの組合せにとって大きなメリットとなる。
【0017】 また、本発明によって提供される新しいオペレーションにより、低レベルのD
BMS処理は、例えシステムソースが限られた状態にあるにしてもその効率が高
められる。この新オペレーションの拡張可能な構文及び明確な意味により、特に
より効率的な実行のためにクエリを書換える場合において、複雑なクエリの自動
的な生成と最適化が促進される。これにより、索引の更新処理、完全性の保守管
理等の純粋に内部的なDBMS機能も恩恵を受ける。また、「IN」、「OR」
、及び「UNION」等のクエリを含むSQLクエリの処理を改善することがで
きる。クエリによる「GROUP」用に既に使用されている多くの最適化技術は
、ピボットや非ピボットクエリを処理するために通常どおり使用することができ
る。 これらクエリのための並列処理技術を含む従来の実行アルゴリズムは、選
別されておらず且つ区分化されているテーブルや結果を含むピボット化されたテ
ーブル即ちクエリ結果に適用される。
【0018】 本発明の他の特徴や利点及び本発明の範囲内にある変形例は、以下の詳細な説
明により当業者に示されるであろう。
【0019】
【発明の実施の形態】
(発明を実施するための最良の形態) 模範的な動作環境 データベース管理システムは、独立型パーソナル・コンピュータ(personal c
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を
図示したものである。
【0020】 図1A及び以下の検討は、パーソナル・コンピュータ120の簡潔な、一般的
な説明を提供することを意図する。要求はされないが、本発明は、例えばプログ
ラム・モジュール(program module)等の、パーソナル・コンピュータで実行さ
れるコンピュータ実行可能型命令の一般的な文脈で説明されるであろう。一般的
に、プログラム・モジュールは、特定のタスクを実行し又は特定の抽象データ型
を実行するルーチン(routine)、プログラム、オブジェクト、コンポーネント 、データ構造等を含む。さらに当業者は、本発明が、ハンドヘルド(hand-held )機器、マルチプロセッサ・システム、マイクロ・プロセッサ−ベース又はプロ
グラム可能民生用電子機器、ネットワークPC、ミニコンピュータ、メインフレ
ーム・コンピュータ等を含む、他のコンピュータ・システム構成で実行されても
よいことを評価するであろう。本発明はまた、タスクが、通信ネットワークを通
してリンクされた分散型理装置によって実行される、分散型計算環境において実
行されてもよい。分散型計算環境において、プログラム・モジュールは、ローカ
ル及び遠隔両方の記憶装置に配置されてもよい。
【0021】 図2は、図2に記載のシステム100において動作することができる一般的な
従来のクライアント/サーバ・データベース管理システム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への照会を表示してもよい。
【0022】 サーバ130の中で、例えばマイクロソフトSQLサーバ(Microsoft SQL Se
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言語の機能のほとんどを、さらにより高い柔軟性及びプログラム可能
性を供給するための拡張機能を供給する。
【0023】 図3は、前記クライアント・アプリケーション210のいずれかから転送され
た照会を処理するための、図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)の他の詳
細は、照会それ自身によっては定義されない。
【0024】 検索エンジン241は照会を受け取ると、段階310に記載のとおり、前記照
会を内部又はトークン化された(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ページでは、データベース照会最適化プログラムの
構造がより詳細に議論された。
【0025】 前記段階330の出力は、前記照会に回答するための照会評価方式(又は単に
「方式」)である。段階340はこの方式を、通常は従来の関数ツリーとして表
示される、手続き的形式にコンパイルする。段階350は、データベース・オブ
ジェクト(database objects)に対する方式を実行するための、単純なツリー走
査アルゴリズム(tree-traversal algorithm)をランさせてもよい。前記段階3
50の出力は、前記照会のソースに戻される出力テーブルの形式の、前記照会の
結果である。ここに記載された一つ以外の検索エンジンは、個別の段階300を
結合し又は分割してもよく、又は段階を省略し又は追加してもよい。他の調査論
文、G.グレーフ「大規模データベースのための照会評価技術」ACMコンピュ
ーティング・サーベイ25,2(1993年6月),73ページは、参照のため
にここに採用されており、照会の実行の問題を扱い、及び追加の説明及び議論を
供給する数多くの参照を引用している。また、最新の検索エンジンの段階は、新
しい構文、新しい検索機能、最適化知識及び実行技術を備えるための容易な拡張
性のために特定的に設計されている。
【0026】 ピボット及び非ピボット・オペレーション 図4は、本発明に従ったピボット・オペレーションの構造を示す。このオペレ
ーションは、関係代数のレベルでのSQLオペレーションの階層に適合する。関
係データベース・システム及びインターフェースを設計する人は、照会処理を3
つのレベルに分割する。関係の数学的理論は、この種類のデータベースに対する
概念的フレームワークを供給するので、第一及び第二のレベルはしばしば、関係
論理及び関係代数と称される。
【0027】 関係論理は、あらゆる微積分と同様に、結果を得るためのあらゆるオペレーシ
ョン、手続き又は他の方法に名前を付けることなく、所望の結果の高いレベルで
の説明又は仕様を扱う。すなわち、それは単にデータベースにおける現存の関係
について、所望の結果の関係(テーブル)の定義を表現する。例えばSELEC
T 従業員名,部署名 FROM 従業員,部署 WHERE 従業員.dep
t_id=部署.dept_idという照会は、結果関係の典型的なメンバ及び
前記結果メンバの定義属性を表す修飾に関する一つ以上の入力テーブルに関して
、出力テーブルの属性及び制約を記述する。関係論理は、データベース、テーブ
ル(「関係」)、及び照会の正式で、正確な理解のための根拠を供給し、及び現
在はANSI/ISO標準であるデータベース言語SQLの検索コンポーネント
における商業的実現を見た。SQLがデータ管理製品で果たす重要な役割がある
とすると、現実世界のためにデータベース機能を拡張することは、追加されたあ
らゆる機能が、SQL言語の構文的及び意味的に簡潔な拡張になることを要求す
る。
【0028】 関係代数は、よりオペレーション指向(ではあるが同等)の関係論理である。
関係代数におけるオペレーション又は関数は、一つ以上の入力テーブルを使用し
、及び規則にしたがって出力テーブルを生成する。例えば、JOIN[従業員.
dept_id=部署.dept_id](従業員、部署)という関係オペレー
ションは、両方のテーブルにおいてdept_idと名づけられた共通のカラム
又はフィールドに沿って、従業員及び部署と名づけられたテーブルを結合する。
(これは、加法等のオペレーションに類似しており、例えば、「4+5」という
オペレーションが「9」を生成するように、2つの数を使用し、第三の数を生成
する。)関係代数の重要な特性は:(1)オペレーションは、同じ種類のオブジ
ェクト、すなわち関係式を使用し及び生成する;(2)オペレーションは、任意
で複雑な構造に入れ子されることができる;及び(3)新しいオペレーションが
追加されることができる、ということである。関係代数において、入力オブジェ
クトは、入力を有するだけではなく、追加の情報を表すタグを備えていてもよい
。すぐ上述の例においては、joinというオペレーションは、2つの関係代数
式、すなわち結合されるべき2つのテーブル(従業員、部署)を特定するだけで
なく、:各テーブルにおける特定のカラムの等しい値[従業員.dept_id
=部署.dept_id]に沿って、それらがどのように結合されるべきかを特
定する「結合述語」を指定する。
【0029】 いくつかの大変有用な照会オペレーションは、関係論理レベルで表現すること
は困難であるが、それらは簡単に及び簡潔に関係代数レベルに積分することがで
きる。例えば、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)及び関係論理レベルで
の他の非手続き的仕様を有する照会の最適化に関与する。
【0030】 照会実行方式は、第三の及び最低レベルの照会処理を構成する。関係代数オペ
レーションの入れ子は、実行の順番を示すかもしれないが、中間結果を生成する
ための特定の命令のアルゴリズム又はセットは、より高いレベルよりもむしろ、
実行方式のレベルで発生する。例えば、関係JOINオペレーションを実行する
ための3つの基本的方法:入れ子ループ(loop)、マージ結合及びハッシュ結合
がある;各方法は、大量の変形を有する。実行方式は、そのような選択肢からの
選択を明確に示し、及び図3に記載のブロック340において、照会処理の最低
レベルで公式化される。
【0031】 関係照会処理は、大変正確に及び確定的構造的フレームワーク内で定義される
ので、すべての3つのレベル:言語拡張、関係代数オペレーション、及び実行方
式で、あらゆる新しい機能を定義することが重要である。本発明は、ピボット及
び非ピボット機能を、言語への拡張として、SQL照会において明確に関与する
新しい関係代数オペレーションとして供給してもよい。
【0032】 有効な照会式である第一の標準的な形式での入力テーブル−式のための、ピボ
ット・オペレーションの正式な定義は:テーブル.PIVOT(<値_カラム>
FOR<ピボット_カラム> IN (<ピボット_リスト>))である;出力
のピボットされたテーブルはまた、有効な第一の標準的形式のテーブルである。
最も外側の括弧の間のテキストは、ピボット・オペレーションの仕様を構成する
。ピボット仕様における最初の2つのカラムは、ピボット・オペレーションの入
力テーブルにおけるカラムでなければならない。これらのカラムは、ピボット・
オペレーションの出力テーブルには現れない。その代わり、ピボット仕様の中の
ピボット・リストにおける各値は、ピボット・オペレーションの出力テーブルに
おける新しいカラムを定義する。入力テーブルにおいては、ピボット・リストに
おけるエレメントは、ピボット・カラムにおける値として現れる。値カラムにお
ける対応する値は、出力テーブルでの新しいカラムにおける値になる。「分類カ
ラム」と称される、ピボット仕様に含まれない入力テーブルにおけるすべてのカ
ラムは、出力テーブルに引き継がれる。
【0033】 図4に記載の例400では、仕様420に従って入力テーブル410をピボッ
トすることで、出力テーブル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は、四半期による季節的追跡を許可する。(関係テーブルにおける前記列は、
名前を有しないし、特定の順番もないことがここで思い出されるべきである。カ
ラムは名前を有し、分類される−すなわち、それらは、その名前が照会において
現れる順番で表示される。)ピボット・オペレーションは、比較的多くの列と及
び比較的少ないカラムを有する入力テーブルを、より少ない列とより多いカラム
を有する結果物としてのテーブルに変換する。
【0034】 出力テーブルにおける前記ピボットされたカラムは、入力テーブルの値カラム
におけるデータと同じデータの種類(numeric型、varchar型等)
を有する。値カラム、ピボット・カラム及びピボットされたカラムは、計算され
た式よりもむしろ、簡潔なデータを具備する。両方のテーブルにおけるカラムの
順番は、ANSI SQLにおけるように重要ではない;カラムは、名前によっ
てのみ参照されることができ、位置によってはできない。テーブル430は、地
域及び年の分類カラムの値によって分類されるように図示されているが、ピボッ
ト・オペレーションは、前記列の特定の分類又は順番つけは含まない。
【0035】 上述のとおり、入力テーブルにおける列は、その値がピボット・リストに現れ
なければ、出力には現れない。入力−テーブル列は、同等の定義に関して、あら
ゆる分類カラムの等しい値によって分類される。各グループの中では、入力テー
ブルの各列は、互いにピボット・カラムにおいて特有の値を有する。各グループ
は、一つの出力列という結果になる。対応する入力列を有しない出力カラムに対
しては、値は、SQLで定義された特別な値、NULLである。
【0036】 図5は、ピボット・オペレーションのための図2に記載の検索エンジン241
の、図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に前記出力テーブルを記
憶する。
【0037】 非ピボット・オペレーションは、ピボット・オペレーションの逆であり、及び
<テーブル_式 | 照会_式>.UNPIVOT(<値_カラム> FOR<
ピボット_カラム> IN (<カラム_リスト>)として形式的に定義される
。前記用語の意味は、前記ピボット・オペレーションに対するものと同じである
。同じ仕様を有するピボット及び非ピボット・オペレーションを入力テーブルに
適用することで、前記入力テーブルをその本来の状態に戻す。図4に記載の例に
おいて、前記非ピボット・オペレーションをピボットされたテーブル430に適
用することで、テーブル410を元に戻す;売上412及び四半期411と名づ
けられた前記2つのカラムは、カラム431乃至434に取って代わる。
【0038】 入力テーブルにおける各列に対して、前記非ピボット・オペレーションは通常
、一つのピボットされたカラムに対して、出力テーブルの一つの列を生成する。
(しかしながら、ピボットされたカラムにおけるナル値は、出力列を生成しない
。)前記ピボット・リストにおけるすべてのカラムは、前記入力において同じデ
ータ種類を有していなければならず、及び前記出力の値カラムにおけるエントリ
は、この種類を有するであろう。テーブルをピボットさせないことは、その列の
数を増加させ、及びカラムの数を減少させる。また、図4は分類−カラム値によ
って分類されたテーブル410を示しているが、前記非ピボット・オペレーショ
ンは、前記出力において列の分類がないことを示す。
【0039】 図6は、非ピボット・オペレーションのための図2に記載された検索エンジン
241の、図3に記載されたモジュール300によって実行される段階のフロー
チャート600である。段階610は、前記非ピボット・オペレーション及びそ
の仕様を受け取る。非ピボットは、ピボットの逆になるように、及びピボットさ
れたテーブルを正確にそのピボットされていない形式に戻すように定義されてい
るので、非ピボットの仕様は、ピボットのためのそれに補足的ではなく、むしろ
図4に記載の440において示されたとおり、前記ピボットされたテーブルを第
一の場所に生成した仕様のそれとまったく同じ形式を有する。また、段階610
は、前記オペレーションをユーザ照会又は他のソースから受け取ってもよい。段
階620は、ピボットされるべきでない261等の前記ピボットされたテーブル
を識別し又は選択する。このテーブルは、実際に以前のオペレーションでピボッ
トされている必要はないが、通常はされているであろう;すなわち、前記ピボッ
ト・オペレーションは通常、見える角度の最初の回転を達成するために使用され
、及び非ピボットは通常、テーブルを簡潔で単純な方法で、本来のピボットされ
ていない形式に戻すためだけに使用される。段階621は、前記仕様のピボット
・リストを使用して、どのカラムが、回転され又は転置されるべきピボットされ
たカラムであるかを識別する。段階622及び623は、前記値カラム及び前記
ピボット・カラムの名前を識別する。(少なくとも、以前のピボットがこの情報
を保存しているサイド・テーブル(side table)を保持していないかぎり)前記
ピボットされたテーブル内のどこにも現れないので、これらの名前は前記仕様に
含まれる。
【0040】 段階630は、前記非ピボット・オペレーションによって生成されるべき前記
ピボット・テーブルを作成する。段階631及び632は、段階622及び62
3において供給される名前を使用して、前記ピボット・テーブルにおいてピボッ
ト及び値カラムを形成する。段階633は、前記ピボット・テーブルにおいて分
類カラムを作成し、それは、段階610において受け取られる非ピボット仕様に
含まれない前記ピボットされたテーブルのカラムの各々に対して一つである。段
階640は、前記ピボットされたテーブルからのデータ項目を、前の段階におい
て作成された前記ピボットされていないテーブルに転置する。前記ピボットされ
たカラムの名前は、異なる列においてデータ項目になり、及び前記ピボットされ
たカラムにおける前記データ項目は、本来の(ピボットされた)テーブルにおい
て、それらが存在していたピボットされたカラムの名前と同じピボット−カラム
値をそれぞれ有する列において、新しい値カラムに入る。段階650は、分類−
カラム列の等しい値によって列を分類する。段階660は、図2に記載のデータ
ベース260に離して前記テーブルを記憶する。
【0041】 前記ピボット、値及びピボットされたカラムは、単純なデータであって、計算
された値ではないので、相関変数は、ピボット及び非ピボット・オペレーション
の仕様の中では許可されない。これらの新しいオペレーションは、どの相関変数
が、前記オペレーションが適用される照会式において許可されるか、また相関関
数が許可されるか否かについてまったく影響を与えない。ANSI SQLが、
ピボット又は非ピボット・オペレーションが起こらない照会式のためのテーブル
及びカラム・エイリアス(alias)を定義することを許可するなら、ピボット/ 非ピボット・オペレーションを含む前記照会式に対する前記エイリアスを定義す
ることは容認されるが、前記オペレーションを除く前記照会式に対しては容認さ
れない。例えば、テーブル1 AS テーブル2(col1,col2)が許可
される場合、テーブル1.PIVOT(...)AS テーブル2(col1,
col2,...)は容認されるが、テーブル1 AS テーブル2(col1
,col2).PIVOTは容認されない。
【0042】 前記ピボット及び非ピボット・オペレーションは、図3に記載のブロック33
0において、あらゆる数の従来の最適化技術を使用してもよい。これらのオペレ
ーションは関係代数レベルの一部であるので、代数照会最適化プログラムは、最
適化技術を実現するために最も適切な伝達手段であるかもしれない。他の最適化
フレームワークも同様に適用可能であるかもしれない。
【0043】 いくつかの追加の最適化技術は、新しいオペレーションの特定の属性を使用し
てもよい。明らかに、ピボット及び非ピボット・オペレーションの隣り合う対は
、互いに相殺してもよいし、照会から削除されてもよい。最適化プログラムは、
前記ピボットされた出力テーブルにおける前記分類カラムが、機能的に前記ピボ
ット及び値カラムを決定することを認識し、それゆえにその結果のテーブルの関
係キーを形成する。(これは、従来のGROUP BYオペレーションにおける
前記分類カラムに大変似ている。)非ピボット出力テーブルにおいては、前記分
類カラムは前記ピボット・カラムとともに、機能的に前記値カラムを決定する。
これらの属性は、代替的な実行方式を比較するための選択性の評価及び照会−費
用計算のための出力列の数を評価することに関して助けとなることができる。そ
れらはまた、照会の前記実行を単純化する書き換え規則を適用するための条件を
生成する場合に便利であるかもしれない。テーブルが縦に区切られている場合、
完全な列及びそれに引き続く非ピボットを再アセンブルするためのオペレーショ
ンは、両方のオペレーションを排除して、互いを相殺してもよい。
【0044】 前記ピボット・オペレーションのSQL GROUP BY文節に対する概念
的類似性によって、前記文節を有する照会を最適化するための多くの技術及び規
則は、新しいオペレーションに対しても同様に機能することができる。典型例は
:(1)前記分類入力の大きさを低減させるため、又はより効果的な結合アルゴ
リズムを可能にするために、結合の上にピボットを引くこと;(2)前記結合入
力を低減させるため又は前記ピボットのためのより効果的な実行方式を使用する
ために、結合の下にピボットを送ること;(3)二つの隣接するピボットを併合
すること、おそらく効果的にそれらのうちの一つを排除すること;及び(4)ピ
ボットを二つの部分に分割し、そのうち一つを、結合を通って又は処理境界(pr
ocess boundary)を横切って、並行実行環境におけるローカル/グローバル集約
として送ること、を含む。通常は、−追加のカラムを計算する式を含む−前記分
類カラム及び射影オペレーション(projection operation)上の照会の述部は、
分類オペレーションと同じ方法で、ピボット/非ピボット・オペレーションを(
上又は下を)通って動くことができる。
【0045】 一定の照会述部は、ピボットの結果のテーブルに対する述部(すなわち、修飾
)として取り扱われた時に、実行するのに効果的である−また表現するのにより
簡単である−。例えば、2つのピボットされたカラムを互いに比較することは、
表現するのに簡単であり、及び実行するのに効果的である一方で、前記ピボット
入力テーブルに適用される同じ述部は、複雑で、非効率的な入れ子照会を必要と
する。それゆえに、オペレーションのピボット/選択/非ピボットの順番を含む
ための前記照会の書き換えは、前記照会を最適化するために使用されることがで
きる。例えば、図4に記載のテーブル410において、秋における売上が春にお
ける売上を超えるテーブル列を選択するための照会を検討する。ピボットされた
テーブル430は、この照会を、春及び秋のカラム431及び433の間の比較
として備えることができる一方で、本来のテーブル410は、前記比較を実行す
るために、前記テーブルがそれ自身に結合することを要求する。図4に記載のテ
ーブルを使用して、ピボット及び非ピボット・オペレーションを(従来の複数行
の形式で)含む大きな照会は: (SELECT * FROM Narror.PIVOT(売上 FOR 四半期 IN(春、夏、秋、冬)
) WHERE 秋_売上>春_売上) .UNPIVOT (売上 FOR 四半期 IN(春、夏、秋、冬)) でもよい。
【0046】 図3に記載のブロック340に有用な実行方式は、当業者によって、分類オペ
レーションのための従来の方式から引き出すことができる。特に、ループ、索引
付け、ストリーム、分類、及びハッシングに基づいた方式は、容易に思い浮かぶ
。早期集約分類及び混成ハッシングは、有用な変形である。ピボット/非ピボッ
ト・オペレーションは、共有メモリ、分散型メモリ、共有ディスク及びクラスタ
・マシン等の並行アルゴリズムを含む、並行−実行環境に変更可能である。ロー
カル/グローバル集約はすでに、一つの可能性として述べた。
【0047】 非ピボット・オペレーションは、各入力記録に対する複数の出力記録を生成す
る単一の入力、単一の出力方式のみを必要とする。このオペレーションは、共有
メモリ、分散型メモリ、共有ディスク、及びクラスタ・マシン上で、簡単に並行
して実行することができる。
【0048】 変形及び拡張 上述の実施形態に対する多くの変形及び拡張は、単独でも互いに結合しても、
いくつかの応用に有用であるかもしれない。当然、最も明白であるのは、ドット
呼び出し分離文字(dot invocation separator)等の表記規則の置換え又は増補
、及びコンポーネントの再編成である。 前述のピボット/非ピボット・オペレーションは、ピボットされたテーブル又は
出力テーブルにおけるカラム名に制限を設ける。標準SQLにおけるカラム名は
、スペースのない文字列でなければならない。カラム値はスペースを有するかも
しれず、及びピボットは値を名に変えるので、引用された識別子及びリテラル(
literals)をカラム名として使用するための方法を、簡単に案出することができ
る。同様に、文字列以外のデータ種類を有するカラム値を、カラム名に対する印
刷可能な及び読み取り可能な表示として表示することは簡単であろう。名前の連
結等、従来の名前操作は有用であろう。例えば、ピボット・リストは、SQLの
AS等のキーワードを使用して、カラム・エイリアスを含むかもしれない。(図
4において、四半期値が季節名の代わりに「1」乃至「4」である場合、420
の仕様は、(売上 FOR 四半期 IN (1 AS “春”、2 AS “
夏”、 3 AS “秋”、 4 AS “冬”))を読み取る。)さらに、A
Sはあらゆる文脈においてピボット−結果カラムに再度名づけるために使用され
てもよく、及びユーザ定義機能は、複雑なカラム名を変換するため、又は名前を
SQL実行の特定の制約に適合させるために供給されることができる。
【0049】 意味的拡張は、単一の段階での複数のカラムのピボット及び非ピボットを含ん
でもよい。例えば、図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は、これらのオペレーションを、実行のための単一の方
式へと簡単に縮めることができる。
【0050】 前記ピボット・オペレーション(非ピボットではない)は、段階540におけ
る前記値カラムに対して、MIN、SUM、AVG、さらにCOUNT等の従来
のSQL集約又は分類機能をサポートすることができる。その場合、グループ当
たりの単一の列への制限は引き上げることができる。当然、新しいカラムの種類
は、本来のそれとは異なるかもしれない。図4に基づいた以下の例は、集約を使
用した照会を示す: (SELECT 年、四半期、売上 FROM Narrow) .PIVOT (SUM(売上) FOR 四半期 IN(春、夏、秋、冬)
この照会は、東部及び西部地域の売上を、各年に対する企業全体を表す単一の合
計へと統合する。分類機能が許可される変形においては、前記実行は、ピボット
・オペレーションが、さもなければピボットされたテーブルの異なる列における
重複一次キーを生成するであろうすべての場合に、SUM等の特定の機能の暗黙
アプリケーションを特定することができる。前記集約は情報の詳細を失うので、
分類を有するピボットは、逆にすることはできない;標準SQLで分類された出
力は、同じ理由から逆にすることができない。この拡張によって非ピボットは真
の逆として機能することができないが、実施形態は、すべての本来の値を保存す
る内部「サイド・テーブル」を加えることによって、この機能を維持する。
【0051】 他の有力な拡張は、ピボット又は非ピボット・オペレーションにおける、リテ
ラル・カラム名のリストを、SELECT照会と置き換えるための機能を加える
。より複雑な処理が、補助照会を最初にランさせ、それから前記補助照会の結果
を使用して、ピボットされたカラムのリストを結合することに関与するであろう
;すなわち、前記補助照会は、図3に記載のブロック340及び350において
、交互配置されたコンパイル及び実行を要求する。前記実行は、ピボットされる
べき照会式を計算することを、結果に対する照会をランさせることと同様に要求
する。
【0052】 前記ピボット仕様は、ピボット・リストを完全に省略し、代わりにデフォルト
(default)照会を供給する。例えば、照会420からIN (春、夏、秋、冬 )文節を省略することで、SELECT DISTINCT 四半期 FROM
Narrowというデフォルト照会を代入することができる。これによって、
照会420は入力テーブルを2回参照することになるので、C++における「t
his」という名前に類似して、オペレーションの入力テーブルに対して専用の
名前を導入すると便利である。オペレーション420は次のようになる: Narrow.PIVOT (売上 FOR SELECT DISTINC
T 四半期 FROM INPUT)。
【0053】 ピボット・リストを要求する代わりに、前記非ピボット・オペレーションは、
オペレーションの入力においてピボットされたカラムを除くすべての仕様を許可
するであろう。上で修正された例400において、逆オペレーションは図4に記
載の440のように: Wide.UNPIVOT (売上 FOR 四半期 IN(春、夏、秋、冬
)) か又は図4に記載の460のように: Wide.UNPIVOT (売上 OVER (地域、年)) と特定されることができる。 この文脈でOVERをサポートすることは、前記入力テーブルから前記一組のピ
ボットされたカラムを決定することを必要とし、及び上述のとおり、補助照会を
処理するための能力を要求する。IN及びOVER文節は結合されることができ
、一つ以上のカラムが分類カラムと同様にピボット・カラムになることを許可す
る。これが本出願の視点から意味をなすであろう状況は、各々の次の四半期のた
めに、第一の四半期以来の売上成長率の計算を許可するために、各出力列におけ
る春の売上を含む。
【0054】 いくつかのテーブルでは、一組のカラムは、いくぶん直交又は独立になること
ができる;例えば、「都市」及び「月」と名づけられたカラムは、すべての月に
対するすべての都市に対して、テーブル・エントリを有する傾向にある。他のカ
ラムの組は、階層的である−例えば「州」、「都市」、及び「店舗」カラムを有
する「場所」テーブル等−及びそれらのデータは希薄である;すなわち、ごく小
数の都市が複数の州に現れるであろうし、及び複数の店舗を有する都市はほとん
どないであろう。後半の場合において、2つのIN文節を使用することは、ピボ
ット・オペレーションにおいて体裁を欠く構文及び意味になる。しかしながら、
単一のピボット・カラムの代わりにピボット・カラムのリストを使用することで
、この問題は改善される。「列値」のANSI SQLの概念は、この場合に適
切である。常にではないが、通常は、リテラル・カラム名のリストよりも、照会
を前記ピボット・リストとして特定する方が、より便利である。典型的な形式は
、Locations.PIVOT (売上量 FOR (都市、店舗) IN
(SELECT 都市、店舗 FROM アウトレット(outlets)))であ ろう。
【0055】 前記ピボット及び非ピボット・オペレーションはまた、図3に記載の照会プロ
セッサ300の内部オペレーションにおいても、便利であろう。さらに、参照一
貫性の制約は、削除されたキー候補及び新しい外部キーのためだけに強化される
必要がある;ピボット/非ピボット又は類似の回転を使用することは、同じキー
値に関連する削除及び挿入項目を縮めることができ、及び潜在的に一貫性検査を
冗長であるとして排除する。さらに、大変に大きいIN文節を有する従来の照会
においては、検索エンジンによって暗示的に呼び出された内部非ピボット・オペ
レーションは、多くのリテラル又はパラメータを含む単一の大変複雑な列を、カ
ラムとして、ループ、索引、統合及びハッシュ結合等の従来の結合方法、及びそ
れらの並行処理変形を使用して、データベース・テーブルに対抗することができ
る一組の列にマッピングすることができる。ピボット/非ピボット・オペレーシ
ョンの類似の内部引用は、IN文節にしばしば同等である、OR及びUNION
照会において有用であるかもしれない。
【0056】 最後に、前記ピボット及び非ピボット・オペレーションは、それらの拡張、最
適化及び実行方式とともに、関係データベース・システムの分野外のデータベー
ス管理システム及びデータ−操作ソフトウェアに含むことができる。例えば、代
数を基礎とした統計的−分析製品又は独立型分類パッケージは、これらの新しい
オペレーションが、外部及び内部の両方で有用であることがわかるかもしれない
。SQL言語に関連して説明されたが、前記オペレーションは必ずしもSQLに
統合され又は実際にホスト言語に統合される必要はない。
【図面の簡単な説明】
【図1】 本発明に関するコンピュータネットワーク環境を示すブロック図である。
【図2】 本発明を組込んだデータベース管理システムを示す図である。
【図3】 図2のDBMSによって実行される機能のフローチャートである。
【図4】 本発明によるピボット及び非ピボットのオペレーションの例を示す。
【図5】 本発明によるピボットオペレーションのフローチャートである。
【図6】 非ピボットオペレーションのフローチャートである。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年3月27日(2000.3.27)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0008
【補正方法】変更
【補正内容】
【0008】 一部のスプレッドシート(ワークシート)のソフトウェアには、ユーザー選択
の矩形セルデータの置換えを、マトリクス代数「転置」オペレーションにおいて
行列要素αijをαjiに移動させるのと同じ方法でユーザーが行えるものがある。
例えば、マイクロソフト・エクセルのピボットテーブルでは、ユーザーは、矩形
セルを選択してテンポラリー・クリップボードにコピーし、オプションメニュー
から「移行」を選択した後に目標セルを指して「特殊な貼り付け」オペレーショ
ンを行う。更に、ユーザーは、マイクロソフト・オフイス等の互換性のあるアプ
リケーションプログラム一式を使って、マイクロソフト・アクセスのデータベー
ス構成要素であるデータベーステーブルからデータを選択し、そのデータを、矩
形スプレッドシート・セルのようなエクセル構成要素に対し単独オブジェクトと
して移してそのセルを置換え、次に、そのセルを置換えられたフォーマットの状
態のレコード集合体としてアクセスデータベースに転送することもできる。スプ
レッドシートにおけるピボットオペレーションについては、J.C.Nessi
terの(ウインドウズのためのエクセル5の利用法、Que社、1995年)
及び B.Dosmariasの「信頼性使用のためのマイクロソフト・エクセ
ル・ピボットテーブルの利用法」IEEE34th春季信頼性シンポジューム(
1996年月18日)79−81頁に記載されている。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0009
【補正方法】変更
【補正内容】
【0009】 この方法によるデータ項目の置換えは、下手なやり方でもあり機能的にも制限
されたものである。小規模のデータベースであっても、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頁に言及されているように、多次元「立方体」データ
に関する回転オペレーションを実行することができる。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0037
【補正方法】変更
【補正内容】
【0037】 非ピボット・オペレーションは、ピボット・オペレーションの逆であり、及び
<テーブル_式 | 照会_式>.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頁に
述べられているグループ化/分割や合併/決裂の対のような相互の反転として考え
ることができる。ピボット/非ピボットも同様に相互の反転である。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,UG,ZW),E A(AM,AZ,BY,KG,KZ,MD,RU,TJ ,TM),AE,AL,AM,AT,AU,AZ,BA ,BB,BG,BR,BY,CA,CH,CN,CU, CZ,DE,DK,EE,ES,FI,GB,GD,G E,GH,GM,HR,HU,ID,IL,IN,IS ,JP,KE,KG,KP,KR,KZ,LC,LK, LR,LS,LT,LU,LV,MD,MG,MK,M N,MW,MX,NO,NZ,PL,PT,RO,RU ,SD,SE,SG,SI,SK,SL,TJ,TM, TR,TT,UA,UG,UZ,VN,YU,ZA,Z W (72)発明者 アルガー ジェフ アメリカ合衆国 ワシントン州 98053 レッドモンド ノースイースト フィフテ ィサード プレイス 24066 Fターム(参考) 5B075 NK54 NR03 NR20 QR00 QT06 5B082 GA03 GA08 【要約の続き】 び出されてもよい。

Claims (35)

    【特許請求の範囲】
  1. 【請求項1】 デジタルコンピュータ上の関係型データベース管理システム
    内に出力テーブルを形成するために、入力テーブルからデータをピボット化する
    方法であって、 前記入力テーブルを定義する段階、 前記入力テーブルのピボット行を定義する段階、 前記ピボット行からデータ項目のピボットリストを定義する段階、 前記入力テーブルの値行を定義する段階、及び 前記出力テーブルを構成するために、前記ピボットリスト内のデータ項目に基
    づき、前記ピボット行について前記入力テーブルを置換える段階を含むことを特
    徴とする方法。
  2. 【請求項2】 前記入力テーブルの少なくとも1つのグループ化する行を定
    義する段階、及び 前記1つ又はそれ以上のグループ化する行内のデータ項目の均等値に従って、
    前記出力テーブルの列をグループ化する段階を更に含むことを特徴とする請求項
    1に記載の方法。
  3. 【請求項3】 前記置換える段階は、複数の遠隔の顧客場所に位置するユー
    ザーに応答する中央サーバにおいて生じ、前記定義する段階は、前記ユーザーの
    1人によって起こされることを特徴とする請求項1に記載の方法。
  4. 【請求項4】 前記定義する段階の各々は、前記ピボット方法を明示的オペ
    レーションとして含まないユーザーからのクエリを最適化する段階の一部として
    、前記中央サーバにおけるサーチエンジンに起こることを特徴とする請求項1に
    記載の方法。
  5. 【請求項5】 複数の列及び行として編成されたデータ値のアレイを各々有
    し、前記データ値から切離されるとともに前記行の各々に関連付けられた複数の
    行の名前を各々有する、電子データプロセッサ内に記憶された関係型データベー
    ス入力テーブル及び出力テーブルにおいて、前記入力テーブルから出力テーブル
    にデータを構成変更する方法において、 ピボット行として、前記入力テーブルの第1行の名前を選択する段階、 値行として、前記入力テーブルの第2行の名前を選択する段階、 前記データプロセッサ内の入力テーブルにアクセスする段階、 前記ピボット行内のデータ値のセットを、前記出力テーブル内の複数のピボッ
    ト化された行に関連付けられた各々の行名に変換する段階、及び 前記ピボット行内のデータ値セットの特定の1つと同じ前記入力テーブルの列 に位置する前記値行内の各データ値について、前記特定の1つのデータ値を、前
    記出力テーブルのピボット化された行の特定の1つに置く段階を含み、前記特定 の1つのピボット化された行は、前記ピボット行内の前記特定の1つのデータ値
    に対応する名前を持ち、更に 前記データプロセッサ内に前記出力テーブルを記憶する段階を含むことを特徴
    とする方法。
  6. 【請求項6】 ピボットリストとして、前記ピボット行内のデータ値セット
    の特定の1つを選択する段階を更に含み、前記変換する段階は、前記ピボットリ
    スト内のこれらのデータ値のみを前記行名に変換することを特徴とする請求項5
    に記載の方法。
  7. 【請求項7】 前記変換する段階は、前記ピボット行内のNULLデータ値
    を有する前記入力テーブル内の列のいずれも、列の名前に変換しないことを特徴
    とする請求項6に記載の方法。
  8. 【請求項8】 前記入力テーブルは、前記ピボット行及び値行以外の他の行
    を含み、前記他の行の少なくとも一部の行内のデータ項目の均等値により、前記
    出力テーブルの列をグループ化する段階を更に含むことを特徴とする請求項5に
    記載の方法。
  9. 【請求項9】 前記グループ化する段階は、前記他の行の全ての行内の前記
    データ項目の均等値により、前記出力テーブルの列をグループ化することを特徴
    とする請求項8に記載の方法。
  10. 【請求項10】 デジタルコンピュータ上の関係型データベース管理システ
    ム内に非ピボットテーブルを形成するために、ピボットテーブルからのデータを
    非ピボット化する方法であって、 前記ピボット化テーブルを定義する段階、 前記非ピボット化テーブルに関するピボット行名を定義する段階、 前記ピボット化テーブルの行のピボットリストを定義する段階、 前記非ピボット化テーブルに関する値行名を定義する段階、 前記非ピボット化テーブル内にピボット行及び値行を構成する段階、及び 前記非ピボット化テーブルのピボット行内のデータ項目として前記ピボットリ
    スト行の名前を置くとともに、前記ピボットリスト行内のデータ項目を前記非ピ
    ボット化テーブルの値行の列に置くために、前記ピボットリスト内の行について
    前記ピボット化テーブルを置換える段階を含むことを特徴とする方法。
  11. 【請求項11】 前記ピボット化テーブルの少なくとも1つのグループ化す
    る行を定義する段階、及び 前記1つ又はそれ以上のグループ化する行内のデータ項目の均等値に従って、
    前記非ピボット化テーブルの列をグループ化する段階を更に含むことを特徴とす
    る請求項10に記載の方法。
  12. 【請求項12】 前記置換える段階は、複数の遠隔の顧客場所に位置するユ
    ーザーに応答する中央サーバにおいて生じ、前記定義する段階は、前記ユーザー
    の1人によって起こされることを特徴とする請求項10に記載の方法。
  13. 【請求項13】 前記定義する段階は、前記ピボット方法を明示的オペレー
    ションとして含まないユーザーからのクエリを最適化する段階の一部として、前
    記中央サーバにおけるサーチエンジンに起こることを特徴とする請求項10に記
    載の方法。
  14. 【請求項14】 複数の列及び行として編成されたデータ値のアレイを各々
    有し、且つ前記データ値から切離されるとともに前記行の各々に関連付けられた
    複数の行名を各々有する、電子データプロセッサ内に記憶された関係型データベ
    ースピボット化テーブル及び非ピボット化テーブルにおいて、前記ピボット化テ
    ーブルから非ピボット化テーブルにデータを構成変更する方法において、 ピボット行の名前として、名前を選択する段階、 ピボットリストとして、前記ピボット化テーブル内の前記行の複数の名前を選
    択する段階、 値行の前記名前として、名前を選択する段階、 前記データプロセッサ内のピボット化テーブルにアクセスする段階、 前記非ピボット化テーブル内に、前記ピボット行名として選択された名前を有
    するピボット行を生成するする段階、 前記ピボットリスト内の行名を前記ピボット行内のデータ値に変換する段階、 前記値行に関して選択された名前を有する前記非ピボット化テーブル内の値行
    を生成する段階、 前記ピボットリスト内の前記ピボット化テーブル行の各特定行内の各特定デー
    タ値について、前記特定データ値を、前記ピボット化テーブルの前記特定行に対
    応する前記ピボット行内のデータ値も含む列内の前記非ピボット化テーブルの値
    行に置く段階、及び 前記データプロセッサ内に前記非ピボット化テーブルを記憶する段階を含むこ
    とを特徴とする方法。
  15. 【請求項15】 前記ピボット化テーブルは、前記ピボットリスト以外の他
    の行を含み、前記他の行の少なくとも一部の行内のデータ項目の均等値により、
    前記非ピボット化テーブルの列をグループ化する段階を更に含むことを特徴とす
    る請求項14に記載の方法。
  16. 【請求項16】 前記グループ化する段階は、前記他の行の全ての行内の前
    記データ項目の均等値により、前記非ピボット化テーブルの列をグループ化する
    ことを特徴とする請求項15に記載の方法。
  17. 【請求項17】 多数の顧客と、 関係型データベース内の入力テーブル、 前記入力テーブル内のピボット行(411)の名前と前記入力テーブル内の値
    行の名前、及び前記ピボット行内のデータ値のピボットリストを指定するピボッ
    トオペレーションを含む前記顧客の1人からのクエリを構文解析し最適化し実行 するためのサーチエンジンとを含み、前記サーチエンジンは、ピボット化出力テ
    ーブルを構成するために、前記ピボットリスト内のデータ項目に基づいて、前記
    ピボット行について前記入力テーブルの値行内のデータ項目を置換えることを特
    徴とする関係型データベース。
  18. 【請求項18】 前記サーチエンジンは、中央サーバにあり、更に前記顧客
    は、前記サーバから離れた複数の場所に物理的に位置することを特徴とする請求
    項17に記載のシステム。
  19. 【請求項19】 前記最適化モジュールは、前記ピボットオペレーションを
    含むクエリを最適化することを特徴とする請求項17に記載のシステム。
  20. 【請求項20】 前記1人の顧客からのクエリは、多数のピボット化行につ いて前記ピボット化テーブル内のデータ項目を置換えることによって、前記ピボ
    ット化テーブルにおける前記ピボットオペレーションの効力を反転するために非
    ピボットテーブルを指定する非ピボットオペレーションを含むことを特徴とする
    請求項17に記載のシステム。
  21. 【請求項21】 前記ピボット化行内のデータ項目は、前記非ピボット化テ
    ーブルの値行に置かれることを特徴とする請求項20に記載のシステム。
  22. 【請求項22】 入力テーブル、ピボット行、及び値行を含むピボット仕様
    に従って列及び行内に置かれたデータ値を有する関係型データベース内のピボッ
    ト化テーブルであって、 前記ピボット行内のデータ値の識別可能な1つのデータ値に対応する行名を各
    々有する複数のピボット化行、及び 前記値行からの複数のデータ値を各々含む複数の列を含み、前記複数の列の1
    つの列内のデータ項目の各々は、データ値として前記1つのピボット化行の名前
    を含む前記入力テーブルの列に対応する名前を持つ前記ピボット化行の1つの行
    内に位置していることを特徴とするテーブル。
  23. 【請求項23】 前記仕様は、ピボット値のピボットリストを更に含み、前
    記出力テーブルのピボット化行は、前記ピボットリストに載せられた前記ピボッ
    ト行内のデータ値に対応する行から成ることを特徴とする請求項22に記載のテ
    ーブル。
  24. 【請求項24】 前記入力テーブルは、ピボット行及び値行以外に、他の行
    を含み、前記出力テーブルは、前記入力テーブルの他の行からのデータ値を含む
    グループ行を含むことを特徴とする請求項22に記載のテーブル。
  25. 【請求項25】 前記出力テーブルの列は、前記グループ行のデータ項目の
    均等値によりグループ化されることを特徴とする請求項24に記載のテーブル。
  26. 【請求項26】 前記入力テーブルは前記他の行を複数含み、前記複数の他
    の行は、前記出力テーブル内の切離されたグループ行を作り出すことを特徴とす
    る請求項25に記載のテーブル。
  27. 【請求項27】 前記テーブルは、記憶媒体に記憶されていることを特徴と
    する請求項22に記載のテーブル。
  28. 【請求項28】 ピボット入力テーブル、ピボット行、ピボットリスト及び
    値行を含むピボット仕様に従って列及び行内に置かれたデータ値を有する関係型
    データベース内の非ピボット化テーブルであって、 前記ピボット行に対応する名前を有するピボット行を含み、その列には前記ピ
    ボットリストに載せられたピボット化テーブル行の名前から引出されたデータ項
    目が含まれ、更に 前記仕様内の前記値行から引出された名前を有する値を含み、前記値行の各特
    定列は、前記非ピボットテーブルの同じ特定列内のデータ項目に名前があるピボ
    ット化行の1つの行内のデータ項目から引出されたデータ項目を含むことを特徴 とするテーブル。
  29. 【請求項29】 前記ピボット化テーブルは、前記ピボット化行以外に、少
    なくとも1つの他の行を含むことを特徴とする請求項28に記載のテーブル。
  30. 【請求項30】 前記非ピボットテーブルの列は、前記少なくとも1つの他
    の行の均等値によりグループ化されることを特徴とする請求項29に記載のテー
    ブル。
  31. 【請求項31】 前記テーブルは、記憶媒体に記憶されていることを特徴と
    する請求項28に記載のテーブル。
  32. 【請求項32】 入力テーブル、前記入力テーブルのピボット行、前記ピボ
    ット行からのデータ項目のピボットリスト、及び前記入力テーブルの値行を定義
    する仕様を受入れる段階、及び 出力テーブルを構成するために、前記ピボットリスト内のデータ項目に基づい
    て前記ピボット行について前記入力テーブルを置換える段階を含む各段階を、好
    適にプログラムされたコンピュータに実行させるようにするために記憶されたプ
    ログラムを有することを特徴とするデータ記憶媒体。
  33. 【請求項33】 前記プログラムされたコンピュータは、 前記入力テーブルの少なくとも1つのグループ行を定義する段階、及び 前記少なくとも1つのグループ行内のデータ項目の均等値に従って、前記出力
    テーブルの列をグループ化する更なる段階を実行することを特徴とする請求項3
    2に記載のデータ記憶媒体。
  34. 【請求項34】 ピボット化テーブル、前記ピボット化テーブルからの行の
    ピボットリスト、ピボット行名、及び非ピボット化テーブルに関する値行名を定
    義する段階、 前記非ピボットテーブル内にピボット行及び値行を構成する段階、及び 前記非ピボット化テーブルの前記ピボット行内のデータ値として前記ピボット
    リスト行の名前を置くとともに、前記ピボットリスト行内のデータ項目を前記非
    ピボット化テーブルの値行の列に置くために、前記ピボットリスト内の行につい
    て前記ピボット化テーブルを置換える段階を含む各段階を、好適にプログラムさ
    れたコンピュータに実行させるようにするために記憶されたプログラムを有する
    ことを特徴とするデータ記憶媒体。
  35. 【請求項35】 前記プログラムされたコンピュータは、 前記ピボット化テーブルの少なくとも1つのグループ行を定義する段階、及び 前記少なくとも1つのグループ行内のデータ項目の均等値に従って、前記非ピ
    ボット化テーブルの列をグループ化する更なる段階を実行することを特徴とする
    請求項34に記載のデータ記憶媒体。
JP2000537159A 1998-03-16 1999-03-16 関係型データベース・テーブルにおける構成変更方法 Expired - Fee Related JP4504560B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009508227A (ja) * 2005-09-09 2009-02-26 マイクロソフト コーポレーション ブラウズモードデザイナ

Families Citing this family (146)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137967A (ja) * 1994-11-07 1996-05-31 Hitachi Ltd 表デ−タ処理方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08137967A (ja) * 1994-11-07 1996-05-31 Hitachi Ltd 表デ−タ処理方法

Cited By (1)

* Cited by examiner, † Cited by third party
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