JP2002510088A - 予め演算されたビューの処理 - Google Patents

予め演算されたビューの処理

Info

Publication number
JP2002510088A
JP2002510088A JP2000541606A JP2000541606A JP2002510088A JP 2002510088 A JP2002510088 A JP 2002510088A JP 2000541606 A JP2000541606 A JP 2000541606A JP 2000541606 A JP2000541606 A JP 2000541606A JP 2002510088 A JP2002510088 A JP 2002510088A
Authority
JP
Japan
Prior art keywords
query
view
database
views
user
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.)
Ceased
Application number
JP2000541606A
Other languages
English (en)
Inventor
ラーサ, エス. コルビー,
リチャード, エル. コール,
エドワード, ピー. ハスラム,
ナシ ジャザイェリ,
ギャルト ジョンソン,
ウィリアム, ジェイ. マッケーナ,
デイヴィッド, ジー. ジュニア ウィルハイト,
Original Assignee
インフォミックス ソフトウェア, インコーポレイテッド
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
Priority claimed from US09/049,784 external-priority patent/US6199063B1/en
Application filed by インフォミックス ソフトウェア, インコーポレイテッド filed Critical インフォミックス ソフトウェア, インコーポレイテッド
Publication of JP2002510088A publication Critical patent/JP2002510088A/ja
Ceased 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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24539Query rewriting; Transformation using cached or materialised query results
    • 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/22Indexing; Data structures therefor; Storage structures
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • G06F16/24556Aggregation; Duplicate elimination
    • 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/99932Access augmentation or optimizing
    • 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
    • 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/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • 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/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 データベースについてのユーザークエリーに返答するために予め演算されたビューを処理するための方法と装置が記載される。予演算のストラトジの有効性についてのユーザーデータベースクエリー90は、ユーザーデータベースクエリー履歴に基づき、データベース104に対する全ての可能なビューから成るひとつのサブセットから構成される分析スペースを定義することによって、および、分析スペースにおけるビューを特徴付けることによって応答され得る。ストラクチャは、クエリー書換えファシリティ92の能力に基づき、データベースに対する全ての可能なビューから成るひとつのサブセットから構成される分析スペースに賦課でき、分析スペースにおけるビューを、特徴付けることができる。コスト公式が、データベースに含まれたデータのユーザ定義サブセットに基づき、分析スペースへ適用することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】
