数据库系统概论期末试题高效复习:从考点拆解到答题模板
2026/9/17 12:33:53 网站建设 项目流程

简介:数据库系统概论期末试题及答案以PDF文档形式提供,面向正在复习数据库课程的高校学生、自考生及考研备考生,尤其适合考前快速回顾核心概念。试题覆盖数据库基本特征、DBMS与DBS关系、关系代数运算、自然连接、E-R模型、SQL查询与更新、函数依赖和范式、完整性约束等核心章节,适合期末冲刺与阶段性自测。资源包共1个文件,格式为PDF,整体大小仅690KB,下载后可直接打开阅读或打印,可用于章节自测。目前已有274人学习使用。随题附有答案和知识点解析,不仅给出正确选项,还对关系代数等价变换、SQL插入合法性、UNIQUE与主键区别、BETWEEN边界取值等易混点逐一说明,试题还标注难度系数,方便快速定位薄弱环节,帮助读者巩固数据库原理,提升解题与应试能力。

1. 数据库系统概论期末试题:一份 PDF 的正确打开方式不是“通读”

考前下载一份《数据库系统概论期末试题及答案.pdf》,是很多人的固定动作。拉开分数差距的,从来不是有没有这份 PDF,而是怎么用。把答案从头读到尾,大脑会产生「我全会了」的错觉,等合上文件动笔写题,才发现关系代数的选择和投影顺序、范式分解的候选码推导,全都拿不准。答案 PDF 适合当判卷标准,不适合当教材。更实用的策略是把它当自测工具:先合上答案做题,再拿采分点逐条对,把错误收敛到几个具体知识块上。对正在备考数据库系统概论期末考试的学生、想考数据库系统工程师认证的从业者,以及要快速召回数据库系统原理核心概念的工程师,这套方法都适用。下面按考点拆解、复习流程、答题模板、考前收尾四部分,把这份 PDF 用到位。

2. 数据库系统概论考点拆解:期末题集中在哪五个知识块

一份数据库系统概论期末试题,去掉填空和名词解释后,真正有区分度的题基本集中在五块:关系代数与 SQL、范式与模式分解、事务与并发控制、ER 图转换、索引与恢复。无论教材是数据库系统概论第六版,还是偏工程的数据库系统原理及应用,卷面结构都逃不开这几块,各部分分值虽有浮动,但关系代数和 SQL 通常是绝对大头。了解这个分布的意义在于:用 PDF 练题时不必按页码顺序刷,按知识块刷更接近考场的真实权重,也方便最后按错题统计决定补哪里。

2.1 关系代数与 SQL:先写 SQL 再翻译成关系代数表达式

期末卷里最常见的一类题是「给定关系模式,写出查询的关系代数表达式和 SQL」。常见做法是先写 SQL,再按对应关系翻译过去:SELECT 对应投影 π,WHERE 对应选择 σ,JOIN 对应连接 ⋈,GROUP BY 和 HAVING 对应分组与聚合。直接对着题目憋关系代数容易漏条件,先写 SQL 能保证逻辑完整。

假设有三张表:Student(Sno, Sname, Sdept)、SC(Sno, Cno, Grade)、Course(Cno, Cname),题目要求「查询选了 C01 课程且成绩大于 85 分的学生姓名」。先写 SQL:

-- 查询选了 C01 且成绩大于 85 分的学生姓名 SELECT DISTINCT s.Sname FROM Student s JOIN SC ON s.Sno = SC.Sno WHERE SC.Cno = 'C01' AND SC.Grade > 85;

对应的关系代数表达式为:

π_Sname( σ_Cno='C01' ∧ Grade>85 ( Student ⋈ SC ) )

这里有两个采分点容易出现分歧。第一,SQL 默认不去重,关系代数默认去重,所以 SQL 里要写 DISTINCT,阅卷时常有人在这一步被扣分。第二,σ 和 ⋈ 的先后顺序:先做选择再做连接,中间结果小;先连接再选择逻辑等价但会产生冗余行,答题时统一写成「先 σ 后 ⋈」的结构,评卷老师一眼就能看到你的执行思路。若题目还要求写出查询优化后的表达式,考的就是「选择下推」这条启发式规则。代码里的表名 Student、SC 和属性名 Sno、Cno、Grade 都来自题面,不同学校的卷子可能换成 StudentNo、CourseID 之类的命名,翻译成关系代数时保持题面原属性名即可。

2.2 范式判断与模式分解:读答案前先自己画函数依赖

大多数人对范式的记忆停留在「3NF 消除传递依赖」这句话上,可真正做题时,第一步永远是求候选码。答案 PDF 只会给出「最高满足 2NF」这类结论,推导链得自己补。以一道常见题为例:R(A, B, C, D),函数依赖集 F = { A → B, B → C, C → D },问 R 满足第几范式。

推导过程分四步。第一步求候选码,由 A → B、B → C、C → D 可推出 A 决定所有属性,候选码是 A,非主属性为 B、C、D。第二步看部分依赖,候选码只有一个属性 A,部分依赖不成立,满足 2NF。第三步看传递依赖,A → C 经由 B 传递,A → D 经由 B、C 传递,存在传递依赖,不满足 3NF。因此最高是 2NF。

