范式:
为了避免不规范的数据库出现数据冗余,造成插入丶删除丶更新操作异常等情况,就要满足一定的规范化要求,这就是范式( Normal Form)。
- 第一范式(1NF):
是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值,或不能有重复的属性。
简而言之,第一范式遵从原子性,属性不可再分。
举例:
以下两种情况都不可:
这是正确的:
- 第二范式(2NF):
是在第一范式的基础上建立起来的,满足第二范式必须先满足第一范式。第二范式要求实体的属性完全依赖于主键,不能仅依赖主键的一部分(对于复合主键而言)。
简而言之,第二范式遵从唯一性,非主键字段需完全依赖主键。
举例:
错误:
正确:
- 第三范式(3NF):
是在第二范式的基础上建立起来的,即满足第三范式必须先满足第二范式。第三范式要求一个数据表中每一列数据都和主键直接相关不能间接相关。
简而言之,第三范式就是非主键字段不能相互依赖。
错误:
正确: