KDT#13 可以作为维度表使用的事实表
事实表从粒度的角度分为三种,分别是交易粒度事实表、周期快照事实表和累计快照事实表。
交易粒度事实表能提供某个确切时刻的描述信息。以银行帐户中保存的客户信息为例来说,代理机构会周期的更新客户的名称、地址、电话号码、客户分类、信用等级、风险等级及其他描述性信息。建立的交易粒度事实表如下所示:
变更日期(FK)帐户号(SK)
代理(FK)
客户信息变更类型(FK)
帐户号(NK)
名称(文本事实)
地址(文本事实)
电话号码(文本事实)
客户分类(文本事实)
信用等级(非可加性数字事实)
风险等级(非可加性数字事实)
...
这是一个典型的记录的度量事实都是文本型描述信息的事实表。这样的事实表和维度表之间的区别并不明显。
这个事实表中有三个是关联到普通维度表的外键,分别是变更日期、代理和交易类型。帐户号(NK)是帐户的自然键,是帐户的唯一标识。帐户号(SK)是帐户的代理键,也是这个事实表的主键,它标识了这个事实表中的每一次变化。
我们可以将该事实表中的帐户号代理键做TYPE 2型缓慢变化维处理,并将它关联到其他事实表作为外键。举例来说,我们除了收集帐号本身变动信息外,还会收集存取款情况和帐号余额信息,并建立事实表如下:
- 交易日期(FK)
- 帐户号(SK)
- 地点(FK)
- 交易类型(FK)
- 数额(可加性事实)
- 帐户余额(半可加性事实)
对后一个事实表进行分析,其中的一条记录可以准确的对应到前一张事实表中相应时点的帐号信息上,即我们可以得到每一次交易时点时帐户对应的客户信息。我们会发现,前一张事实表和维度表并没有什么差别。