関連出願とのクロスリファレンス 本出願は、下記の同時出願に基づく優先権を主張し、これら出願は引用により
本明細書中に組み込まれ、それらは:米国特許仮出願第60,079,679号
、1998年3月27日出願、発明の名称「アドバイザを利用することによりデ
ータベースクエリーに返答するためのシステムと方法」;米国特許仮出願第60
,079,670号、1998年3月27日出願、発明の名称「生成された候補
ビューを利用することによりデータベースクエリに返答するためのシステムと方
法」;米国特許仮出願第60,079,671号、1998年3月27日出願、
発明の名称「集積サーバを利用することによりデータベースクエリに返答するた
めのシステムと方法」;および、米国特許仮出願第09/049,784号、1
998年3月27日出願、発明の名称「リレーショナルデータベースクエリを書
換えるためのシステムと方法」;である。
【0002】 本出願は、データベースについてのユーザークエリーに応答して予め演算され
たビューを(管理を含み)処理することに関する。
【0003】
【従来の技術】
データベースは、通例、適度に充分に定義された一定の目的に関係するデータ
の集合である。データは、普通には、メタデータによって定義される既知のフォ
ーマットを有する。データベースでのデータは、普通には、データベース管理シ
ステムによって格納され、取出され、そして修正される。リレーショナルデータ
ベース管理システムは、情報をテーブル中に、データの行と列で格納し、検索を
行う。リレーショナルデータベースでは、テーブルの行は、普通には、レコード
(個別の項目についての情報の集合)をテーブルし、列は、普通には、フィール
ド(レコードの特定の属性)をテーブルす。リレーショナルデータベース管理シ
ステムは、一方のテーブルでのフィールドからの情報を、他方のテーブルの対応
するフィールドでの情報と突合わせることによって、および、両テーブルからの
データを組合せる第3のテーブルを作成することによってデータベースについて
のユーザークエリーに応答できる。例えば、一方のテーブルが、フィールド EMP
LOYEE-ID(従業員ID)、 LAST-NAME (姓)、 FIRST-NAME(名)、 DEPT-ID(
部門ID)、 SALARY(給与)と HIRE-DATE(採用日)、含み、別のテーブルが
、フィールド DEPT-ID(部門ID), DEPT-NAME(部門名称)と、LOCATION(場 所) を含む場合、リレーショナルデータベース管理システムは、特定の場所に おける部門で働いている全ての従業員の名前を見出すために、2つのテーブルで
DEPT-ID(部門ID)フィールドを突合わすことができる。
【0004】 ユーザは、普通には、データ・サブ言語(例えば、SQL)を使用してリレー
ショナルデータベースにクエリーを発し、更新し、および管理する。データ・サ
ブ言語は、データにアクセスする特化された目的のために別のコンピュータ言語
と関連して使用され得るひとつである。Relational Technology, Inc. (ASK/Ing
res) からのQUELと Digital Equipment Corporation からのRDMLを含め
、多くのリレーショナルデータ・サブ言語がある。SQLは、リレーショナルデ
ータベースへのアクセスのために正式に標準化され、広く実装され使用される、
しかし、SQLには多くの変形がある(例えば、California 州 Menlo Park の
Informix Software, Inc. からのRISQL(登録商標))。
【0005】 リレーショナルデータベースモデルでは、データの基本単位は、関係である。
SQLでは、その関係はテーブルによってテーブルされる。関係は、普通には、
ひとつ以上の属性(SQLでは列としてテーブルされる)から構成され、その各
々は、データの種類(例えば、文字列、整数、浮動小数点数)に関連する。デー
タは、普通には、テーブル中のタプル(SQLの行)に格納される。
【0006】 図1A−1Dを参照すると、リレーショナルデータベースのテーブル、製品、
売上、時間、および成果のテーブルが、属性の列と、これらの属性に関するデー
タの行を含む。例えば、図1Aの製品のテーブルは、製品ID、製品種類、およ
びバーコードを含む。特定の操作が、これらのテーブルに実行できる。そのよう
な操作のひとつは選択(selsction)であり、テーブル中の特定の行を識別する 。選択は、普通には、述語が真である行を識別するよう、テーブルをフィルタす
るの使用されるひとつ以上の述語を指定することによってなされる。述語は、普
通には、SQLクエリーのWHERE文に見出せる。例えば、選択操作は、製品ID の1の選択を要求でき、それは、製品のテーブルの第1行を選択することになろ
う。リレーショナルデータベースモデルでの別の操作は、結合 (join) と呼ばれ
る。結合操作は、2つのテーブルからのデータを組合せる方式であり、それは、
普通には、これらのテーブルでのデータ間の関係に基づく。製品のテーブルは、
製品種類を製品IDによって識別し、売上テーブルは、各製品ID/時間(時間
キー)組合せに関連するドルの総額を識別する。製品テーブルと売上テーブルと
は、製品IDの列により結合できる。売上テーブルは、各行で時間キーにも関連
し、時間テーブルは、各時間キーで日に関係する。その故に、売上テーブルと時
間テーブルとは、時間キーの値により結合できる。
【0007】 図2は、ファクトテーブルとその次元テーブルとの間の関係を示す。ファクト
テーブルと次元テーブルとは、詳細テーブルのサブセットである。ファクトテー
ブルは、イベント(例えば、売上イベント)を記録する詳細テーブルである。売
上イベント(例えば、時間、店、および製品)に関係する情報が格納されるテー
ブルは、関連するファクトテーブルの次元テーブルである。例えば、時間テーブ
ル、店テーブル、および製品テーブルは、売上テーブルに関連する次元テーブル
である。クラスのアウトボード (Class outboard)(次元の次元)テーブルは、 個別のテーブルで繰返される情報(製品とクラスとの間の関係)による冗長性を
削除する。この特徴は、正規化と称される。
【0008】 リレーショナルデータベースモデルにおける別の概念は、関数的従属性である
。関数的従属性は、データベースのテーブルにおける値の列間の多数からひとつ
への関係である。列xから列yへの関数的従属性は、2つの行がx列に対して同
じ値を有する場合、その2つの行がy列に対しても同じ値を有する必要がある制
約条件である。関数的従属性は、データベース管理者等のユーザによって明示し
て宣言されることができる。
【0009】 更に、リレーショナルデータベースモデルは、集合のクエリーを提供し、それ
は、普通には、SUM または COUNT、およびオプションで GROUP BY 文のような集
合関数を使用して、データベースのテーブルにおける行の集計 (summarization)
つまり併合を要求するクエリーである。集合体テーブルは、普通には、他のデ ータベースのテーブルから詳細レベルのレコードを集計つまり併合するテーブル
である。
【0010】 SQLは、ユーザが仮想テーブル(「ビュー」)を定義し、その定義をデータ
ベースにメタデータとして保存することを可能にする。ビューは、通例、それが
必要とされる(例えば、SQLステートメントがビューを参照する際)まで、物
理的に具現化(すなわち「予め演算」)されない。ビューについてのメタデータ
は、ビューの名称、各列の名前とデータ種類、およびビューが作成するデータを
記述するSQLテキスト等の情報を含むことができる。ビューについてのメタデ
ータは、普通には、データベースのメタデータに格納されるが、ユーザがビュー
で見るであろう実際のデータは、普通には、物理的には格納されない。むしろ、
データは、普通には、ビューの行が抽出される詳細テーブルに格納される。予め
演算されたビューの場合、データは、普通には、関連する予め演算されたテーブ
ルに格納される。一般に、操作は、詳細テーブルに対して実行できる場合と全く
同様に、ビューに対して実行できる。
【0011】 ユーザは、何単位のシリアルXが1999年1月1日に売られたか等のような
情報を要求できる。そのクエリーの結果は、製品テーブル(図1A)、売上テー
ブル(図1B)、および時間テーブル(図1C)から抽出できる。しかし、種々
のテーブルから各質問への返答を抽出することは非常に非効率であり、多くの時
間がかかってしまう。効率を高めるために、データベース管理者は、もっともよ
く尋ねられそうな質問を予測し、これらの質問が実際に尋ねられる前に、これら
のありそうな質問への返答を含むテーブルを予め演算できる。例えば、店のデー
タベース管理者は、頻繁に尋ねられる質問が、所定製品の売上の1日の期間での
総額(合計_ドル)であると判定できる。従って、データベース管理者は、予め
演算されたテーブル(図1D)とそのテーブルに関連する予め演算されたビュー
を創成できる。
【0012】 データベース管理者は、普通、尋ねられそうな全ての共通する質問を予知する
ことは期待されず、全てのクエリーが分かったとした場合でさえ、全ての結果を
予め演算する/具現化することは実行できそうにない。クエリーが出され、返答
が予め演算されたテーブルから直ちに利用可能でない場合、そのようなクエリー
に対する返答は、普通には、ひとつ以上の詳細テーブルから抽出され、プロセス
は、非常に多くの時間を要し、多大の演算を要するかもしれない。
【0013】
【課題を解決するための手段】
本発明は、データベースについてのユーザークエリーに返答するために予め演
算されたビューを処理するための方法と装置を特徴とする。
【0014】 一つの局面によると、予演算のストラトジの有効性についてのユーザーデータ
ベースクエリーは、ユーザーデータベースクエリー履歴に基づき、データベース
に対する全ての可能なビューから成るひとつのサブセットから構成される分析ス
ペースを定義することによって、および、分析スペースにおけるビューを特徴付
けることによって、応答される。
【0015】 別の局面によると、構造は、クエリー書換えファシリティの能力に基づき、デ
ータベースに対する全ての可能なビューから成るひとつのサブセットから構成さ
れる分析スペースに賦課され、分析スペースにおけるビューが特徴付けられる。
【0016】 第3の局面によると、データベースに対する全ての可能なビューから成るひと
つのサブセットから構成される分析スペースが定義され、コスト公式が、データ
ベースに含まれたデータから成るひとつのユーザ定義サブセットに基づき、分析
スペースへ適用される。
【0017】 第4の局面によると、2つ以上の成分ビューの組合せから構成される候補ビュ
ーを含む分析スペースが定義され、分析スペースにおけるビューが特徴付けられ
る。
【0018】 第5の局面によると、データベースについてのユーザークエリーが分析され、
ユーザークエリーに基づき候補ビューが生成される。
【0019】 第6の局面によると、本発明は、サーバ上に格納されたデータベースについて
のユーザークエリーに返答するためのシステムを特徴とし、サーバ内へ統合され
、ユーザークエリーに応答するよう構成された、クエリー処理システムと、サー
バ内へ統合され、データベースについてのユーザークエリーの予め演算された結
果を処理するよう構成された、クエリー処理システムとを備える。
【0020】 別の局面では、本発明は、サーバ上に格納されたデータベースについてのユー
ザークエリーに返答するための方法を特徴とし、サーバで受取られたユーザーク
エリーへ応答する工程と、サーバで、データベースについてのユーザークエリー
の予め演算された結果を処理する工程とを含む。
【0021】 本発明の利点には、以下がある。
【0022】 本発明は、システムの独特な性能とスペース要件を満足させるよう予め演算さ
れた集合体の最適セットを創成し評価することによりデータベース管理者を支援
する。本発明は、ユーザークエリー履歴に基づき、予演算のストラトジの有効性
の分析を提供する。本発明は、詳細データのユーザ定義サブセットについての分
析を実行でき、分析時間を低減する。本発明は、サブスペースでひとつ以上の候
補ビューを包摂するビューを考慮するよう分析で使用される候補ビューのスペー
スを細分できる。本発明は、スペース内の他のビューに対して、予め演算された
ビューまたは候補ビューのコスト利益分析が判定できるようにする分析スペース
についてのストラクチャを定義できる。
【0023】 エンドユーザおよびアプリケーションは、それらが常に有するように、データ
ベースへクエリーし続けることができ、クエリー書換えファシリティは、既存集
合体を利用するようクエリーを変換する。本発明は、クエリーが提出される方式
に影響せず、データベース管理者がデータベースの集合体性能をチューニングす
ることを可能にする。加えて、全ての集合体関連メタデータは、次元内の階層関
係を含む、データベースシステムのカタログ内へ統合される。
【0024】 本発明は、アドバイジングファシリティが、現在は存在しないが、予め演算で
きて、書換えファシリティによってユーザークエリーを書換えるよう使用される
、ビューについてのアドバイスを提供することを可能にし、それによって、クエ
リー処理性能を改善する。本発明は、アドバイザリファシリティが、ユーザーク
エリー履歴に基づき、全ての可能な予め演算されたビューのサブセットだけを分
析することを可能にする。候補ビューは、SQLで生成でき、SQLが関連する
予め演算されたビューを創成するために直接使用できるようにする。候補ビュー
は、候補ビューが生成されるクエリーを書換えることにも書換えファシリティに
よって使用可能であってもよい(ビューが予め演算されている場合)。
【0025】 集合情報は、データベースに対する全ての他のメタデータと共に、システムの
テーブルに格納され、全てのデータベース活動の知識を集中化させる。この統合
の結果は、予め演算されたビューが使用されるか否かに拘らず、クエリーの編集
(compilation) と最適化のために拡張 (enhanced) メタデータを使用する一貫 性と能力である。例えば、集合体テーブルデータが詳細データと同期していない
場合、システムは、即座にそれについて知り、(そうするよう要求されない限り
)クエリーを書換えるのにテーブルを使用しない。加えて、最適化ストラトジは
、最大限の統合の結果としてクエリー処理システムに既知である。サーバの統合
は、予め演算されたテーブルが自動的に維持されることを可能にする。この特徴
は、ユーザがSQLインタフェースを使用してアドバイザリとメタデータ情報と
へアクセスすることも可能にする。この特徴は、アドバイザリファシリティがサ
ーバに配置されたクエリー処理能力を使用することも可能にし、フロントエンド
ツールが予め演算されたビューの処理システムの能力を使用できるよう可能にす
る。本発明の局面によると、予め演算されたデータは、予め演算された結果と詳
細データとの間の関係(例えば、外部キーの関係)の定義を可能にするテーブル
に格納される。サーバ統合は、クエリー処理システムがデータベースサーバによ
って提供される論理的および物理的データベース設計オプションへアクセスする
ことも可能にする。
【0026】 他の特徴と利点は、図面と特許請求の範囲を含む、以下の説明から明白になる
であろう。
【0027】
【発明の実施の形態】I. 概観 A.予め演算されたビューを管理するシステムと方法の一般的特徴 図3を参照すると、ひとつの実施の形態で、クライアント10は、データスト
ア16(例えば、California 州 Menlo Park の Informix Software, Inc. から
入手可能な Red Brick Warehouse のようなデータウエアハウス)に含まれたデ ータにアクセスするためにクエリーをデータベースサーバ12へネットワーク1
4上で送ることができる。データベースサーバ12は、クエリー処理システム1
8を含み、それは、他方、予め演算されたビューの処理システム20を含む。ク
エリー処理システム18は、クエリーをクライアント10からネットワーク14
上で受取り、予め演算されたビューの処理システム20の支援により、要求され
た情報に対応するデータをデータストア16からクライアント10へ返送するこ
とによって、受取ったクエリーを執行する。予め演算されたビューの処理システ
ム20は、意志判定支援クエリーに対する予め演算された集合体データへの組織
的なアプローチを提供する。各クエリーが執行される前に、予め演算されたビュ
ーの処理システム20は、コスト基準の分析を実行し、クエリー性能を改善する
ためにクエリーが捕捉され (intercept) 書換えられるべきか否か判定する。加 えて、予め演算されたビューの処理システム20は、クエリー執行についての統
計をログし、データベース管理者が既存の集合ストラテジがどれだけ効率的に働
いているか判定し、現行集合ストラテジを改善する方法を判定する。
【0028】 意志判定支援環境では、データの標準モデルは、次元スペースで点に関連する
ファクトのそれである。小売環境では、例えば、各売上は特定の時間に、特定の
店で、および、特定の製品に発生する。この例では、各売上イベントは、ファク
トであり、3次元のスペース(製品、店、時間)での点で発生する。各次元は、
通例、階層を形成し:製品は、例えば、細かさの最細レベルで製品種類と、最粗
レベルで製品カテゴリとを持つ2レベル階層であってよい。多次元データモデル
は、次元における点(例えば、製品の種類)とこれらの点の属性(例えば、製品
の色)との間を区別する。集合体は、普通には、次元スペースで点につき、可能
な限り次元的属性に置かれた制約を持ち、演算される。
【0029】 リレーショナルデータベースでの集合体処理は、普通には、次元的制約に基づ
き認定するファクトの記録を取出すこと、規定された次元で点に対する値によっ
て記録をグループ化すること、および、各グループへ集合体関数を適用すること
を包含する。高度に能率的なクエリー処理システムでさえ、何十億ものファクト
と関連する次元記録を必要とする集合体クエリーは、演算することに非常に高く
つくことが多い。予めの演算は、集合体処理で劇的な性能増加 (gain) の結果と
なることが多く、細かさのひとつのレベルでの集合体結果は、より粗い細かさで
の集合体を演算(ロールアップ)することに使用できることが多い。これは、全
ての可能な集合体を予め演算する必要性をなくす。
【0030】 以下に詳細に説明するように、予め演算されたビューの処理システム20は、
クエリー書換えシステム(書換え器)、クエリーのログと分析のファシリティ(
アドバイザ)、および、拡張メタデータファシリティ(メタデータ層)を含む。
書換え器は、集合体テーブルを使用してユーザのデータベースクエリーを書換え
ることを捕捉し試み;書換え器は、クライアントアプリケーションとエンドユー
ザに透過的 (transparently) にクエリーを書換える。アドバイザは、既存の集 合体テーブルのサイズと相対的な利益、および創成することに有用であろう可能
性(候補)の集合体テーブルについてのアドバイスをクエリーしてもよい。メタ
データ層は、データベースオブジェクトとその関係についての情報を格納する。
【0031】 B.データベースオブジェクト 図4は、ビュー30、データベーステーブル32、および階層34の間の関係
を示す。一般的に、ビュー30は、クライアントクエリーをデータストア16上
で定義する。予め演算されたビュー36は、クエリーを定義し、予め演算された
テーブル38へリンクされ、テーブルは、クエリーの予め演算された結果を含む
データベースのテーブルである。換言すると、予め演算されたビューで定義され
たクエリーは、クエリーがクエリー処理システム18によって受取られる前に演
算される。対照的に、アドバイザによって生成された候補ビュー42を含む、正
規ビュー40によって定義されたクエリーに対する結果は、正規ビューが参照さ
れる度毎に演算されねばならない。操作では、予め演算されたビュー36で定義
されたクエリーは自動的に予め計算でき、そうでなければ、データベース管理者
は、関連する予め演算されたテーブル38を在住させねばならない。データベー
ス管理者は、例えば、テーブル管理ユーティリティ (TMU) LOAD DATA 操作、ま たは、SQLの "INSERT INTO … SELECT" ステートメントを使用して、テーブ ルを在住させてもよい。管理者は、次に、予め演算されたテーブル38の内容を
反映するクエリーテーブル現を含む、関連する予め演算されたビュー36を創成
できる。定義後に、クエリー処理システム18は、詳細テーブル46での変更を
反映するよう予め演算されたテーブル38を自動的に更新でき、予め演算された
ビュー(とその関連する予め演算されたテーブルと)を使用するようユーザーク
エリーも書換えできる。
【0032】 集合体テーブル44は、関連する予め演算された集合体ビュー45で定義され
た「集合体クエリー」の結果を格納する予め演算されたテーブルであり、それは
、集合体テーブルと下にある詳細テーブル46のセットとの間の集合体関係を定
義する。予め演算されたビューの定義は、詳細テーブル46と予め演算された結
果を含む集合体テーブル44との間の意味のリンクを確立する。一般的に、集合
体テーブル44は、詳細テーブル46に含まされた情報より粗い細かさ(すなわ
ち、より少ない行)を有する情報を含む。例えば、小売データベースでは、取引
レベルのデータは、売上領収書詳細テーブルに格納された個別の売上領収書の形
態であるかもしれない。売上領収書のテーブルでの記録は、一定の時間期間にわ
たり集合でき、集合体テーブルのセット(例えば、日次売上テーブルおよび月次
売上テーブル)を作出する。
【0033】 集合体クエリーは、普通には、詳細テーブル46に含まれたファクトのデータ
を集合するために(例えば、所定の時間期間にわたる売上合計) SUM または CO
UNT のような標準のSQL関数を使用する。他の集合クエリーは、大きな次元テ
ーブル(例えば、四半期と年、または市区と地域の別個の組合せ)から次元デー
タの別個の行を選択するために GROUP BY 文を使用する。これらの方式では、集
合クエリーは、細かい細かさのデータの行を粗い細かさの行のグループ内へ「ロ
ールアップ」する。クエリー書換えシステムによって提供される性能増加は、こ
れらのロールアップの予めの演算から抽出される。追加の性能増加は、ビューの
列をグループ化することより粗い細かさの列を含む、追加のロールアップを必要
とするクエリーを書換えるクエリー書換えシステムの能力によって達成される。
換言すれば、クエリー書換えシステムは、ビューで定義されたクエリーと一致し
ない大多数のクエリーを書換えることに使用できる。例えば、ビューは、月の列
によってグループ化された行を答申するクエリーを定義するかもしれないが、そ
れでも、このビューは、四半期と年の列によってグループ化されたクエリーを書
換えることに使用できる、これは、これらの列のいずれもがビューによって定義
されたクエリーで命名されていない事実に関らずである。このロールアップ能力
は、それぞれ、月、四半期、および年によってグループ化された3つの個別のビ
ュー、または全ての3つの列によってグループ化されたひとつの非常に広いビュ
ーを創成しなくてはならないことからデータベース管理者を解放する。
【0034】 ウエアハウスデータに固有である階層34(すなわち、関数的従属性)は、予
め演算されたビューで定義されない列へのロールアップを可能にする。階層は、
値の列によって共有される多数からひとつへの関係である。換言すれば、列Xか
ら列Yへの階層は、2つの行がX列に対して同じ値を有する場合、Y列に対して
同じ値を有するその2つの行を必要とする制約である。列は、同じテーブルまた
は異なるテーブルにあってもよい。例えば、店のテーブルで 店番号の列と都市 の列との間に階層が存在する場合、店番号の列での値が Store_56 である場合は
必ず、都市の列での値は、Los Angeles である。都市には多くの店があり得るが
、所定の店はひとつの都市にだけあり得るので、この関係は、多数対1である。
同様に、店のテーブルでの都市の列は、市場のテーブルでの地域の列と多数対1
の関係を持ち得る(例えば、都市が Los Angeles である場合、地域は常に West
(西部)である)。
【0035】 階層は、細かい細かさの列によってグループ化される予め演算されたビュー3
6が粗い細かさの列によってグループ化されるクエリーを書換えることに使用さ
れることを可能にする。例えば、店番号から都市への階層の存在は、店番号の値
が別個の都市の値へグループ化されることを可能にする。予め演算されたビュー
36が、店番号によってグループ化される場合、同じビューがこれらの列のひと
つまたは両方について制約するクエリーを書換えることに使用できるので、都市
によってグループ化される別のビューを創成する必要はない。クエリー書換えシ
ステムは、予め演算されたビューの定義の範囲を越えるロールアップを必要とす
るクエリーを書換えるよう、階層34をインテリジェントに使用する。
【0036】 2種類の階層には、クエリー処理システムにとり黙示的に既知であるもの、お
よび、データベース管理者によって明示的に宣言されねばならないものがある。
【0037】 主キー/外部キーの関係経路、または、ヌルにできない無二の列の定義からの
結果に従う階層は、クエリー処理システムにとり黙示的に既知である。結果とし
て、例えば、Perkey が、例えば、Period(期間)のテーブルを参照する外部キ ーの列である場合、例えば、Sales.Perkey の列によってグループ化されるビュ ーは、期間のテーブルにおける列のいずれの組合せによってグループ化されるク
エリーを書換えることに自動的に使用され得る。この特徴は、アウトボードテー
ブル(すなわち、次元テーブルによって参照されるテーブル)における列によっ
てグループ化されるクエリーにも適用する。例えば、Storekey が Store(店) のテーブルを参照する外部キーの列であり、Store.Mktkey が Market(市場)の
テーブルを参照する外部キーの列である場合、Sales.Storekey の列によってグ ループ化されるビューは、店および市場のテーブルにおける列のいずれの組合せ
によってグループ化されるクエリーを書換えることに自動的に使用され得る。
【0038】 他の階層は、明示的に宣言されねばならない。例えば、ビューが期間のテーブ
ルでの月の列によってグループ化され、月から四半期へおよび四半期から年へ従
属性が存在する場合、両従属性が宣言される必要がある。それらが宣言された後
に、クエリー書換えシステムは、同じ予め演算されたビューを3つの列のいずれ
の組合せによってグループ化されるクエリーを書換えることに使用できる。これ
らの依存性を宣言することは、アドバイザの性能も改善する。階層を宣言するメ
カニズムは、CREATE HIERARCHY コマンドである。CREATE HIERARCHY ステートメ
ントは、関数的従属性を満足し、列が所属するテーブルを識別する一対の列を命
名する。
【0039】 図5Aと5Bとを参照すると、ひとつの実施の形態で、小売のデータベースス
キーマは、売上詳細テーブル50、期間次元テーブル52、店次元テーブル54
、製品次元テーブル56、販売促進次元テーブル58、市場次元テーブル60、
クラス次元テーブル62を含む。市場テーブルとクラステーブル60、62は、
アウトボードテーブルである。売上テーブルでのドルの列は、日別、店別、製品
別、販売促進別の合計を示す。例えば、詳細テーブルでの単一行は、1999年
1月2日、San Jose Roasting Company が、$95の全粒豆の Aroma Roma コー
ヒーをカタログクーポンを使用する顧客に売ったことを記録できる。ユーザが、
ある時間期間別、ある店別または地理的領域別(例えば、日別、地域別、または
、月別、州別)の売上合計を要求するクエリーを定例的に提出する場合、データ
ベース管理者は、日別、店別の全ての製品と全ての販売促進に対する売上合計を
含めて、店売上テーブル64を定義するかもしれない。この集合体テーブルは、
詳細売上テーブルと同じ関係を店次元テーブル54、期間次元テーブル52とへ
保持するであろうが、しかし、小売のスキーマでの他の次元を参照しないであろ
う。
【0040】 図6を参照すると、特定の四半期中の特定の製品に対する売上合計を比較する
レポートを求める小売売上アナリストのクエリーに関する実施の形態で、データ
ベース管理者は、予め演算されたビューを以下のように創成できる。特定の四半
期中の特定の製品に対する売上合計を比較するレポートを求める反復されたアナ
リストのクエリーを予知して、データベース管理者は、CREATE TABLE ステート メント70を使用して製品売上の集合体テーブルを創成する(工程72)。デー
タベース管理者は、INSERT ステートメント74を使用して製品売上テーブルを 在住させる(工程76)。データベース管理者は、次に、CREATE VIEW ステート
メント78を使用して、製品売上集合体テーブルに関連する予め演算されたビュ
ーを創成する(工程80)。クエリー書換えシステムは、次に、以下のように、
ユーザークエリーを捕捉できる: select prod_name, qtr, sum(dollars) as total_sales from sales, product, period where sales.prodkey = product.prodkey and sales.classkey = product.classkey and sales.perkey = period.perkey group by prod_name, qtr; クエリー書換えシステムは、これらのクエリーを製品売上の集合体テーブルの走
査で置換えできる。クエリー書換えシステムは、テーブル名称を割当て、結合属
性を書換え、およびクエリー性能を著しく改善する方式でクエリーをテーブルす
【0041】 本発明は、データベース管理者とユーザの両方へ追加の予め演算された機能性
を提供する。詳細には、本発明は、データベース管理者がどの予め演算されたビ
ューを創成し維持するかを判定するためのインテリジェントな方法を提供する。
大規模なデータウエアハウスにおいて全ての次元での全ての点の組合せに対して
集合体を予め演算し維持することは非実用的であるので、この特徴は特に有用で
ある。
【0042】II. 機能的構成要素 A.メタデータ層 1.概観 メタデータ層(以下に詳細に説明する)は、集合体テーブルの定義を格納し、
他のシステム構成要素(例えば、書換え器、アドバイザ、およびデータベースサ
ーバ12)がこれらの定義にアクセスすることを可能にする。メタデータ層は、
予め演算されたビューと次元的階層とについての情報を格納し、各予め演算され
たテーブルの状態をそれが演算された源の詳細テーブルに関して追跡する。次元
的階層は、次元での点についての集合体から同じ次元における粗い細かさの他の
点へのロールアップのような、多次元のデータベース機能性を本発明が与えるこ
とを可能にする。
【0043】 2.予め演算されたテーブルと予め演算されたビュー メタデータ層の特徴の中には、以下の予め演算されたテーブルと予め演算され
たビューを支援する特徴がある。メタデータ層は、データベース管理者によって
アクセス可能である、予め演算されたテーブルの定義と関係とについての情報を
維持する。メタデータ層は、予め演算されたテーブルがSQLにより定義される
ことも可能にする。メタデータ層は、各予め演算されたテーブルがその関連する
詳細テーブルと同期にあるか否か(すなわち、予め演算されたテーブルが予め演
算されたビューの定義を正確に反映するか否か)を追跡する。この特徴は、シス
テムが、予め演算されたテーブル内への挿入と、関連する詳細テーブルとさもな
ければ予め演算されたテーブルを無効にするであろう操作とに併せての更新とを
取扱えるようにする。メタデータ層は、予め演算されたテーブルの列と関連する
詳細テーブルの列との間のマッピングを識別する。メタデータ層は、グループ化
の列と集合体テーブルに対する集合列とを識別する。メタデータ層は、各集合の
列に対する集合体テーブル現(例えば、min(dollars) および sum(units))を識
別する。メタデータ層は、予め演算されたテーブルがそこにインデックスを作ら
せ、外部キー/主キーの制約条件をそれに対して定義させることを可能にする。
これらの特徴は、予め演算されたテーブルがデータベーススキーマ内へ接続され
、スター印や他の指標をそこに作らせることを可能にし、クエリー処理速度を改
善する。メタデータ層は、予め演算されたテーブル間の関係を識別でき、書換え
器が別の予め演算されたテーブルからひとつの予め演算されたテーブルを演算で
きるようにする。メタデータ層は、任意の次元的階層、ファクト集合体テーブル
(ファクトテーブルからファクトを集合するテーブル)、および次元的に予め演
算されたテーブル(グループ化の列だけを含むテーブル)が定義されることを可
能にする。
【0044】 3.階層 上記で説明したように、次元的階層は、CREATE HIERARCHY ステートメントを 使用して規定される。例えば、次の階層定義を考える: create hierarchy type-to-category (from product(type) to product(category)); このSQLコマンドは、種類とカテゴリの列が製品次元での点であり、種類の列
につきグループ化された(Sum(dollars) のような)集合体がカテゴリの列につ いての(互換性のある)集合体へロールアップすることに使用できる、ファクト
をテーブルすメタデータを創成する。CREATE HIERARCHY ステートメントをイン タプリートする別の方式は、2つの列間の関数的従属性の宣言としてである。
【0045】 正規化を解いた (denormalized) 次元テーブルが(性能の理由で)既存の場合
、CREATE HIERARCHY ステートメントは単一のテーブルからの列を参照する。階 層は、異なるテーブルの列間でも規定できる。本例のスキーマが正規化次元テー
ブルを有すると仮定する。製品次元は、次のような2つのテーブルに表すことが
できる。
【0046】 product (prodkey, pname, type, category-key) class (category-key, category, category-desc) この場合、種類とカテゴリとの間の階層は、次のように定義されよう: create hierarchy type-to-category (from product(type) to class(category)); これらの列は異なるテーブルにあるので、結合がこのロールアップを実行するこ
とに必要とされ、従って、メタデータ層は、外部キー−主キーの結合制約が製品
のテーブルとクラスのテーブルとの間に存在する必要がある。これらの結合制約
は、書換え器が第2クラスのロールアップを実行できるようにする。
【0047】 メタデータ層は、主キーの列と同じテーブルの別の列との間の階層のような、
黙示の階層(関数的従属性)も、移行性によって暗示される従属性と同様に暗示
する。 明示と黙示の階層は、書換え器が小さいセットの予め演算された集合体 を使用して大きなクラスのクエリーに返答することを可能にする。
【0048】 B.書換え器 (Rewriter) データベース管理者は、予め演算されたテーブルを創成し、予め演算されたテ
ーブルをローディングし(または、既存の予め演算されたテーブルを使用し)、
および予め演算されたテーブルの厳密な内容を反映するクエリーテーブル現と関
連する予め演算されたビューを定義する。データベース管理者は、予め演算され
たどのビューが存在するかを必然的に知るが、しかし、データベースのユーザは
、この情報を知る必要はない。クエリーがユーザによって提出される場合、クエ
リー書換えシステムは、データベース管理者によって創成された予め演算された
ビューを評価し、可能な場合、元のユーザークエリーに参照されたテーブルより
、普通には、ずっと小さい集合体テーブルに含まれた情報を選択するようクエリ
ーを書換える。可能な場合、結合は単純化または排除され、詳細データと集合体
データとの間に発生する合同の程度に依存して、クエリー応答時間は、非常に加
速される。その上、以下に説明するように、クエリーとビューの定義が厳密に一
致しない場合でさえ、クエリーは、予め演算されたビューに対して書換えられ得
る。
【0049】 予め演算されたビューが落とされるか、または追加される場合に、ユーザがマ
ニュアルでクエリーを書換えるか、またはそのクエリーを変更する必要もなく、
書換え器は、比較的小さなセットの予め演算されたビューの観点でユーザークエ
リーを書換える。書換え器は、予め演算された集合体を使用するよう、集合体ク
エリーを捕捉し、各クエリーを書換えることを試みる。この書換えは、ブロック
毎の基準でなされ、union/ intersect/ except(併合/交差/除外)クエリーで
のブロックと同様に、相関するサブクエリーを含む。書換え器は、可能な書換え
中から選択するためにコスト基準のアルゴリズムを使用する。書換え器は、両種
類のロールアップを実行できる。書換え器は同次元で細かい細かさの集合体から
粗い細かさの集合体へ能率的にロールアップできるので、予め演算された集合体
の全数は低減できる。集合体が次元での点に対応するキーでない (non-key) お よびキーの列の両方につきグループ化される場合、これらのロールアップが実行
できる。書換えは透過的に実行され、それによって、ユーザを集合体処理の詳細
から隔離する。従って、集合体がデータベースから落とされるか、またはデータ
ベースに追加される場合に、ユーザークエリーが変更される必要はない。
【0050】 C.アドバイザ アドバイザは、どのテーブルを予め演算するかを提案し、クエリー履歴の分析
に基づき既存の予め演算されたテーブルの有効性を判定する。アドバイザは、デ
ータストア16に対するユーザークエリーの活動をログするファシリティも提供
する。ログされたクエリーから、データベース管理者は、データストア16にお
ける既存の予め演算されたテーブルの使用を分析でき、クエリー性能を改善でき
る新規ビュー(候補ビュー)の創成の可能性を識別できる。
【0051】 データストア16が問合せられる際に、アドバイザは、書換え器によって書換
えられたクエリーと、適切な集合体テーブルが存在したとすれば書換えから利益
を得るであろうクエリーと、をログする。時間期間の後に、データベース管理者
は、アドバイザによって創成されたクエリー統計レポート(テーブル)によって
集合体クエリーログを分析できる。ひとつのレポート(RBW_PRECOMPVIEW_UTILIZ
ATION のテーブル)が、データベースにおける既存の予め演算されたビューの使 用についての情報を提供する。別のレポート(RBW_PRECOMPVIEW_CANDIDATES の テーブル)が、ユーザークエリー履歴と既存の予め演算されたビューとに基づき
アドバイザが提案する最適のセットの予め演算されたビューについて情報を提供
する。
【0052】 アドバイザシステムテーブルは、ログに格納された情報の詳細な分析から生成
される。分析は、データストア16に対する実際のクエリー履歴により最適セッ
トの集合体テーブルを判定するアルゴリズムに基づく。分析の一部として、利益
が、各既存ビューと各候補ビューとへ割付けられる。アドバイザシステムテーブ
ルでの BENEFIT (利益)の列は、関連する詳細テーブルまたは次善のビューよ りむしろ予め演算されたビューによりクエリーを処理することによって節約され
る行の数;と同様に、(既存ビューに対して)ビューが使用された回数、または
(候補ビューに対して)ビューが使用されたであろう回数、を反映するコスト尺
度である。
【0053】 アドバイザのログするメカニズムは、提出された各ユーザの集合体クエリーを
検査する。予め演算されたテーブルが存在しない場合、ログするメカニズムは、
どの候補の予め演算されたテーブルが在る場合、クエリーに返答することに有用
であろうかを記録するであろう。生成された候補は、普通には、クエリーと厳密
な一致ではないが、むしろユーザークエリーと同じ次元(または、これらの次元
のどれかのサブセット)を包含する広範囲のユーザークエリーに(ロールアップ
により)、能率的に返答することに使用され得るものである。このように、アド
バイザは、格納される必要のある予め演算されたテーブルの数を低減する。換言
すれば、実際のクエリー履歴に基づき、アドバイザは、全ての可能な予め演算さ
れたテーブル(例えば、次元と次元に沿う点の全ての組合せにつきグループ化さ
れた予め演算されたテーブル)のサブセットのインテリジェントな具現化(予め
演算)を可能にする。
【0054】 予め演算されたテーブルが存在し、書換え器が存在する予め演算されたテーブ
ルを使用するようクエリーを変換する場合、アドバイザのログするメカニズムは
、予め演算されたテーブルの使用度についての情報を記録する。アドバイザが予
め演算に対する候補として更に能率的な(存在しない)予め演算されたテーブル
を提案できる場合、この候補もログされるであろう。
【0055】 アドバイザは、アドバイザをデータベースサーバと統合させることによって可
能になされたリレーショナルSQL基準のインタフェースを特徴とする。データ
ベース管理者はSQLコマンドを使用して、アドバイザ特定のテーブルにアクセ
スし、既存の予め演算されたテーブルの利用についての情報と、創成されるべき
候補の予め演算されたテーブルについての情報とを取得する。アドバイザは、分
析されなくてはならない予め演算されたテーブルのセットを、全ての可能な予め
演算されたテーブルの小さなサブセットに、限定するためのメカニズムも特徴と
する。加えて、既存の、可能性のある候補の予め演算されたテーブルを分析する
間に、アドバイザは、ログされた参照カウントとひとつの予め演算されたテーブ
ルの別のものによっての(書換え器を使用しての)書換え性とを使用する。
【0056】 D.サーバの統合 本発明は、ひとつの意味で、データベースサーバへ最大限に統合される予め演
算されたビューを支援し、性能最適化の範囲とメタデータをサーバと共有する能
力とを増大させる。クエリーは、捕捉され、ソフトウエアの個別の断片によって
でなく、データベースサーバ12によって書換えられる。
【0057】 最大限の統合の利点の中には、以下がある。集合情報は、データベースに対す
る全ての他のメタデータと共にシステムのテーブルに格納され、全てのデータベ
ース活動の知識を集中化する。この統合の結果は、予め演算されたビューが使用
されるか否かに拘らず、クエリーの編集と最適化のために拡張メタデータを使用
する一貫性と能力である。例えば、集合体テーブルデータが詳細データと同期し
ていない場合、システムは、即座にそれについて知り、(そうするよう要求され
ない限り)クエリーを書換えることにテーブルを使用しない。加えて、最適化ス
トラテジは、最大限の統合の結果としてクエリー処理システム18は知られてい
る。
【0058】III. 詳細な操作 A.概観 図7Aと7Bを参照すると、ひとつの実施の形態で、データベース管理者は、
以下のように、クエリー処理システム18によって使用される集合戦略を絶えず
改善できる。操作では、ユーザは、クエリーをデータベースサーバ12へネット
ワーク14上で送る(工程90)。当初、データベース管理者は、ひとつ以上の
予め演算されたテーブルを創成したかもしれず、してないかもしれない。予め演
算されたテーブルが創成されなかった場合、書換え器は、クエリーを書換えでき
ない;その代わり、クエリー処理システム18は、クエリーを執行するよう、デ
ータストア16の詳細テーブル46へ直接アクセスする。ひとつ以上の予め演算
されたテーブルが創成されている場合、書換え器は、予め演算されたテーブルを
使用してクエリーを書換えることを試みる(工程92)。アドバイザは、書換え
器によって書換えられたクエリーに対して(工程96)、および、適切な予め演
算されたテーブルが存在する場合に、書換えから利益を得るであろうクエリーに
対して(工程97)レポートを生成し(メタデータ層のログ94に格納する)。
時間期間後に(戻しのループ98でテーブルす)、データベース管理者は、アド
バイザによって創生された統計レポート(テーブル)にクエリーることによって
クエリーログを分析するようアドバイザを使用できる(工程100)。アドバイ
ザシステムテーブルにクエリーすることからの学習情報に基づき、データベース
管理者は、新規の予め演算されたテーブルを追加する(定義し、在住させる)こ
と、または、既存の予め演算されたテーブルを落とすことによって、既存の予め
演算されたテーブルセットを修正する(工程102)。データベース管理者は、
新規の予め演算されたテーブルの各々に対する予め演算されたビューも創成する
(工程104)。
【0059】 この方法によって、クエリー性能は改善するが、しかし、ユーザは同じセット
の詳細テーブル46に繰返しクエリーるので、データベーススキーマのユーザの
見解は変わらない。
【0060】 B.メタデータ層 メタデータ層は、2レベルの外部インタフェースを有する、つまり、データベ
ース管理者が集合体テーブルの情報を定義するRISQL拡張、および、データ
ベースサーバ12の他の構成要素と通信するためのプログラムのインタフェース
である。メタデータ層は、全てのメタデータ情報を追跡し、そのメタデータ情報
の異なる外部ビューを、システムテーブルによりデータベース管理者へ、コンパ
イラへ、およびローダへ提供する。ひとつの実施の形態で、メタデータ情報は、
データベース管理者によってのみRISQLを使用して創成され、修正されるこ
とができる。
【0061】 1.外部ユーザーインターフェース 上記のように、集合テーブルを定義するプロセスは、集合データを格納するた
めに使用されるテーブルの作成と、その後、集合テーブルのデータと詳細テーブ
ルのデータの間の関係を定義する集合ビューの定義とを含む。データベース管理
者は次の表現をもつ集合テーブルの定義を作成できる: CREATE VIEW[view_name]AS[query_expression]USING[ table_name]([ table_column_name]) ここで view_name は具体化されたビューの名前であり、table_nameは集合テー ブルの名前であり、またtable_column_nameは集合テーブルの列のリストであり 、その集合テーブルは、仮にSELECTステートメントとして表されたとするとクエ
リー表現によって返される列と一対一で順序よく対応する。ひとつの実施の形態
でquery_expressionは次の形に制限される: SELECT[grouping_column, or aggr_column] FROM[table_name_list] WHERE[join_predicate_list] GROUP BY[grouping_column] GROUP BY 列において指定された列はグルーピング列である。SELECT リストに
おけるグルーピング列は GROUP BY 節で指定された列と正確に一致していなけれ
ばならない。集合列は aggr(expr) の形の列であり、ここで aggr() は SUM()、
MIN()、 MAX()、COUNT()、あるいは COUNT(DISTINCT()) のひとつであり、また
expr は、詳細テーブル、数字、またはその両方におけるひとつまたは複数の列 から導かれる単純な表現である。この実施の形態で WHERE 節は、FROM 節にリス
トされたテーブルに関連する結合述語のみ含むことができる。結合述語は外部キ
ー/主キー関係を通じてのみテーブルを結合できる。更に、これらの外部キー/
主キー結合述語はクエリー表現において指定された詳細テーブルから外側に向か
ってのみ指定できる。この方法で、詳細テーブルは、それが結合の中心(すなわ
ち、外部キー/主キー関係はその位置から外側を指す)にあるので、あるいは全
ての集合列が導出されるテーブルがあるので識別される。
【0062】 集合テーブルの生成があるので、集合テーブルを落とすのは2段階のプロセス
となる。最初にデータベース管理者は、DROP VIEW 表現を使用する集合テーブル
と関連付けられたビューを落とす。次いでデータベース管理者は DROP TABLE 表
現を使用して集合テーブル自身を落とす。
【0063】 図8を参照して小売り状況で説明すると、売上スキーマ110は、多数の列か
らなる主キー114(timekey, mktkey, prodkey)と、ドル116とトランザク
ション118の列を一緒に持つ売上ファクトテーブル112を含む。売上ファク
トテーブル112は、時間テーブル120とマーケットテーブル122によって
表される時間次元とマーケット次元を有する。時間テーブル120は、日列12
6、月列128、および年列130と同様に、主キー124(timekey)を有す る。時間テーブル120は、日数から月数、月数から年数にと、多数対1への写
像があるので、逆正規化される。マーケットテーブル122は、地域アウトボー
ドテーブル132を含む(すなわち次元の次元)。
【0064】 ある実施例では、集合テーブル sales1_agg は、時間とマーケットの両方によ
る集合によって、次のように作り出される: create table sales1_agg( tkey int not null, mkey int not null, sum_dollars int, primary key (tkey,mkey), foreign key (tkey) reference Market); create view agg1view as select timekey,mktkey,sum(dollars) from sales group by timekey,mktkey using sales1_agg(tkey,mkey,sum_dollars); キー列による集合は、時間あるいはマーケットの次元のいずれによっても単純な
ロールアップが可能である。例えば、地域ごとの全売上げ、あるいは月別、年別
の売上げを要求するクエリーは、sales1_agg aggregate table から計算される 。キー列による集合の別の利点は、スター指標が集合テーブルに生成されること
である。例えばスター指標は sales1_agg(tkey,mkey) に生成されることが可能 である。これらの次元上で制約されるクエリーは集合テーブル上のスター結合に
よってもたらされる。
【0065】 他の実施例において、集合テーブル sales2_agg は、次のように非キー列によ
る集合によって生成される: create table sales2_agg( day int not null, sum_dollars int, primary key(day)); create view agg2view as select day, sum(dollars) from sales, time where sales.timekey=time.timekey group by day using sales2_agg(day,sum,dollars); sales2_agg 集合次元テーブルは、日毎にグループ化された売上げと時間から 、日付と合計(dollar)を選ぶクエリーに答えるために用いられる。すなわちsale
s2_agg は売上げテーブルから時間テーブルへの結合を除去する。しかし月別の 全売上げを計算するために、時間テーブルは各々の日の数字についてその月を選
び出すために結合されなければならない。すなわち日はユニーク列ではないので
、特別な別のプロセスが必要となる。
【0066】 非キーロールアップの実行は、次元の集合テーブルを定義することによって改
善できる。上の実施例では列 (day,month,year) と日付の主キーを持つ time_ag
g テーブルがクエリーの性能を改善するであろう。関連付けられたスター指標と
ともに、sales2_agg から time_agg への外部キー/主キー関係が加算される。 この場合、クエリーが年毎の全売上げ(クエリーに売上げと時間をネーミングす
る)を訊ねると、sales2_agg と time_agg を使用するためにそのクエリーが書 換えられ、そしてクエリーが出されるときにスター結合が使用される。
【0067】 データベース管理者は、非キー列から他の列へロールアップが可能となるロー
ルアップ階層を、次のように定義することができる: CREATE HIERARCHY[hierarchy_name](FROM[f_table(f_col)] TO[t_table(t_col)]ONfkname) この表現は、データベース管理者が、同じテーブルにあるかどうかという、2つ
の列間の多数とひとつの関係を定義できるようにする。階層は、DROP HIERARCHY
表現を用いて落とされる。
【0068】 2.外部APIの仕様 Meta Data Layerは、どの具体化ビューがクエリーに関係するか、そして、あ る列が他へロールアップされるかどうか、その場合どのようにしてロールアップ
されるか、を 書換え器 が判定できるようにすることによって、クエリーの書 換えを支援する。
【0069】 ある実施の形態では、どの具体化ビューがクエリーに関係するかを判定するた
めに、クエリー処理システムは Meta Data Layer にクエリーにあるテーブルの リストを送り、その Meta Data Layer は、互換性のある集合テーブルのリスト (解析ツリー、列マッピング、およびそれらが正当なものかどうか、を含む)を
返す。集合テーブルは、もし上でクエリーが定義されている(FROM節で)テーブ
ルが、クエリーでのこれらのテーブルのサブセットである場合、クエリーと互換
性がある。別の実施の形態では、クエリー処理システムは、Meta Data Layerに 対して、与えられた詳細テーブルに構築されたすべての集合をリクエストするこ
ともできる。
【0070】 ロールアップ(階層)情報と外部キー/主キー関係の組み合わせは、ある列が
他の列にロールアップされるかどうかを判定するために使用される。
【0071】 Meta Data Layer は特定のシステムテーブルを管理する。
【0072】 RBW_VIEWSテーブルは、ビューが具体化されるかどうかについての情報と、具 体化ビューについての他の一般情報を追跡する。RBW_VIEWSテーブルは次の列を 含む。すなわち、NAME、CREATOR、PRECOMPVIEW、PRECOMPVIEW_TABLE、DETAIL_TA
BLE、VALID、およびCOMMENTである。PRECOMPVIEW列はテーブルが具体化されるか
どうかを示す。PRECOMPVIEWが偽であれば、PRECOMPVIEW_TABLE、DETAIL_TABLE、
VALIDはすべて NULL である。PRECOMPVIEW が真であれば、PRECOMPVIEW_TABLE は、ビューがその中に具体化されるテーブルの名前を示し;DETAIL_TABLE は、 その上で集合テーブルが定義される詳細テーブルを示し、そして VALID は具体 化ビューにあるデータが詳細テーブルにあるデータと同期しているか否かを示す
【0073】 RBW_PRECOMPVIEWCOLUMNS テーブルは集合テーブルと詳細テーブルにある列の 関係を表示する。RBW_PRECOMPVIEWCOLUMNS テーブルは次の列、つまりTABLE_COL
UMN、 VIEW、および VIEW_COLUMN を含む。このテーブルを使用すると、適当な ビューとビュー列のマッピングは、その集合テーブル (TABLE_COLUMN) にある列
と集合テーブル名 (TABLE) を与えられて同定されることができる。
【0074】 RBW_COLUMNS テーブルは列のデータ形式についての情報を与える:RBW_VIEWTE
XT テーブルは列(すなわち列がグルーピング列か、集合列かどうか、および集 合列の表現)についての付加情報を与える。
【0075】 RBW_HIERARCHIES テーブルは列関係をリストしてロールアップ階層を追跡する
。RBW_HIERARCHIES テーブルは次の列:NAME、FROM_TABLE、FROM_COLUMN、TO_TA
BLE、TO_COLUMN、およびCONSTRAINT_NAME を含んでいる。CONSTRAINT_NAME列は 、FROM_TABLE 列が TO_TABLE 列と同じならば NULL であろう。
【0076】 3.内部の特徴 Meta Data Layer はシステムカタログにある構造(ブロックタイプ)のファミ
リを格納する。ある構造のファミリは予め演算されたされたテーブル列定義に一
致し、他の構造のファミリ はロールアップ階層定義に一致する。階層定義ブロ ック形式は主キー/外部キー関係構造にゆるやかに基づいている。階層定義とロ
ールアップ階層の両者は固定サイズであり、多数のインスタンスが単一ブロック
に適合している。
【0077】 データベース管理者がビュー定義を加えるかあるいは落とすとき、あるいは階
層定義を加えるかあるいは落とす場合は常に、システムカタログはその変更を反
映して修正される。これらの構造は外部キー/主キー関係を真似ているため、そ
のアクセス方法は類似している。
【0078】 Meta Data Layer は、データを取出すために 書換え器 へ少なくとも2つの インターフェースを提供 する。一番目のものは与えられた詳細テーブルに関連 づけられた、予め演算されたされたテーブルのリストを取出す。二番目のものは
、ロールアップパスが2つの列の間に存在するかどうかを判定する。もし存在す
れば、Meta Data Layer はロールアップパスのリストを生成する。もしFROM_COL
UMNが主キーか、またはゼロでないユニーク列であれば、あるいはFROM_COLUMNか
らTO_COLUMNへ、または機能的従属関係の移行セットを通じて、定義されたロー ルアップがあれば、ロールアップは可能である。
【0079】 C. 書換え器 書換え器の詳細な記載は、引用により本明細書中へ組み込まれた、米国特許出
願第09/049,784号,1998年3月27日出願、発明の名称「リレーシ
ョナルデータベースクエリーを書き換えるための方法」で提供される。
【0080】 D.アドバイザ 上記のように、アドバイザ は、予め演算されたされたどのテーブルが最大の クエリー性能の改善を与えるか、そしてこれらテーブルが現在も存在するか否か
を判定するに際して、データベース管理者を支援する。アドバイザはクエリーの
どのタイプが書換え器 によって書くことができるかを正確に知っているので、 アドバイザは、データベースに構築されるべき予め演算されたされたビューの種
類を、直接示唆することができる。アドバイザは、潜在的な予め演算されたビュ
ーと、存在するビューの価格−利益解析とを提供する。アドバイザは、データベ
ースに対する集合クエリーのログをアクティブにする能力も与える。ログファイ
ルはログが可能となるときか、システムがスタートアップするとき、あるいはデ
ータベース管理者によってアクティブになったときに作られる。この情報からデ
ータベース管理者は、データベース中の既存集合の使用を分析でき、また書換え
器とともにそれを生成するための可能性のある新しい集合を評価でき、クエリー
性能を改善できる。
【0081】 図9に示すように、アドバイザはユーザーのデータベースクエリー140をク
エリープロセスシステム18から受け取る。アドバイザ は書換え器によって書 換えられたクエリーのためにログレコードを作り出し、またもし適当な集合テー
ブルが存在すれば書換えられることから恩恵を蒙るであろうクエリーのためにロ
グレコードを生成する。そして Meta Data Layer のログ94にこれらのレコー ドを格納する。アドバイザ は、他のメタデータ同様に、階層34に関する情報 のようなログレコードを、ひとつかあるいはそれ以上の候補ビュー42を生成す
るために利用する。候補ビュー42と予め演算されたビュー36についての情報
もログ94に格納される。
【0082】 アドバイザはまた、アドバイザシステムテーブル(RBW_PRECOMPVIEW_ CANDITATESおよびRBW_PRECOMPVIEW_UTILIZATION)を含む統計要約142を作るた
めにメタデータ情報を使用する。データベース管理者はアドバイザシステムテー
ブルにクエリーすることによって、ログ94に含まれる情報を解析できる。アド
バイザシステムテーブルへのクエリーの結果は、データベース管理者によるクエ
リーを受ける新規のあるいは一時的なテーブルへ挿入されることができる。
【0083】 1.クエリー情報のログレコード アドバイザクエリーログレコードがイネーブルであるとき、アドバイザは、予
め演算されたビュー36のデータにアクセスするために書換えられる全クエリー
をログする。アドバイザはまた、クエリーを書換えるために使用される候補ビュ
ー42がもしあれば、これををログする。データベース管理者はRBW_PRECOMPVIE
W_CANDIDATESテーブルにクエリーをすることによって候補ビューにアクセスでき
る。アドバイザはまた、アドバイザログファイルへ、相関のあるサブクエリーに
ついての情報をログする。相関のあるサブクエリーは同じクエリーを多数回異な
る値で行う。クエリーの中の他のテーブルに関係(主キー/外部キー関係を経由
して)していないサブクエリーまたはテーブルを含むクエリーは、もし適当な予
め演算されたビューが存在していたときはこれらクエリーが書換えられるとして
も、ログされない。
【0084】 図10の、ひとつの実施の形態を参照すると、アドバイザは次のようにログレ
コードを生成する。アドバイザはユーザークエリー(工程150)の個々の集合
クエリーブロックを分析、解析する。集合クエリーブロックが、存在する予め演
算されたビュー(工程152)を使用するために書換え器によって書換えられた
場合、ログレコードが作り出される。もし書換えられたクエリーが付加的集合(
工程154)を含まなかった場合、ログレコードは、集合クエリーブロック(工
程156)を書換えるために使用された予め演算されたビューのSQLテキスト
を含むように生成される。同じログレコードが、もし書換えられたクエリーが付
加的集合を含むが(工程154)、より良好な候補ビューがクエリー性能にさら
なる改善を勧めなかった(工程158)場合、生成される(工程156);もし
良好な候補が推薦されれば(工程158)ログレコードは候補ビューのSQLテ
キストを含むように生成される(工程160;部分一致候補ビュー生成)。もし
Rewiterが集合クエリーブロックを書換えずに(工程152)候補ビューが推薦 されれば(工程162)、ログレコードは候補ビューのSQLテキストを含むよ
うに生成される(工程160;一致なしの候補ビュー生成)。もしRewiterが集 合クエリーブロックを書換えず(工程152)さらに候補ビューが推薦されなか
った場合(工程162)、ログレコードはされない(工程164)。
【0085】 次の情報はログファイルに格納される:タイムスタンプ;データベース名;詳
細テーブル識別子;クエリーに回答するために使用するビューの識別子(さもな
ければ NULL );ロールアップ情報;クエリーのためのまたクエリー内部の個々
の集合ブロックのための経過時間;この集合ブロックのためのSQLテキスト。
【0086】 2.候補ビューの生成 候補ビュー生成プロセスは、集合クエリーブロックの解析を含み、それは、も
し予め演算されたビューが作り出されれば、予め演算されたビューが集合クエリ
ーを書換えるために使用されるべきであると示唆されるかどうかを、判定するた
めのものである。このプロセスの最終結果は、予め演算されたビュー定義の選択
部分を定義するSQLテキストである。この定義を使用して作り出された予め演
算されたビュー(組み合わされた集合テーブルと共に)は、クエリーブロックを
実行するときに使用されることが保証される(より良好な予め演算されたビュー
が無く、すべての必要なビューの正当性とクエリー書換えセットテーブルがイネ
ーブルであるとして)。
【0087】 図11を参照すると、クエリーブロックB、それが組み合わされたクエリーQ
、および階層グラフFGが示されているが、書換え器 が集合クエリーブロック を書換えず、候補ビューが推奨されなかった場合には(一致しない候補ビュー生
成)、候補ビュー定義Vは次のように生成されよう。
【0088】 最初に、アドバイザ が、正規の予め演算されたビュー定義を生成することが 可能かどうかを判定する(工程190)。 ”正規の”予め演算されたビューの 定義は、システムによって支援される予め演算されたビューのクラスに依存し、
この定義は支援される予め演算されたビューのクラスにおける変更に適合するよ
うに修正される。加えて、アドバイザ はクエリーブロックが生成される予め演 算されたブロックを使用するために書換えられるかどうかを判定する。ひとつの
実施の形態では、ビュー定義は次の条件のいずれかが真であれば作り出される: (i)BのFROM節はサブクエリーあるいは同じテーブルの多数発生を含む; (ii)BのFROM節は予め演算されたのビューテーブルかシステムテーブルを含 む; (iii)ブロックBは行ポインタ、segids、あるいはサブクエリーのどれかの列
を参照する; (ix)Qのどのブロックも外部結合、リセットバイ、ブレークバイを持つか、 あるいは予め演算されたビューを参照するとき; (v)Bのプロジェクトリストがある特徴を持っているとき(その特徴はGROUP
BYによって変換されない)。
【0089】 (vi)Bの外部キー/主キー述語がサブクエリーを参照する; (vii)雪片スタイルのグラフはBのためには構築されない。この条件をチェッ
クするために、外部キー/主キーの述語と、FROM節にあるテーブルを使用して、
結合グラフを構築する。ふたつのテーブルAとBの間の外部キー/主キーの述語は
、参照しているテーブル(述語に外部キーを含むテーブル)から参照したテーブ
ル(主キーを含むテーブル)まで、エッジスターティングとして表される。結合
の中心を見つける(すなわち収入エッジが無いノード);これは候補ファクトテ
ーブル(F)である。残りのノードが候補ファクトテーブルから到達可能である かどうか、ノードがひとつ以上の収入エッジをもたないかどうかを判定する。結
合グラフ(JG)、ファクトテーブル(F)、および外部キー/主キー述語(P1) があとで使うために格納され (viii)クエリーの集合表現は、予め演算されたビューの定義において許容で
きる集合のクラスに入る; (ix)このブロックへ関係するサブクエリーに集合がある; (x)BのGROUP BYリストは予め演算されたビューの定義の許容できるGROUP BY
節を構成しない; (xi)グルーピングリストG(Bのオリジナルグルーピングリストと異なるこ ともある)が次のように構築されることはできない。G1を次から成るリストとし
て定義する:Bのテーブルを参照するすべての列は非外部キー/主キー述語に現 れ、SELECTリスト、およびBのグルーピングリスト、は集合表現の内部の列参照 を無視する。G1の ”グラフ互換”バージョンであるリストGを構築する(下の工
程206および208を参照)。もしそのようなGが構築できるなら、それを今 後使用するために格納する。
【0090】 第2に、アドバイザはビュー定義Vを次のように生成する(プロセス192) 。すべてのテーブルをVのFROM節にあるBのFROM節に置く(工程194)。WHERE 節に全ての外部キー/主キー述語(P1)を置く(工程196)。SELECTリストに
BとGの集合表現の全てを置く(工程200)。SELECT表現を生成するためにこれ
らの構成要素の全てを組み合わせる(工程202)。アドバイザは次のようにG1
からグラフ互換リストGを構築する(プロセス204)。Bの全てのグルーピング
列をGに入れる(工程206)。また、集合表現内部の列参照を無視して、非結 合述語とBのSELECTリストにある全ての列参照をGに入れる(工程207)。Gに 列を持つテーブルのリストTを構築する(工程208)。Gに列を持つ個々のテ ーブルのために(繰り返し工程209,210,211)、そのテーブルの主キ
ーがGにあるかどうかを判定する(工程212)。もしそうならそのテーブルの 全ての他の列をGから外す(工程214);そうでなければ列のどれかひとつが 非階層エレメントであるかどうかを決める(工程216)。もしそうならそのテ
ーブルの全ての列を外し、そのテーブルの主キーでそれらを置き換える(工程2
18)。最後に、階層グラフFGに含まれる情報をベースとしたGに残っている列 の幾つかのサブセットに機能的に依存しているGに個々の列を移動する。
【0091】 図12を参照すると、クエリーブロックB、それが組み合わされたクエリーQ
、および階層グラフFGが示されているが、付加集合とより良い候補を含んだ書換
えクエリーが推奨される場合は、候補ビュー定義Vは次のように生成される。
【0092】 第一に、ADVISORは正規の予め演算されたビュー定義を生成することが可能か どうかを決める(工程230)。 ”正規の”予め演算されたビューの定義は、 システムによって支援される予め演算されたビューのクラスに依存し、この定義
は支援される予め演算されたビューのクラスにおける変更に適合するように修正
されうる。加えて、アドバイザ はクエリーブロックが生成される予め演算され たブロックを使用するために書換えられるかどうかを判定する。ある実施の形態
では、ビュー定義は次の条件のいずれかが真ならば作り出される: (i)BのFROM節はいかなる予め演算されたビューをも含まない; (ii)Bはrowids、segids、あるいはsegnamesを参照する; (iii)Bは集合表現を持つひとつ以上の予め演算されたビューを有する; (iv)Bはひとつ以上の予め演算されたビューを持ち、そのいずれも集合表現 を持たない; (v)Bは、FROM節にひとつ以上のテーブルを持つサブクエリーを有するか、あ
るいは予め演算されたビューを参照するサブクエリーを有するか、あるいは集合
表現を持つサブクエリーを有するか、あるいはそのSELECTリストが単純な列参照
ではない表現を持つサブクエリーを有する。
【0093】 (vi)リバースエンジニアB1のための候補ビュー(B、予め演算されたビュー 定義、およびBのFROM節にあるサブクエリーを構成することによって作られる) は、非一致候補ビュー生成に関連して、上述の候補ビュー生成プロセスを使用し
て作られることはでき ない(工程192)。
【0094】 もし非一致候補ビュー生成テストが、上の工程(vi)で生成されたリバースエ
ンジニアクエリーB1をパスするならば、アドバイザ はB1から非一致候補ビュー を生成する(工程232)。
【0095】 3.統計報告書の生成 a.概観 上記のように、データベース管理者は、同じクエリーに答える他のビューに関
連する個々のビューの利用状況を理解し、個々のビューのコストと利益の感覚を
磨くためにアドバイザを使用できる。データベース管理者は、アドバイザを集合
クエリーの性能を改善する方法を決めるために使用することもできる;特に、ア
ドバイザはどのビューを生成するべきか、いくつのビューを作るべきかというこ
とをデータベース管理者に推奨できる。解析の範囲は一日単位に、また特定の詳
細なテーブルに絞ることができる。アドバイザは与えられた日付の範囲内で特別
に詳細なテーブルを参照するクエリーのためのログファイルを隅から隅まで調べ
る。もしデータベース管理者が一日の範囲を特定しないならば、アドバイザは特
定の詳細テーブルを参照するクエリーのために存在するアドバイザログファイル
全てを隅から隅まで調べる。特別に詳細なテーブルに関連した個々のビューのた
めに、報告書は、ビュー名、利用数(ビューがクエリーに答えるために使用され
る総回数)、ロールアップカウント数((階層関係を答えるために使用されたビ
ューの総回数)、およびビューのサイズを含む。アドバイザはまた、特別に詳細
なテーブルに関連した全ての具体化ビューと候補ビューのために、ログファイル
を走査することによって、あるいはRBW_VIEWSシステムテーブルにクエリーする ことによって、ビューのユニークリストを生成する。アドバイザは、解析スペー
スを定義するために、また従属グラフを生成するために、このリストを使用する
。その後それは、同じクエリーに答える他のビューに関して、グラフにおけるあ
る予め演算されたビューの利益を計算するためにコストの公式に適用される。
【0096】 RBW_PRECOMPVIEW_CANDIDATESテーブルは、あるクエリーの性能を改善する新規
予め演算されたビューを生成する利益を解析するために使用される情報を含む。
この情報はまた、どの予め演算されたされたビューを生成すべきであるかを判定
する際に、データベース管理者によって利用される。RBW_PRECOMPVIEW_CANDIDAT
ESテーブルは、ログされるクエリーに基づく個々の可能性のある候補ビューのた
めの一行と、個々の存在するビューのための一行を含む。 RBW_PRECOMPVIEW_CANDIDATESテーブルは次の列を含む:
【0097】
【表1】 SAMPLE_VIEW_NAME列は、データベース管理者がアドバイザのクエリーの性能を
改善するために小さなデータセットの上でアドバイザ 解析を実行することを可 能とする。SAMPLE_VIEW_NAME列上に制限されたとき、アドバイザ のクエリーの 範囲は列に参照されたビューの名前に制限される。データベース管理者は、デー
タベースにあるデータの代表的サンプルを含むところのサンプルビューを作るべ
きであり、そのサンプルビューは次のような特徴を持っている:詳細テーブルの
行のサブセットへ写像する;詳細テーブルの個々の列に一致する列を有する;お
よびサンプルビューの列のデータ形式は、詳細テーブルのデータ形式に正確に一
致する。
【0098】 RBW_PRECOMPVIEW_CANDIDATESテーブルは、あるクエリーの性能を助けるために
新しいビューを作り出しながら、データベース管理者を案内するために使用され
る。
【0099】 例えば、データベースが集合テーブルを含まないと仮定し、データベース管理
者は、何が最も利益に結びつく集合ビューであるか、Sales tableに生成すべき 集合ビューはどれか、を知りたがっていると仮定しよう: Select reference_count,benefit,text,seq From rbw_precompview_candidates Where detail_table_name='SALES'; 上の解析の範囲はさらに一日の範囲に絞られる: Select reference_count,benefit,text,seq From rbw_precompview_candidates Where detail_table_name='SALES' and start_date=('1996-01-01' ) and end_date=('1996-03-30'); RBW_PRECOMPVIEW_UTILIZATIONテーブルは、特定の詳細テーブルのために作り 出された予め演算されたのビューの値を解析するデータベース管理者によって使
用される情報を含む。それはまた、特定のビューの利用に対する洞察と、同じク
エリーに答える他のビューに関するビューのコストと利益を提供する。RBW_PREC
OMPVIEW_UTILIZATIONテーブルは、データベースで定義された全ての正当な予め 演算されたビュー用の一行を持ち、そのビューはデータベース管理者によって正
当な状態にセットされるビューを含んでいる。 RBW_PRECOMPVIEW_UTILIZATIONテーブルは、次の列を含んでいる。
【0100】
【表2】
【0101】 NON_EXACT_MATCH_COUNT列は、幾つかの付加的集合が必要とされたクエリーへ の回答を数えるために、何回データベースにあるビューが使用されたを同定する
。この列のカウントが高ければ、他の予め演算されたビューがクエリー性能を改
善できるであろうことを示唆する。正確な一致は、予め演算されたビューに付加
的集合を実行することなしに、クエリーが予め演算されたビューによって回答さ
れるときに起きる。そのクエリーに対する幾つかの予想があり得るし(例えば、
Where節かHaving節)、また幾つかのフォーマッティングがあり得るが(例えば 、Order By節)、特別な集合はない(例えば、Group By、Sum、Min、またはMax )。例えば、日数の粗さを持った詳細テーブル、月数の粗さを持ったそのテーブ
ル上で定義された予め演算されたビュー、およびいずれもドルの総計を含む詳細
テーブルと予め演算されたビューを考慮する。一年間で何ドルが生み出されたか
に関するクエリーは月次テーブルによって回答されるが、直接回答されることは
ない--更なる集合がクエリーに回答するために計算されなければならない。
【0102】 一年間のドル総計についてクエリーに回答するために予め演算されたビューが
アクセスされるたびに、NON_EXACT_MATCH_COUNT列は1だけ増分される。もしク エリーへの回答が、予め演算されたビューにあるものと正確には一致しないとき
は、付加的集合が実行されるときや他のテーブルへの結合が起きるときも含むが
、その列は増分される。
【0103】 RBW_PRECOMPVIEW_UTILIZATIONテーブルは、ある特定のベーステーブルのため に具体化されたビューのためのビュー利用情報を記述する。例えば、データベー
ス管理者はUtilizationテーブルに、Salesテーブル上に存在するビューがいかに
うまく利用されているかを見るためにクエリーすることができる: select name, reference_count, rollup_count From rbw_precompview_utilization Where detail_table_name='SALES'; 上記の解析の範囲は、さらに日の範囲に絞ることができる: select name, reference_count, rollup_count From rbw_precompview_utilization Where detail_table_name='SALES'; start_date=date('1996-01 -01') and end-date=date('1996-03-30'); [start_date, end_date]列に制限が無い場合、解析の範囲は全ての存在するア
ドバイザ Logファイルになろう。他の実施例として、データベース管理者は、セ
ールスに存在するビューのためのビュー利用状況、ビュー利益、およびビューサ
イズを知るためにクエリーを出すことができる: select name, reference_count, benefit, size From rbw_precompview_utilization Where detail_table_name='SALES';
【0104】 b.解析スペース定義 図13を参照すると、ひとつの実施の形態において、アドバイザは次のように
解析スペースを定義する。スタートすると、アドバイザはHash-Directory を生 成する(工程170)。アドバイザは既存の予め演算されたビューを持ってHash
-Directory に在住する(工程172)。アドバイザは、特定の日の範囲内の日 付を持つ、ログ64に格納されているログクエリーの全てを同定する。アドバイ
ザは、特定の詳細テーブルを参照するクエリーのために同定されたクエリーを抽
出する(工程176)。個々の特定の詳細テーブルを参照するクエリーのために
アドバイザは、グルーピング列への参照を含むクエリー構造を生成する(工程1
78)。
【0105】 アドバイザはクエリーをグルーピング列によって分類して、各クエリーがその
グルーピング列上に置かれた適切なスロットに細分化されるようにする(工程1
80)。不一致があるとき、そのグルーピング列が他と異なる場合には、アドバ
イザは Hash-Directory にその要素を加え;他方、もしその集合表現が異なる場
合には、アドバイザは集合表現のリストに集合表現を加える。個々の候補ビュー
については、アドバイザは集合経過時間のトラックと、ビューへの参照回数をキ
ープする。この点でアドバイザは Hash-Directory にある各要素のためにSQL
テキストを生成する(工程182)。
【0106】 c.解析スペース上に構造をインポーズする 図13を参照して、ビュー定義が Hash-Directory の各要素のために生成され
たあと、アドバイザは書換え器の能力上に築かれた従属グラフを構築する(工程
240)。グラフの2つの要素は、もしひとつの要素のビュー定義が2番目の要
素のビュー定義の見地から書換えられるならば、指示されたエッジによって関連
付けられる。グラフは候補ビューのひとつ以上のペアレントノードを生成するこ
とによって完成される。ペアレントノードはそのチャイルドノードに比較してよ
り細かい粗さのノードである。グラフを引き伸ばすためにひとつのパスが、2つ
以上のノードを組み合わせることによってペアレントノードを生成するために、
リーフノードからルートノードへと作られる。ペアレントノードは、組み合わさ
れたグルーピング列を含む。リーフノードを除いた個々のレベルで、2つ以上の
チルドレンの組み合わせを通じて生成されたノードがあり、ログファイルの処理
から作られるアクチャルノードがある。ひとつの実施の形態では、もし、ノード
のひとつがアクチャルノードであったなら、その場合に限り、すなわちこれはグ
ラフにおけるノード数を最小化するので、ふたつのノードがペアレントを作るた
めに組み合わされる。グラフのルートノードはデータの最も少ない粗さを表す(
すなわち、ファクトテーブル)。
【0107】 d.コスト対利益解析の実行 従属グラフが生成された後、アドバイザは、同一のクエリーに答えるために使
用された他のビューと比較したときの個々のビューの利益を判定するために、従
属グラフへコストの公式を適用する(工程242;図13)。コストモデルは、
各ビューと関連づけられたスペースコスト(すなわち、行数)を持つ指示された
グラフを、入力として仮定している。ここで使用されたように、グラフの2つの
要素(ビュー)の間の従属関係は≦で記号付けがされている。グラフの要素a,
bに関しては、a≦bのときのみ、bはaのアンセスタである。もしC(v)がビュ
ーvのコストであるとすると、従属グラフのノードのセットSに関するビューvの 利益、B(v,S)、は次のように定義される:
【0108】
【式1】 ここで、各々についてw≦u、ビューuについてもしC(v)<C(u)ならばBw=C(v)-
C(u)、これはw≦uのようなSにおける最小コストであり;一方、Bw=0である。 このようにvの利益は、それ自身を含む、ビューを評価するコストをいかに改善 できるかを考えることによって計算される。vがカバーする各ビューwに代わって
、vを使ってwを評価するコストは、wを評価するための最も安い方法をオファー されたSからのどのビューでも構わないが、それを使ったコストと比較される。 もしvのコストがコンペティタのコストよりも少なければ、その差は、実現され たビューとしてvを選択する利益の一部分を表わす。総利益B(v,S)はビューw全体
に渡っての合計であり、wを評価するためにvを使用する利点がある。
【0109】 利益計算に使用されるべきである従属グラフノードのセットSは、次の方法を 使用して生成される。
【0110】 S=[root fact table node] for(i=0;i<number of nodes in dependency graph;i+ +)[ select a view "v" in graph such that V is not in S and such that B(v,S) is maximized; S=S union [node representing "v"] ] グラフにおけるビューが、クエリーで要求される確率と同じ確率を持つという
見込みはない。ビューがクエリーされる頻度を表す確率は、それゆえに各ビュー
と関連している。ビューvの確率は、グラフにおける全てのビューへの参照の全 回数を越える、vへの参照の全回数である。処理された行数の見地から測定され るべきビューvの利益をノーマライズするために、確率Prvはvへの全参照回数と して再定義される(グラフにおける全てのビューへの全参照回数を越えるvへの 全参照回数とは対照的に)。この公式のもとで、ビューのセットSと関連するビ
ューvの利益B(v,S)は次式で与えられる:
【0111】
【式2】 予め演算されたビューのサイズはすでにビューにおける行数から判定されてい
る。候補ビューのサイズは未知であるからアドバイザはこれらのビューのサイズ
を評価しなければならない。ある実施の形態では、アドバイザは、統計モデルの
上にコストモデル−詳細データの小さなサブセットであるが−を走らせることに
よって、候補ビューのサイズを評価する。データベース管理者は詳細データ(ビ
ューとして)のサブセットを定義でき 、その上にコストモデルが走る。この方 法では、実際にビューを具体化することによって、候補ビューのサイズが評価さ
れる。データベース管理者はまたアドバイザに、ビューによってそのテーブル上
に表される詳細テーブルのサンプルを与える。
【0112】 他の実施の形態では、サンプリングと解析的方法が、グラフにおける最大要素
の具体化から、異なるビューのサイズを計算するために使用される(すなわち各
次元での最大属性によってグループ化するビュー)。第3の実施の形態では、ア
ドバイザ は、クエリー実行時間におけるポテンシャルビューサイズをダイナミ ックに計算する。他の実施の形態では、データベース管理者はアドバイザに、次
元の各属性のためのある数の確定値と、全ての可能で興味ある相関値を与える;
この情報からアドバイザはグラフにおける各ビューのサイズを評価する。
【0113】 コストの公式が従属グラフへ適用されたあと、アドバイザ は、データベース 管理者によってクエリーされるかもしれない統計報告書を生成する(工程244
)。
【0114】 4.アドバイザ システムテーブルのクエリー結果翻訳 予め演算されたビューを生成するときに、コストと利益がトレードオフの関係
になることが常である。コストはディスクスペース、生成時間、ロード時間、管
理時間である。利益はより良いクエリー性能である。ユーザーは常により早い性
能を好む。データベース管理者はこのトレードオフを評価すべきであり、どの予
め演算されたビューが生成されるべきでどれが消去されるべきであるかを判定し
なければならない。アドバイザシステムテーブル上でのクエリーは、データベー
ス管理者がこれらの判定をするときに役に立つ。
【0115】 RBW_PRECOMPVIEW_UTILIZATIONとRBW_PRECOMPVIEW_CANDIDATESテーブルのBENEF
IT列は、与えられたアドバイザ runのビューのために相対的な利益の測定を提 供する。BENEFIT列の数は、対応する予め演算されたビューで処理される必要の 無い、行数の測定である。
【0116】 RBW_PRECOMPVIEW_UTILIZATIONとRBW_PRECOMPVIEW_CANDIDATESテーブルのSIZE 列は、予め演算されたビューあるいは候補ビューにおける行数を特定することで
ある。一般に小さな行数を持ったビューは、より大きな行数を持つビューほどに
は高くつかない。REDUCTION_FACTOR列は詳細テーブルに関するビューサイズの比
を与える。ビューのサイズとリダクションファクタの両者は、特別なビューのコ
ストと利益を評価するときに考慮されるべきである。
【0117】 REFERENCE_COUNT列は予め演算されたビューが何回使用されたか(RBW_PRECOMP
VIEW_UTILIZATIONテーブル)あるいは使用されていたであろうか(RBW_PRECOMPV
IEW_CANDIDATESテーブル)を特定する。一般にもしこの数字が小さければ、関係
するビューはデータベースとして特に有益とは言えない。
【0118】 つまり、それ自身によるいかなる特定の列における良い数字も、一般にビュー
を生成する、あるいは消去する理由を強いることにはならない。代わりにビュー
に関連する全ての数字は、そのビューの数字を評価するときに、ともに考慮され
るべきである。加えて特殊なビューのための結果は、与えられた詳細テーブルの
ための全てのビューの前後関係において考慮されるべきである。
【0119】 他の実施の形態は請求の範囲内にある。例えば上記実施の形態の多くは集合ク
エリーと予め演算された集合クエリーの前後関係において説明された。本発明は
他の実行に同様に適用する。このように集合を含まない予め演算されたビューは
、予め演算されたビュー処理システム20によって定義され生成されることがで
き、また書換え器とアドバイザによって使用されることができる。
【0120】 他の実施の形態では、データベース管理者は、ある回数以上参照されたビュー
、または時間のしきい値を越える集合実行時間(すなわち各クエリーの集合ブロ
ックのビュー参照経過時間の合計)を持ったビューへのアドバイザの問い合わせ
を制限することができる。その代わりに従属グラフはノードの最小数(しかし許
容できる)へ制限することができる。
【0121】 更なる他の実施の形態は請求の範囲内にある。
【図面の簡単な説明】
【図1A】 製品テーブル、売上テーブル、時間テーブル、および予め演算されたテーブル
の図式である。
【図1B】 製品テーブル、売上テーブル、時間テーブル、および予め演算されたテーブル
の図式である。
【図1C】 製品テーブル、売上テーブル、時間テーブル、および予め演算されたテーブル
の図式である。
【図1D】 製品テーブル、売上テーブル、時間テーブル、および予め演算されたテーブル
の図式である。
【図2】 ファクトテーブルとその関連する次元との図式である。
【図3】 ネットワーク上でデータベースサーバへ連結されたクライアントの図式である
【図4】 ビュー、テーブル、および階層間の関係の図式である。
【図5A】 集合体の店_売上テーブルを含む、小売スキーマの図式である。
【図5B】 売上テーブルとその関連する次元の図式である。
【図6】 集合体テーブルと、関連する予め演算されたビューとを創成する方法の図式で
ある。
【図7A】 予め演算されたビューを管理する方法のフロー図である。
【図7B】 データベースサーバの構成要素の図式である。
【図8】 集合体テーブルと、その関連する次元との間の外部キー/主キーの関係の図式
である。
【図9】 クエリー情報にログし、ログ、階層、および候補と予め演算されたビューとに
関する情報に含まれた情報を含む、メタデータに基づき、候補ビューと要約の統
計とを生成するよう構成されたアドバイザの図式である。
【図10】 少なくとも一部分はユーザ集合体クエリーブロックに基づき、ログレコードを
生成する方法である。
【図11】 少なくとも一部分はユーザークエリー履歴に基づき、候補ビューと統計レポー
トとを生成する方法のフロー図である。
【図12】 少なくとも一部分はユーザークエリー履歴に基づき、候補ビューと統計レポー
トとを生成する方法のフロー図である。
【図13】 少なくとも一部分はユーザークエリー履歴に基づき、候補ビューと統計レポー
トとを生成する方法のフロー図である。
───────────────────────────────────────────────────── フロントページの続き (31)優先権主張番号 60/079,670 (32)優先日 平成10年3月27日(1998.3.27) (33)優先権主張国 米国(US) (31)優先権主張番号 09/049,784 (32)優先日 平成10年3月27日(1998.3.27) (33)優先権主張国 米国(US) (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),AU,BR,C A,JP,MX (72)発明者 コール, リチャード, エル. アメリカ合衆国, カリフォルニア州, ロス ガトス, ジョンソン アヴェニュ ー 300 (72)発明者 ハスラム, エドワード, ピー. アメリカ合衆国, カリフォルニア州, サン フランシスコ, 22エヌディ スト リート 3738 (72)発明者 ジャザイェリ, ナシ アメリカ合衆国, カリフォルニア州, サンタ クララ, サラトガ アヴェニュ ー 141 ナンバー123ビー (72)発明者 ジョンソン, ギャルト アメリカ合衆国, カリフォルニア州, キャンベル, レイルウェイ アヴェニュ ー 500 ナンバー102 (72)発明者 マッケーナ, ウィリアム, ジェイ. アメリカ合衆国, カリフォルニア州, サンタ クルーズ, エルム ストリート 211 (72)発明者 ウィルハイト, デイヴィッド, ジー. ジュニア アメリカ合衆国, カリフォルニア州, サンタ クララ, ヴィスタ クラブ サ ークル 1543 ナンバー303 Fターム(参考) 5B075 ND04 ND34 PP12 PP26 PQ02 QT06 UU06 【要約の続き】

Claims (40)

    【特許請求の範囲】
  1. 【請求項1】 データベースについてのユーザークエリーに返答するために
    予め演算されたビューを処理する方法であって、 予演算ストラトジの有効性についてのユーザデータベースクエリーに応答して
    、ユーザーデータベースクエリー履歴に基づき、前記データベースに対する全て
    の可能なビューのサブセットから構成される分析スペースを定義する工程と、 前記分析スペースにおける前記ビューを特徴付ける工程と を含む方法。
  2. 【請求項2】 データベースについてのユーザークエリーに返答するために
    予め演算されたビューを処理する方法であって、 前記データベースについてのユーザークエリーを分析する工程と、 前記ユーザークエリーに基づき候補ビューを生成する工程と を含む方法。
  3. 【請求項3】 データベースについてのユーザークエリーに返答するために
    予め演算されたビューを処理する方法であって、 前記データベースに対する全ての可能なビューから成るひとつのサブセットで
    構成される分析スペースを定義する工程と、 前記データベースに含まれる前記データから成るひとつのユーザ定義サブセッ
    トに基づき、前記分析スペースへコスト公式を適用する工程と を含む方法。
  4. 【請求項4】 データベースについてのユーザークエリーに返答するために
    予め演算されたビューを処理する方法であって、 2つ以上の成分ビューの組合せで構成される候補ビューを含む分析スペースを
    定義する工程と、 前記分析スペースにおけるビューを特徴付ける工程と を含む方法。
  5. 【請求項5】 データベースについてのユーザークエリーに返答するために
    予め演算されたビューを処理する方法であって、 クエリー書換えファシリティの能力に基づき、前記データベースに対する全て
    の可能なビューから成るひとつのサブセットで構成される分析スペース上にスト
    ラクチャを賦課する工程と、 前記分析スペースにおける前記ビューを特徴付ける工程と を含む方法。
  6. 【請求項6】 更に、受取られたユーザークエリーに対するログ記録を生成
    する工程を含む、請求項1、2、3、4または5に記載の方法。
  7. 【請求項7】 ユーザークエリーに対するログ記録を生成する工程は、前記
    クエリーが予め演算されたビューを使用するよう書換えられたか否かを判定する
    工程を含む、請求項6に記載の方法。
  8. 【請求項8】 ログ記録を生成する工程は、書換えられたユーザークエリー
    が集合を含むか否かを判定する工程を含む、請求項6に記載の方法。
  9. 【請求項9】 ログ記録を生成する工程は、ユーザークエリーを書換えるた
    めに使用され得る候補ビューを識別する工程を含む、請求項6に記載の方法。
  10. 【請求項10】 クエリーに対して生成された前記ログ記録は、前記クエリ
    ーを書換えるために使用される予め演算されたビューについての情報を含む、請
    求項6に記載の方法。
  11. 【請求項11】 前記候補ビューは、SQLで生成される、請求項2に記載
    の方法。
  12. 【請求項12】 前記候補ビューは、メタデータに基づき生成される、請求
    項2に記載の方法。
  13. 【請求項13】 前記候補ビューは、前記データベースにおける関数的従属
    性に基づき生成される、請求項12に記載の方法。
  14. 【請求項14】 メタデータは、ユーザ規定の階層を含む、請求項12に記
    載の方法。
  15. 【請求項15】 前記候補ビューは、クエリー処理システムの能力に基づき
    生成される、請求項2に記載の方法。
  16. 【請求項16】 前記分析スペースは、クエリー書換えファシリティの能力
    に基づき定義される、請求項1、3または4に記載の方法。
  17. 【請求項17】 前記クエリー書換えファシリティは、前記分析スペース上
    にストラクチャを賦課するよう構成される、請求項16に記載の方法。
  18. 【請求項18】 前記賦課されたストラクチャは、前記分析スペースにおけ
    るビュー間の階層関係を示すグラフを含む、請求項5または17に記載の方法。
  19. 【請求項19】 前記分析スペースは、ビュー間の階層関係に基づき定義さ
    れる、請求項1、3または4に記載の方法。
  20. 【請求項20】 前記定義された分析スペースは、ユーザークエリー履歴に
    基づき生成される候補ビューを含む、請求項1、3または4に記載の方法。
  21. 【請求項21】 前記分析スペースにおける前記ビューを特徴付ける工程は
    、予め演算されたビューの利用状況の測度を発生する工程を含む、請求項1、4
    または5に記載の方法。
  22. 【請求項22】 前記分析スペースにおける前記ビューを特徴付ける工程は
    、現行の予演算ストラトジの有効性を反映するレポートを生成する工程を含む、
    請求項1、4または5に記載の方法。
  23. 【請求項23】 前記分析スペースにおける前記ビューを特徴付ける工程は
    、創成され得る候補ビューについての情報を含むレポートを生成する工程を含む
    、請求項1、4または5に記載の方法。
  24. 【請求項24】 前記分析スペースにおける前記ビューを特徴付ける工程
    は、前記分析スペースにおける他のビューに対する候補ビューの利点の測度を発
    生する工程を含む、請求項1、4または5に記載の方法。
  25. 【請求項25】 前記分析スペースにおける前記ビューを特徴付ける工程は
    、前記分析スペースへコスト公式を適用する工程を含む、請求項1、4または5
    に記載の方法。
  26. 【請求項26】 データベースについてのユーザークエリーに返答するため
    に予め演算されたビューを処理するための装置であって、 クエリープロセッサと、 ユーザーデータベースクエリー履歴に基づき、前記データベースに対する全て
    の可能なビューから成るひとつのサブセットから構成される分析スペースを定義
    することによって、および、前記分析スペースにおける前記ビューを特徴付ける
    ことによって、予演算ストラトジの有効性についてのユーザーデータベースクエ
    リーに応答するよう構成されるアドバイザと を備える装置。
  27. 【請求項27】 データベースについてのユーザークエリーに返答するため
    に予め演算されたビューを処理するための装置であって、 クエリープロセッサと、 前記データベースについてのユーザークエリーを分析し、前記ユーザークエリ
    ーに基づき候補ビューを生成するよう構成される予め演算されたビュープロセッ
    サと を備える装置。
  28. 【請求項28】 データベースについてのユーザークエリーに返答するため
    に予め演算されたビューを処理するための装置であって、 クエリープロセッサと、 クエリー書換えファシリティの能力に基づき、前記データベースに対する全て
    の可能なビューから成るひとつのサブセットからストラクチャされる分析スペー
    ス上に構造を賦課し、前記分析スペースにおける前記ビューを特徴付けるよう構
    成されるアドバイザと を備える装置。
  29. 【請求項29】 データベースについてのユーザークエリーに返答するため
    に予め演算されたビューを処理するための装置であって、 クエリープロセッサと、 前記データベースに対する全ての可能なビューから成るひとつのサブセットか
    ら構成される分析スペースを定義し、前記データベースに含まれる前記データの
    ユーザ定義サブセットに基づき、前記分析スペースへコスト公式を適用するよう
    構成されるアドバイザと を備える装置。
  30. 【請求項30】 サーバ上に格納されたデータベースについてのユーザーク
    エリーに返答するためのシステムであって、 前記サーバ内へ統合され、ユーザークエリーに応答するよう構成されるクエリ
    ー処理システムと、 前記サーバ内へ統合され、前記データベースについてのユーザークエリーの予
    め演算された結果を処理するよう構成される、クエリー処理システムと を備えるシステム。
  31. 【請求項31】 前記クエリー処理システムは、予め演算されたビューを演
    算するよう構成される、請求項30に記載のシステム。
  32. 【請求項32】 前記クエリー処理システムは、前記データベースでの変更
    を反映するために予め演算されたビューを更新するよう構成される、請求項30
    に記載のシステム。
  33. 【請求項33】 前記クエリー処理システムは、予め演算されたビューを管
    理するよう構成される、請求項30に記載のシステム。
  34. 【請求項34】 前記クエリー処理システムは、予め演算されたビューを使
    用してユーザークエリーを書換えるよう構成される書換え器を含む、請求項30
    に記載のシステム。
  35. 【請求項35】 前記クエリー処理システムは、予め演算されたビューとユ
    ーザークエリー履歴とに関する情報をユーザへ提供するよう構成される、請求項
    30に記載のシステム。
  36. 【請求項36】 前記クエリー処理システムは、予演算ストラトジの有効性
    を分析するよう構成されるアドバイザを含む、請求項30に記載のシステム。
  37. 【請求項37】 前記クエリー処理システムは、ユーザークエリー履歴に基
    づき、前記データベースに対する全ての可能なビューのサブセットから構成され
    る分析スペースを定義するよう構成される、請求項30に記載のシステム。
  38. 【請求項38】 前記クエリー処理システムは、候補ビューを生成するよう
    構成される、請求項30に記載のシステム。
  39. 【請求項39】 前記クエリー処理システムは、データベースのメタデータ
    を利用するよう構成される、請求項30に記載のシステム。
  40. 【請求項40】 前記クエリー処理システムは、関数的従属性を利用するよ
    う構成される、請求項30に記載のシステム。
JP2000541606A 1998-03-27 1999-03-25 予め演算されたビューの処理 Ceased JP2002510088A (ja)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US7967198P 1998-03-27 1998-03-27
US7967098P 1998-03-27 1998-03-27
US7967998P 1998-03-27 1998-03-27
US09/049,784 1998-03-27
US09/049,784 US6199063B1 (en) 1998-03-27 1998-03-27 System and method for rewriting relational database queries
US60/079,670 1998-03-27
US60/079,671 1998-03-27
US60/079,679 1998-03-27
PCT/US1999/006297 WO1999050762A1 (en) 1998-03-27 1999-03-25 Processing precomputed views

Publications (1)

Publication Number Publication Date
JP2002510088A true JP2002510088A (ja) 2002-04-02

Family

ID=27489284

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000541606A Ceased JP2002510088A (ja) 1998-03-27 1999-03-25 予め演算されたビューの処理

Country Status (7)

Country Link
US (3) US6594653B2 (ja)
EP (1) EP1066574A4 (ja)
JP (1) JP2002510088A (ja)
AU (1) AU761900B2 (ja)
BR (1) BR9909896A (ja)
CA (1) CA2326513C (ja)
WO (1) WO1999050762A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002163290A (ja) * 2000-09-27 2002-06-07 Microsoft Corp クエリ最適化のためのコストに基づく具体化ビューの選択
JP2005267612A (ja) * 2004-03-18 2005-09-29 Microsoft Corp 暗黙の述部を使用する改良されたクエリ・オプティマイザ
JP2007066017A (ja) * 2005-08-31 2007-03-15 Internatl Business Mach Corp <Ibm> データベースに対するアクセスを制御するシステム、およびその方法
JP2008547086A (ja) * 2005-06-15 2008-12-25 インターレース・システムズ・インコーポレイテッド 大きなデータセットの解析中に整合性を維持するための方法および装置
JP2015515671A (ja) * 2012-06-27 2015-05-28 エヌイーシー ラボラトリーズ アメリカ インクNEC Laboratories America, Inc. 進化的な分析のためのシステム
JP2019040409A (ja) * 2017-08-25 2019-03-14 Kddi株式会社 データベース管理装置、データベース管理方法、及びデータベース管理プログラム

Families Citing this family (228)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7320001B1 (en) * 1999-01-15 2008-01-15 Hon Hai Precision Industry, Ltd. Method for visualizing information in a data warehousing environment
US7007029B1 (en) * 1999-01-15 2006-02-28 Metaedge Corporation System for visualizing information in a data warehousing environment
US7233952B1 (en) * 1999-01-15 2007-06-19 Hon Hai Precision Industry, Ltd. Apparatus for visualizing information in a data warehousing environment
US20020072951A1 (en) * 1999-03-03 2002-06-13 Michael Lee Marketing support database management method, system and program product
SE516562C2 (sv) * 1999-03-12 2002-01-29 Qliktech Internat Ab Förfarande för extrahering av information från en databas
US6370522B1 (en) * 1999-03-18 2002-04-09 Oracle Corporation Method and mechanism for extending native optimization in a database system
DK173451B1 (da) * 1999-04-16 2000-11-20 Targit As Fremgangsmåde, apparat og databærer til behandling af forespørgsler til en database
US7650355B1 (en) 1999-05-21 2010-01-19 E-Numerate Solutions, Inc. Reusable macro markup language
US9268748B2 (en) 1999-05-21 2016-02-23 E-Numerate Solutions, Inc. System, method, and computer program product for outputting markup language documents
US9262383B2 (en) 1999-05-21 2016-02-16 E-Numerate Solutions, Inc. System, method, and computer program product for processing a markup document
US9262384B2 (en) 1999-05-21 2016-02-16 E-Numerate Solutions, Inc. Markup language system, method, and computer program product
US6920608B1 (en) * 1999-05-21 2005-07-19 E Numerate Solutions, Inc. Chart view for reusable data markup language
US7249328B1 (en) * 1999-05-21 2007-07-24 E-Numerate Solutions, Inc. Tree view for reusable data markup language
US6889260B1 (en) * 1999-06-10 2005-05-03 Ec Enabler, Ltd Method and system for transferring information
JP3914662B2 (ja) * 1999-06-30 2007-05-16 株式会社日立製作所 データベース処理方法及び実施装置並びにその処理プログラムを記憶した媒体
US7133865B1 (en) * 1999-07-21 2006-11-07 Torben Bach Pedersen Method and systems for making OLAP hierarchies summarisable
US7219073B1 (en) * 1999-08-03 2007-05-15 Brandnamestores.Com Method for extracting information utilizing a user-context-based search engine
US6385604B1 (en) * 1999-08-04 2002-05-07 Hyperroll, Israel Limited Relational database management system having integrated non-relational multi-dimensional data store of aggregated data elements
US6408292B1 (en) 1999-08-04 2002-06-18 Hyperroll, Israel, Ltd. Method of and system for managing multi-dimensional databases using modular-arithmetic based address data mapping processes on integer-encoded business dimensions
GB9924523D0 (en) * 1999-10-15 1999-12-15 Univ Strathclyde Database processor
US6700590B1 (en) * 1999-11-01 2004-03-02 Indx Software Corporation System and method for retrieving and presenting data using class-based component and view model
US6886005B2 (en) * 2000-02-17 2005-04-26 E-Numerate Solutions, Inc. RDL search engine
CA2299553A1 (en) * 2000-02-25 2001-08-25 Ibm Canada Limited-Ibm Canada Limitee Efficient determination of homogeneous rectangles in a binary matrix
US20020029207A1 (en) * 2000-02-28 2002-03-07 Hyperroll, Inc. Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein
US6493708B1 (en) * 2000-03-02 2002-12-10 Oracle Corporation Techniques for handling function-defined hierarchical dimensions
US7707159B2 (en) * 2000-03-02 2010-04-27 Actuate Corporation Method and apparatus for storing semi-structured data in a structured manner
US20020091677A1 (en) * 2000-03-20 2002-07-11 Sridhar Mandayam Andampikai Content dereferencing in website development
US6662174B2 (en) * 2000-04-17 2003-12-09 Brio Software, Inc. Analytical server including metrics engine
US7072897B2 (en) * 2000-04-27 2006-07-04 Hyperion Solutions Corporation Non-additive measures and metric calculation
US6732115B2 (en) * 2000-04-27 2004-05-04 Hyperion Solutions Corporation Chameleon measure and metric calculation
US6748394B2 (en) 2000-04-27 2004-06-08 Hyperion Solutions Corporation Graphical user interface for relational database
US7080090B2 (en) 2000-04-27 2006-07-18 Hyperion Solutions Corporation Allocation measures and metric calculations in star schema multi-dimensional data warehouse
US7167859B2 (en) * 2000-04-27 2007-01-23 Hyperion Solutions Corporation Database security
US6941311B2 (en) * 2000-04-27 2005-09-06 Hyperion Solutions Corporation Aggregate navigation system
WO2001086505A2 (en) * 2000-05-05 2001-11-15 Raytheon Company Method and system for accessing data in a database warehouse
US7133858B1 (en) * 2000-06-30 2006-11-07 Microsoft Corporation Partial pre-aggregation in relational database queries
US6785666B1 (en) * 2000-07-11 2004-08-31 Revenue Science, Inc. Method and system for parsing navigation information
US6735587B2 (en) * 2000-07-28 2004-05-11 International Business Machines Corporation Maintaining pre-computed aggregate views incrementally in the presence of non-minimal changes
US7756904B2 (en) * 2000-08-01 2010-07-13 Actuate Corporation Nested conditional relations (NCR) model and algebra
US6766320B1 (en) * 2000-08-24 2004-07-20 Microsoft Corporation Search engine with natural language-based robust parsing for user query and relevance feedback learning
US6694490B2 (en) * 2002-07-10 2004-02-17 Hewlett-Packard Development Company, L.P. DIMM and method for producing a DIMM
US6687704B1 (en) * 2000-08-31 2004-02-03 Hewlett-Packard Development Company, L.P. Database model system and method
US7257596B1 (en) * 2000-11-09 2007-08-14 Integrated Marketing Technology Subscription membership marketing application for the internet
US6772411B2 (en) * 2000-12-01 2004-08-03 Bmc Software, Inc. Software performance and management system
US7552065B1 (en) * 2000-12-08 2009-06-23 At&T Intellectual Property I, L.P. Forecasting tool for predicting future demand for parts / materials / equipment
US20030014394A1 (en) * 2001-03-22 2003-01-16 Shinji Fujiwara Cell-level data access control using user-defined functions
US9600842B2 (en) * 2001-01-24 2017-03-21 E-Numerate Solutions, Inc. RDX enhancement of system and method for implementing reusable data markup language (RDL)
GB0102220D0 (en) * 2001-01-27 2001-03-14 Galleria Software Developement Databases
US6643649B2 (en) * 2001-01-30 2003-11-04 International Business Machines Corporation Utility for cross platform database query
JP2002236682A (ja) * 2001-02-13 2002-08-23 Fuji Photo Film Co Ltd データベース・システム
US7099868B1 (en) * 2001-03-30 2006-08-29 Unisys Corporation State management for a step architecture
US20020178049A1 (en) * 2001-05-25 2002-11-28 Jonathan Bye System and method and interface for evaluating a supply base of a supply chain
US7092951B1 (en) * 2001-07-06 2006-08-15 Ncr Corporation Auxiliary relation for materialized view
US7720842B2 (en) * 2001-07-16 2010-05-18 Informatica Corporation Value-chained queries in analytic applications
US6865569B1 (en) * 2001-08-22 2005-03-08 Ncr Corporation Determining materialized view coverage
US7158994B1 (en) * 2001-09-28 2007-01-02 Oracle International Corporation Object-oriented materialized views
US7213025B2 (en) * 2001-10-16 2007-05-01 Ncr Corporation Partitioned database system
US6845375B1 (en) 2001-10-20 2005-01-18 Ncr Corporation Multi-level partitioned database system
US7080072B1 (en) 2001-11-14 2006-07-18 Ncr Corp. Row hash match scan in a partitioned database system
US7882103B2 (en) * 2002-03-28 2011-02-01 Teradata Us, Inc. Using point-in-time views to provide varying levels of data freshness
US7035843B1 (en) * 2002-02-15 2006-04-25 Oracle International Corporation Evaluation of database hierarchical cubes by nesting rollup operators associated with multiple groupings
US7333975B2 (en) 2002-02-25 2008-02-19 John Robert Cain Information system and method for disseminating technology information
US7111020B1 (en) * 2002-03-26 2006-09-19 Oracle International Corporation Incremental refresh of materialized views containing rank function, and rewrite of queries containing rank or rownumber or min/max aggregate functions using such a materialized view
US7620664B2 (en) * 2002-04-02 2009-11-17 Mcgoveran David O Computer-implemented method for translating among multiple representations and storage structures
US8868544B2 (en) * 2002-04-26 2014-10-21 Oracle International Corporation Using relational structures to create and support a cube within a relational database system
US7415457B2 (en) 2002-04-26 2008-08-19 Oracle International Corporation Using a cache to provide cursor isolation
US7171427B2 (en) * 2002-04-26 2007-01-30 Oracle International Corporation Methods of navigating a cube that is implemented as a relational object
US7366730B2 (en) 2002-04-26 2008-04-29 Oracle International Corporation Registration of solved cubes within a relational database management system
US7035862B2 (en) * 2002-05-09 2006-04-25 Siemens Medical Solutions Health Services Corporation Method for processing information from an information repository
US7548935B2 (en) * 2002-05-09 2009-06-16 Robert Pecherer Method of recursive objects for representing hierarchies in relational database systems
US7290007B2 (en) * 2002-05-10 2007-10-30 International Business Machines Corporation Method and apparatus for recording and managing data object relationship data
US8001112B2 (en) 2002-05-10 2011-08-16 Oracle International Corporation Using multidimensional access as surrogate for run-time hash table
US7447687B2 (en) * 2002-05-10 2008-11-04 International Business Machines Corporation Methods to browse database query information
US7191169B1 (en) * 2002-05-21 2007-03-13 Oracle International Corporation System and method for selection of materialized views
US7406469B1 (en) * 2002-06-20 2008-07-29 Oracle International Corporation Linear instance mapping for query rewrite
US7313559B2 (en) * 2002-07-19 2007-12-25 Microsoft Corporation System and method for analytically modeling data organized according to a referenced attribute
US7287022B2 (en) * 2002-07-19 2007-10-23 Microsoft Corporation System and method for analytically modeling data organized according to related attributes
US7275022B2 (en) * 2002-07-19 2007-09-25 Microsoft Corporation System and method for analytically modeling data organized according to non-referred attributes
US7260513B2 (en) * 2002-07-19 2007-08-21 Microsoft Corporation System and method for analytically modeling data from different measure groups onto a single cube
US20050021492A1 (en) * 2002-09-13 2005-01-27 Aman Safaei On-line sales analysis system and method
WO2004036461A2 (en) * 2002-10-14 2004-04-29 Battelle Memorial Institute Information reservoir
WO2004046969A1 (en) * 2002-11-15 2004-06-03 Bigchampagne, Llc. Monitor file storage and transfer on a peer-to-peer network
US7379933B1 (en) 2002-11-27 2008-05-27 Oracle International Corporation Union all rewrite for aggregate queries with grouping sets
US7127456B1 (en) * 2002-12-05 2006-10-24 Ncr Corp. System and method for logging database queries
US7716167B2 (en) * 2002-12-18 2010-05-11 International Business Machines Corporation System and method for automatically building an OLAP model in a relational database
US20040122814A1 (en) * 2002-12-18 2004-06-24 International Business Machines Corporation Matching groupings, re-aggregation avoidance and comprehensive aggregate function derivation rules in query rewrites using materialized views
US7953694B2 (en) * 2003-01-13 2011-05-31 International Business Machines Corporation Method, system, and program for specifying multidimensional calculations for a relational OLAP engine
US20040210452A1 (en) * 2003-01-14 2004-10-21 Aboujaoude Roger B. Method and system for unifying and sharing of business systems
US7895191B2 (en) * 2003-04-09 2011-02-22 International Business Machines Corporation Improving performance of database queries
GB2401210B (en) * 2003-04-30 2005-08-24 Oracle Int Corp SQL predicate migration
US7448048B1 (en) * 2003-05-27 2008-11-04 International Business Machines Corporation Method for performing real-time analytics using a business rules engine on real-time heterogeneous materialized data views
US7523462B1 (en) * 2003-05-27 2009-04-21 International Business Machines Corporation Method for providing a real time view of heterogeneous enterprise data
US20040267648A1 (en) * 2003-06-26 2004-12-30 Oracle International Corporation Data totaling using interval-based subtotals
EP1498829B1 (en) * 2003-07-18 2011-08-31 Sap Ag Method and computer system for aggregating information
US7280998B1 (en) 2003-07-28 2007-10-09 At&T Corp. Virtual data warehousing
US7516115B2 (en) * 2003-08-20 2009-04-07 International Business Machines Corporation Method and system for optimizing performance in non-relational databases
US8825629B2 (en) * 2003-09-06 2014-09-02 Oracle International Corporation Method for index tuning of a SQL statement, and index merging for a multi-statement SQL workload, using a cost-based relational query optimizer
US7426520B2 (en) 2003-09-10 2008-09-16 Exeros, Inc. Method and apparatus for semantic discovery and mapping between data sources
US7149736B2 (en) * 2003-09-26 2006-12-12 Microsoft Corporation Maintaining time-sorted aggregation records representing aggregations of values from multiple database records using multiple partitions
US8315972B2 (en) * 2003-09-26 2012-11-20 Microsoft Corporation Method for maintaining databases information about multiple instances of an activity generating, updating virtual OLAP cube based on modified star-schema
US7716357B2 (en) * 2003-10-24 2010-05-11 Microsoft Corporation Service discovery and publication
US7689579B2 (en) * 2003-12-03 2010-03-30 Siemens Aktiengesellschaft Tag modeling within a decision, support, and reporting environment
US7672964B1 (en) * 2003-12-31 2010-03-02 International Business Machines Corporation Method and system for dynamically initializing a view for a streaming data base system
US7627553B1 (en) * 2004-01-07 2009-12-01 Teradata Us, Inc. Custom queries for segmentation
EP1569135A1 (en) * 2004-01-19 2005-08-31 Sap Ag A database management system and a method of managing a database
US8359325B1 (en) 2004-02-25 2013-01-22 Teradata Us, Inc. Determining materialized view coverage for join transactions
US7373354B2 (en) * 2004-02-26 2008-05-13 Sap Ag Automatic elimination of functional dependencies between columns
US7263520B2 (en) * 2004-02-27 2007-08-28 Sap Ag Fast aggregation of compressed data using full table scans
US7840547B1 (en) 2004-03-31 2010-11-23 Google Inc. Methods and systems for efficient query rewriting
US20050234945A1 (en) * 2004-04-14 2005-10-20 Oracle International Corporation Allocating CPU resources for a particular refresh schedule
US8478742B2 (en) * 2004-04-14 2013-07-02 Oracle Corporation Using estimated cost to refresh a set of materialized views (MVS)
US7734602B2 (en) * 2004-04-14 2010-06-08 Oracle International Corporation Choosing whether to use a delayed index maintenance depending on the portion of the materialized view (MV) changed
US7890497B2 (en) * 2004-04-14 2011-02-15 Oracle International Corporation Using estimated cost to schedule an order for refreshing a set of materialized views (MVS)
US7647356B2 (en) * 2004-05-07 2010-01-12 Oracle International Corporation Methods and apparatus for facilitating analysis of large data sets
US8996502B2 (en) * 2004-05-17 2015-03-31 Oracle International Corporation Using join dependencies for refresh
US7707143B2 (en) 2004-06-14 2010-04-27 International Business Machines Corporation Systems, methods, and computer program products that automatically discover metadata objects and generate multidimensional models
US20050283458A1 (en) * 2004-06-22 2005-12-22 Microsoft Corporation Automatic detection of frequently used query patterns in a query workload
US7480663B2 (en) * 2004-06-22 2009-01-20 International Business Machines Corporation Model based optimization with focus regions
US7840607B2 (en) * 2004-08-06 2010-11-23 Siemens Aktiengesellschaft Data mart generation and use in association with an operations intelligence platform
US8700671B2 (en) * 2004-08-18 2014-04-15 Siemens Aktiengesellschaft System and methods for dynamic generation of point / tag configurations
US7499939B2 (en) * 2004-10-18 2009-03-03 International Business Machines Corporation Method for efficiently managing membership in a hierarchical data structure
US7814123B2 (en) * 2004-12-02 2010-10-12 Siemens Aktiengesellschaft Management of component members using tag attributes
US20060173908A1 (en) * 2005-01-10 2006-08-03 Browning Michelle M System and method for automated customization of a workflow management system
US8442938B2 (en) * 2005-01-14 2013-05-14 Siemens Aktiengesellschaft Child data structure update in data management system
US7519572B2 (en) * 2005-02-15 2009-04-14 International Business Machines Corporation System and method for efficiently obtaining a summary from and locating data in a log file
US7447681B2 (en) 2005-02-17 2008-11-04 International Business Machines Corporation Method, system and program for selection of database characteristics
US20060218116A1 (en) * 2005-03-28 2006-09-28 O'hearn James E Pass-through interface queries to populate a class-based model
US7599925B2 (en) * 2005-03-31 2009-10-06 Microsoft Corporation Using query expression signatures in view matching
US20060235834A1 (en) * 2005-04-14 2006-10-19 Microsoft Corporation Path expression in structured query language
US7640255B2 (en) * 2005-05-31 2009-12-29 Sap, Ag Method for utilizing a multi-layered data model to generate audience specific documents
US7925642B2 (en) * 2005-06-09 2011-04-12 International Business Machines Corporation Apparatus and method for reducing size of intermediate results by analyzing having clause information during SQL processing
US20060288045A1 (en) * 2005-06-16 2006-12-21 Digital Fuel Technologies, Inc. Method for aggregate operations on streaming data
US7584205B2 (en) * 2005-06-27 2009-09-01 Ab Initio Technology Llc Aggregating data with complex operations
US8429167B2 (en) 2005-08-08 2013-04-23 Google Inc. User-context-based search engine
US8027876B2 (en) 2005-08-08 2011-09-27 Yoogli, Inc. Online advertising valuation apparatus and method
US7464083B2 (en) * 2005-10-24 2008-12-09 Wolfgang Otter Combining multi-dimensional data sources using database operations
US20070094233A1 (en) * 2005-10-24 2007-04-26 Wolfgang Otter Translating time-independent data using database operations
US7958456B2 (en) * 2005-12-23 2011-06-07 Apple Inc. Scrolling list with floating adjacent index symbols
US20070162493A1 (en) * 2005-12-30 2007-07-12 Matthias Schmitt Business object duplicates
US7831617B2 (en) * 2006-07-25 2010-11-09 Microsoft Corporation Re-categorization of aggregate data as detail data and automated re-categorization based on data usage context
EP1883020B1 (en) * 2006-07-28 2013-05-22 Dassault Systèmes Method and system for navigating in a database of a computer system
US8375041B2 (en) * 2006-08-31 2013-02-12 Business Objects Software Ltd Processing queries against combinations of data sources
US8418217B2 (en) 2006-09-06 2013-04-09 Verizon Patent And Licensing Inc. Systems and methods for accessing media content
US8316320B2 (en) * 2006-10-03 2012-11-20 Verizon Patent And Licensing Inc. Expandable history tab in interactive graphical user interface systems and methods
US8464295B2 (en) * 2006-10-03 2013-06-11 Verizon Patent And Licensing Inc. Interactive search graphical user interface systems and methods
US20080120309A1 (en) * 2006-11-17 2008-05-22 Microsoft Corporation Storing, maintaining and locating information
US20080162512A1 (en) * 2006-12-29 2008-07-03 Sanjeet Mall Efficient storage and distribution system for non-transactional data
US7797335B2 (en) * 2007-01-18 2010-09-14 International Business Machines Corporation Creation and persistence of action metadata
KR100857139B1 (ko) * 2007-02-01 2008-09-05 엘지전자 주식회사 멀티에어컨 시스템 및 그의 데이터 작성방법
US7865533B2 (en) * 2007-02-05 2011-01-04 Microsoft Corporation Compositional query comprehensions
US8260783B2 (en) * 2007-02-27 2012-09-04 Siemens Aktiengesellschaft Storage of multiple, related time-series data streams
US8392880B2 (en) * 2007-04-27 2013-03-05 International Business Machines Corporation Rapid application development for database-aware applications
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
US9047337B2 (en) * 2007-04-27 2015-06-02 International Business Machines Corporation Database connectivity and database model integration within integrated development environment tool
US8566793B2 (en) * 2007-04-27 2013-10-22 International Business Machines Corporation Detecting and displaying errors in database statements within integrated development environment tool
US20080288527A1 (en) * 2007-05-16 2008-11-20 Yahoo! Inc. User interface for graphically representing groups of data
US8122056B2 (en) * 2007-05-17 2012-02-21 Yahoo! Inc. Interactive aggregation of data on a scatter plot
US7756900B2 (en) * 2007-05-22 2010-07-13 Yahoo!, Inc. Visual interface to indicate custom binning of items
US7739229B2 (en) 2007-05-22 2010-06-15 Yahoo! Inc. Exporting aggregated and un-aggregated data
US7792784B2 (en) * 2007-05-31 2010-09-07 International Business Machines Corporation Streaming multidimensional data by bypassing multidimensional query processor
US8090735B2 (en) * 2007-06-22 2012-01-03 International Business Machines Corporation Statement generation using statement patterns
US8375351B2 (en) * 2007-06-23 2013-02-12 International Business Machines Corporation Extensible rapid application development for disparate data sources
US20090019103A1 (en) * 2007-07-11 2009-01-15 James Joseph Tommaney Method and system for processing a database query
US8401987B2 (en) * 2007-07-17 2013-03-19 International Business Machines Corporation Managing validation models and rules to apply to data sets
US7885953B2 (en) * 2007-10-03 2011-02-08 International Business Machines Corporation Off-loading star join operations to a storage server
US7958141B2 (en) * 2007-11-01 2011-06-07 Ebay Inc. Query utilization
US7917462B1 (en) * 2007-11-09 2011-03-29 Teradata Us, Inc. Materializing subsets of a multi-dimensional table
US9558169B2 (en) * 2007-11-20 2017-01-31 Sap Se Hierarchical grouping columns
US8473466B1 (en) * 2007-12-31 2013-06-25 Teradata Us, Inc. Systems and methods for storing data, such as storing data based on storage classes
US8145635B1 (en) * 2008-03-14 2012-03-27 Workday, Inc. Dimensional data explorer
US8239416B2 (en) * 2008-05-30 2012-08-07 Armanta, Inc. System, method, and computer program product for modeling changes to large scale datasets
US9720971B2 (en) * 2008-06-30 2017-08-01 International Business Machines Corporation Discovering transformations applied to a source table to generate a target table
US8195645B2 (en) * 2008-07-23 2012-06-05 International Business Machines Corporation Optimized bulk computations in data warehouse environments
US8401990B2 (en) * 2008-07-25 2013-03-19 Ca, Inc. System and method for aggregating raw data into a star schema
US9692856B2 (en) * 2008-07-25 2017-06-27 Ca, Inc. System and method for filtering and alteration of digital data packets
US20100070461A1 (en) * 2008-09-12 2010-03-18 Shon Vella Dynamic consumer-defined views of an enterprise's data warehouse
US7668804B1 (en) * 2008-11-04 2010-02-23 International Business Machines Corporation Recommending statistical views using cost/benefit metrics
US20100332531A1 (en) * 2009-06-26 2010-12-30 Microsoft Corporation Batched Transfer of Arbitrarily Distributed Data
US20100332550A1 (en) * 2009-06-26 2010-12-30 Microsoft Corporation Platform For Configurable Logging Instrumentation
US8082247B2 (en) * 2009-07-30 2011-12-20 Microsoft Corporation Best-bet recommendations
US8135753B2 (en) * 2009-07-30 2012-03-13 Microsoft Corporation Dynamic information hierarchies
US20110029516A1 (en) * 2009-07-30 2011-02-03 Microsoft Corporation Web-Used Pattern Insight Platform
US8392380B2 (en) * 2009-07-30 2013-03-05 Microsoft Corporation Load-balancing and scaling for analytics data
US9330123B2 (en) 2009-12-20 2016-05-03 Sap Se Method and system for improving information system performance based on usage patterns
US8626790B2 (en) * 2010-04-23 2014-01-07 Hartford Fire Insurance Company System and method for processing and analyzing dimension data
US8924384B2 (en) * 2010-08-04 2014-12-30 Sap Ag Upgrading column-based databases
US8306953B2 (en) 2010-08-31 2012-11-06 International Business Machines Corporation Online management of historical data for efficient reporting and analytics
US20120078941A1 (en) * 2010-09-27 2012-03-29 Teradata Us, Inc. Query enhancement apparatus, methods, and systems
WO2012095839A2 (en) 2011-01-10 2012-07-19 Optier Ltd. Systems and methods for performing online analytical processing
US8849996B2 (en) 2011-09-12 2014-09-30 Microsoft Corporation Efficiently providing multiple metadata representations of the same type
US10331664B2 (en) * 2011-09-23 2019-06-25 Hartford Fire Insurance Company System and method of insurance database optimization using social networking
US8930303B2 (en) 2012-03-30 2015-01-06 International Business Machines Corporation Discovering pivot type relationships between database objects
US9652776B2 (en) 2012-06-18 2017-05-16 Greg Olsen Visual representations of recurring revenue management system data and predictions
US9646066B2 (en) * 2012-06-18 2017-05-09 ServiceSource International, Inc. Asset data model for recurring revenue asset management
US9824121B2 (en) * 2012-08-10 2017-11-21 Arris Enterprises Llc Aggregate data streams in relational database systems
US9858326B2 (en) * 2012-10-10 2018-01-02 Microsoft Technology Licensing, Llc Distributed data warehouse
US9208183B2 (en) * 2013-03-15 2015-12-08 Bmc Software Inc. Data access of slowly changing dimensions
US9953054B2 (en) * 2013-04-22 2018-04-24 Salesforce.Com, Inc. Systems and methods for implementing and maintaining sampled tables in a database system
KR101496179B1 (ko) * 2013-05-24 2015-02-26 삼성에스디에스 주식회사 데이터 부재 태깅 기반의 정보 검색 시스템 및 방법
US9396218B2 (en) 2013-09-16 2016-07-19 International Business Machines Corporation Database insert with deferred materialization
US10769711B2 (en) 2013-11-18 2020-09-08 ServiceSource International, Inc. User task focus and guidance for recurring revenue asset management
US9672256B2 (en) 2014-02-04 2017-06-06 Microsoft Technology Licensing, Llc Creating data views
GB2524072A (en) * 2014-03-14 2015-09-16 Ibm Demand-driven dynamic aggregate
US9552390B2 (en) * 2014-04-29 2017-01-24 Futurewei Technologies, Inc. System and method for out of order multiple query execution within stored procedure
US10635645B1 (en) 2014-05-04 2020-04-28 Veritas Technologies Llc Systems and methods for maintaining aggregate tables in databases
US10282446B2 (en) 2014-06-30 2019-05-07 Netscout Systems Texas, Llc Dynamic selection of source table for DB rollup aggregation and query rewrite based on model driven definitions and cardinality estimates
US11488086B2 (en) 2014-10-13 2022-11-01 ServiceSource International, Inc. User interface and underlying data analytics for customer success management
US10176226B2 (en) * 2014-11-26 2019-01-08 Looker Data Sciences, Inc. Relation aware aggregation (RAA) on normalized datasets
US11392582B2 (en) * 2015-10-15 2022-07-19 Sumo Logic, Inc. Automatic partitioning
US10498605B2 (en) * 2016-06-02 2019-12-03 Zscaler, Inc. Cloud based systems and methods for determining and visualizing security risks of companies, users, and groups
US11334588B1 (en) 2017-06-05 2022-05-17 Amazon Technologies, Inc. Analysis engine data intake
US11561973B2 (en) * 2017-09-29 2023-01-24 Oracle International Corporation Statistics based query transformation
US10810196B2 (en) 2017-12-13 2020-10-20 Hewlett-Packard Development Company, L.P. Materialized view generation
US10719508B2 (en) * 2018-04-19 2020-07-21 Risk Management Solutions, Inc. Data storage system for providing low latency search query responses
US11960468B1 (en) * 2018-05-17 2024-04-16 Amazon Technologies, Inc. Late-binding database views
US11354310B2 (en) 2018-05-23 2022-06-07 Oracle International Corporation Dual purpose zone maps
US10474655B1 (en) 2018-07-23 2019-11-12 Improbable Worlds Ltd Entity database
CN112740199A (zh) * 2018-09-21 2021-04-30 华为技术有限公司 用于数据库查询优化的物化视图
US11914590B1 (en) * 2018-10-31 2024-02-27 Amazon Technologies, Inc. Database request router improving server cache utilization
US11487737B2 (en) * 2019-03-26 2022-11-01 Sap Se Take over table opening for operators
US11281671B2 (en) * 2019-05-20 2022-03-22 Google Llc Retroreflective join graph generation for relational database queries
US11269880B2 (en) * 2019-05-20 2022-03-08 Google Llc Retroreflective clustered join graph generation for relational database queries
US11734308B2 (en) 2019-09-12 2023-08-22 Oracle International Corporation Autonomous caching for views
US11797520B2 (en) 2019-11-29 2023-10-24 Oracle International Corporation ROWID elimination rewrite
CN111104453A (zh) * 2019-12-18 2020-05-05 深圳市中农易讯信息技术有限公司 数据的查询方法、装置、终端及存储介质
US11921717B2 (en) 2020-09-14 2024-03-05 Oracle International Corporation Predicting future quiet periods for materialized views
US11461328B2 (en) * 2020-09-21 2022-10-04 Oracle International Corporation Method for using a sematic model to transform SQL against a relational table to enable performance improvements
US11556533B2 (en) 2020-11-12 2023-01-17 Oracle International Corporation Method for generating views based on a semantic model, that allows for autonomous performance improvements and complex calculations

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH022459A (ja) 1987-12-11 1990-01-08 Hewlett Packard Co <Hp> 問合わせ処理方法
US5220625A (en) 1989-06-14 1993-06-15 Hitachi, Ltd. Information search terminal and system
JP3163141B2 (ja) * 1992-01-30 2001-05-08 富士通株式会社 リレーショナルデータベース処理装置および処理方法
US5412806A (en) * 1992-08-20 1995-05-02 Hewlett-Packard Company Calibration of logical cost formulae for queries in a heterogeneous DBMS using synthetic database
US5495607A (en) * 1993-11-15 1996-02-27 Conner Peripherals, Inc. Network management system having virtual catalog overview of files distributively stored across network domain
US5655116A (en) 1994-02-28 1997-08-05 Lucent Technologies Inc. Apparatus and methods for retrieving information
US5515488A (en) 1994-08-30 1996-05-07 Xerox Corporation Method and apparatus for concurrent graphical visualization of a database search and its search history
US5995961A (en) * 1995-11-07 1999-11-30 Lucent Technologies Inc. Information manifold for query processing
US5913205A (en) * 1996-03-29 1999-06-15 Virage, Inc. Query optimization for visual information retrieval system
US5897632A (en) * 1996-08-27 1999-04-27 At&T Corp Method and system for using materialized views to evaluate queries involving aggregation
US6006216A (en) * 1997-07-29 1999-12-21 Lucent Technologies Inc. Data architecture for fetch-intensive database applications
US6108647A (en) * 1998-05-21 2000-08-22 Lucent Technologies, Inc. Method, apparatus and programmed medium for approximating the data cube and obtaining approximate answers to queries in relational databases
US5991754A (en) * 1998-12-28 1999-11-23 Oracle Corporation Rewriting a query in terms of a summary based on aggregate computability and canonical format, and when a dimension table is on the child side of an outer join

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002163290A (ja) * 2000-09-27 2002-06-07 Microsoft Corp クエリ最適化のためのコストに基づく具体化ビューの選択
JP2005267612A (ja) * 2004-03-18 2005-09-29 Microsoft Corp 暗黙の述部を使用する改良されたクエリ・オプティマイザ
JP2008547086A (ja) * 2005-06-15 2008-12-25 インターレース・システムズ・インコーポレイテッド 大きなデータセットの解析中に整合性を維持するための方法および装置
JP2007066017A (ja) * 2005-08-31 2007-03-15 Internatl Business Mach Corp <Ibm> データベースに対するアクセスを制御するシステム、およびその方法
JP2015515671A (ja) * 2012-06-27 2015-05-28 エヌイーシー ラボラトリーズ アメリカ インクNEC Laboratories America, Inc. 進化的な分析のためのシステム
JP2019040409A (ja) * 2017-08-25 2019-03-14 Kddi株式会社 データベース管理装置、データベース管理方法、及びデータベース管理プログラム

Also Published As

Publication number Publication date
US20010013030A1 (en) 2001-08-09
CA2326513C (en) 2009-06-16
CA2326513A1 (en) 1999-10-07
AU3198599A (en) 1999-10-18
WO1999050762A1 (en) 1999-10-07
US6480836B1 (en) 2002-11-12
US6594653B2 (en) 2003-07-15
US20020077997A1 (en) 2002-06-20
BR9909896A (pt) 2001-09-11
EP1066574A4 (en) 2006-09-13
EP1066574A1 (en) 2001-01-10
AU761900B2 (en) 2003-06-12
US6493699B2 (en) 2002-12-10

Similar Documents

Publication Publication Date Title
US6480836B1 (en) System and method for determining and generating candidate views for a database
Chaudhuri et al. An overview of data warehousing and OLAP technology
Wu et al. Research issues in data warehousing
AU772754B2 (en) System and method for rewriting relational database queries
Chaudhuri et al. AutoAdmin “what-if” index analysis utility
US7895191B2 (en) Improving performance of database queries
Chaudhuri et al. Database technology for decision support systems
US6789071B1 (en) Method for efficient query execution using dynamic queries in database environments
US20070061287A1 (en) Method, apparatus and program storage device for optimizing a data warehouse model and operation
US20110029507A1 (en) Cardinality and selectivity estimation using a single table join index
Shukla et al. Materialized view selection for multi-cube data models
Chen et al. Efficient computation of multiple group by queries
US20050102271A1 (en) Indexes with embedded data
Wu et al. POLYTOPE: a flexible sampling system for answering exploratory queries
Rösch et al. Sample synopses for approximate answering of group-by queries
Bellatreche et al. Some issues in design of data warehousing systems
Tsois et al. Cost-based optimization of aggregation star queries on hierarchically clustered data warehouses.
Indulska Shared result identification for materialized view selection
Kotidis Aggregate view management in data warehouses
Pieringer et al. Combining hierarchy encoding and pre-grouping: intelligent grouping in star join processing
Paraboschi et al. Materialized views in multidimensional databases
Chaudhuri et al. Data management technology for decision support systems.
Ramirez et al. Performance Analysis of “What-If” Databases Using Independently Updated Views
MXPA00009484A (en) Processing precomputed views
using Histograms Bulletin of the Technical Committee on

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20040227

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080415

AA92 Notification that decision to refuse application was cancelled

Free format text: JAPANESE INTERMEDIATE CODE: A971092

Effective date: 20080507

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080916

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080924

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090203