数据仓库维度建模

(一)、事实表类型
事实表根据粒度的角色划分不同,可分为事务事实表、周期快照事实表和累计快照事实表。
1、事务事实表
用于承载事务数据,通常粒度比较低,例如产品交易事务事实、ATM交易事务事实。
2、周期快照事实表
用于记录有规律的、固定时间间隔的业务累计数据,通常粒度比较大,例如账户月平均余额事实表。
3、累计快照事实表
用于记录具有时间跨度的业务处理过程的整个信息,通常这类事实表相对比较少见。

(二)、星型模型和雪花模型
在维度建模中,存在两种组合维度表和事实表的基本模型:星型模型和雪花模型。
1、星形模型
当所有维度表直接连接到事实表时,整个组合的形态类似于星星,所以被称为星形模型。
星形模型是一种非规范的结构,其数据存储存在冗余,比如考虑商品的维度表,其品牌信息在商品的每一行中都存在,包括其中品牌ID、名称、品牌拥有者等。通常很多商品的品牌都是一样的,所以在商品维度表中品牌的信息被重复存储了很多次,也就是存在冗余。
2、雪花模型
当有一个或者多个维度表没有直接连接到事实表,而是通过其他维度表连接到事实表上时,整个组合的形状就像雪花一样,这种架构被称为雪花模型。
雪花模型是对星形模型维度表的规范化,比如上述的商品表例子,在雪花模型中,其每一行仅存储品牌ID,而品牌的所有模型其他信息(包括品牌名称、拥有者、注册地等所有描述信息)都存储在单独的品牌维度表内。通过品牌ID这个外键,商品表可以间接获得所有品牌描述信息。
雪花模型去除了数据冗余,节省了部分存储,但是也给下游用户的使用带来了不便,如下游用户需要分析品牌的销售额,必须自己先用订单表关联商品表,然后用商品表再关联品牌表。正式由于这一点,在维度建模的实际中,雪花模型很少使用。

(三)、维度建模一般过程
维度建模一般采用具有顺序的4个步骤来进行设计,即选择业务过程,定义粒度,确定维度和确定事实。
1、选择业务过程
业务过程即企业和组织的业务活动,它们一般都有相应的源头业务系统支持。对于一个超市来说,最基本的业务活动就是用户收银台付款;对于一个保险公司来说,最基本的业务活动是理赔和保单等。当然在实际操作中,业务活动有可能并不是那么简单直接,此时听取用户的意见通常是这一环节最为高效的方式。
2、定义粒度
定义粒度意味着对事实表行实际代表的内容和含义给出明确的说明。粒度传递了事实表度量值相联系的细节所达到的程度信息。其实质就是如何描述事实表的单个行。
典型的粒度定义包括:
超市顾客小票的每一个子项
医院收费单的明细子项
个人银行账户的每一次存款或者取款行为
个人银行账户每个月的余额快照
在定义粒度过程中,应该最大限度地选择业务过程中最为原子性的粒度,这样可以带来后续的最大灵活度,也可以满足业务用户的任何粒度的分析需求。
3、确定维度
定义了粒度之后,相关业务过程的细节也就确定了,对应的维度就很容易确定。维度是对度量的上下文和环境的描述。通过维度,业务过程度量与事实就会变得丰富和丰满起来。
4、确定事实
确定事实通过业务分析可能要分析什么来确定。

(四)、缓慢变化维的处理方法
1、重写维度值
直接用新值覆盖旧值
2、插入新的维度行
通过在维度表中插入新的行来保存和记录变化的情况
插入新的维度列

你可能感兴趣的:(数据仓库,数据仓库,维度建模,事实表,星形,雪花)