数据库 - 事实表和维度表

时间:2012-02-20 14:37:04

标签: database data-warehouse business-intelligence

在阅读业务对象的书籍时,我遇到了术语 - 事实表和维度表。这是所有数据库的标准事物,它们都有事实表和维度表,还是仅用于业务对象设计?我正在寻找一个解释,区分两者之间以及它们之间的关系。

编辑:

为什么查询不能从事实表中获取所需的数据?如果所有信息仅存储在一个事实表中会发生什么?通过创建单独的事实和维度表并加入它可以获得哪些优势?

很抱歉一次有太多问题,但我想了解相互关系和为什么。

2 个答案:

答案 0 :(得分:9)

DimensionFactOLAP数据库设计中的关键术语。

  • 事实表包含可以聚合的数据。
  • 度量是聚合数据表达式(e。成本总和,呼叫计数,......)
  • 维度包含用于生成组和过滤器的数据。
  • 没有维度数据的事实表是无用的。一个样本:“订单总和是1M”不是信息,而是“2005年到2009年的订单总和”。

它们是许多适用于这些概念的BI工具(例如Microsft SSASTableau Software)和语言(例如MDX)。

有时候很难知道数据是度量还是维度。例如,我们正在分析revenue,这两种情况都是可能的:

  • 3项措施net profitoverheadsinterest
  • 1次profit 1维profit type(包含3个元素:净额,间接费用,利息)

BI分析师决定每种解决方案的最佳设计。

已编辑,因为该问题也正在编辑中:

OLAP解决方案通常具有语义层。该层向OLAP工具提供有关以下内容的信息:哪些元素是事实数据,哪些元素是维度数据和表关系。与OLTP系统不同,OLAP数据库不需要正确规范化。因此,您可以从包括事实表的多个表中获取维度数据。从事实表中获取数据的维度名为Fact Dimension or Degenerate dimension

在设计OLAP数据库时,您应该记住很多概念:“STAR Schema”,“SNOWFLAKE Schema”,“Surrogate keys”,“parent-child hierarchyies”,...

答案 1 :(得分:0)

这是数据仓库中具有事实表和维度表的标准。事实表包含您正在测量的数据,例如您要求的数据。维度表是包含您不希望在事实表中不断重复的数据的表,例如,产品数据,状态,客户等。它们通过键相关:在星型模式中,事实表中的每一行包含维度表中行的键。