17、层次结构与雪花模型:数据库设计的权衡之道

层次结构与雪花模型:数据库设计的权衡之道

1. 无层次结构的钻取与汇总

在数据库分析中,我们可以不依赖层次结构进行钻取操作,其他形式的汇总也是如此。任何属性都可以作为有用的数据聚合方式,而不取决于它在特定层次结构中的位置。

例如,我们可以定义一个不依赖显式属性层次结构的立方体。对于某些数据模型,我们可以按品牌经理或产品颜色来汇总订单数据。在这些情况下,我们不使用层次结构级别来定义汇总,但这样的立方体所包含的细节会比基础数据模型少很多。同样,我们也可以定义一个偏离标准属性层次结构的聚合表。

注意事项

属性层次结构虽然有用,但不是钻取或汇总数据的唯一方式。我们不应让属性层次结构限制用户的分析能力,或者限制立方体和聚合的设计可能性。

2. 雪花模型的概念

2.1 雪花模型的形成

之前我们看到的星型模式由一个事实表和一组维度表组成,每个维度表直接与事实表相连。在维度设计中,并非所有属性之间的关系都通过连接来体现。具有自然关联或非易失性关系的属性,如产品和品牌,会被放在同一个维度表中,它们的关系是隐含的。

然而,对于刚接触维度设计的人来说,这种方式可能不太合适。特别是有实体 - 关系(ER)建模经验的人,可能会强烈希望对维度属性之间的关系进行建模。例如,产品表中包含品牌名称和品牌经理,它们完全由品牌代码决定。我们可以将品牌信息存储在一个单独的表中,并通过外键关系将其与产品表相连,从而使这种关系显式化。

当维度设计中维度属性之间的关系被显式化时,就形成了雪花模型。雪花模型的名称来源于其图形表示,事实表位于中心,维度表像雪花的分支一样从中心发散出来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值