在星型模式表设计中包含关系是否有任何好处?

rry*_*man 2 sql ssis star-schema business-intelligence

我正在为当前使用SQL Server,SSIS和SSAS的数据仓库设计Fact和Dimension表.通过将维度和事实表之间的关系编程到SQL中,我能获得任何真正的好处吗?或者我最好只是在创建立方体时手动定义关系?

如果我对数据插入表中没有任何约束,那么加载和转换数据似乎更容易,因此忽略了关系.

And*_*erd 6

我将"编程关系"解释为将外键约束放在表上的含义.

不,在数据仓库中,您不应对事实表强加主键或外键约束.

您已经提到了一些问题,另一个问题是这些约束在插入行时会产生性能开销,这会使ETL过程变得更加昂贵.

对于只有交易数据库设计经验的人来说,这可能与他们所学到和经历过的一切相悖.外键约束对于您有多个进程同时修改数据的数据库至关重要.尽管开发人员付出了最大的努力,但是有两个进程以某种方式搞砸了数据的风险.约束是一个至关重要的安全网.

在维度模型中,数据库仅由一个ETL过程填充,并且以高度可控的方式填充.这显着降低了数据被破坏的风险,使得额外的约束成本不值得.