如何理解退化维度

研究维度建模的时候会遇到一个退化维度的概念,看原文也没有具体的例子,过于抽象。原文摘取如下:

 于是我有翻阅了百科,想搞清楚这个概念

退化维度(Degenerate Dimension,DD),就是那些看起来像是事实表的一个维度关键字,但实际上并没有对应的维度表,其中,事实表的粒度就是文档本身或文档中的一个分列项。 具体怎么理解呢?在传统的父子关系型数据库中,事务编号是事物标题记录的关键字,比如订单编号、发票编号,这样的纪录包含了诸如事务日期、供应商标示这样在总体上对事务有效的所有信息。但在给出的维度模型中,已经将这些令人感兴趣的标题信息抽取出来放到其它维度中去了。但这个事务编号仍然十分有用,因为它可以作为组关键字而将单个事务中处理的明细集中在一起。
尽管这个事务维度看起来是一个维度关键字,但当把事务维度所有的描述性项目进行剔出后,形成维度为空。诸如这种事务编号、固有的操作型票据编号,应该自然的放入事实表中,而不用连接到维度表。退化维度在事实表粒度表示单个事务或事务分列项目时是很常见的,因为它标示父实体的惟一标示。订单号,发票号与提货单编号等几乎总是以退化维度的形式出现在维度模型之中。
同时,退化维度在事实表主关键字方面也有一定作用。比如将订单事实表主关键字可以由退化的订单编号和产品组关键字组成。

看过后依然是一脸懵的。 然后继续百度各篇文章,我怀疑是不是金波老爷子(kimball)本身维度概念建模概念存在的问题。我理解维度建模的一个星型模型里面,中间的是事实表,周围的都是维度表,按照这个标准,是不存在事实表直接跟事实表关联的。

但实际业务中,事实表跟维度表的定义我觉得就不是个绝对的。这个事实表A可能是另一个事实表B的维度表。为了不违背一个表不能既是事实表又是维度表的问题。所以可能会单独建一张维度表来给那个想要直接关联另一张事实表A的事实表B来关联,但如果建这样一张维度表。里面的数据其实都是冗余的。或者都映射到事实表A去就可以了。那么是不是相当于这个虚的维表就是退化到了事实表A里面呢?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值