第一范式(1NF)
定义:数据库表中的所有字段都是单一属性,不可再拆分的。
这个单一属性是由基本的数据类型所构成的。如:数字、字符串…
不符合的例子
| 用户Id | 用户名 | 用户密码 | 用户信息 | ||
|---|---|---|---|---|---|
| 姓名 | 电话 | 身份证号 | |||
第二范式(2NF)
定义:数据库的表中不存在非关键字段对任一候选关键字段的部分函数依赖。
- 表必须有一个(组)主键
- 没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分(消除部分依赖)
第二范式,非主关键字段完全依赖于主键,不能部分依赖于关键字的一部分。如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新的实体与原实体之间是一对多的关系。
部分函数依赖是指,一个表中存在着组合关键字段,并且组合关键字段中的某一关键字决定了非关键字的情况。
注:所有单关键字段的表都符合第二范式。
第三范式(3NF)
在第二范式基础上,如果数据表中不存在非关键字段对任意候选关键字段的传递函数依赖则符合第三范式。
在第二范式基础上,任何的非主属性不依赖于其他非主属性(在第二范式基础上消除传递依赖)
在2NF基础上,非主属性与其他非主属性之间是否存在依赖关系。
