我对OLTP数据库进行规范化以用于DWH。 目前,我正在使研究小组不规范。
现在我知道您应该对OLTP的sh * t进行规范化处理,但是在这个dwh部门中,它将是一个独立的维度。这也适用于大学。从研究组添加指向部门的密钥就足够了吗?还是尽可能地进行规范化并将部门中的所有属性以及与M:1相关的表中的所有属性添加到维度研究组是否更明智?即使部门和大学将自己确定规模?
换句话说:非正规化时您走了多深?
答案 0 :(得分:1)
维模型背后的关键概念是:
因此,理想情况下,模型中应该唯一的联接是事实表和相关维之间的联接。
作为这种哲学的一部分:
最后,考虑到维度设计除了用于查询的数据优化之外,还具有第二个重要目的:它是企业的语义模型(或其代表的任何其他事物)。因此,在做出有关将数据元素组合为维度和事实的决策时,请考虑其“逻辑相似性”-它们对最终用户应具有直观意义。如果您很难向BI分析师解释维度或事实表的含义,则很可能是您犯了建模错误。
例如,在您的情况下,您应该考虑大学,系,研究组等之间的逻辑关系。大学/系很可能形成自然的等级体系。如果是这样,则它们应属于同一维度。另一方面,研究组可能不会-假设,有可能在多个大学和/或多个部门中组成研究组。如此之多:许多关系清楚地表明它们应该通过事实表来解决。此外,大学与科系之间的关系是稳定的(很少发生变化),而研究组的形成和解散则非常频繁,因此应分别建模。
通常,如果您看到维元素之间的1:1或1:M关系,通常表明它们应该被归一化到同一张表中(同样,仅当它们的组合具有逻辑意义时)。如果关系是M:M,则很可能它们属于不同的表(您可以将它们强制置于同一表中,但此类表通常看起来像科学怪人生物)。
通过使问题更加具体化,您可以获得更好的帮助-绘制尺寸模型,将其发布并询问您遇到的特定问题/挑战。对于一般概念,Kimball和Inmon的书是您最好的朋友。