数据库三大范式是什么?
三大范式是 MySQL 数据库设计表结构所遵循的规范和指导方法,目的是为了减少冗余,建立结构合理的数据库,从而提高数据存储和使用的性能。
三大范式之间是具有依赖关系的,比如第二范式是在第一范式的基础上建设的、第三范式是在第二范式的基础上建设的。
- 第一范式(1NF) :第一范式是指数据库表中的每个列都必须是原子性的,也就是说,每个列中的值都不能再分解成更小的数据项。同时,每个表必须有一个主键,用于唯一标识每条记录。
- 第二范式(2NF) :第二范式是指表中的非主键列必须完全依赖于主键,而不是依赖于主键的一部分。如果有非主键列依赖于主键的一部分,那么就需要将这些列拆分到另一个表中。
- 第三范式(3NF) :第三范式是指表中的非主键列之间不能存在传递依赖关系。也就是说,如果A列依赖于B列,B列依赖于C列,那么A列就不能直接依赖于C列,而是应该将A列拆分到另一个表中。
当然 Mysql 数据库的范式不止三大范式,除了三大范式,还有巴斯-科德范式(BCNF)、第四范式(4NF)、第五范式(5NF,又称“完美范式")。
还需要注意实际上,互联网公司的设计一般都是反范式的,通过冗余一些数据,避免跨表跨库,利用空间换时间,提高性能。