Fact表和Dimension表之间的区别?

时间:2013-11-17 22:16:24

标签: database data-warehouse business-intelligence fact-table

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

我试图了解Dimension表和Fact表之间有什么不同?

我在互联网上阅读了几篇文章,但我无法理解......

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

10 个答案:

答案 0 :(得分:80)

对于如何区分事实和维度表,这似乎是一个非常简单的答案!

  

将维度视为事物或对象可能会有所帮助。这样的事情   因为产品可以存在而不必参与业务   事件。维度是你的名词。这是可以存在的东西   独立于商业活动,例如销售。产品,员工,   设备,都是存在的东西。维度也可以   某事,或做了些什么。

     

员工出售,顾客购买。员工和客户就是例子   尺寸,他们这样做。

     

产品销售,它们也是尺寸,因为它们有一些东西   对他们做了。

     

事实,是动词。事实表中的条目标记离散事件   从维度表中发生的事情。产品销售   将被记录在事实表中。出售事件将是   通过销售什么产品,哪个员工卖掉它,以及哪个产品销售   顾客买了它。产品,员工和客户都是各个方面   描述事件,即销售。

     

此外,事实表通常也有某种定量   数据。销售数量,每件商品价格,总价格等。

来源: http://arcanecode.com/2007/07/23/dimensions-versus-facts-in-data-warehousing/

答案 1 :(得分:77)

在数据仓库建模中,星型架构雪花架构事实维度表组成。

事实表:

  • 它包含维度的所有主键并关联 事实或措施(可以进行计算的财产),如销售数量,销售量和平均销售额。

维度表:

  • 尺寸表提供了事实表中记录的所有测量值的描述性信息。
  • 与事实表相比,尺寸相对较小。
  • 常用的尺寸是人,产品,地点和时间。

enter image description here

image source

答案 2 :(得分:35)

这是为了回答这个部分:

  

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

简答题(INMO)是否。这是因为出于不同原因创建了两种类型的表。但是,从数据库设计的角度来看,维度表可以将父表作为事实表的情况,该事实表始终具有维度表(或更多)作为父表。此外,可以聚合事实表,而不聚合维度表。另一个原因是事实表不应该在适当的位置更新,而维度表可以在某些情况下更新到位。

更多详情:

事实和维度表出现在通常所说的星型模式中。星型模式的主要目的是简化复杂的规范化表集,并将数据(可能来自不同系统)整合到一个可以非常有效的方式查询的数据库结构中。

在最简单的表单中,它包含一个事实表(例如:StoreSales)和一个或多个维表。每个Dimension条目都有0,1个或更多与之关联的事实表(维度表示例:地理,项目,供应商,客户,时间等)。具有父级的维度也是有效的,在这种情况下,模型的类型为“Snow Flake”。但是,设计人员试图避免这种设计,因为它会导致更多连接,从而降低性能。在StoreSales的示例中,Geography维度可以由列(GeoID,ContenentName,CountryName,StateProvName,CityName,StartDate,EndDate)组成

在Snow Flakes模型中,您可以为地理信息设置2个规范化表格,即:内容表,国家/地区表。

您可以在Star Schema上找到大量示例。另外,请检查此信息以查看星型模式模型Inmon vs. Kimball的替代视图。 Kimbal有一个很好的论坛,你可能还想看看这里:Kimball Forum

编辑:回答有关4NF示例的评论:

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

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

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

AggregatedSales(BranchID,TotalAmount)

这里的关系是4NF

最后一个例子并不常见。

答案 3 :(得分:6)

我发现从一个对DB / DW术语知之甚少的人的角度来看,这个答案更容易理解。

http://databases.about.com/od/datamining/a/Facts-Vs-Dimensions.htm

我建议先通过这个,然后再仔细阅读Emmad Kareem的答案。希望它有所帮助。

答案 4 :(得分:1)

  1. 事实表主要由业务事实和引用维表中主键的外键组成。维度表主要由作为文本字段的描述性属性组成。
  2. 维度表包含代理键,自然键和一组属性。相反,事实表包含外键,测量值和退化维度。
  3. 维度表为事实表的度量提供描述性或上下文信息。另一方面,事实表提供了企业的度量。
  4. 比较两个表的大小时,事实表大于维表。在比较表中,呈现的维度多于事实表。在事实表中,观察到的事实数量较少。
  5. 必须先加载维度表。在加载事实表时,应该查看维度表。这是因为事实表具有作为维度表中主键的度量,事实和外键。
  6. 阅读更多:维度表和事实表| |之间的区别维度表与事实表http://www.differencebetween.net/technology/hardware-technology/dimension-table-and-fact-table/#ixzz3SBp8kPzo

答案 5 :(得分:1)

在最简单的形式中,我认为维度表就像一个“主”表 - 它保留了所有“项目”的列表,可以这么说。

事实表是描述所有事务的事务表。此外,汇总(分组)数据,如销售人员的总销售额,分支机构的总销售额 - 此类表格也可能作为独立的事实表格存在。

答案 6 :(得分:1)

超级简单的解释:

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

维度表:用于存储事实表中经常重复的值(例如城市名称或州)的查找表。

答案 7 :(得分:0)

维度表 维表是包含事实表中存储的度量属性的表。该表包含可用于遍历节点的层次结构,类别和逻辑。

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

示例–如果业务流程是砖块制造

一个人/一台机器生产的平均砖块数量–业务流程的度量

答案 8 :(得分:0)

在我看来,

  • 维度表:主数据
  • 事实表:交易数据

答案 9 :(得分:-3)

维度表:它只是维护有关称为维度表的特征日期的信息。

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

事实表:我们可以维护有关指标或预先计算数据的信息。

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

星型模式:一个事实表链接,其中维度表格形式为起始架构。

enter image description here