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

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

维度建模的基本概念

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

维度表(dimension)

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

  • 维度表类型
    • 日期维
      • 数据仓库必须有的维度,包含日期,日期所属的周,月,季度,年等信息。
    • 角色维
      • 相同的维度表在维度模型中扮演不中的逻辑角色,一般通过创建视图来表示。
    • 支架维
      • 如果维度之间是一对多的关系或区别于原维度的多个描述性维度属性,可以建雪花型支架维度。
    • 多值维度桥接维
      • 如果二个维度表是多对多的关系,可以使用多值维度设计。
    • 微型维
      • 一个大型维有些属性变化比较频繁,把这些属性单独生成一个微型维度表。
    • 缩小维
      • 维度表的一个子集或部分属性。
    • 层次维
      • 有些维度表是有层次结构的,可以通过视图生成树形结构的维度表。
    • ...

事实表(fact table)

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

  • 事实表类型

    • 事务事实表
      • 它是面向事务的,其粒度是每一行对应一个事务,它是最细粒度的事实表。
    • 周期快照事实表
      • 它是按照良好的时间周期间隔(每天,每月)来捕捉业务活动的执行情况,一旦装入事实表就不会再去更新,它是事务事实表的补充,而非替代品。
    • 累积快照事实表
      • 它用于描述业务过程中某个不确定时间跨度里的活动,它随着业务活动的发生会不断的更新。
  • 三种事实表类型之间的区别:

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

维度建模优点

  • 便于理解
  • 提高查询性能
  • 对称性
  • 可扩展性

维度建模的三种模式

1.星形模式

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

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

  • 维表只和事实表关联,维表之间没有关联;
  • 每个维表的主码为单列,且该主码放置在事实表中,作为两边连接的外码;
  • 以事实表为核心,维表围绕核心呈星形分布;

2.雪花模式

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

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

3.星座模式

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

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,165评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,503评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,295评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,589评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,439评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,342评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,749评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,397评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,700评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,740评论 2 313
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,523评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,364评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,755评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,024评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,297评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,721评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,918评论 2 336