通常、リレーショナル・データベースでは、第3正規形のデータの表にデータ値を格納します。このタイプの実装では、リレーショナル・データベース表のキー列の値は、単一レベルの一意のデータ値になります。たとえば、リレーショナル・データベースの1つのレベルに都市の名前を含む「City」という名前のキー列を持つ表が存在し、その次の上位レベルに州の名前を含む「state」という名前のキー列を持つ表が存在し、さらに同じようにその次の上位レベルに別の名前のキー列を持つ表が存在するという具合です。
アナリティック・ワークスペースでは、分析するデータを保持するオブジェクトは変数と呼ばれる配列です。変数内のキーは、変数のディメンションとして機能する他のオブジェクトに格納されます。OLAP分析のパフォーマンスを向上させるために、複数のレベルの値は階層ディメンションと呼ばれる単一のディメンション内に格納されます。たとえば、アナリティック・ワークスペースでは、都市と州の両方の名前を値として持つ「geog」という名前の階層ディメンションを持つことができます。
2つ以上のディメンションの値を関連付ける値を格納するオブジェクトは、リレーションと呼ばれます。このような階層ディメンションの異なるレベルの値に関する1対多関係は、アナリティック・ワークスペースに格納されます。たとえば、階層ディメンション「geog」の都市と州の値の関係は、通常、parentrelリレーションと呼ばれるアナリティック・ワークスペースのリレーションに格納されます。詳細は、「parentrelリレーション」を参照してください。
通常、追加のアナリティック・ワークスペース・オブジェクトには、階層ディメンションに関する追加情報を保持するように定義されます。一部の重要なOLAP DMLのコマンドとファンクション(LIMITコマンドなど)は、これらのオブジェクトの名前を文の構文内の1つの引数に指定して、アナリティック・ワークスペース内のこれらのオブジェクトの存在を推測します。
概要
最も重要なデータ・オブジェクトは変数です。変数はデータを格納するオブジェクトです。変数内のデータはすべて同じデータ型である必要があります。通常、変数には、ビジネスのある側面を定量化するデータ値を含めます。たとえば、ビジネスの取引に関して(ドル、個数、パーセントなどで評価される)複数のカテゴリがある場合、各カテゴリはそれぞれ独自の変数に格納されます。たとえば、ドル(sales変数)や個数(units変数)で売上データを記録できます。
OLAP DMLは多次元プログラミング言語であるため、変数は多次元であり、他のOLAP言語でメジャーと呼ばれるものに相当します。概念的には、2つのディメンションを持つ変数を表、3つのディメンションを持つ変数をキューブなどとみなすことができます。物理的には、変数は多次元配列として格納されます。この配列の実際の構造は、変数をディメンション化するオブジェクトによって決定されます。
配列のスコープとパフォーマンスは一定ではありません。永続変数とは、変数の値と定義の両方がアナリティック・ワークスペースに格納される変数です。一時変数とは、現行のセッションでのみ値を保持する変数です。アナリティック・ワークスペースを更新およびコミットすると、一時変数の定義のみが保存されます。アナリティック・ワークスペースを終了すると、データ値は廃棄されます。また、変数はプログラム内で定義することもできます。
スカラー変数も定義できますが(通常はプログラム内で)、OLAP DMLを使用して定義する変数の大半は、ディメンション化された変数です。ディメンション化された変数は、複数の値を保持する配列です。変数の索引やディメンションを使用すると、変数を編成できます。ディメンションの値は、データ値を一意に識別するという点でリレーショナル表のキーに似ています。たとえば、ディメンションtime、geographyおよびproductによってディメンション化されたsales変数が存在する場合、salesの値はtime、geographyおよびproductの値の各組合せによって識別されます。変数の索引は、実際にはディメンションの値ではありません。ディメンションの値の位置(INTEGER)です。
変数は、フラット・ディメンションまたは階層ディメンションのどちらかでディメンション化できます。フラット・ディメンションは、ディメンション内の値がすべて同じレベルである(別の値の子や親ではない)場合に存在します。階層ディメンションは、単一ディメンションの値が互いに1対多(親子)関係である場合に存在します。
階層ディメンションは、単一のディメンション内のこのような型のデータを編成および構造化する手法です。階層ディメンションを使用すると、データを含む変数をすべてのレベルにディメンション化できます。ディメンションは複数の階層を持つ場合があります。ディメンション値の親子関係は、セルフ・リレーションを作成することで指定します。階層ディメンションを使用すると、単一の変数内に様々なレベルの集計データを含む変数を定義できます。このタイプの格納では、(特に変数が大きい場合)データを表示しようとするユーザーに対する応答時間が短くなります。
通常、階層ディメンションの上位レベルに対応する変数のセルは、下位レベルのディメンション値に対応する変数のセルの値の合計を含みます。たとえば、期間を表す階層ディメンションで定義されているsales変数の場合、各四半期を表す変数のセルは四半期の月の総売上を表すことができます。
階層ディメンションで変数を定義した後、変数データを下位レベルの階層に追加して、上位レベルの階層の値を計算または集計できます。逆に、階層の上位レベルから下位レベルにデータを配布または割当てすることもできます。
変数とリレーション・データを実際に構造化および格納する方法は、変数やリレーションのディメンション化に使用するオブジェクトの型、およびこれらのオブジェクトが変数やリレーションの定義に現れる順序に依存します。変数は、単純なディメンション、連結ディメンション、コンポジット、パーティション・テンプレートおよび別名ディメンションによってディメンション化されます。変数をディメンション化するために選択するオブジェクトによって、変数のデータの格納方法が決定されます。
単純なディメンション
単純なディメンションのメンバーは、すべて同じデータ型を持つデータ値です。単純なディメンションで変数をディメンション化すると、ディメンションの各メンバーに対して変数のセルは1つになります。データを持たない変数のディメンション・メンバーが存在する場合、Oracle OLAPでは、その空の値を持つ変数にNA値が格納されます。これらのNA値の格納の結果すべてNA値となった場合、Oracle OLAPは実際に値を格納しません。Oracle OLAPでは、範囲がある場合はNA値が格納されません。
連結ディメンション
連結ディメンションは、事前定義された単純なディメンションや結合ディメンションにまたがって定義されます。したがって、連結ディメンションのベース・ディメンションは異なるデータ型になる場合があります。ベース・ディメンションに2つ以上の単純なフラット・ディメンションを持つ連結ディメンションを使用すると、階層を表現できます。連結ディメンションを使用すると、アナリティック・ワークスペースのディメンションをリレーショナル表の列に容易にマップでき、リレーショナル構造のデータをアナリティック・ワークスペース構造に非常に効率的にロードできます。
コンポジット
コンポジットは、事前定義されたディメンションやその他のコンポジットにまたがって定義されます。概念として、コンポジットは次の2つの構造から成り立っていると考えられます。
コンポジット・オブジェクト自体。コンポジットには、ディメンション値の組合せ(つまり、コンポジット・タプル)が含まれます。Oracle OLAPでは、この組合せを使用して、コンポジットによりディメンション化される変数の構造を決定します。
コンポジット値とそのベース・ディメンション値との間の索引。
コンポジットでディメンション化される変数では、ベース・ディメンション内のすべての値についてセルが作成されるわけではありません。これは、単純なディメンションによって変数をディメンション化する場合と異なります。かわりに、配列要素(つまり変数セル)が、コンポジットのタプルに格納されるディメンション値についてのみ作成されます。変数のデータは、コンポジットの各タプルに対しセル単位で順番に格納されます。データ格納の観点からは、コンポジット内のベース・ディメンション値の各組合せは、通常のディメンションの値と同様に扱われます。つまり、通常のディメンションとコンポジットを1つずつ持つ変数を定義する場合、変数のデータは、2次元の変数と同様に格納されます。コンポジットを使用することにより、変数に対して作成された要素の数が減り、データの格納がより効率化されます。
パーティション・テンプレート
パーティション・テンプレートは、事前定義されたディメンションやコンポジットにまたがって定義されます。パーティション・テンプレートは、パーティション変数のパーティション仕様です。パーティション変数は、アナリティック・ワークスペースであるLOBのリレーショナル表に、複数行として格納されます。各パーティションが表の1行です。
別名ディメンション
別名ディメンションは、単に単純なディメンションに対する別名です。別名ディメンションは、そのベース・ディメンションと同じ型および値を持ちます。通常、ある変数を同じディメンションで2回ディメンション化する必要がある場合に、別名ディメンションを定義します。
リレーションとは、アナリティック・ワークスペース内の特定のディメンションの値と、同一のディメンションまたは他のディメンションの値との対応関係を設定するオブジェクトです。リレーションはディメンション化された配列です。リレーションの各セルにはディメンションの値の索引が保持されます。2つ以上のディメンション間のリレーション、ディメンションのセット間の複数のリレーション、または同一ディメンション内のリレーション(セルフ・ディメンション)を定義できます。
通常、リレーションは階層ディメンションのセルフ・リレーションです。1対多(親子)関係にあるディメンション値間のリレーションを作成することで、子値でデータを編成し、親値でデータの集計を表示できます。たとえば、geography
ディメンションに対してgeog.parent
リレーションを作成して、geography
の値cityとstateの関係を定義できます。この方法により、cityでデータを編成してstateでデータの集計を表示できます。
OLAP DMLでは、変数の定義では使用せずに変数の問合せで使用する、次の特殊なデータ・オブジェクトが用意されています。
値セット・オブジェクト
値セットは、事前定義された1つ以上のディメンションのディメンション値のリストです。値セットを使用すると、複数のセッションにまたがってディメンション・ステータス・リストを保存できます。
サロゲート
ディメンション・サロゲートは、事前定義されたディメンションの値の代替セットです。サロゲートで変数をディメンション化することはできません。しかし、サロゲートは、モデル、LIMITコマンド、修飾データ参照、または文(FILEREAD、FILEVIEW、SQL FETCHおよびSQL IMPORTなど)でロードするデータでディメンションのかわりに使用できます。
通常、変数は階層オブジェクトによってディメンション化されます。たとえば、geog、timeおよびproductでディメンション化されているsales変数があるとします。この場合、geogディメンションには、2つの階層(国別と売上地域)が存在し、それぞれの階層では、国別の階層の最上位レベルに「すべての国」が存在し、売上地域の階層の最上位レベルに「すべての地域」が存在する複数のレベルを持つことができます。例1-1「geogという名前の階層ディメンションの定義および移入」に、このタイプの地理階層ディメンションの定義および移入を示します。
例1-1 geogという名前の階層ディメンションの定義および移入
DEFINE geog DIMENSION TEXT LD A dimension with two hierarchies for geography "Populate the dimension with City, State, Region, and Country values MAINTAIN geog ADD 'Boston' 'Springfield' 'Hartford' 'Mansfield' 'Montreal' 'Walla Walla' 'Portland' 'Oakland' 'San Diego' 'MA' 'CT' 'WA' 'CA' 'Quebec' 'East' 'West' 'All Regions' 'USA' 'Canada' 'All Country' "Display the values in geog REPORT geog GEOG -------------- Boston Springfield Hartford Mansfield Montreal Walla Walla Portland Oakland San Diego MA CT WA CA Quebec East West All Regions USA Canada All Country
通常、階層ディメンションを定義した後、そのディメンションについて次のオブジェクトを定義します。
hierlistディメンション。ディメンションの階層の名前をリストします。詳細および例は、「hierlistディメンション」を参照してください。
parentrelリレーション。階層を定義します。ディメンションは、そのディメンションに対して定義されたparentrelを持つ場合は、必ず階層ディメンションになります。詳細および例は、「parentrelリレーション」を参照してください。
levellistディメンション。すべての階層のあらゆるレベルの名前をリストします。詳細および例は、「levellistディメンション」を参照してください。
hierlevels値セット。各階層のレベルの値です。詳細および例は、「hierlevels値セット」を参照してください。
inhier値セットまたは変数。各階層の値を識別します。詳細および例は、「inhier値セットまたは変数」を参照してください。
levelrelリレーション。階層ディメンションの各値を階層のレベルに関連付けます。詳細および例は、「levelrelリレーション」を参照してください。
familyrelリレーション。各階層ディメンションの値とその関連付けられた値です。詳細および例は、「familyrelリレーション」を参照してください。
gidrelリレーション。各階層内の各値のグルーピングIDです。詳細および例は、「gidrelリレーション」を参照してください。
hierlistディメンションは、階層ディメンションの階層の名前を値として保持するアナリティック・ワークスペース内のTEXT
ディメンションです。たとえば、企業で異なる暦年と会計年度を使用する場合、その企業のtimeディメンションで、2つの階層(暦年用と会計年度用)を使用します。そのtime階層をサポートしたhierlistディメンションでは、2つの値(CalendarとFiscal)を使用します。
一貫性を保つために、アナリティック・ワークスペースには、各階層ディメンションに対するhierlistディメンションが含まれます。これは、階層ディメンションに1つの階層しかない場合も例外ではありません。
例1-2「geog_hierlistという名前のhierlistディメンションの定義および移入」に、このタイプのディメンションの定義および移入を示します。
例1-2 geog_hierlistという名前のhierlistディメンションの定義および移入
DEFINE geog_hierlist DIMENSION TEXT LD List of Hierarchies for geog dimension "Populate the geog_hierlist dimension MAINTAIN geog_hierlist ADD 'Political_Geog' 'Sales_Geog' "Display the values of the geog_hierlist dimension REPORT geog_hierlist GEOG_HIERLIST -------------- Political_Geog Sales_Geog
parentrelリレーションは、階層ディメンション、それ自身(セルフ・ディメンション)およびhierlistディメンション間のリレーションです。このリレーションにより、階層内の各ディメンション・メンバーが識別されます。
例1-3「geog_parentrelという名前のparentrelリレーションの定義および移入」に、このタイプのリレーションの定義および移入を示します。
例1-3 geog_parentrelという名前のparentrelリレーションの定義および移入
"Define the relation DEFINE geog_parentrel RELATION geog <geog geog_hierlist> LD Self-relation for geog showing parents of each value "Populate each cell in the relation "with the parent of the geog value "This example using assignment statement with QDRs to do that geog_parentrel (geog_hierlist 'Sales_Geog' geog 'Boston') = 'MA' geog_parentrel (geog_hierlist 'Sales_Geog' geog 'Hartford') = 'CT' geog_parentrel (geog_hierlist 'Sales_Geog' geog 'Springfield') = 'MA' geog_parentrel (geog_hierlist 'Sales_Geog' geog 'Mansfield') = 'CT' geog_parentrel (geog_hierlist 'Sales_Geog' geog 'Montreal') = 'Quebec' geog_parentrel (geog_hierlist 'Sales_Geog' geog 'Walla Walla') = 'WA' geog_parentrel (geog_hierlist 'Sales_Geog' geog 'Portland') = 'WA' geog_parentrel (geog_hierlist 'Sales_Geog' geog 'Oakland') = 'CA' geog_parentrel (geog_hierlist 'Sales_Geog' geog 'San Diego') = 'CA' geog_parentrel (geog_hierlist 'Sales_Geog' geog 'CT') = 'East' geog_parentrel (geog_hierlist 'Sales_Geog' geog 'MA') = 'East' geog_parentrel (geog_hierlist 'Sales_Geog' geog 'WA') = 'West' geog_parentrel (geog_hierlist 'Sales_Geog' geog 'CA') = 'West' geog_parentrel (geog_hierlist 'Sales_Geog' geog 'Quebec') = 'East' geog_parentrel (geog_hierlist 'Sales_Geog' geog 'East') = 'All Regions' geog_parentrel (geog_hierlist 'Sales_Geog' geog 'West') = 'All Regions' geog_parentrel (geog_hierlist 'Political_Geog' geog 'Boston') = 'MA' geog_parentrel (geog_hierlist 'Political_Geog' geog 'Hartford') = 'CT' geog_parentrel (geog_hierlist 'Political_Geog' geog 'Springfield') = 'MA' geog_parentrel (geog_hierlist 'Political_Geog' geog 'Mansfield') = 'CT' geog_parentrel (geog_hierlist 'Political_Geog' geog 'Montreal') = 'Quebec' geog_parentrel (geog_hierlist 'Political_Geog' geog 'Walla Walla') = 'WA' geog_parentrel (geog_hierlist 'Political_Geog' geog 'Portland') = 'WA' geog_parentrel (geog_hierlist 'Political_Geog' geog 'Oakland') = 'CA' geog_parentrel (geog_hierlist 'Political_Geog' geog 'San Diego') = 'CA' geog_parentrel (geog_hierlist 'Political_Geog' geog 'CT') = 'USA' geog_parentrel (geog_hierlist 'Political_Geog' geog 'MA') = 'USA' geog_parentrel (geog_hierlist 'Political_Geog' geog 'WA') = 'USA' geog_parentrel (geog_hierlist 'Political_Geog' geog 'CA') = 'USA' geog_parentrel (geog_hierlist 'Political_Geog' geog 'Quebec') = 'Canada' geog_parentrel (geog_hierlist 'Political_Geog' geog 'USA') = 'All Country' geog_parentrel (geog_hierlist 'Political_Geog' geog 'Canada') = 'All Country' "Display the values of geog_parentrel REPORT DOWN geog W 20 geog_parentrel -------------GEOG_PARENTREL-------------- --------------GEOG_HIERLIST-------------- GEOG Political_Geog Sales_Geog -------------- -------------------- -------------------- Boston MA MA Springfield MA MA Hartford CT CT Mansfield CT CT Montreal Quebec Quebec Walla Walla WA WA Portland WA WA Oakland CA CA San Diego CA CA MA USA East CT USA East WA USA West CA USA West Quebec Canada East East NA All Regions West NA All Regions All Regions NA NA USA All Country NA Canada All Country NA All Country NA NA
levellistディメンションは、階層ディメンションの階層のすべてのレベルの名前を値として保持するTEXTディメンションです。
例1-4「geog_levellistという名前のlevellistディメンションの定義および移入」に、このタイプのディメンションの定義および移入を示します。
例1-4 geog_levellistという名前のlevellistディメンションの定義および移入
DEFINE geog_levellist DIMENSION TEXT LD List of levels used by hierarchies of the geog dimension "Populate the geog_levellist dimension with the names of the levels of both the "Political_Geog and Sales_Geog hierarchies MAINTAIN geog_levellist ADD 'All Country' 'Country' 'All Regions' 'Region' MAINTAIN geog_levellist ADD 'State-Prov' 'City' "Display the values of the geog_levellist dimension REPORT geog_levellist GEOG_LEVELLIST -------------- All Country Country All Regions Region State-Prov City
hierlevels値セットは、階層ディメンションの各階層に含まれているhierlevelsディメンション(通常は最下位から最上位への順)の値です。
例1-5「geog_hierlevelsという名前のhierlevels値セットの定義および移入」に、このタイプの値セットの定義および移入を示します。
例1-5 geog_hierlevelsという名前のhierlevels値セットの定義および移入
DEFINE geog_hierlevels VALUESET geog_levellist <geog_hierlist> "Using LIMIT populate the valueset with the appropriate values for each hierarchy LIMIT geog_hierlevels TO ALL LIMIT geog_hierlevels (geog_hierlist 'Political_Geog') TO 'City' 'State-Prov' 'Country' 'All Country' LIMIT geog_hierlevels (geog_hierlist 'Sales_Geog') TO 'City' 'State-Prov' 'Region' 'All Regions' "Display the values in the valueset REPORT W 22 geog_hierlevels GEOG_HIERLIST GEOG_HIERLEVELS -------------- ---------------------- Political_Geog City State-Prov Country All Country Sales_Geog City State-Prov Region All Regions
inhier値セットは、各階層内のinhierディメンションの値です。例1-6「geog_inhierという名前のinhier値セットの定義および移入」に、このタイプの値セットの定義および移入を示します。
inhier変数は、階層ディメンションとhierlistディメンションでディメンション化されるBOOLEAN変数です。各階層では、その階層内の各ディメンション値に対してTRUE値を持っています。例1-7「geog_inhiervarという名前のinhier変数の定義および移入」に、このタイプの変数の定義および移入を示します。
例1-6 geog_inhierという名前のinhier値セットの定義および移入
"Define the valueset DEFINE geog_inhier VALUESET geog <geog_hierlist> "Using LIMIT commands, populate the valueset LIMIT geog_inhier (geog_hierlist 'Political_Geog') REMOVE 'East' 'West' 'All Regions' LIMIT geog_inhier (geog_hierlist 'Sales_Geog') REMOVE 'Canada' 'USA' 'All Country' "Display the values in the valueset REPORT W 20 geog_inhier GEOG_HIERLIST GEOG_INHIER -------------- -------------------- Political_Geog Boston Springfield Hartford Mansfield Montreal Walla Walla Portland Oakland San Diego MA CT WA CA Quebec USA Canada All Country Sales_Geog Boston Springfield Hartford Mansfield Montreal Walla Walla Portland Oakland San Diego MA CT WA CA Quebec East West All Regions
例1-7 geog_inhiervarという名前のinhier変数の定義および移入
DEFINE geog_inhiervar VARIABLE BOOLEAN <geog geog_hierlist> "Using LIMIT commands and assignment statements, populate " the variable LIMIT geog_hierlist TO ALL LIMIT geog_hierlist TO 'Political_Geog' LIMIT geog TO 'East' 'West' 'All Regions' geog_inhiervar = FALSE LIMIT geog COMPLEMENT geog_inhiervar = TRUE LIMIT geog_hierlist TO ALL LIMIT geog_hierlist TO 'Sales_Geog' LIMIT geog TO ALL LIMIT geog TO 'Canada' 'USA' 'All Country' geog_inhiervar = FALSE LIMIT geog COMPLEMENT geog_inhiervar = TRUE LIMIT geog TO ALL LIMIT geog_hierlist TO ALL "Display the values of the variable REPORT DOWN geog geog_inhiervar ---GEOG_INHIERVAR---- ----GEOG_HIERLIST---- Political_ GEOG Geog Sales_Geog -------------- ---------- ---------- Boston yes yes Springfield yes yes Hartford yes yes Mansfield yes yes Montreal yes yes Walla Walla yes yes Portland yes yes Oakland yes yes San Diego yes yes MA yes yes CT yes yes WA yes yes CA yes yes Quebec yes yes East no yes West no yes All Regions no yes USA yes no Canada yes no All Country yes no
levelrelリレーションは、階層ディメンションの各メンバーのレベルを記録する、levellistディメンションとhierlistディメンション間のリレーションです。
例1-8「geog_levelrelという名前のlevelrelリレーションの定義および移入」に、このタイプのリレーションの定義および移入を示します。
例1-8 geog_levelrelという名前のlevelrelリレーションの定義および移入
"Define the relation DEFINE geog_levelrel RELATION geog_levellist <geog geog_hierlist> LD Level of each dimension member for geog "Populate the relation "This example uses assignment statements with QDRs to populate geog_levelrel (geog_hierlist 'Sales_Geog' geog 'Boston') = 'City' geog_levelrel (geog_hierlist 'Sales_Geog' geog 'Hartford') = 'City' geog_levelrel (geog_hierlist 'Sales_Geog' geog 'Springfield') = 'City' geog_levelrel (geog_hierlist 'Sales_Geog' geog 'Mansfield') = 'City' geog_levelrel (geog_hierlist 'Sales_Geog' geog 'Montreal') = 'City' geog_levelrel (geog_hierlist 'Sales_Geog' geog 'Walla Walla') = 'City' geog_levelrel (geog_hierlist 'Sales_Geog' geog 'Portland') = 'City' geog_levelrel (geog_hierlist 'Sales_Geog' geog 'Oakland') = 'City' geog_levelrel (geog_hierlist 'Sales_Geog' geog 'San Diego') = 'City' geog_levelrel (geog_hierlist 'Sales_Geog' geog 'CT') = 'State-Prov' geog_levelrel (geog_hierlist 'Sales_Geog' geog 'MA') = 'State-Prov' geog_levelrel (geog_hierlist 'Sales_Geog' geog 'WA') = 'State-Prov' geog_levelrel (geog_hierlist 'Sales_Geog' geog 'CA') = 'State-Prov' geog_levelrel (geog_hierlist 'Sales_Geog' geog 'Quebec') = 'State-Prov' geog_levelrel (geog_hierlist 'Sales_Geog' geog 'East') = 'Region' geog_levelrel (geog_hierlist 'Sales_Geog' geog 'West') = 'Region' geog_levelrel (geog_hierlist 'Sales_Geog' geog 'All Regions') = 'All Regions' geog_levelrel (geog_hierlist 'Political_Geog' geog 'Boston') = 'City' geog_levelrel (geog_hierlist 'Political_Geog' geog 'Hartford') = 'City' geog_levelrel (geog_hierlist 'Political_Geog' geog 'Springfield') = 'City' geog_levelrel (geog_hierlist 'Political_Geog' geog 'Mansfield') = 'City' geog_levelrel (geog_hierlist 'Political_Geog' geog 'Montreal') = 'City' geog_levelrel (geog_hierlist 'Political_Geog' geog 'Walla Walla') = 'City' geog_levelrel (geog_hierlist 'Political_Geog' geog 'Portland') = 'City' geog_levelrel (geog_hierlist 'Political_Geog' geog 'Oakland') = 'City' geog_levelrel (geog_hierlist 'Political_Geog' geog 'San Diego') = 'City' geog_levelrel (geog_hierlist 'Political_Geog' geog 'CT') = 'State-Prov' geog_levelrel (geog_hierlist 'Political_Geog' geog 'MA') = 'State-Prov' geog_levelrel (geog_hierlist 'Political_Geog' geog 'WA') = 'State-Prov' geog_levelrel (geog_hierlist 'Political_Geog' geog 'CA') = 'State-Prov' geog_levelrel (geog_hierlist 'Political_Geog' geog 'Quebec') = 'State-Prov' geog_levelrel (geog_hierlist 'Political_Geog' geog 'USA') = 'Country' geog_levelrel (geog_hierlist 'Political_Geog' geog 'Canada') = 'Country' geog_levelrel (geog_hierlist 'Political_Geog' geog 'All Country') = 'All Country' "Display the values REPORT DOWN geog W 20 geog_levelrel --------------GEOG_LEVELREL-------------- --------------GEOG_HIERLIST-------------- GEOG Political_Geog Sales_Geog -------------- -------------------- -------------------- Boston City City Springfield City City Hartford City City Mansfield City City Montreal City City Walla Walla City City Portland City City Oakland City City San Diego City City MA State-Prov State-Prov CT State-Prov State-Prov WA State-Prov State-Prov CA State-Prov State-Prov Quebec State-Prov State-Prov East NA Region West NA Region All Regions NA All Regions USA Country NA Canada Country NA All Country All Country NA
familyrelリレーションは、階層ディメンション、levellistディメンションおよびhierlistディメンション間のリレーションです。このリレーションでは、階層の各ディメンション・メンバーの完全な親子関係が表示されます。
例1-9「geog_familyrelという名前のfamilyrelリレーションの定義および移入」に、このタイプのリレーションの定義および移入を示します。
例1-9 geog_familyrelという名前のfamilyrelリレーションの定義および移入
"Define the relation DEFINE geog_familyrel RELATION geog <geog geog_levellist geog_hierlist> LD FEATURES Family/Ancestry structure for the geog dimension "Populate the relation using the HIERHEIGHT command HIERHEIGHT geog_parentrel INTO geog_familyrel USING geog_levelrel "Display the values of the familyrel relation "First the values for the Political_Geog hierarchy are displayed "Then the values for the Sales_Geog hierarchy REPORT DOWN geog W 12 geog_familyrel GEOG_HIERLIST: Political_Geog -------------------------------GEOG_FAMILYREL-------------------------------- -------------------------------GEOG_LEVELLIST-------------------------------- GEOG All Country Country All Regions Region State-Prov City -------------- ------------ ------------ ------------ ------------ ------------ ------------ Boston All Country USA NA NA MA Boston Springfield All Country USA NA NA MA Springfield Hartford All Country USA NA NA CT Hartford Mansfield All Country USA NA NA CT Mansfield Montreal All Country Canada NA NA Quebec Montreal Walla Walla All Country USA NA NA WA Walla Walla Portland All Country USA NA NA WA Portland Oakland All Country USA NA NA CA Oakland San Diego All Country USA NA NA CA San Diego MA All Country USA NA NA MA NA CT All Country USA NA NA CT NA WA All Country USA NA NA WA NA CA All Country USA NA NA CA NA Quebec All Canada NA NA Quebec NA Countries East NA NA NA NA NA NA West NA NA NA NA NA NA All Regions NA NA NA NA NA NA USA All Country USA NA NA NA NA Canada All Country Canada NA NA NA NA All Country All Country NA NA NA NA NA GEOG_HIERLIST: Sales_Geog -------------------------------GEOG_FAMILYREL-------------------------------- -------------------------------GEOG_LEVELLIST-------------------------------- GEOG All Country Country All Regions Region State-Prov City -------------- ------------ ------------ ------------ ------------ ------------ ------------ Boston NA NA All Regions East MA Boston Springfield NA NA All Regions East MA Springfield Hartford NA NA All Regions East CT Hartford Mansfield NA NA All Regions East CT Mansfield Montreal NA NA All Regions East Quebec Montreal Walla Walla NA NA All Regions West WA Walla Walla Portland NA NA All Regions West WA Portland Oakland NA NA All Regions West CA Oakland San Diego NA NA All Regions West CA San Diego MA NA NA All Regions East MA NA CT NA NA All Regions East CT NA WA NA NA All Regions West WA NA CA NA NA All Regions West CA NA Quebec NA NA All Regions East Quebec NA East NA NA All Regions East NA NA West NA NA All Regions West NA NA All Regions NA NA All Regions NA NA NA USA NA NA NA NA NA NA Canada NA NA NA NA NA NA All Country NA NA NA NA NA NA
gidrelリレーションは、NUMBERディメンション、階層ディメンションおよびhierlistディメンション間のリレーションです。このリレーションには、階層ディメンションの各階層における各ディメンション・メンバーのグルーピングIDが含まれます。また、各ディメンション・メンバーの階層内の深さを識別する$GID_DEPTHプロパティも保持します。
例1-10「geog_gidrelという名前のgidrelリレーションの定義および移入」に、このタイプのリレーションの定義および移入を示します。
例1-10 geog_gidrelという名前のgidrelリレーションの定義および移入
"Create a dimension that has values that are numbers DEFINE gid_dimension DIMENSION NUMBER (38,0)"Add values to that dimension "This example uses MAINTAIN ADD to add a few numbers MAINTAIN gid_dimension ADD 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 "Define the gidrel relation DEFINE geog_gidrel RELATION gid_dimension <geog geog_hierlist> "Display the complete definition of the geog_gidrel relation "Note that it has no properties DEFINE GEOG_GIDREL RELATION GID_DIMENSION <GEOG GEOG_HIERLIST> "Populate the gidrel relation using the GROUPINGID command GROUPINGID geog_parentrel INTO geog_gidrel USING geog_levelrel INHIERARCHY geog_inhier "Display the values of the geog_gidrel relation REPORT down geog w 20 geog_gidrel ---------------GEOG_GIDREL--------------- --------------GEOG_HIERLIST-------------- GEOG Political_Geog Sales_Geog -------------- -------------------- -------------------- Boston 0 0 Springfield 0 0 Hartford 0 0 Mansfield 0 0 Montreal 0 0 Walla Walla 0 0 Portland 0 0 Oakland 0 0 San Diego 0 0 MA 1 1 CT 1 1 WA 1 1 CA 1 1 Quebec 1 1 East NA 3 West NA 3 All Regions NA 7 USA 3 NA Canada 3 NA All Country 7 NA "Display the complete definition of the geog_gidrel relation "Note that it now has a $GID_DEPTH property DEFINE GEOG_GIDREL RELATION GID_DIMENSION <GEOG GEOG_HIERLIST> PROPERTY '$GID_DEPTH' 4