ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:47.42KB ,
资源ID:12352770      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/12352770.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据库技术及应用课程第5章关系数据理论与模式求精.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据库技术及应用课程第5章关系数据理论与模式求精.docx

1、数据库技术及应用课程第5章关系数据理论与模式求精第5章关系数据理论与模式求精例 5.1考虑学生选课关系模式 SCE(studentNo, studentName, courseNo, courseName,score),属性集studentNo, courseNo是唯一候选码,也是主码。如果允许一名学生选修多 门课程,且一门课程可被多名学生选修, 则该关系实例可能出现数据冗余, 如图5-1所示。studentNoStudentNamecourseNocourseNamescoreS0700001李小勇C001高等数学98S0700001李小勇C002离散数学82S0700001李小勇C006数

2、据库系统原理56S0700002刘方晨C003计算机原理69S0700002刘方晨C004C语言程序设计87S0700002刘方晨C005数据结构77S0700002刘方晨C007操作系统90S0700003王红敏C001高等数学46S0700003王红敏C002离散数学38S0700003王红敏C007操作系统50图5-1 学生选课关系SCE实例这种冗余会带来下列不好结果。冗余存储:学生姓名和课程名被重复存储多次。更新异常:当修改某学生的姓名或某课程的课程名时,可能只修改了部分副本的 信息,而其他副本未被修改到。插入异常:如果某学生没有选修课程,或某门课程未被任何学生选修时,则该学 生或该课

3、程信息不能存入数据库;否则,违背了实体完整性原则 (主码值不能为空)。删除异常:当一学生的所有选修课程信息都被删除时, 则该学生的信息将被丢失。同样,当删除某门课程的全部学生选修信息时,该课程的信息也将被丢失。关系模式SCE之所以会产生上述问题,是由于该模式中某些属性之间存在依赖关系, 导致数据冗余而引起的。 在SCE中,存在的属性依赖关系有:studentNo决定studentName,courseNo 决定 courseName, studentNo, courseNo 共同决定 score。女口 果将 SCE 分解为 S(studentNo, studentName)、C(courseN

4、o, courseName)和 E (studentNo, courseNo, score)三个关系模式,则 SCE中原有的三种属性依赖关系就分别分解到每个单独的关系模式中去了,这样就不会再出现上述异常现象,且数据冗余也得到了有 效控制。例 5.2设一关系模式 STU (studentNo, studentName, sex, birthday, native, classNo), 其中studentNo为主码。假设将 STU分解为以下两个子模式:STU1 (stude ntNo, stude ntName)STU2 (stude ntName, sex, birthday, n ative,

5、 classNo)该分解存在的缺陷之一是可能导致信息损失。我们知道,在设计 STU实体时,考虑到可能存在同名的学生,故将 studentNo属性作为STU的主码,以唯一标识 STU中的每个学生实例。假设 STU中有以下两个元组:(S0700005,王红,男,1992-4-26,江西省南昌市, CS0702)(S0800005,王红,女,1995-8-10,湖北省武汉市, CP0802)如图5-2所示,首先将STU模式下的这两个元组分解为 STU1、STU2模式下的元组;然后利用自然连接,试图根据分解后的元组还原原来的元组。结果显示,还原后除了得 到原来的两个元组外,还多出了两个新元组。表面上看

6、得到了更多的元组,但实际上得 到的信息却变少了,因为无法区分哪个信息是属于哪个王红的?显然,这种分解不是我 们所希望看到的, 称之为有损分解(lossy decomposition)。反之,如果能够通过连接分解后所得到的较小关系完全还原被分解关系的所有实例,则称之为无损分解(losslessdecomposition),也称该分解具有无损连接特性。studentNostudnetNamesexbirthdaynativeclassNoS0700005王红男1992-4-26江西省南昌市CS0702S0800005王红女1995-8-10湖北省武汉市CP0802studentNostudnetN

