第一范式:每一个属性都具有原子性
无重复的域,所有域都应该是原子性的。数据库的每一列都是不可分割的原子数据项,而不是集合、数组、记录等非原子数据,即实体中的某个属性有多个值时,必须拆分为不同的属性。
举例:电话字段,包含了固话、手机。这就需要拆分为固话、手机两个字段。
第二范式:每一行数据都要有唯一标识,需要设置主键
要求数据库中的每个实例或记录必须可以被唯一的区分。
如员工表中的身份证号码即可实现每一个员工的区分,该身份证号码即为候选键,任何一个候选键都可以被选为主键。在找不到候选键时,可额外增加属性以实现区分。
比如设计ID等不重复的编号以实现区分。
第三范式:表与表相关联时,用唯一标识或主键关联,不能出现冗余信息
在2NF基础上,任何非主属性不依赖于其它非主属性。
简而言之,一个关系中不能包含其他关系的非主键信息。
就是两张表相关联时,可以用主键或唯一标识关联。不能出现其余字段的信息