事实表和维度表的区别?

在阅读有关业务对象的书籍时,我遇到了术语——事实表和维度表。

我试图理解什么是维度表和事实表之间的区别?

我在网上读了几篇文章,但是我不能清楚地理解。

任何简单的例子将帮助我更好地理解?

361211 次浏览

这是为了回答这个问题:

我试图理解维度表是否可以是事实表 好不好?

简短的回答(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 示例的评论:

  • 违反4NF 的事实表示例:

销售事实(ID,BranchID,SalesPersonID,ItemID,金额,时间 ID)

  • 不违反4NF 的事实表示例:

总销售额(BranchID,TotalAmount)

这里的关系是4NF

最后一个例子相当罕见。

  1. 事实表主要由业务事实和引用维度表中主键的外键组成。维度表主要由描述性属性组成,这些属性是文本字段。
  2. 维度表包含代理键、自然键和一组属性。相反,事实表包含外键、度量值和退化维度。
  3. 维度表为事实表的度量提供描述性或上下文信息。另一方面,事实表提供了企业的度量。
  4. 当比较两个表的大小时,事实表比维度表大。在比较表中,显示的维数多于事实表。在事实表中,观察到的事实数量较少。
  5. 必须先加载维度表。在加载事实表时,必须查看维度表。这是因为事实表具有度量值、事实和外键,它们是维度表中的主键。

阅读更多: 维度表和事实表 | 维度表与事实表之间的差异 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/

在数据仓库建模中,星型模式雪花模式事实尺寸表组成。

事实表:

  • 它包含维度的所有主键和关联的 事实或度量(可以用来计算的财产) ,如销售量、销售量和平均销售量。

维度表:

  • 维度表为事实表中记录的所有度量值提供描述性信息。
  • 作为事实表的比较,维数相对非常小。
  • 常用的尺寸是人、产品、地点和时间。

enter image description here

图像来源图像来源

在最简单的形式中,我认为维度表类似于“ Master”表——可以说,它保存了所有“项”的列表。

事实表是描述所有事务的事务表。此外,按销售人员分列的总销售额、按分支机构分列的总销售额等聚合(分组)数据也可以作为独立的事实表存在。

维度表: 它没有什么,但是我们可以维护有关特征日期的信息称为维度表。

示例: 时间维度、产品维度。

事实表: 它没有什么,但我们可以维护关于指标或预计算数据的信息。

例如: 销售事实,订单事实。

星型模式: 一个事实表链接,维度表格形式作为开始模式。

在此输入图像描述

超级简单的解释:

事实表: 将查找 ID 映射在一起的数据表。通常是应用程序的中心主表之一。

维度表: 一个查找表,用于存储在事实表中经常重复的值(如城市名称或状态)。

尺寸表 维度表是一个包含存储在事实表中的度量属性的表。此表由层次结构、类别和逻辑组成,可用于遍历节点。

事实表 包含业务流程的度量,并且它包含维度表的外键。

例子-如果业务流程是制造砖块

一个人/机器生产的平均砖块数量-业务过程的计量

在我看来,

  • 维度表: 主数据
  • 事实表: 事务数据

对于关系数据库用户,“维度”等同于“主表”。 事实等价于事务表。

  • 一个事实 = 一个 开拍: 一个销售,一个交易,一个访问
  • 一个维度 = 一个 对象: 一个卖家,一个顾客,一个日期,一个价格

然后..。

  • 事实参考尺寸: 时间,地点,什么,谁,如何

真正有趣的事情是决定一个属性应该是一个维度还是一个事实。例如,订单中每个项目的价格,或者合同中记录的保险的最大金额。没有通常正确的方法来处理这些问题,只有那些在上下文中有意义的方法。

附言: 如果我要创造这些术语,我更喜欢 日志表对象表