数据仓库

数据仓库建模——维度建模

2020-09-03  本文已影响0人  Q以梦为马

数据仓库的建模方法有很多种,常见的有维度建模法、范式建模法、实体建模法等,下面主要介绍一下维度建模法。

维度建模的基本概念

维度建模(dimensional modeling)是专门用于分析型数据库、数据仓库、数据集市建模的方法。它本身属于一种关系建模方法,但和关系建模方法相比增加了两个概念:

维度表(dimension)

表示对分析主题所属类型的描述。比如"昨天下午郑州外国语学校8年级3班王小明同学花费了99元购买了一套课程"。那么我们以购买为主题进行分析,可从这段信息中提取三个维度:时间维度(昨天下午),地点维度(郑州外国语学校), 商品维度(课程)。通常来说维度表信息比较固定,且数据量小。

事实表(fact table)

表示对分析主题的度量。比如上面那个例子中,99元就是事实信息。事实表包含了与各维度表相关联的外码,并通过 JOIN 方式与维度表关联。事实表的度量通常是数值类型,且记录数会不断增加,表规模迅速增长。

事务事实表 周期快照事实表 累积快照事实表
代表的时间段 时间点 规律可预见间隔 不确定时间跨度,一般是短期
粒度 每个事件事务一行 每段时间一行 每个生命周期一行
事实表加载 插入 插入 插入与更新
事实表更新 不重新加载 不重新加载 重新加载
日期维度 事务日期 时间段终止日期 标准关键环节的多个日期
事实 事务活动 预定时间间隔的性能 给定生命周期的性能

维度建模优点

维度建模的三种模式

1.星形模式

星形模式(Star Schema)是最常用的维度建模方式,下图展示了使用星形模式进行维度建模的关系结构:

可以看出,星形模式的维度建模由一个事实表和一组维表成,且具有以下特点:

2.雪花模式

雪花模式(Snowflake Schema)是对星形模式的扩展,每个维表可继续向外连接多个子维表。下图为使用雪花模式进行维度建模的关系结构:

星形模式中的维表相对雪花模式来说要大,而且不满足规范化设计。雪花模型相当于将星形模式的大维表拆分成小维表,满足了规范化设计。然而这种模式在实际应用中很少见,因为这样做会导致开发难度增大,而数据冗余问题在数据仓库里并不严重。

3.星座模式

星座模式(Fact Constellations Schema)也是星型模式的扩展。基于这种思想就有了星座模式:

前面介绍的两种维度建模方法都是多维表对应单事实表,但在很多时候维度空间内的事实表不止一个,而一个维表也可能被多个事实表用到。在业务发展后期,绝大部分维度建模都采用的是星座模式。

上一篇 下一篇

猜你喜欢

热点阅读