N4. 过程处理中的事实表
一. 事实表与业务过程
维度模型描述了人们对所处世界的度量,每个星型模式都包含一个事实表,作为描述特定过程的度量.度量又称事实,通过相关的维度获得存在的环境.事实表的粒度描述了所记录的事实的细节层次.一个简单有效的规则决定了跨事实表的事实分布:为便于独立地研究,应当为每个过程建立一张事实表
关键在于:过程建模涉及功能,也就是说:一个过程可以被分解成子过程.例如,销售过程可以分解为订单录入,发货,开具发票,退货管理等几个子过程,利用前面的原则,可能会遇到复杂的情况:销售似乎是一个过程,但是该过程包含其他过程.那么对销售的分析是需要多个事实表,还是一个事实表?
对于给定的两个事实,提出两个问题:第一是这些事实同时发生吗? 第二是这些事实可用于同一个细节层次吗?如果其中任何一个问题都是否定的,就表明事实表表示不同的过程
二. 具有不同时间的事实
如果描述事件的两个或两个以上的事实不在同一时间发生,这些事实描述的就是不同的过程.如果这些事实被放入单独的事实表中,将难以对单独的过程进行分析.因此将这些事实放入不同的事实表将会使对每个过程的研究变得更加容易.当两个或更多的事实发生于不同的时间时,它们表示的是不同的过程,将它们放到同一事实表中将妨碍队单个过程的分析(作者提供了一个关于订单与发货的场景)
三. 具有不同粒度的事实
四. 从多个事实表中分析事实
横向钻取
横向钻取(交叉探查)是针对多个事实基于一致性维度进行的分析,很多时候采用融合事实表,预先存放横向钻取的结果,从而提高查询性能
横向钻取的实现
- 过程划分
- 使用临时表
- 平衡SQL
?资料有点老了
网友评论