(57)【要約】【課題】  データの測度間の関係を表現し計算する。【解決手段】  測度表現式は、算術演算によって定義される測度間の関係を含むことができる。照会は、選択された属性範囲上の測度表現式の計算を要求する。要求は、関連テーブルを１回アクセスすることにより測度表現式の各測度の選択された属性範囲内のデータを含む全ての列を検索することによって処理することができる。【選択図】  図５
2005018751.tif 000002
【特許請求の範囲】
【請求項１】
選択された属性範囲上の測度表現式を計算する方法であって、前記測度表現式は第１の測度と第２の測度との間の関係を含み、前記第１の測度は第１のデータ型に対応し、前記第２の測度は第２のデータ型に対応し、前記関係は算術演算によって定義され、前記方法は、
前記第１のデータ型に対応し、選択された属性範囲上の第１の測度に関するデータを含む第１のキャッシュを検索すること、
前記第１のキャッシュから、前記第１のデータ型と前記第２のデータ型に共通する選択された属性範囲上の前記第１の測度に関するデータを含む第１のインデックスを生成すること、
前記第２のデータ型に対応し、前記選択された属性範囲上の前記第２の測度に関するデータを含む第２のキャッシュを検索すること、
前記第２のキャッシュから、前記第１のデータ型と前記第２のデータ型に共通する前記選択された属性範囲上の前記第２の測度に関するデータを含む第２のインデックスを生成すること、
前記第１のインデックスからの前記第１の測度に関するデータ及び前記第２のインデックスからの前記第２の測度に関するデータに対して算術演算を実行し、結果データを得ること、および、
前記第１のデータ型と前記第２のデータ型に共通する前記選択された属性範囲上に前記結果データを集めること
を備えたことを特徴とする方法。
【請求項２】
前記第１のキャッシュを検索することは、第１のデータテーブルに対する一回のアクセスを介して前記第１のキャッシュを検索することを含むことを特徴とする請求項１記載の方法。
【請求項３】
前記第２のキャッシュを検索することは、第２のデータテーブルに対する一回のアクセスを介して前記第２のキャッシュを検索することを特徴とする請求項１記載の方法。
【請求項４】
前記第１のインデックスを生成することは、前記第１のデータ型に固有の属性にしたがって集約された前記第１の測度に関するデータを含むことを特徴とする請求項１記載の方法。
【請求項５】
前記第２のインデックスを生成することは、前記第２のデータ型に固有の属性にしたがって集約された前記第２の測度に関するデータを含むことを特徴とする請求項１記載の方法。
【請求項６】
前記第１のキャッシュ及び前記第２のキャッシュを記憶することを更に含むことを特徴とする請求項１記載の方法。
【請求項７】
前記選択された属性範囲上の前記測度表現式を計算する要求を受け取ることを更に含むことを特徴とする請求項１記載の方法。
【請求項８】
選択された属性範囲上の測度表現式を計算するシステムであって、前記測度表現式は第１の測度と第２の測度との間の関係を含み、前記第１の測度は第１のデータ型に対応し、前記第２の測度は第２のデータ型に対応し、前記関係は算術演算によって定義され、前記システムは、
前記第１のデータ型に関するデータを含む第１のデータテーブルと、前記第２のデータ型に関するデータを含む第２のデータテーブルとを記憶するデータベースと、プロセッサとを備え、
前記プロセッサは、
前記第１のデータ型に対応し、選択された属性範囲上の第１の測度に関するデータを含む第１のキャッシュを検索すること、
前記第１のキャッシュから、前記第１のデータ型と前記第２のデータ型に共通する選択された属性範囲上の前記第１の測度に関するデータを含む第１のインデックスを生成すること、
前記第２のデータ型に対応し、前記選択された属性範囲上の前記第２の測度に関するデータを含む第２のキャッシュを検索すること、
前記第２のキャッシュから、前記第１のデータ型と前記第２のデータ型に共通する前記選択された属性範囲上の前記第２の測度に関するデータを含む第２のインデックスを生成すること、
前記第１のインデックスからの前記第１の測度に関するデータ及び前記第２のインデックスからの前記第２の測度に関するデータに対して算術演算を実行し、結果データを得ること、および、
前記第１のデータ型と前記第２のデータ型に共通する前記選択された属性範囲上に前記結果データを集めること
を実行することを特徴とするシステム。
【請求項９】
前記第１のキャッシュは、前記第１のデータテーブルに対する一回のアクセスを介して検索されるデータを備えることを特徴とする請求項８記載のシステム。
【請求項１０】
前記第２のキャッシュは、第２のデータテーブルに対する一回のアクセスを介して検索されるデータを備えることを特徴とする請求項８記載のシステム。
【請求項１１】
前記第１のインデックスは、前記第１のデータ型に固有の属性にしたがって集約された前記第１の測度に関するデータを備えることを特徴とする請求項８記載のシステム。
【請求項１２】
前記第２のインデックスは、前記第２のデータ型に固有の属性にしたがって集約された前記第２の測度に関するデータを備えることを特徴とする請求項８記載のシステム。
【請求項１３】
前記第１のキャッシュ及び前記第２のキャッシュを記憶するメモリを更に備えることを特徴とする請求項８記載の方法。
【請求項１４】
選択された属性範囲上の測度表現式を計算するコンピュータ可読媒体であって、前記測度表現式は第１の測度と第２の測度との間の関係を含み、前記第１の測度は第１のデータ型に対応し、前記第２の測度は第２のデータ型に対応し、前記関係は算術演算によって定義され、前記コンピュータ可読媒体は、
前記第１のデータ型に対応し、選択された属性範囲上の第１の測度に関するデータを含む第１のキャッシュを検索するステップ、
前記第１のキャッシュから、前記第１のデータ型と前記第２のデータ型に共通する選択された属性範囲上の前記第１の測度に関するデータを含む第１のインデックスを生成するステップ、
前記第２のデータ型に対応し、前記選択された属性範囲上の前記第２の測度に関するデータを含む第２のキャッシュを検索するステップ、
前記第２のキャッシュから、前記第１のデータ型と前記第２のデータ型に共通する前記選択された属性範囲上の前記第２の測度に関するデータを含む第２のインデックスを生成するステップ、
前記第１のインデックスからの前記第１の測度に関するデータ及び前記第２のインデックスからの前記第２の測度に関するデータに対して算術演算を実行し、結果データを得るステップ、
前記第１のデータ型と前記第２のデータ型に共通する前記選択された属性範囲上に前記結果データを集めるステップ
を実行するコンピュータ実行可能命令を備えることを特徴とする方法。
【請求項１５】
前記第１のキャッシュを検索するコンピュータ実行可能命令は、第１のデータテーブルに対する一回のアクセスを介して前記第１のキャッシュを検索するコンピュータ実行可能命令を備えることを特徴とする請求項１４記載のコンピュータ可読媒体。
【請求項１６】
前記第２のキャッシュを検索するコンピュータ実行可能命令は、第２のデータテーブルに対する一回のアクセスを介して前記第２のキャッシュを検索するコンピュータ実行可能命令を備えることを特徴とする請求項１４記載のコンピュータ可読媒体。
【請求項１７】
前記第１のインデックスを生成するコンピュータ実行可能命令は、前記第１のデータ型に固有の属性にしたがって集約された前記第１の測度に関するデータを含む前記第１のインデックスを生成するコンピュータ実行可能命令を備えることを特徴とする請求項１４記載のコンピュータ可読媒体。
【請求項１８】
前記第２のインデックスを生成するコンピュータ実行可能命令は、前記第２のデータ型に固有の属性にしたがって集約された前記第２の測度に関するデータを含む前記第２のインデックスを生成するコンピュータ実行可能命令を備えることを特徴とする請求項１４記載のコンピュータ可読媒体。
【請求項１９】
前記第１のキャッシュと前記第２のキャッシュを記憶するコンピュータ実行可能命令を更に備えることを特徴とする請求項１４記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ分析サービスの分野に関し、より詳細には、データの測度（ｍｅａｓｕｒｅ）間の関係を表現し計算することに関する。
【背景技術】
【０００２】
オンライン分析処理（ＯＬＡＰ）は、多くのウェアハウス（ｗａｒｅｈｏｕｓｅ）及びビジネス分析システムにとって重要な役割をはたす。ＯＬＡＰサービスは、多次元情報の高速分析を提供する。この目的のために、ＯＬＡＰサービスは、直感的かつ自然な方法で多次元アクセスとデータナビゲーションを提供し、関心のある特定のデータにまで掘り下げることのできるデータの包括的な視点を提供する。スピードとレスポンスタイムは、ＯＬＡＰサービスの重要な特性であり、この特性によって、ユーザは効率的な手法でかつオンラインによって、データを閲覧し分析することができる。さらに、ＯＬＡＰサービスは、通常、分析を受けるデータのリード及びラグのインディケータ（ｌｅａｄ  ａｎｄ  ｌａｇ  ｉｎｄｉｃａｔｏｒｓ）をランク付けし、集約し、計算する分析ツールを提供する。
【０００３】
この文脈においては、データのユーザ認知にしたがってＯＬＡＰキューブをモデル化することができる。キューブは、次元にしたがってデータ型を編成し、各次元は、データ型の属性にしたがってモデル化される。例えば、キューブは、「顧客」、「位置」及び「時間」の次元にしたがって「売上げ」データを編成できる。通常、各次元と関連する階層がある。階層は精度のレベルを含む。例えば、時間次元は、月、週、日と細分化される年から構成される。年のレベルは、精度が最も広いレベルであり、一方、日のレベルは、精度が最も細かいレベルである。次元メンバーは、キューブ内部の特別なセル又はセル範囲を識別するためのインデックスとして動作する。キューブは、測度もまた有することができ、その測度は、その属性にしたがってデータ型を表す。例えば、「売上げ」キューブは、測度「売上高」（ｓａｌｅｓ  ａｍｏｕｎｔ）をもつことができ、それは、対応する場所の自国の通貨でもたらせる売上の額である。
【０００４】
ＯＬＡＰサービスは、オンライントランザクショナルプロセッシング（ＯＬＴＰ）データベース等のリレーショナルデータベースに保存されているデータを分析的にモデル化するために使用される場合が多い。そのようなリレーショナルデータベースに保存されているデータを複数テーブルにしたがって編成することができる。各テーブルは、属性及び測度に対応する列によるデータ型を編成できる。例えば、「売上げ」キューブを、属性「顧客」、属性「位置」及び属性「時間」及び、測度「売上高」に対応する列を備えた「売上げ」テーブルにしたがってモデル化することができる。さらに、「為替」テーブルは、属性「位置」及び属性「時間」、及び、測度「為替レート」に対応する列を含むことができ、ここで、「為替レート」は、対応する国の自国の通貨からＵＳ通貨への変換レートである。
【０００５】
異なる測度間の関係を計算することが好ましい場合が多い。例えば、「売上げ」テーブルの「売上高」測度と「為替テーブル」の「為替レート」測度との積を計算することにより、自国の通貨からＵＳ通貨に売上げを変換することが望ましい。測度間のそのような関係は、データが利用可能な最も細かいレベルの精度で最初に計算され、次に、計算された結果を集めて、より広い選択範囲についての結果をつくりだす。例えば、「売上げ」データと「為替」データの両データの最も細かいレベルの精度が月レベルである場合、４半期のメキシコ通貨の売上げ及びカナダ通貨の売上げをＵＳ通貨に変換する要求が、４半期の３ヶ月の各月における２つの国の通貨に対して計算され、６つの別々の計算結果が得られる。引き続いて、６つの計算は、集められ、全４半期に対するＵＳ通貨単位でのメキシコ及びカナダの全売上げが提供される。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来のＯＬＡＰシステムにおいては、各測度に関するデータは、行単位における各テーブルからの各計算に対して別々にアクセスされなければならない。例えば、メキシコとカナダの４半期の売上げを変換するために、「売上げ」テーブルと「為替」テーブルは、計算に関連する６行の各々に対して６回アクセスされなければならない。行単位の別々のアクセスは、必要な時間量を著しく延長して、複雑な計算を実行する可能性がある。したがって、関係が行単位において計算されない測度間の関係を測度計算するシステム及び方法に関する技術が必要とされる。
【課題を解決するための手段】
【０００７】
測度表現式は、算術演算によって定義される複数の測度間の関係を含むことができる。その表現式内の各測度は、関連するデータ型に対応することができる。各データ型のデータを関連データテーブルに記憶することができる。リクエストは、選択された属性範囲上の測度表現式を計算するために受け取られる。
【０００８】
本発明の実施形態においては、リクエストは、表現式内の関連測度に各々が対応する複数キャッシュを検索することによって処理される。各キャッシュは、選択された属性範囲上の関連測度に関するデータを備える全ての列を含む。全ての列は、関連データテーブルに対して一回アクセスすることによって検索される。
【０００９】
各々が関連キャッシュに対応する複数のインデックスを生成することができる。各インデックスは、表現式内のすべての測度に共通する選択された属性範囲上で関連測度に関するデータを含むことができる。そのデータを、関連データ型固有の属性によって集約できる。
【００１０】
測度表現式における算術演算は、行単位の各インデックスからのデータ上で実行され、結果データを、表現式内の全ての測度に共通する選択された属性範囲上で集約することができる。
【００１１】
本発明の追加の特徴及び利点は、添付図面を参照して進行する実施形態の詳細な説明から明らかであろう。
【発明を実施するための最良の形態】
【００１２】
（本発明の例示的なシステム及び方法）
本発明にしたがってデータを分析的にモデル化するシステム例を図２に示す。図に示したように、例えばオンライン分析処理（ＯＬＡＰ）サービス等の分析的データサービス２２０は、例えば、オンライントランザクショナルデータベース(OLTP)等のリレーショナルデータベース内に記憶されたデータをモデル化するために用いられる。分析的データサービス２２０は、リポーティングクライアント２３０を介して分析的にモデル化されたデータを提供する。既に述べたように、リレーショナルデータベース２００に保存されたデータは、複数テーブルにしたがって編成され、各テーブルは、特別なデータ型に対応するデータを含む。特別なデータ型に対応するテーブルは、データ属性及び測度に対応するカラムにしたがって編成される。
【００１３】
（コンピュータ環境）
図１及び以下の説明は、本発明及び／又は本発明の一部分が実行される好適なコンピューティング環境の簡単かつ一般的な内容を提供することを意図している。必須ではないが、本発明は、クライアントワークステーション又はサーバ等のコンピュータによって実行されるプログラムモジュール等のコンピュータ実行可能命令の一般的な文脈で記載されている。一般的に、プログラムモジュールは、ルーティン、プログラム、オブジェクト、コンポーネント、データ構造及び特別なタスクを実行し又は特別な抽象データ型を実装する同等物を含む。さらに、本発明及び／又はその一部は、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベース又はプログラマブルコンシューマ電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ等をはじめとするその他のコンピュータシステム構成を使って実施することができる。また、本発明は、通信ネットワークを介して接続されるリモート処理デバイスによってタスクが実行される分散コンピューティング環境において実施することができる。分散コンピューティング環境においては、プログラムモジュールを、ローカル及びリモートのメモリストレージデバイスにおくことができる。
【００１４】
図１に示すように、例示的汎用コンピューティングシステムは、処理ユニット１２１、システムメモリ１２２、システムメモリを含んだ各種システムコンポーネントを処理ユニット１２１に結合するシステムバス１２３とを備えた従来型のパーソナルコンピュータ１２０又はそれの同等物を備える。システムバス１２３は、メモリバス又はメモリコントローラ、周辺バス及び各種バスアーキテクチャのいずれかを使用するローカルバスを含んだ幾つかあるバス構造の型の中のいずれかでよい。システムメモリは、リードオンリーメモリ（ＲＯＭ）１２４及びランダムアクセスメモリ（ＲＡＭ）１２５を含む。基本入出力システム１２６（ＢＩＯＳ）は、パーソナルコンピュータ１２０内部の要素間の情報転送のために役立つ基本ルーティンを含み、スタートアップの間等には、ＲＯＭ１２４に記憶される。
【００１５】
パーソナルコンピュータ１２０は、ハードディスクドライブ（図示せず）に対して読み書きをするハードディスクドライブ１２７、着脱式磁気ディスク１２９に対して読み書きをする磁気ディスクドライブ１２８、ＣＤ−ＲＯＭ又はその他の光媒体等の着脱式光ディスク１３１に対して読み書きを行う光ディスクドライブ１３０をさらに備えることができる。ハードディスクドライブ１２７、磁気ディスクドライブ１２８、光ディスクドライブ１３０は、それぞれ、ハードディスクドライブインタフェース１３２、磁気ディスクドライブインタフェース１３３、光ドライブインタフェース１３４を使ってシステムバス１２３に接続される。ドライバーやそれらと関係するコンピュータ可読媒体は、コンピュータ可読命令の不揮発性ストレージ、データ構造、プログラムモジュール及びパーソナルコンピュータのための他のデータを提供する。
【００１６】
本明細書に記載された例示的環境は、ハードディスク、着脱式磁気ディスク１２９及び着脱式光ディスク１３１を使用するが、コンピュータによってアクセス可能なデータを記憶できる他の種類のコンピュータ可読媒体が例示的オペレーティング環境で使用できると理解すべきである。他の種類の媒体は、磁気カセット、フラッシュメモリカード、ディジタルビデオディスク、ベルヌーイ（Ｂｅｒｎｏｕｌｌｉ）カートリッジ、ランダムアクセスメモリ（ＲＡＭ）、リードオンリメモリ（ＲＯＭ）等を含む。
【００１７】
多数のプログラムモジュールはハードディスク、磁気ディスク１２９、光ディスク１３１、ＲＯＭ１２４、又は、ＲＡＭ１２５に記憶され、そのプログラムモジュールは、オペレーティングシステム１３５、１又は複数のアプリケーションプログラム１３６、その他のプログラムモジュール１３７及びプログラムデータ１３８を含む。ユーザは、キーボード１４０及びポインティングデバイス１４２等の入力デバイスを使ってパーソナルコンピュータ１２０にコマンド及び情報を入力することができる。その他の入力デバイス（図示せず）は、マイクロホーン、ジョイスティック、ゲームパッド、サテライトディスク等を含むことができる。これら及びその他の入力デバイスは、システムバスに結合されるシリアルポートインタフェース１４６を介して処理ユニット１２１に接続される場合が多いが、パラレルポート、ゲームポート又はユニバーサルシリアルバス（ＵＳＢ）等の他のインタフェースによって接続される場合もある。モニター１４７又は他の種類の表示装置は、ビデオアダプター１４８等のインタフェースを介してシステムバス１２３に接続される。モニター１４７に加えて、パーソナルコンピュータは通常、スピーカー及びプリンター等の他の周辺出力デバイス（図示せず）を含む。図１の例示的システムは、ホストアダプター１５５、スモールコンピュータシステムインタフェース（ＳＣＳＩ）バス１５６、及びＳＣＳＩバス１５６に接続される外部ストレージデバイス１６２を含む。
【００１８】
パーソナルコンピュータ１２０は、リモートコンピュータ１４９等の１又は複数のリモートコンピュータと論理的接続を用いて、ネットワーク環境で動作できる。リモートコンピュータ１４９は、別のパーソナルコンピュータ、サーバ、ルーター０、ネットワークＰＣ、ピアデバイス又は他の共通ネットワークノードであり、図１には一つのメモリストレージデバイス１５０が示されているだけであるが、パーソナルコンピュータ１２０と関連して記述されている構成要素の大半又は全てを通常含む。図１に示された論理的接続は、ローカルエリアネットワーク（ＬＡＮ）１５１及びワイドエリアネットワーク（ＷＡＮ）１５２を含む。そのようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット及びインターネットにおいて一般的である。
【００１９】
ＬＡＮネットワーキング環境で使用される場合、パーソナルコンピュータ１２０は、ネットワークインタフェース又はアダプター１５３を介してＬＡＮ１５１に接続される。ＷＡＮネットワーキング環境で使用される場合、パーソナルコンピュータ１２０は、通常、モデム１５４又はインターネット等の広域ネットワーク１５２上で通信を確立する他の手段を含む。モデム１５４は、内部又は外部に存在し、シリアルポートインタフェース１４６を介してシステムバス１２３に接続される。ネットワーク環境においては、パーソナルコンピュータ１２０と関連して示されるプログラムモジュール又はその一部は、リモートメモリストレージデバイスに記憶される。図示されたネットワーク接続は典型例であり、コンピュータ間の通信リンクを確立する他の手段を用いることもできる。
【００２０】
（本発明の例示的システム及び方法）
本発明に従ってデータを分析的にモデル化する例示的システムを図２に示す。図からわかるように、例えばオンライン分析的処理（ＯＬＡＰ）サービス等の分析的データサービス２２０を用いることによって、例えば、オンライントランザクションデータベース（ＯＬＴＰ）等のリレーショナルデータベースに保存されているデータをモデル化することができる。分析的データサービス２２０は、リポーティングクライアント２３０を介して、分析的にモデル化されたデータを提供することができる。既に記載したように、リレーショナルデータベース２００に保存されているデータを複数テーブルに基づいて編成することができ、各テーブルは、特殊なデータ型に対応するデータを含む。特殊なデータ型に対応するテーブルは、データ属性及び測度に対応する列に基づいて編成することができる。
【００２１】
列「顧客ＩＤ」３１０、列「国」３２０、列「月」３３０及び列「売上高」３４０を有する「売上げ」テーブル３００内に編成される「売上げ」データ型を備える１つのテーブルを図３に示す。「顧客ＩＤ」列３１０、「国」列３２０及び「月」列３３０は、データが有効である最も細かい精度の「売上げ」データ型の属性を提供する属性列である。特に、「顧客ＩＤ」３１０は、「売上げ」データ型の顧客属性に関する最も細かい精度であり、「国」３２０は、「売上げ」データ型の位置属性に関する最も細かい精度であり、「月」３１０は、望ましくは「売上げ」データ型の時間属性に関する最も細かい精度である。「売上高」列３４０は、「顧客ID」列３１０、「国」列３２０及び「月」列３３０内の顧客、国及び月に従った測度「売上高」のデータを含む測度列である。「売上高」３４０は、対応する国の元の通貨で構成された売上高である。
【００２２】
図４を参照すると、「為替」データ型は、列「国」４１０、列「月」４２０、及び列「為替レート」４３０を備える「為替」テーブル４００の中に編成される。「国」列４１０及び「月」列４２０は、データが有効な最も細かい精度の「為替」データ型の属性を提供する属性列である。特に、「国」４１０は、「為替」データ型の位置属性に関する最も細かい精度であり、「月」４２０は、「為替」データ型の時間属性の最も細かい精度である。「為替レート」列４３０は、「国」列４１０及び「月」列４２０内の国及び月にしたがった測度「為替レート」のデータを含む測度列である。「為替レート」３４０は、自国の通貨をＵＳ通貨に変換するレートである。
【００２３】
本発明による分析データサービス２２０によって、測度表現式は、例えば、「売上げ」テーブル３００からの「売上高」測度３４０、及び、「為替」テーブル４００からの「為替レート」測度４３０等の複数の測度に対して定義される。測度表現式は、算術演算によって定義される複数の測度間の関係を含む。例えば、測度表現式「ＵＳ売上げ」は、以下に示す通り、測度「売上高」３４０と測度「為替レート」４３０の積として定義することができる。
（ＵＳ売上げ）ＭＥ＝（売上高）Ｍ＊（交換レート）Ｍ
【００２４】
測度表現式内に含まれる測度は、共通属性を有する測度データ型を必ずしも必要としない。例えば、「売上げ」データ型の顧客属性は、「為替」データ型の属性ではない。
分析的データサービス２２０は、選択された属性範囲の測度表現式の計算を要求する照会を受信し処理することができる。本発明の一実施形態にしたがう照会を処理する例示的方法を、図５を参照して以下に説明する。測度表現式は、測度間の関係を含むことができるが、以下の方法は、２つの測度を含む測度表現式を参照して説明する。しかしながら、重要なことは、以下の方法は、２つの測度を含む測度表現式に制限されないことである。方法は、処理ステップを表現式中の追加の測度に広げることによって３以上の測度を含む測度表現式に適用することができる。
【００２５】
一般的に、表現式内の測度に対して選択された属性範囲内のデータは、データベース２００から検索され、キャッシュすることができる。重要なことは、測度表現式が測度間の関係として定義されているため、表現式内の各測度の選択された属性範囲内のデータを備える全ての列が、検索され、対応データテーブルに対する１回のアクセスを介してキャッシュできることである。例えば、「ＵＳ売上げ」を計算するために、「売上高」測度３４０に関して選択された属性範囲内のデータを備える全ての列は、検索され、「売上げ」テーブル３００に対する１回のアクセスを介してキャッシュすることができ、一方、「為替レート」測度４３０に関して選択された属性範囲内のデータを備える全ての列は、検索され、「為替」テーブル４００に対する一回のアクセスを介してキャッシュすることができる。データの複数列を検索する１回のアクセスは、行単位でデータを検索する複数アクセスが好ましい。データテーブルへのアクセス数を減らすことは、リクエストの処理に要する時間を非常に減らすことができる。
【００２６】
図５を参照すると、ステップ５１０において、測度表現式は分析データサービス２２０で定義される。測度表現式は、第１の測度と第２の測度の上で実行される算術演算として定義することができる。例えば、上述の「ＵＳ売上げ」の測度は、第１の測度の「売上高」３４０及び第２の測度の「為替レート」３４０の積として定義することができる。
【００２７】
ステップ５１２において、照会は、分析データサービス２２０で受信され、選択された属性範囲に対する測度表現式の計算を要求する。例えば、照会は、第１クウォーター（１月、２月及び３月）における顧客「１」のメキシコ位置に関する「ＵＳ売上げ」の計算をリクエストすることができる。
【００２８】
ステップ５１４において、第１のキャッシュは、第１のデータ型に対応するデータベース２００内の第１のデータテーブルから検索される。第１のキャッシュは、選択された属性範囲上の第１の測度に関するデータを含む。測度表現式「ＵＳ売上げ」に対応する例示的第１のキャッシュ６００を図６に示す。第１のキャッシュ６００は、「売上げ」テーブル３００から検索され、「顧客ＩＤ」列６１０、「国」列６２０、「月」列６３０及び「売上高」列６４０を備える。「顧客ＩＤ」列６１０は、顧客「１」に関するエントリーだけを含み、それは、選択された顧客属性の範囲を備える。「国」列６２０は、メキシコに関するエントリーだけを含み、それは、選択された位置属性の範囲を備える。「月」列６３０は、１月、２月及び３月に関するエントリーだけを含み、それは、選択された時間範囲を備える。「売上高」列６４０は、「顧客ＩＤ」列６１０、「国」列６２０及び「月」列６３０内の顧客、国及び月にしたがった測度「売上高」３４０に関するデータを含む測度列である。重要なことは、第１のキャッシュの全ての列を、「売上げ」テーブル３００に対して一回アクセスすることによって編集することができる。
【００２９】
ステップ５１６において、第１のインデックスは、第１のキャッシュから生成される。第１のインデックスは、第１のデータ型と第２のデータ型に共通する選択された属性範囲上の第１の測度に関するデータを含む。その結果、第１のインデックスにおいては、第１の測度に関するデータは、第１のデータ型特有の属性によって集約される。測度表現式「ＵＳ売上げ」に対応する例示的第１のインデックス７００を図７に示す。第１のインデックス７００は、「国」列７１０、「月」列７２０及び「売上高」列７３０を含む。「国」列７１０及び「月」列７２０は、「売上げ」データ型及び「為替」データ型の両方に共通する属性に対応する属性列である。「顧客ＩＤ」列６１０は、第１のキャッシュ６００内に含まれ、しかし、それは、「売上げ」データ型特有であるため、第１のインデックス７００内に含まれないことが理解できる。「売上高」列７３０は、「国」列７１０及び「月」列７２０内の国及び月にしたがって測度「売上高」３４０に関するデータを含む測度列である。
【００３０】
「売上高」列７３０内のデータは、顧客「１」だけに関する売上げを含むように集約化され、それは、選択された顧客範囲を備える。特に、「売上げ」テーブル３００内に示されているように、売上げの３．００ペソは、１月にメキシコでなされており、１．００ペソは、顧客「１」によりもたらされ、２．００ペソは、顧客「２」によりもたらされる。その結果、第１のインデックス７００は、売上げの１．００ペソだけが１月にメキシコでもたらされ、顧客「１」によりなされた１．００ペソの売上げを反映し、顧客「２」は選択された顧客範囲内でないので、顧客「２」によりなされた２．００ペソの売上げを反映しない。
【００３１】
ステップ５１８において、第２のキャッシュは、第２のデータ型に対応するデータベース２００内の第２のデータテーブルから検索される。第２のキャッシュは、選択された属性範囲上の第２の測度に関するデータを含む。測度表現式「ＵＳ売上げ」に対応する例示的第２のキャッシュ８００を図８に示す。第２のキャッシュ８００は、「為替」テーブル４００から検索され、「国」列８１０、「月」列８２０及び「為替レート」列８３０を含む。「国」列８１０は、メキシコだけに関するエントリーを含み、それは、選択された位置属性の範囲を備える。「月」列８２０は、１月、２月及び３月だけのエントリーを含み、それは、選択された時間属性の範囲を備える。第２のキャッシュ８００は、「顧客ＩＤ」列を含まないことが理解できる。なぜならば、顧客データは、「為替」データ型に適用できないからである。「為替レート」列８３０は、「国」列８１０内及び「月」列８２０内の国及び月にしたがって、測度「為替レート」４３０に関するデータを含む測度列である。重要なことは、第２のキャッシュ８００内の全ての列を、「為替」テーブル４００に対する一回アクセスするだけで編集できる。
【００３２】
ステップ５２０において、第２のインデックスは、第２のキャッシュから生成される。第２のインデックスは、第１のデータ型と第２のデータ型に共通する選択された属性範囲上の第２の測度に関するデータを含む。その結果、第２のインデックスにおいては、第２の測度に関するデータは、第２の測度特有の属性によって集約される。「ＵＳ売上げ」に関しては、第２のキャッシュ８００は、「売上げ」データ型と「為替」データ型の両方に共通する位置属性及び時間属性だけを備えるため、第２のインデックスは、第２のキャッシュ８００と同一である。
【００３３】
ステップ５２２において、測度表現式で定義されている算術演算は、第１のインデックスからの第１の測度に関するデータと第２のインデックスからの第２の測度に関するデータに対して実行される。演算は、行単位で実行され、各測度表現式エントリーは、対応する列からの第１の測度エントリーと第２の測度エントリーに基づいて計算される。
【００３４】
測度表現式「ＵＳ売上げ」に対応する例示的測度表現式計算９００を図９に示す。計算９００は、「国」列９１０、「月」列９２０、「売上高」列９３０、「交換レート」９４０及び「ＵＳ売上げ」列９５０を含む。「国」列９１０と「月」列９２０は、「売上げ」データ型及び「為替」データ型の両方に共通する属性に対応する属性列である。「売上高」列７３０及び「交換レート」列９４０は、第１のインデックス７００と第２のインデックス８００からの測度「売上高」３４０及び「為替レート」４３０に関する集約データを含む測度列である。
【００３５】
「ＵＳ売上げ」列９５０は、「国」列９１０及び「月」列９２０内の国及び位置にしたがって測度表現式「ＵＳ売上げ」に関するデータを含む測度表現式である。「ＵＳ売上げ」９５０内のエントリーは、対応する月に関する「売上高」列９３０及び「為替レート」列９４０内のエントリーの積として月ベースで月に対して計算される。
【００３６】
ステップ５２４において、選択された属性範囲の全体の測度表現式は、ステップ５２２で計算された各列に関する結果測度表現式エントリーを集約することによって計算される。計算９００内に示されたように、第１クウォーターの全測度表現式「ＵＳ売上げ」である「＄１４．５０」は、第１クオータの各月に関する個々の測度表現式エンティティの合計によって計算される。
【００３７】
本発明は、各種図面の好適な実施形態と組み合わせて記述されているが、その他の類似実施形態を使用することができ、また、本発明から逸脱せずに本発明と同じ機能を実行するために追加物を記述された実施形態に加えることができる。
【図面の簡単な説明】
【００３８】
【図１】本発明の態様及び／又はその一部を組み込むことができる汎用コンピュータシステムを表すブロック図である。
【図２】本発明による分析的にデータをモデル化する例示的システムのブロック図である。
【図３】本発明による「売上げ」データに対応するリレーショナルデータベーステーブルのサンプルを示す図である。
【図４】本発明による「為替」データに対応するリレーショナルデータベースのサンプルを示す図である。
【図５】本発明による測度表現式を計算する例示的方法のフローチャートを示す図である。
【図６】本発明による例示的第１のキャッシュを示す図である。
【図７】本発明による例示的第１のキャッシュを示す図である。
【図８】本発明による例示的第２のキャッシュを示す図である。
【図９】本発明による測度表現式の例示的計算を示す図である。
【符号の説明】
【００３９】
１２０  コンピュータ
１２２  システムメモリ
１３６  アプリケーションプログラム
１３７  他のプログラム
１３８  プログラムデータ
１２７  ハードドライブ
１２１  処理ユニット
１３２  ハードディスクドライブI/F
１４８  ビデオアダプター
１５５  ホストアダプター
１３３  磁気ディスクドライブI/F
１３４  光ディスクドライブI/F
１２８  フロッピー（登録商標）ドライブ
１３０  光ドライブ
１２３  システムバス
１４６  シリアルポートI/F
１５３  ネットワークI/F
１５６  ＳＣＳIバス
１４７  モニター
１６２  ストレージデバイス
１２９  ストレージ
１３１  ストレージ
１４２  マウス
１４０  キーパッド
１５４  モデム
１５０  メモリ
１４９  リモートコンピュータ
【図１】
2005018751.tif 000003
【図２】
2005018751.tif 000004
【図３】
2005018751.tif 000005
【図４】
2005018751.tif 000006
【図５】
2005018751.tif 000007
【図６】
2005018751.tif 000008
【図７】
2005018751.tif 000009
【図８】
2005018751.tif 000010
【図９】
2005018751.tif 000011
【外国語明細書】
2005018751000001.pdf