资源描述
数据库习题作业重点(第2-3-4章)2.6 设有关系R和S:RABCSABC3673 4 5257723723443计算RS,R-S,RS,RS,3,2(S),B5(R),R 22 S, R S。解:RSABCRSABCRSABC367367723257257723443443345RSR.A R.B R.C S.A S.B S.C3,2(S)CB 36 73 4554 36 77 2332 25 73 45 25 77 23 72 33 45 72 37 23 44 33 45 44 37 2322B5(R)ABCRSR.A R.B R.C S.A S.B S.C723 72 33 45443RSABC7232.7 设有关系R和S: RABSBCabbccbeadebd BC计算R S,R S,A=C(RS),S R。be a2.8 假设关系U和V分别有m个元组和n个元组,给出下列表达式中可能的最小和最大的元组数量: UV UV UV F(U)V (F为某个条件) L(U)V(其中L为某属性集)解:操作最小元组数最大元组数 UV0min(m,n) UVmax(m,n)m+n UV0mnF(U)V0mnL(U)V0m2.17 设有三个关系:T(T#,TNMAE,TITLE)C(C#,CNAME,T#)S(S#,SNAME,AGE,SEX)SC(S#,C#,SCORE)试用关系代数表达式表示下列查询语句: 检索年龄小于17岁的女学生的学号和姓名。 检索男学生所学课程的课程号和课程名。 检索男学生所学课程的任课教师的工号和姓名。 检索至少选修两门课的学生学号。 检索至少有学号为S2和S4学生选修的课程的课程号。 检索WANG同学不学的课程的课程号。 检索全部学生都选修的课程的课程号与课程名。 检索选修课程包含LIU老师所授全部课程的学生学号。解:S#,SNAME(AGE17 SEX=F(S)c#,CNAME(SEX=M(SSCC)T#,TNAME(SEX=M(SSCCT)1(1=4 25(SCSC)2(1=S2 4=S4 2=5(SCSC)C#(C)C#(SNAME=WANG(SSC)C#,CNAME(C(S#,C#(SC)S#(S)S#,C#(SC)C#(TNAME=LIU(CT)2.21 在教学数据库的关系S、SC、C、T中,用户有一查询语句:检索女同学选修课程的课程名和任课教师名。 试写出该查询的关系代数表达式。 画出查询表达式的语法树。 使用启发式优化算法,对语法树进行优化,并画出优化后的语法树。解: 【3.2】设教学数据库中有4个关系:教师关系 T(T#,TNAME,TITLE)课程关系C(C#,CNAME,T#)学生关系S(S#,SNAME,AGE,SEX)选课关系 SC(S#,C#,SCORE)试用SQL查询语句表示下列查询。解:检索年龄小于17岁的女学生的学号和姓名。SELECT S#SNAMEFROM SWHERE AGE10ORDER BY 2 DESC,1;检索学号比WANG同学大,而年龄比他小的学生姓名。SELECT SNAMEFROM SWHERE S#ALL(SELECT S# FROM SWHERE SNAME=WANG)AND AGE(SELECT AVG(AGE)FROM SWHERE SEX=F);求年龄大于所有女同学年龄的男学生的姓名和年龄。SELECT SNAME, AGEFROM SWHERE SEX=MAND AGEALL(SELECT AGEFROM SWHERE SEX=F);【312】解:INSERT INTO CVALUES(C8,VC+,T6);法一:INSERT INTO FACULTY(TNAME)SELECT DISTINCT TNAMEFROM (SELECT TNAME,CC#,AVG(SCORE) FROM T, C, SC WHERE TT#=CT# AND CC#=SCC# GROUP BY TNAME,CC#) AS RESULT(TNAME,C#,AVGSCORE) AS XWHERE 80=ALL(SELECT AVGSCORE FROM RESULT AS Y WHERE YTNAME=XTNAME);法二INSERT INTO FACULTY(TNAME)SELECT DISTINCT TNAMEFROM T, C, SC WHERE CC#=SCC# AND TT#=CT#AND T# NOT IN (SELECT T# FROM C WHERE C# IN (SELECT C# FROM SC GROUP BY C# HAVING AVG(SCORE)=80)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.T# AND TNAME=LIU);UPDATE SC SET SCORE=60 WHERE SCORE60 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 SCSET SCORE=SCORE * 1.05WHERE C#=C4AND SCORE70 THEN 1.04ELSE l.05ENDWHERE C#=C4;UPDATE SC SET SCORE=SCORE * 1.05 WHERE SCORE50 AND SEX=M;SELECT EMPE#,ENAMEFROM EMP, WORKSWHERE EMP.E#=WORKSE# AND SALARY1000 AND SEX=M;SELECT AE#,AENAMEFROM EMP A,WORKS B,WORKS CWHERE AE#=BE# AND BE#=CE#AND BC#=C4 AND CC#=C8;SELECT AE#,AENAMEFROM EMP A,WORKS B,COMP CWHERE AE#=BE# AND BC#=C#AND CNAME=联华公司 AND SALARY1000 AND SEX=M;SELECT E#,COUNT(C#) AS NUM,SUM(SALARY) AS SUM_SALARYFROM WORKSGROUP BY E#;SELECT X.E#FROM WORKS XWHERE NOT EXISTS(SELECT *FROM WORKS YWHERE E#=E6AND NOT EXISTS(SELECT *FROM WORKS ZWHERE ZE#=XE# AND ZC#=YC#);SELECT AE#,AENAMEFROM EMP A,WORKS B,COMP CWHERE AE#=BE# AND BC#=CC# AND CNAME=联华公司AND SALARY50);DELETE FROM WORKSWHERE E# IN (SELECT E# FROM EMP WHERE AGE60);DELETE FROM EMPWHERE AGE60;4.8 设关系模式R(ABCD),F是R上成立的FD集,F= AB,CB ,则相对于F,试写出关系模式R的关键码。并说明理由。解:R的关键码为ACD。因为从已知的F,只能推出ACDABCD。4.9 设关系模式R(ABCDE)上FD集为F,并且F=ABC,CDE,DEB,试判断AB是R的候选键吗?ABD呢?请做出解释。解:从已知的F,可推出ABABC,但不能推出ABABCDE,因此不是。 从已知的F,可推出ABDABCD,ABDABCDE,因此是的。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,CDE,BD,EA。 试求R的候选键。 试求B+的值。解: R的候选键有四个:A、E、CD和BC。 B+=BD。4.26 设关系模式R(ABCD),F是R上成立的FD集,F= ABCD,AD 。 试说明R不是2NF模式的理由。 试把R分解成2NF模式集。答:从已知FD集F,可知R的候选键是AB。另外,ABD是一个局部依赖,因此R不是2NF模式。此时R应分解成= AD,ABC ,是2NF模式集。4.27 设关系模式R(ABC),F是R上成立的FD集,F= CB,BA 。 试说明R不是3NF模式的理由。 试把R分解成3NF模式集。答:从已知FD集F,可知R的候选键是C。从CB和BA,可知CA是一个传递依赖,因此R不是3NF模式。此时R应分解成= CB,BA ,是3NF模式集。第1章:o 作业:P37o 1.3, 1.4,1.5, 1.6, 1.12, 1.17 ,1.27第5章o 作业:o 5.2, 5.5,5.6,5.8, 5.13, 5.14, 5.15第7章n 作业:n 7.2,7.3, 7.4,7.8,7.16,7.17复习范围 1.2.2、1.2.3、1.3-1.6、1.7 2.1、2.2、2.4、2.6 3.2、3.3、3.5、3.8 4.2、4.4、4.6 5.1、5.2、5.3、5.4 7.1、7.2、7.3、7.5、7.6
展开阅读全文