(57)【要約】  一実施形態によれば、本明細書には、多次元データベース環境にサンドボックスサポートを提供するためのシステムおよび方法が記載される。複数のサンドボックスおよびベースラインデータを多次元データベースサーバに提供することができる。各サンドボックスは、特定の「what-if」分析に応じて作成され、ベースラインデータに対する１つ以上の変更を格納するように構成される。クライアント／ユーザから、特定の「what-if」分析に関するレポートを要求するリクエストを受信すると、多次元データベースサーバは、そのリクエストを第１クエリおよび第２クエリに分割し、第１クエリをクライアント／ユーザに関連付けられたサンドボックスに導き、第２クエリをベースラインデータに導く。多次元データベースサーバは、第１クエリおよび第２クエリからの結果を合併し、合併したデータに対して集計および計算を実行してから、合併したデータをクライアントに送信することができる。
2018533090.tif 000002
【特許請求の範囲】
【請求項１】
多次元データベース環境にサンドボックスサポートを提供するためのシステムであって、
１つ以上のマイクロプロセッサを含むコンピュータと、
前記コンピュータ上で動作する多次元データベースサーバとを備え、前記多次元データベースサーバは、ベースラインデータと、複数のサンドボックスとを含み、各サンドボックスは、ユーザに関連付けられ、前記ベースラインデータに対する１つ以上の変更を格納し、
前記多次元データベースサーバに設けられたクエリプロセッサを備え、
前記クエリプロセッサは、
ユーザから受信したクエリを第１クエリおよび第２クエリに分割し、
前記第１クエリを前記ベースラインデータに導き、前記第２クエリを前記ユーザに関連付けられたサンドボックスに導き、
前記第１クエリおよび前記第２クエリからの結果を合併し、
前記合併したデータをユーザーに返送する、システム。
【請求項２】
前記複数のサンドボックスの各々は、特定のwhat-if分析に応じて作成される、請求項１に記載のシステム。
【請求項３】
前記ベースラインデータは、前記多次元データベースサーバ内のキューブに格納されたデータである、請求項１または２に記載のシステム。
【請求項４】
要求されたセルがサンドボックス内に存在する場合、前記クエリプロセッサは、前記サンドボックス内のセル値を使用し、
要求されたセルがサンドボックス内に存在しない場合、前記クエリプロセッサは、前記ベースラインデータからセル値を取得する、請求項１〜３のいずれか１項に記載のシステム。
【請求項５】
各サンドボックス内のデータ変更は、そのサンドボックスに関連付けられたユーザのみに利用可能である、請求項１〜４のいずれか１項に記載のシステム。
【請求項６】
各サンドボックス内のデータ変更は、前記ベースラインデータに合併され、各ユーザに利用可能である、請求項１〜５のいずれか１項に記載のシステム。
【請求項７】
前記複数のサンドボックスおよび前記ベースラインデータの各々は、前記多次元データベースサーバのデータベースアウトラインにおけるサンドボックス次元内のメンバとして定義される、請求項１〜６のいずれか１項に記載のシステム。
【請求項８】
前記データベースアウトラインは、前記サンドボックス次元内のデータを記述するためのセル特性次元をさらに含む、請求項１〜７のいずれか１項に記載のシステム。
【請求項９】
前記セル特性次元は、前記サンドボックス次元における各セルの定着状態を追跡するための状態メンバと、各セルを変更する最新のトランザクションを特定するためのトランザクション識別子とを含む、請求項１〜８のいずれか１項に記載のシステム。
【請求項１０】
多次元データベース環境にサンドボックスサポートを提供するための方法であって、
１つ以上のマイクロプロセッサ上で動作する多次元データベースサーバを用意するステップを備え、前記多次元データベースサーバは、ベースラインデータと、複数のサンドボックスとを含み、各サンドボックスは、ユーザに関連付けられ、前記ベースラインデータに対する１つ以上の変更を格納し、
前記多次元データベースサーバに設けられたクエリプロセッサを用いて、ユーザからのクエリを受信するステップと、
前記ユーザから受信した前記クエリを第１クエリおよび第２クエリに分割するステップと、
前記第１クエリを前記ベースラインデータに導き、前記第２クエリを前記ユーザに関連付けられたサンドボックスに導くステップと、
前記第１クエリおよび前記第２クエリからの結果を合併するステップと、
前記合併したデータを前記ユーザに返送するステップとを備える、方法。
【請求項１１】
前記複数のサンドボックスの各々は、特定のwhat-if分析に応じて作成される、請求項１０に記載の方法。
【請求項１２】
前記ベースラインデータは、前記多次元データベースサーバ内のキューブに格納されたデータである、請求項１０または１１に記載の方法。
【請求項１３】
要求されたセルがサンドボックス内に存在する場合、前記クエリプロセッサは、前記サンドボックス内のセル値を使用し、
要求されたセルがサンドボックス内に存在しない場合、前記クエリプロセッサは、前記ベースラインデータからセル値を取得する、請求項１０〜１２のいずれか１項に記載の方法。
【請求項１４】
各サンドボックス内のデータ変更は、そのサンドボックスに関連付けられたユーザのみに利用可能である、請求項１０〜１３のいずれか１項に記載の方法。
【請求項１５】
各サンドボックス内のデータ変更は、前記ベースラインデータに合併され、各ユーザに利用可能である、請求項１０〜１４のいずれか１項に記載の方法。
【請求項１６】
前記複数のサンドボックスおよび前記ベースラインデータの各々は、前記多次元データベースサーバのデータベースアウトラインにおけるサンドボックス次元内のメンバとして定義される、請求項１０〜１５のいずれか１項に記載の方法。
【請求項１７】
前記データベースアウトラインは、前記サンドボックス次元内のデータを記述するためのセル特性次元をさらに含む、請求項１６に記載の方法。
【請求項１８】
前記セル特性次元は、前記サンドボックス次元における各セルの定着状態を追跡するための状態メンバと、各セルを変更する最新の処理を特定するための処理識別子とを含む、請求項１７に記載の方法。
【請求項１９】
命令を格納する非一時的なコンピュータ可読記憶媒体であって、これらの命令は、１つ以上のコンピュータによって読み込まれ実行されると、前記１つ以上のコンピュータに以下のステップを実行させ、これらのステップは、
１つ以上のマイクロプロセッサ上で動作する多次元データベースサーバを用意するステップを備え、前記多次元データベースサーバは、ベースラインデータと、複数のサンドボックスとを含み、各サンドボックスは、ユーザに関連付けられ、前記ベースラインデータに対する１つ以上の変更を格納し、
前記多次元データベースサーバに設けられたクエリプロセッサを用いて、ユーザからのクエリを受信するステップと、
前記ユーザから受信した前記クエリを第１クエリおよび第２クエリに分割するステップと、
前記第１クエリを前記ベースラインデータに導き、前記第２クエリを前記ユーザに関連付けられたサンドボックスに導くステップと、
前記第１クエリおよび前記第２クエリからの結果を合併するステップと、
前記合併したデータを前記ユーザに返送するステップとを含む、非一時的なコンピュータ可読記憶媒体。
【請求項２０】
前記複数のサンドボックスの各々は、特定のwhat-if分析に応じて作成される、請求項１９に記載の非一時的なコンピュータ可読記憶媒体。
【請求項２１】
命令を格納する非一時的なコンピュータ可読記憶媒体であって、これらの命令は、１つ以上のコンピュータによって読み込まれ実行されると、前記１つ以上のコンピュータに請求項１０〜１８のいずれか１項に記載の方法を実行させる、非一時的なコンピュータ可読記憶媒体。
【請求項２２】
機械可読プログラム命令を含むコンピュータプログラムであって、これらの命令は、コンピュータシステムによって実行されると、前記コンピュータプログラムに請求項１０〜１８のいずれか１項に記載の方法を実行させる、コンピュータプログラム。
【請求項２３】
非一時的な機械可読データ記憶媒体に格納された請求項２２に記載のコンピュータプログラムを含むコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示
この特許文書の開示の一部は、著作権保護の対象となるものを含んでいる。著作権者は、特許商標庁の特許ファイルまたは記録に掲載された特許文書または特許開示の複製に対しては異議を唱えないが、その他の場合、全ての著作権を留保する。
【０００２】
優先権の主張
本願は、２０１５年１０月２３日に出願され、「多次元データベース環境にサンドボックスサポートを提供するためのシステムおよび方法」と題された米国仮出願第６２／２４５８８９号の優先権を主張する。当該出願は、参照により本明細書に組み込まれる。
【０００３】
発明の分野
本発明の実施形態は、一般的には、データベースおよびデータの格納に関し、具体的には、多次元データベース環境にサンドボックスサポートを提供するためのシステムおよび方法に関する。
【背景技術】
【０００４】
背景
シナリオ管理は、今後の機会および脅威を早期に特定し、これらを予定の時間で戦略計画に統合することによって、企業の競争力の維持を支援することができる。シナリオ管理では、what-if分析を使用する必要がある。what-if分析において、多次元データベースに格納されたデータセット内の１つ以上のデータ値を変更することによって、その変更がデータセットに基づく式または予測モデルの結果に与える影響を確認することができる。シナリオ管理において、データセットがベースラインデータに影響を与えないように、基礎となる多次元データベースは、各what-if分析に対応する異なるデータセットを隔離空間に格納する必要がある。
【発明の概要】
【課題を解決するための手段】
【０００５】
概要
一実施形態によれば、本明細書には、多次元データベース環境にサンドボックスサポートを提供するためのシステムおよび方法が記載される。複数のサンドボックスおよびベースラインデータを多次元データベースサーバに提供することができる。各サンドボックスは、特定のwhat-if分析に応じて作成され、ベースラインデータに対する１つ以上の変更を格納するように構成される。ユーザから特定のwhat-if分析に関するレポートを要求するリクエストを受信すると、多次元データベースサーバは、そのリクエストを第１クエリおよび第２クエリに分割し、第１クエリをユーザに関連付けられたサンドボックスに導き、第２クエリをベースラインデータに導く。多次元データベースサーバは、第１クエリおよび第２クエリからの結果を合併し、合併したデータに対して集計および計算を実行してから、合併したデータをクライアントに送信することができる。
【図面の簡単な説明】
【０００６】
【図１】一実施形態に従って、多次元データベース環境の一例を示す図である。
【図２】一実施形態に従って、多次元データベース環境にサンドボックスサポートを提供するためのシステムを示す図である。
【図３】一実施形態に従って、多次元データベース環境にサンドボックスサポートを提供するためのシステムをさらに示す図である。
【図４】一実施形態に従って、多次元データベース環境にサンドボックスサポートを提供するためのシステムをさらに示す図である。
【図５】一実施形態に従って、多次元データベース環境にサンドボックスサポートを提供するためのシステムをさらに示す図である。
【図６】一実施形態に従って、多次元データベース環境にサンドボックスサポートを提供するための方法を示す図である。
【発明を実施するための形態】
【０００７】
詳細な説明
上記の特徴および実施形態は、他の特徴および実施形態と共に、以下の明細書、特許請求の範囲および添付図面を参照して、より明らかになるであろう。特定の詳細は、様々な実施形態の理解を提供するために記載される。しかしながら、これらの具体的な詳細がなくても、様々な実施形態を実施できることは明らかであろう。添付の明細書および図面は、限定的であることを意図していない。
【０００８】
多次元データベース環境、一例としてOracle（登録商標）Essbaseを含む多次元データベース環境を用いて、大量のデータ、場合によって複数のデータソースからの大量のデータを統合し、エンドユーザの特定の要求に応じて、フィルタされた情報をこれらのユーザに配信することができる。
【０００９】
図１は、一実施形態に従って、多次元データベース環境１００の一例を示す図である。
図１に示すように、一実施形態によれば、データベース層（database tier）として動作する多次元データベース環境は、１つ以上の多次元データベースサーバシステム１０２を含むことができる。各々の多次元データベースサーバシステム１０２は、物理コンピュータリソースまたは要素１０４（例えば、マイクロプロセッサ／ＣＰＵ、物理メモリ、ネットワーク要素）と、オペレーティングシステム１０６と、１つ以上の多次元データベースサーバ（例えば、Essbaseサーバ）１１０とを含む。
【００１０】
一実施形態によれば、中間層（middle tier）１２０は、１つ以上のサービス、例えば、プロバイダサービス１２２（例えば、Hyperionプロバイダサービス）、管理サービス１２４（例えば、Essbase管理サービス）、またはスタジオ／統合サービス１２６（例えば、Essbaseスタジオ/Essbase統合サービス）を含むことができる。中間層は、ＯＤＢＣ／ＪＤＢＣ１２７および１２８または他の種類のインターフェイスを介して、メタデータカタログ１２９および／または多次元データベース環境と共に使用される１つ以上のデータソース１３０（例えば、関係データベース）へのアクセスを提供することができる。
【００１１】
一実施形態によれば、１つ以上の多次元データベースサーバは、多次元データベースを提供するために、ＯＤＢＣ／ＪＤＢＣ１３２または他の種類のインターフェイスを介して、１つ以上のデータソースにアクセスすることができる。
【００１２】
一実施形態によれば、クライアント層（client tier）１４０は、１つ以上の多次元データベースクライアント１４２（例えば、Essbaseサーバクライアント）を含むことができる。これらの多次元データベースクライアント１４２は、多次元データベース（例えば、スマートビュー（Smart View）、スプレッドシートアドイン（Spreadsheet Add-in）、スマートサーチ（Smart Search）、管理サービス、ＭａｘＬ、ＸＭＬＡ、ＣＡＰＩまたはＶＢ  ＡＰＩアプリケーション、Oracle（登録商標）ビジネスインテリジェンスエンタープライズ版Plus（Oracle Business Intelligence Enterprise Edition Plus）、または他の種類の多次元データベースクライアント）にアクセスすることができる。また、クライアント層は、中間層のサービスと共に使用されるコンソール、例えば、管理サービスコンソール１４４またはスタジオ／統合サービスコンソール１４６を含むこともできる。
【００１３】
一実施形態によれば、クライアント層、中間層層およびデータベース層の間の通信は、ＴＣＰ／ＩＰ、ＨＴＴＰ、または他の種類のネットワーク通信プロトコルのうち１つ以上によって提供されてもよい。
【００１４】
一実施形態によれば、多次元データベースサーバは、１つ以上のデータソースからのデータを統合することによって、多次元データベース、データ構造またはキューブ１５０を提供することができる。多次元データベースサーバは、キューブ１５０を利用して、フィルタされた情報をエンドユーザに提供することができる。
【００１５】
一般的には、多次元データベース内の各データ値は、キューブのセルに格納される。キューブの次元上の座標を特定することによって、特定のデータ値を参照することができる。１つの次元上のメンバと１つ以上の他の各次元上のメンバとの交差点は、データ値を表す。
【００１６】
例えば、販売型ビジネスアプリケーションに使用され得るキューブ１６２を示す図１に示すように、クエリが「売上高」（Sales）を表す場合、システムは、このクエリを、全ての「売上高」データ値を含むデータベース内のデータ値１６４のスライスまたはレイヤとして解釈することができる。「売上高」は、「実績」（Actual）および「予算」（Budget）と交差している。多次元データベース内の特定のデータ値１６６を照会するために、クエリは、例えば「売上高、実績、一月」を指定することによって、各次元上のメンバを特定することができる。異なる方法でデータベースをスライスすることによって、様々な視点のデータを提供することができる。例えば、「二月」に対応するデータ値１６８のスライスは、時間／年次元が「二月」に固定された全てのデータ値を検査する。
【００１７】
データベースアウトライン
一実施形態によれば、多次元データベースの開発は、データベースアウトラインの作成から始まる。データベースアウトラインは、データベース内のメンバ間の構造関係を定義し、データベース内のデータを編成し、集約および数学関係を定義する。データベースアウトラインの階層木またはデータ構造において、各次元は、１つ以上のメンバを含み、各メンバは、さらに他のメンバを含むことができる。次元を指定することによって、個々のメンバの値を統合する方法をシステムに指示することができる。集約は、木の１つの分岐内のメンバ群を意味する。
【００１８】
次元およびメンバ
一実施形態によれば、次元は、データベースアウトラインにおいて最も高い集約レベルを表す。標準次元を選択して、部門別機能（例えば、時間、勘定科目、製品ライン、市場、部門）に関連する事業計画の構成要素を表すことができる。標準次元に関連付けられた属性次元によって、ユーザは、メンバの属性または特性に基づいて、標準次元のメンバをグループ化および分析することができる。メンバ（商品Ａ、商品Ｂ、商品Ｃなど）は、次元の個々の構成要素である。
【００１９】
次元およびメンバの関係
一実施形態によれば、多次元データベースは、ファミリ（親、子および兄弟、または子孫および祖先）および階層（世代およびレベル、またはルートおよびリーフ）などの用語を用いて、データベースアウトライン内のメンバの役割および関係を記述する。
【００２０】
一実施形態によれば、親は、下位に分岐を持つメンバである。例えば、「売上総利益」（Margin）は、「売上高」（Sales）および「売上原価」（ＣＯＧＳ）の親であり得る。子は、上位に親を持つメンバである。上記の例では、「売上高」および「売上原価」は、親の「売上総利益」の子である。兄弟は、すぐ上に同一親を持つ同一世代の子メンバである。
【００２１】
一実施形態によれば、子孫は、親の下位の分岐に位置するメンバである。例えば、「利益」（Profit）、「在庫」（Inventory）および「利益率」（Ratios）は、メジャーの子孫であり得る。この場合、「利益」、「在庫」および「利益率」の子も、メジャーの子孫である。祖先は、メンバの上位の分岐に位置するメンバである。上記の例では、「売上総利益」、「利益」およびメジャーは、「売上高」の祖先であり得る。
【００２２】
一実施形態によれば、ルートは、分岐内の最上位のメンバである。例えば、メジャーは、「利益」、「在庫」および「利益率」のルートであり、「利益」、「在庫」および「利益率」の子のルートでもある。リーフ（レベル０）メンバは、子を持たない。例えば、「期首在庫」、「追加額」、および「期末在庫」は、リーフメンバであり得る。
【００２３】
一実施形態によれば、世代とは、１つの次元内の集約レベルを指す。木のルートは、「第１世代」と見なされる。世代の番号は、ルートからリーフメンバに向かって大きなる。レベルは、次元内の分岐を表す。レベルは、世代に使用された順序と逆の順序で番号付けられる。レベルの番号は、リーフメンバからルートに向かって小さくなる。
【００２４】
一実施形態によれば、ユーザは、世代またはレベルに名前を指定し、その名前をその世代またはレベル内のメンバ全員の略語として使用することができる。
【００２５】
疎次元および密次元
多次元データベース内のデータセットは、通常、２つの特性、すなわち、データが円滑且つ均一に分布されていないという特性、およびメンバの組み合わせの大半にはデータが存在していないという特性を共有している。
【００２６】
一実施形態によれば、このようなデータセットを処理するために、システムは、２種類の標準次元、すなわち、疎次元および密次元を認識することができる。疎次元は、使用可能なデータ位置が占有された割合が比較的低い次元である。密次元は、次元の全ての組み合わせにおいて１つ以上のセルが占有された確率が比較的高い次元である。多くの多次元データベースは、メンバの組み合わせの大半がデータ値を有しないため、本質的に疎である。
【００２７】
データブロックおよび索引体系
一実施形態によれば、多次元データベースは、データブロックおよび索引を用いて、データを格納し、アクセスする。システムは、疎次元の標準メンバの各特定の組み合わせに対して多次元配列またはデータブロックを作成することができる。各データブロックは、疎次元のメンバの組み合わせに対応する密次元のメンバを表す。各データブロックに索引を作成する。索引は、疎次元の標準メンバの組み合わせを表し、少なくとも１つのデータ値が存在する疎次元の標準メンバの各特定の組み合わせに対応するエントリまたはポインタを含む。
【００２８】
一実施形態によれば、多次元データベースサーバは、データ値を検索する時に、索引によって提供されたポインタを用いて、適切なデータブロックを特定し、そのデータブロック内でデータ値を含むセルを特定することができる。
【００２９】
管理サービス
一実施形態によれば、管理サービス（例えば、Essbase管理サービス）は、ユーザがサーバ、アプリケーションおよびデータベースを設計、開発、維持および管理することを可能にする単一のアクセスポイントを提供する。
【００３０】
スタジオ
一実施形態によれば、スタジオ（例えば、Essbaseスタジオ）は、データのモデル化、キューブの設計および分析アプリケーションの構築に関連するタスクを実行するためのウィザード駆動型ユーザインターフェイス（wizard-driven user interface）を提供する。
【００３１】
スプレッドシートアドイン
一実施形態によれば、スプレッドシートアドインは、多次元データベースをスプレッドシートと統合することによって、接続（Connect）、ピボット（Pivot）、ドリルダウン（Drill-down）および計算（Calculate）などの拡張命令をサポートする。
【００３２】
統合サービス
一実施形態によれば、統合サービス（例えば、Essbase統合サービス）は、多次元データベースに格納されたデータと関係データベースに格納されたデータとを統合する時に使用されるメタデータ駆動型環境を提供する。
【００３３】
プロバイダサービス
一実施形態によれば、プロバイダサービス（例えば、Hyperionプロバイダサービス）は、Ｊａｖａ（登録商標）ＡＰＩ、スマートビュー（Smart View）、およびＸＭＬＡクライアントのデータソースプロバイダとして動作する。
【００３４】
スマートビュー
一実施形態によれば、スマートビューは、例えば、Hyperion収益管理、Hyperion計画、およびHyperionエンタープライズパフォーマンス管理ワークスペースデータの共通インターフェイスを提供する。
【００３５】
開発製品
一実施形態によれば、開発製品は、カスタマイズされたエンタープライズ分析アプリケーションの迅速な作成、管理および配置を可能にする。
【００３６】
ライフサイクル管理
一実施形態によれば、ライフサイクル管理（例えば、Hyperionエンタープライズパフォーマンス管理システムのライフサイクル管理）は、エンタープライズパフォーマンス管理製品がアプリケーション、リポジトリまたは個々のアイテムを製品環境の全体に亘って移行することを可能にする手段を提供する。
【００３７】
ＯＬＡＰ
一実施形態によれば、オンライン分析処理（ＯＬＡＰ）は、ユーザによる企業データの分析を可能にする環境を提供する。例えば、財務部門は、ＯＬＡＰを予算、活動に基づく原価の計算、財務実績分析および財務モデル化などに応用することによって、「ジャストインタイム」（just-in-time）情報を提供することができる。
【００３８】
サンドボックスサポート（５６９３ＵＳ１）
一実施形態によれば、本明細書に記載のシステムおよび方法は、what-if分析をサポートするように、多次元データベースサーバにサンドボックスサポートを提供することができる。多次元データベースサーバは、複数のサンドボックスと、ベースラインデータとを含むことができる。各サンドボックスは、特定のwhat-if分析に応じて作成され、ベースラインデータに対する１つ以上の変更を格納するように構成されている。各サンドボックスおよび各ベースラインデータは、グラフィカルユーザインターフェイスを介して、それぞれのビューからアクセスすることができる。
【００３９】
What-ifシナリオ分析を実行するための既存の解決策において、エンドユーザは、カスタマイズされた多次元データベースクライアントを提供することによって、ベースラインデータセットの異なるコピーを格納する必要がある。数千行を含む大規模なベースラインデータセットの場合、既存の解決策は、システムのパフォーマンスおよびメモリ消費の面で非効率である。
【００４０】
本発明の実施形態は、エンドユーザから追加の作業がなく、すぐに使用できるサーバ側機能を提供することによって、既存の解決策の非効率性を克服することができる。本発明の更なる利点は、各サンドボックスにベースラインデータに対するデータ変更のみを記憶することによってディスクスペースを節約することと、システム内のメモリフットプリントおよび多次元データベースクライアントと多次元データベースサーバとの間のデータトラフィックを削減することによってシステムのパフォーマンスを改善することとを含む。
【００４１】
一実施形態によれば、特定のwhat-if分析に関するレポートを要求するリクエストを受信すると、多次元データベースサーバは、ユーザからのリクエストを第１クエリおよび第２クエリに分割し、第１クエリをユーザに関連付けられたサンドボックスに導き、第２クエリをベースラインデータに導く。多次元データベースサーバは、第１クエリおよび第２クエリからの結果を合併し、合併したデータに対して集計および計算を実行してから、合併したデータをクライアントに送信することができる。
【００４２】
一実施形態によれば、ベースラインデータは、トランザクションデータを表すことができ、様々なwhat-if分析の基礎として機能することができる。異なるwhat-if分析を行うために、ベースラインデータからのデータセットに基づいて、異なるサンドボックスを作成することができる。what-if分析が完了すると、データセット内の１つ以上のセルを変更して、予期の結果を生成することができる。変更されたセル値は、サンドボックスに保存されるが、変更されていないセル値は、ベースラインデータに残る。
【００４３】
一実施形態によれば、システムは、複数のユーザの各々に使用される１つ以上のサンドボックスと、複数のユーザによって共有されるデータベースキューブであるベースラインデータとを含むことができる。１人のユーザのために作成されたサンドボックス内のデータ変更は、そのユーザのみに利用可能であり、ベースラインデータにアクセスできる他のユーザには利用できない。例えば、データ変更を使用した仮想シナリオ分析で予期の結果をもたらすとユーザが判断した場合、ユーザは、特定のサンドボックス内のデータ変更を公開することができる。公開されたサンドボックスのデータ変更は、他のユーザに利用可能である。
【００４４】
一実施形態によれば、各サンドボックスおよびベースラインデータは、多次元データベースサーバのデータベースアウトライン内のサンドボックス次元上のメンバによって表すことができる。ユーザがグラフィカルユーザインターフェイスでサンドボックスを作成すると、システムは、それに応じて、データベースアウトラインのサンドボックス次元に新しく作成されたサンドボックスを表すメンバを自動的に作成することができる。
【００４５】
一実施形態によれば、各サンドボックスは、特定のユーザのために作成された仮想プライベートスペースであり得る。新しく作成されたサンドボックスは、データを含まない。特定のユーザがサンドボックスのビューで作業すると、システムは、クエリプロセッサを起動して、多次元式（ＭＤＸ）クエリを用いてユーザが指定した特定のデータセットを取得し、取得したデータをサンドボックスのビューに表示させることができる。その後、ユーザは、取得したデータを変更し、変更のみをサンドボックスに保存することができる。
【００４６】
このシステムによって、ユーザは、データベース／キューブ内の１つ以上のプライベートスペースを用いて、異なるビジネスシナリオをモデル化することができ、各ビジネスシナリオの１つ以上のセルを変更し、変更による影響を見ることができる。
【００４７】
一実施形態によれば、ユーザを複数のサンドボックスに関連付けることができ、各サンドボックスを異なるシナリオに関連付けることができる。
【００４８】
図２は、一実施形態に従って、多次元データベース環境にサンドボックスサポートを提供するためのシステムを示す図である。
【００４９】
図２に示すように、システムは、複数のキューブ２２３と、多次元データベースサーバ内の複数のキューブを定義するデータベースアウトライン２２５とを含むことができる。ユーザ（例えば、データベースユーザまたはシステム管理者）は、多次元データベースアプリケーションを作成する際に、サンドボックスのサポートを有効にすることができる。
【００５０】
一実施形態によれば、複数のキューブは、ベースラインデータキューブ２３５、および複数のサンドボックス（例えば、サンドボックスＡ２３７およびサンドボックスＢ２３９）を含むことができる。複数のサンドボックスの各々は、セル値の１つ以上の更新を表す変更後のデータをベースラインデータキューブに格納することができる。
【００５１】
一実施形態によれば、各サンドボックスは、特定のユーザのために作成され、サンドボックス内の変更後のデータは、ユーザＡのみにアクセス可能である。
【００５２】
一実施形態によれば、ユーザＡは、多次元データベースクライアント２３０内のグラフィカルユーザインターフェイス（例えば、Office用のOracle（登録商標）スマートビュー）に表示された対応のサンドボックスビューを介して、サンドボックスＡ内のデータにアクセスすることができる。
【００５３】
例えば、サンドボックスＡが、ユーザＡ２０１のために作成され、サンドボックスＢが、ユーザＢ２０３のために作成される。ユーザＡは、サンドボックスビューＡ２１１を介して、サンドボックスＡ内の変更後のデータにアクセスすることができ、ユーザＢは、サンドボックスビューＢ２１３を介して、サンドボックスＢ内の変更後のデータにアクセスすることができる。
【００５４】
一実施形態によれば、特定のwhat-if分析を行うために、各々のサンドボックスを作成することができる。
【００５５】
例えば、ベースラインデータは、米国の湾岸区域内の異なる都市に設けられた複数の店舗を所有する飲料配送会社の売上高データを含むことができる。ユーザＡは、ベースラインデータから取得されたデータセットを調べながら、５年間に亘ってクパチーノで販売された瓶飲料の数が会社の利益に与える影響を分析する必要がある場合に、グラフィカルユーザインターフェイスを介してサンドボックス（例えば、サンドボックスＡ）を作成することができる。
【００５６】
一実施形態によれば、サンドボックスビュー（例えば、サンドボックスビューＡ）に最初に表示されたデータは、ベースラインデータからのデータセットであってもよい。ユーザは、特定のwhat-if分析ニーズに基づいて、データを変更することができる。変更後のデータは、対応するサンドボックスに保存することができる。
【００５７】
一実施形態によれば、ユーザは、what-if分析を記述するレポートを要求することができる。図２に示すように、多次元データベースサーバ上のクエリプロセッサ２１７は、サンドボックスＡに関連するwhat-if分析に関するレポートを要求するリクエストを受信することができる。クエリスプリッタ２１９は、このリクエストを第１クエリおよび第２クエリに分割し、第１クエリをサンドボックスＡに導き、第２クエリをベースラインデータに導くことができる。
【００５８】
一実施形態によれば、第１クエリおよび第２クエリは、同一のデータセットを要求する同様の構文（syntax）を含むことができる。例えば、両方のクエリは、２０１５年にクパチーノで販売された瓶飲料の数を表すデータと、同一の期間に亘って会社の年度利益を要求するこができる。
【００５９】
上述したように、サンドボックスが更新値のみをベースラインデータに格納するため、サンドボックスに導かれたクエリは、欠落値、例えば、特定のwhat-if分析で更新されていないセル内の値を含む結果を取得するすることができる。
【００６０】
一実施形態によれば、クエリ結果プロセッサ２２１は、予め定義された規則に基づいて、第１クエリおよび第２クエリからの結果を合併する複数の機能を含むことができる。
【００６１】
一実施形態によれば、要求されたセルがサンドボックス内に存在する場合、クエリプロセッサは、サンドボックス内のセル値を使用することができる。要求されたセルがサンドボックスに存在しない場合、クエリプロセッサは、ベースラインデータからのセル値を使用することができる。上記の規則は、クエリプロセッサがダイナミック階層を計算するときにまたは合併されたデータのストアド階層を集計するときに適用する。
【００６２】
図２にさらに示すように、集約および計算を既に行った合併データは、サンドボックスビューＡ内に表示することができる。
【００６３】
図３は、一実施形態に従って、多次元データベース環境にサンドボックスサポートを提供するためのシステムをさらに示す図である。
【００６４】
図３に示すように、ユーザＡは、ベースラインデータからのベースラインデータセット３１３上のベースラインビュー３１１で作業をしながら、多次元データベースクライアントでサンドボックスＡを作成することができる。
【００６５】
一実施形態によれば、ユーザＡは、その後、サンドボックスビューＡに切り替えて、ユーザＡのビューに最初に表示されたベースラインデータに対してwhat-if分析を実行することができる。ベースラインデータセットに対する任意の変更は、１つ以上の更新されたセル値３１４として、多次元データベースサーバのサンドボックスＡに保存することができる。
【００６６】
一実施形態によれば、ユーザＡがサンドボックスビューＡに対して行った任意の変更は、他のユーザが見ることができない。多次元データベースサーバは、複数のサンドボックス所有権およびセキュリティ規則を実施することによって、認証したユーザのみに特定のサンドボックスへのアクセスを与えるができる。
【００６７】
一実施形態によれば、サンドボックスＡに保存された変更を公開することができる。サンドボックスから公開されたデータをベースラインデータに合併することができる。サンドボックスＡの変更をベースラインデータに適用した後、サンドボックスＡを削除することができる。
【００６８】
一実施形態によれば、サンドボックス内のデータを、ベースラインデータまたは他のサンドボックス内のデータと比較することができる。異なるサンドボックスの並列比較またはサンドボックスとベースラインデータとの並列比較を表示するためのダッシュボードを提供することができる。代替的には、特定のサンドボックスまたはベースラインデータからの異なるバージョンのデータを表示するために、臨時グリッドを形成することができる。
【００６９】
図４は一実施形態に従って、多次元データベース環境にサンドボックスサポートを提供するためのシステムをさらに示す図である。
【００７０】
より詳しくは、図４は、多次元データベースサーバ内で、上述したベースラインデータおよび複数のサンドボックスを格納する際に使用される複数のキューブの構造を定義するデータベースアウトラインを示す。
【００７１】
一実施形態によれば、データベースアウトラインは、メジャー４１１と、時間次元４１３と、セル特性次元４１５と、サンドボックス次元４３３とを含むことができる。
【００７２】
一実施形態によれば、サンドボックス次元は、多次元データベースサーバ内の複数のキューブを表す複数のメンバを含むことができる。図４に示すように、サンドボックス次元は、ベースラインデータメンバ４３５と、複数のサンドボックスメンバ（例えば、サンドボックスＡ４３７およびサンドボックスＢ４３９）とを含む。
【００７３】
一実施形態によれば、各サンドボックスは、特定のユーザのために作成され、サンドボックス内の変更後のデータは、ユーザＡのみにアクセス可能である。
【００７４】
一実施形態によれば、多次元データベースサーバ内でサンドボックスを有効にするために、データベースアウトライン内の第１疎次元を、「サンドボックス」次元タイプを有し且つ平坦であるサンドボックス次元として標記する必要がある。さらに、サンドボックス次元内の各メンバ（例えば、ベースラインデータメンバ、サンドボックスＡおよびサンドボックスＢ）に、統合演算子としてのチルダ（〜）を関連付けることができる。
【００７５】
一実施形態によれば、サンドボックス次元内の各メンバに関連付けられた統合演算子チルド（〜）は、次元内の子が親にロールアップしないことを示す統合プロパティを表すことができる。
【００７６】
一実施形態によれば、サンドボックス次元内の第１メンバは、ベースラインデータ内のメンバであってもよく、残りのメンバは、サンドボックス内のメンバであってもよい。
【００７７】
図４に示すように、セル特性次元は、値メンバ４１７、状態メンバ４１９およびトランザクション識別子（ＴＩＤ）メンバ４２１を含み、サンドボックス次元内のデータを記述する際に使用される属性次元であってもよい。
【００７８】
例えば、サンドボックス次元の各セル内の値を記述するために、複数の特性を値メンバに関連付けることができる。セル状態メンバを用いて、特定のセルがサンドボックス次元に定着する時間および方法を追跡することができる。セル状態メンバの例示値として、入力（INPUT）、ロード（LOAD）、計算（CALC）、手動エントリ（MANUAL ENTRY）、およびダイナミック（DYNAMIC）が挙げられる。トランザクション識別子メンバは、セルを変更した最新のトランザクションを特定することができる。
【００７９】
図５は、一実施形態に従って、多次元データベース環境にサンドボックスサポートを提供するためのシステムをさらに示す図である。
【００８０】
図５に示すように、ユーザのサンドボックス内のデータは、ベースラインデータに合併することができ、またはユーザの別のサンドボックスに合併することもできる。合併処理は、多次元データベースクライアントからトリガされ、多次元データベースサーバ上に設けられたサンドボックス合併プロセッサ５１１によって実行される。
【００８１】
例えば、ユーザＡからの要求によって、サンドボックスＡ内のデータを公開することができ、ベースラインデータに合併することもできる。サンドボックスＢおよびサンドボックスＮ５１３に関連付けられたユーザＢからの要求によって、両方のサンドボックス内のデータをベースラインデータに合併することができる。また、ユーザＢは、サンドボックスＢのデータをサンドボックスＮに合併するように要求することができ、またはサンドボックスＮのデータをサンドボックスＢに合併するように要求することができる。
【００８２】
一実施形態によれば、ソースサンドボックスからのデータをターゲットサンドボックスまたはベースラインデータに合併する際に、サンドボックス合併プロセッサは、サンドボックスのスライスまたはサンドボックス全体を合併することができる。
【００８３】
一実施形態によれば、サンドボックス合併プロセッサは、以下の例示的なシンタックスを有するコマンドで合併プロセスを実行することができる。
【００８４】
DATAMERGE scrMbrName trgMbrName [NOCAL] [SOURCE|TARGET]
上記のコマンドにおいて、scrMbrNameは、単一のサンドボックスメンバまたはメンバの組合であり、trgMbrNameは、単一のサンドボックスメンバである。上述したように、サンドボックス次元のメンバは、ベースラインデータおよび複数のサンドボックスを含むことができる。NOCALCは、入力状態またはロード状態を有するセルのみが合併処理においてコピーできることを示す。SOURCE|TARGETの値は、デフォルトでソース値に設定される。すなわち、ソースとターゲットとが異なる値を有する場合、ソース値を使用する。ユーザは、「ターゲット」を選択することができる。これによって、ターゲット値が欠落している場合またはターゲット状態に「合併済み」フラグが関連付けられている場合、セルは、ソースからの値で上書きされ、それ以外の場合、このセルは、無視される。
【００８５】
一実施形態によれば、サンドボックス合併プロセッサは、ソースサンドボックス内の欠落していないセル毎について反復に行い、SOURCE|TARGET修飾子の値に従ってそのセルをターゲット（例えば、ターゲットサンドボックスまたはベースラインデータ）にコピーすべきか否かを判断することができる。ソースサンドボックスからのセルがターゲットに合併すべきであると判断された場合、サンドボックス合併プロセッサは、このセルの値、状態およびトランザクション識別子をターゲットにコピーすることができる。また、合併プロセッサは、「合併済み」フラグをセル状態に加えることができる。
【００８６】
図６は、一実施形態に従って、多次元データベース環境にサンドボックスサポートを提供するための方法を示す図である。
【００８７】
図６に示すように、ステップ６１３において、１つ以上のマイクロプロセッサ上で動作する多次元データベースサーバを用意する。多次元データベースサーバは、ベースラインデータと、複数のサンドボックスとを含み、各サンドボックスは、ユーザに関連付けられ、ベースラインデータに対する１つ以上の変更を格納する。
【００８８】
ステップ６１５において、多次元データベースサーバに設けられたクエリプロセッサを用いて、ユーザからのクエリを受信する。
【００８９】
ステップ６１７において、ユーザから受信したクエリを第１クエリおよび第２クエリに分割する。
【００９０】
ステップ６１９において、クエリプロセッサは、第１クエリをベースラインデータに導き、第２クエリをユーザに関連付けられたサンドボックスに導く。
【００９１】
ステップ６２１において、クエリプロセッサは、第１クエリおよび第２クエリからの結果を合併する。
【００９２】
ステップ６２３において、クエリプロセッサは、合併したデータをユーザに返送する。
本発明は、本開示の教示に従ってプログラムされた１つ以上のプロセッサ、メモリおよび／またはコンピュータ可読記憶媒体を含む１つ以上の従来の汎用または専用コンピュータ、コンピューティング装置、機械、またはマイクロプロセッサを使用して都合よく実施することができる。ソフトウェア分野の当業者には明らかであるように、熟練したプログラマは、本開示の教示に基づいて、適切なソフトウェアのコーディングを容易に準備することができる。
【００９３】
いくつかの実施形態において、本発明は、命令を格納した非一時的記憶媒体またはコンピュータ可読媒体であるコンピュータプログラム製品を含み、これらの命令を用いてコンピュータをプログラムすることによって、本発明の任意の処理を実行することができる。記憶媒体は、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスクを含む、任意の種類のディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリデバイス、磁気もしくは光カード、ナノシステム（分子メモリＩＣを含む）、または、命令および／もしくはデータを格納するのに適した任意の種類の媒体もしくは装置を含むことができるが、これらに限定されない。
【００９４】
本発明の上記記載は、例示および説明を目的として提供される。本発明を網羅的なものまたは開示された形態そのものに限定することを意図していない。本発明の広さおよび範囲は、上記の例示的な実施形態のいずれかによって限定されるべきではない。数多くの変更および変形は、当業者にとって明らかであろう。修正例および変形例は、開示された特徴の任意可能な組み合わせを含む。実施形態は、本発明の原理およびその実際の応用を最も良く説明することによって、他の当業者がさまざまな実施形態および考えられる特定の用途に適したさまざまな変形に応じて本発明を理解できるように、選択され説明される。本発明の範囲は、添付の特許請求の範囲およびそれらの同等物によって規定されると意図する。
【図１】
2018533090.tif 000003
【図２】
2018533090.tif 000004
【図３】
2018533090.tif 000005
【図４】
2018533090.tif 000006
【図５】
2018533090.tif 000007
【図６】
2018533090.tif 000008
【国際調査報告】
2018533090.tif 000009
2018533090.tif 000010
2018533090.tif 000011