マルチディメンショナル計算の概念
Essbaseデータベースには複数のディメンションがあるため、キューブとして概念化されます。各データ値は、すべてのディメンションを含む交差であるため、"マルチディメンショナル"です。スライスはデータ値の選択であり、マルチディメンショナルでもあります。
簡略化されたEssbaseデータベースのアウトラインについて考えてみます。このデータベースには、Accounts、TimeおよびScenarioの3つのディメンションがあります。
図16-3 マルチディメンショナル・データベースの計算

Accountsディメンションには、次の4つのメンバーがあります。
-
入力値であるSalesとCOGS
-
Margin = Sales - COGS。
-
Margin% = Margin % Sales (SalesのパーセンテージとしてのMargin)
Timeディメンションには4つの四半期があります。Qtr1のメンバーはJan、FebおよびMarで、Qtr2のメンバーはApr、May、Junなどです。
Scenarioディメンションには、財務予算値の"Budget"と財務の実際の値の"Actual"の2つの子メンバーがあります。
3ディメンショナル・アウトラインは、3ディメンショナル・キューブに例えることができます。
図16-4 3ディメンショナル・データベースの図

メンバーの交差部(各ディメンションの1つのメンバー)はデータ値を表します。データ値はデータベース内の1つのセルに保管されます。マルチディメンショナル・データベース内の特定のデータ値を参照するには、各ディメンションでそれぞれのメンバーを指定する必要があります。
Essbaseでは、メンバーの組合せはディメンション間演算子(->)で示されます。ディメンション間演算子は、ハイフン(-)と大なり記号(>)を使用して作成します。ディメンション間演算子とメンバーの間にはスペースを入れないでください。
Sales、Jan、Actualのデータ値を含む単一のセルは、Sales -> Jan -> Actualと記述されます。
図16-5 データベースのSales、Jan、Actualスライス

Salesを参照する場合、次の8つの値を含むデータベースのスライスを参照します:
-
Sales -> Jan -> Actual
-
Sales -> Feb -> Actual
-
Sales -> Mar -> Actual
-
Sales -> Qtr1 -> Actual
-
Sales -> Jan -> Budget
-
Sales -> Feb -> Budget
-
Sales -> Mar -> Budget
-
Sales -> Qtr1 -> Budget
図16-6 データベースのSales、Actual、Budgetスライス

Actual Salesについては、次の4つの値を参照します:
-
Sales -> Jan -> Actual
-
Sales -> Feb -> Actual
-
Sales -> Mar -> Actual
-
Sales -> Qtr1 -> Actual
図16-7 データベースのActual、Salesスライス

Essbaseが式"Margin% = Margin % Sales"を計算する場合、各Margin値を取得し、対応するSales値のパーセンテージとして計算します。
Essbaseはデータベースを一巡して次のようにMargin%を計算します。
-
Margin -> Jan -> ActualをSales -> Jan -> Actualのパーセンテージとして計算します。
結果はMargin% -> Jan -> Actualに配置されます。
-
Margin -> Feb -> ActualをSales -> Feb -> Actualのパーセンテージとして計算します。
結果はMargin% -> Feb -> Actualに配置されます。
-
Margin -> Mar -> ActualをSales -> Mar -> Actualのパーセンテージとして計算します。
結果はMargin% -> Mar -> Actualに配置されます。
-
Margin -> Qtr1 -> ActualをSales -> Qtr1 -> Actualのパーセンテージとして計算します。
結果はMargin% -> Qtr1 -> Actualに配置されます。
-
Margin -> Jan -> BudgetをSales -> Jan -> Budgetのパーセンテージとして計算します。
結果はMargin% -> Jan -> Budgetに配置されます。
-
Essbaseは、データベース内のメンバーのすべての組合せに対するMargin%の計算が終わるまで、データベース全体で処理を繰り返します。
「ブロック・ストレージ・データベースの計算順序」を参照してください。