重生之再学mysql-数据库三范式

数据库三范式是关系数据库设计的重要原则,包括第一范式(确保列不可拆分),第二范式(非主键列完全依赖主键),和第三范式(避免传递依赖和数据冗余)。遵循这些范式能创建出结构清晰、稳定性高的数据库模型,防止数据不一致和更新问题。
摘要由CSDN通过智能技术生成

介绍

什么是数据库三范式?它有什么作用?:数据库三范式是关系数据库的设计原则,它帮助我们规划出结构合理、稳定性好的关系型数据库

第一范式:确保每列都是不可拆分的

这个的意思是,每一列都不能再分解成更小的值,比如性别,学号,这种就不能再被分解了。而出生日期的话,还可以再被细分为哪一年,哪一个月,哪一天,这种就是属于列不可被拆分的。

在这里插入图片描述
比如上面的这张表,如果你的业务还需要将出生日期给拆分,那么这张表就不符合第一范式

第二范式:在第一范式的基础上,确保非主键列完全依赖于主键,而不是依赖于主键的一部分

这个的意思是非主键的列必须完全依赖于主键,举一个例子

学生表(Students)包含以下字段:

学生ID(StudentID)(主键)
学生姓名(StudentName)
年龄(Age)
所在班级(Class

上表就完美的符合第二范式,因为通过主键学生的Id,就可以唯一确定学生姓名以及年龄和班级

第三范式:第二范式的基础上,确保非主键列不存在传递依赖

如果一个关系满足第二范式,并且在两个 (或多个) 非主键属性之间不存在函数依赖 (非主键属性之间的函数依赖也称为传递依赖),那么这个关系就满足第三范式。
在这里插入图片描述

简单来说,3NF 要求任何字段不能由其他字段派生出来,它要求字段没有冗余,即不存在传递依赖。

如果不满足第三范式,可能会存在下述问题:

数据冗余
更新异常

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值