2

我有一个问题要问大家。我首先搜索了任何现有的相同问题,但只找到了相关问题,但不是针对我的问题。所以这里是:

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

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

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

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

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

这可以吗?

4

1 回答 1

1

是的,您需要在维度表中有一个主键。

我猜 NDS 只是使用代理键设计模式来管理跨不同源系统的实体。这并不少见……这是Thomas Kejser一篇好文章,涵盖了出现的一些问题。

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

于 2012-09-09T13:01:00.340 回答