概念解释
键:键是唯一标识一个实体的一个或者多个数据属性。在物理数据库中,建可以由变的一个或者多个列组成,它们的值唯一标识关系表中的一行
自然键:由现实时间中已经存在的数据组织成的键, 字段本身具有一定的含义;例如,身份证号、员工编号等
代理键: 就是充当主键的字段本身不具有业务意义,只具有主键作用,比如自动增长的ID
比如商品,在ETL过程中,对于商品维表的每一行,可以生成一个唯一的代理键与之对应; 商品本身的自然键可能是商品ID等。其实对于前台应用系统来说,商 ID是代理键:而对于数据仓库系统来说,商品 ID 则属于自然键。
代理键优缺点
优点
使用代理键能够使数据仓库环境对操作型环境的变化进行缓冲。也就是说,当数据仓库需要对来自多个操作型系统的数据进行整合时,这些系统中的数据有可能缺乏一致的关键字编码,即有可能出现重复,这时代理关键字可以解决这个问题。
使用代理键可以带来性能上的优势。和自然关键字相比,代理关键字很小,是整型的,可以减小事实表中记录的长度。这样,同样的IO就可以读取更多的事实表记录。另外,整型字段作为外键连接的效率也很高。
使用代理键可以建立一些不存在的维度记录,例如“不在促销之列”,“日期待定”,“日期不可用”等维度记录。
使用代理键可以用来处理缓慢变化维。维度表数据的历史变化信息的保存是数据仓库设计的实施中非常重要的一部分。Kimball的缓慢变化维处理策略的核心就是使用代理键。
缺点
对于每个 表 的记录生成稳定的全局唯 一 的代理键难度很大,此处稳定指某条记 录每一 次生 成的代理键都相同
第 二个原因是,使