首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >去甲基化有多深?

去甲基化有多深?
EN

Stack Overflow用户
提问于 2019-05-09 07:51:39
回答 1查看 46关注 0票数 1

我取消了一个OLTP数据库在DWH中的使用。目前我正在取消学习小组的职务。

  • 每个学习小组都有一个指向一个项目的键。
  • 每个项目都有一个指向一个部门的键。
  • 每个系都有一个指向1所大学的钥匙。
  • 每所大学都有一个指向一个城市的钥匙。

现在,我知道您应该将sh*非公开OLTP,但是在这个dwh部门中,它将是一个维度。这也适用于大学。添加学习组指向部门的键足够了吗?还是尽可能地将部门的所有属性和M:1相关表中的所有属性添加到维度学习组更明智?即使是在什么时候,系和大学都将是独立的维度?

换句话说,当你去有机化的时候,你会走多深?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-09 08:41:51

维模型背后的关键概念是:

  • 保持你的事实表格在3NF (第三范式);
  • 将你的维度去规范化为2NF (第二范式)

因此,理想情况下,您应该在模型中拥有的唯一连接是事实表和相关维度之间的连接。

作为这一哲学的一部分:

  • 避免“雪花”设计,尺寸包含其他尺寸的钥匙。始终有可能提出一个数据模型,允许与雪花相同的功能,而不违反3NF/2NF规则;
  • 没有任何直接连接之间的两个独立的维度(即部门和学习小组)直接。各维度之间的所有关系必须通过事实表来解决;
  • 在两个独立的事实表之间从来没有任何直接连接。事实表格之间的任何关系都必须通过共享维度来解决。

最后,考虑到除了为查询优化数据之外,维度设计还有第二个重要目的:它是业务的语义模型(或它所代表的其他任何东西)。因此,在做出将数据元素组合成维度和事实的决策时,要考虑到它们的“逻辑亲和力”--它们应该对最终用户具有直观的意义。如果您很难向BI分析师解释维度或事实表的含义,那么您很可能犯了建模错误。

例如,在你的案例中,你应该考虑大学、部门、学习小组等之间的逻辑关系。大学/系很可能形成一个自然的层次结构。如果是这样的话,它们应该属于同一个维度。另一方面,学习小组可能不会--让我们假设,有可能在多个大学和/或多个系组成学习小组。如此之多:许多关系清楚地表明,它们应通过事实表加以解决。此外,大学和系之间的关系是稳定的(很少变化),而学习小组的形成和解散非常频繁,因此应该单独建模。

通常,如果您看到维度元素之间的1:1或1:M关系,则通常表示它们应该被非规范化为同一表(同样,只有当它们的组合具有逻辑意义时)。如果关系是M:M,它们很可能属于不同的表(您可以强迫它们放在同一个表中,但这类表通常看起来像弗兰肯斯坦生物)。

通过使您的问题更加具体,您可以得到更好的帮助--绘制您的维度模型,发布它,并询问特定的问题/挑战。对于一般概念,金球和因蒙的书籍是你最好的朋友。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56054646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档