数仓范式建模和维度建模

一、数仓建模分为传统型的范式建模和新型维度建模: 

  1. 范式建模
    • Inmon提出的集线器的自上而下(EDW-DM)的数据仓库架构。操作型或事务型系统的数据源,通过ETL抽取转换和加载到数据仓库的ODS层,然后通过ODS的数据建设原子数据的数据仓库EDW,EDW不是多维格式的,不方便上层应用做数据分析,所以需要通过汇总建设成多维格式的数据集市层。优势:易于维护,高度集成;劣势:结构死板,部署周期较长
    • 范式建模应用在EDW层
    • 一个符合第三范式的关系必须具有以下三个条件:
      1. 每个属性的值唯一,不具有多义性;
      2. 每个非主属性必须完全依赖于整个主键,而非主键的一部分;
      3. 每个非主属性不能依赖于其他关系中的属性,因为这样的话,这种属性应该归到其他关系中去。
    • 但是由于EDW的数据是原子粒度的,数据量比较大,完全规范的3范式在数据的交互的时候效率比较低下,所以通常会根据实际情况在事实表上做一些冗余,减少过多的数据交互。
  2. 维度建模
    • Kimball提出的总线式的自下而上(DM-DW)的数据仓库架构。同样的,操作型或事务型系统的数据源,通过ETL抽取转换和加载到数据仓库的ODS层,然后通过ODS的数据,利用维度建模方法建设一致维度的数据集市。通过一致性维度可以将数据集市联系在一起,由所有的数据集市组成数据仓库。优势:构建迅速,最快的看到投资回报率,敏捷灵活;劣势:作为企业资源不太好维护,结构复杂,数据集市集成困难。
    • 星型模型(推荐)和雪花模型

另外在复合式的数据仓库架构中,操作型或事务型系统的数据源,通过ETL抽取转换和加载到数据仓库的ODS层,然后通过ODS的数据,利用范式建模方法,建设原子数据的数据仓库EDW,然后基于EDW,利用维度建模方法建设数据集市。

 

二、3范式

1.范式(NF)
一张数据表的表结构所符合的某种设计标准的级别。

构造数据库必须遵循一定的规则。在关系数据库中,这种规则就是范式。范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求,即满足不同的范式。目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、第四范式(4NF)、第五范式(5NF)和第六范式(6NF)。

第一范式(1NF)

1NF的定义为:符合1NF的关系中的每个属性都不可再分。

表一


表二

表一不符合第一范式的属性,并且在第一范式要求下,每列不可以有重复的数值。

第二范式(2NF)

2NF的定义为:消除了非主属性对码的部分函数依赖。
第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。简而言之,第二范式就是属性完全依赖于主键。

主属性的概念是可以由主属性决定余下其他属性的值为主属性,剩下的其他就为非主属性。


这里表的主属性为学号和课程,学号和课程可以决定剩下三个属性的值,而剩下的三个属性就为非主属性。

第三范式(3NF)
3NF在2NF的基础之上,消除了非主属性对于码的传递函数依赖。


在关系模式R(U)中,设X,Y,Z是U的不同的属性子集,如果X确定Y、Y确定Z,且有X不包含Y,Y不确定X,(X∪Y)∩Z=空集合,则称Z传递函数依赖(transitive functional dependency) 于X。

第一个表知道了系名之后就可以知道宿舍楼,宿舍楼传递依赖于主属性学号。

结论:
由此可见,符合3NF要求的数据库设计,基本上解决了数据冗余过大,插入异常,修改异常,删除异常的问题。

数据仓库中的3NF与OLTP系统中的3NF区别
。数据仓库中的 3NF 与 OLTP 系统中的 3NF 的区别在于:
它是站在企业角度面向主题的抽象,而不是针对某个具体 业务流程的实体对象关系的抽象。
其具有以下几个特点: ·

  1. 需要全面了解企业业务和数据。
  2. 实施周期非常长。
  3. 对建模人员的能力要求非常高。

写一个第一范式表
Create CREATE TABLE test
(
id int not null
PRIMARY KEY,
name VARCHAR
(
50
)
,
age INT
);

反例
CREATE TABLE test
(
id int not null
PRIMARY KEY,
name-sex VARCHAR
(
50
)
,
age INT
);

 

三、维度建模

维度模型主要应用于OLAP系统中,因为关系模型虽然冗余少,但是在大规模数据,跨表分析统计查询过程中,会造成多表关联,这会大大降低执行效率。

所以把相关各种表整理成两种:事实表和维度表两种。所有维度表围绕着事实表进行解释。

 雪花模型、星型模型和星座模型

在维度建模的基础上又分为三种模型:星型模型、雪花模型、星座模型。

 


 

 

  • 6
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值