数据库习题答案

  • 格式: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:⼯程号→⼯程名,⼯程号→⼯程地址,⼯程号→开⼯⽇期,⼯程号→完⼯⽇期,材料号→材料名称,(⼯程号,材料号)→使⽤数量;候选键:(⼯程号,材料号)。