日本語PDF

CREATE ATTRIBUTE DIMENSION

目的

CREATE ATTRIBUTE DIMENSION文を使用して、属性ディメンションを作成します。属性ディメンションは、1つ以上の分析ビュー階層のディメンション・メンバーを指定します。使用しているデータ・ソースおよび含まれるメンバーを指定します。メンバーのレベルを指定して、レベル間の属性リレーションシップを決定します。

前提条件

自分のスキーマ内に属性ディメンションを作成する場合は、CREATE ATTRIBUTE DIMENSIONシステム権限が必要です。他のユーザーのスキーマ内に属性ディメンションを作成するには、CREATE ANY ATTRIBUTE DIMENSIONシステム権限が必要です。

構文

create_attribute_dimension::=

classification_clause::=

attr_dim_using_clause::=

join_condition_elem ::=

join_condition_elem.epsの説明が続きます
図join_condition_elem.epsの説明

attributes_clause::=

attr_dim_attributes_clause::=

attr_dim_level_clause::=

alternate_key_clause::=

dim_order_clause::=

セマンティクス

OR REPLACE

属性ディメンションの既存の定義を異なる定義で置換するには、OR REPLACEを指定します。

FORCEおよびNOFORCE

正常にコンパイルされない場合でも強制的に属性ディメンションを作成するには、FORCEを指定します。NOFORCEを指定した場合、属性ディメンションを正常にコンパイルする必要があり、そうでない場合はエラーが発生します。デフォルトは、NOFORCEです。

schema

属性ディメンションを作成するスキーマを指定します。スキーマを指定しない場合、自分のスキーマに属性ディメンションが作成されます。

attr_dimension

属性ディメンションの名前を指定します。

SHARING

SHARING句は、アプリケーションのメンテナンスの際に、アプリケーション・ルートにオブジェクトを作成する場合に使用します。このタイプのオブジェクトはアプリケーション共通オブジェクトと呼ばれ、アプリケーション・ルートに属するアプリケーションPDBと共有できます。

次の共有属性のいずれかを使用して、オブジェクトを共有する方法を指定できます。

  • METADATA - メタデータ・リンクはメタデータを共有しますが、そのデータは各コンテナに固有です。このタイプのオブジェクトは、メタデータリンク・アプリケーション共通オブジェクトと呼ばれます。

  • NONE - オブジェクトは共有されず、アプリケーション・ルートでのみアクセスできます。

classification_clause

classification句を使用して、CAPTIONまたはDESCRIPTION分類の値を指定し、ユーザー定義分類を指定します。分類では、分析ビューとそのコンポーネントの情報を提供するためにアプリケーションで使用される、説明的なメタデータを提供します。

同じオブジェクトに、任意の数の分類を指定できます。分類の最大長は4000バイトです。

CAPTIONDESCRIPTION分類では、DDLショートカットCAPTION 'caption'およびDESCRIPTION 'description'または完全な分類構文を使用できます。

言語別に分類値を変更できます。CAPTIONまたはDESCRIPTION分類に言語を指定するには、完全な構文を使用する必要があります。言語を指定しない場合、分類の言語の値はNULLです。言語の値は、NULLまたは有効なNLS_LANGUAGE値である必要があります。

DIMENSION TYPE

属性ディメンションのタイプとして、STANDARDまたはTIMEのいずれかを選択できます。STANDARDタイプの属性ディメンションのタイプ・レベルは、STANDARDとなります。TIMEタイプの属性ディメンションの各レベルは、いずれかの時間タイプとなります。デフォルトのDIMENSION TYPESTANDARDです。

attr_dim_using_clause

USINGキーワードを使用して、表またはビューを指定します。ASキーワードを使用して、表またはビューの別名を指定できます。必要に応じて、結合パスを指定できます。結合パスを使用して、属性ディメンションにスノーフレーク・スキーマ編成の表を使用する場合に結合を指定します。

join_path_clause

結合パス句では、異なる表の列間の結合条件を指定します。join_path_name引数で指定される結合パスの名前は、USING句に含まれる結合パスごとに一意である必要があります。

join_condition

結合条件は1つ以上の結合条件要素で構成され、追加の各結合条件要素はAND演算子を使用して追加されます。

join_condition_element

結合条件要素では、左側の列参照は、右側の列参照とは異なる表から取得される必要があります。

attributes_clause

1つ以上のattr_dim_attribute_clause句を指定します。

attr_dim_attribute_clause

attr_dim_using_clauseソースから列を指定します。ASキーワードを使用して別名を指定した場合を除き、属性の名前は列名です。各属性の分類を指定できます。

attr_dim_level_clause

属性ディメンションのレベルを指定します。レベルは、レベルのメンバーを指定するキー属性およびオプションの代替キー属性を指定します。

キー属性にNULL値がない場合、デフォルトであるNOT NULLを指定できます。NULL値が1つ以上ある場合は、SKIP WHEN NULLを指定します。

LEVEL TYPE

STANDARDタイプの属性ディメンションのタイプ・レベルは、STANDARDとなります。STANDARDタイプの属性ディメンションにLEVEL TYPEを指定する必要はありません。

