第 1 章 概述:单选题
第 2 章 概念模型:设计题
第 3 章 关系模型:单选题、设计题
第 4 章 数据操纵与定义:填空题
第 5 章 数据查询:SQL 应用题
第 6 章 视图与索引:多选题、填空题
第 7 章 关系规范化:计算题
第 9 章 数据库安全与备份还原:单选题
第 10 章 数据库并发控制:单选题
第 11 章 存储过程与触发器:多选题、填空题
数据库期末复习重点题型梳理(附各章考点速览)
适用对象:计算机相关专业本科生
复习目标:高效掌握数据库原理课程核心内容,精准应对期末考试
前言
数据库系统原理是计算机科学与技术、软件工程等专业的核心课程之一。期末考试通常涵盖理论理解、SQL 实践和规范化分析等多个维度。本文根据最新教学大纲,结合历年真题规律,对各章节的典型题型进行系统梳理,帮助大家有的放矢地复习。
各章复习重点与题型分布
第 1 章 概述
- 题型:单选题
- 核心考点:
- 数据库的基本概念(DB、DBMS、DBS 的区别)
- 数据模型的分类(层次、网状、关系、面向对象等)
- 数据库系统的三级模式结构(外模式、模式、内模式)及两级映像
- 数据独立性(逻辑 & 物理)
✅复习建议:熟记定义,理解“数据抽象”与“独立性”的意义。
第 2 章 概念模型
- 题型:设计题
- 核心考点:
- E-R 图(实体-联系模型)的绘制
- 实体、属性、联系的识别与表示
- 弱实体、多值属性、复合属性的处理
- 从需求描述转换为 E-R 模型
✅复习建议:多练习文字转图,注意“基数约束”(1:1、1:N、M:N)的标注。
第 3 章 关系模型
- 题型:单选题 + 设计题
- 核心考点:
- 关系的数学定义(笛卡尔积、域、元组)
- 主键、候选键、外键的概念辨析
- 关系完整性约束(实体完整性、参照完整性、用户定义完整性)
- 从 E-R 图转换为关系模式(含联系的处理)
✅复习建议:掌握“如何将 M:N 联系转为独立关系”,这是高频设计题。
第 4 章 数据操纵与定义(DDL & DML)
- 题型:填空题
- 核心考点:
CREATE TABLE语句的完整语法(含约束定义)ALTER TABLE常用操作(ADD/DROP COLUMN, ADD CONSTRAINT)INSERT,UPDATE,DELETE的基本用法- 约束关键字:
PRIMARY KEY,FOREIGN KEY,NOT NULL,UNIQUE,CHECK
✅复习建议:默写常用语句模板,注意语法细节(如逗号、括号位置)。
第 5 章 数据查询
- 题型:SQL 应用题
- 核心考点:
- 单表/多表
SELECT查询(含JOIN) - 聚合函数(
COUNT,SUM,AVG,MAX,MIN) GROUP BY与HAVING的使用场景- 子查询(相关子查询 vs 非相关子查询)
EXISTS,IN,ANY/ALL的比较
- 单表/多表
✅复习建议:动手写 SQL!推荐使用 MySQL 或 SQLite 练习真实查询。
第 6 章 视图与索引
- 题型:多选题 + 填空题
- 核心考点:
- 视图的定义、作用(安全性、简化查询、逻辑独立性)
CREATE VIEW语法及可更新视图的限制- 索引的作用(加速查询)、类型(唯一索引、复合索引)
- 索引的代价(插入/更新变慢)
✅复习建议:理解“视图是虚表”,不能存储数据;索引不是越多越好。
第 7 章 关系规范化
- 题型:计算题
- 核心考点:
- 函数依赖(FD)的判断与推导(Armstrong 公理)
- 候选码的求解方法
- 判断关系属于第几范式(1NF → 2NF → 3NF → BCNF)
- 模式分解(保持函数依赖 & 无损连接)
✅复习建议:掌握“逐步分解法”,务必会做 3NF 分解题!
第 9 章 数据库安全与备份还原
- 题型:单选题
- 核心考点:
- 用户权限管理(
GRANT,REVOKE) - 角色(Role)的作用
- 备份类型(完全备份、增量备份、差异备份)
- 事务日志在恢复中的作用
- 用户权限管理(
✅复习建议:区分“自主存取控制”与“强制存取控制”。
第 10 章 数据库并发控制
- 题型:单选题
- 核心考点:
- 并发问题:丢失修改、不可重复读、脏读、幻读
- 封锁协议(一级、二级、三级封锁)
- 两段锁协议(2PL)与死锁
- 事务的 ACID 特性
✅复习建议:理解“隔离级别”与并发问题的对应关系。
第 11 章 存储过程与触发器
- 题型:多选题 + 填空题
- 核心考点:
- 存储过程的优点(模块化、性能、安全)
- 触发器的定义时机(
BEFORE/AFTER)和事件(INSERT/UPDATE/DELETE) - 触发器的用途(审计、约束强化、级联操作)
- 两者与普通 SQL 的区别
✅复习建议:记住触发器“自动执行”,不能被显式调用。
复习策略建议
- 分层突破:先过概念(单选/填空),再攻应用(SQL/设计),最后攻克难点(规范化、并发)。
- 真题演练:找近3年期末卷,限时模拟。
- 错题归因:建立错题本,特别关注“看似会但做错”的题。
- 代码实操:SQL 部分必须上机验证,避免纸上谈兵。
结语
数据库不仅是考试科目,更是未来开发、数据分析、系统设计的基石。扎实掌握这些内容,不仅能顺利通过期末,更为后续学习(如大数据、分布式数据库)打下坚实基础。
祝大家期末高分,稳过不挂!
数据库期末高分冲刺指南(二):高频考点精讲 + 典型例题解析
前言
在上一篇博客中,我们系统梳理了数据库各章节的题型分布与知识框架。本篇将聚焦高频考点与典型例题,通过“概念辨析 + 解题模板 + 易错警示”的方式,帮助大家快速提分,尤其适用于最后阶段的查漏补缺。
一、关系规范化(第7章)——计算题必拿分!
🔍 高频考点
- 判断是否满足 2NF / 3NF / BCNF
- 求候选码
- 无损连接 & 保持函数依赖的分解
📌 典型例题
题目:设关系模式 R(A, B, C, D),函数依赖集 F = {A → B, B → C, C → D}。
(1)求 R 的候选码;
(2)判断 R 属于第几范式;
(3)将其分解为 3NF,要求保持函数依赖且具有无损连接性。
✅ 解题步骤
求候选码:
- 找不出现在 FD 右边的属性 → A
- 计算 A⁺ = {A, B, C, D} = 全属性 ⇒候选码为 A
判断范式:
- 存在非主属性 C 对码 A 的传递依赖(A→B→C),故不满足 3NF
- 所有非主属性完全依赖于码(A→B, A→C, A→D),满足 2NF
⇒R ∈ 2NF
3NF 分解(保持 FD + 无损):
- 按 FD 分组:R1(A,B), R2(B,C), R3(C,D)
- 检查是否包含候选码?否(A 只在 R1 中,但 R1 不含全码)
- 补充一个包含候选码的关系:R4(A)
- 最终分解:{R1(A,B), R2(B,C), R3(C,D), R4(A)}
💡 更优做法:合并 R4 到 R1 →{R1(A,B), R2(B,C), R3(C,D)}即可(因 A 在 R1 中)
⚠️易错点:忘记检查“是否包含候选码”,导致分解不具无损连接性!
二、SQL 查询(第5章)——应用题满分模板
🔍 高频场景
- 多表连接 + 聚合 + 分组筛选
- “至少”、“全部”类查询(用
NOT EXISTS)
📌 典型例题
查询选修了所有课程的学生姓名。
✅ 解题思路(双重否定法)
SELECTsnameFROMStudent SWHERENOTEXISTS(SELECT*FROMCourse CWHERENOTEXISTS(SELECT*FROMSCWHERESC.sno=S.snoANDSC.cno=C.cno));💡口诀:“没有一门课是他没选的” = “他选了所有课”
⚠️ 易错点
- 错用
IN或= ALL(逻辑错误) - 忘记关联外键(如
SC.sno = S.sno)
三、E-R 图转关系模式(第2、3章)——设计题核心
🔍 转换规则速记
| E-R 元素 | 转换方式 |
|---|---|
| 实体 | → 一张表(主键即实体主码) |
| 1:1 联系 | → 任一方加对方主键作外键,或独立成表 |
| 1:N 联系 | → N 端加 1 端主键作外键 |
| M:N 联系 | →必须独立成表,主键 = 双方主码组合 |
📌 典型陷阱
“学生-课程-教师”三元联系:若一个教师只教一门课,但多个教师可教同一门课,如何建模?
✅ 正确做法:
- 若联系有属性(如“上课时间”),则必须建独立关系表:
Teach(sno, cno, tno, time) - 主键通常为
(sno, cno, tno)(视业务而定)
四、并发控制(第10章)——单选题秒杀技巧
🔍 四大并发问题 vs 隔离级别对照表
| 并发问题 | Read Uncommitted | Read Committed | Repeatable Read | Serializable |
|---|---|---|---|---|
| 脏读 | ✅ | ❌ | ❌ | ❌ |
| 不可重复读 | ✅ | ✅ | ❌ | ❌ |
| 幻读 | ✅ | ✅ | ✅(部分解决) | ❌ |
💡口诀:
- “读未提交”啥都读得到(最危险)
- “可串行化”最安全,但性能差
📌 高频单选题
下列哪种封锁协议可以避免“不可重复读”?
A. 一级封锁
B. 二级封锁
C. 三级封锁
D. 两段锁
✅ 答案:C(三级封锁:读前加 S 锁直到事务结束)
五、视图与索引(第6章)——多选/填空避坑指南
🔍 必背结论
- 视图不能提高查询速度(它只是虚拟表)
- 索引能加速
WHERE、JOIN、ORDER BY,但减慢INSERT/UPDATE/DELETE - 唯一索引 ≠ 主键:主键自动创建唯一索引,但唯一索引允许 NULL(主键不允许)
📌 填空题示例
创建一个基于学生表
Student(sno, sname, age)的视图V_Young,只包含年龄小于20的学生:CREATEVIEWV_YoungASSELECT*FROMStudentWHEREage<20;
⚠️ 注意:有些 DBMS 不允许
SELECT *,建议写明字段。
六、存储过程 vs 触发器(第11章)——多选题辨析
| 特性 | 存储过程 | 触发器 |
|---|---|---|
| 调用方式 | 显式调用(CALL/EXEC) | 自动触发(事件驱动) |
| 参数 | 支持输入/输出参数 | 无参数 |
| 用途 | 封装复杂业务逻辑 | 审计、约束、级联操作 |
| 执行时机 | 任意时刻 | DML 操作前后 |
✅ 多选题常见正确选项:
- “触发器可用于实现参照完整性”
- “存储过程可减少网络传输量”
冲刺 checklist(考前1天必看)
- 能手写 3NF 分解步骤
- 能写出“选修所有课程”的 SQL
- 能画出 M:N 联系的 E-R 图并转换
- 能区分脏读、不可重复读、幻读
- 能默写
CREATE VIEW和CREATE INDEX语法 - 能说出触发器的三个典型应用场景
结语
数据库考试重在理解+熟练。概念题靠精准记忆,SQL 和设计题靠反复练习。希望这两篇博客能助你理清脉络、避开陷阱、稳稳上岸!
🎯最后提醒:考试时遇到不会的题,先跳过!确保会做的题一分不丢,才是高分关键。
祝大家数据库期末 90+,轻松拿 A!
数据库期末高分冲刺指南(三):SQL 专项突破 + 考前速记口诀大全
前言
很多同学反馈:“概念都懂,但一写 SQL 就卡壳”“范式判断总是模棱两可”。本篇专治这些“临门一脚”难题——通过SQL 高频模板 + 万能解题套路 + 全书口诀汇总,帮你把零散知识点串成一张网,考场见题即答!
一、SQL 五大高频题型模板(直接套用!)
✅ 模板1:多表连接查询(基础必考)
SELECTs.sname,c.cname,sc.gradeFROMStudent sJOINSC scONs.sno=sc.snoJOINCourse cONsc.cno=c.cnoWHEREc.cname='数据库';🔑 关键:明确主外键关系,用
JOIN而非WHERE笛卡尔积(更规范、高效)
✅ 模板2:聚合 + 分组 + 筛选(GROUP BY + HAVING)
-- 查询平均成绩 > 80 的学生学号和平均分SELECTsno,AVG(grade)ASavg_gradeFROMSCGROUPBYsnoHAVINGAVG(grade)>80;⚠️ 注意:
WHERE不能用聚合函数,必须用HAVING
✅ 模板3:“至少/全部”类查询(NOT EXISTS 大法)
-- 查询选修了“张三”老师所教所有课程的学生SELECTDISTINCTs.snameFROMStudent sWHERENOTEXISTS(SELECT*FROMCourse cJOINTeacher tONc.tno=t.tnoWHEREt.tname='张三'ANDNOTEXISTS(SELECT*FROMSCWHERESC.sno=s.snoANDSC.cno=c.cno));💡 口诀:“没有一门他没选” = “他全选了”
✅ 模板4:子查询(相关 vs 非相关)
-- 非相关:独立执行SELECTsnameFROMStudentWHEREsnoIN(SELECTsnoFROMSCWHEREgrade>90);-- 相关:依赖外层变量SELECTsnameFROMStudent sWHEREEXISTS(SELECT*FROMSCWHEREsno=s.snoANDgrade>90);🔍 区别:相关子查询每行都要执行一次,性能较低但表达力强
✅ 模板5:视图创建与使用
CREATEVIEWV_GoodStudentASSELECTs.sno,s.sname,AVG(sc.grade)ASavg_gradeFROMStudent sJOINSC scONs.sno=sc.snoGROUPBYs.sno,s.snameHAVINGAVG(sc.grade)>=85;⚠️ 视图不能包含
ORDER BY(除非配合TOP/LIMIT)
二、关系规范化速判口诀(第7章)
📜 三步判断范式法:
- 是否 1NF? → 看属性是否原子(默认满足)
- 是否 2NF? → 看非主属性是否完全依赖于整个候选码
- 若存在部分依赖(如 AB→C,但 A→C),则不是 2NF
- 是否 3NF? → 看非主属性之间是否有传递依赖
- 如 A→B→C,且 B 不是候选码 ⇒不是 3NF
🧠 口诀速记:
- 2NF 看“部分”(部分依赖不行)
- 3NF 看“传递”(传递依赖不行)
- BCNF 看“左边”(每个 FD 左边必须是超码)
三、并发控制 & 安全性口诀(第9、10章)
🔒 并发问题四象限:
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 脏读 | 读了未提交的数据 | Read Committed |
| 不可重复读 | 同一事务两次读结果不同 | Repeatable Read |
| 幻读 | 新增/删除导致“幻影行” | Serializable / MVCC |
| 丢失修改 | 两个事务同时写 | 加 X 锁 |
💬口诀:
“脏读最低级,幻读最难防;可重复读挡不住插队,串行化才最稳当!”
🔐 权限管理关键词:
GRANT SELECT, INSERT ON Student TO user1;REVOKE UPDATE ON SC FROM user1;- 角色(Role):批量授权的“权限包”
✅ 考点:
GRANT可带WITH GRANT OPTION(允许转授)
四、E-R 图设计避坑清单(第2章)
❌ 常见错误:
- 把“多值属性”画成普通属性(应拆为弱实体或单独表)
- 忘记标注联系的基数(1:1, 1:N, M:N)
- 将“描述性名词”误认为实体(如“成绩”是属性,不是实体)
✅ 正确做法:
- M:N 联系必须独立成表
- 弱实体用双线框,主键含父实体主码
- 属性不连其他实体(只连所属实体或联系)
五、全书核心口诀速记表(考前5分钟过一遍!)
| 主题 | 口诀 |
|---|---|
| 三级模式 | 外模用户看,模式全局干,内模存物理,两级映像保独立 |
| 范式判断 | 2NF 防部分,3NF 防传递,BCNF 左边要是码 |
| SQL 执行顺序 | FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY |
| 索引作用 | 查询快,增删慢;唯一可空,主键不行 |
| 触发器 | 自动跑,事件触;审计约束级联用,不能 CALL |
| 事务 ACID | 原子一致隔离持久,一个都不能少 |
| 封锁协议 | 一级防丢改,二级加读锁,三级读锁持到终,两段锁保可串行 |
六、考前最后叮嘱
SQL 写完检查三件事:
- 表别名是否一致?
- 聚合函数是否误用在
WHERE? - 多表连接是否漏写
ON条件?
设计题先画再写:E-R 图或关系模式草稿打在试卷空白处,避免逻辑混乱。
选择题善用排除法:尤其“以下说法错误的是”类题目,逐项验证。
结语
数据库不是死记硬背的学科,而是逻辑+实践的艺术。希望这三篇冲刺指南,能让你从“慌乱复习”走向“胸有成竹”。
🌟终极祝福:
愿你的 SELECT 永不返回空,
你的事务永远 COMMIT 成功,
你的期末成绩——AC(Accepted)!