数据库系统-2023期末考试【原题回忆+感想】

文章讲述了作者经历的一场考试,复习过程中回顾了历年试题,强调了选择题的重复性和数据库相关知识如查询优化、数据库设计、并发控制等内容。最后提及了SQL查询和ER图转换等技术题型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言


早上11:00考完的考试,下午回来打了三把LOL之后,凭着回忆把题目重现出来了。

在复习的时候刷了15,16,17,18,19,21六年的卷子,感觉题目都差不多,但是难度是逐年上升的。没有找到去年的卷子,希望这张回忆的试卷能帮助到下一届的同学。

做完之后,同学们都感觉这张试卷还是挺基础的,就是拼运气和细心了,希望结果不要让我失望。

【2024.1.21补:结果还是挺好的,没有失望,分数不错】

难得一门能写完卷子的学科,还能检查几分钟。

教材用的这本书(第6版)

选择题(30分)

较为基础,难度不是很大

没记住(跟前几年的很多重复的或者相近的)

比如这道题

XX 、查询优化策略中,首先应该做的是(
A 、对数据进行预处理 B 、尽早执行选择运算
C 、尽早执行笛卡尔乘积运算 D 、投影运算

简答题(5分*4)


1.试述数据库设计过程并简要介绍(6点,作业原题)

【2019年简答题第1题,同样的位置,同样的题目

需求分析阶段:准确了解与分析用户需求(包括数据与处理)。
概念结构设计阶段:形成一个独立于具体数据库管理系统的概念模型。
逻辑结构设计阶段:将概念结构转换为某个数据库管理系统所支持的数据模型,并对其进行优化。
物理结构设计阶段:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
数据库实施阶段:编制与调试应用程序,组织数据入库,并进行试运行。
数据库运行和维护阶段:在数据库系统运行过程中对其进行评价、调整与修改。

2.试述关系数据库管理系统查询优化的一般准则(6点,作业原题)

(1)尽可能先做选择运算
(2)投影运算和选择运算应同时进行
(3)把投影和其前后的双目运算结合起来
(4)把某些选择与在它前面要执行的笛卡尔积结合起来成为一个连接运算
(5)找出公共子表达式
(6)选取合适的连接算法

3.登记日志的核心准则是什么,简要说明(个人感觉是:必须先写日志文件,后写数据库,漏写了一个点:登记的次序严格按并发事务执行的时间次序,书P325)

(1)必须先写日志文件,后写数据库

(2)登记的次序严格按并发事务执行的时间次序

4.为什么要进行并发控制,说明理由,举一个并发控制的例子(个人理解:先说不并发控制会导致的那三个:丢失修改,脏读,不可重复读,然后再举了一个丢失修改用一级封锁协议改正的例子)【2019年简答题第4题类似,同样的位置,相似的题目】

有点怀疑是不是对着2019年的卷子出的今年的卷子

 

大题(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分)

### 学生选课数据库设计系统自我评价 在学生选课数据库设计过程中,确保每门课程的学生人数不超过规定上限是一个重要的约束条件。为此,在SQL中创建断言 `ASSE_SC_CNUM1` 来强制执行这一规则: ```sql CREATE ASSERTION ASSE_SC_CNUM1 CHECK ( 60 >= ALL( SELECT COUNT(*) FROM SC GROUP BY cno ) ); ``` 此语句确保任何一门课程(由 `cno` 表示)所关联的学生数量不会超过60人[^2]。 ### 数据库设计感想 通过实践项目,深刻体会到关系型数据库管理系统如MySQL的重要性与实用性。其不仅提供了稳定可靠的数据存储解决方案,还成为开发各类应用程序不可或缺的一部分。具体而言,MySQL能有效支撑起复杂的业务逻辑处理需求,为不同类型的软件平台奠定坚实的后台服务基础[^3]。 ### 课程设计感想报告示例 #### Python编程入门课程总结 本学期参加了《Python程序设计》这门公选课的学习过程令人受益匪浅。在整个学习期间内,掌握了多种核心概念和技术要点,包括但不限于变量定义、控制结构、函数编写等方面的知识点。特别是在完成一系列实验作业之后,更加深入理解了面向对象的思想及其应用场景。 以下是个人对于本次课程的一些心得体会: - **理论联系实际**:每次课堂讲解结束后都会布置相应的练习目,使得抽象的概念变得直观易懂; - **团队协作能力提升**:小组合作模式下的项目开发经历极大地锻炼了自己的沟通技巧和解决问的能力; - **持续改进意识培养**:面对挑战时始终保持积极态度寻找更优解法,并不断反思过往经验教训以便日后更好地应对类似情况。 综上所述,《Python程序设计》不仅仅是一次技术技能的培训机会,更是思维方法论的一场洗礼。希望未来还能有机会继续探索更多计算机科学领域内的奥秘[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值