数据库system概论16范式.pptVIP

  • 12
  • 0
  • 约2.94千字
  • 约 33页
  • 2017-04-26 发布于四川
  • 举报
数据库system概论16范式

授课主题;6.2.3-6.2.6 范式;二、规范化的方法——分解 研究产生异常的原因发现:如果一个关系模式中包含两个或多个不同问题的事实,如:学生(sno,sdept、dean、cno、grade) 。增加一行时,必须增加关于两个或多个主题的数据,删除一行时,也必须删除关于两个或多个主题的数据。因此,将关系规范化,就是让每个关系只有一个主题,如果某个关系模式有多于一个的主题,就把他们分解成多个关系(二维表),就像我们写文章,一个自然段中只有一个中心内容。;三、范式级别 1NF ?2NF ?3NF ?BCNF ?4NF ?5NF E.F.Codd于1971年-1972年系统地提出了1NF,2NF,3NF的概念,讨论了规范化的问题。 1974年Codd和Boyce共同提出BCNF。 1976年Fagin提出了4NF,以后又有人提出了5NF。;第一范式(1NF);非第一范式的例子;第二范式(2NF);例:学生表D(Sno,Sname,Sdept,Sage,Cno,Cname,Credit,Grade);在关系模式D中,非主属性Sname,sdept,sage,Cname,credit对码是部分函数依赖。D属于1NF,但不属于2NF。; 根据第二范式的定义,为消除部分函数依赖,将D关系模式分解为s、c和sc这3个关系模式: sc(Sno,Cno,Grade) 函数依赖是: (Sno,Cno) →Grade S(sno,sname,sdept,sage) 函数依赖是:sno→sname,sno→sdept,sno→ sage C (Cno,Cname,credit) 函数依赖是:(Cno→Cname,Cno→credit) sc、S和C都消除了非主属性对码的部分函数依赖,因此都属于2NF。;Sno(5);练习:设有关系模式如下: T(Sno,Cno,Cname,Tname,room,Grade) 若每门课只由一位教师讲授但一个教师可以讲授多门课程,每位教师只在一个教室中讲课。;; 根据第二范式的定义,为消除部分函数依赖,将T关系模式分解为T1和C这2个关系模式: T1(Sno,Cno,Grade) 函数依赖是: (Sno,Cno) →Grade C (Cno,Cname,Tname,room) 函数依赖是:(Cno→Cname,Cno→Tname,Tname →room) T1和C都消除了非主属性对码的部分函数依赖,因此都属于2NF。;Cno; 一个关系模式仅仅满足2NF仍是不够的,如在关系模式C (Cno,Cname,Tname,room)中,仍存在着插入、删除和修改异常问题: --新来的教师,还没有分配授课之前,教师的姓名及教室编号都不能加到关系中; --如果要修改教室编号,必须修改与教师授课相对应的所有元组中的教室编号,因为一位教师可能会教多门课。 存在上述这些问题的原因是关系模式C中存在非主属性对码的传递函数依赖,所以要把关系模式C向第三范式转化,除去非主属性对码的传递函数依赖。;第三范式(3NF);在上一例题中,关系模式: C (Cno,Cname,Tname,room) 其中存在非主属性room对码的传递函数依赖,即: Cno →Tname,Tname →room,因此C不属于3NF。 分解方法:将起传递作用的函数关系中的主属性(决定方)和非主属性取出单独构成一个关系模式,再将它的决定方和关系式中余下的属性加上主码,构成另一个关系模式。 所以,将C分解为: C1(Cno,Cname,Tname) F={Cno →Tname,Cno →Cname} L(Tname,room) F={Tname→ROOM} 则关系模式C1和L中都没有非主属性对码的传递函数依赖,因此都属于3NF。; 至此,关系模式T分解为下列3个属于3NF的一组关系模式: T1(Sno,Cno,Grade) C1(Cno,Cname,Tname) L (Tname,room) 和关系模式T相比,这些关系模式是对现实世界更加精确的描述。把这3个关系进行连接,总能重构初始的关系。;第三范式还有问题吗??? 例:关系模式STJ(S学生,T教师,J课程),其包含的语义是:每位教师只教一门课程;每门课程由一位教师讲授,存在课程名相同而由不同的教师开设的情况;学生选课的同时,可以确定是由哪位老师来教。 根据语义存在的函数依赖? 该关系属于第几范式?;S;Boyce的新发现: 已经属于第三范式的关系模式仍会出现数据冗余、插入异常、删除异常等问题。 原因

文档评论(0)

1亿VIP精品文档

相关文档