第2节 网站点击流项目(下):1、数据仓库建模的基本概念

数据仓库的设计概述:
1、维度建模:是我们常见的数据仓库用来分析数据的一种手段
主要分为两个方面:维度表:从不同的角度去看待同一件事情,会得到不同的结果
事实表:记录了已经确切发生的一件事情,描述的是一件完整的事情
维度建模的三种方式:
第一种方式:星型模型,以事实表为核心依据,以多个不同的维度表散列周围,然后通过主外键的关系进行关联
第二种方式:雪花模型,以事实表为核心依据,以多个不同的维度表散列周围,多个不同的维度表还有可能关联其他的维度表
第三种:星座模式 ,以多个事实表为核心依据,多个事实表之间可能会关联相同的维度表,大多数的建模都是采用星座模式

============================================================

二、 模块开发----数据仓库设计

1. 维度建模基本概念

维度建模(dimensional modeling)是专门用于分析型数据库、数据仓库、数据集市建模的方法。数据集市可以理解为是一种"小型数据仓库"。

维度表(dimension)

维度表示你要对数据进行分析时所用的一个量,比如你要分析产品销售情况, 你可以选择按类别来进行分析,或按区域来分析。这样的按..分析就构成一个维度。再比如"昨天下午我在星巴克花费200元喝了一杯卡布奇诺"。那么以消费为主题进行分析,可从这段信息中提取三个维度:时间维度(昨天下午),地点维度(星巴克), 商品维度(卡布奇诺)。通常来说维度表信息比较固定,且数据量小。

事实表(fact table)

表示对分析主题的度量。事实表包含了与各维度表相关联的外键,并通过JOIN方式与维度表关联。事实表的度量通常是数值类型,且记录数会不断增加,表规模迅速增长。比如上面的消费例子,它的消费事实表结构示例如下:

消费事实表:Prod_id(引用商品维度表), TimeKey(引用时间维度表), Place_id(引用地点维度表), Unit(销售量)。

总的说来,在数据仓库中不需要严格遵守规范化设计原则。因为数据仓库的主导功能就是面向分析,以查询为主,不涉及数据更新操作。事实表的设计是以能够正确记录历史信息为准则,维度表的设计是以能够以合适的角度来聚合主题内容为准则。

 

2. 维度建模三种模式

2.1. 星型模式

星形模式(Star Schema)是最常用的维度建模方式。星型模式是以事实表为中心,所有的维度表直接连接在事实表上,像星星一样。

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

 a. 维表只和事实表关联,维表之间没有关联;

 b. 每个维表主键为单列,且该主键放置在事实表中,作为两边连接的外键;

c. 以事实表为核心,维表围绕核心呈星形分布;

  

 

2.2. 雪花模式

雪花模式(Snowflake Schema)是对星形模式的扩展。雪花模式的维度表可以拥有其他维度表的,虽然这种模型相比星型更规范一些,但是由于这种模型不太容易理解,维护成本比较高,而且性能方面需要关联多层维表,性能也比星型模型要低。所以一般不是很常用。

 

2.3. 星座模式

星座模式是星型模式延伸而来,星型模式是基于一张事实表的,而星座模式是基于多张事实表的,而且共享维度信息。

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

 

 

猜你喜欢

转载自www.cnblogs.com/mediocreWorld/p/11105427.html