数据库系统概论16范式.ppt

上传人:tian****1990 文档编号:11536519 上传时间:2020-04-27 格式:PPT 页数:33 大小:857KB
返回 下载 相关 举报
数据库系统概论16范式.ppt_第1页
第1页 / 共33页
数据库系统概论16范式.ppt_第2页
第2页 / 共33页
数据库系统概论16范式.ppt_第3页
第3页 / 共33页
点击查看更多>>
资源描述
6.2.3-6.2.6范式,一、规范化和范式关系模式设计的不好,会引起插入、删除、更新异常。在70年代,诸多专家和学者,各自研究了发生异常的类型及防止异常的方法,使得设计关系的准则得到了改进。这些用以防止异常发生的准则(技术)叫做规范化。规范化的关系模式被称为范式。范式是更符合某些规则的关系模式。关系规范化可按属性间不同的依赖程度分为第一范式、第二范式、第三范式、Boyce-Codd范式以及第四范式。人们对规范化的认识是有一个过程的,在1970年时已发现属性间的函数依赖关系,从而定义了与函数依赖关系有关的第一、第二、第三,及Boyce-Codd范式。在19761978年间,Fagin,Delobe以及Zanjolo发现了多值依赖关系,从而定义了与多值依赖有关的第四范式。,二、规范化的方法分解研究产生异常的原因发现:如果一个关系模式中包含两个或多个不同问题的事实,如:学生(sno,sdept、dean、cno、grade)。增加一行时,必须增加关于两个或多个主题的数据,删除一行时,也必须删除关于两个或多个主题的数据。因此,将关系规范化,就是让每个关系只有一个主题,如果某个关系模式有多于一个的主题,就把他们分解成多个关系(二维表),就像我们写文章,一个自然段中只有一个中心内容。,三、范式级别1NF2NF3NFBCNF4NF5NFE.F.Codd于1971年-1972年系统地提出了1NF,2NF,3NF的概念,讨论了规范化的问题。1974年Codd和Boyce共同提出BCNF。1976年Fagin提出了4NF,以后又有人提出了5NF。,其规范化的条件按上述次序越来越强。范式概念可以理解为符合某一种级别的关系模式的集合,关系模式R为第几范式可以写成RxNF。把低级范式的关系模式,通过分解转换为高一级范式的关系模式的集合,这个过程称为关系模式的规范化设计。,第一范式(1NF),第一范式(1NF):规定关系的每一个分量必须是一个不可分的数据项。关系数据模型要求所有的关系模式必须满足第一范式的要求。这是对关系模式最起码的规范化要求。,非第一范式的例子,如果关系模式仅仅满足第一范式的条件是不够的,可能会存在数据冗余和操作异常。为了消除这些数据冗余和操作异常,需要进行关系模式的规范化。,第二范式(2NF),定义1:如果关系模式R满足第一范式,且它的任何一个非主属性都完全函数依赖于任一个候选码,则R满足第二范式(简记为R2NF)。,例:学生表D(Sno,Sname,Sdept,Sage,Cno,Cname,Credit,Grade),是1NF但不是2NF的关系模式,在关系模式D中,非主属性Sname,sdept,sage,Cname,credit对码是部分函数依赖。D属于1NF,但不属于2NF。,则D表的函数依赖如下:snosname,snosdept,snosageCnoCname,cnocredit(Sno,Cno)Grade,候选码是(Sno,Cno),其函数依赖图为:,根据第二范式的定义,为消除部分函数依赖,将D关系模式分解为s、c和sc这3个关系模式:sc(Sno,Cno,Grade)函数依赖是:(Sno,Cno)GradeS(sno,sname,sdept,sage)函数依赖是:snosname,snosdept,snosageC(Cno,Cname,credit)函数依赖是:(CnoCname,Cnocredit)sc、S和C都消除了非主属性对码的部分函数依赖,因此都属于2NF。,关系s关系sc,关系c,是否存在冗余?尽管增加了字段,但字节数减少=(5+10+10+2)*3+(5+5+2)*8+(5+20+2)*6=339是否存在更新异常现象?,练习:设有关系模式如下:T(Sno,Cno,Cname,Tname,room,Grade)若每门课只由一位教师讲授但一个教师可以讲授多门课程,每位教师只在一个教室中讲课。,在关系模式T中,非主属性Cname,Tname,room对码是部分函数依赖,并存在传递函数依赖CnoTname,Tnameroom。T属于1NF,但不属于2NF。,则T表的函数依赖如下:(Sno,Cno)GradeCnoCnameCnoTnameTnameroom,候选码是(Sno,Cno),根据第二范式的定义,为消除部分函数依赖,将T关系模式分解为T1和C这2个关系模式:T1(Sno,Cno,Grade)函数依赖是:(Sno,Cno)GradeC(Cno,Cname,Tname,room)函数依赖是:(CnoCname,CnoTname,Tnameroom)T1和C都消除了非主属性对码的部分函数依赖,因此都属于2NF。,关系T1关系C,一个关系模式仅仅满足2NF仍是不够的,如在关系模式C(Cno,Cname,Tname,room)中,仍存在着插入、删除和修改异常问题:-新来的教师,还没有分配授课之前,教师的姓名及教室编号都不能加到关系中;-如果要修改教室编号,必须修改与教师授课相对应的所有元组中的教室编号,因为一位教师可能会教多门课。存在上述这些问题的原因是关系模式C中存在非主属性对码的传递函数依赖,所以要把关系模式C向第三范式转化,除去非主属性对码的传递函数依赖。,第三范式(3NF),定义2如果关系模式R满足2NF,并且它的任何一个非主属性都不传递函数依赖于任何候选码,则称R是第三范式3NF,记作R3NF。,在上一例题中,关系模式:C(Cno,Cname,Tname,room)其中存在非主属性room对码的传递函数依赖,即:CnoTname,Tnameroom,因此C不属于3NF。分解方法:将起传递作用的函数关系中的主属性(决定方)和非主属性取出单独构成一个关系模式,再将它的决定方和关系式中余下的属性加上主码,构成另一个关系模式。所以,将C分解为:C1(Cno,Cname,Tname)F=CnoTname,CnoCnameL(Tname,room)F=TnameROOM则关系模式C1和L中都没有非主属性对码的传递函数依赖,因此都属于3NF。,至此,关系模式T分解为下列3个属于3NF的一组关系模式:T1(Sno,Cno,Grade)C1(Cno,Cname,Tname)L(Tname,room)和关系模式T相比,这些关系模式是对现实世界更加精确的描述。把这3个关系进行连接,总能重构初始的关系。,第三范式还有问题吗?例:关系模式STJ(S学生,T教师,J课程),其包含的语义是:每位教师只教一门课程;每门课程由一位教师讲授,存在课程名相同而由不同的教师开设的情况;学生选课的同时,可以确定是由哪位老师来教。根据语义存在的函数依赖?该关系属于第几范式?,此关系的码是:ST或SJ,该关系有没有部分函数依赖和传递函数依赖呢?,结论:STJ模式,因为没有非主属性的部分函数依赖和传递函数依赖,所以3NF,F=TJ,STJ,SJT。,在这个表中,仍然存在着数据冗余、插入异常、删除异常。数据冗余:若选赵颖老师课的有30人,则要重复30次赵颖和数据结构。插入异常:有一个新老师开设了一门新的课程,在没有学生选课的情况下,是不能插入的。删除异常:删除s4学生时,也删除了王建华老师所教授的计算机专业的数据结构课程。修改复杂:课程改名,则所有选修的学生所在元组都要修改。,Boyce的新发现:已经属于第三范式的关系模式仍会出现数据冗余、插入异常、删除异常等问题。原因是:TJ,但T不是码。,BCNF范式,BCNF(BoyceCoddNormalForm)是由Boyce和Codd提出的,通常认为是3NF的修正,有时也称为扩充的第三范式。定义3关系模式R1NF,若对于R中的每个函数依赖XY,且YX时,X必含有候选码,则RBCNF。也就是说,关系模式R中,若R的每一个决定因素都包含候选码,则RBCNF。,所以,一个满足BCNF的关系模式,应具有如下性质:每个非主属性对每个码都是完全函数依赖和非传递函数依赖;所有主属性对每个不包含它的码也是完全函数依赖;没有任何属性完全函数依赖于非码。若RBCNF,则R3NF。若R3NF,则R不一定属于BCNF。由第三范式规范化成BCNF的方法仍然是投影分解:ST(S,T)TJ(T,J),前面所说的问题是否得到缓解呢?,模式设计示例,例1:订购的关系模式:订购(客户名,住址,联系电话,书号,书名,作者,出版社,社址)该关系模式的函数依赖集:F=客户名住址,客户名联系电话,书号书名,书号作者,书号出版社,出版社社址订购关系的候选码是(客户名,书号)。函数依赖图如下:,第一步:该模式属于1NF,满足的条件是元组的每个分量必须是不可分的数据项,但存在部分函数依赖和传递函数依赖。是一个不好的关系模式。,第二步:修改设计使其满足2NF,订购关系不属于2NF,因为存在非主属性对码的部分函数依赖,如:客户名住址,客户名联系电话,书号书名,书号作者,书号出版社。,将订购关系进行分解,消除部分函数依赖,得到三个关系模式符合2NF要求:客户(客户名,住址,联系电话)图书(书号,书名,作者,出版社,社址)订购(客户名,书号)在图书关系中,仍然存在数据冗余,以及插入和删除异常。,第三步:修改设计使其满足3NF,图书关系不属于3NF,因为存在非主属性对码的传递函数依赖,如:书号出版社社址,消除传递函数依赖,将图书分解如下:图书(书号,书名,作者,出版社)出版社(出版社,社址),至此,关系模式订购分解为4个3NF的关系模式:客户(客户名,住址,联系电话)图书(书号,书名,作者,出版社)订购(客户名,书号)出版社(出版社,社址),第四步:修改设计使其满足BCNF,关系模式订购分解为4个3NF的关系模式,实际上也满足BCNF。例如:关系模式客户(客户名,住址,联系电话)只有一个码“客户名”,没有任何非主属性对码有部分和传递函数依赖,所以客户3NF。同时,客户中客户名是唯一的决定因素,因此客户BCNF,例题1:设有如下所示的关系R,它是第几范式?为什么?(2)是否存在数据冗余及各种异常现象?若存在,则说明是在什么情况下发生?(3)将它分解为高一级范式,分解后的关系如何解决分解前可能存在的各种异常问题。,解:(1)它是2NF。因为R的候选码为课程名,而“课程名教师名”成立,“教师名课程名”不成立。又“教师名教师地址”,所以课程名教师地址,即存在非主属性教师地址对候选码课程名的传递函数依赖,因此R不是3NF。这里面不存在非主属性对候选码的的部分函数依赖,所以R是2NF。(2)存在。当删除某门课程时会删除不该删除的教师的有关信息。(3)分解为高一级范式如下所示:,R1,R2,分解后,若删除课程数据时,仅对关系R1操作,教师地址信息在关系R2中还是保留着,不会丢失教师方面的信息。,关于范式的辨证思考:范式揭示了一个关系框架中,各属性之间不同类型,不同层次的依赖关系。对于一个信息系统来说,如果所设计的数据库,均有良好的、合理的范式级别,那么,系统的正确性将自动得到某种保证。规范化准则是经过周密思考的,它作为设计数据库过程中的非常有用的辅助工具,直到数据库的逻辑设计。但它不像数学中严密的定理证明和运用,决不是万灵的妙药。需要设计者具体情况具体对待。关于范式的级别问题,不是级别越高,数据库模式越好。有时,有极其正当的理由,不将规范化进行到底,要根据实际应用情况,决定达到第几范式,一般情况下,达到3NF就可以了。,课堂练习:指出下列关系模式是第几范式?并说明理由。(1)R(X,Y,Z)F=XYZ(2)R(X,Y,Z)F=YZ,XZY(3)R(X,Y,Z)F=YZ,YX,XYZ(4)R(X,Y,Z)F=XY,XZ(5)R(W,X,Y,Z)F=XZ,WXY,解:(1)候选码为XY,所以RBCNF(2)候选码为XY和XZ,x,y,z都是主属性,所以R3NF,又因为YZ,Y不是码,所以R不属于BCNF(3)FM=YZ,YX,XY,XZ,候选码为X和Y,不存在部分函数依赖和传递函数依赖,并且函数依赖的左边都是码,所以RBCNF(4)候选码为X,所以RBCNF(5)候选码为WX,因为XZ,存在部分函数依赖,所以R1NF,本讲小结,1、关系模式必须满足1NF,即每一项都是不可再分的数据项。2、非主属性都完全函数依赖码,则为2NF。即消除非主属性对码的部分函数依赖关系。分解时把部分函数依赖关系中的属性作为一个新的关系。3、非主属性都不传递函数依赖码,则为3NF。分解时把传递作用的函数关系中的主属性(决定方)和非主属性取出单独构成一个关系模式。4、每一个函数依赖中的决定因素都包含候选码,则为BCNF。分解时把不包含候选码的函数依赖作为一个单独的关系模式存在。,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!