在阅读业务对象的书籍时,我遇到了术语 - 事实表和维度表。这是所有数据库的标准事物,它们都有事实表和维度表,还是仅用于业务对象设计?我正在寻找一个解释,区分两者之间以及它们之间的关系。
编辑:
为什么查询不能从事实表中获取所需的数据?如果所有信息仅存储在一个事实表中会发生什么?通过创建单独的事实和维度表并加入它可以获得哪些优势?
很抱歉一次有太多问题,但我想了解相互关系和为什么。
答案 0 :(得分:9)
Dimension和Fact是OLAP数据库设计中的关键术语。
它们是许多适用于这些概念的BI工具(例如Microsft SSAS,Tableau Software)和语言(例如MDX)。
有时候很难知道数据是度量还是维度。例如,我们正在分析revenue
,这两种情况都是可能的:
net profit
,overheads
,interest
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)
这是数据仓库中具有事实表和维度表的标准。事实表包含您正在测量的数据,例如您要求的数据。维度表是包含您不希望在事实表中不断重复的数据的表,例如,产品数据,状态,客户等。它们通过键相关:在星型模式中,事实表中的每一行包含维度表中行的键。