7、ameSexbirthdaynativeclassNoS0700005王红男1992-4-26江西省南昌市CS0702S0700005王红女1995-8-10湖北省武汉市CP0802S0800005王红男1992-4-26江西省南昌市CS0702S0800005王红女1995-8-10湖北省武汉市CP0802图5-2有损分解举例上述分解的另一缺陷是部分属性之间的依赖关系已丢失。 在STU中,属性studentNo是主码,可决定其中的全部属性。但是将关系模式 STU分解为STU1、STU2后,由于属性sex、birthday、age、n ative、classNo等与属性 stude ntNo分

8、属于不同的关系模式中,那 么这些属性对 studentNo的依赖关系也就不再存在。也就是说,这种分解不是保持依赖 (dependency preserving)的分解。而我们希望看到的是,被分解关系模式上的所有依赖关 系都应该在分解得到的关系模式上保留。5.2 函数依赖定义例 5.7 r(R)=r(A, B, C, G, H, I),F= A;B, A; C, CG;H, CG; I, B; H,计算(AG)+。 算法第一次循环的执行步骤如下 ,结果为closure=ABCGHI。步骤1.2.3.FD closure初值 AGAr B ABGA C ABCG4.CG HABCGH5.CG; I

9、ABCGHI6.B HABCGHI算法第二次循环后的结果为 closure=ABCGHI ,没有变化,算法终止。因此, (AG)+=ABCGHI。细心的读者可能会发现,上例中的算法实际在完成第一次循环的步骤 5后即可终止,因为closure已包含R的全部属性。请读者自己完成上述算法的改进。计算属性集闭包的作用可归纳如下:(1)验证一/是否在F+中:看是否有二。(2)判断:是否为r(R)的超码:通过计算:+,看其是否包含R的所有属性。例如,(AG)+ =ABCGHI,贝U AG 为 r(R)的超码。(3)判断:是否为r(R)的候选码:若:是超码,可检验:包含的所有子集的闭包是否包含R的所有属性。

10、若不存在任何这样的属性子集,则 :是r(R)的候选码。(4)计算F+ :对于任意匸R,可通过找出 于,对任意的 E于,可输出一个 匸 S。例5.10 给定关系模式 r(R)=r(A, B, C, D, E),函数依赖集 F=A B, BC E,ED;A,找出r(R)的所有候选码。(1)属性集CD没有在函数依赖的右部出现,故 X=CD为候选码的一部分;(2)因(CD)+=CD帜,故CD不是候选码;(3)由于没有在函数依赖右部出现但左部不出现的属性,故 Y=_ ;(4)在属性集R-X-Y=ABE中寻找与X联合起来构成候选码的属性(集):(A, CD)+=ACDBE=R,故 ACD 为候选码;(B,

11、 CD)+=BCDEA = R,故 BCD 为候选码;(E, CD)+=ACDBE=R,故 ECD 为候选码。因此,关系模式 r(R)的候选码有 ACD、BCD和ECD。*5.3.3 正则覆盖例5.13 考虑关系模式 r(R)=r(A, B, C)和函数依赖集 F=A BC, BC, B,ABtC,计算F的正则覆盖Fc。第1步,合并函数依赖:将At BC和At B合并为 AtBC F=At BC, BtC, ABtC。第2步,去除无关属性:对于ABtC,根据图5-9(a)的算法可检测 A是无关的。因此, 去除无关属性 A后,ABC 变为BtC,而BtC已在F冲存在,贝U F=Bt C, AtB

12、C。对于BtC,由于其左右两边都为单属性,故不存在无关属性。对于AtBC,根据图5-9(b)的算法可检测 C是无关的。因此,去除无关属性 C后,AtBC 变为 At B,则 F=BtC, At B。F中的函数依赖左半部都是唯一的,且都不存在无关属性,因此 Fc= BtC, AtB。对于正则覆盖,需做如下说明:(1)可以证明Fc与F具有相同的闭包;(2)Fc不包含无关属性,每个依赖是最小的,且是必要的;(3)正则覆盖不一定唯一。5.3.4无损连接分解例 5.25 r(R)=r(A, B, C, D, G, H), F=A宀BC, DG 宀H , D宀A,判断关系模式 r(R)是否属于BCNF范式

