第一范式(1NF)
-
1NF是指数据库中表的每一列都是不可分割的基本数据项,同一列的数据不能有多个值。如果出现重复,就可能需要定义一个新的实体(即:生成一个新的表)来描述关系。例如:公司中,某个人员属于n个部门,那么在人员表中,这个人部门字段可以存储多个值,但这样违反了1NF,此时可以生成一个新表,表示人员与部门的关系。
-
在任何关系型数据库中,1NF是关系模式的基本要求,没有满足1NF的数据库 就不是关系数据库。
第二范式(2NF)
- 2NF是在1NF基础上建立的,所以满足2NF的必须先满足1NF。
- 2NF要求数据库中表的每个实例或行 必须能唯一的区分。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。此唯一标示通常被称为 主关键字、主键或 主码。
- 2NF要求实体的属性完全依赖于主键。所谓完全依赖是指不能存在仅依赖主键一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。
- 简而言之,第二范式就是非主属性不能部分依赖于主关键字。
第三范式(3NF)
- 3NF依赖于2NF
- 3NF要求一个数据库表中不包含在其他表中已经存在的非主键的字段。
- 3NF是 表属性不能依赖其他表中非主键的属性。
网友评论