华东交通大学07-08数据库试卷(含答案)
- 格式:doc
- 大小:77.00 KB
- 文档页数:5
第 1 页 共 5 页 华东交通大学2007—2008学年第二学期考试卷
试卷编号: (A)卷
数据库系统原理及应用 课程 课程类别:必
闭卷(√)、开卷(范围)( ): 考试日期:
题号 一 二 三 四 五 六 七 八 九 十 总分 累分人签名 题分 20 10 56 14 100
得分
一、选择题:(每题2分,共20分)
1 2 3 4 5 6 7 8 9 10
C C B B,C C B C B B A
二、填空题:(每题1分,共10分)
三、应用题:(共56分)
1、(6分)
R ⋈ S R ⋈ S
A B C D A R。B R。C B C D
6 4 2 5 6 4 2 4 2 5
6 5 3 8 6 4 2 5 2 6 得分 评阅人
(1) 数据库管理系统(DBMS) (2) 数据库系统
(3) 完整性约束 (4) 物理独立性
(5) 沿箭头方向存在一个循环 (6) 系统故障
(7) 可串行化 (8) 冗余
(9) 封锁粒度 (10) 数据转储 得分 评阅人
得分 评阅人
3=2
第 2 页 共 5 页 5 6 8 4 6 5 3 5 3 8
5 6 8 6 8 4
2、(共20分)
(1)查询籍贯在江西南昌的职工信息。(3分)
SELECT * FROM EMP WHERE ECITY='江西南昌’
(2)查询在南昌工作的职工信息。(3分)
SELECT E#,ENAME,AGE,SEX,ECITY FROM EMP,WORKS,COMP
Where EMP.E#=WORKS.E# AND WORKS.C#=COMP.C# AND CITY=”南昌”
(3)假设每个职工可以在多个公司工作,查询在编号为C4和C8公司兼职的职工工号和姓名。(4分)
SELECT A。E#, A.ENAME FROM EMP A, WORKS B, WORKS C
WHERE A。E# = B。E# AND B。E# = C.E# AND B.C# = ‘C4’ AND C。C# = ’C8’;
(4)假设每个职工可以在多个公司工作,查询每个职工的兼职公司数目和工资总数,按(E#, NUM, SUM_SALARY)显示,分别表示职工工号、公司数目和工资总数。(4分)
SELECT E#, COUNT(C#) AS NUM, SUM(SALARY) AS SUN_SALARY
FROM WORKS GROUP BY E#;
(5)设职工工号为E6的职工在多个公司工作,查询至少在E6职工兼职的所有公司工作的职工工号。(6分)
SELECT X。E#
FROM WORKS X
WHERE NOT EXISTS
(SELECT *
FORM WORKS Y
WHERE E# = ‘E6’ AND NOT EXISTS
(SELECT *
FROM WORKS Z
WHERE Z。E# = X. E# AND Z。C# = Y。C#));
第 3 页 共 5 页
3、(12分)解:SQL语句为: (4分)
SELECT JNO FROM J WHERE JNO NOT IN(SELECT JNO
FROM S,SPJ,P WHERE S.SNO=SPJ.SNO AND
SPJ。PNO=P.PNO AND S。CITY=‘天津’ AND P。COLOR=‘红')
(2)(8分)
优化后的标准语法树为
语法树为:
:
πJno(J) —πJno(σS.Sno=SPJ.SnoP。Pno=SPJ。PnoCity=‘天津’Color=‘红’(S×SPJ×P)
≡πJno(J)—πJno(σS.Sno=SPJ。Sno(σP。Pno=SPJ。Pno(σCity=‘天津'(σColor=‘红’(S×SPJ×P)))))
≡πJno(J)—πJno(σS。Sno=SPJ。Sno(σP.Pno=SPJ。Pno(σCity=‘天津'(S)×SPJ×σColor=‘红’(P))))
≡πJno(J)—πJno(σP。Pno=SPJ.Pno(σCity=‘天津' (S) SPJ×σColor=‘红' (P)))
≡πJno (J)-πJno(σCity=‘天津' (S) SPJ σColor=‘红’ (P))
4、(14分)设关系模式R(A,B,C,D)函数依赖集F={A→C, C→A, B→AC, D→AC, BD→A}。
1)求(BD) F+,并说明BD是否为R 的候选码。(4)
2)求出R的最小函数依赖集。(10分)
解:1) (BD) F+=BD ∵BAC,DAC ∴(BD) F+ABCD
(B) F+= B ∵BAC ∴(B) F+=ABC 不等于{A,B,C,D}
(D) F+= D ∵DAC ∴(B) F+=ABD 不等于{A,B,C,D}
由以上条件可知,ABCDBDf
∴ BD是R的候选码.
2)求最小函数依赖集。
(1)将F中函数依赖的右部分解为单属性:(2分)
F={A→C,C→A, B→A, B→C, D→A, D→C, BD→A} 结 果
—
Jno Jno
Color=’红’
City=’天津’
P.Pno=SPJ.Pno
S.Sno=SPJ.Sno
S P J
SPJ 结 果
—
Jno Jno
Color=’红’
City=’天津’ P.Pno=SPJ.Pno
S.Sno=SPJ.Sno
S P J
SPJ
第 4 页 共 5 页 (2)去掉F中冗余的函数依赖:(6分)
判断A→C是否冗余。
设:G1={C→A, B→A, B→C, D→A, D→C, BD→A}, 得:AG1+=A,
∵ C AG1+ ∴A→C不冗余。
判断C→A是否冗余.
设:G2={A→C, B→A, B→C, D→A, D→C, BD→A}, 得:CG2+=C,
∵ A CG2+ ∴C→A不冗余。
判断B→A是否冗余.
设:G3={A→C,C→A, B→C, D→A, D→C, BD→A}, 得:BG3+=ABC,
∵ A BG3+ ∴ B→A冗余。
判断B→C是否冗余。
设:G4={A→C,C→A, D→A, D→C, BD→A}, 得:BG4+=B,
∵ C BG4+ ∴ B→C不冗余.
判断D→A是否冗余。
设:G5={A→C,C→A, B→C, D→C, BD→A}, 得:DG5+=ADC,
∵ A DG5+ ∴ D→A冗余。
判断D→C是否冗余。
设:G6={A→C,C→A, B→C, BD→A}, 得:DG6+=D,
∵ C DG6+ ∴ D→C不冗余。
判断BD→A是否冗余.
设:G7={A→C,C→A, B→C, D→C}, 得:(BD)G7+ =BDCA,
∵ A (BD)G7+ ∴ BD→A冗余
所以:F={A→C,C→A, B→C, D→C}。
3)由于F的左部均为单属性,所以:(2分)
最小函数依赖集F={A→C,C→A, B→C, D→C}。
5(4分)考虑以下两个事务,并回答问题.
两个事务的并发执行会产生死锁,例如:
T1 T2
lock-S(A)
lock-S(B)
read(B)
read(A)
lock—X(B)
lock-X(A)
两个事务死锁
得分 评阅人
第 5 页 共 5 页 四、(14分)综合题:
解:(8分)(1)
(2) (6分)这个ER图可以转换3个关系模式:
公司(公司编号,公司名,地址)
仓库(仓库编号,仓库名,地址,公司编号)
职工(职工编号,姓名,性别,仓库编号,聘用,工资)
公司编号
公司
隶属
仓库 1
N 仓库编号
仓库名
地址
聘用 聘期
工资 1
N
职工
职工编号 姓名 性别 公司名 地址