当前位置:首页 > 网络教程 > php > 关系型数据库设计三范式

关系型数据库设计三范式

一叶知秋2024-03-02 10:51:53php14

数据库设计三范式意思就是数据库的设计规范,不满足该该规范要求的就不属于关系型数据库

第一范式(1NF)

关键字:原子性

每列字段具有原子性,每列的字段都不可分割,同一个列不能有多个值

第一范式是关系型数据库的基本要求,不满足第一范式的数据库不是关系型数据库

如果表不满足第一范式怎么解决?比如联系方式字段既有电话又有邮箱

解决的办法很简单,就是将该字段进行分割,分成两个字段使其具有原子性

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

第二范式(2NF)

关键字:唯一性和依赖性

每个表都有主键,其他字段完全依赖主键

第二范式在第一范式的基础上,要求表中的每一条数据可以被唯一区分

依赖的意思是每个字段都和主键有关,缺德主键的值就可以确定其他字段

完全依赖意思是联合主键时,其他字段依赖联合主键中的每一个字段

不满足第二范式该怎么解决?比如下边这个表:

此表中根据主键学生编号,不能确定唯一字段课程编号和成绩,不满足第二范式

所以应该进行分表解决,将课程编号单独建立一个表

第三范式(1NF)

关键字:不存在传递依赖

非主键字段必须直接依赖主键

不满足第三范式该怎么解决?比如:

班级名字段需要根据学生姓名才能确定,学生姓名根据编号确定,班级名和编号之间存在传递依赖,不是直接依赖

所以解决办法应该将学生姓名拿出来单独建立一个表

设计三范式的优缺点

优点

  1. 重复数据少或者没有
  2. 表更小,可以更好地放在内存中,执行更快
  3. 更新操作快
  4. 可以减少使用group by 和 distinct

缺点

        复杂一点的查询需要关联,可能会导致索引失效

扫描二维码推送至手机访问。

版权声明:本站部分文章来自AI创作、互联网收集,请查看免责申明

本文链接:https://www.yyzq.team/post/313029.html

分享给朋友: