数据库 - 事实表和维度表

Jac*_*des 13 database data-warehouse business-intelligence

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

编辑:

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

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

dan*_*era 9

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

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

它们是许多使用这些概念的BI工具(例如Microsft SSAS,Tableau Software)和语言(例如MDX).

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

  • 3项措施:net profit, overheads, interest
  • 1个度量:profit1个维度 :( profit type有3个元素:净额,间接费用,利息)

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

EDITED由于问题也正在编辑:

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

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