我目前正在创建数据仓库,我需要知道是否需要外键来创建星型或雪花模式?
如果没有任何外键约束。我将如何区分任意星图和雪花模式?
我读过这篇文章,但我还是不明白,在数据仓库(关系)中拥有外键是很好的做法吗?
如果没有Fk约束,您将如何区分星图和雪花模式?
发布于 2014-04-08 20:33:39
不,数据仓库中不需要外键。
外键用于引用完整性:即“确保该列中的值存在于另一列中”。但是,大多数人在将数据放入仓库时使用ETL工具进行引用完整性检查,因为外键会降低插入性能。
表可以通过列中的值在概念上与其他表相关联,而无需外键。例如,如果TableA有一个列CustomerID,而TableB有一个列CustomerID,您可以说这些表是相关的,即使没有外键。
星型模式通常只有一个级别的规范化(事实表有一些维度表,但维度表与任何其他表没有“关联”),雪花模式具有更多的规范化级别(维度表与其他表“相关”)。这就是你如何区分的。不是用外键。
您也可能希望支持热交换尺寸,这使得外键变得毫无意义。
雪花可能也是一种反模式,所以只需使用星型模式,而不必担心它。
https://stackoverflow.com/questions/22904807
复制相似问题