数据库范式判定(1NF 2NF 3NF BCNF 区别)

*考试复习周怕忘了再写一个备忘 *

1.范式概念

关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同范式

1)1NF

满足最低要求的范式

2) 2NF

满足1NF,且每一个非主属性完全函数依赖于任何一个候选码

3) 3NF

在2NF基础上,任何非主属性既不传递依赖于主属性,也不部分依赖于主属性(在2NF基础上消除了传递依赖)

4)BCNF

  1. 所有非主属性对每一个码都是完全函数依赖;
  2. 所有非主属性对每一个不包含它的码也是完全函数依赖;
  3. 没有任何属性完全函数依赖与非码的任何一组属性
    满足三点即是BCNF,如果属于BCNF,同样也属于3NF(反过来不行)

2.做题判断方法(结合自己理解的思路来)

  1. 先判断那些是主属性和非主属性
  2. 以3NF的条件为基础来判断最快,先判断非主属性是否有传递函数依赖和部分函数依赖
  3. 如果存在就肯定不3NF更不可能是BCNF了,如果都不存在就进一步判断是不是BCNF

3.举个例子

  1. 关系模式SJP(S,J,P),S是学生,J表示课程,P表示名次。每一个学生选修每门课程的成绩有一定的名次,每门课程中每一名次只有一个学生,可得一下函数依赖
    (S,J)→P; (J,P)→S
    所以(S,J)和(J,P)都是候选码。因为没有非主属性,而且也不存在部分函数依赖和传递依赖,所以属于BCNF

  2. 关系模式STJ(S,T,J)中,S表示学生,T表示老师,J表示课程。每一个教师只教一门课程,每门课程有若干个老师,某学生选订某门课,就对应一个老师。所以有一下函数依赖
    (S,J)→T, (S,T)→J, T→J
    所以(S,J)和(S,T)都是候选码。STJ是3NF,因为没有非主属性部分函数依赖和传递依赖,但不是BCNF,因为T可以决定J,不满足BCNF条件的第2条。

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值