范式的判断

 

 

首先,以我的解释来定义第N范式的概念,但是大家必须自己明白一些基本的定义,比如说,什么是函数依赖,什么是传递函数依赖。

1.第一范式:若R的所有属性都是不可分的基本数据项,则R属于1NF

解释:这里,只要题目是给出的,一般而言,最起码它都是第一范式,这个大家必须知道。

2.第二范式:若R属于第一范式,且每一个非主属性完全依赖于码,则R属于第二范式。

解释:不能存在部分函数依赖,若存在,那么他就不属于第二范式(相当于只能沦为第一范式)什么叫做部分函数依赖呢?举个例子:关系R学生学号,教师编号,学生姓名),这里明明学生学号就可以决定学生姓名这个非主属性的,但是关系R把教师编号也当成关系的码了,说明存在学生学号->学生姓名这样的部分函数依赖,所以这个关系不是2NF,只是1NF

3.第三范式:关系模式R中不存在这样的码X,属性组Y及非主属性Z,使得X->Y,Y->Z成立,Y不能推出(这个符号恕我打不出来,专业术语叫不函数依赖,为了迎合大家的理解,所以叫做不能推出)X,则R属于3NF(不存在传递依赖)。

解释:在满足2    NF的基础上,不存在传递函数依赖的关系就是第三范式。什么叫做传递函数依赖呢?同样举个例子:关系R(过去,现在,未来),过去决定现在,现在决定未来,这个就是传递函数依赖,出现在了这个关系中,说明该关系不属于第三范式,只能退缩到第二范式。注意了,这个例子是突发奇想的,可以说没什么价值性,大家可以去看书上的那个(176页)关系:R(学生编号,系别,宿舍住址),我这个是为了让大家更清楚的理解说明是传递函数依赖,

4.BCNF范式:这里书上那个定义我就不给大家说了,相信没人愿意去理解那个定义,怎么说呢,在现在的数据库中,大多数的情况都是满足了3NF就已经最好了,毕竟数据库并不是越划分的多(体现在范式级别越高)越好,数据库还是需要一定的冗余的。

那么,BCNF3NF的区别在那里呢?1,2,3NF都是强调了非主属性对主属性的部分函数依赖与传递函数依赖,而BCNF则是连主属性的码的传递依赖与部分依赖都排除了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码敲上天.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值