2022年数据库原理答案知识 .pdf
《2022年数据库原理答案知识 .pdf》由会员分享,可在线阅读,更多相关《2022年数据库原理答案知识 .pdf(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第二章2.6 设有关系 R和 S:R A B C S A B C 3 6 7 3 4 5 2 5 7 7 2 3 7 2 3 4 4 3 计算 RS,R-S,RS,RS,3,2(S), B5(R), R22S, RS。解:RS A B C RS A B C RS A B C 3 6 7 3 6 7 7 2 3 2 5 7 2 5 7 7 2 3 4 4 3 4 4 3 3 4 5 RS R.A R.B R.C S.A S.B S.C 3,2(S)C B 3 6 7 3 4 5 5 4 3 6 7 7 2 3 3 2 2 5 7 3 4 5 2 5 7 7 2 3 7 2 3 3 4 5 7 2
2、 3 7 2 3 4 4 3 3 4 5 4 4 3 7 2 3 B 5(R)A B C R? S R.A R.B R.C S.A S.B S.C 7 2 3 7 2 3 3 4 5 4 4 3 R? S A B C 7 2 3 2.7 设有关系 R 和 S:R A B S B C a b b c c b e a d e b d 计算 R ?S,R ?S,A=C(RS),S ? R。22 BC名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 26 页 - - - - - -
3、 - - - 解:R? S A B C R? S R.A R.B S.B C a b c a b b c a b d a b b d c b c c b b c c b d c b b d d e a S ? R B C b c b d 2.17 设有 4 个关系:S(S#,SNAME,AGE ,SEX) SC (S#,C# ,SCORE)C (C#,CNAME,T#) T(T#,TNAME,TITLE) 试用关系代数表达式表示下列查询语句: 检索年龄小于 17 岁的女学生的学号和姓名。 检索男学生所学课程的课程号和课程名。 检索男学生所学课程的任课教师的工号和姓名。 检索至少选修两门课程的学
4、生学号。 检索至少有学号为S2和 S4学生选修的课程的课程号。 检索 WANG 同学不学的课程的课程号。 检索全部学生都选修的课程的课程号与课程名。 检索选修课程包含LIU 老师所授全部课程的学生学号。解:?S#,SNAME(AGE 17SEX= F(S)?c#,CNAME(SEX=M(S? SC? C)?T#,TNAME(SEX=M(S? SC? C? T)?1(1=4 25(SCSC)?2(1=S2 4=S42=5(SCSC)?C#(C)C#(SNAME=WANG(S? SC)?C#,CNAME(C? (S#,C#(SC)S#(S)?S#,C#(SC)C#(TNAME=LIU(C? T)2
5、.21 在教学数据库的关系S、SC 、C 、T 中,用户有一查询语句:检索女同学选修课程的课程名和任课教师名。 试写出该查询的关系代数表达式。 画出查询表达式的语法树。 使用启发式优化算法,对语法树进行优化,并画出优化后的语法树。 BC名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 26 页 - - - - - - - - - 解: 关系代数表达式为:CNAME,TEACHER(SEX= F(S? SC? C? T)上述的关系代数表达式为:CNAME,TEACHER(SE
6、X= F(L(S.S#=SC.S# SC.C#=C.C#(SSC)C)此处 L 为 S、SC、C 中全部属性(公共属性只取一次)。上述关系代数表达式的语法树如图2.2 所示。图 2.2 S SC C L S.S#=SC.S#SC.C#=C.C# C.T#=T.T#T CNAME ,TEACHE SEX= F名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 26 页 - - - - - - - - - 上述的关系代数表达式为:优化后的语法树如图2.3 所示。图 2.3 第三章
7、3.2 对于教学数据库的4 个基本表 S(S#,SNAME,AGE ,SEX) SC (S#,C# ,SCORE)C (C#,CNAME,T#) T(T#,TNAME,TITLE) 试用 SQL的查询语句表达下列查询:试用关系代数表达式表示下列查询语句: 检索年龄小于 17 岁的女学生的学号和姓名。SC.C# S.S#=SC.S# C S S# SEX=F SC S#,C# T#,TNAME C.T#=T.T# CNAME,TNAME T CNAME ,T# SC.C#=C.C# 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -
8、名师精心整理 - - - - - - - 第 4 页,共 26 页 - - - - - - - - - 检索年男学生所学课程的课程号和课程名。 检索男学生所学课程的任课教师的工号和姓名。 检索至少选修两门课程的学生学号。 检索至少有学号为S2和 S4学生选修的课程的课程号。 检索 WANG 同学不学的课程的课程号。 检索全部学生都选修的课程的课程号与课程名。 检索选修课程包含LIU 老师所授全部课程的学生学号。解:SELECT S#, SNAME FROM S WHERE AGE10 ORDER BY 2 DESC, 1 ;SELECT SNAME FROM S WHERE S#ALL(SEL
9、ECT S# FROM S WHERE SNAME= WANG ) AND AGE(SELECT AVG(AGE) FROM S WHERE SEX= F ) ;SELECT SNAME, AGE FROM S WHERE SEX= MAND AGEALL(SELECT AGE FROM S WHERE SEX= F );3.8 对于下面的关系 R和 S,试求出下列各种联接操作的执行结果:R NATURAL INNER JOIN S R NATURAL RIGHT OUTER JOIN S R RIGHT OUTER JOIN S USING(C)R INNER JOIN S R FULL O
10、UTER JOIN S ON false R A B C S B C D a1b1c1b1c1d1a2b2c2b2c2d2a3b3c3b4c4d4解:A B C D A B C D A R.B C S.B D a1b1c1d1a1b1c1d1a1b1c1b1d1a2b2c2d2a2b2c2d2a2b2c2b2d2null b4c4d4null null c4b4d4A R.B R.C S.B S.C D A R.B R.C S.B S.C D a1b1c1b1c1d1a1b1c1null null null a1b1c1b2c2d2a2b2c2null null null a1b1c1b4c4
11、d4a3b3c3null null null 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 26 页 - - - - - - - - - a2b2c2b1c1d1null null null b1c1d1a2b2c2b2c2d2null null null b2c2d2a2b2c2b4c4d4null null null b4c4d4a3b3c3b1c1d1a3b3c3b2c2d2a3b3c3b4c4d43.12 试用 SQL更新语句表达对 3.2 题教学数据库中关系S
12、、SC 、C、T 的更新操作: 往关系 C中插一个课程元组( C8 , VC+ , T6 ) 。 检索所授每门课程平均成绩均大于80 分的教师姓名,并把检索到的值送往另一个已存在的表FACULTY(TNAME) 。 在 SC中删除尚无成绩的选课元组。 把选修 LIU 老师课程的女同学选课元组全部删去。 把 MATHS 课不及格的成绩全改为60 分。 把低于所有课程总平均成绩的女同学成绩提高5。 在表 SC中修改 C4课程的成绩,若成绩小于等于70 分时提高 5,若成绩大于 70 分时提高 4(用两种方法实现,一种方法是用两个UPDATE 语句实现,另一种方法是用带CASE 操作的一个 UPDA
13、TE 语句实现)。 在表 SC中,当某个成绩低于全部课程的平均成绩时,提高5% 。解: INSERT INTO C VALUES( C8 , VC+ , T6 ); INSERT INTO FACULTY(TNAME) SELECT DISTINCT TNAME FROM (SELECT TNAME, C.C#, AVG(GRADE) FROM SC,C,T WHERE SC.C#=C.C# AND C.T#=T.# GROUP BY T#, C.C#) AS RESULT(TNAME, C#, AVG_GRADE) AS X WHERE 80=ALL(SELECT AVG_GRADE FRO
14、M RESULT AS Y WHERE Y.TEACHER=X.TEACHER); DELETE FROM SC WHERE SCORE IS NULL; DELETE FROM SC WHERE S# IN(SELECT S# FROM S WHERE SEX= F) AND C# IN(SELECT C# FROM C,T WHERE C.T#=T.# AND TNAME= LIU ) ; UPDATE SC SET SCORE=60 WHERE SCORE60 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理
15、- - - - - - - 第 8 页,共 26 页 - - - - - - - - - AND C# IN(SELECT C# FROM C WHERE CNAME= MATHS) ; UPDATE SC SET SCORE=SCORE*1.05 WHERE S# IN(SELECT S# FROM S WHERE SEX= F )AND SCORE70;UPDATE SC SET SCORE=SCORE*1.05 WHERE C#= C4 AND SCORE70 THEN 1.04 ELSE 1.05 END WHERE C#= C4 ; UPDATE SC SET SCORE=SCORE
16、*1.05 WHERE SCORE50 AND SEX= M ;SELECT EMP.E#, ENAME FROM EMP, WORKS WHERE EMP.E#=WORKS.E# AND SALARY1000;SELECT A.E#, A.ENAME FROM EMP A, WORKS B, WORKS C WHERE A.E#=B.E# AND B.E#=C.E# AND B.C#= C4 AND C.C#= C8 ;SELECT A.E#, A.ENAME FROM EMP A, WORKS B, COMP C WHERE A.E#=B.E# AND B.C#=C.C# AND CNAM
17、E= 联华公司 AND SALARY1000 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 26 页 - - - - - - - - - AND SEX= M ;SELECT E#, COUNT(C#) AS NUM, SUM(SALARY) AS SUM_SALARY FROM WORKS GROUP BY E#;SELECT X.E# FROM WORKS X WHERE NOT EXISTS (SELECT * FROM WORKS Y WHERE E#=E6
18、AND NOT EXISTS (SELECT * FROM WORKS Z WHERE Z.E#=X.E# AND Z.C#=Y.C#);SELECT A.E#, A.ENAME FROM EMP A, WORKS B, COMP C WHERE A.E#=B.E# AND B.C#=C.C# AND CNAME= 联华公司 AND SALARY50);DELETE FROM WORKS WHERE E# IN (SELECT E# FROM EMP WHERE AGE60);DELETE FROM EMP WHERE AGE60;3.14 对第 3.13 题中的关系建立一个有关女职工信息的视
19、图EMP_WOMAN,属性包括(E#,ENAME,C#,CNAME,SALARY ) 。然后对视图EMP_WOMAN操作,检索每一位女职工的工资总数。 (假设每个职工可在多个公司兼职)解:CREATE VIEW EMP_WOMAN AS SELECT A.E#, A.ENAME, C.C#, CNAME, SALARY FROM EMP A, WORKS B, COMP C WHERE A.E#=B.E# AND B.C#=C.C# AND SEX= F ;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -
20、 - - - - 第 11 页,共 26 页 - - - - - - - - - SELECT E# ,SUM(SALARY) FROM EMP_WOMAN GROUP BY E#;3.15 对于 3.2 题的教学数据库中基本表SC ,建立一个视图:CREATE VIEW S_SCORE(S#,C_NUM,AVG_SCORE) AS SELECT S# ,COUNT(C#) ,AVG (SCORE) FROM SC GROUP BY S#;试判断下列查询和更新操作是否允许执行。如允许,写出转换到基本表SC上的相应操作。SELECT * FROM S_SCORE;SELECT S# ,C_NUM
21、 FROM S_SCORE WHERE AVG_SCORE80;SELECT S# ,AVG_SCORE FROM S_SCORE WHERE C_NUM (SELECT C_NUM FROM S_SCORE WHERE S#=S4);UPDATE S_SCORE SET S#=S3 WHERE S#=S4 ;DELETE FROM S_SCORE WHERE C_NUM4;答: 允许查询。相应的操作如下:SELECT S# ,COUNT(C# ) AS C_NUM ,AVG (SCORE) AS AVG_SCORE FROM SC GROUP BY S#; 允许查询。相应的操作如下:SELE
22、CT S# ,COUNT(C# ) AS C_NUM FROM SC GROUP BY S# HAVING AVG(SCORE) 80; 允许查询。相应的操作如下:SELECT S# ,AVG (SCORE) AS AVG_SCORE FROM SC GROUP BY S# HAVING COUNT(C#) (SELECT COUNT(C# )FROM SC GROUP BY S# HAVING S#=S4) ; 不允许。 C_NUM 是对 SC中的学生选修门数进行统计,在未更改SC表时,要在视图 S_GRADE 中更改门数,是不可能的。名师资料总结 - - -精品资料欢迎下载 - - - -
23、 - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 26 页 - - - - - - - - - 不允许。在视图S_SCORE 中删除选修门数在4 门以上的学生元组,势必造成 SC中这些学生学习元组的删除,这不一定是用户的原意,因此使用分组和聚合操作的视图,不允许用户执行更新操作。第四章4.8 设关系模式 R(ABCD ) ,F 是 R 上成立的 FD 集,F= AB,CB ,则相对于 F,试写出关系模式R 的关键码。并说明理由。解:R 的关键码为 ACD。因为从已知的 F,只能推出 ACDABCD 。4.10 设关系模式 R(
24、ABCD) 上 FD集为 F,并且 F=AB C,CD,DA 。 试从 F求出所有非平凡的FD 。 试求 R的所有候选键。 试求 R的所有不是候选键的超键。解: 从已知的 F可求出非平凡的 FD有 76个。譬如,左边是 C的 FD有 6 个:CA,C D ,C AD ,CAC ,C CD ,CACD 。左边是 D的 FD有 2 个:DA,DAD 。左边是 AB的 FD有 12 个:AB C,AB D,AB CD ,AB AC ,, 。感兴趣的读者可以自行把这76个 FD写齐。 候选键是能函数决定所有属性的不含多余属性的属性集。根据这个概念可求出 R的候选键有三个: AB 、BC和 BD 。 R
25、 的所有不是候选键的超键有四个:ABC 、ABD 、BCD 和 ABCD 。4.13 设关系模式 R(ABCD ) ,F 是 R上成立的 FD集,F=AB,BC , 试写出属性集 BD的闭包 (BD)+。 试写出所有左部是B的函数依赖(即形为“ B?” ) 。解:从已知的 F,可推出 BDBCD,所以 (BD)+=BCD。由于 B+=BC,因此左部是 B 的 FD 有四个:B,BB,BC,BBC。4.14 设关系模式 R(ABCDE) 上 FD集为 F,并且 F= ABC ,CD E,BD,EA 。 试求 R的候选键。 试求 B+的值。解: R 的候选键有四个: A、E、CD和 BC 。 B+
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年数据库原理答案知识 2022 数据库 原理 答案 知识
限制150内