JP3979846B2 - リレーショナルデータベース管理システムに多次元データを記憶する方法 - Google Patents

リレーショナルデータベース管理システムに多次元データを記憶する方法 Download PDF

Info

Publication number
JP3979846B2
JP3979846B2 JP2001535850A JP2001535850A JP3979846B2 JP 3979846 B2 JP3979846 B2 JP 3979846B2 JP 2001535850 A JP2001535850 A JP 2001535850A JP 2001535850 A JP2001535850 A JP 2001535850A JP 3979846 B2 JP3979846 B2 JP 3979846B2
Authority
JP
Japan
Prior art keywords
dimension
value
tile
values
tiles
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2001535850A
Other languages
English (en)
Other versions
JP2003514281A (ja
JP2003514281A5 (ja
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
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2003514281A publication Critical patent/JP2003514281A/ja
Publication of JP2003514281A5 publication Critical patent/JP2003514281A5/ja
Application granted granted Critical
Publication of JP3979846B2 publication Critical patent/JP3979846B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • 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/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • 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/953Organization of data
    • Y10S707/954Relational
    • 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/953Organization of data
    • Y10S707/957Multidimensional
    • 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/953Organization of data
    • Y10S707/958Data cubes
    • 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/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • 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/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • 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/99948Application of database or data structure, e.g. distributed, multimedia, or image

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)

Description

【0001】
【発明の分野】
この発明はリレーショナルデータベース管理システムに関し、より特定的にはリレーショナルデータベース管理システムに多次元データを記憶するための技術に関する。
【0002】
【発明の背景】
データベースシステムの状況において、「次元」とはデータに対するカテゴリを提供する値のリストである。次元は変数の値を識別するための索引として作用する。たとえば、販売データが各月に対する別個の販売数値を有するならば、そのデータは「月」次元を有する。すなわち、データは月によって編成される。次元はリレーショナルデータベースにおけるキーに似ている。2つまたはそれ以上の次元によって編成されるデータは「多次元データ」と呼ばれる。
【0003】
変数の次元の各々から1つのメンバーを特定化することによって、多次元変数内のデータのあらゆる項目を一意にかつ完全に選択できる。たとえば、販売変数が「月」、「製品」および「市場」によって次元を定められるとき、「月」次元に対して「1月」を特定化し、「製品」次元に対して「ステレオ」を特定化し、「市場」次元に対して「東部地方」を特定化することによって変数の単一の値を一意に特定化する。よって次元は、検索、更新および計算を行なうためのデータを編成および選択する、簡潔かつ直観的な態様を提供する。
【0004】
多次元データは、リレーショナルデータベースシステム(“ROLAP”システム)または特殊化された「多次元」データベースシステム(“MOLAP”システム)に記憶されてもよい。多次元データベースシステムは多次元データに対して特定的に設計された構造およびアクセス技術を提供し、したがって多次元データに対する比較的効率のよい記憶およびアクセスを提供する。しかし、特殊化した多次元データベースシステムに記憶されると、それらの多次元データベースシステムと相互作用するよう特別に構築されたアプリケーションしかデータのアクセスおよび操作ができない。
【0005】
一方、リレーショナルデータベースシステムに記憶されると、リレーショナルデータベースとの相互作用を支持するすべてのアプリケーションがデータへのアクセスを有する。こうしたデータベースアプリケーションは、リレーショナルデータベースシステムによって支持されるデータベース言語に従う命令を提出することによって、リレーショナルデータベースシステムと通信する。最も一般的なデータベース言語は構造化照会言語(SQL)である。
【0006】
リレーショナルデータベースシステムは関連するテーブルの形でデータを記憶し、各テーブルは1つまたはそれ以上の列および0またはそれ以上の行を有する。リレーショナルデータベースシステムに多次元データを記憶するための従来の機構は、スタースキーマと呼ばれるものに配置されたテーブルにデータを記憶するものである。リレーショナルデータベースシステムにおいて、スタースキーマは1つまたはそれ以上の比較的大きいテーブルおよびいくつかの比較的小さいテーブルの存在によって識別される。大きいテーブルはより小さいテーブルに含まれる情報を複製するかわりに、より小さいテーブルに記憶される行に対する参照(外部キー値)を含む。スタースキーマ内のより大きいテーブルは「ファクトテーブル」と呼ばれ、より小さいテーブルは「次元テーブル」と呼ばれる。図1に、2次元を有する例示的なスタースキーマを例示する。
【0007】
図1を参照すると、テーブル102、104および106を含むデータベース100が例示される。テーブル102は「店」と名づけられ、販売が起こり得る各々の店に関する情報とを含む。店テーブル102中の各行は一意の店IDと、その店IDに対応する特定の店に関する情報を含む。テーブル104は「製品」と名付けられ、いずれかの店で販売され得る各種の製品に関する情報を含む。製品テーブル104中の各行は一意の製品IDと、その特定の製品に関する情報とを含む。
【0008】
テーブル106は「販売」と名づけられ、店テーブル102に表わされる店の各々における各販売に関する情報を含む。販売テーブル106中の各行は、ドル金額と、その販売が行なわれた店を示すための店IDと、その販売において売られた製品を示すための製品IDと、販売の日付とを含む。典型的に、販売の数は、その販売が行なわれた店の数およびその店によって扱われた製品の数のどちらよりもかなり大きくなる。販売トランザクションに含まれる店および製品に関する詳細な情報は、テーブル106の行に記憶される必要はない。なぜならこのような詳細な情報はそれぞれテーブル102および104において入手可能だからである。その代わりに、テーブル106の行は他のテーブル102および104に記憶される情報を参照する値(店IDおよび製品ID)のみを含む。したがってテーブル102、104および106はスタースキーマを構成し、ここでテーブル106はファクトテーブルであり、テーブル102および104は次元テーブルである。
【0009】
ファクトテーブル106に記憶されるデータは2次元しか有さないため、ファクトテーブル106はそれらの次元に対する外部キー値を記憶するための専用の列を2つだけ有する。一般的にファクトテーブルは、ファクトテーブルに記憶される多次元データに関連する次元の各々に対する外部キー値を記憶するために1つの列を専用にしなければならない。よって20次元に関連するデータを記憶するファクトテーブルは、外部キー値の記憶のために20列を専用にする必要がある。
US−A−5 943 668号およびUS−A−5 905 985号は、2レベルデータ構造が定められるリレーショナルアーキテクチャに基づくものであり、ここで一方のレベルは密なデータブロックを得るためにユーザによって選択される次元(すなわちサブキューブ)を含み、他方のレベルは次元を識別することによって密なデータブロックを選択するための疎の索引(すなわち疎の索引キーまたは次元識別子)として用いられる残りの次元の組合せを含む(’985特許、第7欄、55−62行)。すなわち、次元メンバーの可能な組合せのうち比較的高い割合がデータ値を含まない疎の次元が、次元メンバーの可能な組合せのうち比較的高い割合がデータ値を含む密なデータブロックを索引付けするために用いられる。
’668特許および’985特許の両方に開示されるシステムはまた、すべてのメンバーが「ファクトテーブル402」中の列にマップされるという点で、「非アンカ」次元と呼ばれるその他の次元と異なる態様で扱われる「アンカ」次元と呼ばれる1つの次元を含む(’985、第8欄、64−67行)。
【0010】
リレーショナルデータベース内に多次元データを記憶することは、2つの重要な欠点を有する。第1に、ファクトテーブルが多次元データそのものしか記憶する必要がないとき、ファクトテーブルは必要以上にかなり大きくなる。ファクトテーブルのサイズが次元データ自体に対してかなり大きくなる主な理由は、各多次元値に対する各次元に対して外部キー値を記憶する必要があるためである。第2に、従来のファクトテーブル内の行は特定の順序を有さない。したがって、互いに概念的に密接に関係する多次元値がファクトテーブル全体にわたって比較的ランダムに記憶されるおそれがある。互いに概念的に関係する多次元データはしばしばグループとしてアクセスされ操作されるため、このことは非効率をもたらす。
【0011】
リレーショナルデータベースにおける多次元データの管理に対する代替的なアプローチは、リレーショナルファイルにデータを記憶しながらも多次元データベースシステム技術を用いてすべての多次元構造、メタデータ、運営、およびアクセス制御を維持することを含む。多次元技術を用いて関係的に記憶されたデータにアクセスすることは多数の困難を有する。たとえば、すべての運営および多次元データへのアクセスが多次元データベースシステムエンジンを通じて排他的に制御されるとき、2つのデータベース管理システムを運営する必要がある。さらに、従来のリレーショナルコマンド(例、SQLコマンド)を用いてデータにアクセスするデータベースアプリケーションは、多次元データにアクセスできない。
【0012】
リレーショナルデータベースシステムに多次元データを記憶するための前述のアプローチは先行技術のアプローチによって行なわれるトレードオフを示すものであり、それは(1)従来のリレーショナルアクセスなどの現在のリレーショナルシステムの利益を享受するために多次元記憶の利益を犠牲にしたか、または(2)多次元記憶の効率を得るためにリレーショナル記憶の利益を犠牲にしたものである。
【0013】
【発明の概要】
リレーショナルデータベースシステムに多次元データを記憶するための従来のアプローチに関連する問題に向けた技術が提供される。この発明の1つの局面に従うと、ファクトテーブル中の各行の多くの外部キー値が「置換」値にマップされ、それによって置換される。データベースサーバが外部キー値のあらゆる所与の組合せから置換値を導くことを可能にするマッピング機能が与えられ、その置換値のときの外部キー値の組合せを再生するために逆マッピング機能が与えられる。
【0014】
この発明の別の局面に従うと、互いに概念的に関係する多次元値の外部キー値の組合せが互いに近い値にマップするようにマッピング機能が選択される。次いでファクトテーブル中の行は分類された順序でファクトテーブル内に記憶され、外部キー値から導かれた置換値は分類キーとして用いられる。各行の分類キー値は一般的に多次元に対するその行におけるその値の位置を反映するため、導かれた値に基づいてファクトテーブルを分類することにより、互いに概念的に関係する値がファクトテーブル内で物理的に互いの近くに分類される。
【0015】
外部キー値から置換値を生成するためにさまざまな技術が提供される。このプロセスは一般的に、すべての多次元値を含む多次元キューブを細分化して、タイルと呼ばれるより小さなサブキューブにすることを含む。各タイルはより大きなキューブ内の座標の特定の組を有し、各多次元値はそれが属するタイル内の座標の特定の組を有する。キューブをこの態様で細分化することによって生成されるすべてのタイルには単一の数が割当てられ、密接に関係する数を割当てられたタイルはキューブの次元内で密接に関係する。次いで、特定の多次元値がその中に存在するタイルのタイル数がファクトテーブル中のその多次元値を含む行に記憶され、そのタイル数を導くために用いられた別個の外部キー値を置換する。
【0016】
タイリング機構の修正形が提供される。アプローチの1つに従うと、キューブは階層的次元の特定のレベルのメンバーに基づいてタイルに細分化される。たとえば、多次元キューブの1つの次元は「地理的場所」であってもよく、地理的場所は市、州、地方、国というレベルを有する。この場合、その次元の特定のレベル、たとえば州などが選択されてもよく、特定の州値に対応する多次元キューブ内のすべての値は同じタイルに属すると考えられる。
【0017】
別のタイリングアプローチに従うと、タイル自体がより小さなタイルに細分化されてもよい。このことによってタイルの階層が生じ、タイルの1つのレベルに用いられる細分化基準は、異なるレベルでタイルを細分化するために用いられる基準とは全く異なっていてもよい。
【0018】
添付の図面の図において、制限的なものではなく例としてこの発明が例示される。ここで類似の参照番号は類似の構成要素を示す。
【0019】
【好ましい実施例の詳細な説明】
リレーショナルデータベース管理システムに多次元データを記憶するための方法および装置を説明する。以下の説明においては、説明する目的のために、この発明の完全な理解を提供するために多数の特定の詳細が示される。しかし、この発明はこれらの特定の詳細なしでも実施され得ることが当業者に明らかになるであろう。別の場合においては、この発明を不必要に不明瞭にすることを避けるために、周知の構造および装置をブロック図の形で示す。
【0020】
(ファクトテーブルのサイズを減少させるために置換値を用いる)
この発明の1つの局面に従うと、ファクトテーブル中の各行の多くの外部キー値が、それらの外部キー値から導かれるデータによって置換される。行中の複数の外部キー値を置換するために用いられる導出データをここでは「置換値」と呼ぶ。以下により詳細に説明するとおり、置換値は多数の成分を含み得るが、置換値に含まれるデータの量は、それが置換する多数の外部キー値に対して必要とされるデータの量よりもかなり少なくなる傾向がある。置換値は、それが行において置換する多数の外部キー値よりも小さいため、行のサイズはかなり減少する。ファクトテーブルの各行のサイズがかなり減少することによって、ファクトテーブル自体のサイズがかなり減少する。
【0021】
この発明の別の局面に従うと、行は分類された順序でファクトテーブルに記憶される。行が分類される順序は、その行に属する多次元値の多次元キューブ内での近さに基づいている。多次元キューブ内で近くに位置する値は一緒にアクセスされる可能性がある。したがって、多次元キューブ内で近くに置かれる値をクラスタリングする態様でファクトテーブル行を記憶することは、ファクトテーブルにアクセスする動作中に生成されるI/Oを減少させる傾向がある。
【0022】
実施例の1つに従うと、データベースサーバが外部キー値のあらゆる所与の組合せから単一の置換値を導くことを可能にするマッピング機能が与えられ、またその単一の置換値のときの外部キー値の組合せを再生するために逆マッピング機能が与えられる。ファクトテーブルに新たな行が挿入されるとき、その行の外部キー値にマッピング機能が適用されて置換値が生成される。置換値は含むがそれが導いた個々の外部キー値は含まない、変更された行が次いでファクトテーブルに挿入される。その行に関連する特定の外部キー値を定める必要があるときには、その行に記憶される置換値に逆マッピング機能が適用される。
【0023】
(用語)
外部キー値の組から置換値を生成するためにさまざまな技術が用いられてもよい。説明する目的のために、置換値を導くために用いられる技術を以下の用語を参照しながら説明する。
【0024】
「次元キー値」は特定の次元に関連する値である。たとえば「地方」次元に対する次元キー値は「北部地方」、「南部地方」、「東部地方」、および「西部地方」であってもよい。スタースキーマにおいて、ある次元の次元キー値は典型的に、その次元に関連する次元テーブルの次元キー列に記憶される。
【0025】
前述のとおり、変数の次元の各々から1つのメンバーを特定することによって、次元変数内のデータのあらゆる項目を一意にかつ完全に選択できる。よって多次元変数はN次元アレイとして概念的に考えることができ、ここでNとは変数の次元の数であり、各次元に対する1つの次元キー値を特定化することによって、アレイ中の各値にアクセスしてもよい(例、MDVar(dim1,dim2,dim3,…,dimN))。
【0026】
2次元および3次元の多次元アレイをそれぞれグリッドおよびキューブとして視覚的に示してもよい。便宜上、多次元変数に対応する概念的多次元アレイのことを、それが有する次元の数にかかわらず習慣的に「多次元キューブ」または単に「キューブ」と呼んでいる。さらに各多次元値はキューブの「セル」に属すると言い、セルのアドレスはそこに含まれる多次元値に対応する次元キー値の組(次元ごとに1つ)である。説明する目的のために、あるセルに属する多次元値のことをそのセルの「セル値」と呼ぶ。
【0027】
多次元値は概念的には多次元キューブのセル中に存在するが、リレーショナルデータベース内でそれらは実際にはファクトテーブルの行の中に存在する。実施例の1つに従うと、キューブ内のセルの相対的な位置を用いて、そのセル中に概念的に存在するセル値に対する置換値を定める。
【0028】
(置換値導出の概要)
実施例の1つに従うと、置換値は以下のステップによって導かれる。
【0029】
(1) 多次元キューブを「タイル」に分割し、その各々は多数のセルを含んでもよく、さらに
(2) タイルにtile_position値を割当て、
(3) 各タイル内のセルにlocal_position値を割当て、
(4) tile_positionおよびlocal_position値を用いてtile_numberおよびオフセット値を導き、
(5) tile_number−オフセット値の組合せを置換値として用いる。
【0030】
置換値導出プロセスにおけるこれらの相の各々を以下に詳細に説明する。
(タイル)
この発明の実施例の1つに従うと、置換値は、ファクトテーブルのセル値のすべてを含む多次元キューブをここでタイルと呼ばれるより小さいサブキューブに細分化することによって導かれる。各タイルはより大きいキューブ内の座標の特定の組を有し、各セル値はそれが属するタイル内の座標の特定の組を有する。この態様でキューブを細分化することによって生成される各々のタイルに単一の数が割当てられ、密接に関係する数を割当てられたタイルはキューブの次元内で密接に関係する。
【0031】
次いで特定のセル値が存在するタイルのタイル数が、ファクトテーブル中のそのセル値を含む行に置換値として記憶され、そのタイル数を導くために用いられた別個の外部キー値を置換する。
【0032】
(次元キー値を整数にマップする)
実施例の1つに従うと、次元キューブのサブキューブへの分割は、各次元の次元キー値と「座標値」との間の1対1のマッピングの確立を含む。実施例の1つに従うと、座標値は0から始まる整数である。よってN次元キー値の次元に対し、N次元キー値は0からN−1の範囲の整数にマップされる。もちろんこのようなマッピングは、次元キー値自体が0からN−1の範囲の整数ではないときにのみ必要である。
【0033】
次元キー値と整数との1対1マッピングを確立するためにさまざまな技術が用いられてもよい。たとえば、Nは特定の次元テーブルの濃度であると仮定する。その次元テーブル中のN次元キー値は、以下の規則に従って0..N−1の範囲の整数にマップされてもよい。
【0034】
(1) 次元キー値がKからLの範囲の整数値であるとき、そのKからLの値を関数f(x)=x−Kを用いて0..N−1にマップする。
【0035】
(2) 次元キー値をいくつかの基準に従って分類できるとき、分類された結果における各位置に0からN−1の整数を割当てることができる。座標値0からN−1を次元テーブル中の隠れた列に記憶できる。次いで、座標マッピングはキー列と隠れた列との関係に要約される。
【0036】
(3) 次元キー値を分類するための本来の態様がないとき、リレーショナルデータベースシステムによって、またはユーザによって供給されるデータに基づいてマッピングを任意に行なうことができる。この態様で割当てられるときも、座標値は次元テーブル中の隠れた列に記憶されてもよい。
【0037】
各次元が座標の組にマップされたとき、変数の次元の各々から1つの座標値を特定化することによって、多次元変数内のデータのあらゆる項目を一意にかつ完全に選択できる。たとえば、多次元変数が次元「月」、「地方」および「製品」を有すると仮定する。「月」=4、「地方」=10、および「製品」=12を特定化することによって特定の項目Xが選択されてもよい。
【0038】
(指向付け)
実施例の1つに従うと、キューブの次元に順序が割当てられ、特定の座標値が対応する次元はその座標値が特定化される順序によって示される。たとえば、次元「月」、「地方」、「製品」に順序<地方、月、製品>が割当てられると仮定する。この順序付けに基づいて、項目Xは<10、4、12>を特定化することによって選択されてもよい。
【0039】
次元の組に適用される特定の順序付けをここでは「指向付け」と呼ぶ。よって<地方、製品>と<製品、地方>とは2つの異なる指向付けを示す。以下により詳細に説明するとおり、指向付けはキューブのセルを移動するために用いられる。
【0040】
(キューブをタイルに分割する)
実施例の1つに従うと、多次元キューブは座標値範囲に基づいてタイルに分割され、各タイルには各次元に対する座標値の範囲が与えられる。たとえば、図2に2つの次元AおよびBを有する多次元キューブ200が示される。次元Aは座標値0から14にマップされた15の次元キー値を有する。次元Bもまた座標値0から14にマップされた15の次元キー値を有する。次元Aは5つの値の3つの領域すなわち[0..4]、[5..9]および[10..14]に分割されている。同様に、次元Bも5つの値の3つの領域すなわち[0..4]、[5..9]および[10..14]に分割されている。
【0041】
多次元キューブ200は9つのタイル202、204、206、208、210、212、214、216および218に分割されており、その各々は座標範囲の一意の組合せに対応し、次元ごとに1つの座標値範囲を有する。たとえば、タイル202は座標値範囲の組合せA[0..4]B[0..4]に対応する。同様に、タイル216は座標値範囲の組合せA[10..14]B[5..9]に対応する。
【0042】
(タイル位置)
キューブがタイルに分割されるとき、各タイルはその他のタイルに関するキューブ中の特定の位置に存在する。あるタイルのその他のタイルに関するキューブ内の位置をここではタイルのtile_positionと呼ぶ。タイルのtile_positionは各次元に対する1つの「タイル座標値」を含む。たとえば、キューブ200の指向付けが次元A、次元Bであると仮定する。したがってタイル202、208および214はそれぞれtile_position<0,0>、<1,0>および<2,0>に対応する。同様に、タイル206、212および218はそれぞれtile_position<0,2>、<1,2>および<2,2>に対応する。
【0043】
(ローカルセル位置)
セルが存在するタイルに関するそのセルの位置をセルの“local_position”と呼ぶ。あらゆる所与のセルに対し、local_positionはそのセルが存在するタイルの各次元に対する1つの座標値を含む。たとえば、キューブ200中の各タイルは2つの次元、すなわち次元Aおよび次元Bを有する。したがって、キューブ200のタイルに属するセルのlocal_positionは、次元Aに対する座標値および次元Bに対する座標値からなる。しかし、local_positionの座標値はキューブ全体におけるセルの位置ではなく、同じタイル内のその他のセルに関するセルの位置を示す。よってセル230、232および234は、異なるタイルおよびキューブ200内の異なる「グローバル」座標に存在するにもかかわらず、同じlocal_positionを有する。
【0044】
多次元キューブがタイルに分割されるとき、個々のセルは、そのセルが位置するタイルを一意に識別するtile_position、およびタイル内のそのセルの場所を一意に識別するlocal_positionに基づいて選択されてもよい。したがって、tile_position−local_positionの組合せを置換値として用いてもよい。特定的には、tile_position−local_positionの組合せを用いて、ファクトテーブルの各行において、その行のセル値に関連する外部キー値を置換してもよい。
【0045】
(tile_position−local_positionの組合せを導く)
この発明の実施例の1つに従うと、最初に(次元キー値対座標値マッピングに基づいて)セル値が属するセルのグローバル座標を定め、次に以下の方程式を適用することによって、セル値に対して<tile_position,local_position>の組合せが導かれる。
【0046】
あるセルがグローバル座標位置(x1,…,xN)に存在するとすると、
tile_position=(q1,…,qN) ここでq=x DIV T
local_position=(r1,…,rN) ここでr=x MOD T
両方の方程式において、Tjはタイルによって次元jに沿って張られる次元キー値の数である。
【0047】
たとえば、図2のキューブ200におけるセル230のグローバル座標は<14,2>である。キューブ200は5×5のタイルに分割される。よって両方の次元AおよびBに対するTiは5である。したがってセル230に対するtile_positionは<14DIV5,2DIV5>または<2,0>である。セル230に対するlocal_positionは<14MOD5,2MOD5>または<4,2>である。したがってセル230に対するtile_position−local_positionの組合せは(<2,0><4,2>)である。
【0048】
(tile_number−オフセットの組合せ)
tile_positionおよびlocal_positionの各々は座標値のN−タプルであり、Nはキューブの次元の数である。つまり、tile_position−local_positionの組合せは2N座標値からなる。たとえばNが10であるとき、各tile_position−local_positionの組合せは20の座標値を含む。ファクトテーブルの各行において2N座標値を記憶するために必要とされる空間の量はまだ有効であり得る。したがってこの発明の実施例の1つに従うと、tile_position値よりも小さいtile_number値がtile_position値から導かれ、local_position値よりも小さいオフセット値がlocal_position値から導かれる。よって、すべてのtile_position−local_positionの組合せがtile_number−オフセットの組合せに低減されてもよい。次いでこのtile_number−オフセットの組合せがファクトテーブル内の置換値として用いられる。tile_position値からtile_number値を、local_position値からオフセット値をそれぞれ導く技術について以下により詳細に説明する。
【0049】
(tile_position値からtile_number値を導く)
実施例の1つに従うと、タイルを一意に識別するtile_position N−タプルは、以下の方程式に従ってここでタイルのtile_numberと呼ばれる単一の値に減少される。
【0050】
tile_number=sum(N−1,1,p1**pj*q[j+1])+q1+1、ここで
qj=j番目のtile_position座標(前述と同様)
pj=次元jに沿ったページの数
j=(Dim[j]からカウント(相異なるid)を選択)DIV Tj+r/max(r,1)、r=(Dim[j]からカウント(相異なるid)を選択)MOD Tj
sum(A,B,expr[j])という表記は、j=Aからj=Bまでのexpr[j]の和を示す。
【0051】
上記の方程式はキューブ内のタイルに特定の順序を割当てる。その順序はキューブの特定の横断パターンに対応する。他の方程式を用いて、異なるタイルナンバリングスキームをもたらし得る異なる横断パターンを得ることができる。この発明はtile_number値を確立するためのあらゆる特定のキューブ横断パターンの使用に制限されないため、tile_number値を確立するためのあらゆる特定の方程式に制限されない。実現例によって用いられる特定の横断パターンは、多次元キューブにおいて互いの近くに置かれるタイルに対して密接に関係するtile_number値を割当てる態様で選択されることが好ましい。密接に関係するtile_number値を近くに位置するタイルに割当てることによって、以下により詳細に説明するとおり、ファクトテーブルの行がタイル数によって分類される実現例におけるクラスタリングが改善される。
【0052】
(local_position値からオフセット値を導く)
実施例の1つに従うと、タイル内のセルを一意に識別するlocal_position N−タプルは、以下の方程式に従ってここでセルのオフセットと呼ばれる単一の値に減少される。
【0053】
オフセット=sum(N−1,1,T1**Tj*r[j+1])+r1+1、ここでrj=xj MOD Tj
前述の方程式は、タイル内のセルに特定の順序を割当てる。その順序はタイルの特定の横断パターンに対応する。他の方程式が異なる横断パターンに対応し得る。この発明はセルのオフセット値を確立するためのあらゆる特定のタイル横断パターンの使用に制限されず、したがってオフセット値を確立するためのあらゆる特定の方程式に制限されない。実現例によって用いられる特定の横断パターンは、多次元タイルにおいて互いの近くに位置するセルに密接に関連するオフセットを割当てる態様で選択されることが好ましい。近くに位置するセルに密接に関係する数を割当てることによって、以下により詳細に説明するとおり、ファクトテーブルの行がtile_number−オフセットによって分類される実現例におけるクラスタリングが改善される。
【0054】
(tile_number−オフセットの組合せから次元キー値を導く)
各セル値に関連する次元キー値をファクトテーブルに記憶しないことによってファクトテーブルのサイズを減少させてもよい。実施例の1つに従うと、tile_number−オフセットの組合せが外部キー値の代わりにファクトテーブルに記憶される。しかし、ファクトテーブル内のセル値はしばしば次元キー値に基づいてアクセスされる。次元キー値に基づいてファクトテーブルデータにアクセスするために、ファクトテーブルに記憶されるセル値に関連する次元キー値を定める必要がある。
【0055】
実施例の1つに従うと、ファクトテーブルに記憶されるセル値に関連する次元キー値を定めるプロセスは、ファクトテーブルに記憶されるtile_number−オフセットの組合せを導くために用いられるプロセスの逆である。特定的には、セル値に関連するtile_number−オフセットの組合せからtile_position−local_positionの組合せが導かれる。次いで、tile_position−local_positionの組合せからセル値に関連するセルのグローバル座標が導かれる。次に、グローバル座標値と次元キー値との間のマッピングに基づいて、セル値に関連する次元キー値が定められてもよい。
【0056】
たとえば、セルのtile_number値およびオフセット値を導くために前述の方程式が用いられると仮定すると、セルのtile_positionは以下の方程式から導かれてもよい。
【0057】
j=Nから2までに対して{qj=(tile_number−1)DIVp1**p[j−1]−sum(k=j+1,N,pj**p[k−1]*qk)}、ここでq1は前に特定化したtile_number方程式を用いて解かれる。
【0058】
セルのlocal_positionは次の方程式によって導かれてもよい。
j=Nから2までに対して{rj=(オフセット−1)DIV T1**T[j−1]−sum(k=j+1,N,Tj**T[k−1]*rk)}、ここでr1は前に特定化したオフセット方程式を用いて解かれる。
【0059】
次いで、次の方程式によってtile_position−local_positionの組合せからセルのグローバル座標が導かれてもよい。
【0060】
xj=Tj*qj+rj
(ファクトテーブル内のクラスタリングの増加)
この発明の実施例の1つに従うと、置換値を生成するために用いられるマッピング機能は、互いに概念的に関係するセル値の外部キー値の組合せが互いに近い置換値にマップするように選択される。次に、ファクトテーブル中の行が分類された順序でファクトテーブル内に記憶され、ここで置換値は分類キーとして用いられる。各行の置換は一般的に複数の次元に関するその行中のセル値の位置を反映するため、置換値に基づいてファクトテーブルを分類することにより、互いに概念的に関係するセル値がファクトテーブル内の互いの物理的に近くに記憶されるようになる。
【0061】
たとえば、置換値としてtile_number−オフセットの組合せを用いる実施例において、近くに位置するセルのセル値はしばしば同じタイル中にあるため、同じtile_numberを有する。tile_numberを分類キーとして用いてファクトテーブルを分類された順序で維持することによって、同じタイルに属するセル値を含む行は互いの近くに記憶される。さらに、tile_number−オフセットの組合せが分類キーとして用いられるときは、タイル内の各セル値は最も密接に関係する同じタイル内の他方のセル値の近くに記憶される。
【0062】
(タイルサイズの選択)
この発明の実施例の1つに従うと、タイルのサイズは多次元データが記憶される記憶装置の特徴に基づいて選択される。特定的には、実施例の1つにおいて、キューブが分割されてできるタイルのサイズは、単一のタイルに対するすべてのデータが1つのディスクブロック内に適合するように選択される。たとえば、多次元データを含む行を有するファクトテーブルを記憶する記憶装置が4Kバイトのディスクブロックサイズを有すると仮定する。さらに、(置換値、セル値)フォーマットにおけるファクトテーブルの各行が40バイトを消費すると仮定する。これらの条件下では、ファクトテーブルの100行がディスクブロック内に適合できる。よって100セルのタイルサイズが選択されてもよい。100セルタイルの実際の次元は、キューブがどのように分割されるかに依存して変動してもよい。たとえば、2次元キューブは4×25、5×20、10×10などの100セルタイルに分割されてもよい。同様に、3次元キューブは4×5×5、5×10×2、10×10×1などの100セルタイルに分割されてもよい。
【0063】
単一のディスクブロックにあるタイルに属するデータを記憶することによって、データ検索がより効率的になる。特定的には、ある動作があるタイルからの1つのデータ項目の検索を要求するとき、その同じタイルからの他のデータ項目が近い将来に必要とされる確率が比較的高くなる。データ項目の検索の際に、そのデータ項目を含むディスクブロック全体が揮発性メモリにロードされる。したがって、その後同じタイルからの他のデータ項目が要求されるときには、それらは付加的なディスクアクセスをもたらすことなく揮発性メモリから検索されてもよい。
【0064】
マルチブロックI/Oを支持するシステムなどのいくつかのシステムにおいては、単一のディスクブロックに適合し得るよりも多くのデータを保持するタイルサイズを選択することが望ましいことがある。実施例の1つに従うと、このようなより大きいタイルサイズを選択するときにもディスクブロックサイズが考慮される。特に、より大きいタイルサイズは、その中に含まれるデータがディスクブロックの特定の数に適合するように選択される。たとえば、100ファクトテーブル行が各ディスクブロックに適合するとき、Nセルのタイルサイズが選択され、ここでNは100の倍数である。一度に10ブロックのI/Oを支持するシステムにおいては、1000セルのタイルサイズであっても単一のI/O動作によって揮発性メモリにタイルのすべての値をロードできる。
【0065】
(ファクトテーブル記憶フォーマット)
前述の技術は、tile_number−オフセットの組合せに基づいてセル値をファクトテーブルに記憶させることを可能にしたが、こうしたファクトテーブルの実際のフォーマットは実現例によって変動してもよい。たとえば実施例の1つにおいては、各セル値はファクトテーブルのそれ自身の行に記憶される。このような実施例において、各行は<tile_number,オフセット,値>という形を有してもよく、ここで「値」は特定のセルに関連するセル値であり、tile_numberはそのセルを含むタイルの数であり、オフセットはそのタイル内のセルに対するオフセット値である。この形で情報を記憶するファクトテーブルをここではrow-per-cell(行−毎セル)テーブルと呼ぶ。なぜならこのファクトテーブルは、そのファクトテーブルに関連する多次元キューブにおける各占有済セルに対して1つの行を含むためである。row-per-cellフォーマットが用いられるとき、冗長tile_number値がデータ層において圧縮されてもよい。
【0066】
別の実施例においては、タイル中に存在すべきすべての値を記憶するためにファクトテーブルの各行が用いられてもよい。タイル内のすべての値に対する単一の行を記憶するファクトテーブルを、ここではrow-per-tileテーブルと呼ぶ。row-per-tileテーブル中の行のフォーマットは、たとえば<tile_number,VARRAY>などであってもよく、ここでVARRAYは特定のタイルに含まれるセル値のアレイである。特定的には、VARRAYは<cell_value1,cell_value2,…cell_valueN>という形を有し、ここでNはタイル内のセルの数である。VARRAY内のセル値の位置は、セル値のオフセットに対応する。
【0067】
疎に占有された(sparsely populated)タイルにおいて、多くのセル値はゼロであってもよい。各行内に多くのゼロを含むVARRAYを記憶する代わりに、行は<tile_number,<オフセット1,値1>,<オフセット2,値2>…>という形で記憶されてもよく、ここでオフセット−値の対は実際に占有されているセルに対してのみ供給される。
【0068】
別の実施例に従うと、「クラスタ」を用いることもできる。このような実施例において、「クラスタキー」は多次元サブキューブのグリッド位置であってもよい。この実現例は前述のrow-per-cell実施例に似ており、ここで「クラスタキー」は<tile_number,オフセット>対に対応する。
【0069】
(索引専用テーブル)
この発明の別の実施例に従うと、ファクトテーブルは従来のリレーショナルテーブルではなく、索引専用テーブル(IOT)として記憶されてもよい。索引専用テーブルは、列の1つまたはそれ以上に索引を有する従来のテーブルと類似のものである。しかし、索引専用テーブルが標準的なテーブルと異なるのは、テーブルおよびその索引に対して2つの別個のデータコンテナを維持する代わりに、データベースサーバが実際のベーステーブルを有さない単一の索引のみを維持することである。
【0070】
従来のテーブルと同様、クライアントはデータベースサーバによって支持されるデータベース言語でデータベースサーバにステートメントを提出することによって索引専用テーブルを操作する。しかしテーブル中のデータにおけるすべての動作は、対応する索引を操作することによって行なわれる。
【0071】
索引専用テーブルに対する索引中の各エントリは、符号化されたキー値および対応する行に対する関連する列値の両方を含む。すなわち、索引エントリ中に行識別子を有するのではなく、対応する行からの実際のデータが索引に記憶される。よって索引専用テーブルに対するすべての索引エントリは、<primary_key_value,non_primary_key_column_values>という形を有する。
【0072】
索引専用テーブルは、1次キーまたは1次キーの有効プレフィクスであるあらゆるキーを介してデータにアクセスするために好適である。また、非キー列値のみがキーとともに記憶されているため、キー値は複製されない。
【0073】
ここに記載される技術と組合せるとき、索引専用テーブルはtile_numberを1次キーとして用いて多次元データを記憶してもよい。
【0074】
(区画との統合)
実施例の1つに従うと、ここに記載するタイリング技術は分割技術と組合せることによって、キューブの占有、性能、および疎に関連する問題の減少における実質的な利点を生じる。
【0075】
実施例の1つに従うと、新たなデータは区画を利用する態様でキューブに関連するファクトテーブルに加えられる。特定的には、ほとんどのデータウェアハウジング顧客はキー範囲または複合区画によって可能にされる「ローリングウィンドウ」動作スキームを用いる。このスキームにおいて、各キー範囲区画は独立のユニットとして処理でき、独立にタイリングできる。最新の区画のデータは次のようにしてウェアハウスに加えられる。
【0076】
(1) データをテーブルにロードまたは挿入し、それを所望のサブキューブスキームに従ってタイリングする。
【0077】
(2) そのテーブルをファクトテーブルの区画に交換する。
動作の前述のモードにおいて、あらゆる特定の区画における時間次元キー値の数が固定される。よって、指向付けにおける最後の次元を、2番目によく変化する非時間次元(たとえば製品)に割当てることができる。その利点は、それが指向付けにおける最後の次元であるため、座標値を製品次元に対する現存する範囲を超えて予め割当てる必要がないことである。
【0078】
(疎(sparsity))
多くの空のセル(値が入れられていないセル)を有する多次元キューブは、疎に占有されたキューブと呼ばれる。キューブ自体は疎に占有されていなくても、そのキューブ内の特定のタイルがそうである可能性がある。この発明の実施例に従うと、セルデータはリレーショナルテーブルに記憶される。row-per-cellテーブルにおいては、行は値が入れられたセルに対してのみ割当てられる。row-per-tileテーブルにおいては、行は少なくとも1つの占有されたセルを含むタイルに対してのみ割当てられる。row-per-tileテーブルにおいては、前述のように、疎に占有されたタイルに対する行は占有されていないタイル中の各セルに対してゼロ値を記憶してもよい。
【0079】
代替的には、前述のように、row-per-tileテーブルの行は占有されているセルに対してのみ値を記憶してもよい。行に記憶されるセル値に対応するセルを識別するために、その行は各セル値とともにオフセットを記憶する。よってファクトテーブル行のフォーマットは<tile_number,<オフセット1,cell_value1><オフセット2,cell_value2>…<オフセットN,cell_valueN>>となり、ここでNはtile_numberによって識別されるタイルにおける占有されたセルの数である。
【0080】
ここに記載される技術は、従来のMOLAP記憶スキームを悩ませる伝統的な疎の問題に向けられる。たとえば、製品、地方および時間次元を有するキューブについて考える。各月に対するデータは別個のキューブとして扱われてもよく、各月に基づくキューブはその他の月に基づくキューブとは独立にタイリングされる。時間Tにおいて新たな製品が加えられるとき、Tより前の日付に対するその製品に対する販売は存在しないため、そのキューブには空のセルが導入される。これは、これらのセルを記憶表示の外に圧縮する必要のある従来のMOLAPスキームにおける実質的な問題である。ここに記載される技術は、このことをずっと効率的な態様で取扱う。4月に新たな製品が導入されるとき、4月のキューブ区画は以前のキューブ区画よりも単に1つの製品だけ「高い」。疎は導入されない。
【0081】
この表示においては、キューブは付加的な構造を受けて互いに素のサブキューブの集まりとして編成されるが、それは実際には運営および照会アクセスの観点から単一のテーブルである。
【0082】
これらの技術を用いて、多次元照会に対して大きな性能利得を実現できる。なぜなら、それらは区画の枝刈を利用できるため、解集合の部分を含む可能性のある区画のみがアクセスされることが確実になるためである。
【0083】
(次元に値を加える)
次元に新たな値を加えるとき、キューブはその次元の方向に効率的に拡張される。たとえば、図2に示されるキューブ200の次元Aに16番目の値が加えられ、その新しい値が座標値15にマップされると仮定する。図3に例示されるとおり、このことはキューブ200にセルの新たな列302を効率的に付加する。残念ながら、その新たな列302に属するセルはどの現存するタイルにも属さない。しかし、現存する行のすべてと同じ態様で(すなわち外部キー値ではなく<tile_number,オフセット>によって)それらのセルに関連する行をファクトテーブルに記憶するためには、それらのセルをタイルに割当てる必要がある。
【0084】
新たに加えられた次元キー値に対応するセルがタイルに属することを確実にするために、さまざまな技術が用いられてもよい。技術の1つに従うと、キューブはある次元に現在記憶される次元キー値の実際の数よりも多数のその次元中の座標によって構成されてもよい。たとえば、キューブ200の次元Aが10次元キー値のみを有すると仮定する。キューブ200を次元Aにおける10座標によって確立するのではなく、キューブ200は次元Aにおける15座標によって確立される。15座標値のうち10個は10の現存する次元A値にマップされる。残り5つの座標値は現在は現存するいずれの次元A値にもマップされない。これら5つの座標値は、キューブをタイリングする目的のために割当てられたが実際にはいずれの次元キー値にも対応しないため、ここでは「予め割当てられた」座標値と呼ばれる。予め割当てられた座標値の各々に関連するセルの列はいかなるセル値も含まない。なぜなら、ファクトテーブル行はそれらの列の座標値にマップする次元A値を有さないためである。
【0085】
次元Aに新たな次元キー値が加えられるとき、その次元キー値は5つの予め割当てられた座標値のうちの1つにマップされる。新たな次元A値に関連する行がファクトテーブルに加えられるとき、それらの行はキューブの特定のタイルに既に存在するセルに対応する。その結果、その行に対するtile_numberおよびオフセットが生成され、その行に対する置換値としてファクトテーブルに記憶されてもよい。
【0086】
ある次元に対するすべての予め割当てられた座標値が用いられてしまうと、その次元における新たな次元キー値に割当てるための座標値はなくなる。そのような状況においては、ファクトテーブルに対してタイルの新たな組を有する全く新しいキューブが確立されてもよい。
【0087】
データを再編成する必要なく新たな次元キー値を加えるために、さまざまな技術が用いられてもよい。一般的に、新たな次元キー値は座標範囲の「端部に」加えられることによってデータを再編成する必要性を避ける。新たな次元キー値を加える技術の例は、以下を含む。
【0088】
1.区画を用いることによって新たな時間次元キー値を加えることができる。各区画は別個にタイリングできるため、あらゆる再編成の発行が完全に避けられる。
【0089】
2.定められた指向付けにおける「最後の」次元は、データのあらゆる再編成またはタイルの再ナンバリングなしに新たな次元キー値を常に受入れることができる。
【0090】
3.指向付けにおける「最後の」次元以外の次元に対して、座標値を将来の次元キー値の付加の必要性に適応するように予め割当てることができる。(リレーショナルシステムの性質により)関連するセルは単に記憶されないため、予め割当てることは多次元編成の性能に影響しない。次に、あらゆる再編成またはタイルの再ナンバリングなしに、新たな次元キー値を予めの割当の限界まで加えることができる。
【0091】
4.新たな次元キー値をデータを再編成することなく指向付けにおける「最後の」次元以外の次元に対して予めの割当の限界を超えて付加することができるが、タイルをリナンバリングする必要がある。よってこの動作にはいくらかの出費が伴うが、それはデータブロック中のデータを実際にシャフルするよりもかなり安上がりである。
【0092】
新たな次元キー値を加えるときのタイルリナンバリングを避けるために、スキーマ設計者はあらゆる迅速に変化する次元(時間など)を指向付けにおける最後の次元にしておくことが好ましい。
【0093】
(メタデータ)
ここに記載される技術を実現するシステムによって、情報のさまざまな項目がメタデータとして維持される。典型的に、このメタデータはシステムディクショナリ中に存在する。実現例に依存して、メタデータは(1)各次元に対する次元キー値に対する座標マッピング、(2)次元の指向付け、および(3)各次元に沿ったタイルの幅Tjを含んでもよい。なお、Tjはタイル(端部タイルを除く)当りの次元jからの次元キー値の数である。
【0094】
(クラスタリングおよび圧縮)
リレーショナルデータベース内に多次元データを記憶するための従来の技術に比べ、ここに記載する技術は改善されたクラスタリングおよび減少した記憶サイズの両方を提供する。特定的には、この技術は(tile_numberに従って行をグルーピング/分類することによって)データをクラスタリングし、かつそれを圧縮する(単一のtile_numberがタイル中の各個々のセルに関連する次元キー値となるものを置換するため)。
【0095】
しかし、特定の実施例はこの技術の圧縮局面を実現することなくこの技術のクラスタリング局面を実現してもよい。同様に、その他の実施例はこの技術のクラスタリング局面を実現することなくこの技術の圧縮局面を実現してもよい。たとえば、対応する<tile_number,オフセット>によってファクトテーブルの行を分類する一方で、そのファクトテーブルの各行を元のリレーショナル形(すなわちすべての次元キー値を有する)のまま残すことによって、圧縮なしにクラスタリングを達成してもよい。次いで外部キー値を置換値に圧縮するステップを別個のステップとして達成できる。その圧縮ステップがデータ層において行なわれるとき、スキーム全体がリレーショナルエンジンのSQL層に対して完全に透明になり、その実現をかなり容易にする。
【0096】
代替的には、次元キー値の代わりにファクトテーブルに置換値を記憶するが、あらゆる特定の分類された順序でファクトテーブルを維持しないことによって、クラスタリングなしに圧縮を達成してもよい。こうした実施例は、クラスタリングを犠牲にしてファクトテーブルを分類された順序で維持することに関連するオーバヘッドを避ける。
【0097】
この技術の圧縮およびクラスタリング局面の両方を実現し、かつファクトテーブル行を<tile_number,cell_value1,cell_value2,…cell_valueN>の形で記憶する実施例のことを、ここでは「組合わせた」実施例と呼ぶ。この技術の圧縮局面のみ、またはこの技術のクラスタリング局面のみを実現する実施例のことをここでは「分離可能な」実施例と呼ぶ。
【0098】
(照会インターフェイス)
ここに記載される技術は、典型的なSQLおよびROLAPアプリケーションがソース−コード変更なしに圧縮された/クラスタリングされたファクトテーブルに対する照会を実行できるようにするが、ファクトテーブルのサイズ減少および多次元編成によるより大きな性能を可能にする。
【0099】
ファクトテーブルにアクセスする典型的なROLAP照会は次の形を有する。
SELECT d1_id,…,dN_id,ml,…,mK
FROM fact,d1,…,dN
WHERE fact.d1_id=d1.d1_id and fact.d2_id=d2.d2_id… <結合述語>
AND d1 BETWEEN a AND b <フィルタ>
AND d2 BETWEEN c and d…
GROUP BY d1,…,dN <グループバイキー>
この発明の分離可能なクラスタリングのみの実施例において、すべてのオブジェクトはリレーショナルデータベース管理システム(“RDBMS”)のSQL層に対する従来のリレーショナルテーブルとして示され、その照会はRDBMSのSQL層におけるあらゆる特別な考慮なしに多次元編成の利益を得る。
【0100】
この発明の組合わせた実施例においては、RDBMSのSQL層における発行のアドレスを定める必要がある。特定的には、結合述語は、列ファクト.d1_id,…,ファクト.dN_idが実際には存在しないという点において、この発明の組合わせた実施例に対する発行を提供する。次元とファクトテーブルとの典型的な1次外部キー関係は、座標および次いでタイリングスキーム内の測定の位置への次元キー値のマッピングによって置換えられたため、それらはファクトテーブルの「外に圧縮(compressed out)」される。照会を分割して実行プランをうまく生成するために、メタデータは、マッピングが存在するために結合述語をそれに従って解釈できることを示すディクショナリ中に保たれる。
【0101】
典型的には、このような照会に対する実行プランはスター照会準結合実行プランと同じであるが、ファクトテーブルに対するより少ないI/Oによるより大きい性能を有する。
【0102】
選択−リスト項目が次元キー列ではなく任意の次元テーブル列を示すより一般的なROLAP照会に対して、同じ考慮および利点が適用される。
【0103】
次元キー列に対応するファクトテーブル上のビットマップ索引が生成されないとき、実行プランは以下に説明するようにフィルタを有するテーブル走査を用いる。
【0104】
(テーブル走査)
この発明の分離可能なクラスタリングのみの実施例において、テーブル走査は従来の態様で実行する。この発明の組合わせた実施例において、特別な考慮が適用される。ファクトテーブルの各ページが読取られるときにセル値が抽出され、各セル値に対して、前述の逆マッピング技術を用いてその<tile_number,オフセット>対が座標(x1,…,xN)に戻ってマップされる。その結果、(x1,…,xN,測定1,…,測定M)という形の行が得られる。次いで述語を適用できる。述語は照会テキストに現われる値ではなく座標によって表現される。述語に用いられる座標値は、照会のコンパイル時間において照会における次元キー値を座標値にマップすることによって得られる。
【0105】
(索引の生成)
この発明の分離可能なクラスタリングのみの実施例において、索引は従来の態様で生成される。この発明の組合わせた実施例においては特別な考慮が適用される。たとえば、ファクトテーブルが繰返すtile_number値が圧縮された<tile_number,VARRAY>の形の行を有する通常のテーブルとして実現されると仮定する。このような実施例において、行IDはセル値ではなくタイルを一意に識別する。索引エントリに関連するセル値の場所を定めるために、索引エントリはセル値を含む行の行IDに加えて、そのセルに対するオフセット値を記憶する。索引エントリに記憶される行IDに基づいて正しい行が検索されると、索引エントリに記憶されるオフセット値に基づいて行内の正しいセル値が検索される。
【0106】
ファクトテーブルに生成されるいくつかの索引は索引キーとして次元キー値とともに構築されてもよい。しかしそれらの次元キー値は次元テーブルにのみ現われ、ファクトテーブルには現われない。これらの条件下でセルは読取られ、各セルに対して行IDおよび<tile_number,オフセット>の組合せが得られる。<tile_number,オフセット>対はセルグリッド位置(x1,…,xN)に戻ってマップされる。必要であれば、次元キー値を得るために次元テーブルへのジョインバック(join back)が行なわれる。<dimension_key_value,行ID>対は分類され、索引が構築される。この技術はバランス木およびビットマップ索引の両方に対して用いられてもよい。
【0107】
ユーザが次元キー値の密な範囲を特定化したときには、ジョインバックする必要はない。この場合、ディクショナリに最大値および最小値を保つことができ、次元キー値に戻るあらゆる座標値のマッピングは、範囲<min,…,max>の<0,…,N−1>へのマッピングに基づくトリビアルな計算である。
【0108】
ここに記載される索引付け技術は、たとえファクトテーブルに次元キー列が実際には存在しなくても、従来の「索引の生成」シンタックスを変えることなく導入できる。データディクショナリは、次元テーブル列を索引生成ステートメントにおいて特定化される列の名前に対応する名前と関連づける情報を含むため、そのステートメントは前述のとおり進行および実行できる。
【0109】
(キューブオペレータとの統合)
前述において導入したマッピングの簡単な変更形によるここに記載する技術は、「キューブ」オペレータの出力のコンパクトな表示を可能にする。キューブオペレータは、「SQLグループバイ」オペレータによって生成される出力を取り、そこから同じ次元だが各次元に沿って1つの付加的な座標値を有する論理キューブを生成するものと考えることができる。ここに記載される技術に導入される座標システムが各次元に沿って単に1だけシフトされるとき、その結果はこの新たなキューブに対する座標グリッドである。これは、各次元キー列に新たな値「すべて」を加え、それをタイリングのその次元に沿って座標値0に対応させることによって得られる。ここに考察する方程式を次いでこの「拡張されたキューブ」に直接適用することができ、前には入手できなかった効率的な記憶表示が得られる。
【0110】
「キューブ」オペレータによって生成される付加的な集合値の検索は簡単である。次の照会について考える。
【0111】
SELECT region sum(sales)FROMc
WHERE region=“E”
GROUP BY region
この照会は内的に次の照会に変形されてもよい。
【0112】
SELECT region sum(sales)FROMc
WHERE region=“E”
AND model=all
適合する行IDを得るための述語に対応するビットマップの「アンド」によって検索が達成される。
【0113】
(階層を定めたタイリング)
前述の技術においては、あらゆる所与の次元に沿ってすべてのタイルが固定された幅を有すると仮定された。固定された幅のタイルは、(1)各次元キー値を座標値にマップし、(2)各次元を同じサイズの座標値範囲に細分化することによって達成される。キューブをタイリングする目的のために特定の次元が分割される範囲のことを、ここではその次元の「タイリング範囲」と呼ぶ。
【0114】
各タイリング範囲は同数の座標値をカバーし、座標値は次元キー値に対応するため、各タイリング範囲は同数の次元キー値をカバーする。キューブがこの態様で細分化されるとき、ある次元のタイリング範囲間の境界は、(1)次元値対座標値マッピング、および(2)その次元に対して選択される固定された幅によって全体的に規定され、その次元における次元キー値間のあらゆる論理的関係は関係しない。次元値対座標値マッピングを行なうために用いられる順序付けは、次元キー値間の論理的関係にはほとんど関係しなくてよい。たとえば次元キー値が市の名前であるとき、次元値対座標割当はアルファベット順に行なわれてもよい。すなわち、アンカレッジ(AK)およびアポプカ(FL)の両市は共通点がほとんどないにもかかわらず同じタイリング範囲に入る可能性があり、一方で論理的に関係するアンカレッジおよびランゲル(AK)はそうはならない。
【0115】
あるタイリング範囲に入る次元キー値が互いにほとんど論理的関係を有さないとき、タイルメンバーシップに基づいてファクトテーブル行をクラスタリングすることによって得られる利益がなくなる。たとえば、市の名前はアルファベット順に基づいて座標にマップされ、ファクトテーブル行はタイルメンバーシップに基づく順序で記憶されると仮定する。ある照会が特定の州のすべての市に対するデータを要求するとき、その照会はファクトテーブル行が全く順序付けされていないときと同じ数のデータブロックからのデータを要求することになる。
【0116】
しかし、いずれかの次元に沿って階層的関係が定められるとき、それらはそれらの次元に沿ってタイリングに対する本来の細分性を定め、階層的に定められたグラニュールの各々の中にあるセルをともに記憶できれば、多くの照会が改善した性能による利益を得るであろう。たとえば、多次元キューブの1つの次元は「地理」であってもよく、地理は以下のレベル、すなわち市、州、地方、国を有する。これらのレベルのうちで「市」が最も微細な細分性を有し、各市の値はキューブの単一のセルに対応する。次元キー値が個々のセルにマップするような階層的次元のレベルをここでは「最微細(finest)」レベルと呼ぶ。階層におけるその他すべてのレベルは「非最微細(non-finest)」レベルと呼ばれる。
【0117】
地理次元が固定された幅のタイリング範囲に細分化されるとき、すべての個別のタイルは同数の市レベル次元キー値に関連付けられる。しかし、単一のタイルに関連する市レベル次元キー値は多くの異なる州に属する市に対応し得る。逆に、多くの州がそのデータを複数のタイルにわたって分散させ得る。特定の市に対応するセル値は同じ州の他の市に対するセル値とともにアクセスされる可能性があるため、所与の州内のすべての市に対するセル値を単一のタイリング範囲に入れることが有益であろう。
【0118】
実施例の1つに従うと、階層的構造を通じて本来関係するセル値を一緒に記憶することによって最小限の数のI/Oによって検索できるようにするためのスキームを実現するための技術が提供される。さらに、階層を定めたタイリング技術を固定した幅のタイリング技術と組合わせることによって、タイルの幅がある次元に沿って固定され別の次元に沿って可変であるときに利益を得るマッピングを生成できる。
【0119】
アプローチの1つに従うと、キューブは階層的次元の非最微細レベルの次元キー値に基づいて階層的次元に沿って細分化される。「地理」の例においては、たとえば「州」などの地理次元の特定の非最微細レベルが選択されてもよく、キューブは市レベルセルと州レベル次元キー値との間のマッピングに基づいてその次元に沿って細分化されてもよい。固定した幅のタイルとは異なり、この態様で生成されるタイルは次元に沿って可変の幅を有する。
【0120】
階層を定めたタイリングの用法を例示するために、モデルおよび市ごとの販売データを含む図4Aに例示されるキューブ400について考える。市は階層的次元「地理」の最微細レベルである。その階層の別のレベルは「州」である。このデータベースシステムは、市レベル次元キー値から州レベル次元キー値へのマッピングを維持する。このマッピングはたとえば地理次元テーブルに記憶されてもよく、ここで地理次元テーブル行は<ID,CITY_VALUE,STATE_VALUE,…>の形を有する。したがって、キューブ400に関連する地理次元テーブルは以下の行を含む。
【0121】
<1,SF,CA,…>
<2,SJ,CA,…>
<3,LA,CA,…>
<4,シアトル,WA,…>
<5,スポーカン,WA,…>
図4Aに示す例において、市の値“SF”、“SJ”および“LA”は州の値“CA”にマップし、市の値“シアトル”および“スポーカン”は州の値“WA”にマップする。
【0122】
キューブ400をタイルに分割するために、階層的次元「地理」が非最微細レベル「州」に基づいて分割されてもよい。すなわち、キューブ400を同数の市の値を有するタイルに分割する代わりに、キューブ400は州の値に基づくタイルに分割される。特定的には、市の値および州の値の間のマッピングに基づいて地理次元のタイリング範囲が確立され、ここで同じ州の値にマップするすべての市は同じタイリング範囲に属する。
【0123】
図4Bは、キューブ400をどのように4つのタイル404、406、408および410に分割し得るかを例示するものであり、ここでは「地理」次元のタイリング範囲を確立するために州レベルの値が用いられる。この例において、CAにマップするすべての市の値は1つのタイリング範囲として確立され、WAにマップするすべての市の値は別のタイリング範囲として確立される。
【0124】
(階層的次元に対するタイル座標)
前述のとおり、tile_position値はタイル座標値のN−タプルであり、各次元に対する1つのタイル座標値を有する。ある次元が固定された幅のタイリング範囲に分割されるとき、その次元に対するタイル座標値はグローバルセル座標値の特定の範囲に対応する。それに対して、ある次元がその次元の非最微細レベルの次元キー値に基づいてタイリング範囲に分割されるとき、その次元におけるタイル座標値は1つまたはそれ以上の非最微細次元キー値の組に対応する。
【0125】
図4Bを参照すると、選択された非最微細次元における各次元キー値にはタイル座標が割当てられる。特に、次元キー値“CA”にはタイル座標0が割当てられ、次元キー値“WA”にはタイル座標1が割当てられる。選択された非最微細レベルにおける各次元キー値は最微細レベルにおける次元キー値の組に対応する。たとえば“CA”はSF、SJおよびLAにマップし、“WA”はシアトルおよびスポーカンにマップする。キューブ400は次元キー値のそれらの組に対応する態様で地理次元に沿って分割される。次元キー値のそれらの組は必ずしも同数のメンバーを有さないため、タイルはその次元に関して必ずしも同じ幅を有さない。
【0126】
(階層的次元に対するローカル位置)
前述のとおり、セルのlocal_positionは同じタイル内の他のセルに関するそのセルの場所を示す。local_positionはタイルの各次元に対する1つの座標値を含む。実施例の1つに従うと、階層的にタイリングされた次元に対する座標値は、階層的次元の最微細レベル次元キー値にローカル座標値を割当てることによって確立される。たとえば図4Bにおいて、タイリング範囲0(“CA”に関連するタイリング範囲)における市レベル次元キー値はSF、SJおよびLAである。これらの市レベル次元キー値にはそれぞれローカル座標値0、1および2が割当てられる。同様に、タイリング範囲1における市レベル次元キー値、シアトルおよびスポーカンにはそれぞれローカル座標値0および1が割当てられる。
【0127】
階層的次元に対するタイル座標割当およびローカル座標値割当は、その次元に対する次元テーブルに記憶されてもよい。たとえば「地理」次元テーブルは、
<ID,CITY_VALUE,STATE_VALUE,TILE_COORDINATE,LOCAL_COORDINATE,…>の形を有してもよい。したがって、キューブ400に関連する地理次元テーブルは以下の行を含む。
【0128】
<1,SF,CA,0,0,…>
<2,SJ,CA,0,1,…>
<3,LA,CA,0,2,…>
<4,シアトル,WA,1,0,…>
<5,スポーカン,WA,1,1,…>
(階層的に定められたタイリング範囲を有するキューブにおける置換値を導く)
階層的に定められたタイリング範囲を用いて1つまたはそれ以上の次元が分割されるとき、tile_number−オフセットの組合せをファクトテーブル中の置換値としてなおも用いてもよい。しかし、外部キー値からtile_number−オフセットの組合せを導き、tile_number−オフセットの組合せから外部キー値を導くために異なる技術が用いられる。
【0129】
実施例の1つに従うと、tile_number−オフセットの組合せは以下のステップによって導かれる。
【0130】
(1) 各次元キー値に対する座標を定める。
(2) 座標値に基づいてtile_position−local_position値を定める。
【0131】
(3) tile_position−local_position値に基づいてtile_number−オフセット値を定める。
【0132】
(階層的に定められたタイリング範囲を有するキューブにおけるlocal_position値を導く)
local_position値は各次元に対する1つのローカル座標値を含む。固定された幅のタイリング範囲を有する次元に対し、次元キー値対グローバル座標値マッピングによって特定の次元キー値に関連するグローバル座標値が定められる。次いで、前述のとおり、グローバル座標値および選択された固定された幅からその次元に対するローカル座標値が導かれてもよい。
【0133】
たとえば、照会において特定化される外部キー値が「トーラス、SJ」であると仮定する。トーラスはモデル次元に対する次元キー値であり、固定された幅のタイリング範囲に分割され、その固定された幅は2である。次元キー値「トーラス」に割当てられたグローバル座標値は2である。ローカル座標を導くために次の方程式が用いられると仮定する。
【0134】
local_position[j]=rj=xj MOD Tj
トーラスに対するローカル座標は(2 MOD 2)=0
階層に基づくタイリング範囲を有する次元に対し、特定の次元キー値に関連するローカル座標値は、単にその特定の次元キー値に割当てられたローカル座標値である。実施例の1つに従うと、階層的にタイリングされた次元における各次元キー値に対するローカル座標値は、その次元キー値に対する次元テーブル行に記憶される。したがって、単に適切な次元テーブル行を読取ることによって次元キー値に対するローカル座標値を得てもよい。
【0135】
この例において、“SJ”に対する次元テーブル行は次のとおりである。
<2,SJ,CA,0,1,…>
その行において特定化されるローカル座標値は“1”である。したがって<モデル,地理>の指向付けを仮定すると、「トーラス,SJ」に対するlocal_positionは<0,1>である。
【0136】
(階層的に定められたタイリング範囲を有するキューブにおけるtile_position値を導く)
local_position値と同様、tile_position値は各次元に対する1つの座標値を含む。しかし、tile_position値の場合には、その座標値はキューブ中の他のタイルに関するあるタイルの位置を示す「タイル座標値」である。
【0137】
前述のとおり、固定された幅のタイル範囲を用いる次元に対するタイル座標値は次の方程式によって計算されてもよい。
【0138】
tile_position[j]=qj=xj DIV Tj
ここでTjはタイルの幅(端部タイルを除くタイルによって次元jに沿って張られる次元キー値の数)である。
【0139】
この例において、「トーラス」は「モデル」次元に対する次元キー値であり、固定された幅のタイル範囲を用いて分割され、その固定された幅は2である。よって、トーラスに関連するタイル座標値は2DIV2=1として計算されてもよい。
【0140】
階層に基づくタイリング範囲を有する次元に対し、特定の次元キー値に関連するタイル座標値は、単にその特定の次元キー値がマップする非最微細次元キー値に割当てられたタイル座標値である。たとえばSJはCAにマップするため、SJのタイル座標値はCAに割当てられたタイル座標値である。実施例の1つに従うと、階層的にタイリングされた次元における各次元キー値に対するタイル座標値は、その次元キー値に対する次元テーブル行に記憶される。したがって次元キー値に対するタイル座標値は、単に適切な次元テーブル行を読取ることによって得られてもよい。
【0141】
この例において、“SJ”に対する次元テーブル行は次のとおりである。
<2,SJ,CA,0,1,…>
その行において特定化されたタイル座標値は“0”である。したがって<モデル,地理>の指向付けを仮定すると、「トーラス,SJ」に対するtile_positionは<1,0>である。
【0142】
実施例の1つに従うと、階層的にタイリングされた次元に対し、次元テーブルは、付加的な列に位置情報を組込むのではなく、<tile_position,local_position>からなる複合次元キーによって構築される。よってキューブ400に関連する地理テーブルに対する複合次元キーは、<state_code,city_code>という形を有し得る。このアプローチによって、位置情報は各行に組込まれ、各行をマップするときに次元テーブルを読取る必要性をなくす。
【0143】
(階層的に定められたタイリング範囲を有するキューブにおけるtile_number値を導く)
実施例の1つに従うと、tile_number値は以下の方程式を用いてtile_position値から導かれてもよい。
【0144】
tile_number=sum(N−1,1,p1**pj*q[j+1])+q1+1
ここで
qj=j番目のtile_position座標(前述のとおり)
pj=次元jに沿ったページの数
=(Dim[j]からカウント(相異なるid)を選択)DIV Tj+r/max(r,1)
ここでr=(Dim[j]からカウント(相異なるid)を選択)MOD Tjであり、固定された幅のタイリング範囲を有する次元jに沿い、また
pj=Dim[j]からのカウント(相異なるid_parent_col)の選択であり、可変幅のタイリング範囲を有する次元jに沿う。
【0145】
よって、そのタイル幅を階層的関係によって定められる次元に沿って、タイルの数も定められる。特に、タイルの数は単に親(parent)属性の相異なる値の数である。
【0146】
(階層的に定められたタイリング範囲を有するキューブにおけるオフセット値を導く)
この発明の実施例の1つに従うと、オフセット値は次の方程式を用いてlocal_position値から導かれる。
【0147】
オフセット=sum(N−1,1,T1**Tj*r[j+1])+r1+1
ここでrj=xj MOD Tjであり、Tjは固定された幅のタイルを有する次元に沿って前述のとおりに定められる。タイル幅が階層的構造によって定められている次元に沿って、rjは単に次元テーブルから読取られ、Tj=Dim[j]からのカウント(相異なるid)の選択であり、ここでparent=(id=“key_value”のときにDim[j]からparentを選択)である。
【0148】
上記の例において、‘SF’を含むタイルに対し、T1=地方からのカウント(相異なる市)の選択であり、ここで
州=(市=‘SF…’のときに地方から州を選択)=3、およびT2=2である。
【0149】
(階層的に定められたタイリング範囲を有するキューブにおける外部キー値を導く)
多くの動作においては、tile_number−オフセット値に基づいて次元キー値を導くことが必要である。実施例の1つに従うと、その導出は最初にtile_number−オフセット値からtile_position−local_position値を導き、次にtile_position−local_position値から次元キー値を導くことによって行なわれる。
【0150】
実施例の1つに従うと、tile_positionは次の方程式に従ってtile_numberから導かれる。
【0151】
j=Nから2までに対し{qj=(tile_number−1)DIV p1**p[j−1]−sum(k=j+1,N,pj**p[k−1]*qk)}
ここでq1は前述のtile_numberに対する方程式を用いて導かれる。
【0152】
local_position値は次の方程式に従ってオフセット値から導かれる。
j=Nから2までに対し{rj=(オフセット−1)DIV T1**T[j−1]−sum(k=j+1,N,Tj**T[k−1]*rk)}
ここでr1は前述のオフセットに対する方程式を用いて導かれる。
【0153】
固定されたタイル幅を有する次元に沿って、次元キー値に関連するグローバル座標値は次の方程式を用いて導かれてもよい。
【0154】
xj=Tj*qj+rj
次いで、グローバル座標値対次元値マッピングを用いて対応する次元キー値を識別してもよい。
【0155】
タイル幅が階層的関係によって定められる次元に沿って、次元キー値にはグローバル座標が割当てられていない。その代わりに(tile_position,local_position)対が「グローバル座標」として働き、それによって次元テーブルから次元キーを得ることができる。
【0156】
(多重レベルタイリング)
別のタイリングアプローチに従うと、タイル自体がより小さいタイルに細分化されてもよい。これはタイルの階層を生じ、ここでタイルの1つのレベルに対して用いられる細分化の基準は、タイルを異なるレベルで細分化するために用いられる基準と全く異なっていてもよい。
【0157】
特定的には、タイリングが階層的関係によって定められるとき、Lレベルの入れ子状または「多重レベル」タイリングを有することが可能であり、ここでLは定める階層におけるレベルの数である。たとえば、階層が「市が定める州が定める地方」であるとき、地方グラニュールに「外側」タイリングが確立されてもよく、各地方内で州レベルのサブタイリングが確立されてもよい。次にファクトテーブル行がこれらのタイリングレベルに基づいて分類された順序で記憶されてもよい。特定的には、同じ地方に対応するすべての行がともにクラスタリングされ、各地方クラスタ内では、同じ州に対応するすべての行がともにクラスタリングされる。
【0158】
多重レベルタイリング技術を用いると、CAにおけるすべての市を要求する照会を最小限の数のI/Oによって満足させることができ、また太平洋岸地方におけるすべての州を要求する照会を最小限の数のI/Oによって満足させることができる。言換えると、ここに記載する技術はI/O最適化を多重レベル、すなわちこの例においては州レベルおよび地方レベルに拡張する。
【0159】
簡単にするため、タイリングのレベルの数がすべての次元にわたって同じである場合に対してのみ方程式を提供する。たとえばタイリングのレベルの数がキューブを定める次元の中の階層レベルの最小数になるように設定することによって、すべての次元が同じ数のタイリングレベルを有するようになる。たとえばキューブが3次元を有し、その次元が3、4および5レベルを有するとき、各次元は3レベルタイリングスキームに分割されてもよい。
【0160】
【表1】
Figure 0003979846
【0161】
キューブC1はモデルおよび市ごとの販売データを含み、階層的関係が定められることによって、市が州を定め、州が地方を定め、またモデルがメーカーを定め、メーカーが製造国を定める。
【0162】
多重レベルタイリングを実現するために、さまざまな技術を用いて座標値を最微細レベル次元キー値に割当ててもよい。
【0163】
ここで「複合キー」技術と呼ばれる1つの技術に従うと、各次元テーブルはL列複合キーによって構築でき、ここでLは階層レベルの数であり、次の形のエントリを有する。
【0164】
<tile_position[L],…,tile_position[1]>
ここでtile_position[L]は0から階層の最高レベルにおける相異なるエントリの数までの範囲であり、tile_position[L−1]は0からレベルLにおける同じ値にマップするレベルL−1における構成要素の数までの範囲であり、以下同様である。たとえば、この技術をキューブC1に用いると、地方次元は次の形を有する複合キーによって構築される。
【0165】
<region_code,state_code,city_code>
また製品次元は次の形を有する複合キーによって構築される。
【0166】
<nation_code,manufacturer_code,model_code>
ここで「分類されるタプル」技術と呼ばれる別の技術に従うと、いくつかの基準および分類された結果に割当てられる整数タプルに従って(次元キー,parent,…,parent)タプルを分類できる。この整数タプルは次元テーブル中の隠れた列に記憶される。次に座標マッピングが、(次元キー,parent,…,parent)タプルと関連する隠れた列との関係に密封される。この技術を用いると、新たな行の各々のマッピングは、次元テーブルにアクセスして(次元キー,parent,…,parent)列値を位置に変換することを必要とする。次元テーブルが大きすぎなければ、参照テーブルがメモリ中にキャッシュされてもよい。
【0167】
例示の目的のために、前述の分類されたタプル技術を用いて座標が割当てられると仮定する。この技術を用いると、キューブC1に関連する「地方」次元テーブルは次のようになる。q[1][1]などのラベルについては以下に説明する。
【0168】
【表2】
Figure 0003979846
【0169】
「モデル」次元テーブルは次のようになる。
【0170】
【表3】
Figure 0003979846
【0171】
(多重レベルタイリングに基づいて置換値を導く)
すべての次元のLレベル階層に基づいて多重レベルタイリングスキームが行なわれるとき、前述のとおり、セルに関連する<tile_position,local_position>の組合せはN−タプル<tile_position[L],…,tile_position[1]>によって置換され、ここでtile_position[1]は単一レベルタイリングスキームにおいて用いられる“local_position”に類似のものである。この列挙によると、1レベルタイリングはトリビアルなタイリングである。すなわち、各タイルは単一のセルからなる。このことは、1レベル階層が各メンバーがそれ自身のみを定めるトリビアルな階層であることに対応する。
【0172】
(タイル−位置N−タプルを導く)
多重レベルタイリングを用いる実施例に従うと、各次元に対する座標値は<tile_position[L],…,tile_position[2],tile_position[1]>の形を有する。実施例の1つに従うと、あらゆるタイリングレベルkに対して、tile_position[k]=<q[k][1],q[k][2],…,q[k][N]>であり、ここでNは次元の数である。各次元に沿ったタイル位置「座標」は次元テーブル中に組込まれる。
【0173】
代替的には、複合キー技術を用いると、q[k][j]は単にタイリングされる行におけるキーとなる。たとえば、<q[2][1],q[2][2]>=<state_code,manufacturer_code>である。
【0174】
(tile_number N−タプルを導く)
この発明の実施例の1つに従うと、多重レベルタイリングスキームにおいて、tile_number N−タプル<tile_number[L],…,tile_number[1]>はtile_position N−タプルから導かれる。<tile_position[L],…,tile_position[1]>は次の方程式に従う。
【0175】
k=1,…,Lに対し、tile_number[k]=sum(N−1,1,p[k][1]**p[k][j]*q[k][j+1])+q[k][1]+1
ここでq[k][j]=タイリングレベルkにおけるタイルの次元jに沿った位置、
p[k][j]=タイリングレベルkにおける次元jに沿ったページの数であり、これは次の照会を発行することによって定められてもよい。すなわち、Dim[j]からカウント(相異なるlevel_k_col)を選択、ここでlevel_k+1_col=(level_k_col=“key_value”のときにDim[j]からlevel_k+1_colを選択)。
【0176】
p[k][j]を定める必要があるたびごとに次元テーブルにアクセスすることを避けるために、p[k][j]は一旦計算されて計算の持続時間に対してメモリに記憶されてもよい。
【0177】
(tile_number N−タプルからtile_position N−タプルを導く)
特定の動作に対しては、ある行に記憶されるtile_numberタプルに基づいてその行に関連する実際の次元キー値を定める必要がある。実施例の1つに従うと、行に関連する次元キー値は、(1)tile_number N−タプルからtile_positionタプルを導き、(2)tile_position N−タプルに基づいて次元キー値を定めることによって導かれる。実施例の1つに従うと、tile_number[k]は次の方程式に従ってtile_position[k]に変換される。
【0178】
j=Nから2までに対し{q[k][j]=(tile_number[k]−1)DIV p[k][1]**p[k][j−1]−sum(n=j+1,N,p[k][j]**p[k][n−1]*q[k][n])}
ここでq[k][1]は前述の方程式を用いて解かれる。
【0179】
tile_positionベクトルN−タプルは次元キー値の「座標」の働きをし、それによって次元テーブルから次元キー値を得ることができる。
【0180】
(ハードウェアの概観)
図5は、この発明の実施例を実現し得るコンピュータシステム500を例示するブロック図である。コンピュータシステム500は情報を通信するためのバス502またはその他の通信機構と、情報を処理するためのバス502に結合されるプロセッサ504とを含む。コンピュータシステム500はまた、ランダムアクセスメモリ(RAM)またはその他の動的記憶装置などのメインメモリ506を含み、これはプロセッサ504によって実行される情報および命令を記憶するためにバス502に結合される。メインメモリ506はまた、プロセッサ504によって実行される命令の実行の際に一時的変数またはその他の中間情報を記憶するために用いられてもよい。コンピュータシステム500はさらに、プロセッサ504に対する静的情報および命令を記憶するためにバス502に結合される読取専用メモリ(ROM)508またはその他の静的記憶装置を含む。情報および命令を記憶するために磁気ディスクまたは光ディスクなどの記憶装置510が与えられてバス502に結合される。
【0181】
コンピュータシステム500は、コンピュータユーザに情報を表示するためにバス502を介して陰極線管(CRT)などのディスプレイ512に結合されてもよい。プロセッサ504に情報およびコマンド選択を通信するために、英数字およびその他のキーを含む入力装置514がバス502に結合される。別の種類のユーザ入力装置は、プロセッサ504に方向情報およびコマンド選択を通信し、かつディスプレイ512上のカーソルの動きを制御するための、マウス、トラックボールまたはカーソル方向キーなどのカーソル制御516である。この入力装置は典型的に、その装置が面における位置を特定化できるようにする2つの軸、第1の軸(たとえばx)および第2の軸(たとえばy)における2次の自由度を有する。
【0182】
この発明は、ここに記載する技術を実現するためのコンピュータシステム500の用法に関する。この発明の実施例の1つに従うと、それらの技術は、メインメモリ506に含まれる1つまたはそれ以上の命令の1つまたはそれ以上の配列を実行するプロセッサ504に応答してコンピュータシステム500によって実現される。このような命令は記憶装置510などの別のコンピュータ読取可能媒体からメインメモリ506に読込まれてもよい。メインメモリ506に含まれる命令の配列を実行することによって、プロセッサ504はここに記載されるプロセスステップを行なう。代替的な実施例においては、この発明を実現するために、ソフトウェア命令の代わりに、またはそれと組合せてハードワイヤード回路が用いられてもよい。すなわち、この発明の実施例はハードウェア回路およびソフトウェアのいかなる特定の組合せにも制限されない。
【0183】
ここに用いられる「コンピュータ読取可能媒体」という用語は、実行のためにプロセッサ504に命令を与えることに関わるあらゆる媒体を示す。このような媒体は多くの形を取ってもよく、それには不揮発性媒体、揮発性媒体、および伝送媒体が含まれるがこれに制限されない。不揮発性媒体は、たとえば記憶装置510などの光または磁気ディスクを含む。揮発性媒体は、メインメモリ506などの動的メモリを含む。伝送媒体はバス502を含むワイヤを含む、同軸ケーブル、銅線および光ファイバを含む。伝送媒体はまた、電波および赤外線データ通信の際に生じるものなどの音波または光波の形を取ることもできる。
【0184】
コンピュータ読取可能媒体の一般的な形はたとえば、フロッピー(R)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、またはあらゆるその他の磁気媒体、CD−ROM、あらゆるその他の光媒体、パンチカード、紙テープ、あらゆるその他の孔のパターンを有する物理媒体、RAM、PROM、およびEPROM、フラッシュ−EPROM、あらゆるその他のメモリチップまたはカートリッジ、以下に記載されるような搬送波、またはコンピュータが読取ることのできるあらゆるその他の媒体を含む。
【0185】
実行のためにプロセッサ504に1つまたはそれ以上の命令の1つまたはそれ以上の配列を運ぶステップにはさまざまな形のコンピュータ読取可能媒体が含まれてもよい。たとえば、命令は最初に遠隔コンピュータの磁気ディスクに運ばれてもよい。遠隔コンピュータは命令をその動的メモリにロードすることができ、その命令をモデムを用いて電話線上に送ることができる。コンピュータシステム500に対してローカルなモデムはその電話線上のデータを受取ることができ、赤外線送信器を用いてそのデータを赤外線信号に変換する。赤外線検出器はその赤外線信号の有するデータを受取ることができ、適切な回路がそのデータをバス502に置くことができる。バス502はそのデータをメインメモリ506に運び、そこからプロセッサ504が命令を検索および実行する。メインメモリ506が受取った命令は、プロセッサ504による実行の前または後に記憶装置510に任意に記憶されてもよい。
【0186】
コンピュータシステム500はまた、バス502に結合される通信インターフェイス518を含む。通信インターフェイス518はローカルネットワーク522に接続されるネットワークリンク520に対する双方向データ通信結合を与える。たとえば、通信インターフェイス518は対応する種類の電話線にデータ通信接続を与えるための統合サービスデジタルネットワーク(ISDN)カードまたはモデムであってもよい。別の例として、通信インターフェイス518はコンパチブルLANにデータ通信接続を与えるためのローカルエリアネットワーク(LAN)カードであってもよい。また、ワイヤレスリンクを実現してもよい。あらゆるこうした実現例において、通信インターフェイス518はさまざまな種類の情報を表わすデジタルデータストリームを有する電気、電磁気または光信号を送信および受信する。
【0187】
ネットワークリンク520は典型的に、1つまたはそれ以上のネットワークを通じて他のデータ装置にデータ通信を与える。たとえば、ネットワークリンク520はローカルネットワーク522を通じてホストコンピュータ524またはインターネットサービスプロバイダ(ISP)526によって動作されるデータ設備への接続を与えてもよい。次にISP526が、現在「インターネット」528と一般的に呼ばれるワールドワイドパケットデータ通信ネットワークを通じてデータ通信サービスを提供する。ローカルネットワーク522およびインターネット528はどちらもデジタルデータストリームを有する電気、電磁気または光信号を用いる。コンピュータシステム500に、およびそこからデジタルデータを運ぶ、さまざまなネットワークを通る信号ならびにネットワークリンク520上の信号および通信インターフェイス518を通る信号は、情報を伝達する搬送波の例示的な形である。
【0188】
コンピュータシステム500はネットワーク、ネットワークリンク520および通信インターフェイス518を通じて、メッセージを送り、プログラムコードを含むデータを受取ることができる。インターネットの例において、サーバ530は、インターネット528、ISP526、ローカルネットワーク522および通信インターフェイス518を通じてアプリケーションプログラムに対する要求されたコードを伝送してもよい。この発明に従うと、このようなダウンロードされたアプリケーションの1つがここに記載される技術を実現する。
【0189】
受取られたコードは、受取られたときにプロセッサ504によって実行されても、および/または記憶装置510もしくはその他の不揮発性記憶装置にその後の実行のために記憶されてもよい。この態様で、コンピュータシステム500は搬送波の形のアプリケーションコードを得てもよい。
【0190】
(利益および利点)
ここに記載される技術は多数の利益を提供する。たとえば、ここに記載される技術はデータの多次元特性および関連する性能利益を反映する態様で多次元データを編成するが、その下にある記憶、運営およびアクセス機構は厳密にリレーショナルなままで残り得るため、多次元およびリレーショナルシステムの利点が組合される。
【0191】
加えてここに記載する技術を、スター照会準結合技術を利用するために用いることができる。さらにこの技術は、繰返される次元キー値を圧縮し、典型的な多次元照会におけるI/Oを劇的に減少させ得るクラスタリングを提供することによって、伝統的なリレーショナルスタースキーマ概念に重大な利点を提供する。
【0192】
データに対するリレーショナルインターフェイスが保存されるため、現存するROLAPアプリケーションは多次元データ編成に関連するすべての利益を得ながら変わらず働き続ける。加えて、ここに記載される技術は、関連する次元テーブル中にのみ表わされる次元キー列を有するファクトテーブルにビットマップ(またはバランス木)索引を生成可能にする。したがって、多次元編成および圧縮によるファクトテーブルに対する劇的に減少したI/Oの利益を得ながらも、スター照会処理技術が保存される。
【0193】
ここに記載される技術はリレーショナルスキーマに「座標」の概念を導入し、これはリレーショナルファクトテーブル中の対応する測定の場所を定めるための情報を含む。さまざまな実施例において、次元とファクトテーブルとの1次外部キー関係は、座標への次元キー値のマッピングによって置換される。この機構は次元キー値をファクトテーブルの外に圧縮することを可能にし、記憶およびI/O要求を減少させる。
【0194】
ここに記載される技術は、キューブを記述する次元の「性能対称指向付け」の概念を導入する。指向付けはキューブのセルを移動するために用いられてもよい。これらの技術によって導入される指向付けは、集合を次元のあらゆる順序付けに沿って同等に処理するという点において性能対称であり、その結果あらゆる先行技術の方法よりもかなり無矛盾の性能が得られる。
【0195】
ここに記載される技術は、多次元キューブのその次元による完全な記述を導入する。特定的には、次元を用いてキューブの多次元およびジオメトリの局面を記述し、キューブのリレーショナルシステムへの真の組込みおよびすべての関連する性能利益をもたらす。
【0196】
キューブの占有、疎の減少および改善された性能における利益を得るために、ここに記載される技術は分割技術と組合されてもよい。
【0197】
ここに記載される技術は、リレーショナルシステムにおけるSQL「キューブ」オペレータの出力のコンパクトな多次元表示、および(ベース「グループバイ」によって計算されるものを超えて)オペレータによって計算される拡張された集合にアクセスするやり方を定める。
【0198】
さらに、ここに記載される階層的タイリング技術は、グラニュール(タイル)に含まれるセルがスキーマ中の階層的関係によって定められるという点において、本来関係するセルをともに記憶する。よって「関係する」データ(たとえばCAにおけるすべての市)を、ファクトテーブルに対する最小限の数のI/Oによって検索できる。
【0199】
ここに記載される技術は、固定された幅のタイルに加えて、各次元に沿って可変の幅のタイルを扱う。よってこの技術は次元に沿った階層的な関係が一般的である多次元環境において有効であり、自然な変数−幅タイリングスキームを提供する。
【0200】
ここに記載される多重レベルタイリング技術は、スキーマ中の階層的関係によって定められるとおりにグラニュール(タイル)中に含まれるという点において本来関係するセルをともに記憶し、またそれを多重レベルで行なう。よって「関係する」データ(たとえばCAにおけるすべての市)をファクトテーブルに対する最小限の数のI/Oによって検索でき、この最適化は多重レベルにおいて適用する。たとえば、その階層が(市が定める州が定める地方)であるとき、「CAにおけるすべての市」を最小限の数のI/Oによって検索できるだけでなく、「太平洋岸地方のすべての州」も同様にできる。
【図面の簡単な説明】
【図1】 スタースキーマを例示するブロック図である。
【図2】 この発明の実施例に従ってタイルに分割された2次元キューブを例示するブロック図である。
【図3】 キューブの次元Aに新たな次元キー値が付加された後の図2のキューブを例示するブロック図である。
【図4A】 階層的次元を有するキューブを例示するブロック図である。
【図4B】 階層的次元の特定のレベルのメンバーに基づいて図4のキューブをどのようにタイリングし得るかを例示するブロック図である。
【図5】 この発明の実施例を実現し得るコンピュータシステムを例示するブロック図である。

Claims (41)

  1. リレーショナルテーブルに多次元データを記憶するための方法であって、前記方法は
    複数の次元に関連するセル値を記憶するためのファクトテーブルを維持するステップと、
    次元キー値の特定の組に関連する特定のセル値を記憶する要求を受取るステップとを含み、次元キー値の前記特定の組は前記複数の次元の各々に記憶される1つの次元キー値を含み、さらに
    次元キー値の前記特定の組における2つまたはそれ以上の次元キー値に基づいて置換値を生成するステップと、
    前記ファクトテーブル中に
    前記特定のセル値と
    前記特定のセル値に関連して前記置換値とを記憶するステップとを含む、方法。
  2. 複数の次元テーブルを維持するステップをさらに含み、前記複数の次元テーブルの各次元テーブルは前記複数の次元の異なる次元に対する次元キー値を記憶する、請求項1に記載の方法。
  3. 2つまたはそれ以上の次元キー値は特定の次元からの特定の次元キー値を含み、
    前記方法は前記特定の次元に関連する次元テーブル内に座標値を記憶するステップをさらに含み、
    置換値を生成するステップは、前記特定の次元キー値に関連して前記次元テーブルに記憶される座標値に基づいて置換値を生成するステップを含む、請求項2に記載の方法。
  4. 前記特定のセル値に関連して前記置換値を記憶するステップは、前記特定のセル値に関連して前記2つまたはそれ以上の次元キー値を記憶することなく行なわれる、請求項1に記載の方法。
  5. 前記ファクトテーブルから前記特定のセル値に関連する置換値を読取るステップと、
    前記置換値に基づいて前記2つまたはそれ以上の次元キー値が前記特定のセル値に関連することを判断するステップとをさらに含む、請求項4に記載の方法。
  6. 置換値を生成するステップは、次元キー値の前記特定の組におけるすべての次元キー値に対応する次元キー値に基づいて置換値を生成するステップを含む、請求項1に記載の方法。
  7. 置換値を生成するステップは、
    前記複数の次元における次元キー値と多次元キューブのセルとの間のマッピングを確立するステップと、
    前記多次元キューブをタイルに細分化するステップと、
    前記多次元キューブのどのタイルが前記特定のセル値に対応するセルを含むかを定めるステップと、
    前記特定のセル値に対応するセルを含むタイルに基づいて前記置換値を生成するステップとを含む、請求項1に記載の方法。
  8. ファクトテーブルの各行は前記多次元キューブのタイルに対応し、
    前記タイルを識別するデータと、
    前記タイル中のセルに対応する特定のセル値とを記憶する、請求項7に記載の方法。
  9. ファクトテーブルの各行はセル値に対応し、
    前記セル値に関連するセルを含むタイルと、
    前記タイル内のセルの相対的な場所とを識別するデータを記憶する、請求項7に記載の方法。
  10. 前記複数の次元の特定の次元は階層的であり、最微細レベル次元値の組と非最微細レベル次元値の組とを含み、
    前記多次元キューブをタイルに細分化するステップは、最微細レベル次元値の前記組における前記次元値と非最微細レベル次元値の前記組における次元値とのマッピングに基づいて前記多次元キューブをタイルの第1の組に細分化するステップを含む、請求項7に記載の方法。
  11. 前記特定の次元は、
    最微細レベル次元値の前記組よりも粗い細分性のレベルと、
    非最微細レベル次元値の前記組よりも細かい細分性のレベルとを有する非最微細レベル次元値の第2の組を含み、
    前記多次元キューブをタイルに細分化するステップは、最微細レベル次元値の前記組における前記次元値と非最微細レベル次元値の前記第2の組における次元値とのマッピングに基づいてタイルの前記第1の組の各タイルをタイルの第2の組に細分化するステップを含む、請求項10に記載の方法。
  12. 前記多次元キューブをタイルに細分化するステップは、前記複数の次元の特定の次元に対する固定された幅のタイリング範囲を確立するステップを含む、請求項7に記載の方法。
  13. 前記多次元キューブをタイルに細分化するステップは、前記複数の次元のうち前記特定の次元以外の次元に対する固定された幅のタイリング範囲を確立するステップをさらに含む、請求項12に記載の方法。
  14. 前記多次元キューブをタイルに細分化するステップは、
    第1の基準に基づいて前記多次元キューブをタイルの第1の組に細分化するステップと、
    第2の基準に基づいてタイルの前記第1の組の各タイルをタイルの第2の組に細分化するステップとを含み、
    前記方法はさらに
    前記セル値に関連するセルを含むタイルの前記第1の組のタイルと、
    前記セル値に関連するセルを含むタイルの前記第2の組のタイルとに基づいて
    前記ファクトテーブル内のどこに各セル値を記憶するかを選択するステップを含む、請求項7に記載の方法。
  15. 前記ファクトテーブル内にクラスタの第1の組を確立するステップをさらに含み、クラスタの前記第1の組における各クラスタはタイルの前記第1の組における特定のタイルに関連する行に対応し、さらに
    クラスタの前記第1の組の各クラスタ内にクラスタの第2の組を確立するステップを含み、クラスタの前記第2の組における各クラスタはタイルの前記第2の組における特定のタイルに関連する行に対応する、請求項14に記載の方法。
  16. 前記方法は、前記タイルにタイル数を割当てるステップと、
    前記タイル数に基づいて分類された順序で前記ファクトテーブル中に行を記憶することによって前記ファクトテーブル内のどこに各セル値を記憶するかを選択するステップとを含む、請求項7に記載の方法。
  17. 前記タイルにタイル数を割当てるステップは、密接に関係するタイル数を前記多次元キューブ内の密接に関係する位置に存在するタイルに割当てる割当技術を用いて行なわれる、請求項16に記載の方法。
  18. リレーショナルテーブルに多次元データを記憶するための命令を有するコンピュータ読取可能媒体であって、前記命令は
    複数の次元に関連するセル値を記憶するためのファクトテーブルを維持するステップと、
    次元キー値の特定の組に関連する特定のセル値を記憶する要求を受取るステップとを行なうための命令を含み、次元キー値の前記特定の組は前記複数の次元の各々に記憶される1つの次元キー値を含み、さらに
    次元キー値の前記特定の組における2つまたはそれ以上の次元キー値に基づいて置換値を生成するステップと、
    前記ファクトテーブル内に
    前記特定のセル値と
    前記特定のセル値に関連して前記置換値とを記憶するステップとを行なうための命令を含む、コンピュータ読取可能媒体。
  19. 複数の次元テーブルを維持するための命令をさらに含み、前記複数の次元テーブルの各次元テーブルは前記複数の次元の異なる次元に対する次元キー値を記憶する、請求項18に記載のコンピュータ読取可能媒体。
  20. 2つまたはそれ以上の次元キー値は特定の次元からの特定の次元キー値を含み、
    前記コンピュータ読取可能媒体は前記特定の次元に関連する次元テーブル内に座標値を記憶するステップを行なうための命令をさらに含み、
    置換値を生成するステップは、前記特定の次元キー値に関連して前記次元テーブルに記憶される座標値に基づいて置換値を生成するステップを含む、請求項19に記載のコンピュータ読取可能媒体。
  21. 前記特定のセル値に関連して前記置換値を記憶するステップは、前記特定のセル値に関連して前記2つまたはそれ以上の次元キー値を記憶することなく行なわれる、請求項18に記載のコンピュータ読取可能媒体。
  22. 前記ファクトテーブルから前記特定のセル値に関連する置換値を読取るステップと、
    前記置換値に基づいて前記2つまたはそれ以上の次元キー値が前記特定のセル値に関連することを判断するステップとを行なうための命令をさらに含む、請求項21に記載のコンピュータ読取可能媒体。
  23. 置換値を生成するステップは、次元キー値の前記特定の組におけるすべての次元キー値に対応する次元キー値に基づいて置換値を生成するステップを含む、請求項18に記載のコンピュータ読取可能媒体。
  24. 置換値を生成するステップは、
    前記複数の次元における次元キー値と多次元キューブのセルとの間のマッピングを確立するステップと、
    前記多次元キューブをタイルに細分化するステップと、
    前記多次元キューブのどのタイルが前記特定のセル値に対応するセルを含むかを定めるステップと、
    前記特定のセル値に対応するセルを含むタイルに基づいて前記置換値を生成するステップとを含む、請求項18に記載のコンピュータ読取可能媒体。
  25. ファクトテーブルの各行は前記多次元キューブのタイルに対応し、
    前記タイルを識別するデータと
    前記タイルにおけるセルに対応する特定のセル値とを記憶する、請求項24に記載のコンピュータ読取可能媒体。
  26. ファクトテーブルの各行はセル値に対応し、
    前記セル値に関連するセルを含むタイルと
    前記タイル内のセルの相対的な場所とを識別するデータを記憶する、請求項24に記載のコンピュータ読取可能媒体。
  27. 前記複数の次元の特定の次元は階層的であり、最微細レベル次元値の組と非最微細レベル次元値の組とを含み、
    前記多次元キューブをタイルに細分化するステップは、最微細レベル次元値の前記組における前記次元値と非最微細レベル次元値の前記組における次元値との間のマッピングに基づいて前記多次元キューブをタイルの第1の組に細分化するステップを含む、請求項24に記載のコンピュータ読取可能媒体。
  28. 前記特定の次元は
    最微細レベル次元値の前記組よりも粗い細分性のレベルと
    非最微細レベル次元値の前記組よりも細かい細分性のレベルとを有する非最微細レベル次元値の第2の組を含み、
    前記多次元キューブをタイルに細分化するステップは、最微細レベル次元値の前記組における前記次元値と非最微細次元値の前記第2の組における次元値との間のマッピングに基づいてタイルの前記第1の組の各タイルをタイルの第2の組に細分化するステップを含む、請求項27に記載のコンピュータ読取可能媒体。
  29. 前記多次元キューブをタイルに細分化するステップは、前記複数の次元の特定の次元に対する固定された幅のタイリング範囲を確立するステップを含む、請求項24に記載のコンピュータ読取可能媒体。
  30. 前記多次元キューブをタイルに細分化するステップは、前記複数の次元のうち前記特定の次元以外の次元に対する固定された幅のタイリング範囲を確立するステップをさらに含む、請求項29に記載のコンピュータ読取可能媒体。
  31. 前記多次元キューブをタイルに細分化するステップは、
    第1の基準に基づいて前記多次元キューブをタイルの第1の組に細分化するステップと、
    第2の基準に基づいてタイルの前記第1の組の各タイルをタイルの第2の組に細分化するステップとを含み、
    前記命令は
    前記セル値に関連するセルを含むタイルの前記第1の組のタイルと、
    前記セル値に関連するセルを含むタイルの前記第2の組のタイルとに基づいて
    前記ファクトテーブル内のどこに各セル値を記憶するかを選択するための命令をさらに含む、請求項24に記載のコンピュータ読取可能媒体。
  32. 前記ファクトテーブル内にクラスタの第1の組を確立するステップを行なうための命令をさらに含み、クラスタの前記第1の組における各クラスタはタイルの前記第1の組における特定のタイルに関連する行に対応し、さらに
    クラスタの前記第1の組の各クラスタ内にクラスタの第2の組を確立するステップを行なうための命令を含み、クラスタの前記第2の組における各クラスタはタイルの前記第2の組における特定のタイルに関連する行に対応する、請求項31に記載のコンピュータ読取可能媒体。
  33. 前記命令は前記タイルにタイル数を割当てるための命令と、
    前記タイル数に基づいて分類される順序で前記ファクトテーブル中に行を記憶することによって前記ファクトテーブル内のどこに各セル値を記憶するかを選択するための命令とをさらに含む、請求項24に記載のコンピュータ読取可能媒体。
  34. 前記タイルにタイル数を割当てるステップは、前記多次元キューブ内の密接に関係する位置に存在するタイルに密接に関係するタイル数を割当てる割当技術を用いて行なわれる、請求項33に記載のコンピュータ読取可能媒体。
  35. リレーショナルテーブルに記憶された多次元データを表す多次元キューブのデータセルに関連する置換値を生成するための方法であって、前記方法は
    多次元キューブ内の他のタイルに対するセルの存在するタイルの位置を表すタイル位置値を生成するステップと、
    セルの存在するタイル内の他のセルに対する前記セルの位置を表すローカル位置値を生成するステップと、
    タイル位置値およびローカル位置値に基づいて置換値を生成するステップとを含
    置換値を生成するステップは
    タイル位置値に基づいて単一のタイル数を生成するステップと、
    ローカル位置値に基づいて単一のオフセット数を生成するステップとを含み、
    前記方法は、
    索引専用テーブルの単一行内に、少なくともデータセルに関連する特定のセル値と、特定のセル値に関連する単一のタイル値とを記憶するステップをさらに含む、方法。
  36. 多次元データに関連するファクトテーブルのキー範囲区画として次元キー値の特定の範囲に関連するタイルおよびゼロまたはそれ以上の他のタイルを表すステップをさらに含む、請求項35に記載の方法。
  37. 複数の行を有するテーブル上に構築された索引を記憶する方法であって、前記方法
    前記複数の行の行のサブ部分に対するキー値を含有する索引エントリを記憶するステップを含み、前記索引エントリは
    前記行を場所決めするための第1のデータと、
    前記行内に前記行の前記サブ部分に関連する値を場所決めするための第2のデータとを含む、コンピュータ読取可能媒体。
  38. 前記行の前記サブ部分はアレイであり、前記アレイの各メンバーが前記行において表される、請求項37に記載の方法
  39. 前記索引は、前記行の前記サブ部分に関連する各値に対する異なる索引エントリを有する、請求項37に記載の方法
  40. 前記第1のデータは、多次元キューブの部分の前記多次元キューブの他の部分に対する位置を表す値であり、
    前記第2のデータは、前記多次元キューブのセルの、前記セルが存在する同じ部分内の他のセルに対する位置を表す値である、請求項37に記載の方法
  41. 前記行の前記サブ部分はアレイであり、前記アレイの各メンバーは多次元キューブのセルの値を表す、請求項37に記載の方法
JP2001535850A 1999-10-25 2000-10-18 リレーショナルデータベース管理システムに多次元データを記憶する方法 Expired - Lifetime JP3979846B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/427,202 US6484179B1 (en) 1999-10-25 1999-10-25 Storing multidimensional data in a relational database management system
US09/427,202 1999-10-25
PCT/US2000/028969 WO2001033427A2 (en) 1999-10-25 2000-10-18 Storing multidimensional data in a relational database

Publications (3)

Publication Number Publication Date
JP2003514281A JP2003514281A (ja) 2003-04-15
JP2003514281A5 JP2003514281A5 (ja) 2005-12-22
JP3979846B2 true JP3979846B2 (ja) 2007-09-19

Family

ID=23693898

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001535850A Expired - Lifetime JP3979846B2 (ja) 1999-10-25 2000-10-18 リレーショナルデータベース管理システムに多次元データを記憶する方法

Country Status (6)

Country Link
US (3) US6484179B1 (ja)
EP (1) EP1242915A2 (ja)
JP (1) JP3979846B2 (ja)
AU (1) AU765989B2 (ja)
CA (1) CA2403969C (ja)
WO (1) WO2001033427A2 (ja)

Families Citing this family (227)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089331B1 (en) 1998-05-29 2006-08-08 Oracle International Corporation Method and mechanism for reducing client-side memory footprint of transmitted data
US6009432A (en) * 1998-07-08 1999-12-28 Required Technologies, Inc. Value-instance-connectivity computer-implemented database
US7076507B1 (en) * 1998-07-08 2006-07-11 Required Technologies, Inc. Value-instance-connectivity computer-implemented database
US7228300B2 (en) 1998-10-05 2007-06-05 Oracle International Corporation Caching the results of security policy functions
US7320001B1 (en) * 1999-01-15 2008-01-15 Hon Hai Precision Industry, Ltd. Method 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
US7007029B1 (en) * 1999-01-15 2006-02-28 Metaedge Corporation System for visualizing information in a data warehousing environment
US6804714B1 (en) * 1999-04-16 2004-10-12 Oracle International Corporation Multidimensional repositories for problem discovery and capacity planning of database applications
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
US6484179B1 (en) 1999-10-25 2002-11-19 Oracle Corporation Storing multidimensional data in a relational database management system
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
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
US7389284B1 (en) 2000-02-29 2008-06-17 Oracle International Corporation Method and mechanism for efficient processing of remote-mapped queries
US7908635B2 (en) 2000-03-02 2011-03-15 Tivo Inc. System and method for internet access to a personal television service
US8812850B2 (en) 2000-03-02 2014-08-19 Tivo Inc. Secure multimedia transfer system
US8171520B2 (en) 2000-03-02 2012-05-01 Tivo Inc. Method of sharing personal media using a digital recorder
US6662174B2 (en) * 2000-04-17 2003-12-09 Brio Software, Inc. Analytical server including metrics engine
US6941311B2 (en) 2000-04-27 2005-09-06 Hyperion Solutions Corporation Aggregate navigation system
US6748394B2 (en) 2000-04-27 2004-06-08 Hyperion Solutions Corporation Graphical user interface for relational database
US7072897B2 (en) * 2000-04-27 2006-07-04 Hyperion Solutions Corporation Non-additive measures and metric calculation
US7080090B2 (en) * 2000-04-27 2006-07-18 Hyperion Solutions Corporation Allocation measures and metric calculations in star schema multi-dimensional data warehouse
US6732115B2 (en) 2000-04-27 2004-05-04 Hyperion Solutions Corporation Chameleon measure and metric calculation
US7167859B2 (en) * 2000-04-27 2007-01-23 Hyperion Solutions Corporation Database security
US20010044796A1 (en) * 2000-05-19 2001-11-22 Hiroyasu Fujiwara Totalization system and recording medium
ES2165810B1 (es) * 2000-06-30 2003-04-16 Espacio T S L Sistema de ordenacion numerico tridimensional no lineal.
US6865575B1 (en) * 2000-07-06 2005-03-08 Google, Inc. Methods and apparatus for using a modified index to provide search results in response to an ambiguous search query
US7136854B2 (en) * 2000-07-06 2006-11-14 Google, Inc. Methods and apparatus for providing search results in response to an ambiguous search query
US8706747B2 (en) 2000-07-06 2014-04-22 Google Inc. Systems and methods for searching using queries written in a different character-set and/or language from the target pages
US7051078B1 (en) * 2000-07-10 2006-05-23 Cisco Technology, Inc. Hierarchical associative memory-based classification system
US6785666B1 (en) * 2000-07-11 2004-08-31 Revenue Science, Inc. Method and system for parsing navigation information
US6895471B1 (en) * 2000-08-22 2005-05-17 Informatica Corporation Method and apparatus for synchronizing cache with target tables in a data warehousing system
US7093194B2 (en) * 2000-10-27 2006-08-15 Swiftknowledge, Inc. Data access system
US7689621B1 (en) * 2000-11-06 2010-03-30 Navteq North America, Llc Multi-dimensional spatial index for a geographic database
US20020107905A1 (en) * 2001-02-05 2002-08-08 Roe Colleen A. Scalable agent service system
US7925616B2 (en) * 2001-06-19 2011-04-12 Microstrategy, Incorporated Report system and method using context-sensitive prompt objects
US7720842B2 (en) 2001-07-16 2010-05-18 Informatica Corporation Value-chained queries in analytic applications
US7103590B1 (en) 2001-08-24 2006-09-05 Oracle International Corporation Method and system for pipelined database table functions
US20030115211A1 (en) * 2001-12-14 2003-06-19 Metaedge Corporation Spatial intelligence system and method
US7162701B1 (en) * 2002-02-04 2007-01-09 Veripoint, Llc User interface for a decision support system
US6820077B2 (en) 2002-02-22 2004-11-16 Informatica Corporation Method and system for navigating a large amount of data
US7028046B2 (en) * 2002-03-19 2006-04-11 Hyperion Solutions Corporation Method of splitting a multi-dimensional cube between a multi-dimensional and a relational database
US7366730B2 (en) * 2002-04-26 2008-04-29 Oracle International Corporation Registration of solved cubes within a relational database management system
US6898608B2 (en) 2002-04-26 2005-05-24 Oracle International Corporation Techniques for managing what-if analysis of data managed by a relational database system
AU2003237135A1 (en) * 2002-04-30 2003-11-17 Veridiem Inc. Marketing optimization system
US7383275B2 (en) * 2002-05-10 2008-06-03 International Business Machines Corporation Methods to improve indexing of multidimensional databases
US7143098B2 (en) * 2002-05-10 2006-11-28 International Business Machines Corporation Systems, methods, and computer program products to reduce computer processing in grid cell size determination for indexing of multidimensional databases
US7447687B2 (en) * 2002-05-10 2008-11-04 International Business Machines Corporation Methods to browse database query information
US7610351B1 (en) 2002-05-10 2009-10-27 Oracle International Corporation Method and mechanism for pipelined prefetching
US7373353B2 (en) * 2002-05-10 2008-05-13 International Business Machines Corporation Reducing index size for multi-level grid indexes
US6973457B1 (en) 2002-05-10 2005-12-06 Oracle International Corporation Method and system for scrollable cursors
US6920460B1 (en) 2002-05-29 2005-07-19 Oracle International Corporation Systems and methods for managing partitioned indexes that are created and maintained by user-defined indexing schemes
JP2004030221A (ja) * 2002-06-26 2004-01-29 Hitachi Ltd 変更対象テーブル自動検出方法
CA2391692C (en) * 2002-07-15 2006-07-04 Allan Williams Computer database with adaptive storage space architecture
US7287022B2 (en) * 2002-07-19 2007-10-23 Microsoft Corporation System and method for analytically modeling data organized according to related attributes
US7313559B2 (en) * 2002-07-19 2007-12-25 Microsoft Corporation System and method for analytically modeling data organized according to a referenced attribute
CN1856783B (zh) * 2002-07-26 2011-05-25 罗恩·埃弗里特 使用参考与一般数据项关联的数据管理结构
US7299239B1 (en) * 2002-12-02 2007-11-20 Oracle International Corporation Methods for partitioning an object
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
US7472127B2 (en) * 2002-12-18 2008-12-30 International Business Machines Corporation Methods to identify related data in a multidimensional database
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
US20040199517A1 (en) * 2003-04-02 2004-10-07 Fabio Casati Method and system for operating a data warehouse for event management
US7895191B2 (en) * 2003-04-09 2011-02-22 International Business Machines Corporation Improving performance of database queries
US8612421B2 (en) * 2003-05-07 2013-12-17 Oracle International Corporation Efficient processing of relational joins of multidimensional data
US8200612B2 (en) * 2003-05-07 2012-06-12 Oracle International Corporation Efficient SQL access to multidimensional data
US8209280B2 (en) * 2003-05-07 2012-06-26 Oracle International Corporation Exposing multidimensional calculations through a relational database server
CA2429907A1 (en) * 2003-05-27 2004-11-27 Cognos Incorporated Modelling of a multi-dimensional data source in an entity-relationship model
JP4330941B2 (ja) * 2003-06-30 2009-09-16 株式会社日立製作所 データベース分割格納管理装置、方法及びプログラム
US7480662B2 (en) * 2003-07-03 2009-01-20 Oracle International Corporation Fact table storage in a decision support system environment
US7873684B2 (en) 2003-08-14 2011-01-18 Oracle International Corporation Automatic and dynamic provisioning of databases
US20050044065A1 (en) * 2003-08-21 2005-02-24 International Business Machines Corporation Method and apparatus for enabling national language support of a database engine
US7401069B2 (en) * 2003-09-11 2008-07-15 International Business Machines Corporation Background index bitmapping for faster query performance
US7831615B2 (en) * 2003-10-17 2010-11-09 Sas Institute Inc. Computer-implemented multidimensional database processing method and system
US7433886B2 (en) 2003-10-24 2008-10-07 Microsoft Corporation SQL language extensions for modifying collection-valued and scalar valued columns in a single statement
US7657516B2 (en) * 2003-12-01 2010-02-02 Siebel Systems, Inc. Conversion of a relational database query to a query of a multidimensional data source by modeling the multidimensional data source
US7698292B2 (en) * 2003-12-03 2010-04-13 Siemens Aktiengesellschaft Tag management within a decision, support, and reporting environment
US7346617B2 (en) * 2004-01-23 2008-03-18 Oracle International Corporation Multi-table access control
US8311974B2 (en) 2004-02-20 2012-11-13 Oracle International Corporation Modularized extraction, transformation, and loading for a database
US20050198008A1 (en) * 2004-03-02 2005-09-08 Adler David W. Index exploitation for spatial data
US7254574B2 (en) * 2004-03-08 2007-08-07 Microsoft Corporation Structured indexes on results of function applications over data
US8468444B2 (en) * 2004-03-17 2013-06-18 Targit A/S Hyper related OLAP
US7676453B2 (en) * 2004-04-22 2010-03-09 Oracle International Corporation Partial query caching
US8554806B2 (en) 2004-05-14 2013-10-08 Oracle International Corporation Cross platform transportable tablespaces
US8572221B2 (en) 2004-05-26 2013-10-29 Facebook, Inc. System and method for managing an online social network
US20050278281A1 (en) * 2004-05-28 2005-12-15 Samson Frederick E Multi-dimensional data editor
US8160998B2 (en) 2004-06-04 2012-04-17 Vitalsource Technologies, Inc. System, method and computer program product for providing content based upon a representation of the same
US8380715B2 (en) 2004-06-04 2013-02-19 Vital Source Technologies, Inc. System, method and computer program product for managing and organizing pieces of content
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
US20050283494A1 (en) * 2004-06-22 2005-12-22 International Business Machines Corporation Visualizing and manipulating multidimensional OLAP models graphically
US7480663B2 (en) * 2004-06-22 2009-01-20 International Business Machines Corporation Model based optimization with focus regions
US8972444B2 (en) 2004-06-25 2015-03-03 Google Inc. Nonstandard locality-based text entry
US8392453B2 (en) 2004-06-25 2013-03-05 Google Inc. Nonstandard text entry
US7840607B2 (en) * 2004-08-06 2010-11-23 Siemens Aktiengesellschaft Data mart generation and use in association with an operations intelligence platform
US7287032B2 (en) 2004-08-10 2007-10-23 International Business Machines Corporation Display of hierarchical data with non-numeric measures
US8700671B2 (en) * 2004-08-18 2014-04-15 Siemens Aktiengesellschaft System and methods for dynamic generation of point / tag configurations
EP1845453A4 (en) * 2004-10-28 2010-06-16 Univ Fukui DATABASE MANAGEMENT DEVICE, PROCESS AND PROGRAM
US8418075B2 (en) 2004-11-16 2013-04-09 Open Text Inc. Spatially driven content presentation in a cellular environment
US8001476B2 (en) * 2004-11-16 2011-08-16 Open Text Inc. Cellular user interface
US7610300B2 (en) * 2004-11-30 2009-10-27 International Business Machines Corporation Automated relational schema generation within a multidimensional enterprise software system
US7418438B2 (en) * 2004-11-30 2008-08-26 International Business Machines Corporation Automated default dimension selection within a multidimensional enterprise software system
US7505888B2 (en) * 2004-11-30 2009-03-17 International Business Machines Corporation Reporting model generation within a multidimensional enterprise software system
US7593955B2 (en) * 2004-11-30 2009-09-22 International Business Machines Corporation Generation of aggregatable dimension information within a multidimensional enterprise software system
US7814123B2 (en) * 2004-12-02 2010-10-12 Siemens Aktiengesellschaft Management of component members using tag attributes
US7389283B2 (en) * 2004-12-07 2008-06-17 International Business Machines Corporation Method for determining an optimal grid index specification for multidimensional data
US7660823B2 (en) * 2004-12-30 2010-02-09 Sas Institute Inc. Computer-implemented system and method for visualizing OLAP and multidimensional data in a calendar format
US7580922B2 (en) * 2005-01-04 2009-08-25 International Business Machines Corporation Methods for relating data in healthcare databases
US8442938B2 (en) * 2005-01-14 2013-05-14 Siemens Aktiengesellschaft Child data structure update in data management system
US20060190432A1 (en) * 2005-02-22 2006-08-24 Sas Institute Inc. System and method for graphically distinguishing levels of a multidimensional database
US7693860B2 (en) * 2005-03-18 2010-04-06 Microsoft Corporation Method and system to associate cell and item metadata
US20060218116A1 (en) * 2005-03-28 2006-09-28 O'hearn James E Pass-through interface queries to populate a class-based model
US7502894B2 (en) * 2005-04-20 2009-03-10 Bea Systems, Inc. Shared rowset
US20060242119A1 (en) * 2005-04-20 2006-10-26 Bea Systems, Inc. SQL-style filtered rowset
US7558779B2 (en) * 2005-04-20 2009-07-07 Bea Systems, Inc. Sorted rowset
US7814104B2 (en) * 2005-05-04 2010-10-12 Oracle International Corporation Techniques for partition pruning
US8645313B1 (en) * 2005-05-27 2014-02-04 Microstrategy, Inc. Systems and methods for enhanced SQL indices for duplicate row entries
US7496589B1 (en) * 2005-07-09 2009-02-24 Google Inc. Highly compressed randomly accessed storage of large tables with arbitrary columns
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
US7548928B1 (en) 2005-08-05 2009-06-16 Google Inc. Data compression of large scale data stored in sparse tables
US7885945B2 (en) * 2005-08-25 2011-02-08 Microsoft Corporation Secure schema identifier generation
US8234293B2 (en) * 2005-09-08 2012-07-31 Microsoft Corporation Autocompleting with queries to a database
US7792847B2 (en) 2005-09-09 2010-09-07 Microsoft Corporation Converting structured reports to formulas
US7461060B2 (en) * 2005-10-04 2008-12-02 International Business Machines Corporation Generalized partition pruning in a database system
US7805433B2 (en) * 2005-10-14 2010-09-28 Microsoft Corporation Multidimensional cube functions
US20070088599A1 (en) * 2005-10-18 2007-04-19 Henkel Consumer Adhesives, Inc. Apparatus and method for analyzing new product performance
US7464083B2 (en) * 2005-10-24 2008-12-09 Wolfgang Otter Combining multi-dimensional data sources using database operations
US7801844B2 (en) * 2005-11-23 2010-09-21 Microsoft Corporation Surrogate key generation and utilization
US7657503B1 (en) 2005-11-29 2010-02-02 At&T Corp. System and method for generating statistical descriptors for a data stream
US20070143250A1 (en) * 2005-12-20 2007-06-21 Beckman Coulter, Inc. Adaptable database system
US20070168323A1 (en) * 2006-01-03 2007-07-19 Microsoft Corporation Query aggregation
US7685092B2 (en) * 2006-01-26 2010-03-23 International Business Machines Corporation Automatic problem-oriented transformation of database performance data
US7788227B1 (en) 2006-03-03 2010-08-31 Microsoft Corporation Schema signing and just-in-time installation
WO2007131510A2 (en) * 2006-05-16 2007-11-22 Targit A/S A method of preparing an intelligent dashboard for data monitoring
US8285677B2 (en) * 2006-06-30 2012-10-09 International Business Machines Corporation Method and apparatus for propagating tables while preserving cyclic foreign key relationships
DK176532B1 (da) * 2006-07-17 2008-07-14 Targit As Fremgangsmåde til integration af dokumenter med OLAP ved brug af sögning, computerlæsbart medium og computer
US7979425B2 (en) * 2006-10-25 2011-07-12 Google Inc. Server-side match
US20080114733A1 (en) * 2006-11-14 2008-05-15 Microsoft Corporation User-structured data table indexing
US8909599B2 (en) 2006-11-16 2014-12-09 Oracle International Corporation Efficient migration of binary XML across databases
US8260783B2 (en) * 2007-02-27 2012-09-04 Siemens Aktiengesellschaft Storage of multiple, related time-series data streams
US20080222189A1 (en) * 2007-03-06 2008-09-11 Microsoft Corporation Associating multidimensional data models
US9715710B2 (en) * 2007-03-30 2017-07-25 International Business Machines Corporation Method and system for forecasting using an online analytical processing database
US8000996B1 (en) 2007-04-10 2011-08-16 Sas Institute Inc. System and method for markdown optimization
US8160917B1 (en) 2007-04-13 2012-04-17 Sas Institute Inc. Computer-implemented promotion optimization methods and systems
US8160997B1 (en) 2007-04-24 2012-04-17 Amdoes Software Systems Limted System, method and computer program product for managing aging data in a database schema
DK176516B1 (da) * 2007-04-30 2008-06-30 Targit As Computerimplementeret fremgangsmåde samt computersystem og et computerlæsbart medium til at lave videoer, podcasts eller slidepræsentationer fra en Business-Intelligence-application
US7779041B2 (en) * 2007-05-02 2010-08-17 Sap Ag Anonymizing infocube data
US8135688B2 (en) * 2007-06-15 2012-03-13 Oracle International Corporation Partition/table allocation on demand
US8209294B2 (en) * 2007-06-15 2012-06-26 Oracle International Corporation Dynamic creation of database partitions
US20090055439A1 (en) * 2007-08-24 2009-02-26 Ketera Technologies, Inc. Flexible Dimension Approach In A Data Warehouse
US7930200B1 (en) 2007-11-02 2011-04-19 Sas Institute Inc. Computer-implemented systems and methods for cross-price analysis
US8775407B1 (en) 2007-11-12 2014-07-08 Google Inc. Determining intent of text entry
US10437887B1 (en) 2007-11-12 2019-10-08 Google Llc Determining intent of text entry
US8150850B2 (en) * 2008-01-07 2012-04-03 Akiban Technologies, Inc. Multiple dimensioned database architecture
US8082239B2 (en) * 2008-02-04 2011-12-20 Microsoft Corporation Defining sub-cube scope based upon a query
US7958122B2 (en) * 2008-03-05 2011-06-07 Microsoft Corporation Data domains in multidimensional databases
US8108431B1 (en) * 2008-03-24 2012-01-31 Autotelika, Incorporated Two-dimensional data storage system
US7856416B2 (en) * 2008-04-22 2010-12-21 International Business Machines Corporation Automated latent star schema discovery tool
US8812338B2 (en) 2008-04-29 2014-08-19 Sas Institute Inc. Computer-implemented systems and methods for pack optimization
US8195645B2 (en) * 2008-07-23 2012-06-05 International Business Machines Corporation Optimized bulk computations in data warehouse environments
US8825646B1 (en) * 2008-08-08 2014-09-02 Google Inc. Scalable system for determining short paths within web link network
US8296182B2 (en) * 2008-08-20 2012-10-23 Sas Institute Inc. Computer-implemented marketing optimization systems and methods
US20100057685A1 (en) * 2008-09-02 2010-03-04 Qimonda Ag Information storage and retrieval system
US8484351B1 (en) 2008-10-08 2013-07-09 Google Inc. Associating application-specific methods with tables used for data storage
US20100131457A1 (en) * 2008-11-26 2010-05-27 Microsoft Corporation Flattening multi-dimensional data sets into de-normalized form
US8271318B2 (en) 2009-03-26 2012-09-18 Sas Institute Inc. Systems and methods for markdown optimization when inventory pooling level is above pricing level
US8321390B2 (en) * 2009-06-11 2012-11-27 Vivek Swarnakar Methods and apparatus for organizing data in a database
US9438413B2 (en) * 2010-01-08 2016-09-06 Novell, Inc. Generating and merging keys for grouping and differentiating volumes of files
US20110082855A1 (en) * 2009-10-01 2011-04-07 Al-Omari Awny K Multi-dimensional access to data
KR101639574B1 (ko) 2009-12-30 2016-07-14 삼성전자주식회사 적응적 뱅크 어드레스를 제공하는 디스플레이 시스템 및 그것의 어드레스 맵핑 방법
US8688748B2 (en) * 2010-01-21 2014-04-01 Siemens Product Lifecycle Management Software Inc. Adaptive table sizing for multiple-attribute parameters
US8918388B1 (en) * 2010-02-26 2014-12-23 Turn Inc. Custom data warehouse on top of mapreduce
US8515835B2 (en) 2010-08-30 2013-08-20 Sas Institute Inc. Systems and methods for multi-echelon inventory planning with lateral transshipment
KR101188886B1 (ko) * 2010-10-22 2012-10-09 삼성에스디에스 주식회사 유전 정보 관리 시스템 및 방법
US9292575B2 (en) * 2010-11-19 2016-03-22 International Business Machines Corporation Dynamic data aggregation from a plurality of data sources
US8788315B2 (en) 2011-01-10 2014-07-22 Sas Institute Inc. Systems and methods for determining pack allocations
US8688497B2 (en) 2011-01-10 2014-04-01 Sas Institute Inc. Systems and methods for determining pack allocations
US8311975B1 (en) 2011-02-28 2012-11-13 Allan Michael Gonsalves Data warehouse with a domain fact table
US20120311474A1 (en) * 2011-06-02 2012-12-06 Microsoft Corporation Map-based methods of visualizing relational databases
US8676801B2 (en) 2011-08-29 2014-03-18 Sas Institute Inc. Computer-implemented systems and methods for processing a multi-dimensional data structure
US9182913B2 (en) * 2011-10-18 2015-11-10 Ubiterra Corporation Apparatus, system and method for the efficient storage and retrieval of 3-dimensionally organized data in cloud-based computing architectures
US8612491B2 (en) * 2011-10-25 2013-12-17 The United States Of America, As Represented By The Secretary Of The Navy System and method for storing a dataset of image tiles
US8938416B1 (en) * 2012-01-13 2015-01-20 Amazon Technologies, Inc. Distributed storage of aggregated data
US9223847B2 (en) * 2012-03-07 2015-12-29 Microsoft Technology Licensing, Llc Using dimension substitutions in OLAP cubes
US8694508B2 (en) * 2012-06-04 2014-04-08 Sap Ag Columnwise storage of point data
US9465835B2 (en) 2012-06-25 2016-10-11 Sap Se Columnwise spatial aggregation
US8812488B2 (en) 2012-08-16 2014-08-19 Oracle International Corporation Constructing multidimensional histograms for complex spatial geometry objects
US9047314B1 (en) * 2012-09-27 2015-06-02 The Mathworks, Inc. Creating and using dynamic vector classes
US9507825B2 (en) 2012-09-28 2016-11-29 Oracle International Corporation Techniques for partition pruning based on aggregated zone map information
US8996544B2 (en) 2012-09-28 2015-03-31 Oracle International Corporation Pruning disk blocks of a clustered table in a relational database management system
US9430550B2 (en) 2012-09-28 2016-08-30 Oracle International Corporation Clustering a table in a relational database management system
US9858326B2 (en) * 2012-10-10 2018-01-02 Microsoft Technology Licensing, Llc Distributed data warehouse
US9442949B2 (en) 2013-03-14 2016-09-13 Futurewei Technologies, Inc. System and method for compressing data in a database
US10642837B2 (en) 2013-03-15 2020-05-05 Oracle International Corporation Relocating derived cache during data rebalance to maintain application performance
US9501526B2 (en) 2013-04-17 2016-11-22 Excalibur Ip, Llc Efficient database searching
US9390162B2 (en) 2013-04-25 2016-07-12 International Business Machines Corporation Management of a database system
EP3000095B1 (en) * 2013-05-23 2020-09-09 Intel Corporation Techniques for organizing three-dimensional array data
US9922062B2 (en) * 2013-07-16 2018-03-20 Clearag, Inc. High-performance gridded data storage, arrangement and extraction
US9317529B2 (en) 2013-08-14 2016-04-19 Oracle International Corporation Memory-efficient spatial histogram construction
US9959312B2 (en) 2013-09-05 2018-05-01 Sybase, Inc. High performance index creation on sorted data using parallel query plans
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
US9836519B2 (en) 2013-09-20 2017-12-05 Oracle International Corporation Densely grouping dimensional data
US10002160B2 (en) * 2013-12-23 2018-06-19 Teradata Us, Inc. Parallelizable gridded geospatial join (PGGJ)
US8990212B1 (en) * 2014-03-27 2015-03-24 Visier Solutions, Inc. Systems and methods of mapping multidimensional data and executing queries
US10468126B1 (en) 2014-08-19 2019-11-05 Multiscale Health Networks, Llc. Clinical activity network generation
CN104778212B (zh) * 2014-12-19 2018-08-07 北京搜狗科技发展有限公司 地图数据生成方法和装置、地图数据读取方法和装置
US9946705B2 (en) * 2015-06-29 2018-04-17 International Business Machines Corporation Query processing using a dimension table implemented as decompression dictionaries
US10341459B2 (en) 2015-09-18 2019-07-02 International Business Machines Corporation Personalized content and services based on profile information
US10678792B2 (en) 2015-10-23 2020-06-09 Oracle International Corporation Parallel execution of queries with a recursive clause
US10783142B2 (en) 2015-10-23 2020-09-22 Oracle International Corporation Efficient data retrieval in staged use of in-memory cursor duration temporary tables
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
CN105354272B (zh) * 2015-10-28 2018-08-28 中通服公众信息产业股份有限公司 一种基于维度组合的指标计算方法和系统
US10545959B2 (en) * 2015-12-22 2020-01-28 Teradata Us, Inc. Method and a system for efficient data sorting
US10437832B2 (en) 2016-05-19 2019-10-08 Microsoft Technology Licensing, Llc Reconciling foreign key references and table security policies
US10558659B2 (en) 2016-09-16 2020-02-11 Oracle International Corporation Techniques for dictionary based join and aggregation
US10902022B2 (en) * 2017-03-28 2021-01-26 Shanghai Kyligence Information Technology Co., Ltd OLAP pre-calculation model, automatic modeling method, and automatic modeling system
US10248641B2 (en) * 2017-03-31 2019-04-02 Mckesson Corporation Method, apparatus, and computer program product for managing retrieval of content for display by a browser
US10877997B2 (en) * 2017-06-28 2020-12-29 International Business Machines Corporation Clustering database data
US11086876B2 (en) 2017-09-29 2021-08-10 Oracle International Corporation Storing derived summaries on persistent memory of a storage device
US10896225B2 (en) * 2018-05-23 2021-01-19 Singlestore, Inc. Bitmap filter, a method of generating the same, and a method of using a bitmap filter to perform a join
WO2020018321A1 (en) 2018-07-18 2020-01-23 Walmart Apollo, Llc System and method for product assortment management
US10394859B1 (en) * 2018-10-19 2019-08-27 Palantir Technologies Inc. Systems and methods for processing and displaying time-related geospatial data
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
US11016978B2 (en) 2019-09-18 2021-05-25 Bank Of America Corporation Joiner for distributed databases
US11126401B2 (en) 2019-09-18 2021-09-21 Bank Of America Corporation Pluggable sorting for distributed databases
US11775757B2 (en) 2020-05-04 2023-10-03 International Business Machines Corporation Automated machine-learning dataset preparation
US11880388B2 (en) * 2022-06-13 2024-01-23 Snowflake Inc. Hybrid table secondary index for lookups, unique checks, and referential integrity constraints

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5359724A (en) 1992-03-30 1994-10-25 Arbor Software Corporation Method and apparatus for storing and retrieving multi-dimensional data in computer memory
DE69529088T2 (de) * 1994-11-21 2003-09-25 Oracle Corp Verfahren und gerät für eine mehrdimensionale datenbank mit einem binären hyperräumlichen code
US5848408A (en) * 1997-02-28 1998-12-08 Oracle Corporation Method for executing star queries
US5978788A (en) * 1997-04-14 1999-11-02 International Business Machines Corporation System and method for generating multi-representations of a data cube
US5940818A (en) * 1997-06-30 1999-08-17 International Business Machines Corporation Attribute-based access for multi-dimensional databases
US6205447B1 (en) * 1997-06-30 2001-03-20 International Business Machines Corporation Relational database management of multi-dimensional data
US5926818A (en) * 1997-06-30 1999-07-20 International Business Machines Corporation Relational database implementation of a multi-dimensional database
US5905985A (en) 1997-06-30 1999-05-18 International Business Machines Corporation Relational database modifications based on multi-dimensional database modifications
US5943668A (en) * 1997-06-30 1999-08-24 International Business Machines Corporation Relational emulation of a multi-dimensional database
US5918232A (en) * 1997-11-26 1999-06-29 Whitelight Systems, Inc. Multidimensional domain modeling method and system
US6427143B1 (en) * 1998-04-10 2002-07-30 Computer Associates Think, Inc. Method for loading rows into a database table while enforcing constraints
US6212524B1 (en) * 1998-05-06 2001-04-03 E.Piphany, Inc. Method and apparatus for creating and populating a datamart
US6189004B1 (en) * 1998-05-06 2001-02-13 E. Piphany, Inc. Method and apparatus for creating a datamart and for creating a query structure for the datamart
US6295539B1 (en) * 1998-09-14 2001-09-25 Computer Associates Think, Inc. Dynamic determination of optimal process for enforcing constraints
US6212515B1 (en) * 1998-11-03 2001-04-03 Platinum Technology, Inc. Method and apparatus for populating sparse matrix entries from corresponding data
US6282544B1 (en) * 1999-05-24 2001-08-28 Computer Associates Think, Inc. Method and apparatus for populating multiple data marts in a single aggregation process
US6163774A (en) * 1999-05-24 2000-12-19 Platinum Technology Ip, Inc. Method and apparatus for simplified and flexible selection of aggregate and cross product levels for a data warehouse
US6446063B1 (en) * 1999-06-25 2002-09-03 International Business Machines Corporation Method, system, and program for performing a join operation on a multi column table and satellite tables
US6374235B1 (en) * 1999-06-25 2002-04-16 International Business Machines Corporation Method, system, and program for a join operation on a multi-column table and satellite tables including duplicate values
US6438562B1 (en) * 1999-08-24 2002-08-20 Oracle Corporation Parallel index maintenance
US6484179B1 (en) * 1999-10-25 2002-11-19 Oracle Corporation Storing multidimensional data in a relational database management system

Also Published As

Publication number Publication date
JP2003514281A (ja) 2003-04-15
US6778996B2 (en) 2004-08-17
CA2403969A1 (en) 2001-05-10
WO2001033427A3 (en) 2002-07-04
WO2001033427A2 (en) 2001-05-10
AU1096601A (en) 2001-05-14
CA2403969C (en) 2010-08-17
AU765989B2 (en) 2003-10-09
EP1242915A2 (en) 2002-09-25
US20030055832A1 (en) 2003-03-20
US20030208503A1 (en) 2003-11-06
US6484179B1 (en) 2002-11-19
US6636870B2 (en) 2003-10-21

Similar Documents

Publication Publication Date Title
JP3979846B2 (ja) リレーショナルデータベース管理システムに多次元データを記憶する方法
US10223422B2 (en) Pruning disk blocks in a relational database management system
US6505189B1 (en) Aggregate join index for relational databases
US5442784A (en) Data management system for building a database with multi-dimensional search tree nodes
US5943677A (en) Sparsity management system for multi-dimensional databases
US5832475A (en) Database system and method employing data cube operator for group-by operations
US6141655A (en) Method and apparatus for optimizing and structuring data by designing a cube forest data structure for hierarchically split cube forest template
US7171427B2 (en) Methods of navigating a cube that is implemented as a relational object
US9430550B2 (en) Clustering a table in a relational database management system
US5781906A (en) System and method for construction of a data structure for indexing multidimensional objects
US6223182B1 (en) Dynamic data organization
US8868544B2 (en) Using relational structures to create and support a cube within a relational database system
US6505188B1 (en) Virtual join index for relational databases
EP1234258B1 (en) System for managing rdbm fragmentations
US20050289119A1 (en) Method and apparatus for generating and utilizing qualifiers and qualified taxonomy tables
JP2003330964A (ja) データベース・システム
US7822776B2 (en) Multidimensional dynamic clustering (MDDC)
JPH09212528A (ja) データベースを記憶する方法、データベースからレコードを検索する方法、および、データベース記憶/検索システム
Ooi et al. Indexing in spatial databases
US6618720B1 (en) Common spool files for maintaining join indexes
Karayannidis et al. Hierarchical clustering for OLAP: the CUBE File approach
Wu et al. A new spatial index structure for GIS data
Zhang Betty Salzberg
Dzakovic Using a Non-Traditional Design to Improve VLDB Performance or RM-Friendly 1NF Denormalization
rOLAP Indexing rcUbE

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040630

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20050913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061225

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: 20070612

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070626

R150 Certificate of patent or registration of utility model

Ref document number: 3979846

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100706

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110706

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110706

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120706

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120706

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130706

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250