事实表是数据库中最大的表,是星形模型结构的核心
事实表包含了基本商业事务的详细信息,是对商务活动进行客户关系、销售趋势和产品趋势等分析的素材
事实表的设计包括对事实的选择、量度的构造、粒度的设计和聚合的设计等
1 事实、度量和事实表 事实是各个维度的交点,是对某个特定事件的度量
维度中的属性描述的是维本身的属性,比如客户的性别、年龄、姓名和地址,这些都是客户的固有属性
度量是客户发生事件或动作的事实记录,比如客户打电话,可能选择的度量有通话时长、通话次数和通话费用等;客户购买商品,可能选择的度量有购买的次数、购买商品的金额和购买商品的数量等
度量变量的取值可以是离散的数值,也可以是连续的数值
比如,客户通话次数是离散的数值,而客户购买商品的金额是连续的数值
度量变量也可以在某个元素集合内取值
比如客户对公司服务质量的评定可以是很好(Ex cellent)、好(Good)、一般(Fair)和差(Poor)中的一个
事实表则是位于星形架构或雪花形架构中间,用来记录商务事实和相应统计指标的表
同维表相比,事实表具有如下的特征
记录数量很多
事实表中除了度量变量外,其他字段都是同维表或者中间表(对于雪花形模型)的关键字
如果事实相关的维度很多,则事实表的字段数也会比较多
从事实表记录数多的特征中,我们可以得到事实表设计的一个感性认识,即事实表应当尽量减小一条记录的长度,只有这样才能避免事实表过大而难于管理
相对维表来说,事实表是“细长”的结构,如图 3-35 所示
图 3-35 事实表的特征 3
2 事实表的设计 由以上分析可知,事实表中一般要包含 2 部分:一是由主键和外键所组成的键部分,另一部分是用户希望在数据仓库中所了解的数值指标,这些指标是为每个派生出来的键而定义和计算的,称为事实或指标
由于事实是一种度量,所以事实表中的这种指标