前言
早上11:00考完的考试,下午回来打了三把LOL之后,凭着回忆把题目重现出来了。
在复习的时候刷了15,16,17,18,19,21六年的卷子,感觉题目都差不多,但是难度是逐年上升的。没有找到去年的卷子,希望这张回忆的试卷能帮助到下一届的同学。
做完之后,同学们都感觉这张试卷还是挺基础的,就是拼运气和细心了,希望结果不要让我失望。
难得一门能写完卷子的学科,还能检查几分钟。
教材用的这本书(第6版)
选择题(30分)
较为基础,难度不是很大
没记住(跟前几年的很多重复的或者相近的)
比如这道题
XX 、查询优化策略中,首先应该做的是( )A 、对数据进行预处理 B 、尽早执行选择运算C 、尽早执行笛卡尔乘积运算 D 、投影运算
简答题(5分*4)
1.试述数据库设计过程并简要介绍(6点,作业原题)
2.试述关系数据库管理系统查询优化的一般准则(6点,作业原题)
3.为什么要进行并发控制,说明理由,举一个并发控制的例子(个人理解:先说不并发控制会导致的那三个:丢失修改,脏读,不可重复读,然后再举了一个丢失修改用一级封锁协议改正的例子)
4.登记日志的核心准则是什么,简要说明(个人感觉是:必须先写日志文件,后写数据库,漏写了一个点:登记的次序严格按并发事务执行的时间次序,书P325)
大题(50分)
1.SQL题(三个表,做一些关系代数查询和SQL查询)(2分*5)
大概类似这样S(Sno, Sname, Age, Sex), SC(Sno, Cno, Grade), C(Cno, Cname, Teacher)
(1)关系代数:查询计算机科学专业年龄在20岁以下的学生的学号,姓名
(2)关系代数:查询王珊老师任教的课程的课程号,课程名
(3)SQL查询:忘了
(4)SQL查询:查询至少选择了2门课程的同学的学号和姓名(书P90,使用GROUP BY和HAVING子句,HAVING子句中COUNT(*)>=2即可)
SELECT Sno,Sname
FROM Student
WHERE Sno in(
SELECT Sno
FROM SC
GROUP BY Sno
HAVING COUNT(*)>=2);
(5)SQL查询:建立计科系学生的视图 CS_Student,并要求进行插入和修改操作时仍需保证该视图只有计科系的学生(WITH CHECK OPTION)
2.(10分)
关系(Tno,Tname,Title,Dno,Dname,Dloc,Cno,Cname,Credit)分别表示教师编号,教师姓名,教师职称,系编号,系名,系地址,课程号,课程名,课程学分。一个教师只在一个系,教师教多门课程,每门课程可以给多个教师教。
(1)给出基本函数依赖
Tno→Tname,Title
Dno→Dname,Dloc
Cno→Cname,Credit
Tno→Dno
(2)给出候选码
(Tno,Cno)
(3)这最高到第几范式,为什么?
1NF,有部分函数依赖
(4)修改到第三范式
T (Tno,Tname,Title)
D (Dno,Dname,Dloc)
C (Cno,Cname,Credit)
T-C (Tno,Cno)
3.画ER图转换关系模式(在2017年试卷上略微改动,基本是原题)
2017年原题如下
(1)可随时查询书库中现有书籍的品种、数量与存放位置。所有各类书籍均可由书号惟一标识。
(2) 可随时查询书籍借还情况。包括借书人单位、姓名、借书证号、借书日期和还书日期。 这里约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有惟一性。
(3)当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息向有关书籍的出版社增购有关书籍。这里约定,一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有惟根据以上情况和假设,试作如下设计:
(1)构造满足需求的 E-R 图。(7 分)
(2)转换为恰当的关系模式,并标出主码和外码。(8 分)
(这次改成了两个6分的题,但基本一样)
4.具有检查点的日志恢复(基本跟PPT上的一样)
问UNDO-LIST和REDO-LIST(5分)
问恢复完之后ABCD的值是多少(5分)
5.两个调度序列,问是不是冲突可串行化的
(跟作业上的R3(B)R1(A)W3(B)R2(B)R2(A)W2(B)R1(B)W1(A)这个类似,但考试的这两个调度序列都不是可串行化的)(4分+4分)