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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

数据库第二章课后习题解答.docx

1、数据库第二章课后习题解答数据库第二章课后习题解答(共14页)第3部分 习题及其解答第一章的两道题3-2 习题2 分别把习题、习题的ER图转换成关系模型数据结构。【参考答案】1习题的ER图可转换成如下的关系模型数据结构。 程序员(编号,姓名,性别,年龄,单位,职称),其中编号是关键字; 程序(程序名称,版权,专利号,价格),其中程序名称是关键字; 设计(编号,程序名称,开始时间,结束时间),其中(编号,程序名称)是关键字。2习题的ER图可转换成如下的关系模型数据结构。 工厂(工厂名称,厂址,联系电话),其中工厂名称是关键字; 产品(产品号,产品名,规格,单价),其中产品号是关键字; 工人(工人编

2、号,姓名,性别,职称,工厂名称,雇用期,月薪),其中工人编号是关键字,工厂名称是外关键字,雇用期和月薪是联系属性; 生产(工厂名称,产品号,月产量),其中(工厂名称,产品号)是关键字,生产关系是表示联系的。 判断下列情况,分别指出它们具体遵循那一类完整性约束规则1用户写一条语句明确指定月份数据在112之间有效。2关系数据库中不允许主键值为空的元组存在。3从A关系的外键出发去找B关系中的记录,必须能找到。【解答】1用户用语句指定月份数据在112之间有效,遵循用户定义的完整性约束规则。2关系数据库中不允许主键值为空的元组存在,遵循实体完整性约束规则;3从A关系的外键出发去找B关系的记录,必须能找到

