在阅读有关业务对象的书籍时,我遇到了术语——事实表和维度表。
我试图理解什么是维度表和事实表之间的区别?
我在网上读了几篇文章,但是我不能清楚地理解。
任何简单的例子将帮助我更好地理解?
这是为了回答这个问题:
我试图理解维度表是否可以是事实表 好不好?
简短的回答(INMO)是否定的。这是因为创建这两种表的原因不同。但是,从数据库设计的角度来看,维度表可以有一个父表,而事实表总是有一个(或更多)维度表作为父表。此外,事实表可以聚合,而维度表不会聚合。另一个原因是,事实表不应该就地更新,而在某些情况下,可以就地更新维度表。
更多细节:
事实表和维度表出现在通常称为“星型架构”的内容中。星型模式的主要目的是简化复杂的规范化表集合,并将数据(可能来自不同的系统)合并到一个可以以非常有效的方式查询的数据库结构中。
在最简单的形式上,它包含一个事实表(例如: StoreSales)和一个或多个维度表。每个维度条目有0个、1个或多个与之相关的事实表(维度表的例子: 地理、项目、供应商、客户、时间等)。如果维度有一个父维度,那么它也是有效的,在这种情况下,模型的类型是“ Snow Flake”。但是,设计人员试图避免这种设计,因为它会导致更多的连接,从而降低性能。在 StoreSales 示例中,Geography 维度可以由列(GeoID、 ContentName、 CountryName、 StateProvName、 CityName、 StartDate、 EndDate)组成
在 Snow Flakes 模型中,可以有2个用于 Geo 信息的规范化表,即: Content Table,Country Table。
您可以在 Star Schema 上找到大量示例。另外,查看这个文件,可以看到星型模式 Inmon 对 Kimball上的另一个视图。Kimbal 有一个很好的论坛,你可能也想看看这里: Kimball 论坛。
编辑: 回答关于4NF 示例的评论:
销售事实(ID,BranchID,SalesPersonID,ItemID,金额,时间 ID)
总销售额(BranchID,TotalAmount)
这里的关系是4NF
最后一个例子相当罕见。
阅读更多: 维度表和事实表 | 维度表与事实表之间的差异 http://www.differencebetween.net/technology/hardware-technology/dimension-table-and-fact-table/#ixzz3SBp8kPzo
这似乎是关于如何区分事实表和维度表的一个非常简单的答案!
把维度想象成事物或物体可能会有帮助 作为一个产品可以存在,而从来没有涉及到一个企业 事件。维度是你的名词。它是可以存在的东西 独立于商业活动,如销售。产品、雇员、, 设备,是所有存在的东西。一个维度要么 或者有人对它做了什么。 员工销售,客户购买。员工和客户的例子 维度,它们确实是。 产品是销售,他们也是尺寸,因为他们有东西 对他们做了什么。 事实是动词。事实表中的条目标记一个离散事件 发生在维度表中的事情。产品销售 会被记录在一个事实表中。出售的事件将是 记录销售了什么产品,哪个员工销售了产品,以及 产品、员工和客户都是尺寸 描述事件,销售情况。 此外,事实表还通常具有某种定量的 数据。销售数量,每个项目的价格,总价格,等等。
把维度想象成事物或物体可能会有帮助 作为一个产品可以存在,而从来没有涉及到一个企业 事件。维度是你的名词。它是可以存在的东西 独立于商业活动,如销售。产品、雇员、, 设备,是所有存在的东西。一个维度要么 或者有人对它做了什么。
员工销售,客户购买。员工和客户的例子 维度,它们确实是。
产品是销售,他们也是尺寸,因为他们有东西 对他们做了什么。
事实是动词。事实表中的条目标记一个离散事件 发生在维度表中的事情。产品销售 会被记录在一个事实表中。出售的事件将是 记录销售了什么产品,哪个员工销售了产品,以及 产品、员工和客户都是尺寸 描述事件,销售情况。
此外,事实表还通常具有某种定量的 数据。销售数量,每个项目的价格,总价格,等等。
来源: Http://arcanecode.com/2007/07/23/dimensions-versus-facts-in-data-warehousing/
在数据仓库建模中,星型模式和 雪花模式由 事实和 尺寸表组成。
事实表:
维度表:
图像来源图像来源
在最简单的形式中,我认为维度表类似于“ Master”表——可以说,它保存了所有“项”的列表。
事实表是描述所有事务的事务表。此外,按销售人员分列的总销售额、按分支机构分列的总销售额等聚合(分组)数据也可以作为独立的事实表存在。
维度表: 它没有什么,但是我们可以维护有关特征日期的信息称为维度表。
示例: 时间维度、产品维度。
事实表: 它没有什么,但我们可以维护关于指标或预计算数据的信息。
例如: 销售事实,订单事实。
星型模式: 一个事实表链接,维度表格形式作为开始模式。
在此输入图像描述
超级简单的解释:
事实表: 将查找 ID 映射在一起的数据表。通常是应用程序的中心主表之一。
维度表: 一个查找表,用于存储在事实表中经常重复的值(如城市名称或状态)。
尺寸表 维度表是一个包含存储在事实表中的度量属性的表。此表由层次结构、类别和逻辑组成,可用于遍历节点。
事实表 包含业务流程的度量,并且它包含维度表的外键。
例子-如果业务流程是制造砖块
一个人/机器生产的平均砖块数量-业务过程的计量
在我看来,
对于关系数据库用户,“维度”等同于“主表”。 事实等价于事务表。
然后..。
真正有趣的事情是决定一个属性应该是一个维度还是一个事实。例如,订单中每个项目的价格,或者合同中记录的保险的最大金额。没有通常正确的方法来处理这些问题,只有那些在上下文中有意义的方法。
附言: 如果我要创造这些术语,我更喜欢 日志表和 对象表。