资源描述
(完整版)数据库原理与应用及其应用答案
标准答案及评分标准
一、单选题(20分)
1
2
3
4
5
6
7
8
9
10
D
C
A
B
C
B
D
B
C
B
11
12
13
14
15
16
17
18
19
20
C
C
B
C
C
A
C
B
D
D
二、填空题(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)数据控制困难(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分)
T1
T2
SLOCK B
Y=B=2
XLOCK A
SLOCK A
A=Y+1
等待
写回A(=3)
等待
UNLOCK B
等待
UNLOCK A
等待
X=A=3
XLOCK B
B=X+1
写回B(=4)
UNLOCK A
UNLOCK B
四、设计题(50分)
1。(1)(6分)
产品
产品编号
产品名
规格
职工
职工号
姓名
工厂
工厂编号
厂名
地址
生产
聘用
m
n
n
1
计划数量
聘期
工资
(2)
工厂(工厂编号,厂名,厂址)(1分)
职工(职工号,姓名,聘期,工资,工厂编号)(2分)
产品(产品编号,产品名,规格)(1分)
生产(工厂编号,产品编号,计划数量)(2分)
2.(1)FD={(运动员编号,比赛项目)→成绩,比赛项目→比赛类别,比赛类别→比赛主管}(2分)候选码为(运动员编号,比赛项目)(2分)
(2)比赛类别属性部分函数依赖于候选码,故R为1NF。(2分)
(3)R1(比赛项目,比赛类别)(2分)
R2(比赛类别,比赛主管)(2分)
R3(运动员编号,比赛项目,成绩)(2分)
3. 存储过程:
CREATE PROCEDURE BOOK_QTY @bid INT, @s INT -—(2分)
AS
DECLARE @bs INT
SELECT @bs=QTY FROM BOOK WHERE BID=@bid --(2分)
IF @bs〉=@s -—(1分)
BEGIN
UPDATE BOOK SET QTY=QTY—@s WHERE BID=@bid --(2分)
PRINT ‘库存余量'+STR(@bs-@s)
END
ELSE
PRINT ‘库存不足’ --(1分)
GO
验证程序:(2分)
INSERT INTO BOOK VALUES(1,‘A’,100)
INSERT INTO BOOK VALUES(2,‘B’,200)
EXECUTE BOOK_QTY 1,50
EXECUTE BOOK_QTY 2,250
4.
(1)SELECT CITY FROM S WHERE SNO=‘S1'(2分)
(2)SELECT SNO,QTY FROM SPJ WHERE JNO=‘J1' AND PNO=‘P1'ORDER BY QTY DESC(2分)
(3)SELECT SNO FROM P JOIN SPJ ON(P.PNO=SPJ.PNO)WHERE COLOR=‘红’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分)
展开阅读全文