数据库习题答案
- 格式:pdf
- 大小:113.52 KB
- 文档页数:5
数据库习题答案
第1章认识数据库10.为体育部门建⽴的数据库中要存储运动队、运动员、运动项⽬以及运动员参加运动队和运动项⽬⽐赛情况,其中运动队、运动员、运动项⽬应包含如下信息:(1)运动队:队名、主教练,其中队名唯⼀标识运动队。
(2)运动员:运动员编号、姓名、性别、年龄,其中运动员编号唯⼀标识⼀名运动员。
(3)运动项⽬:项⽬编号、项⽬名、所属类别,其中项⽬编号唯⼀标识⼀个项⽬。
这⾥规定,每个运动队有多名运动员,每名运动员只属于⼀个运动队;每名运动员可以参加多个项⽬,每个项⽬可以有多个运动员参加。系统记录每名运动员参加每个项⽬所得名次和成绩以及⽐赛⽇期。
根据以上叙述,为体育部门建⽴E-R模型,要求标注联系类型。
参考答案:E-R模型如下:
11.设某图书管理系统需要存储有关出版社、作者、图书以及作者的著书情况。出版社、作者和图书应包含的信息如下:
(1)出版社:出版社编号、出版社名称、地址、电话
(2)图书:图书编号、书名、定价、字数
(3)作者:作者编号、姓名、单位、职称、电话
再给出如下语义和要求:每个出版社出版多种图书,每种图书有唯⼀的图书编号,且每种图书只能由⼀个出版社出版,每个出版社出版⼀种图书应记录其出版时间;⼀种图书有多名作者,每⼀个作者可能编著多种图书,每个作者编著⼀种图书应记录作者排序(即该书中作者的次序,如第⼀作者、第⼆作者等)。
试根据上述表述为该系统设计ER模型,要求标注联系的类型。
参考答案:E-R模型如下:
第2章关系数据库9.给定如图2-6所⽰的关系R1、R2和R3,完成以下问题:
R 1? R 3 A
(1)分别给出R 1∪R 2、R 1∩R 2和R 1-R 2的运算结果。 (2)分别给出πA ,B (R 1)×πC ,E (R 3)、的运算结果。 (3)给出πA ,E (σB >6(R 1? R 3))的结果。 参考答案: 10.某数据库包括职⼯关系EMP 、⼯程关系PRJ 和报酬关系SAL ,这三个关系模式为:EMP (ENO ,ENAME ,SEX ,BIRTH );--记录职⼯信息 PRJ (PNO ,PNAME ,BUDGET );--记录⼯程信息
SAL (ENO ,PNO ,SALARY )。--记录职⼯参加⼯程和参加每个⼯程的⼯资情况 各属性含义为:ENO (职⼯号)、ENAME (姓名)、SEX (性别)、BIRTH (出⽣年⽉)、PNO (⼯程编号)、PNAME (⼯程名称)、BUDGET (预算)、SALARY (⼯资)。⽤关系代数完成以下查询:
(1)查询所有⼥职⼯的职⼯号和姓名。
(2)查询参加⼯程编号为‘P1’的⼯程的职⼯姓名。 (3)查询没有参加过预算超过500000的⼯程的职⼯号。 (4)查询参加过所有预算超过500000的⼯程的职⼯姓名。 参考答案:
(1)πENO, ENAME (σSEX=’⼥’(EMP)) (2)πENAME (σPNO=’P1’(SAL)?EMP)A B C 3 4 3 5 2 5 8 4 6 9 8 6 9
8 12
R 1∪R 2:A B C 5 2 5 9
8 6
R 1∩R 2:
(1)R 1-R 2:
A B C 3 4 3 9
8 12
(2) πA ,B (R 1)×πC ,E (R 3):A B C E 3 4 5 2 3 4 6 6 3 4 6 8 5 2 5 2 5 2 6 6 5 2 6 8 9 8 5 2 9 8 6 6 9
8
6
8
R 1? R 3:
A
A B C B C D E 3 4 3 8 6 9 6 3 4 3 8 6 6 8 5 2 5 8 6 9 6 5
2
5
8
6
6
8
(3) πA ,E (σB >6(R 1? R 3)):A E 9 6 9
8
(3)πENO(EMP)-πENO(σBUDGET>500000(PRJ)?SAL)
(4)πENAME(πENO, PNO(SAL)÷πPNO(σBUDGET>500000(PRJ))?EMP)
第4章关系数据库标准语⾔SQL3.针对第2题的三个表,编写完成如下操作的SQL语句。
(1)查询任课教师“刘晓莉”所授课程的课程号、课程名称和学时。
(2)查询有不及格(成绩⼩于60)课程的学⽣姓名。
(3)查询年龄在18~20岁之间的男学⽣的学号、姓名、年龄和班级。
(4)查询“数据库原理”课程的最⾼分数。
(5)查询平均成绩80分以上的学⽣姓名。
(6)查询名称中包含“数据”的课程的详细信息。
(7)查询选修“数据库原理”课程成绩85分以上的学⽣的姓名和所在班级。(8)查询没有选修“数据库原理”课程的学⽣姓名和所在班级。
(9)查询被所有“计算机091”班学⽣选修的课程的课程名称和学时。
(10)查询“计算机091”班“数据库原理”成绩最⾼的学⽣姓名。
(11)查询年龄超过其所在班级平均年龄的学⽣的姓名、性别、年龄和所在班级。
(12)向STUDENT表中插⼊⼀条新的学⽣记录(0905050105,周晓斌,19,男,计算机091)。
(13)所有“计算机091”班学⽣的“数据库原理”课程的成绩提⾼5%。
(14)删除“编译原理”课程的所有选课信息。
(15)向COURSE表中插⼊⼀条新的课程记录(050804,数字图像处理,48),暂不指定任课教师。
参考答按:
(1)SELECT CNO, CNAME, CHOURFROM COURSE
WHERE CTEACHER='刘晓莉';
(2)SELECT SNAMEFROM STUDENT
WHERE SNO IN (SELECT SNO FROM SC
WHERE GRADE<60);
(3)SELECT SNO, SNAME, SAGE, SCLASSFROM STUDENT
WHERE SSEX='男' AND SAGE BETWEEN 18 AND 20;
(4)SELECT MAX(GRADE) 最⾼分数FROM SC
WHERE CNO IN (SELECT CNO FROM COURSE
WHERE CNAME='数据库原理');
(5)SELECT SNAME FROM STUDENTWHERE SNO IN (SELECT SNO FROM SC
GROUP BY SNO
HAVING AVG(GRADE)>80);
(6)SELECT * FROM COURSEWHERE CNAME LIKE '%数据%';
(7)SELECT SNAME, SCLASSFROM STUDENT JOIN SC ON SC.SNO=STUDENT.SNO
JOIN COURSE ON http://www.doczj.com/doc/0116939257.html O=http://www.doczj.com/doc/0116939257.html O
WHERE CNAME='数据库原理' AND GRADE>85;
(8)SELECT SNAME, SCLASS FROM STUDENTWHERE SNO NOT IN (SELECT SNO FROM SC
WHERE CNO IN (SELECT CNO FROM COURSE
WHERE CNAME='数据库原理'));
(9)SELECT CNAME, CHOUR FROM COURSEWHERE NOT EXISTS (SELECT * FROM STUDENT
WHERE SCLASS='计算机091' AND NOT EXISTS ( SELECT * FROM SC
WHERE http://www.doczj.com/doc/0116939257.html O=http://www.doczj.com/doc/0116939257.html O AND
SC.SNO=STUDENT.SNO));
(10)SELECT SNAME FROM STUDENTWHERE SCLASS='计算机091' AND SNO IN (
SELECT SNO FROM SC
WHERE CNO IN (SELECT CNO FROM COURSE
WHERE CNAME='数据库原理')
AND GRADE=(SELECT MAX(GRADE) FROM SC
WHERE CNO IN (SELECT CNO FROM COURSE WHERE CNAME='数据库原理')
AND SNO IN (SELECT SNO FROM STUDENT WHERE SCLASS='计算机091')));
(11)SELECT SNAME, SSEX, SAGE, SCLASSFROM STUDENT S1
WHERE SAGE>(SELECT AVG(SAGE) FROM STUDENT S2
WHERE S2.SCLASS=S1.SCLASS);
(12)INSERT INTO STUDENTVALUES('0905050105', '周晓斌', 19, '男', '计算机091');
(13)UPDATE SC SET GRADE=GRADE*1.05WHERE SNO IN (SELECT SNO FROM STUDENT
WHERE SCLASS='计算机091')
AND CNO IN (SELECT CNO FROM COURSE
WHERE CNAME='数据库原理');
(14)DELETE FROM SCWHERE CNO IN (SELECT CNO FROM COURSE
WHERE CNAME='编译原理');
(15)INSERT INTO COURSE(CNO, CNAME, CHOUR)VALUES('050804', '数字图像处理', 48);
5.根据第2题中的三个表,创建⼀个“计算机091”班学⽣的选课视图V_Computer091,要求视图中包括学号、姓名、课程名称和成绩等属性。
参考答案:CREATE VIEW V_Computer091(SNO, SNAME, CNAME, GRADE)
AS
SELECT STUDENT.SNO, SNAME, CNAME, GRADE
FROM STUDENT JOIN SC ON SC.SNO=STUDENT.SNO
JOIN COURSE ON http://www.doczj.com/doc/0116939257.html O=http://www.doczj.com/doc/0116939257.html O
WHERE SCLASS='计算机091';
第9章关系数据库规范化理论3.设有⼀个反映⼯程及其所使⽤相关材料信息的关系模式:R(⼯程号,⼯程名,⼯程地址,开⼯⽇期,完⼯⽇期,材料号,材料名称,使⽤数量)。如果规定:每个⼯程和每种材料分别由⼯程号和材料号唯⼀标识;每个⼯程的地址、开⼯⽇期、完⼯⽇期唯⼀;不同⼯程的地址、开⼯和完⼯⽇期可能相同;⼯程名与材料名称均有重名;每个⼯程使⽤若⼲种材料,每种材料可应⽤于若⼲⼯程中,每个⼯程使⽤某种材料有⼀个使⽤数量。
(1)根据上述规定,写出模式R的基本函数依赖(FD)和候选键。
(2)判定R最⾼达到第⼏范式,并说明理由。
(3)将R规范到3NF。
参考答案:
(1)FD:⼯程号→⼯程名,⼯程号→⼯程地址,⼯程号→开⼯⽇期,⼯程号→完⼯⽇期,材料号→材料名称,(⼯程号,材料号)→使⽤数量;候选键:(⼯程号,材料号)。