无事实的事实表
不包含事实的事实表被称作无事实的事实表。虽然没有明确地记录事实,但是却能够支持度量。
- 为事件而设的无事实的事实表,记录活动的发生,虽然没有事实被明确地存储,但是这些事件能够被计算出来,产生有意义的过程度量
- 为条件而设的无事实的事实表,用来捕获有意义的信息,这些信息并不是商业活动的一部分,条件在事件点上的不同维度关联,当与活动进行比较时,可以提供有价值的见解
没有相关事实的活动能够放在无事实的事实表中进行跟踪,每一行是描述事件维度的外键集合。行的存在构成了度量。
无事实的事实表的使用
无事实的事实表中的事件能够通过计算行数来聚集,事实表中的任何列也都可以作为计数的基准。
添加事实
当无事实的事实表在追踪事件时,可以通过增加特殊事实使类似于标准事实表。该事实表总是包含值。即使是多余的,增加的列将会使读写用于分析的sql更加容易。
无事实的设计通常会成为对持续时间和开销的度量。
条件、范围或资格
无事实的事实表也可以用在不清楚对应事件活动的情况下,这些例子都描述了条件、范围或资格。它们通常不被认为是事务或者活动。它们可以按照对活动处理的方法进行建模,使用事实表。描述条件的事实通常是无事实的。
对条件建模的原因
事实表获取维度之间的关系。事实表是海量的交叉表,在特定的环境下每行关联多个维度表的实例。处于时间点的条件也关联特定环境下的维度。条件表示没有被业务活动获取的维度之间的关系。对活动研究可以通过列出条件来着色。
用于条件的无事实的事实表
可以使用无事实的事实表对条件建模。星型模式与维度关联起来,共同表示特定时间点的条件或者针对一段时间。条件、覆盖和资格应该被建模为无事实的事实表。
比较行为和条件
缓慢变化维度和条件
当使用星型模式度量条件时,维度中的类型2缓慢变化将需要添加新的事实表行。