华东交通大学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.SnoP。Pno=SPJ。PnoCity=‘天津’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 ∵BAC,DAC ∴(BD) F+ABCD

(B) F+= B ∵BAC ∴(B) F+=ABC 不等于{A,B,C,D}

(D) F+= D ∵DAC ∴(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

职工

职工编号 姓名 性别 公司名 地址