【问题标题】:Is this example a violation of star schema?这个例子是否违反了星型模式?
【发布时间】:2020-04-28 23:52:10
【问题描述】:

我正在数据仓库中构建一个简单的星型模式,其中包含两个基于业务实体的维度:dim_loan 和 dim_borrower。还有一些事实表,例如fact_loan_status,每个月有一行显示当时的余额,并有一个FK回dim_loan。

所以这是我的问题:如果dim_loan 有一个用于borrower_id 的FK 回到dim_borrower,这是否违反星型模式?几乎所有关于星型模式的讨论都围绕着单独的暗表,这些暗表只与事实表有 FK 关系,而不是其他暗表。对于这种简单的一对一关系,制作 fact_loan_borrower 对我来说没有意义。

欢迎任何建议!

【问题讨论】:

    标签: database data-modeling data-warehouse


    【解决方案1】:

    如果 dim_borrower 和 dim_loan 具有相同的基数,那么在 fact_loan_borrower 中保留两个 id(loan_id、borrower_id)将有助于您获得性能。您只需要一个join就可以从各个维度带来借款人或贷款信息。如果您在 dim_loan 中将borrower_id 保留为FK,则需要使用两个连接才能提供借款人信息。

    如果两个维度具有不同的基数,那么将具有低基数的维度附加到事实表是明智的 - 这将有助于保持事实表较小。

    星型和雪花模式的选择完全取决于您。

    【讨论】:

      猜你喜欢
      • 2018-10-06
      • 2012-01-25
      • 2010-10-05
      • 1970-01-01
      • 2020-02-03
      • 2019-05-04
      • 1970-01-01
      • 2014-02-15
      • 2010-11-29
      相关资源
      最近更新 更多