数据库的三范式是什么?

数据库范式是为了使数据库设计更加合理、规范,减少数据冗余、避免数据操作异常而设立的一系列规则。以下是数据库三范式的详细内容:
第一范式(1NF)

每列的原子性,表中的每一个字段都是不可分割的,同一列中不能有多个值。第一范式是对关系模式的基本要求,不满足第一范式的数据库不是关系型数据库。

  • 不满足第一范式的示例:

学生编号

学生姓名

联系方式

1001

张三

zs@gmai1.com,1359999999

1002

李四

1s@gmai1.com,13699999999

1003

王五

ww@163.net ,13488888888

注意: 第一范式要根据实际需求来定

考虑地址字段(黑龙江省哈尔滨市南港区征仪路 156号)是否符合第一范式,如果经常访问地址中的城市部分就不符合第一范式需要对地址进行拆分。如果不会访问拆分的部分,就符合第一范式,拆分反而不利于查询完整地址。

第二范式(2NF)

确保唯一性和依赖性,每个表都有主键,且其他字段完全依赖主键。

第二范式是在第一范式的基础上,要求表中的每一条数据可以被唯一区分,通常使用主键实现,其他所有字段都完全依赖主键。

其他字段依赖主键是指,其他每个字段都与主键完全相关,当确定主键的值时就能确定其他所有字段的值。也就是说一个表只能存一种数据,不可以把多种数据存到一个表中。

完全依赖是指,联合主键时,其他字段不可以只依赖主键中的某个字段,必须依赖联合主键中的每一个字段。

  • 不满足第二范式的示例:

学生编号

课程编号

学生姓名

成绩

1001

001

张三

90

1002

001

李四

80

1003

002

王五

90

第三范式(3NF)

在第二范式的基础上,非主键字段必须直接依赖于主键,不能存在传递依赖。

  • 不满足第三范式的示例:

学生编号

班级编号

学生姓名

班级名

1001

01

张三

一年一班

1002

02

李四

一年二班

1003

03

王五

一年三班

范式总结
  • 1NF:每列原子性,字段不可分割
  • 2NF:唯一性和依赖性,要有主键,且其他字段完全依赖主键
  • 3NF:没有传递依赖

范式的优缺点:

  • 优点:
    • 重复数据很少或者没有
    • 表更小,可以更好的放在内存里,执行操作更快o更新操作更快
    • 可以更少使用group by 和distinct
  • 缺点: 复杂一点的查询需要关联,可能使索引无效
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值