华东交大 数据库复习题

更新时间:2023-12-15 14:49:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1、假如设某商业集团数据库中有3个实体集。一是“公司”实体集,属性有公司编号、公司名、地址等;二是“仓库”实体集,属性有仓库编号、仓库名、地址等;三是“职工”实体集,属性有职工编号、姓名、性别等。

公司与仓库间存在“隶属”联系,每个公司管辖若干仓库,每个仓库只能属于一个公司管辖;仓库与职工间存在“聘用”联系,每个仓库可聘用多个职工,每个职工只能在一个仓库工作,仓库聘用职工有聘期和工资。 (1) 试画出ER图,并在图上注明属性、联系的类型。(7分)

(2) 将ER图转换成关系模式集,并指出每个关系模式集,并指出每个关系模

式主键。(8分)

解:(1)

公司编号 公司名 地址 公司 1 仓库编号 隶属 N 仓库名 仓库 1 地址 聘期 聘用 工资 N 职工 职工编号 姓名 性别

(2) 这个ER图可以转换3个关系模式: 公司(公司编号,公司名,地址)

仓库(仓库编号,仓库名,地址,公司编号)

职工(职工编号,姓名,性别,仓库编号,聘用,工资)

2、(9分)已知以下三个关系模式: 学生关系模式S ( S# , SN , AGE , SEX ) 学习关系模式SC ( S# , C# , GRADE ) 课程关系模式C ( C# , CN , TEACHER )。

其中:S#----学号, SN----学生姓名, AGE----年龄, SEX----性别,C#----课程号, GRADE----成绩,CN----课程名,TEACHER----教师名。 试用关系代数表达式表达以下每个查询语句: 1) 检索选修课程号为C2学生学号与成绩。(3分) 2) 检索选修课程名为‘MATHS’的学生学号与姓名。(3分) 3) 检索选修了全部课程的学生姓名。(3分) 试用SQL语言表示以下每个查询语句:

4) 检索选修课程号为C4的学生学号与姓名。(3分) 5) 检索不选修C2课程的学生姓名与年龄。(3分) 6) 检索所学课程包含S3所学全部课程的学生学号。(3分)

答案:

(1)ΠS#,GRADE(δ SC.C#=’C2’( SC)) (2)ΠS.S#,S.SN(δ C.CN=‘MATHS’(S ∞ SC∞C)) (3) ΠSN((ΠS#,C#(SC)? ΠC#(SC)) ∞S) (4) Select Sno, Sname From S ,SC

Where S.Sno=SC.Sno and SC. C#='C4’ (5)SELECT SN,AGE

FROM S

WHERE SNO NOT IN(SELECT SNO FROM SC,

WHERE SC.SNO=S.SNO AND SC.C#=’C2’) ; (6)SELECT DISTINCT S# FROM SC SCX WHERE NOT EXISTS (SELECT * FROM SC SCY

WHERE SCY.S#= ' S3 ' AND NOT EXISTS (SELECT * FROM SC SCZ

WHERE SCZ.S#=SCX.S# AND SCZ.C#=SCY.C#));

3、(10分)根据给出的关系代数表达式的语法树,利用关系代数表达式的优化算法对该语法树进行优化,画出优化后的标准语法树

在供应关系数据库S_P_J中有供应商表S,零件表P,工程项目表J,及供应情况表SPJ四个表。以下是“没有使用天津供应商生产的红色零件的工程号JNO” 对应的关系代数表达式为:

πJno(J) -πJno(σS.Sno=SPJ.Sno?P.Pno=SPJ.Pno?City=‘天津’?Color=‘红’(S×SPJ×P))

1) 用SQL语言表示上述关系代数。(5分)

2) 先将关系代数转化成语法树, 并对其进行优化处理,画出优化后的标准语法树。(10分)

解:SQL语句为: 语法树为:

SELECT JNO FROM J

结 果 WHERE JNO NOT IN(SELECT JNO

— FROM S,SPJ,P

?Jno ?Jno WHERE S.SNO=SPJ.SNO AND

SPJ.PNO=P.PNO AND ?Color=’红’ J S.CITY=‘天津’ ?City=’天津’ AND P.COLOR=‘红’)

?P.Pno=SPJ.Pno

?S.Sno=SPJ.Sno

?

P ?

S SPJ

π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)) (7分)

优化后的标准语法树为:

结 果 — ?Jno ?Jno ? J ?P.Pno=SPJ.Pno ?City=’?S.Sno=SPJ.Sno ?Color=’? P 天津’红’ SPJ S 4、已知F={AB→C, C→DE, A→BD, D→E}和G={A→C, C→D, A→B, D→E},请判断F与G是否等价?(15分)

解:1)判定G?F+

因为AF+=ABCDE,所以A→C?F+, A→B?F+ 因为CF+=CDE,所以C→D?F+ 因为DF+=DE,所以D→E?F+ ?G?F+成立

2)判定F?G+

因为(AB)G+=ABCDE,所以AB→C?G+, 因为CG+=CDE,所以C→DE?G+ 因为DG+=DE,所以D→E?G+

