【发布时间】:2016-07-21 12:28:28
【问题描述】:
我正在阅读有关 DW 建模的内容,并开始想知道为什么要使用代理键?
我了解有时业务键不是整数,这会使生活(以及连接和索引)变得更加困难。 但是,我不明白为什么要通过添加额外的列来管理唯一标识符来解决 DW 或 RDBMS 的限制?
这种功能对 DW/RDBMS 用户是透明的,并且条目会自动从系统中获取内部标识符,这不是更合适吗?例如,创建整行或其子集的 SHA-1 摘要(可以以某种文本格式表示的那些字段)。
【问题讨论】:
-
代理键通常是 32 位长的自动递增整数。由于您必须在适用的情况下将行标识符复制为外键,因此与复制长字符串或多列相比,这通常可以节省大量空间。
-
明白。我不明白为什么 DW 用户必须担心这一点,以及为什么它没有集成 DW 或 RDBMS 软件的功能?
-
我的猜测是,RDBMS 不想在不必要的情况下强加代理键占用的额外空间。 RDBMS 提供的是一种机制,供 DB 开发人员在需要时定义此类键。
-
在为 DWH 使用 Data Vault 2.0 方法时,您实际上是使用您提供的想法创建了一个哈希摘要。
标签: data-warehouse database-administration surrogate-key