对应的 3NF 分解为 R1(A, B)、R2(B, C)、R3(C, D)。这个分解既保持依赖又是无损连接,因为每条函数依赖都完整落在某一个关系内部:A → B 在 R1,B → C 在 R2,C → D 在 R3,没有依赖跨多个关系断裂。判断分解好坏的标准就三条:无损连接、保持依赖、每个关系达到目标范式。阅卷按「候选码怎么求、哪里破坏了范式」给步骤分,所以练题时要把推导链写完整,而不是只看答案最后的分解结果。

2.3 事务与并发控制:简答题的采分点是「现象 + 协议 + 例子」

事务这块的简答题,采分点通常藏在「现象 + 协议 + 例子」的组合里。比如问「什么是脏读、不可重复读、幻读」,只写定义只能拿一半分,补上隔离级别与现象的对应表,再配一句例子才完整。

隔离级别脏读不可重复读幻读加锁行为
读未提交可能可能可能写锁持有到事务结束
读已提交不会可能可能读锁即用即放
可重复读不会不会可能读锁持有到事务结束
可串行化不会不会不会表锁或间隙锁

对工程师来说,这张表要映射到具体的数据库系统:MySQL InnoDB 默认是可重复读,并靠间隙锁把幻读也挡掉;PostgreSQL 和 Oracle 默认是读已提交。期末试题里经常反着考——给出一组并发调度,问在哪个隔离级别下可能出现脏读或不可重复读,这时候先把现象写全,再写对应协议,基本就踩满采分点了。

3. 用数据库系统概论期末试题 PDF 做输出式复习:从通读到限时自测

3.1 给 PDF 里的试题打标签,用脚本算出题密度

拿到 PDF 后不要从第一页开始读。常见做法是把题目按知识块分组,统计每块的题量和分值。网上流传的数据库系统概论期末试题,很多带着校名,比如搜「深圳大学数据库系统」能筛到风格更统一的套卷,方便连续刷。不管哪所学校的卷子,出题密度大致落在下表的范围里。

知识块常见题型卷面分值参考
关系代数与 SQL写表达式、写查询语句20~30 分
范式与模式分解判断范式、分解到 3NF/BCNF10~15 分
事务与并发控制简答、并发调度分析10~20 分
ER 图与关系模式转换画 ER 图、转关系模式15~20 分
索引与数据库恢复计算、简答5~10 分

统计本身可以交给脚本。把题目手工登记成 CSV,列名为题号、知识块、题型、是否做对(填是或否),然后用一个十几行的 Python 脚本算出每块的题量和错题量,最后两天按结果决定先补哪块。

# tag.csv 首行列名: 题号,知识块,题型,是否做对 import csv from collections import Counter with open("tag.csv", encoding="utf-8") as f: rows = list(csv.DictReader(f)) density = Counter(r["知识块"] for r in rows) wrong = Counter(r["知识块"] for r in rows if r["是否做对"] == "否") for block in sorted(density, key=lambda b: -density[b]): rate = wrong.get(block, 0) / density[block] print(f"{block}: 共 {density[block]} 道, 错 {wrong.get(block, 0)} 道, 错误率 {rate:.0%}")

这段脚本的逻辑不复杂:density 这个 Counter 统计每个知识块出现的题目总数,wrong 这个 Counter 只统计「是否做对」为否的题,最后按题量降序打印错误率。参数上要注意 CSV 列名必须和代码里引用的字符串完全一致,编码用 utf-8,否则 DictReader 会取不到值直接报错。错误率最高的块就是复习优先级最高的块,而不是你主观觉得难的那个块。数据量小的时候用表格手算也行,但脚本的好处是每次对完答案更新 CSV 再跑一次就行,不用反复数题。

3.2 限时做题 + 红笔标记采分点:输出优先于通读

输出式复习的核心动作是「合上答案做题」,这一步没有替代品。操作流程:把 PDF 里的主观题单独打印出来,SQL 题每道限时 10 分钟,范式分解每道 8 分钟,简答题每道 5 分钟;到点必须停笔,哪怕没写完也进入对答案环节。

提示:限时做题时把手机放远,SQL 题不要边查笔记边写,考场没有补查的机会。

对答案不是把正确答案抄一遍。用红笔在答题纸边上标三个记号:漏掉的知识点、写错的结论、多写的废话。以范式题为例,答案第一行通常是「候选码为 A」,如果你写了同样的候选码但闭包推导过程是错的,红笔应标「闭包推导」而不是「范式判断」。这样标完,错题表里积累的是一条条可执行的动作,而不是一句「我范式没学好」。

3.3 错题表只记「卡点」,不记整道题

题号知识块卡点下一轮要做的动作
T07范式与分解闭包推错,候选码漏了 C重做 3 道求闭包小题
T12关系代数连接条件写反默写 θ 连接语法
T19事务恢复日志 undo/redo 先后搞混重画日志恢复时序图

