在阅读业务对象的书籍时,我遇到了术语 - 事实表和维度表。
我想了解Dimension表和Fact表之间有什么不同?
我在互联网上阅读了几篇文章,但我无法理解。
任何简单的例子都会帮助我更好地理解?
这是为了回答这个部分:
我试图了解维度表是否也可以是事实表?
简答(INMO)是No.这是因为出于不同的原因创建了两种类型的表。但是,从数据库设计的角度来看,维度表可以将父表作为事实表的情况,该事实表始终具有维度表(或更多)作为父表。此外,可以聚合事实表,而不聚合维度表。另一个原因是事实表不应该在适当的位置更新,而维度表可以在某些情况下更新到位。
更多细节:
事实和维度表出现在通常称为星型模式的内容中。星型模式的主要目的是简化复杂的规范化表集,并将数据(可能来自不同系统)整合到一个可以非常有效的方式查询的数据库结构中。
在最简单的表单中,它包含一个事实表(例如:StoreSales)和一个或多个维表。每个Dimension条目都有0,1个或更多与之关联的事实表(维度表示例:地理,项目,供应商,客户,时间等)。具有父级的维度也是有效的,在这种情况下,模型的类型为“Snow Flake”。但是,设计人员试图避免这种设计,因为它会导致更多连接,从而降低性能。在StoreSales的示例中,地理维度可以由列(GeoID,ContenentName,CountryName,StateProvName,CityName,StartDate,EndDate)组成。
在Snow Flakes模型中,您可以为地理信息设置2个标准化表,即:内容表,国家/地区表。
您可以在Star Schema上找到大量示例。另外,看看这个以查看星型模式Inmon vs. Kimball的替代视图。 Kimbal有一个很好的论坛,您可以在这里查看:Kimball Forum。
编辑:回答有关4NF示例的评论:
销售事实(ID,BranchID,SalesPersonID,ItemID,金额,TimeID)
AggregatedSales(BranchID,TotalAmount)
这里的关系是4NF
最后一个例子相当不常见。
在数据仓库建模中,星型模式和雪花模式由Fact和Dimension表组成。
事实表:
尺寸表:
对于如何区分事实和维度表,这似乎是一个非常简单的答案!
将维度视为事物或对象可能有所帮助。诸如产品之类的东西可以存在而不会涉及商业活动。维度是你的名词。它可以独立于商业活动而存在,例如销售。产品,员工,设备都是存在的东西。维度可以做某事,也可以做一些事情。
员工出售,顾客购买。员工和客户就是维度的例子。
产品销售,它们也是尺寸,因为他们已经做了一些事情。
事实,是动词。事实表中的条目标记了维度表中发生的事件的离散事件。产品销售将记录在事实表中。销售事件将通过销售什么产品,哪个员工销售产品以及哪个客户购买产品来注明。产品,员工和客户都是描述事件和销售的维度。
此外,事实表通常还具有某种定量数据。销售数量,每件商品的价格,总价格等。
资料来源:http://arcanecode.com/2007/07/23/dimensions-versus-facts-in-data-warehousing/
我发现从一个对DB / DW术语知之甚少的人的角度来看,这个答案更容易理解。
http://databases.about.com/od/datamining/a/Facts-Vs-Dimensions.htm
我建议首先完成这个,然后通过Emmad Kareem的答案获得更多粒度。希望它有用。
超级简单的解释:
事实表:将查找ID映射到一起的数据表。通常是应用程序的核心表之一。
维度表:用于存储在事实表中频繁重复的值(例如城市名称或状态)的查找表。
阅读更多:尺寸表和事实表| |之间的区别尺寸表与事实表http://www.differencebetween.net/technology/hardware-technology/dimension-table-and-fact-table/#ixzz3SBp8kPzo
在最简单的形式中,我认为维度表就像一个“主”表 - 它保留了所有“项目”的列表,可以这么说。
事实表是描述所有事务的事务表。此外,汇总(分组)数据,如销售人员的总销售额,分支机构的总销售额 - 此类表格也可能作为独立的事实表格存在。
维度表:它只是维护有关特征日期的信息,称为维度表。
示例:时间维度,产品维度。
事实表:这只是我们可以维护有关指标或预先计算数据的信息。
示例:销售事实,订单事实。
星型模式:一个事实表链接,其中维度表格形式为起始模式。