TIMEタイプの属性ディメンションでは、レベル・タイプを指定する必要があります。レベルのタイプには、時間タイプのいずれかを選択できます。レベル・メンバーの値が時間タイプではない場合でも、時間タイプを指定する必要があります。たとえば、SEASONレベルには、季節名の値を指定できます。レベルを定義する場合は、QUARTERSなど、いずれかの時間レベル・タイプを指定する必要があります。アプリケーションでは、その目的に応じて、レベル・タイプの指定を使用できます。

DETERMINES

DETERMINESキーワードを使用すると、このレベルによって決定される属性ディメンションの他の属性を指定できます。属性に、別の属性の各値について1つの値のみが含まれる場合、最初の属性の値によってもう一方の属性の値が決まります。たとえば、QUARTER_ID属性には、MONTH_ID属性の各値について1つの値のみが含まれるため、MONTHSレベルのDETERMINES句にQUARTER_ID属性を含めることができます。

key_clause

レベルのキーとして1つ以上の属性を指定します。

alternate_key_clause

レベルの代替キーとして1つ以上の属性を指定します。

dim_order_clause

レベルのメンバーの順序を指定します。

all_clause

オプションで、MEMBER NAMEMEMBER CAPTIONおよびMEMBER DESCRIPTIONの値を暗黙的なすべてのレベルに指定します。デフォルトでは、MEMBER NAME値はALLです。

次の例では、TIME_DIM表について説明します。

desc TIME_DIM

Name              Null?   Type          
----------------- -----   ------------- 
MONTH_ID                  VARCHAR2(10)  
CATEGORY_ID               NUMBER(6)     
STATE_PROVINCE_ID         VARCHAR2(120) 
UNITS                     NUMBER(6)     
SALES                     NUMBER(12,2)  
YEAR_ID          NOT NULL VARCHAR2(30) 
YEAR_NAME        NOT NULL VARCHAR2(40) 
YEAR_END_DATE             DATE         
QUARTER_ID       NOT NULL VARCHAR2(30) 
QUARTER_NAME     NOT NULL VARCHAR2(40) 
QUARTER_END_DATE          DATE         
QUARTER_OF_YEAR           NUMBER       
MONTH_ID         NOT NULL VARCHAR2(30) 
MONTH_NAME       NOT NULL VARCHAR2(40) 
MONTH_END_DATE            DATE         
MONTH_OF_YEAR             NUMBER       
MONTH_LONG_NAME           VARCHAR2(30) 
SEASON                    VARCHAR2(10) 
SEASON_ORDER              NUMBER(38)   
MONTH_OF_QUARTER          NUMBER(38) 

次の例では、TIME_DIM表からの列を使用して、TIMEタイプの属性ディメンションを作成します。

CREATE OR REPLACE ATTRIBUTE DIMENSION time_attr_dim
DIMENSION TYPE TIME
USING time_dim
ATTRIBUTES
 (year_id
   CLASSIFICATION caption VALUE 'YEAR_ID'
   CLASSIFICATION description VALUE 'YEAR ID',
  year_name
    CLASSIFICATION caption VALUE 'YEAR_NAME'
    CLASSIFICATION description VALUE 'Year',
  year_end_date
    CLASSIFICATION caption VALUE 'YEAR_END_DATE'
    CLASSIFICATION description VALUE 'Year End Date',
  quarter_id
    CLASSIFICATION caption VALUE 'QUARTER_ID'
    CLASSIFICATION description VALUE 'QUARTER ID',
  quarter_name
    CLASSIFICATION caption VALUE 'QUARTER_NAME'
    CLASSIFICATION description VALUE 'Quarter',
  quarter_end_date
    CLASSIFICATION caption VALUE 'QUARTER_END_DATE'
    CLASSIFICATION description VALUE 'Quarter End Date',
  quarter_of_year
    CLASSIFICATION caption VALUE 'QUARTER_OF_YEAR'
    CLASSIFICATION description VALUE 'Quarter of Year',    
  month_id
    CLASSIFICATION caption VALUE 'MONTH_ID'
    CLASSIFICATION description VALUE 'MONTH ID',
  month_name
    CLASSIFICATION caption VALUE 'MONTH_NAME'
    CLASSIFICATION description VALUE 'Month',
  month_long_name
    CLASSIFICATION caption VALUE 'MONTH_LONG_NAME'
    CLASSIFICATION description VALUE 'Month Long Name',
  month_end_date
    CLASSIFICATION caption VALUE 'MONTH_END_DATE'
    CLASSIFICATION description VALUE 'Month End Date',
  month_of_quarter
    CLASSIFICATION caption VALUE 'MONTH_OF_QUARTER'
    CLASSIFICATION description VALUE 'Month of Quarter',
  month_of_year
    CLASSIFICATION caption VALUE 'MONTH_OF_YEAR'
    CLASSIFICATION description VALUE 'Month of Year',
  season
    CLASSIFICATION caption VALUE 'SEASON'
    CLASSIFICATION description VALUE 'Season',
  season_order
    CLASSIFICATION caption VALUE 'SEASON_ORDER'
    CLASSIFICATION description VALUE 'Season Order')
