首页 > 编程知识 正文

第四范式和bc范式,第一第二范式第三范式关系

时间:2023-05-06 19:39:25 阅读:195718 作者:4837

关于函数依赖以及码的相关知识麻烦读者自己学习,这里只解释各个范式之间的区别及定义!

先来看看第一范式,第一范式是数据库关系模式的基础,换句话说,起码必须满足第一范式才是正确的,那么什么是第一范式呢?
第一范式就是在一个关系模式内,不能存在还可以再分的属性,即所有属性都必须是简单属性(不能再分了)
例如:一个关系模式(学校,学生,电话),学生还可以分为学号以及姓名,关系模式就部分和第一范式的条件。

第二范式的基础就是要先满足第一范式,在第一范式的基础上,要求在模式内非主属性都必须完全函数依赖于任何一个候选码。
例如:(学号,系,住处,课程号,学分)这个模式内(学号,课程号)作为主码,而学分这个非主属性就部分依赖于这个主码,所以这个关系模式就不符合第二范式,如果想要它符合第二范式,就需要将他拆分为两个关系表:(学号,课程号,系,住处),(课程号,学分)课程号作为外码使用。

第三范式的基础是先满足第二范式,在第二范式的基础上要求每个非主属性都不传递依赖于任何一个候选码。
向上面拆分了的第一个表(学号,课程号,系,住处)就不满足第三范式,因为学号决定系,而系可以决定住处,所以可以得到传递依赖学号决定住处,所以这个表不满足第三范式。

BC范式的基础是先满足第三范式,在第三范式的基础上要求每个属性都不部分依赖于任何一个候选码以及每个属性都不传递依赖与任何一个候选码。可以说BC范式已经可以满足大多数情境的需要了。
例如:对于一个关系模式(学生,教师,课程)中,(学生,课程)-> 教师,(学生,教师)-> 课程,教师 -> 课程,其中教师不是候选码,他却决定了其他的非主属性,所以该关系模式不属于BC范式。
有错请及时告知

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。