【数据仓库】【第八章】【数据仓库建模方法论 - ER模型 】

数仓建模的意义

  • 建模是用于数仓设计的,一般从0-1搭建数仓时是需要会建模理论的;
    公司数仓搭建好后,一般都是直接接需求;

在这里插入图片描述

  • 将数据有序的组织和存储起来:需要遵循方法和理论,方法和理论就是模型;
  • 建模:是一个动作和过程,需要遵循模型;
  • 模型有ER模型和维度模型,这两个就是不同的建模方法;
    在这里插入图片描述
  • 口径:对指标的定义

1. 数据建模的两种方式

  • 关系建模维度建模是两种数据仓库的建模技术。
  • 关系建模由Bill Inmon所倡导,维度建模由 Ralph Kimball 所倡导。

2. 关系建模理论(ER模型)

  • 数据仓库之父Bill Inmon提出的建模方法是从全企业的高度,用实体关系(Entity Relationship,ER)模型来描述企业业务,并用规范化的方式表示出来,在范式理论上符合3NF。

  • 实体和关系模型: 对象和对象之间的关系;1-1 ;1-n; n-n

  • 数据库规范化: 规范化目的是减少数据冗余,增强数据一致性;

当某列只有一个的时候,因此只能修改他自己;如果有冗余,比如有两份,可能只改了一份,就导致数据不一致!


2.1 范式理论

1)定义

数据建模必须遵循一定的规则,在关系建模中,这种规则就是范式

2)作用
采用范式,可以降低数据的冗余性

为什么要降低数据冗余性?
(1)十几年前,磁盘很贵,为了减少磁盘存储。
(2)以前没有分布式系统,都是单机,只能增加磁盘,磁盘个数也是有限的
(3)一次修改,需要修改多个表,很难保证数据一致性

3)范式的缺点

范式的缺点是获取数据时,需要通过Join拼接出最后的数据

4)分类

关系型数据库的范式一共有六种,分别是第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF)。遵循的范式级别越高,数据冗余性就越低。

2.2 范式理论前要–函数依赖

在这里插入图片描述

1.2.1 完全函数依赖 z = f(x,y)

定义: 由字段x和字段y可以获取唯一的字段z,但是由单独的x或者单独的y获取不了z,此时称为z完全依赖于(x,y),即z =f(x,y)
在这里插入图片描述

1.2.2 部分函数依赖

定义: Z完全依赖于x,y,n,此时称Z部分函数依赖于x,y
也就是说Z只需要(x,y,n)的一部分,此时称之为Z部分依赖于(x,y,n)

1.2.3 传递函数依赖

y=f(x),z=g(y) ,因此可以由x获取z,此时称之为Z传递函数依赖于x

2.3 三范式

2.3.1 第一范式-属性不可切割

在这里插入图片描述

  • 第一范式没有用到上面的函数依赖;
  • 第一范式:属性不可切割!

2.3.2 第二范式

  • 第二范式: 不能存在非主键字段部分函数依赖于主键字段;
    在这里插入图片描述

如何拆表? 假设 Zn = f(x,y)

  1. 找主键:上表中,主键是(学号,课程);
  2. 保留表中完全依赖于主键的字段以及主键 即: Z = f(x,y) ,Z和x、y保留在一张表中
  3. 将部分依赖的 Z = f(x) , Z和x 保留在一张表中

2.3.3 第三范式

第三范式: 非主键字段不能传递函数依赖于主键字段;
在这里插入图片描述
也就是说:y=f(x),z=g(y) x,y,z都在同一张表了,不满足第三范式;

拆表方法:
x和y放一张表,y和z放一张表

2.4 关系建模的特点

  • 关系模型严格遵循第三范式(3NF),数据冗余程度低,数据的一致性容易得到保证。
  • 由于数据分布于众多的表中,查询会相对复杂,在大数据的场景下,查询效率相对较低。

3. ER模型示例

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值