3、,遵循引用完整性约束规则。 判断下列情况,分别指出他们是用DML还是用DDL来完成下列操作1创建“学生”表结构。2对“学生”表中的学号属性,其数据类型由“整型”修改为“字符型”。3把“学生”表中学号“021”修改为“025”。【解答】1创建“学生”表结构,即定义一个关系模式,用DDL完成。2修改“学生”表中学号属性的数据类型,即修改关系模式的定义,用DDL完成。3修改“学生”表中学号属性的数据值,即对表中的数据进行操作,用DML完成。 给出两个学生选修课程关系A和B,属性为姓名、课程名、成绩。分别写出后列各关系代数运算的结果关系。1A和B的并、交、差、乘积、自然联接。2 (A); 2= (AB

4、); ( =(A-B)。4; 。5AB; AB; AB 。【解答】1结果关系见表(a)表(e)。2结果关系见表(f)表(i)。3结果关系见表(j)表(l)。表(l) ( (A-B) 结果关系姓名罗杰明4结果关系见表(m)表(n)。5结果关系见表(o)表(q)。表(q) AB 结果关系姓名课程名成绩李红数学89黄边晴C+语言86叶晴数学73假设教学数据库中已建立三个关系:学生关系 student(sno,sname,sex,birth,height,class,address) 课程关系 course(cno,cname,credit) 选修关系 elective(sno,cno,grade)

5、用关系代数表达式表达下列查询:1检索学习课程号为C06的学生学号与成绩。2检索学习课程号为C06的学生学号与姓名。3检索学习课程名为ENGLISH的学生学号与姓名。4检索选修课程号为C02或C06的学生学号。5检索至少选修课程号为C02和C06的学生学号。6检索没有选修C06课程的学生姓名及其所在班级。7检索学习全部课程的学生姓名。8检索学习课程中包含了S08学生所学课程的学生学号。【解答】1检索学习课程号为C06的学生学号与成绩。 sno, grade ( cno=C06 (elective) 或 1,3 ( 2=C06 (elective)2检索学习课程号为C06的学生学号与姓名。 sno

6、, sname ( cno=C06 (studentelective)3检索学习课程名为ENGLISH的学生学号与姓名。 sno, sname ( cname=ENGLISH (studentelectivecourse)4检索选修课程号为C02或C06的学生学号。 sno ( cno=C02cno=C06 (elective)5检索至少选修课程号为C02和C06的学生学号。 sno ( 1=42=C025=C06 (elective elective)6检索没有选修C06课程的学生姓名及其所在班级。 sname, class (student) - sname, class ( cno=C0

7、6 (studentelective)7检索学习全部课程的学生姓名。 sname (student( sno, cno (elective) cno (course)8检索学习课程中包含了S08学生所学课程的学生学号。 sno, cno (elective) ( cno ( sno=S08 (elective) 已知关系模式R(A,B,C,D,E)和函数依赖集 F=ABC, BD, CE, ECB, ACB, DBE,试问ACBE能否从F导出【解答】 方法一:运用推理规则推导。 对已知的ACB和BD,根据3传递律,ACD成立; 对已证的ACD和已知的DBE,根据3传递律,ACBE成立;即ACB

8、E能从F中导出。 方法二:按算法(求属性集合X关于函数依赖集F的闭包X+),求(AC)+。(1) 置初始值 A=,A*=AC;(2) 因AA*,置A=AC;(3) 第一次扫描F,找到CE和ACB,其左部 AC,故置A*=ACEB。搜索完,转(4);(4) 因AA*,置A=ACEB;(5) 第二次扫描F,找到ABC,BD和ECB,其左部 ACEB,故置A*=ACEBD。搜索完,转(6);(6) 因AA*,置A=ACEBD;(7) 第三次扫描F,找到DBE,其左部 ACEBD,故置A*=ACEBD。搜索完,转(8);(8) 因A=A*,转(9);(9) 输出A*,即(AC)+=ACEBD。因为BE

9、 (AC)+ ,所以ACBE能够从F中导出。方法三:运行算法的VB程序,输入相应数据后,得出(AC)+=ACEBD,如图所示。因为BE (AC)+ ,所以ACBE能够从F中导出。图 运行算法的VB程序,求(AC)+。2求属性集BG关于F的闭包(BG)+,其算法步骤如下:(1) 置初始值 A=,A*=BG;(2) 因AA*,置A=BG;(3) 第一次扫描F,找到BCE,其左部 BG,故置A*=BGCE。搜索完,转(4);(4) 因AA*,置A=BGCE;(5) 第二次扫描F,找到GCA,其左部 BGCE,故置A*=BGCEA。搜索完,转(6);(6) 因AA*,置A=BGCEA;(7) 第三次扫

10、描F,找到ACPE,AP,GAB和AEGB,其左部 BGCEA,故置A*=BGCEAP。搜索完,转(8);(8) 因AA*,置A=BGCEAP;(9) 第四次扫描F,找到PGA,PABG和ABCPH,其左部 BGCEAP,故置A*=BGCEAPH。搜索完,转(10);(10) 因AA*,置A=BGCEAPH;(11) 第五次扫描F,找不到其左部 BGCEAPH的函数依赖,转(12);(12) 因A=A*,转(13);(13) 输出A*,即(BG)+=BGCEAPH。 运行算法的VB程序,输入相应数据后,可验证(BG)+=BGCEAPH,如图所示。图 运行算法的VB程序,求(BG)+。 已知关系

11、模式R(A,B,C,D,E)和函数依赖集F=AD,ED,DB,BCD,DCA,问分解=R1(A,B),R2(A,E),R3(E,C),R4(D,B,C),R5(A,C)是否为R的无损联接分解。【解答】1根据“测试一个分解是否为无损连接分解”的算法,首先建立习题的初始R表,如表(1)所示。表(1) 习题的初始R表ABCDEABAEECDBCACaabbaabbabbbaaabbbabbaabb2反复检查F的每一个函数依赖,修改R表中的元素,一直到表格不能修改为止。 对AD,第1,2,5行的A同为a1,把这三行的D均改为b14; 对ED,第2,3行的E同为a5,把这两行的D均改为b14; 对DB,

12、第1,2,3,5行的D同为b14,把这四行的B均改为a2; 对BCD,第3,4,5行的BC同为(a2,a3),把这三行的D均改为a4; 对DCA,第3,4,5行的DC同为(a4,a3),把这三行的A均改为a1; 重复扫描F,对AD,五行的A同为a1,把这五行的D均改为a4; 表格不能再修改了,算法终止,结果R表如表(2)所示。第3行全为a,即是R的无损联接分解。若本题用算法的VB程序解题,结果见图。表(2) 习题的结果R表ABCDEABAEECDBCACaaaaaaaaaabbaaaaaaaabaabb图 习题用算法的VB程序解题 试分析下列分解是否具有无损联接和保持函数依赖的特点。1设R1(

13、ABC),F1=AB,1=AB,AC。2设R2(ABC),F2=AC,BC,2=AB,AC。3设R3(ABC),F3=AB,3=AB,BC。4设R4(ABC),F4=AB,BC,4=AC,BC。5设R5(ABC),F5=ABC,CA,5=AC,BC。【解答】1因为ABAC=A,AB-AC=B,AB成立,所以分解1具有无损连接性。运行算法的VB程序如图(a)所示,验证结果正确。因为 AB(F1) AC(F1) = AB = F1 ;所以分解1是保持函数依赖集F1的。图(a) 分解1具有无损连接性2因为ABAC=A,AC-AB=C,AC成立,所以分解2具有无损连接性。运行算法的VB程序如图(b)所

14、示,验证结果正确。因为 AB(F2) AC(F2) = AC F2 ;所以分解2不具有保持函数依赖特性。图(b) 分解2具有无损连接性 3因为(ABBC)(AB-BC),而且(ABBC)(BC-AB),所以分解3不具有无损连接特性。运行算法的VB程序如图(c)所示,验证结果正确。因为 AB(F3) BC(F3) = AB = F3 ;所以分解3是保持函数依赖集F3的。图(c) 分解3不具有无损连接特性4因为(ACBC)(AC-BC),而且(ACBC)(BC-AC),所以分解4不具有无损连接特性。运行算法的VB程序如图(d)所示,验证结果正确。因为 AC(F4) BC(F4) = BC F4 ;

15、所以分解4不具有保持函数依赖特性。图(d) 分解4不具有无损连接特性5因为ACBC=C,AC-BC=A,CA成立,所以分解5具有无损连接性。运行算法的VB程序如图(e)所示,验证结果正确。因为 AC(F5) BC(F5) = CA F5 ;所以分解5不具有保持函数依赖特性。图(e) 分解5具有无损连接性 已知关系模式R(A,B,C,D)和函数依赖集F=AB,BC,AD,DC,=AB,AC,AD是R的一个分解。1求出F在的每个模式上的投影。2相对于F是无损连接分解吗3保持依赖吗【解答】1 (AB)(F)=AB; (AC)(F)=AC; (AD)(F)=AD;2相对于F是无损连接分解,见图。图 分

16、解=AB,AC,AD相对于F是无损连接分解3因为 (AB)(F) (AC)(F) (AD)(F)=AB,AC,AD,与F比较,丢失了BC和DC,所以分解不保持依赖。 已知关系模式R(A,B,C,D)和函数依赖集F=AC,DC,BDA,=AB,ACD,BCD是R的一个分解。试证明相对于F不是无损联接分解。【解答】 相对于F不是无损连接分解,见图。图 分解=AB,ACD,BCD相对于F不是无损连接分解 已知关系模式R(A,B,C,D)和函数依赖集F=AB,BC,DB,1把R分解成ACD,BD,试求F在这两个模式上的投影。2R1(ACD)和R2(BD)是BCNF吗如果不是,请作进一步分解。【解答】

17、1 (ACD)(F)=AC,DC; (BD)(F)=DB。分解ACD,BD丢失了函数依赖集F中的AB和BC,所以该分解不具有保持函数依赖特性。2. 对R1(ACD)和R2(BD)做如下分析。 在R1(ACD)中,有AC,DC,(AD)+=ACD;(AD)是键,C是非主属性。R1为1NF,但R1中的非主属性C部分依赖于候选键,所以R1不是2NF,也不是3NF和BCNF。可把R1为进一步分解为AC,AD或DC,AD,见图(a)和(b)。图(a) 把R1为分解为AC,AD,是无损连接分解在分解AC,AD中,AC有AC,A是键,C是非主属性,AC为BCNF;AD的键是(AD),AD也为BCNF。分解A

18、C,AD是无损连接分解,但丢失了函数依赖DC。图(b) 把R1为分解为DC,AD,也是无损连接分解在分解DC,AD中,DC有DC,D是键,C是非主属性,DC为BCNF;AD的键是(AD),AD也为BCNF。分解DC,AD是无损连接分解,但丢失了函数依赖AC。 在R2(BD)中,有DB,D+=DB;D为键且B不在D中,所以R2是BCNF。 已知关系模式R(A,B,C,D)和函数依赖集F1=AB,BC;F2=BC,CD。R的一个分解=AB,BC,CD。1若F1是R上的函数依赖集,相对于F1是无损连接分解吗2若F2是R上的函数依赖集,相对于F2是无损连接分解吗在分析过程中,如果认为不是无损连接分解,

19、试举出反例说明。【解答】 1如图(a)所示,相对于F1不是无损连接分解。图(a) 相对于F1不是无损连接分解 假设关系模式R的一个实例r如表(a)所示。r的分解见表(b),(c),(d)。ABBCCD的结果关系见表(e)。显然易见,相对于F1不是无损连接分解。表 不是无损连接分解的实例说明 2如图(b)所示,相对于F2是无损连接分解。图(b) 相对于F2是无损连接分解 有关系模式R(学号Sno,课程号Cno,成绩Grade,任课教师Tname,教师电话Ttel),假设:每个学生选修一门课只取得一个成绩;每门课只有一个教师任教;不存在教师同名的情况;每个教师只有一个家庭电话。1写出关系模式R的函

20、数依赖集和候选关键字。2把R分解成2NF模式集并说明理由。3把R分解成3NF模式集并说明理由。4把R分解成BCNF模式集并说明理由。【解答】1关系模式R中主要的函数依赖有:(Sno,Cno)Grade 每个学生选修一门课后,对应取得一个成绩;CnoTname 每门课只有一个教师任教;TnameTtel 每个教师只有一个家庭电话;(Sno,Cno)(Sno,Cno,Grade,Tname,Ttel) 键(Sno,Cno)惟一决定表中的一行。在R中,Sno,Cno是主属性,其余的属性Grade,Tname,Ttel为非主属性。R符合关系定义,R 1NF。但R中存在非主属性对候选键的部分依赖CnoT

21、name,所以R 2NF。2要消除非主属性对候选键的部分依赖,可把关系R无损连接地分解成两个2NF的关系模式:= R1,R2 , R1=Sno,Cno,Grade, R2=Cno,Tname,Ttel 这里,R1的非主属性Grade对键(Sno,Cno)是完全函数依赖,R2的非主属性Tname, Ttel对键Cno也是完全函数依赖;因此,R1 2NF,R2 2NF,并且=R1,R2是无损连接分解。3对R1,R2做进一步的判断。由于R1中不存在非主属性对候选关键字的传递依赖,所以关系模式R1 3NF。在R2中,键是Cno,非主属性是Tname,Ttel,函数依赖为CnoTname,TnameTt

22、el。由于R2中存在非主属性Ttel对候选键Cno的传递依赖,所以R2 3NF。要消除非主属性对候选键的传递依赖,可把关系R2无损连接地分解成两个3NF的关系模式:= R3,R4 , R3= Cno,Tname , R4= Tname,Ttel 这里,R3的非主属性Tname对键Cno不存在传递函数依赖,R4的非主属性Ttel对键Tname也不存在传递函数依赖;因此,R3 3NF,R4 3NF,并且=R3,R4是无损连接分解。 4经过上述的分解,得到:R1=Sno,Cno,Grade;R3=Cno,Tname;R4=Tname,Ttel。在R1中,函数依赖为(Sno,Cno)Grade,决定因素(Sno,Cno)是R1的键;在R3中,函数依赖为CnoTname,决定因素Cno是R3的键;在R4中,函数依赖为TnameTtel,决定因素Tname是R4的键;这三个关系模式都满足BCNF的定义,所以,R1 BCNF,R3 BCNF,R4 BCNF。

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

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