ヘッダーをスキップ
Oracle OLAP DMLリファレンス
11g リリース1(11.1)
E05732-02
  目次へ
目次
索引へ
索引

戻る
戻る
 
次へ
次へ
 

RELATIONコマンド

RELATIONコマンドは、任意のリレーションを現行オブジェクトの指定ディメンションのデフォルト・リレーションとして指定したり、現行オブジェクトからデフォルト・リレーション情報を削除したりするコマンドです。デフォルトのリレーションの詳細は、「式における関連ディメンションの使用方法」を参照してください。


注意:

RELATIONコマンドと、ALLO.CMAPやAGGMAPのRELATION文とを混同しないでください。

構文

RELATION {dimension-name relation-name }| DELETE { ALL | dimension-name}

引数

dimension-name

事前定義のディメンションの名前。dimension-name引数で指定するディメンションは、デフォルトのリレーションを指定または削除する現在検討中のオブジェクトのディメンションである必要があります。


注意:

dimension-name引数で指定するディメンションは、現在検討中のオブジェクトのディメンションである必要があります。現行オブジェクトは、現行セッションで最も新しく定義したオブジェクトか検討しているオブジェクトです。オブジェクト定義を現行定義にするには、CONSIDER文を使用します。

relation-name

dimension-nameで指定されたディメンションのデフォルト・リレーションとして使用される事前定義のリレーションの名前。

DELETE

事前に指定したデフォルト・リレーション情報の削除を指定します。

ALL

事前に定義したデフォルト・リレーション情報をすべて削除します。

注意

Oracle OLAPでの複数リレーション間の選択方法

2つのディメンション間で複数のリレーションが存在し、関連ディメンションに基づいてそれらのディメンションの1つで計算を実行する場合、Oracle OLAPでは、文の実行時に使用するリレーションが次のように選択されます。

  1. 文に指定されているリレーションが使用されます(ある場合)。

  2. ディメンションのデフォルトのリレーションが使用されます。Oracle OLAPでは、デフォルトのリレーションは次のように決定されます。

    1. RELATIONコマンドを使用してデフォルトのリレーションを指定した場合、Oracle OLAPでは、そのリレーションがデフォルトのリレーションとして認識されます。

    2. RELATIONコマンドを使用してデフォルトのリレーションを指定していない場合、Oracle OLAPでは、最初に定義したリレーションがデフォルトのリレーションとして認識されます。

デフォルトのリレーションの確認

OBJファンクションをRELATIONキーワードとともに使用すると、オブジェクトのデフォルト・リレーション情報を確認できます。

同じオブジェクトに対する複数のRELATIONコマンド

最後に検討されたオブジェクトに対して処理を行う文(LD文など)とは異なり、RELATIONコマンドを新たに発行しても、事前に発行されたRELATIONコマンドは置き換えられません。かわりに、同じオブジェクトに対して複数のRELATIONコマンドが発行されることになり、累積的な効果が得られます。

例10-96 RELATIONコマンドを使用したデフォルト・リレーションの指定

次のアナリティック・ワークスペース・オブジェクトを(次の順序で)定義したとします。

DEFINE CITY DIMENSION TEXT
DEFINE DISTRICT DIMENSION TEXT
DEFINE CITY_DISTRICT RELATION DISTRICT <CITY>
DEFINE CITY_REDISTRICT_1 RELATION DISTRICT <CITY>

REPORT city_district
CITY                    CITY_DISTRICT
-------------------- --------------------
Annapolis            Southern
Bethesda             Southern
Charlotte            Southern
Gettysburg           Southern
Greensboro           Southern
Raleigh              Southern
Reston               Southern
Rochester            Southern
Virginia Beach       Southern
Washington           Capital


REPORT city_redistrict_1
CITY                  CITY_REDISTRICT_1
-------------------- --------------------
Annapolis            Capital
Bethesda             Capital
Charlotte            Southern
Gettysburg           Southern
Greensboro           Southern
Raleigh              Southern
Reston               Southern
Rochester            Southern
Virginia Beach       Capital
Washington           Capital

次のOBJ文が示すように、この時点ではcity_districtリレーションがcitydistrictとの間のデフォルトのリレーションです。これは、city_districtリレーションがcitydistrictとの間で定義された最初のリレーションであり、RELATION文でデフォルトのリレーションが指定されていないためです。

SHOW OBJ (RELATION ACTUAL 'city' 'district')
CITY_DISTRICT

SHOW OBJ (RELATION SPECIFIED 'city' 'district')
NA

ここで、次の文を発行し、districtをWashingtonに制限し、city_redistrict_1リレーションをデフォルトのリレーションにするとします。


LIMIT city TO district
CONSIDER city
RELATION city city_redistrict_1

次のOBJ文が示すように、ここで、RELATION文で指定したcity_redistrict_1リレーションがcitydistrictとの間のデフォルトのリレーションになります。

SHOW OBJ (RELATION ACTUAL 'city' 'district')
CITY_REDISTRICT_1
SHOW OBJ (RELATION SPECIFIED 'city' 'district')
CITY_REDISTRICT_1

また、次の文が示すように、cityをdistrictに制限すると、cityをcity_redistrict_1リレーションに制限したのと同じ結果が得られます。

LIMIT city TO district

REPORT city
CITY
--------------------
Annapolis
Bethesda
Virginia Beach
Washington


LIMIT city to ALL
LIMIT city to city_redistrict_1

REPORT city
CITY
--------------------
Annapolis
Bethesda
Virginia Beach
Washington