1、(完整版)数据库原理与应用及其应用答案标准答案及评分标准一、单选题(20分)12345678910DCABCBDBCB11121314151617181920CCBCCACBDD二、填空题(16分)1浏览器/服务器2角色3游标4(1)PRIMARY KEY (职工号)4(2)FOREIGN KEY (职工号) REFERENCES 职工(职工号)4(3)CHECK(工资=800)4(4)CHECK(性别=男AND 年龄=18 AND 年龄=55)5姓名,工资(公司名=金山(职工工作公司))三、简答题(14分)1答:(1)数据很难共享(1分)(2)数据冗余(1分)(3)数据独立性差(1分)(4)
2、数据控制困难(1分).2答:数据库恢复的基本原理是利用后备副本将数据恢复到转储时的一致状态,利用事务日志将数据库恢复到故障前事务成功提交时的一致状态。(2分)DBMS的恢复子系统根据事务日志的记载重做(REDO)已提交的事务,撤销(UNDO)未提交的事务,确保事务的原子性,使数据库恢复到某个一致状态,这种恢复的方法称为REDO/UNDO恢复策略。(2分)3答:(1)T1、T2的串行执行结果为A=3、B=4,T2、T1的串行执行结果为B =3、A =4,T1、T3并发执行的结果与任一串行执行结果均不相同,所以该调度不正确。(3分)(2)最后结果为A=3、B=4,是可串行化的调度.(3分)T1T2
3、SLOCK BY=B=2XLOCK ASLOCK AA=Y+1等待写回A(=3)等待UNLOCK B等待UNLOCK A等待X=A=3XLOCK BB=X+1写回B(=4)UNLOCK AUNLOCK B四、设计题(50分)1。(1)(6分)产品产品编号产品名规格职工职工号姓名工厂工厂编号厂名地址生产聘用mnn1计划数量聘期工资(2)工厂(工厂编号,厂名,厂址)(1分)职工(职工号,姓名,聘期,工资,工厂编号)(2分)产品(产品编号,产品名,规格)(1分)生产(工厂编号,产品编号,计划数量)(2分)2(1)FD=(运动员编号,比赛项目)成绩,比赛项目比赛类别,比赛类别比赛主管(2分)候选码为(
4、运动员编号,比赛项目)(2分)(2)比赛类别属性部分函数依赖于候选码,故R为1NF。(2分)(3)R1(比赛项目,比赛类别)(2分)R2(比赛类别,比赛主管)(2分)R3(运动员编号,比赛项目,成绩)(2分)3 存储过程:CREATE PROCEDURE BOOK_QTY bid INT, s INT-(2分)ASDECLARE bs INTSELECT bs=QTY FROM BOOK WHERE BID=bid-(2分)IF bs=s-(1分)BEGINUPDATE BOOK SET QTY=QTYs WHERE BID=bid-(2分)PRINT 库存余量+STR(bs-s)ENDELS
5、EPRINT 库存不足-(1分)GO验证程序:(2分)INSERT INTO BOOK VALUES(1,A,100)INSERT INTO BOOK VALUES(2,B,200)EXECUTE BOOK_QTY 1,50EXECUTE BOOK_QTY 2,2504(1)SELECT CITY FROM S WHERE SNO=S1(2分)(2)SELECT SNO,QTY FROM SPJ WHERE JNO=J1 AND PNO=P1ORDER BY QTY DESC(2分)(3)SELECT SNO FROM P JOIN SPJ ON(P.PNO=SPJ.PNO)WHERE COL
6、OR=红AND JNO=J1 (2分)(4)SELECT J.PNO FROM J JOIN SPJ ON(J。PNO=SPJ.PNO)JOIN S ON(S.SNO=SPJ。SNO)WHERE J。CITY=S.CITY(2分)(5)SELECT COUNT(SNO)FROM S WHERE CITY=杭州 (2分)(6)SELECT JNO,SUM(QTY)FROM SPJ GROUP BY JNO(2分)(7)SELECT SNO FROM SPJ GROUP BY SNO HAVING SUM(QTY)(SELECT SUM(QTY) FROM SPJ WHERE SNO=S1) (2分)(8)DELETE FROM S WHERE SNO IN(SELECT SNO FROM SPJ WHERE JNO=J1) (2分)