数仓之范式

本文介绍了数据库设计中的基本概念,包括范式的定义、目的和分类,特别强调了第一范式(1NF)、第二范式(2NF)和第三范式(3NF)的核心原则。函数依赖的概念也被详细阐述,包括完全、部分和传递函数依赖。通过实例展示了如何通过范式理论减少数据冗余并优化数据结构。
摘要由CSDN通过智能技术生成

一、基本概念

定义:范式是指数据建模中必须遵守一定的规则

目的:降低数据的冗余性

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

分类:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)、第五范式(5NF)。

一般建模只需要满足第三范式即可

二、函数依赖

在学习范式之前需要知道函数依赖
在这里插入图片描述
1.完全函数依赖

如上表所示,学号、课程能推出分数,但缺少其中一个就推不出分数。即:分数完全依赖于学号、课程

2.部分函数依赖

如上表所示,学号、课程能推出姓名,但缺少其中一个也可以推出姓名。即:姓名部分依赖于学号、课程

3.传递函数依赖

如上表所示,学号推出系名系名推出系主任,但系主任推不出学号,系主任主要依赖于系名。即:系主任传递依赖于学号;即通过A得到B,通过B得到C,但是C得不到A,那么C传递依赖于A。

三、三范式区别

(1)第一范式1NF

核心原则:满足属性不可切割

下表不符合第一范式表格设计

ID商品商品ID用户ID
0015台笔记本XXX旗舰店8477

下表符合第一范式表格设计

ID商品数量商品ID用户ID
001笔记本5XXX旗舰店8477

(2)第二范式2NF

核心原则:不能存在 非主键字段 部分函数依赖 主键字段

在这里插入图片描述
上表主键是(学号、课程),其中姓名、系名、系主任都部分依赖于(学号、课程)

即通拆分表,满足第二范式核心原则

表一:
在这里插入图片描述
表二:
在这里插入图片描述
其中表二仍然存在数据冗余的现象,两条相同的数据又重复存储了,则需要通过第三范式解决

(3)第三范式3NF

核心原则:不能存在 非主键字段 传递函数依赖 主键字段

将上面的表二继续拆分成两张表,满足第三范式核心原则

在这里插入图片描述

在这里插入图片描述

以上内容了解知道即可

参考:atguigu

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王博1999

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值