Oracle8i SQL Reference Release 3 (8.1.7) Part Number A85397-01 |
|
SQL Statements:
CREATE CLUSTER to CREATE SEQUENCE, 7 of 25
Use the CREATE
DIMENSION
statement to create a dimension. A dimension defines a parent-child relationship between pairs of column sets, where all the columns of a column set must come from the same table. However, columns in one column set (or "level") can come from a different table than columns in another set. The optimizer uses these relationships with materialized views to perform query rewrite. The Summary Advisor uses these relationships to recommend creation of specific materialized views.
Note: Oracle does not automatically validate the relationships you declare when creating a dimension. To validate the relationships specified in the |
See Also:
|
To create a dimension in your own schema, you must have the CREATE
DIMENSION
system privilege. To create a dimension in another user's schema, you must have the CREATE
ANY
DIMENSION
system privilege. In either case, you must have the SELECT
object privilege on any objects referenced in the dimension.
schema
Specify the schema in which the dimension will be created. If you do not specify schema
, Oracle creates the dimension in your own schema.
dimension
Specify the name of the dimension. The name must be unique within its schema.
level_clause
The level_clause
defines a level in the dimension. A level defines dimension hierarchies and attributes.
hierarchy_clause
The hierarchy_clause
defines a linear hierarchy of levels in the dimension. Each hierarchy forms a chain of parent-child relationships among the levels in the dimension. Hierarchies in a dimension are independent of each other. They may (but need not) have columns in common.
Each level in the dimension should be specified at most once in this clause, and each level must already have been named in the level_clause
.
join_clause
The join_clause
lets you specify an inner equijoin relationship for a dimension whose columns are contained in multiple tables. This clause is required and permitted only when the columns specified in the hierarchy are not all in the same table.
Restrictions:
child_key_columns
must be non-null and the parent key must be unique and non-null. You need not define constraints to enforce these conditions, but queries may return incorrect results if these conditions are not true.
parent_level
table.
child_key_columns
cannot be in the same table as parent_level
).
attribute_clause
The attribute_clause
lets you specify the columns that are uniquely determined by a hierarchy level. The columns in level
must all come from the same table as the dependent_columns
. The dependent_columns
need not have been specified in the level_clause
.
For example, if the hierarchy levels are city
, state
, and country
, then city
might determine mayor
, state
might determine governor
, and country
might determine president
.
CREATE
DIMENSION
Example
This statement creates a time
dimension on table time_tab
, and creates a geog
dimension on tables city
, state
, and country
.
CREATE DIMENSION time LEVEL curDate IS time_tab.curDate LEVEL month IS time_tab.month LEVEL qtr IS time_tab.qtr LEVEL year IS time_tab.year LEVEL fiscal_week IS time_tab.fiscal_week LEVEL fiscal_qtr IS time_tab.fiscal_qtr LEVEL fiscal_year IS time_tab.fiscal_year HIERARCHY month_rollup ( curDate CHILD OF month CHILD OF qtr CHILD OF year) HIERARCHY fiscal_year_rollup ( curDate CHILD OF fiscal_week CHILD OF fiscal_qtr CHILD OF fiscal_year ) ATTRIBUTE curDate DETERMINES (holiday, dayOfWeek) ATTRIBUTE month DETERMINES (yr_ago_month, qtr_ago_month) ATTRIBUTE fiscal_qtr DETERMINES yr_ago_qtr ATTRIBUTE year DETERMINES yr_ago ; CREATE DIMENSION geog LEVEL cityID IS (city.city, city.state) LEVEL stateID IS state.state LEVEL countryID IS country.country HIERARCHY political_rollup ( cityID CHILD OF stateID CHILD OF countryID JOIN KEY city.state REFERENCES stateID JOIN KEY state.country REFERENCES countryID);
|
![]() Copyright © 1996-2000, Oracle Corporation. All Rights Reserved. |
|