第一范式、第二范式、第三范式的理解

第一范式(1NF):

1、每个属性不可再分。

2、相近或一样的属性要尽量合并在一起确保不会产生冗余数据。

上表如果要求把省/市单独划分出来,则不符合1NF。

上表产生数据冗余。

2、第二范式(2NF):非主属性对关键字完全依赖,消除部分依赖。

比如有选课关系表:学号,姓名,成绩,课程,学分。主键为(学号,课程)的属性组。

存在部分依赖:学号->姓名;课程->学分。因此不符合2NF。

3、第三范式(3NF):消除传递依赖,每个属性和主键有直接关系而不是间接关系,即属性不依赖于其他非主属性。

比如有学生档案表:学号,姓名,生源地,生源地编号,邮政编码。主键为(学号)。

存在传递依赖:学号->生源地编号->生源地,邮政编码。因此不符合3NF。

4、BCNF:不存在任意字段对任意候选关键字段的传递函数依赖。

比如寝室管理关系表 (寝室ID,室长ID,物品ID,数量),选主键的时候

寝室ID物品ID)---->(室长ID,数量

也可以

室长ID物品ID)------>(寝室ID数量)

5、第四范式(4NF):存在多值依赖。

例如(商品,买商品的客户,附赠品)

商品)-->-->(买商品的客户),

商品)-->-->(附赠品

都是1:N关系,且联系独立,存在多值依赖关系。

猜你喜欢

转载自blog.csdn.net/qq_36380180/article/details/84074877