(57)【要約】【課題】  ＯＬＡＰシステム中のデータベースにアクセスする改良型メカニズムの提供。【解決手段】  ＯＬＡＰシステム内のリレーショナルデータベース３１２中のデータにアクセスするデータモデルが多階層ディメンジョン３２６，３２８を使用する。ディメンジョン３２６，３２８は１組の属性を含む。各属性は、リレーショナルデータベース３１２中の列３１４〜３２４にバインドされる。属性間の関係を示す論理構造が定義される。階層が定義される。各階層は一続きの属性を含む。階層は、データベースユーザがデータベースにアクセスするのに使用することができる共通ドリルダウンパスを提供する。階層は、単一の属性または属性の組合せを含むことができる。属性間の関係および階層内の一続きの属性は、データベースに関連するどんな制限とも無関係に定義される。【選択図】  図３
2005018778.tif 000002
【特許請求の範囲】
【請求項１】
データベースに関連するデータ処理を改善する方法であって、
複数の属性を含むディメンジョンを定義するステップと、
各属性を前記データベースのそれぞれの列に割り当てるステップと、
前記属性間の関係を定義するステップと
を含むことを特徴とする方法。
【請求項２】
前記ディメンジョンを介して前記データベースにアクセスするステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
一続きの前記属性を含む少なくとも１つの階層を定義するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
各階層は、前記データベースにアクセスするためのドリルダウンパスを定義することを特徴とする請求項３に記載の方法。
【請求項５】
階層は１つの属性を含むことを特徴とする請求項３に記載の方法。
【請求項６】
前記少なくとも１つの階層を定義する前記ステップは、前記データベースとは無関係であることを特徴とする請求項３に記載の方法。
【請求項７】
前記属性間の関係を定義する前記ステップは、前記データベースとは無関係であることを特徴とする請求項１に記載の方法。
【請求項８】
前記データベースはリレーショナルデータベースであることを特徴とする請求項１に記載の方法。
【請求項９】
前記ディメンジョンが、オンライン分析処理（ＯＬＡＰ）システムと共に使用されることを特徴とする請求項１に記載の方法。
【請求項１０】
請求項１に記載の方法を実行する手段を含むことを特徴とするアプリケーションプログラミングインターフェース（ＡＰＩ）。
【請求項１１】
複数の属性を含むディメンジョンを定義するステップと、各属性を前記データベースのそれぞれの列に割り当てるステップと、前記属性間の関係を定義するステップとを含む動作を実行することにより、データベースに関連するデータ処理を改善するコンピュータ実行可能命令を有することを特徴とするコンピュータ可読媒体。
【請求項１２】
前記ディメンジョンを介して前記データベースにアクセスするコンピュータ実行可能命令をさらに有することを特徴とする請求項１１に記載のコンピュータ可読媒体。
【請求項１３】
一続きの属性を含む少なくとも１つの階層を定義するコンピュータ実行可能命令をさらに有することを特徴とする請求項１１に記載のコンピュータ可読媒体。
【請求項１４】
各階層は、前記データベースにアクセスするためのドリルダウンパスを定義することを特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項１５】
階層は１つの属性を含むことを特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項１６】
前記少なくとも１つの階層を定義するステップは、前記データベースとは無関係であることを特徴とする請求項１３に記載のコンピュータ可読媒体。
【請求項１７】
前記属性間の関係を定義するステップは、前記データベースとは無関係であることを特徴とする請求項１１に記載のコンピュータ可読媒体。
【請求項１８】
前記データベースはリレーショナルデータベースであることを特徴とする請求項１１に記載のコンピュータ可読媒体。
【請求項１９】
前記ディメンジョンが、オンライン分析処理（ＯＬＡＰ）システムと共に使用されることを特徴とする請求項１１に記載のコンピュータ可読媒体。
【請求項２０】
データベースにアクセスするシステムであって、
前記データベースを含む記憶装置に結合されたプロセッサと、
複数の属性を含むディメンジョンを定義する第１定義構成要素と、
各属性を前記データベースのそれぞれの列に割り当てる割当て構成要素と、
前記属性間の関係を定義する第２定義構成要素と、
前記ディメンジョンを介して前記データベースにアクセスすることを可能にするアクセス構成要素と
を備えることを特徴とするシステム。
【請求項２１】
一続きの前記属性をそれぞれ含む少なくとも１つの階層を各階層内に定義する第３定義構成要素をさらに備えることを特徴とする請求項２０に記載のシステム。
【請求項２２】
各階層は、前記アクセス構成要素に対するドリルダウンパスを定義することを特徴とする請求項２１に記載のシステム。
【請求項２３】
階層は１つの属性を含むことを特徴とする請求項２１に記載のシステム。
【請求項２４】
前記第３定義構成要素は、前記データベースとは無関係に前記少なくとも１つの階層を定義することを特徴とする請求項２１に記載のシステム。
【請求項２５】
前記第２定義構成要素は、前記データベースとは無関係に前記属性間の関係を定義することを特徴とする請求項２０に記載のシステム。
【請求項２６】
前記システムがオンライン分析処理（ＯＬＡＰ）システムと共に使用されることを特徴とする請求項２０に記載のシステム。
【請求項２７】
データベースにアクセスするシステムであって、
複数の属性を含むディメンジョンを定義する手段と、
各属性を前記データベースのそれぞれの列に割り当てる手段と、
前記属性間の関係を定義する手段と、
前記ディメンジョンを介して前記データベースにアクセスする手段と、
一続きの前記属性を含む少なくとも１つの階層を定義する手段と
を備えることを特徴とするシステム。
【請求項２８】
前記属性間の前記関係が、前記データベースとは無関係に定義されることを特徴とする請求項２７に記載のシステム。
【請求項２９】
前記少なくとも１つの階層が、前記データベースとは無関係に定義されることを特徴とする請求項２７に記載のシステム。
【請求項３０】
オンライン分析処理（ＯＬＡＰ）システムであることを特徴とする請求項２７に記載のシステム。
【請求項３１】
前記ディメンジョンを定義する手段、前記割り当てる手段、前記関係を定義する手段、前記アクセスする手段、および前記少なくとも１つの階層を定義する手段は、少なくとも１つのアプリケーションプログラミングインターフェース（ＡＰＩ）を有することを特徴とする請求項２７に記載のシステム。
【請求項３２】
少なくとも１つのコンピュータ可読媒体によって実施されるデータ構造であって、
データベース中の列にそれぞれバインドされる複数の属性を含むディメンジョンと、
前記複数の属性間の関係を示す論理構造とを含むことを特徴とするデータ構造。
【請求項３３】
一続きの属性を含む少なくとも１つの階層をさらに含むことを特徴とする請求項３２に記載のデータ構造。
【請求項３４】
各階層は、前記データベースにアクセスするドリルダウンパスを提供することを特徴とする請求項３３に記載のデータ構造。
【請求項３５】
階層は単一の属性を含むことを特徴とする請求項３３に記載のデータ構造。
【請求項３６】
各シーケンスが、前記データベースに関連する制限とは無関係に定義されることを特徴とする請求項３３に記載のデータ構造。
【請求項３７】
前記データベースに関連する制限とは無関係に定義されることを特徴とする請求項３２に記載のデータ構造。
【請求項３８】
前記データベースはリレーショナルデータベースであることを特徴とする請求項３２に記載のデータ構造。
【請求項３９】
前記データベースはオンライン分析処理（ＯＬＡＰ）システムと共に使用することができることを特徴とする請求項３２に記載のデータ構造。
【請求項４０】
ディメンジョンを含むデータ検索要求を受け取るステップと、データベースから前記ディメンジョンを介して前記データを取り出すステップとを含む、データベースからデータを取り出す方法であって、
前記データ検索要求を受け取るステップにおいて、前記ディメンジョンは複数の属性を含み、各属性が前記データベースのそれぞれの列に割り当てられ、前記属性間の関係が定義されていることを特徴とする方法。
【請求項４１】
前記データ検索要求に応答して、前記取り出したデータを与えるステップをさらに含むことを特徴とする請求項４０に記載の方法。
【請求項４２】
前記データ検索要求は、一続きの前記属性を含む階層を少なくとも含むことを特徴とする請求項４０に記載の方法。
【請求項４３】
各階層は、前記データベースにアクセスするためのドリルダウンパスを提供することを特徴とする請求項４２に記載の方法。
【請求項４４】
階層は単一の属性を含むことを特徴とする請求項４２に記載の方法。
【請求項４５】
各シーケンスが、前記データベースに関連する制限とは無関係に定義されることを特徴とする請求項４２に記載の方法。
【請求項４６】
前記属性間の前記関係が、前記データベースに関連する制限とは無関係に定義されることを特徴とする請求項４０に記載の方法。
【請求項４７】
前記データベースはリレーショナルデータベースであることを特徴とする請求項４０に記載の方法。
【請求項４８】
前記データベースはオンライン分析処理（ＯＬＡＰ）システムと共に使用することができることを特徴とする請求項４０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にはコンピュータで実装されるデータベースに関し、より詳細には、オンライン分析処理データベースにアクセスするためのデータモデルに関する。
【背景技術】
【０００２】
典型的なリレーショナルデータベース管理システム（ＲＤＢＭＳ）製品は、ユーザにデータの特定のビューを提供することに関して制限を有する。したがって、ＲＤＢＭＳから取り出したデータを集計し、要約し、統合し、合計し、閲覧し、分析することができるように、ＲＤＢＭＳ製品用のフロントエンドが開発されている。このタイプの機能はオンライン分析処理（ＯＬＡＰ）と呼ばれる。
【０００３】
ＯＬＡＰは、大部分のデータウェアハウスおよびビジネス分析システムの主要部分である。ＯＬＡＰサービスは、マルチディメンジョン情報の高速な分析を実現する。ＯＬＡＰサービスは、データのマルチディメンジョンアクセスおよびナビゲーションを直感的かつ自然な形で実現し、特定の注目するデータにドリルダウンすることができるデータのグローバルビューを提供する。速度および応答時間は、ユーザがデータをオンラインで効率的にブラウズおよび分析することを可能にするＯＬＡＰサービスの重要な属性である。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＯＬＡＰシステム中のデータは、その複雑さ、すなわちデータを索引付けするのに使用するディメンジョン数によって特徴付けることができる。したがって、複雑なデータセットは、多数のディメンジョンを有するデータセットである。ユーザが単純なデータセットよりも多くの照会を複雑なデータセットにサブミットすることができるという点で、複雑なデータセットは柔軟性という利点を有する。したがって、複雑なデータセットを使用することがしばしば望ましい。しかし、従来のＯＬＡＰシステムを使用して多数のディメンジョンを扱うことは難しい。したがって、ＯＬＡＰシステム中のデータベースにアクセスする改良型のメカニズムが望ましい。
【課題を解決するための手段】
【０００５】
本発明の一実施形態では、ＯＬＡＰシステム中のリレーショナルデータベースにアクセスするのに多階層ディメンジョンが使用される。ディメンジョンは１組の属性を含む。各属性は、リレーショナルデータベース中の列にバインドされる。属性間の関係が定義される。これらの関係は、データベースに関連するどんな制約とも無関係に定義される。各属性とそれらの関係により、ディメンジョンおよびその制約が定義される。階層が、データベースにアクセスするためのドリルダウンパスとして使用されるように定義される。各階層は一続きの属性を含む。階層は単一の属性または属性の組合せを含むことができる。階層は、データベースに関連するどんな制約とも無関係に定義される。
【０００６】
多階層ディメンジョンを介してデータベースにアクセスする方法は、複数の属性を有するディメンジョンを定義するステップを含む。各属性は、データベースの列にそれぞれ割り当てられ、またはバインドされる。属性間の関係が定義され、多階層ディメンジョンを介してデータベースがアクセスされる。
【０００７】
本発明の特徴および利点は、添付の図面と共に以下の説明を考慮するときに最も良く理解されよう。
【発明を実施するための最良の形態】
【０００８】
本発明の一実施形態による、リレーショナルデータベース中のデータにアクセスする技法により、データベース中の項目間に任意の関係を定義することが可能となる。こうした任意の関係を使用して、データベースに、直ちにかつ効率的にドリルダウンすることができる。一実施形態では、この技法はＯＬＡＰシステム内で実施される。この技法は、複数の属性を有する多階層ディメンジョンを含み、各属性がリレーショナルデータベース中の列に割り当てられる（例えばバインドされる）。属性間の関係が定義される。これらの関係および属性の論理構造自体が、各ディメンジョンの詳細および制約を識別する。階層は、リレーショナルデータベースへのドリルダウンパスを容易にするように定義される。階層は一続きの属性を含む。階層は、属性の任意のシーケンス、および／または属性内のレベルを含むことができる。シーケンスの構成に対しては何の制限も課されない。したがって、階層はすべての属性、１つの属性、または属性の集合を含むことができる。
【０００９】
適切なコンピューティングシステム環境の概要
図１に、ディメンジョン属性およびディメンジョン当たり複数の階層を使用するＯＬＡＰのためのシステムおよび方法を実施することのできる適切なコンピューティングシステム環境１００の一例を示す。コンピューティングシステム環境１００は、適切なコンピューティング環境の一例に過ぎず、リレーショナルデータベース中のデータにアクセスする方法およびシステムの使用法または機能の範囲に関して何らかの制限を示唆するものではない。例示的動作環境１００に図示する構成要素のうちのいずれか１つ、あるいはそれらの組合せに関係する何らかの依存関係または要件をコンピューティング環境１００が有すると解釈すべきでもない。
【００１０】
ディメンジョン属性およびディメンジョン当たり複数の階層を使用するＯＬＡＰシステムおよび方法は、他の多数の汎用／特殊目的コンピューティングシステム環境／構成を用いて動作可能である。リレーショナルデータベース中のデータにアクセスする方法およびシステムと共に使用するのに適した周知のコンピューティングシステム、環境、および／または構成の例には、限定はしないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド／ラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能消費者向け電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、並びに上記のシステムまたは装置のいずれかを含む分散コンピューティング環境などが含まれる。
【００１１】
ディメンジョン属性およびディメンジョン当たり複数の階層を使用するＯＬＡＰシステムおよび方法は、コンピュータが実行する、プログラムモジュールなどのコンピュータ実行可能命令の一般的状況で説明することができる。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。ディメンジョン属性およびディメンジョン当たり複数の階層を使用するＯＬＡＰシステムおよび方法はまた、通信ネットワークまたはその他のデータ伝送媒体を介してリンクされるリモート処理装置によってタスクが実行される分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールおよびその他のデータは、メモリ記憶装置を含む、ローカルコンピュータ記憶媒体とリモートコンピュータ記憶媒体のどちらにも位置することができる。
【００１２】
図１を参照すると、ディメンジョン属性およびディメンジョン当たり複数の階層を使用する本発明のＯＬＡＰシステムおよび方法を実装する例示的システムは、コンピュータ１１０の形態の汎用コンピューティング装置を含む。コンピュータ１１０の構成要素には、限定はしないが、処理装置１２０と、システムメモリ１３０と、システムメモリ１３０を含む様々なシステム構成要素を処理装置１２０に結合するシステムバス１２１とを含めることができる。システムバス１２１は、メモリバスまたはメモリコントローラと、周辺バスと、様々なバスアーキテクチャのうちのいずれかを用いるローカルバスとを含むいくつかのタイプのバス構造のうちのいずれでもよい。例えば、限定はしないが、このようなアーキテクチャには、ＩＳＡ（Industry Standard Architecture）バス、ＭＣＡ（Micro Channel Architecture）バス、ＥＩＳＡ（Enhanced ISA）バス、ＶＥＳＡ（Video Electronics Standards Association）ローカルバス、およびＰＣＩ（Peripheral Component Interconnect）バス（メザニンバスとも呼ばれる）が含まれる。
【００１３】
コンピュータ１１０は、一般に様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０がアクセス可能である入手可能などんな媒体でもよく、それには揮発性媒体と不揮発性媒体、取外し可能媒体と取外し不能媒体のどちらも含まれる。例えば、限定はしないが、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータなどの情報を格納するための何らかの方法または技術で実装される、揮発性媒体と不揮発性媒体、取外し可能媒体と取外し不能媒体のどちらも含まれる。コンピュータ記憶媒体には、限定はしないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、またはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタルバーサタイルディスク（ＤＶＤ）、またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置、またはその他の磁気記憶装置、あるいは、所望の情報を格納するのに使用することができ、コンピュータ１１０でアクセスすることができる他のどんな媒体も含まれる。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波やその他の転送メカニズムなどの被変調データ信号で実施し、その通信媒体にはどんな情報送達媒体も含まれる。「被変調データ信号」という用語は、その特性集合のうちの１つまたは複数を有する信号、または信号中に情報を符号化するように変化する信号を意味する。例えば、限定はしないが、通信媒体には、ワイヤードネットワークまたはダイレクトワイヤード接続などのワイヤード媒体、並びに音響媒体、ＲＦ媒体、赤外線媒体、その他のワイヤレス媒体などのワイヤレス媒体が含まれる。各媒体のいずれかの組合せも、コンピュータ可読媒体の範囲内に含まれることを理解されたい。
【００１４】
システムメモリ１３０は、ＲＯＭ１３１やＲＡＭ１３２などの揮発性メモリおよび／または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動中などにコンピュータ１１０内の要素間で情報を転送する助けになる基本ルーチンを含む基本入出力システム（ＢＩＯＳ）１３３が、一般にＲＯＭ１３１内に格納される。ＲＡＭ１３２は一般に、処理装置１２０が即座にアクセス可能であり、かつ／または処理装置１２０が現在操作中のデータおよび／またはプログラムモジュールを含む。例えば、限定はしないが、図１にオペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００１５】
コンピュータ１１０はまた、その他の取外し可能／取外し不能な、揮発性／不揮発性コンピュータ記憶媒体も含むことができる。単なる一例であるが、図１に、取外し不能不揮発性磁気媒体を読み書きするハードディスクドライブ１４１と、取外し可能不揮発性磁気ディスク１５２を読み書きする磁気ディスクドライブ１５１と、ＣＤ−ＲＯＭや、ＣＤＲＷまたはその他の光媒体などの取外し可能不揮発性光ディスク１５６を読み書きする光ディスクドライブ１５５とを示す。例示的動作環境で使用することのできるその他の取外し可能／取外し不能な揮発性／不揮発性コンピュータ記憶媒体には、限定はしないが、磁気テープカセット、フラッシュメモリカード、デジタルバーサタイルディスク、デジタルビデオテープ、固体ＲＡＭ、固体ＲＯＭなどが含まれる。ハードディスクドライブ１４１は一般に、インターフェース１４０などの取外し不能メモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は一般に、インターフェース１５０などの取外し可能メモリインターフェースによってシステムバス１２１に接続される。
【００１６】
上記で議論し、図１に図示したドライブとその関連するコンピュータ記憶媒体は、コンピュータ１１０に対してコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの記憶を実現する。例えば図１では、ハードディスクドライブ１４１がオペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を格納するものとして図示されている。これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じであっても、異なっていてもよいことに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７には、少なくともこれらが相異なるコピーであることを示すために異なる番号を付けてある。ユーザは、キーボード１６２や、一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス１６１などの入力装置を介して、コマンドおよび情報をコンピュータ１１０に入力することができる。その他の入力装置（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどを含めることができる。上記およびその他の入力装置はしばしば、システムバス１２１に結合されるユーザ入力インターフェース１６０を介して処理装置１２０に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）などのその他のインターフェースおよびバス構造によっても接続できる。モニタ１９１またはその他のタイプのディスプレイ装置もまた、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続される。モニタに加えて、コンピュータはまた、スピーカ１９７やプリンタ１９６などのその他の周辺出力装置も含むことができ、それらは、出力周辺インターフェース１９５を介して接続することができる。
【００１７】
コンピュータ１１０は、リモートコンピュータ１８０などの１つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置、またはその他の共通ネットワークノードでよく、一般にコンピュータ１１０に関して上記で述べた要素のうちの多数またはすべてを含むが、図１にはメモリ記憶装置１８１だけを示してある。図示する論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１および広域ネットワーク（ＷＡＮ）１７３を含むが、その他のネットワークも含むことができる。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、およびインターネットで一般的なものである。
【００１８】
ＬＡＮネットワーキング環境で使用する際、コンピュータ１１０は、ネットワークインターフェース／アダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用する際、コンピュータ１１０は一般に、インターネットなどのＷＡＮ１７３を介して通信を確立するためのモデム１７２またはその他の手段を含む。モデム１７２は内蔵でも外付けでもよく、ユーザ入力インターフェース１６０、またはその他の適切な仕組みを介してシステムバス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０に関して示したプログラムモジュールまたはその一部を、リモートメモリ記憶装置内に格納することができる。例えば、限定はしないが、図１に、リモートアプリケーションプログラム１８５がメモリ装置１８１上に常駐するものとして示す。図示するネットワーク接続は例示的なものであって、コンピュータ間の通信リンクを確立するその他の手段も使用できることを理解されよう。
【００１９】
パーソナルコンピューティングとインターネットとの収束に照らして、様々な分散コンピューティングフレームワークが開発され、また開発されつつある。アプリケーションおよびコンピューティング装置用のシームレスに相互運用可能／ウェブ使用可能なインターフェースが、個人ユーザにもビジネスユーザにも等しく提供され、コンピューティング活動が一層ウェブブラウザ指向またはネットワーク指向となる。
【００２０】
例えば、ＭＩＣＲＯＳＯＦＴ（登録商標）の．ＮＥＴプラットフォームは、サーバ、ウェブベースのデータストレージなどのビルディングブロックサービス、およびダウンロード可能なデバイスソフトウェアを含む。一般的に言えば、．ＮＥＴプラットフォームは次のような機能を提供する。（１）コンピューティング装置の範囲全体を協働させ、それらすべての装置でユーザ情報を自動的に更新し、同期できること。（２）ＨＴＭＬよりもＸＭＬを多く使用することで可能となる、より高いウェブサイト間の対話機能。（３）例えば電子メールや、Ｏｆｆｉｃｅ．Ｎｅｔなどのソフトウェアなどの様々なアプリケーションを管理するための、中央の開始点からユーザへの製品およびサービスのアクセスおよび送達のカスタマイズを特徴とするオンラインサービス。（４）データストレージの集中化。これにより、効率および情報へのアクセスの容易さ、並びにユーザと装置間の情報の同期が向上する。（５）Ｅメール、ファックス、電話など様々な通信媒体を統合できること。（６）開発者にとっては、再使用可能なモジュールを作成できること。これにより生産性が向上し、プログラミングエラーの数を低減する。（７）その他の多くのクロスプラットフォーム統合機能。
【００２１】
コンピューティング装置上に常駐するソフトウェアに関連して本明細書の例示的実施形態を説明するが、本発明によるディメンジョン属性およびディメンジョン当たり複数の階層を使用するＯＬＡＰシステムおよび方法の１つまたは複数の部分は、オペレーティングシステム、アプリケーションプログラムインターフェース（ＡＰＩ）、またはコプロセッサと要求側オブジェクトとの間の「仲介」オブジェクトを介して実装することもでき、その結果．ＮＥＴの言語およびサービスのすべてによってサービスを実施することができ、．ＮＥＴの言語およびサービスのすべての中でサポートすることができ、または．ＮＥＴの言語およびサービスのすべてを介してアクセスすることができる。他の分散コンピューティングフレームワークでも同様である。
【００２２】
例示的実施形態の説明
図２は、データベース２１２の内容に関連付けられる例示的ディメンジョン２２６および２２８を示す図である。データベース２１２は、６つの列を含むリレーショナルデータベースである。列２１４は販売区域に関するデータ項目を含み、列２１６は国に関するデータ項目を含み、列２１８は州に関するデータ項目を含み、列２２０は都市に関するデータ項目を含み、列２２２は人口に関するデータ項目を含み、列２２４は顧客名に関するデータ項目を含む。ディメンジョンは、データベースの内容の特定の見方を表す。所与のデータベースに対して複数のディメンジョンを定義することができる。通常、階層がディメンジョンに関連付けられる。例えば、時間ディメンジョンは、日、週、月、および年から構成することができ、または地理ディメンジョンは、都市、州／省、および国から構成することができる。ディメンジョンメンバは、データベース内の特定のデータ項目または特定の範囲のデータ項目を識別するための索引として振る舞う。通常、ビジネスなどのデータベースユーザは、ビジネスに関係する情報を取り込むようにディメンジョンを設計する。そのような２つの論理ディメンジョンをディメンジョン２２６および２２８として示す。ディメンジョン２２６は地理的位置ごとに顧客を編成し、ディメンジョン２２８は販売区域ごとに顧客を編成する。ディメンジョン２２６は、メンバ「ｃｏｕｎｔｒｙ」、「ｓｔａｔｅ」、「ｃｉｔｙ」、および「ｃｕｓｔｏｍｅｒ  ｎａｍｅ」を含む。ディメンジョン２２６は、メンバ「ｃｉｔｙ」のプロパティであるメンバプロパティ「ｐｏｐｕｌａｔｉｏｎ」も含む。ディメンジョン２２８は、メンバ「ｓａｌｅｓ  ｒｅｇｉｏｎ」、「ｃｉｔｙ」、および「ｃｕｓｔｏｍｅｒ  ｎａｍｅ」を含む。ディメンジョン２２８は、メンバ「ｃｉｔｙ」のプロパティであるメンバプロパティ「ｐｏｐｕｌａｔｉｏｎ」も含む。ディメンジョン２２６中の線形構造は、都市の中に顧客を、州の中に都市を、国の中に州を編成する。ディメンジョン２２８中の線形構造は、都市の中に顧客を、販売区域中に都市を編成する。販売区域は、複数の国の都市を含むことができ、国は、複数の販売区域に分割することができる。どちらのディメンジョンでも、都市は人口を有する。直交軸２３０および２３２は、ディメンジョン２２６およびディメンジョン２２８をそれぞれキューブに含めることができることを示す。データベースに関連して、キューブは当技術分野で周知である。キューブは、ＯＬＡＰデータベースで一般に使用される基本的エンティティである。
【００２３】
ディメンジョン２２６、２２８をデータベース２１２と関連付ける一方式は、各ディメンジョン２２６、２２８の各属性をデータベース２１２の列にバインドすることである。属性の各値はメンバである。図２の点線で示すように、ディメンジョン２２６のメンバ「ｃｏｕｎｔｒｙ」をデータベース２１２の列「ｃｏｕｎｔｒｙ」２１６にバインドすることができ、ディメンジョン２２６のメンバ「ｓｔａｔｅ」をデータベース２１２の列「ｓｔａｔｅ」２１８にバインドすることができ、ディメンジョン２２６のメンバ「ｃｉｔｙ」をデータベース２１２の列「ｃｉｔｙ」２２０にバインドすることができ、ディメンジョン２２６のメンバ「ｃｕｓｔｏｍｅｒ  ｎａｍｅ」をデータベース２１２の列「ｃｕｓｔｏｍｅｒ  ｎａｍｅ」２２４にバインドすることができる。同じことをディメンジョン２２８に関しても行うことができる。すなわち、ディメンジョン２２６のメンバ「ｓａｌｅｓ  ｒｅｇｉｏｎ」をデータベース２１２の列「ｓａｌｅｓ  ｒｅｇｉｏｎ」２１４にバインドすることができ、ディメンジョン２２６のメンバ「ｃｉｔｙ」をデータベース２１２の列「ｃｉｔｙ」２２０にバインドすることができ、ディメンジョン２２６のメンバ「ｃｕｓｔｏｍｅｒ  ｎａｍｅ」をデータベース２１２の列「ｃｕｓｔｏｍｅｒ  ｎａｍｅ」２２４にバインドすることができる。
【００２４】
ディメンジョン２２６および２２８の構造は、データベースユーザが特定のデータ項目を求めてデータベースを探索（ドリルダウン）することができる線形階層を提供する。例えば、データベースユーザが特定の顧客の名前を探索中である場合、ディメンジョン２２８が使用され、販売区域、都市、および顧客名にドリルダウンされる。データベースユーザが同じ顧客の国も知りたい場合、ディメンジョン２２６が使用され、国にドリルダウンされる。顧客の２つの異なる階層に対応する２つの別々のディメンジョンが定義されることに留意されたい。
【００２５】
ディメンジョンごとに線形階層を使用するこの技法は、多くの反復を組み込む。メンバ「ｃｕｓｔｏｍｅｒ  ｎａｍｅ」、「ｃｉｔｙ」、およびメンバプロパティ「ｐｏｐｕｌａｔｉｏｎ」を含むディメンジョンレベルが、ディメンジョン２２６と２２８のどちらの階層にも存在する。これにより、各ディメンジョンのメンバをデータベースの列にバインドすることの反復、そのデータタイプの反復、その名前の反復、および何らかの補助情報（例えばメタデータ、公式）の反復が必要となる。さらに、重複したデータ記憶域が必要となる。この結果、リレーショナルデータベース２１２から同一の詳細を複数回取り出すことが必要となる。さらに、データベースユーザは、キューブ設計者によって定義された（ディメンジョン２２６および２２８中の）階層だけに照会が限定される。したがって、国が、その国をカバーする販売区域ごとに分割され、データベースユーザは、国ごとの詳細を見るように要求することができない。キューブの設計者が、データベースユーザが望む可能性があるすべての可能なドリルダウンパスをカバーする階層を定義することは実際的ではない。さらに、データベースユーザが国および販売区域を要求した場合、国および販売区域のすべての組合せが、任意の所与の組合せについて顧客が存在しない場合であっても返されることに留意されたい。別々のレベルおよびメンバプロパティに関するデータを取り出すのに異なるメカニズムが使用され、その結果、回路が重複し、データベースシステム上の処理負荷が増大する。
【００２６】
図３は、本発明の例示的実施形態による、データベース３１２中のデータにアクセスするのに使用される多階層ディメンジョン３３０を示す図である。多階層ディメンジョン３３０は、データベース３１２の列と一致する属性を含む。ディメンジョン３３０の各属性は、リレーショナルデータベース３１２中の列にバインドされる。データベース３１２は、ディメンジョン３３０を介してアクセスされる。図３の点線で示すように、属性「ｃｕｓｔｏｍｅｒ  ｎａｍｅ」３４４が列「ｎａｍｅ」３２４にバインドされ、属性「ｐｏｐｕｌａｔｉｏｎ」３４２が列「ｐｏｐｕｌａｔｉｏｎ」３２２にバインドされ、属性「ｃｉｔｙ」３４０が列「ｃｉｔｙ」３２０にバインドされ、属性「ｓｔａｔｅ」３３８が列「ｓｔａｔｅ」３１８にバインドされ、属性「ｃｏｕｎｔｒｙ」３３６が列「ｃｏｕｎｔｒｙ」３１６にバインドされ、属性「ｓａｌｅｓ  ｒｅｇｉｏｎ」３３４が列「ｓａｌｅｓ  ｒｅｇｉｏｎ」３１４にバインドされる。直交軸３３２で示すように、ディメンジョン３３０はキューブとして実装することができる。
【００２７】
ディメンジョン３３０の属性間の関係が定義可能である。定義の例には、顧客がある都市にいる、すべての都市が１つの国の中にある、各都市が１つの販売区域に割り当てられる、各都市が人口を有する、が含まれる。多階層ディメンジョン（例えばディメンジョン３３０）およびその制約は、ディメンジョンの属性および属性間の関係によって定義される。一実施形態では、属性間の関係はキューブの設計者によって定義される。こうした定義に対して制限は課されず、したがってキューブ設計者は、データベースユーザの必要性の観点から属性間の関係を定義することができ、どんなデータベース制限にも妨げられない。属性間の関係は、データに対して存在する制約を定義する。例えば、Ｓｔａｔｅは単一のＣｏｕｎｔｒｙ内にだけ存在することができる。この関係は、基礎となるデータベース構造がこのような制約を実施するか否かに関わらず定義することができる。
【００２８】
多階層ディメンジョンは、それに関連付けられた複数の階層を有することができる。図３に示すように、階層３２６および３２８がディメンジョン３３０に関連付けられる。各階層３２６および３２８は、データベースユーザが使用することのできるドリルダウンパスを表す一続きの属性を含む。階層３２６は、ｃｏｕｎｔｒｙ３３６、ｓｔａｔｅ３３８、ｃｉｔｙ３４０、およびｃｕｓｔｏｍｅｒ  ｎａｍｅ３４４の各属性を含むことができる。階層３２８は、ｓａｌｅｓ  ｒｅｇｉｏｎ３３４、ｃｉｔｙ３４０、およびｃｕｓｔｏｍｅｒ  ｎａｍｅ３４４の各属性を含む。多階層ディメンジョン（例えばディメンジョン３３０）に関連付けられる各階層が定義可能である。一実施形態では、階層はキューブの設計者によって定義される。こうした定義に対して制限は課されず、したがってキューブ設計者は、データベースユーザの必要性の観点から階層を定義することができ、どんなデータベース制限にも妨げられない。例えば、販売区域から国へのドリルダウンパスを提供する階層を定義することができる。単一の属性を含む階層を定義することができる。さらに、単一の属性と、その属性内のすべてのメンバに対する任意選択レベルとを含む階層を定義することができる。例えば、属性ｐｏｐｕｌａｔｉｏｎ３４２と、ｐｏｐｕｌａｔｉｏｎ列３２２のあらゆる別個の値に対するメンバを含むレベルとを含む階層を定義することができる。これをデータベースユーザに対して「Ｐｏｐｕｌａｔｏｉｎ」として公開することができる。この階層は、すべての都市の人口へのドリルダウンパスを提供する。属性Ｐｏｐｕｌａｔｉｏｎは常に、ｐｏｐｕｌａｔｉｏｎ列のあらゆる別個の値に対するメンバを含むレベル「Ｐｏｐｕｌａｔｉｏｎ」を有することに留意されたい。任意選択で、単一のメンバ「Ａｌｌ  Ｐｏｐｕｌａｔｉｏｎｓ」を含むレベル「Ａｌｌ」を有することもできる。複数の階層（例えば国および販売区域）に関係する照会は、少なくとも１つのディメンジョンメンバが存在する組合せを返す。
【００２９】
多階層ディメンジョン３３０を使用してデータベース３１２の列のすべてを異なる階層として公開することができる。属性の任意の組合せを含む階層を作成することができる。データベースユーザは、こうした階層を使用して、データベース内のデータの基礎となるテーブルに直接照会することによって実現することができるのと同程度の柔軟性でデータベースに照会することができる。追加の階層を多階層ディメンジョン（例えばディメンジョン３３０）に追加することは、追加のディメンジョンが不要であるので、データベースシステムの記憶要件に対して比較的わずかな影響しか及ぼさない。追加の各階層は同一の多階層ディメンジョンを使用する。さらに、属性によって集合を定義することができる。集合は、階層を本質的に横切ることができるパスである。例えば、設計者は、定義される階層の如何に関わらず、都市ごとの集合を維持することができる。さらに、設計者は、属性「ｃｉｔｙ」だけを含む階層を定義することもできる。
【００３０】
図４は、属性間の関係の例示的構造を示す図である。各関係は、データがどのように関係しているか、例えばＣｉｔｙが１つのＳｔａｔｅの中にあることを記述する。階層はドリルダウンパスを記述し、関係に追従することもしないこともある。これまで述べた例は、それぞれ以下の関係を有するが、この関係は必須ではない。例えば、ＲｅｇｉｏｎからＣｏｕｎｔｒｙまでの階層を定義することができる。階層の構造は、その中の属性間の関係の結果である。図４に示す構造は線形ではない。したがって、キー属性から開始して、複数のドリルダウンパスが使用可能である。したがって、キー属性から始まる単一のドリルダウンパスに固定されない。図４に示す構造は例示的なものであることを理解されたい。どんな構造も定義することができる。
【００３１】
データベースユーザは、データベースの照会において様々な階層を使用することができるが、照会性能を改善するために利用される結果および集合は、メンバによって定義される「座標」に依存する。例えば、都市「シアトル」の販売合計を要求することは、「国ごとの顧客」を使用するか、それとも「販売区域ごとの顧客」を使用するかに関わらず同一となる。キューブ設計者は、データベースユーザがデータを閲覧する共通階層に基づく照会の定式化が容易となるように、追加の階層を追加することができる。
【００３２】
相対的記憶要件の改善を実現することに加えて、上述の多階層ディメンジョンの使用により、処理性能の向上も実現される。別々の属性の実装により、単一ディメンジョン内の異なる属性を並列に処理することができるように、処理中の性能向上が実現される。さらに、処理中に、定義される関係に基づいて、属性に関係するデータを検証することができる。例えば、属性「ｓｔａｔｅ」が属性「ｃｏｕｎｔｒｙ」に関係する場合、同一の州が複数の国の中に現れる場合にエラーを報告することができる。検証は属性間の関係に基づき、定義される階層間の関係に基づくのではないことに留意されたい。
【００３３】
図５は、本発明の一実施形態による、データベースにアクセスするための例示的プロセスの流れ図である。ステップ５１２では、複数の属性を有するディメンジョン（例えばディメンジョン３３０）を定義する。ステップ５１４では、ディメンジョンの各属性をデータベース（例えばデータベース３１２）中のそれぞれの列にバインドする（割り当てる）。前述のように、一実施形態では、データベースはリレーショナルデータベースである。さらに一実施形態では、データベースシステムはＯＬＡＰシステムである。ステップ５１６では、属性間の関係を定義する。こうした関係はデータベースとは無関係に定義される。すなわち、ディメンジョンの属性間の関係は、データベースに対して課される制約の対象とはならない。関係を任意に定義することができる。つまり、どんな関係も可能である。ステップ５１８では、少なくとも１つの階層を定義する。各階層はデータベースにアクセスするためのドリルダウンパスである。階層は、どんな属性のシーケンスも含むことができる。階層の定義に対して制限は課されない。階層は、単一の属性または属性のどんな組合せも含むことができる。階層はデータベースとは無関係に定義される。すなわち、階層はデータベースに対して課される制限の対象とはならない。ステップ５２２では、ディメンジョンを介してデータベースにアクセスする。データベースへのアクセスは、データベースからの読取り、データベースへの書込み、データベースへのデータの追加、またはそれらの組合せを含むことができる。
【００３４】
図６は、データベースにアクセスするのに使用する例示的システム６００のブロック図である。システム６００は、データベース６１６に結合されたサーバプロセッサ６１４に結合されたクライアントプロセッサ６１２を含む。例示的実施形態では、データベース６１６はＯＬＡＰデータベースであり、以下ではデータベース６１６をＯＬＡＰデータベースとして説明する。クライアントプロセッサ６１２およびサーバプロセッサ６１４はそれぞれ、プロセッサ、メモリ、キーボード、ディスプレイを含むことができ、固定および／または取外し可能なデータ記憶装置および／またはデータ通信装置にローカルまたはリモートに接続することができる。プロセッサ６１２および６１４はそれぞれ、データ通信装置を介してその他のコンピュータシステムにも接続することができる。上記の構成要素の任意の組合せ、あるいは任意の数の異なる構成要素、周辺機器、およびその他の装置をコンピュータ６１２および６１４と共に使用できることを当業者は理解されよう。プロセッサ６１２および６１４を、互いにネットワークされた複数のプロセッサではなく単一プロセッサ上に実装できることも当業者は理解されよう。
【００３５】
一実施形態では、クライアントプロセッサ６１２は、ネットワークと通信するためのネットワークインターフェースプログラムと、クライアントプロセッサ６１２によって実行されるクライアントプログラムとを含むことができる。サーバプロセッサ６１４は、ネットワークと通信するためのネットワークインターフェースプログラムと、サーバプロセッサ６１４によって実行されるサーバプログラムとを含むことができる。サーバプログラムは、リモート／ローカルデータ記憶装置上に記憶された１つまたは複数のデータベース６１６に対して、探索／検索操作、タームドクエリ（termed query）、挿入操作、更新操作、および削除操作を含む様々なデータベース操作を実行する。
【００３６】
一実施形態では、サーバプロセッサ６１４は、ディメンジョン、属性、および階層に関する機能を実行する。こうした機能には、複数の属性（例えば属性３３４、３３６、３３８、３４０、３４２、および３４４）を含むディメンジョン（ディメンジョン３３０）の定義、各属性のデータベース６１６のそれぞれの列への割当て、属性間の関係の定義、一続きの属性を含む少なくとも１つの階層（例えば階層３２６および３２８）の定義、並びにディメンジョンを介したデータベースへのアクセスが含まれる。
【００３７】
本明細書で述べるディメンジョン属性およびディメンジョン当たり複数の階層を使用するＯＬＡＰシステムおよび方法は、こうしたプロセスを実施するためのコンピュータで実装されるプロセスおよびシステムの形態で実施することができる。本明細書で述べるディメンジョン属性およびディメンジョン当たり複数の階層を使用するＯＬＡＰシステムおよび方法は、フロッピィ（登録商標）ディスケット、読取り専用メモリ（ＲＯＭ）、ＣＤ−ＲＯＭ、ハードドライブ、高密度ディスク、その他の任意のコンピュータ可読記憶媒体などの有形の媒体で実施されたコンピュータプログラムコードの形態で実施することもでき、この場合、コンピュータプログラムコードがコンピュータ内にロードされ、コンピュータによって実行されたとき、コンピュータが本発明を実施するシステムとなる。本明細書で述べるディメンジョン属性およびディメンジョン当たり複数の階層を使用するＯＬＡＰシステムおよび方法はコンピュータプログラムコードの形態で、例えば記憶媒体に格納され、コンピュータにロードされ、かつ／またはコンピュータによって実行され、あるいは電気配線またはケーブリング、光ファイバ、または電磁放射などの何らかの伝送媒体を介して伝送されるコンピュータプログラムコードの形態で実施することもでき、この場合、コンピュータプログラムコードがコンピュータ内にロードされ、コンピュータによって実行されたとき、コンピュータが本発明を実施するシステムとなる。汎用プロセッサ上に実装されたとき、コンピュータプログラムコードセグメントは、特定の論理回路を生成するようにプロセッサを構成する。
【００３８】
本明細書で述べた様々な技法は、ハードウェアまたはソフトウェア、あるいは適切ならば両者の組合せと共に実施することができる。したがって、本発明の方法および装置、あるいはその態様または部分は、フロッピィ（登録商標）ディスケット、ＣＤ−ＲＯＭ、ハードドライブ、その他の任意の機械可読記憶媒体などの有形媒体で実施されたプログラムコード（すなわち命令）の形態を取ることができ、この場合、コンピュータプログラムコードがコンピュータなどのマシン内にロードされ、マシンによって実行されたとき、このマシンが本発明を実施する装置となる。プログラム可能コンピュータ上でプログラムコードを実行する場合、コンピューティング装置は一般に、プロセッサ、プロセッサによって読取り可能な記憶媒体（揮発性／不揮発性メモリおよび／または記憶素子を含む）、少なくとも１つの入力装置、および少なくとも１つの出力装置を含む。本発明の処理サービスを、例えばデータ処理ＡＰＩなどを使用することによって使用することができる１つまたは複数のプログラムは、コンピュータシステムと通信するように高レベル手続き型／オブジェクト指向プログラミング言語で実装することが好ましい。しかし、望むならアセンブリ言語または機械語でプログラムを実装することもできる。いずれの場合も、言語はコンパイル型言語またはインタプリタ型言語でよく、ハードウェア実装と組み合わせることができる。
【００３９】
本発明の方法および装置は、電気配線またはケーブリング、光ファイバ、あるいは他の任意の形態の伝送などの、何らかの伝送媒体を介して伝送されるプログラムコードの形態で実施された通信を介して実施することもでき、この場合は、プログラムコードが、ＥＰＲＯＭ、ゲートアレイ、プログラマブルロジックデバイス（ＰＬＤ）、クライアントコンピュータ、ビデオレコーダなどのマシンで受信され、ロードされ、実行されると、上記の例示的実施形態で説明した処理機能を有する受信側のマシンが本発明を実施する装置になる。汎用プロセッサ上に実装するとき、このプログラムコードは、プロセッサと組み合わされ、本発明の機能を起動するように動作する固有の装置を提供する。加えて、本発明と共に使用する任意の記憶技法は常にハードウェアとソフトウェアの組合せでよい。
【００４０】
様々な図の好ましい実施形態と共に本発明の実施形態を説明したが、他の類似の実施形態も使用することができ、あるいは本発明から逸脱することなく本発明と同じ機能を実施するために記載の実施形態に修正や追加を行うことができることを理解されたい。さらに、特にワイヤレスネットワーク装置の数が依然として増加しているので、ハンドヘルド装置のオペレーティングシステムやその他のアプリケーション特有のオペレーティングシステムを含む様々なコンピュータプラットフォームが企図されることを強調しておく。したがって、本発明はどの単一の実施形態にも限定されず、添付の特許請求の範囲による幅と範囲において解釈すべきである。
【図面の簡単な説明】
【００４１】
【図１】本発明の例示的実施形態による多階層ディメンジョンのための方法およびシステムを実施することのできる適切なコンピューティングシステム環境の一例を示す図である。
【図２】データベースの内容に関連付けられる例示的ディメンジョンを示す図である。
【図３】本発明の例示的実施形態による多階層ディメンジョンを示す図である。
【図４】本発明の例示的実施形態による属性間の関係の例示的構造を示す図である。
【図５】本発明の一実施形態による、データベースにアクセスするための例示的プロセスの流れ図である。
【図６】本発明の例示的実施形態による、多階層ディメンジョンを介してデータベースにアクセスするのに使用する例示的システムのブロック図である。
【符号の説明】
【００４２】
１００  コンピューティング環境
１１０  コンピュータ
１２０  処理装置
１３０  システムメモリ
１４０，１５０  インターフェース
１６０  ユーザ入力インターフェース
１７０  ネットワークインターフェース／アダプタ
１８０  リモートコンピュータ
２１２，３１２  データベース
２１４〜２２４，３１４〜３２４  列
２２６，２２８，３３０  ディメンジョン
３２６，３２８  階層
【図１】
2005018778.tif 000003
【図２】
2005018778.tif 000004
【図３】
2005018778.tif 000005
【図４】
2005018778.tif 000006
【図５】
2005018778.tif 000007
【図６】
2005018778.tif 000008