【问题标题】:Is Foreign key required in Star or Snow flake schema?Star 或 Snowflake 模式中是否需要外键?
【发布时间】:2014-04-07 06:12:36
【问题描述】:

我目前正在创建数据仓库,我需要知道是否需要外键来创建星形或雪花模式?

如果没有任何外键约束..我将如何区分星型和雪花模式?

我读了这个,但我还是不明白Is it good practice to have foreign keys in a datawarehouse (relationships)?

如果没有 Fk 约束,您将如何区分星形和雪花模式?

【问题讨论】:

  • 也许这个有更好的解释LINK
  • 我不明白的链接..你能用简单的英语解释一下吗?请

标签: sql-server database data-warehouse


【解决方案1】:

不,您不需要数据仓库中的外键。

外键用于参照完整性:即“确保此列中的值存在于另一列中”。然而,大多数人在将数据放入仓库时使用他们的 ETL 工具进行参照完整性检查,因为外键会降低插入性能。

从概念上讲,表可以通过列中的值与其他表相关联,而无需外键。例如,如果 TableA 有一个 CustomerID 列,而 TableB 有一个 CustomerID 列,你可以说这些表是相关的,即使没有外键。

星型模式通常只有一个规范化级别(事实表有一些维度表,但维度表与任何其他表都不“相关”),雪花模式具有更多的规范化级别(维度表与其他表“相关”)。这就是你如何区分的方式。不使用外键。

您可能还想支持Hot-Swappable Dimensions,这会使外键变得毫无意义。

Snowflake 也可能是一种反模式,所以只需使用星型模式,不用担心。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多