数据库 - 事实表和维度表
在阅读业务对象的书籍时,我遇到了术语 - 事实表和维度表。这是所有数据库的标准事物,它们都有事实表和维度表,还是仅用于业务对象设计?我正在寻找解释,区分两者之间以及它们之间的关系。数据库 - 事实表和维度表
编辑:
为什么不能查询一下就从事实表所需的数据?如果所有的信息都存储在一张事实表中,会发生什么?通过创建一个单独的事实和维度表并加入它可以获得什么好处?
对不起,一次有太多的问题,但我想知道有关的相互关系和whys。
Dimension and Fact是OLAP数据库设计中的关键术语。
- 事实表包含可以聚合的数据。
- 度量值是汇总的数据表达式(例如成本总和,调用次数...)
- 维度包含用于生成组和过滤器的数据。
- 没有尺寸数据的情况表是无用的。样品:“订单总数为1M”不是信息,而是“2005年至2009年的订单总数”。
他们有很多与这些概念(例如Microsft SSAS,Tableau Software)和语言(如MDX)工作的BI工具。
有时候不容易知道数据是度量还是维数。例如,我们正在分析revenue
,这两种情况都是候选条件:
-
3措施:
net profit
,overheads
,interest
-
1量度:
profit
和1维:profit type
(具有3个元素:净额,开销,利息)
该BI分析师我谁决定什么是每个解决方案的最佳设计。
EDITED由于问题也正在编辑:
的OLAP溶液通常具有语义层。此图层向OLAP工具提供有关以下内容的信息:哪些元素是事实数据,哪些元素是维度数据和表关系。与OLTP系统不同,OLAP数据库不需要正确标准化。出于这个原因,您可以从包括事实表在内的多个表中获取维度数据。从事实表获取数据的维度被命名为Fact Dimension or Degenerate dimension。
他们有很多的设计OLAP数据库时,你应该记住的概念:“星型模式”,“雪花模式”,“代理键”,“父子层次结构”,...
这是数据仓库中具有事实表和维度表的标准。事实表包含您正在测量的数据,例如您正在求和的数据。维度表是包含您不希望在事实表中不断重复的数据的表格,例如产品数据,状态,客户等。它们通过键相关联:在星型模式中,事实表中的每一行包含维表中的一行的关键字。
不这意味着数据库设计人员在设计数据库时应该分别创建事实表和维度表? – 2012-02-20 15:42:57
是的,分别创建它们。如果事实数据表中包含所有维度数据,那么事实数据表将会大于它所需的数据量。虽然数据仓库应该被取消归一化,但是您可能不应该将其归一化至只剩下一个表的程度。 – 2012-02-24 13:37:42
请看我更新的问题。我很感激你的回答,但我想知道更多一点。 – 2012-02-20 16:05:41
好的,重新阅读答案。 – danihp 2012-02-20 16:17:41