专注于中国的商业智能

导航

KDT#46 再谈退化维度

在维度建模的数据仓库,我们经常可以看到退化维度(Degenerate Dimension)。退化维度是事实表中的维度,由于与退化维度相关的属性在其他的分析维度表中都被建立了,所以我们不必建立物理的退化维度表,这也是称为退化维度的原因。

当我们的事实表中的粒度是单个交易时,通常都会产生退化维度,如订单中的订单号,发票中的发票号等。退化维度对事实表数据的分组有着非常重要的作用。例如:销售单编号可以将同一次销售中的多个产品关联起来。有时候,一个事实表中的退化维度可能不止一个。

退化维度的另一个重要作用是起到和数据源的数据的关联作用。通过退化维度我们可以在数据准备区中对数据进行数据质量的检测和数据完整性的检查。

通常情况,退化维度的值都是唯一的,并且字段长度也不大,所以我们不会为退化维度生成代理键。但是,如果多个数据源的退化维度的值有重复的,或者退化维度的字段长度比较大,那么我们也可以建立代理键。不过,建立代理键后,也就不是退化维度了。

在设计复查时,如果我们发现有维度表的数据的增长情况和事实表差不多,那么很有可能是我们把应该建立为退化维度的属性建立到维度表中了。

posted on 2010-08-05 13:49  李梦蛟  阅读(614)  评论(0编辑  收藏  举报