gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 13:59:20 28 4
gpt4 key购买 nike

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

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

最佳答案

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

  • 一般来说,外键约束会在以下情况下触发:向事实表中插入、任何键更新以及从维度表中删除。

  • 在加载过程中,会删除索引和约束以加快加载过程,并由 ETL 应用程序强制执行数据完整性。

  • 加载表后,DW 本质上是只读的 - 读取时不会触发约束。

  • 加载后会重新构建任何所需的索引。

  • DW 中的删除是一个受控过程。从维度中删除行之前,会查询事实表以获取要删除的行的键 - 仅当这些键在任何事实表中都不存在时才允许删除。

为了以防万一,定期运行查询来检测事实表中的孤立记录是很常见的。

关于sql-server - 在星型模式中,事实和维度之间的外键约束是否必要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2819424/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com