维度表是否必须拥有主键?

时间:2012-09-03 12:28:51

标签: data-warehouse

我有一个问题要问你们。我首先搜索了任何现有的相同问题,但只找到了相关的问题,但没有具体到我的问题。所以这就是:

维度表有主键是否重要?我问这个是因为我设计数据仓库的方式是我在规范化数据存储上管理我的代理键。然后代理键被传递到昏暗的表格。来自源系统的任何更新都将首先反映在NDS(类型1或覆盖)上。所以基本上,我没有跟踪规范化数据存储上的历史值。但是,我会跟踪维度数据存储的更改。

因此,dim表上的代理键不由DB管理。如果源系统发生了更改,则具有相同代理键的新行,除了我选择的类型2的字段/列之外的所有内容都会发生更改。

由于dim表上没有主键,因此事实表上不会有FK约束。在使用数据集市时,这将如何影响数据仓库的性能(没有PK / FK约束的事实和昏暗表)?

以下是我的示例数据的屏幕截图:

http://i69.photobucket.com/albums/i47/boxingpics/dim_customer.jpg

这样好吗?

1 个答案:

答案 0 :(得分:1)

是的,您需要在维度表中使用主键。

我猜NDS只是使用代理键设计模式来管理不同源系统中的实体。这并不常见...... here's Thomas Kejser的一篇好文章,内容涉及一些问题。

最重要的是,如果您的NDS仅跟踪类型1更改,并且您需要跟踪数据集市中的类型2(历史)更改,那么您将需要添加一个额外的代理键。