加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql-server – 在星型模式中,事实和维度之间的外键约束是否必要

发布时间:2021-03-06 17:35:28 所属栏目:MsSql教程 来源:网络整理
导读:我第一次接触数据仓库,我想知道是否有必要在事实和维度之间设置外键约束.没有它们有什么重大缺点吗?我目前正在使用关系星型模式.在传统的应用程序中,我习惯使用它们,但我开始怀疑在这种情况下是否需要它们.我目前正在SQL Server 2005环境中工作. 更新:对于

我第一次接触数据仓库,我想知道是否有必要在事实和维度之间设置外键约束.没有它们有什么重大缺点吗?我目前正在使用关系星型模式.在传统的应用程序中,我习惯使用它们,但我开始怀疑在这种情况下是否需要它们.我目前正在SQL Server 2005环境中工作.

更新:对于那些感兴趣的人,我遇到了poll问同样的问题.

解决方法

大多数数据仓库(DW)没有将外键实现为约束,因为:

>通常,外键约束将触发:插入事实表,任何键更新以及从维表中删除.
>在加载期间,删除索引和约束以加速加载过程,ETL应用程序强制执行数据完整性.
>加载表后,DW基本上是只读的 – 约束不会在读取时触发.
>加载后重新构建所有必需的索引.
>在DW中删除是一个受控制的过程.在从维度中删除行之前,会查询事实表以查找要删除的行的键 – 只有在任何事实表中不存在这些键时才允许删除.

为了以防万一,通常会定期运行查询以检测事实表中的孤立记录.

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读