?范式

(1)1NF

     不可以存在大表套小表现象,即每一个分量都是不可再分的。所有的高级范式均服从1NF。

 (2)2NF

     不可以出现非主属性部分依赖主属性的现象。(每一个非主属性必须完全依赖于主属性(主键))

     

 

 

 

 选课中 学号 课程号 教师号是主属性,成绩和学分是非主属性。其中可以课程号——>学分(课程决定学分),所以学分部分依赖于主属性,所以此选课关系不符合2NF。

 所以上述选课关系可以写为 选课(学号,课程号,教师号,成绩), 课程(课程号,学分)。

 (3)3NF

  3NF服从2NF,是2NF更严格的描述(个人理解),描述的是非主属性既不能部分依赖于主码,也不能传递依赖于主码。

  

 

 

  在上图学生关系中 (假设一个院系拥有一个唯一的学生公寓地址)学号是主码,通过学号可以查到学生的院系,通过院系可以查到学生公寓所在地址。

  即学号-->院系,院系-->学生公寓。满足没有部分依赖范式(2NF),但不满足不能存在传递依赖。

 可以写成学生(学号,院系),院(院系,学生公寓)。

  (4)BCNF

  BCNF是3NF更严格的规范。描述的是主属性之间不能存在依赖关系(个人理解)。

仓库号,管理员号,存储物品种类,数量。 假设一个管理员有一个固定的仓库号来进行仓库的管理。

在上述仓库管理关系中,仓库号,管理员号是主属性,并且满足3NF。但是仓库号-->管理员号,管理员号-->仓库号,形成了主属性之间的依赖关系。

可以改成 仓库号,管理员号            管理员号,存储物品种类,数量。

参考:(11条消息) bcnf范式_李亚松-的博客-CSDN博客_bcnf范式

请问数据库设计中BCNF范式是什么意思?_百度知道 (baidu.com)

posted on 2022-06-14 16:16  肆莫耀  阅读(67)  评论(0)    收藏  举报