因为AG+=ACBDE,所以A→D?G+,A→B?G+

?F?G+成立

?F+=G+,即F与G等价。

5、(10分)设有关系模式R,其中U={A,B,C,D},F={A→C,C→A,B

?XF→AC,D→AC,BD→A},X={AB}。求和最小函数依赖集合Fm。

解:(1)X(0)={AB}

∵ A→C, B→AC

∴ X(1)={ ABC} ∵ X(2)= X(1) ={ ABC} ?XF= X(2) ={ ABC}????????????????..???.(3分) (2)求最小函数依赖集合Fm

①将F中各函数依赖的右部属性单一化:

F1={A→C,C→A,B→A,B→C,D→A,D→C,BD→A}??.(2分)

②去除函数依赖中多余的属性:

∵B→A,D∈U,∴BD→A是多余的,可去除。即:

F2={A→C,C→A,B→A,B→C,D→A,D→C }??????(2

分)

③去除多余的函数依赖:

B→A和B→C之一是多余的 D→A和D→C之一是多余的 所以得到如下结果

F3={A→C,C→A,B→A,D→A } 或F3={A→C,C→A,B→C,D→C } 或F3={A→C,C→A,B→A,D→C }

或F3={A→C,C→A,B→C,D→A } Fm= F3 (写对其中一个F3,即可得3分)???????..(3

分)

6、(15分)关系模式 P(A,B,C,D,E,F,G,H,I,J) 满足下列函数依赖:FD={ ABD→B,AB→G,B→F,C→J,CJ→I,G→H },求FD 的最小函数依赖集,并判断该关系模式属于几范式。

解:求Fm:(12分)

(1)逐一检查F中各函数依赖Fdi:X→Y,若Y=A1A2 …Ak,k > 2,则用 { X→Aj|j=1,2,…,k} 来取代X→Y。

这一步已不用做了,F中所有函数依赖右边都是单个属性的。

(2)逐一检查F中各函数依赖FDi:X→A,令G=F-{X→A},若A?XG+,则从F中去掉此函数依赖。

检查ABD→B:令G=F-{ABD→B}, B?ABDG+ =ABDFGH, 所以将ABD→B从F中去掉, F’={AB→G,B→F,C→J,CJ→I,G→H}

再检查AB→G:令G=F’-{AB→G}, G?ABG+ =ABF, 所以不能将AB→G从F’中去掉 再检查B→F:令G=F’-{B→F}, F?BG+=B, 所以不能将B→F从F’中去掉 再检查C→J:令G=F’-{C→J}, J?CG+=C, 所以不能将C→J从F’中去掉 再检查CJ→I:令G=F’-{CJ→I}, I?CJG+=CJ, 所以不能将CJ→I从F’中去掉

再检查G→H:令G=F’-{G→H}, H?GG+=G, 所以不能将G→H从F’中去掉 所以,F’={AB→G,B→F,C→J,CJ→I,G→H}

(3)逐一取出F中各函数依赖FDi:X→A,设X=B1B2…Bm,逐一考查Bi(i=l,2,…,m),若A?(X-Bi)F+ ,则以X-Bi取代X。

F’={AB→G,B→F,C→J,CJ→I,G→H}

检查AB→G:G?AF+=(AB-B)F+=A且G?BF+=(AB-A)F+=BF 所以AB→G不能被取代

再检查CJ→I:I?JF+=(CJ-C)F+=J但I?CF+=(CJ-J)F+=CJI 所以CJ→I被C→I取代 所以,Fm={AB→G,B→F,C→J,C→I,G→H} b)判断R为几范式:(3分)

R为1NF

7、(15分)设T1、T2、T3是如下的三个事务:

事务T1:X:= X +1; 事务T2:X:= X ×2; 事务T3:X:= X 3;

(1)假设这三个事务允许并发执行,X的初值为0,则X有多少可能的正确结果,把它们列举出来,并写出相应的并发执行的顺序。(6分)

(2)请给出一个可串行化的调度,并给出执行结果。(7分) (2)并发事务的执行结果正确的标准是什么?(2分)

解:(1)(6分)可能的正确结果有:1、2和8

T1→T2→T3:X =8; T1→T3→T2:X =2; T2→T1→T3:X =1; T2→T3→T1:X =1; T3→T1→T2:X =2; T3→T2→T1:X =1; (2)(7分)一个可串行化的调度如下图所示,执行结果为8 时间 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 t13 t14 t15 t16 t17 t18

(3)(2分)并发事务的执行结果正确的标准是:当且仅当其结果与按某一次序串

行地执行它们时的结果相同,并称这种调度策略为可串行化的调度。

T1 Slock X Y=X=0 Unlock X Xlock X … X=Y+1 Unlock X T2 Slock X 等待 等待 Y=X=1 Unlock X Xlock X … X= Y×2 Unlock X T3 Slock X 等待 等待 Y=X=2 Unlock X Xlock X … X= Y3 (=8) Unlock X

本文来源:https://www.bwwdw.com/article/1rj5.html

Top