13、?如果不是,则进行 BCNF分解。因为DG为关系r(R)的候选码,则AtBC的决定属性 A不是超码,因此r(R).BCNF。 按BCNF分解算法,关系r(R)可分解为:步骤1.根据函数依赖 AtBC,分解关系r(R)为ri(Ri)=ri(A, B, C), Fi=AtBC A 是候选码,ri(Ri) BCNFr2(R2)=2(A, D, G, H), F2= DGth, DtA DG 是候选码 步骤2.因为Dt a的决定属性 D不是关系2(R2)的超码,即r2(R2pBCNF。同理, 根据函数依赖D T A,分解关系2(R2)为2i(R2i)=2i(D, A), F2i= DTA D 是候选码

14、,2i(R2i) BCNF22(R22)=22(D, G, H), F22= DG t H DG 是候选码,22(R22)WBCNF最后,分解后得到的关系 ri(A, B, C)、r2i(D, A)和22(D, G, H)都属于BCNF。例 5.26 r(R)=r(A, B, C, D, G, H), F=ABt GH, CDt GH, Bt a, DtB,判断关 系模式r(R)是否属于BCNF范式?如果不是,则进行 BCNF分解。因为CD为关系r(R)的候选码,则ABtGH的决定属性 AB不是超码,因此r(R) .BCNF。 按BCNF分解算法,关系r(R)可分解为:步骤i.根据函数依赖 A

15、BtGH,分解关系r(R)为ri(Ri)=ri(A, B, G, H), Fi= ABtGH AB 是候选码,ri(Ri) BCNFr2(R2)=2(A, B, C, D), F2=Bta, DtB CD 是候选码,丢失函数依赖 CDtGH 步骤2.因为BtA的决定属性 B不是关系 R2)的超码,即r2(R2pBCNF。同理,根 据函数依赖Bt A,分解关系辽(巳)为r2i(R2i)=r2i(B, A), F2i=BtA B 是候选码,r2i(R2i) BCNF22(R22)=22(B, C, D) , F22= DT B 一一 CD 是候选码步骤3.因为DT B的决定属性 D不是关系22(R

16、22)的超码,即22(R22)yBCNF。同理, 根据函数依赖 D T B,分解关系22(R22)为r22i(R22i)=r22i (D, B), F22i = D t B D 是候选码,r22i(R?2i ) BCNF222(R222)=222(C, D) , F222=;: CD 是候选码,222(R222),BCNF最后,分解后得到的关系 ri(A, B, G, H)、r2i(B, A)、22i(D, B)和 r222(C, D)都属于 BCNF。*5.5.2 3NF分解算法例 5.27 r(R)=r(A, B, C, D), F= AB CD, B)C, ACB,判断关系模式 r(R)

17、是否 属于3NF范式,并进行3NF分解。计算可知,AB和AC都为r(R)的候选码,故F中全部依赖都满足 3NF定义中的条件, 因此r(R)3NF。可根据3NF算法将r(R)分解成满足3NF范式的较小关系模式:步骤1.计算Fc:经检测知,ABrCD中的C是无关属性,去除后得Fc=ABD, B C, AC B。步骤2.根据上述三个函数依赖依次进行分解得:ri(Ri)= ri(A, B, D)r2(R2)= r2(B, C)3(R3)= r3(A, B, C)步骤3.由于r(R)的候选码AB已被ri(Ri)和包含,故分解结束。因此,r(R)的分解结果为 ri(A, B, D)、r2(B, C)和 r

