自然键 or 代理键

本文介绍了自然键和代理键的概念,强调自然键由现实世界数据构成,而代理键仅作为主键使用。讨论了代理键在数据仓库中的优点,如缓冲变化、提高性能、处理缓慢变化维,以及缺点,如生成稳定代理键的难度和增加ETL复杂性。在阿里大数据实践中,更倾向于使用自然键,因为其较低的开发和维护成本,以及在处理缓慢变化维时采用快照表的方法。
摘要由CSDN通过智能技术生成

概念解释

键:键是唯一标识一个实体的一个或者多个数据属性。在物理数据库中,建可以由变的一个或者多个列组成,它们的值唯一标识关系表中的一行
自然键:由现实时间中已经存在的数据组织成的键, 字段本身具有一定的含义;例如,身份证号、员工编号等
代理键: 就是充当主键的字段本身不具有业务意义,只具有主键作用,比如自动增长的ID
 
比如商品,在ETL过程中,对于商品维表的每一行,可以生成一个唯一的代理键与之对应; 商品本身的自然键可能是商品ID等。其实对于前台应用系统来说,商 ID是代理键:而对于数据仓库系统来说,商品 ID 则属于自然键。
 
代理键优缺点

     优点

使用代理键能够使数据仓库环境对操作型环境的变化进行缓冲。也就是说,当数据仓库需要对来自多个操作型系统的数据进行整合时,这些系统中的数据有可能缺乏一致的关键字编码,即有可能出现重复,这时代理关键字可以解决这个问题。
使用代理键可以带来性能上的优势。和自然关键字相比,代理关键字很小,是整型的,可以减小事实表中记录的长度。这样,同样的IO就可以读取更多的事实表记录。另外,整型字段作为外键连接的效率也很高。 
使用代理键可以建立一些不存在的维度记录,例如“不在促销之列”,“日期待定”,“日期不可用”等维度记录。
使用代理键可以用来处理缓慢变化维。维度表数据的历史变化信息的保存是数据仓库设计的实施中非常重要的一部分。Kimball的缓慢变化维处理策略的核心就是使用代理键。
     缺点

对于每个 表  的记录生成稳定的全局唯 一 的代理键难度很大,此处稳定指某条记 录每一 次生 成的代理键都相同
第 二个原因是,使

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值