表格里真正起作用的列是最后一列,它把模糊的「不会」转成了具体动作。复盘时只看这列,做掉一项划一项,比反复翻答案有效得多。注意不要把卡点写成「粗心」,凡是能归因到知识点的都写具体名称,比如「候选码漏了 C」「undo 和 redo 顺序反了」,只有这样才能在下一轮练到点子上。

4. 数据库系统概论高频题型的答题模板:阅卷按点给分,写对结构就拿一半分

4.1 事务隔离级别题:现象 → 协议 → 结论的三段式结构

前面给了隔离级别与加锁行为的对照表,这里说怎么组织答案。答题模板固定为三句:第一句写该级别下会出现哪些现象,比如可重复读下仍可能出现幻读;第二句写实现协议,说明读锁何时释放、是否加间隙锁;第三句写结论,点明适用场景。以「为什么可重复读不能防止幻读」为例,标准答法是:可重复读下普通读锁持有到事务结束,但只锁已读取的行,不锁范围,因此其他事务仍可在范围内插入新行,导致同一查询返回不同的行集,所以需要可串行化或间隙锁来补。这样三段写下来,即使结论不完整,前两段的采分点也稳了。

4.2 B+ 树索引计算题:先算页容量,再算树高和 IO 次数

索引题分值不高但几乎每年都出,标准题型是给出表的行数、页大小、索引项大小,求 B+ 树层数和点查询的 IO 次数。答题顺序固定:先算每个叶子页能放多少索引项,再算需要多少叶子页,再反推内部节点层数,最后给 IO 次数。以 1000 万行、页大小 16KB、索引项 16 字节为例:

步骤算式结果
每页可存索引项数16KB ÷ 16B1000 项
叶子页数量1000 万 ÷ 100010000 页
内部节点层数10000 ÷ 1000 后继续上卷2 层
树高叶子层 + 内部层3 层
点查询 IO 次数根节点常驻内存2~3 次

这类题的采分点全部在计算过程里,直接写「3 次」没有过程分,必须把每步算式列全,必要时画一棵三层树的示意图。要注意题目有没有给「根节点常驻内存」这个条件,没给时就按每层各一次 IO 算,给了则根层不算 IO。

4.3 ER 图转关系模式:1:1、1:N、M:N 三种映射规则别混淆

ER 图转关系模式是设计题的主角,规则只有三条,但每年都有人混。1:1 联系:把任一方的主键放入另一方作外键,联系属性一并带过去。1:N 联系:在 N 方关系中加入 1 方的主键作外键。M:N 联系:新建一张关系表,主键取双方主键的组合,联系属性放在关系表里。

-- 学生选课 M:N 联系转换出的关系表 CREATE TABLE SC ( Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade DECIMAL(3, 1), PRIMARY KEY (Sno, Cno), FOREIGN KEY (Sno) REFERENCES Student(Sno), FOREIGN KEY (Cno) REFERENCES Course(Cno) );

注意 M:N 转出的表主键是 (Sno, Cno) 组合键,而不是另设一个自增 id,阅卷时丢了组合主键会被扣掉一半分。DECIMAL(3, 1) 表示三位有效数字、一位小数,能存 0.0 到 99.9 的成绩,若题面要求百分制整数可换成 SMALLINT。偏应用的课程会把这道题和后面的 SQL 查询串在一起,先画 ER 图、再写建表语句、再写查询,是整张卷子里综合度最高的一题。

5. 数据库系统概论考前 48 小时:用答案做反向倒查收尾

考前两天不适合再刷整卷,适合用答案做反向倒查。具体动作有三个。

第一个动作是「看答案反推题目」。把 PDF 翻到答案部分,遮住题目,只看答案的结论,尝试恢复出它回答的问题。比如看到「候选码为 A,存在传递依赖,最高 2NF」,要能反推出原题的函数依赖集和关系模式。反推不出来的地方,就是最后两天要补的地方。这个方法比再做一遍题划算,因为它是直接对着采分点检查知识召回能力,而不是顺着题面走一遍熟悉路径。

第二个动作是「对着错题表最后一列逐个清账」。错题表里累积的每个动作,重做时控制在 15 分钟内,做完一项划一项。清理顺序有讲究:先清「闭包推导」「关系代数翻译」这类高频基础动作,再清「日志恢复时序」「两段锁」这类需要完整推导的,最后留时间给 SQL 表达式默写。若某个卡点出现两次以上,直接回到教材例题重做,不要再用套卷里的同一道题验证。

第三个动作是「掐表重写两道论述题」。事务恢复和并发调度是最耗时的两道题,各用 15 分钟完整写一遍,训练节奏和版面:先写结论一句话,再列推导过程,最后补一句场景说明。考前最后一晚不开新题,只看错题表第一列的卡点词,每个词能说出对应知识点和一句推导就放下;合上 PDF 前再扫一遍没有划掉的项,能说清楚就去休息,说不清楚就回到对应章节的例题重做一遍。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询