# 数据库设计范式
数据库的设计范式是要满足关系型数据库设计的规范,满足这些规范就可以保证数据库是简洁、结构清晰的,同时在对数据库操作的时候,比如插入、删除、更新等不会出现操作异常。
# 第一范式(1NF)
确保每列保持原子性
数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。如果实体中的某个属性有多个值时,必须拆分为不同的属性。
# 第二范式(2NF)
确保表中的每列都和主键相关
第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。
# 第三范式(3NF)
第三范式需要确保数据表中的每一列数据都和主键直接相关,而不能间接相关。
# 总结
完美符合三范式的数据库也比较少,为了满足客户的实际需求,常常会用数据冗余去换执行速度。