问几个CUBE问题 10分一题
1 维度表的层级关系如何体现?
例如 时间维度
ID 年 月 日 等字段
例如 产品维度
ID 大类 小类
如何在一张表里面体现出层级关系?
难道是第一个字段是后面字段的汇总 这既是层级?
2 我理解CUBE多维是这样
如果只有一个事实表 一个维度表
那它其实还是个关系数据查询
如果多个维度表 那它是 多个关系数据查询的组合
不是是不是这样 能否有例子反驳我
3 维度属性 是不是就是对应着维度表中的字段?
[解决办法]
1 维度表的层级关系如何体现?
例如 时间维度
ID 年 月 日 等字段
例如 产品维度
ID 大类 小类
如何在一张表里面体现出层级关系?
难道是第一个字段是后面字段的汇总 这既是层级?
-----------------------------
时间维在仓库中是在建维时可以指定层级.
如:年/季/月/日
年/周/日
等
对于产品维,如果维度是平衡的,可以指定层次表示.这个层次AS一般可以自动给你找出来.
如果不平衡,可以用父子维.
2 我理解CUBE多维是这样
如果只有一个事实表 一个维度表
那它其实还是个关系数据查询
如果多个维度表 那它是 多个关系数据查询的组合
不是是不是这样 能否有例子反驳我
--------------------------------
无论维度的多少,仓库与数据库之间的差异还是很大的.就算是一个维度表,层度之前的层次在更新CUBE时在仓库中就已你指定的方式(求和,数量,最大值...等)合计好.而数据仓是动态的,即时的.在查询效率上无法与数据仓库比较.
另:数据库是平面的,仓库是立体的.
3 维度属性 是不是就是对应着维度表中的字段?
--------------------------------------------
维度属性是指 Member Properties 还是指维本身的属性?
如果是前者,Member Properties对应一个度维.
如果是后者,某此属性可以对应维度表中的字段.
[解决办法]
1 维度表的层级关系如何体现?
例如 时间维度
ID 年 月 日 等字段
例如 产品维度
ID 大类 小类
如何在一张表里面体现出层级关系?
难道是第一个字段是后面字段的汇总 这既是层级?
我的理解:简单来说,层次关系可以通过层次关系维度表(dimension table)+查找表(lookup table)作为设计方法。
一个例子我们从这个例子得出,维度表定义了层次关系,而每个层次的查找表就是各个层次。
2 我理解CUBE多维是这样
如果只有一个事实表 一个维度表
那它其实还是个关系数据查询
如果多个维度表 那它是 多个关系数据查询的组合
不是是不是这样 能否有例子反驳我
我的理解:这要看物理数据库的建模方法,我们知道DW的建模方法主要有2种。一种是大家都在用Dimension Model,它的创建者是Ralph。这种模型更易于理解Business,但是这种模型在RDBMS上的实现性能效率很低,说白一点,这个理论上很好的一种建模方法,但是基于目前关系型数据库不可替代的地位,物理实施上存在缺陷。第二种就是我们熟悉的3NF建模,这种建模方法也是DW之父Bill Inmon推崇的建模方法,同样也是当前DW industry老大Teradata推荐的物理模型方法,因为3NF在实现基于RDBMS的DW效率很高。LZ提的问题应该是基于3NF建模的表,这样的话,LZ可以这么理解。
[解决办法]
楼上的解答:分3层,父层:年,子层:月,孙子层:日
年:所以09年的销量汇总
月:1-12月的汇总
日:每天的汇总
如:
时间维 销量
-09年 25
-1月 5
+1日 3
+2日 2
。
。
。