数据库设计范式

简介

在关系型数据库中,关于数据表设计的基本原则、规则就称为范式。

常见的六种范式(级别从低到高):第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-克德范式(BCNF)、第四范式(4NF)、第五范式(5NF,又称完美范式)

数据库范式设计越高阶,冗余度就越低,并且高阶的范式是在满足低级范式的基础上实现的,一般在关系数据库设计中最高就遵循到BCNF,普遍是3NF,在有些时候为了提高某些查询性能,我们还会破坏范式规则:反范式化

第一范式:字段不可再分

确保数据表中每个字段值必须有原子性,即字段是不可再拆分的最小单元。

eg:存储员工个人信息:姓名、性别、工号:此时的字段应当是姓名、性别、工号,表为员工信息表

第二范式:所有字段依赖于主键

在第一范式的基础上,还需满足数据表中每条数据记录都是唯一可标识,所有非主键字段都完全依赖主键(多个字段组成的主键,不能只依赖主键的一部分)

eg:
主键(球员编号,比赛编号) -> 非主键(姓名,年龄,比赛时间,比赛场地,得分)

这种设计方式是错误的,非主键并非都完全依赖主键整体,正确设计如下:

(球员编号) -> (姓名,年龄)

(比赛编号) -> (比赛时间,比赛场地)

第三范式:非主键字段之间无关联

同样前提需要满足第一、二范式,要求数据中非主键字段不能依赖于其他非主键字段,即非主键字段间相互独立;

总结

  • 范式的优点:有助于消除数据库中的数据冗余,第三范式(3NF)被认为在性能、扩展性和数据完整性达到了最好的平衡;
  • 范式的缺点:使用范式可能降低查询的效率,范式等级越高,设计出来的数据表就越多、越细,数据冗余度虽然会降低,但数据查询的代价会增加(多表关联)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值