第一范式、第二范式、第三范式以及BC范式

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

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

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

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

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

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值