当前位置: 首页 > 图灵资讯 > java面试题> 金三银四精选java面试题-数据库三大范式是什么?

金三银四精选java面试题-数据库三大范式是什么?

来源:图灵教育
时间:2023-12-04 15:11:18
 

数据库三大范式是什么?

三大范式是 MySQL 数据库设计表结构遵循的规范和指导方法,目的是为了减少冗余,建立结构合理的数据库,从而提高数据存储和使用的性能。

三大范式之间是具有依赖关系的,比如第二范式是在第一范式的基础上建设的、第三范式是在第二范式的基础上建设的。

  1. 第一范式(1NF) :第一范式是指数据库表中的每个列必须是原子性的,也就是说,每个列中的值都不能再分解成更小的数据项。同时,每个表必须有一个主键,用于唯一标识每条记录。

  1. 第二范式(2NF) :第二范式是指表中的非主键列必须完全依赖于主键,而不是依赖于主键的一部分。如果有非主键列依赖于主键的一部分,那么就需要将这些列拆分到另一个表中。

  1. 第三范式(3NF) :第三范式是指表中的非主键列之间不能存在传递依赖关系。也就是说,如果A列依赖于B列,B列依赖于C列,那么A列就不能直接依赖于C列,而是应该将A列拆分到另一个表中。

当然 Mysql 数据库的范式不止三大范式,除了三大范式,还有巴斯-科德范式(BCNF)、第四范式(4NF)、第五范式(5NF,又称“完美范式")。

还需要注意实际上,互联网公司的设计一般都是反范式的,通过冗余一些数据,避免跨表跨库,利用空间换时间,提高性能。