数据库范式判定(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条。

发布了3 篇原创文章 · 获赞 1 · 访问量 59
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览