Oracle Dimension Object

来源:互联网 发布:大学网课软件 编辑:程序博客网 时间:2024/05/16 08:01

介绍

创建Dimension的好处是可以支持更高级的Query Rewrite,钻取(Drill down)和聚合(Roll up)。定义了Dimension后,Oracle将能够重用物化视图中的信息,去做出聚合(roll up)或钻取(drill down).
在非范式模型中,上下级关系通常保存在同一个表中,Dimension相应的定义在一个表上。在三范式模型中,上下级关系通常在多个表中,也可以定义Dimension。

例子

下面给出一个非范式模型中的一个例子,你可以在Oracle自带的SH Schema中找到:

CREATE DIMENSION products_dim
LEVEL product IS (products.prod_id)
LEVEL subcategory IS (products.prod_subcategory)
LEVEL category IS (products.prod_category)
HIERARCHY prod_rollup (
product CHILD OF
subcategory CHILD OF
category)
ATTRIBUTE product DETERMINES (products.prod_name, products.prod_desc,  prod_weight_class, prod_unit_of_measure, prod_pack_size, prod_status, prod_list_price, prod_min_price) 
ATTRIBUTE subcategory DETERMINES (prod_subcategory, prod_subcategory_desc) 
ATTRIBUTE category DETERMINES (prod_category, prod_category_desc);

说明:
  • 下级必须有且只有一个上级。比如说某个product只能属于一个subcategory.
  • attribute xxx determines (yyyy)是单向的,即一个xxx对应只有一个yyyy,请注意不是有且只有。
0 0