山东大学软件学院数据库系统2022年春期末考试
时间:2022年6月27日 8:30-10:30
试卷满分:70分
简答题(6题*4分 = 24分)
-
在银行转账这一事务中,(1)a = a-100;(2) b = b +100;若执行完(1)后服务器宕机了,那么数据库系统是如何采取相应的操作来保持数据的一致性的呢?请说明。(本题题干较长,在这里做了相应转述)
给个PPT上的例子(数值上有差距而已)
-
(考查多值依赖)和本题几乎一致,改了个属性名而已(上图)
-
已知instructor(ID,sname,dept_name,salary). 写出下列SQL语句的语法树及其优化后的语法树。
select sname from instructor a,instructor b where a.salary>b.salary and dept_name = 'Comp_Sci';
-
请说明一个关系中的元组之间是否存在顺序,为什么?
-
在一个关系R(A,B,C)上建立索引(B,C),我们采用B+树实现相应索引,问在执行下列SQL语句的时候是否用到了这个索引,为什么?
select A from r where B = 'b1';
SQL语句不记得具体表达了,反正有一个B=‘b1’.
-
问调度{TA,TB,TC}在时间戳排序协议下的调度结果,为什么?(大致表达了这个意思,题干具体的不记得了)
TA(TS=1) TB(TS=2) TC(TS=3) R(A) W(A) R(A) W(A) R(B) W(B) R(B) R(B) R(A)
设计题(9分+9分 = 18分)
-
现有一个公司需要管理司机,车辆,车队;车队有车队号和车队名;司机由司机编号,姓名,性别;车辆有牌照号,车辆名,生产公司;一个车队有多辆车,每辆车仅属于一个车队;一个车队有多个司机,每个司机隶属于一个车队,其中为“雇佣关系”,有一个属性是“工作时间”;每个司机可以开多辆车,而每辆车可以由多个司机去驾驶,其中这个“开车”关系含有两个属性驾驶时间和xx属性(忘了,不影响理解)。(注:描述会有偏差,部分名词做了一定程度转换,不影响理解)
(1)请依据以上描述画出E-R图;(5分)
(2)请根据E-R图写出对应的关系模式;(4分)
-
已知关系模式R,U={A,B,C,D,E,G}, F = {AB->CD,ADE->GDE,B->CG,G->DE}.
(1)问上述关系模式是否满足3NF,给出理由;若不满足给出3NF保持函数依赖和无损分解;(5分)
(2)问上述关系模式是否满足BCNF,给出理由;若不满足给出BCNF的无损分解. (4分)
编写SQL语句题(28分)
本题与2021年春数据库试题高度相似,几乎没怎么改
supplier(sno,sname,city) sno有下划线
com(cno,cname,color,weight) cno有下划线
project(pno,pname,city) pno有下划线
spc(sno,cno,pno,qty) sno,cno,pno有下划线
其中supplier表示供应商,com表示零件,project表示项目,spc表示供应商,零件和项目之间的关联关系供应商向项目提供零件,qty表示零件的数目。一个供应商可以向多个项目提供多个零件;一个项目可以由多个供应商提供多个零件;一个零件可以被多个供应商供应给多个项目。根据上述关系完成下面的题目。
- 请选择供应商城市在"北京"的供应商编号(写出关系代数表达式和SQL语句,3分)
- 请选择供应商城市在"北京"的供应商提供的零件编号(写出关系代数表达式和SQL语句,3分)
- 查询没有选择供应商城市在"北京"的供应商提供的零件的项目编号(写出关系代数表达式和SQL语句,6分)
- 查询使用了与项目"p1"所使用相同零件的项目编号(写出关系代数表达式和SQL语句,6分)
- 查询零件数目最多的项目编号(写出SQL语句,3分)
- 查询比所有红色零件都重的零件编号(写出SQL语句,3分)
- 在supplier中删除提供了"红色"零件的供应商(写出SQL语句,2分/4分?忘了分值,不影响)
会议存在偏差,但不影响理解和复习。
附上2021年试题连接: