数据库设计的三大范式

数据库设计范式是确保数据组织有效性的准则,主要包括第一范式(1NF),第二范式(2NF)和第三范式(3NF)。1NF要求所有字段值不可分解;2NF强调非主属性完全依赖于候选键;3NF则规定非主键列间不存在间接依赖。遵循这些范式可以避免数据冗余,提高查询效率,减少插入、更新和删除异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库设计范式

是在设计数据库结构过程中所要遵循的规则和指导方法,一共由8种范式,但通常只用到3种范式

第一范式(1NF)

所有字段的值都是不可分解的原子值。即实体中的某个属性有多个值时,必须拆分为不同的属性。例如:
在这里插入图片描述
好处

-表结构相对清晰
-易于查询

第二范式(2NF)

第二范式是在第一范式基础上建立起来的

第二范式规定:在满足第一范式的前提下,如果每一个非主属性完成依赖于某个候选键,那么就符合第二候选式

主属性:候选键中的所有字段,叫做主属性,否则称为非主属性

候选键:是区别一条数据的最少属性组合,是每条数据的唯一标识,候选键里的每个主属性都要有它的作用,一个表中可能有多个候选键,从中选一个作为主键

完全依赖:即一个属性与另一个属性完成相关
在这里插入图片描述
例如:
在这里插入图片描述
好处

-相对节约空间,当学生表和课程表属性越多,效果越明显
-解决插入异常,当新增一门课程时,原表因为没有学生选课,导致无法插入数据
-解决更新繁琐,当更改一门课程名称时,原表要更改多条数据
-解决删除异常,当学生学完一门课,原表若要清空学生上课信息,课程编号与课程名称的关系可能会丢失

第三范式(3NF)

在满足1NF和2NF的前提下,非主键列之间不存在间接依赖关系

在这里插入图片描述
例如
在这里插入图片描述
好处

-相对节约空间
-解决更新繁琐
-解决插入异常,当班级分配了老师,还没分配学生的时候,原表将不可插入数据
-解决删除异常,当学生毕业后,若要清空学生信息,班级和老师的关系可能会丢失

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值