23、数据仓库中层次结构的建模与处理

数据仓库中层次结构的建模与处理

在数据仓库的构建和管理中,处理层次结构数据是一项关键任务。从表结构的设计到客户层次结构的存储与查询,都需要精心规划和处理,以确保数据的准确性和查询的高效性。

1. 表结构设计

传统观念认为每个实体都应有自己独立的表,但这种方式在实现桥接表和汇总报表时并不实际。以销售计划表为例,它需要为每个可能处于计划层级的实体表设置外键。在这种结构下,通常只有一个键会被填充,其他键则为空。若桥接表模仿此结构,就需要一个大型的联合查询来逐层级提取和组合计划与销售数据。

解决方案是将层次实体与产品合并到同一个表中。层次结构和SKU(库存保有单位)共享相同的代理主键,以确保唯一性。同时,表的业务键会扩展,包含行类型代码,用于区分SKU、产品组和品牌,这样行就可以被唯一识别,且业务键值只需在同一行类型内保持唯一。

当实体以这种方式组合时,识别跨实体类型的公共属性很重要。主键、行类型和业务键是适用于所有行的属性,此外,至少应使用一个描述性文本列,以便任何查询都能检索业务键的描述,而不受行类型的影响。

解决这两个问题后,构建桥接结构就变得简单,只需为SKU的每个可能父级创建桥接行对。在产品层次结构的情况下,每个SKU在该表中需要五行,分别代表部门 - SKU、品牌 - SKU、产品组 - SKU、标准产品 - SKU和SKU - SKU关系。最后一种关系通常称为标识关系,用于处理在SKU级别制定计划的情况,使SKU级别的计划能与SKU级别的销售数据关联。

2. 桥接表的更新

桥接表除了包含父子外键,还应包含生效日期和过期日期,以维护关系的历史视角。此外,应提供一个布尔(是/否)列,用于简化隔离

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值