# 数据库设计范式

数据库的设计范式是要满足关系型数据库设计的规范,满足这些规范就可以保证数据库是简洁、结构清晰的,同时在对数据库操作的时候,比如插入、删除、更新等不会出现操作异常。

# 第一范式(1NF)

确保每列保持原子性

数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。如果实体中的某个属性有多个值时,必须拆分为不同的属性。

# 第二范式(2NF)

确保表中的每列都和主键相关

第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。

# 第三范式(3NF)

第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关

# 总结

完美符合三范式的数据库也比较少,为了满足客户的实际需求,常常会用数据冗余去换执行速度。

Last Updated: a year ago