18、3(A, B, C)。例 5.28 r(R)=r(A, B, C, D, G, H), F=ABGH, CDGH , A, DB,判断关系模式r(R)是否属于3NF范式?如果不是,则进行 3NF分解。计算可知,CD是关系r(R)的候选码,因此关系 r(R)中存在部分和传递函数依赖,故r(R) 3NF。按3NF分解算法,分解关系 r(R)的步骤为:步骤i.计算Fc:(1)因为在F下有B+=ABGH,所以AB GH中的A是左无关属性,去掉无关属性 A后,F=BGH, CD.GH, B_.A, D_. B;(2)因为在F下有D+=DBAGH,所以CDGH中的C是左无关属性,去掉无关属性C 后,F=B

19、 t GH , D t GH , B f, D B;(3)因为在卩下D+=DBAGH,所以DtGH中的G是右无关属性,去掉无关属性 G后,F=Bt GH , D t H , Bt A, D t B;(4)合并左边相同依赖后, F=BtAGH , DtBH;(5)因为在卩下D+=DBAGH,所以DtBH中的H是右无关属性,去掉无关属性 H后,最后得到 Fc=BtAGH , Dt B。步骤2.分解关系r(R):ri(Ri)=ri(B, A, G, H), Fci= BtAGH B 是候选码,ri(Ri) 3NFr2(R2)=r2(D, B), Fc2= DtB D 是候选码,r2(R2)3NF步骤

20、3.由于r(R)的候选码CD没有被ri(Ri)或2(巳)包含,故增加如下关系: 3(R3)=3(C, D) CD 是候选码,r3(RJ 3NF最后,分解后得到的关系 ri(B, A, G, H)、r2(D, B)和g(C, D)都属于3NF。例5.29 假设大学选课系统中课程与教师的关系模式可设计为:CourseTeacher (courseNo, courseName, creditHour, courseHour,teacherNo , teacherName, title, degree, teachNumber)其中,属性集courseNo, teacherNo是主码,teachNum

21、ber的含义是讲授次数。试对该模 式进行求精,以达到 BCNF范式要求。步骤1.分析函数依赖关系及判断范式通过分析关系模式 CourseTeacher可知,存在以下函数依赖:courseNo = courseName, creditHour, courseHour ; teacherNo teacherName, title, degree ;courseNo, teacherNo teachNumber。显然,存在非主属性对 主码的部分依赖,故 CourseTeacher不属于3NF范式,更不属 于BCNF范式。步骤2模式分解由于存在部分函数依赖: courseNo 一; courseNam

22、e, creditHour, courseHour ,违背了BCNF条件,依BCNF分解算法,可将关系模式 CourseTeacher分解为以下两个关系模式:Course (courseNo, courseName, creditHour, courseHour);Teaching (courseNo, teacherNo, teacherName, title, degree, teachNumber)可验证关系模式Course已满足BCNF要求,且是无损分解(因为公共属性courseNo是 Course的主码)。而在关系模式 Teachi ng中,由于存在部分函数依赖 :teacherNo

23、 teacherName, title, degree,因此可以进一步分解为:Teacher (teacherNo, teacherName, title, degree );NewTeaching ( courseNo, teacherNo, teachNumber)。可验证关系模式 Teacher和NewTeaching都已满足 BCNF要求,且是无损分解 (因为 公共属性teacherNo是Teacher的主码)。步骤3.综合上述分解结果,关系模式 CourseTeacher可以分解为如下满足 BCNF要求的三个关系模式:Course (courseNo, courseName, creditHour, courseHour);Teacher (teacherNo, teacherName, title, degree ); NewTeaching ( courseNo, teacherNo, teachNumber)。仔细分析可以发现, 上述得到的结果关系模式, 等价于一个由实体集 Course、Teacher以及它们之间的多对多联系集 NewTeaching构成的E-R图转化而来的关系模式。因此,模式求精是数据库设计过程中非常重要的一步,可在关系数据理论的指导下检查和改进 设计中存在的不足和缺陷,以保证最终的设计结果尽可能地满足应用需求。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1