LEVEL month
  LEVEL TYPE MONTHS
  CLASSIFICATION caption VALUE 'MONTH'
  CLASSIFICATION description VALUE 'Month'
  KEY month_id
  MEMBER NAME month_name
  MEMBER CAPTION month_name
  MEMBER DESCRIPTION month_long_name
  ORDER BY month_end_date
  DETERMINES (month_end_date,
    quarter_id,
    season,
    season_order,
    month_of_year,
    month_of_quarter)
LEVEL quarter
  LEVEL TYPE QUARTERS
  CLASSIFICATION caption VALUE 'QUARTER'
  CLASSIFICATION description VALUE 'Quarter'
  KEY quarter_id
  MEMBER NAME quarter_name
  MEMBER CAPTION quarter_name
  MEMBER DESCRIPTION quarter_name
  ORDER BY quarter_end_date
  DETERMINES (quarter_end_date,
    quarter_of_year,
    year_id)
LEVEL year
  LEVEL TYPE YEARS
  CLASSIFICATION caption VALUE 'YEAR'
  CLASSIFICATION description VALUE 'Year'
  KEY year_id
  MEMBER NAME year_name
  MEMBER CAPTION year_name
  MEMBER DESCRIPTION year_name
  ORDER BY year_end_date
  DETERMINES (year_end_date)
LEVEL season
  LEVEL TYPE QUARTERS
  CLASSIFICATION caption VALUE 'SEASON'
  CLASSIFICATION description VALUE 'Season'
  KEY season
  MEMBER NAME season
  MEMBER CAPTION season
  MEMBER DESCRIPTION season
LEVEL month_of_quarter
  LEVEL TYPE MONTHS
  CLASSIFICATION caption VALUE 'MONTH_OF_QUARTER'
  CLASSIFICATION description VALUE 'Month of Quarter'
  KEY month_of_quarter;

次の例では、PRODUCT_DIM表について説明します。

desc PRODUCT_DIM

Name            Null?    Type          
--------------- -------- ------------- 
DEPARTMENT_ID   NOT NULL NUMBER        
DEPARTMENT_NAME NOT NULL VARCHAR2(100) 
CATEGORY_ID     NOT NULL NUMBER        
CATEGORY_NAME   NOT NULL VARCHAR2(100)

次の例では、PRODUCT_DIM表からの列を使用して、STANDARDタイプの属性ディメンションを作成します。

CREATE OR REPLACE ATTRIBUTE DIMENSION product_attr_dim
USING product_dim 
ATTRIBUTES
 (department_id,
  department_name,
  category_id,
  category_name)
LEVEL DEPARTMENT
  KEY department_id
  ALTERNATE KEY department_name
  MEMBER NAME department_name
  MEMBER CAPTION department_name
  ORDER BY department_name
LEVEL CATEGORY
  KEY category_id
  ALTERNATE KEY category_name
  MEMBER NAME category_name
  MEMBER CAPTION category_name
  ORDER BY category_name
  DETERMINES(department_id)
ALL MEMBER NAME 'ALL PRODUCTS';

次の例では、GEOGRAPHY_DIM表について説明します。

desc GEOGRAPHY_DIM

Name                Null?    Type          
---------------     -------- ------------- 
DEPARTMENT_ID       NOT NULL NUMBER        
DEPARTMENT_NAME     NOT NULL VARCHAR2(100) 
CATEGORY_ID         NOT NULL NUMBER        
CATEGORY_NAME       NOT NULL VARCHAR2(100) 
REGION_ID           NOT NULL VARCHAR2(120) 
REGION_NAME         NOT NULL VARCHAR2(100) 
COUNTRY_ID          NOT NULL VARCHAR2(2)   
COUNTRY_NAME        NOT NULL VARCHAR2(120) 
STATE_PROVINCE_ID   NOT NULL VARCHAR2(120) 
STATE_PROVINCE_NAME NOT NULL VARCHAR2(400)

次の例では、GEOGRAPHY_DIM表からの列を使用して、STANDARDタイプの属性ディメンションを作成します。

CREATE OR REPLACE ATTRIBUTE DIMENSION geography_attr_dim
USING geography_dim
ATTRIBUTES
 (region_id,
  region_name,
  country_id,
  country_name,
  state_province_id,
  state_province_name)
LEVEL REGION
  KEY region_id
  ALTERNATE KEY region_name
  MEMBER NAME region_name
  MEMBER CAPTION region_name
  ORDER BY region_name
LEVEL COUNTRY
  KEY country_id
  ALTERNATE KEY country_name
  MEMBER NAME country_name
  MEMBER CAPTION country_name
  ORDER BY country_name
  DETERMINES(region_id)
LEVEL STATE_PROVINCE
  KEY state_province_id
  ALTERNATE KEY state_province_name
  MEMBER NAME state_province_name
  MEMBER CAPTION state_province_name
  ORDER BY state_province_name
  DETERMINES(country_id)
ALL MEMBER NAME 'ALL CUSTOMERS';