简介:《数据库系统工程师考试大纲》对应第四版教材,面向备考软考中级的考生与自学者,用于明确考试范围、梳理知识框架并安排复习节奏。压缩包共1个 docx 文件,约110KB,篇幅精炼,便于随时查阅与打印标注。目前已有1660人学习下载。内容按目录分层展开:开头为考试说明、考试要求、考试目的与考试科目;信息系统知识板块覆盖硬件基础、软件基础与计算机网络;数据库技术部分细分为数据库技术基础、关系数据库、事务管理、SQL、数据库设计及数据仓库与数据分析基础;其后是系统开发与运行维护、网络与系统安全、数据库主流应用技术、计算机专业英语,以及数据库系统设计与管理中的系统分析、功能设计、架构与数据库结构设计等条目。整体以条目化方式呈现考点层级,便于对照教材逐章勾画重点、排查复习盲区,也可作为整理笔记的参照清单。
1. 从大纲目录反推命题:数据库系统工程师到底考什么
翻开数据库系统工程师的大纲,很多人第一反应是意外:第一章不是 SQL,是计算机组成原理。上午卷 75 分全是单选,真正落在数据库技术上的题目大约只占一半,剩下的是硬件与存储、操作系统、数据结构与算法、计算机网络、软件工程和专业英语。也就是说,这场考试的胜负常常不在你 SQL 写得多漂亮,而在那些「看着不像数据库」的题能不能稳住。两科都要过 45 分,只压一头的人最容易卡在第二年重考。这篇按大纲章节顺序走一遍:先把信息系统知识里的必争分捞出来,再把关系代数、范式、事务、SQL 这几块硬骨头拆成可练的题,最后落到下午案例题的答题模板和五类最容易翻车的失分点上。适合有开发或运维底子、想一次拿证定级的人。
2. 信息系统知识:硬件、软件、网络三块的必争分与真题对照
大纲第 1、3、4、6 章合起来构成上午卷的「外围区」,条目多、分值散,但有个好处:考点极其稳定,十年不换花样。这一区域的目标不是全对,是拿到 30 分以上,把压力从数据库部分卸下来。下面按大纲条目挑出真正会出题的点,每个点配一道典型题的答法。
2.1 硬件与存储:RAID、Cache、流水线年年见
大纲 1.1 里三条线必须能秒答:存储系统(RAID 类型与特性、多级存储体系)、CPU 与流水线、可靠性分析。RAID 是最高频的,别只背名字,要记「坏几块盘」「容量利用率」「读写侧重」。
| 级别 | 最少磁盘数 | 容错能力 | 容量利用率 | 典型场景 |
|---|---|---|---|---|
| RAID 0 | 2 | 无容错,坏一块全崩 | 100% | 临时数据、追求速度 |
| RAID 1 | 2 | 镜像,坏一块可继续 | 50% | 系统盘、日志盘 |
| RAID 3 | 3 | 校验盘,坏一块可恢复 | (n-1)/n | 大文件顺序读写 |
| RAID 5 | 3 | 分布式校验,坏一块可恢复 | (n-1)/n | 通用业务库 |
| RAID 6 | 4 | 双校验,坏两块可恢复 | (n-2)/n | 归档、大容量 |
| RAID 10 | 4 | 先镜像再条带,坏一块可恢复 | 50% | 高并发写入 |
Cache 命中率题几乎是送分:命中率 h、Cache 访问时间 t1、主存访问时间 t2,平均访问时间 = h×t1 + (1-h)×t2。看到「命中率 95%」「Cache 2ns、主存 20ns」这种数字,直接代。流水线题的坑在「流水线周期取最长的一段」和「总时间 = 一条指令时间 + (n-1)×周期」,公式记反就是白丢一分。
2.2 数据结构与算法:复杂度、排序、树遍历三件套
大纲 1.2.1 列得很细,但命题收敛在三处。第一是复杂度判断,给你一段嵌套循环让你选 O(n log n) 还是 O(n²),注意内层循环边界是不是随外层变化。第二是排序算法的性质对比,重点记「稳定性」和「最坏时间复杂度」:冒泡、插入、归并稳定,快排、堆排、选择不稳定;快排最坏 O(n²),堆排和归并稳定在 O(n log n)。第三是二叉树遍历,给前序和中序还原树,或给中序和后序求前序,做法固定:前序第一个是根,拿它去中序里切左右子树,递归。
Hash 那块大纲专门点了「存储位置计算、碰撞处理」,线性探测法和链地址法的区别要能说清:前者冲突后往后找空位,容易产生堆积;后者同槽挂链,查找要遍历链。
2.3 操作系统与网络:进程状态、死锁、协议分层
操作系统的高频点集中在大纲 1.2.2 的四个词:进程状态转换、PV 操作与互斥、死锁、页面置换。进程三态图要能默画,注意「等待 I/O 完成」是从阻塞态回就绪态,不是直接回运行态——这个细节反复出题。死锁的四个必要条件(互斥、请求并保持、不可剥夺、循环等待)几乎必考,破坏其中任意一个就能预防,银行家算法属于「避免」而非「预防」,概念别混。
网络部分按 1.3 走:OSI 七层与 TCP/IP 四层的对应、各层设备(集线器在第一层、交换机第二层、路由器第三层)、常用端口与协议归属。这部分题量大、单题分值低,用碎片时间刷最划算。
2.4 软件工程与专业英语:低投入高产出的两块
大纲第 3 章软件工程,考的是「概念辨析」:生命周期模型之间怎么选、DFD 与数据字典的组成、黑盒白盒灰盒测试各适用什么阶段。答题时抓一句话——需求阶段出 DFD 和 DD,设计阶段出结构图,测试阶段按「是否看内部结构」分黑白盒。
专业英语 5 分,很多人直接放弃,其实性价比很高。它考的是「读懂摘要」而不是「翻译」,先看题干问什么(主旨、某词含义、作者态度),再回原文定位那一段。词汇量不够也能做对一半,因为术语大多是数据库和网络里的常见词。
提示:这一章的正确打法是「限时刷、只记错题」。外围区考点重复率极高,错题本上同一条目出现三次,就说明它是你的固定失分项,必须回去把教材那两页读完。
3. 数据库技术:关系代数、范式、事务、SQL 四块吃透才敢进考场
这是分值最集中的一章,上午卷和下午卷都绕不开。大纲第 2 章从数据模型一路排到数据仓库,看着长,实际上能出成题的核心只有四块:关系代数、范式与分解、事务与并发、SQL 语句。剩下的数据库设计、数据仓库属于「背了就能拿分」的记忆型内容。
3.1 数据模型与三级模式:概念题只考这几个点
大纲 2.1 里的两个重点,一是数据模型的组成要素(数据结构、数据操作、完整性约束),二是 ANSI-SPARC 三级模式两级映像。三级模式是外模式、模式、内模式;两级映像是外模式/模式映像(保证逻辑独立性)和模式/内模式映像(保证物理独立性)。考题常把「哪个映像对应哪种独立性」调换,看到「逻辑独立性」就找外模式/模式。DBMS 的功能按大纲列了六项,其中「数据组织、存储和管理」和「数据库的建立和维护」最容易和被混淆的选项搞混,记关键词即可。
E-R 图三要素(实体、属性、联系)和联系的三种类型(1:1、1:n、m:n)是后续下午题的基石。m:n 联系转关系模式时必须单独建表,主码是两端实体的主码组合——这条规则在第 4 章还会反复用。
3.2 关系代数与元组演算:五种基本运算怎么拼
并、差、笛卡儿积、选择、投影是基本运算,交、连接、除是导出运算。答题时的顺序感很重要:先投影出需要的列,再选择出需要的行,最后连接。除运算最容易卡,记住它的语义是「对所有」——求「选修了全部课程的学生」,本质就是一个除。
用 SQL 表达「全部」这类题,标准写法是双重 NOT EXISTS,逻辑是「不存在一门课,这个学生没选」:
-- 关系除法:找出选修了全部课程的职工 -- 外层:逐个职工判断;中层:遍历所有课程;内层:检查该职工是否选了该课 SELECT s.职工号 FROM 选修 s WHERE NOT EXISTS ( SELECT * FROM 课程 c WHERE NOT EXISTS ( SELECT * FROM 选修 x WHERE x.职工号 = s.职工号 AND x.课程号 = c.课程号 ) );这段的三层结构要能背下来:最外层给候选人,中间层说「存在一门课」,最内层说「这个人没选它」。两个 NOT EXISTS 叠起来,语义就从「有一门没选」翻成「一门都没漏」。参数上注意相关子查询的关联条件必须写在内层,写成x.职工号 = s.职工号,漏掉就退化成无关联子查询,结果直接翻车。
3.3 范式与模式分解:判定流程比背定义管用
从 1NF 到 BCNF,判定走一条固定路线:先找候选码,再看所有非主属性对候选码的依赖情况。
| 范式 | 判定条件 | 典型违规 |
|---|---|---|
| 1NF | 属性不可再分 | 一个字段塞多个电话 |
| 2NF | 消除非主属性对候选码的部分依赖 | 联合主码下某属性只依赖其中一部分 |
| 3NF | 消除非主属性对候选码的传递依赖 | A→B,B→C,A 是码 |
| BCNF | 消除主属性对候选码的部分和传递依赖 | 每个决定因素都必须是候选码 |
考试常见问法:「该关系最高属于第几范式,为什么」。答题模板是三句话——写出函数依赖集、指出候选码、点明违反了哪条(部分依赖/传递依赖)。只说「因为存在传递依赖」不给分点,要写清「X→Y,Y→Z,且 Y 不是候选码,因此不满足 3NF」。
模式分解考「无损连接」和「保持函数依赖」。判断无损连接用表格法或定理:分解成两个子模式时,若交集是其中一个的码,则无损。这条定理在选择题里能省下大量时间。
3.4 事务、并发与恢复:隔离级别和封锁协议要成对记
大纲 2.3 的关键词是 ACID、可串行化、封锁协议、隔离级别、故障恢复。并发三大问题(丢失修改、不可重复读、读脏数据)和四级隔离级别的对应关系,必须能对着表说出来:读未提交防不住脏读,读已提交防脏读但不防不可重复读,可重复读防不住幻读,可串行化全防。
封锁协议里,一级封锁协议解决丢失修改,二级在一级基础上加读锁解决脏读,三级再加读锁保持到事务结束解决不可重复读。两段锁协议(增长期只加锁、收缩期只释放)保证可串行化,但可能死锁——这句话经常作为选项出现。
故障恢复按日志走:先写日志后写数据库(WAL),出故障时正向扫描重做已提交、反向扫描撤销未提交。检查点技术的作用是缩短恢复时的扫描范围,不是保证不丢数据。这个区别考过很多次。
3.5 SQL 真题演练:从建表约束到触发器
下午卷的 SQL 题几乎都从「补全建表语句」开始,主键、外键、CHECK 三件套要写得又快又准:
-- 实体表:主键 + 唯一约束 CREATE TABLE 部门 ( 部门号 CHAR(4) PRIMARY KEY, 部门名 VARCHAR(30) NOT NULL UNIQUE ); -- 联系表:外键 + 属性级 CHECK CREATE TABLE 职工 ( 职工号 CHAR(6) PRIMARY KEY, 姓名 VARCHAR(20) NOT NULL, 部门号 CHAR(4), 工资 DECIMAL(8,2) CHECK (工资 >= 0), 入职日期 DATE, CONSTRAINT fk_部门 FOREIGN KEY (部门号) REFERENCES 部门(部门号) ON DELETE SET NULL );ON DELETE SET NULL和ON DELETE CASCADE的选择要看题干:部门撤销但职工还在,选 SET NULL;职工离职记录也不留,才选 CASCADE。写反了整道题的分都要扣。CHECK 约束写在属性后面或表级都可以,但引用同表其他属性时必须用表级。
触发器题的套路是「某操作后写审计表」,记住三个要素:触发时机(AFTER/BEFORE)、触发事件(INSERT/UPDATE/DELETE)、行级还是语句级。
-- 行级触发器:工资变动超过 20% 时留痕 CREATE TRIGGER trg_工资审计 AFTER UPDATE OF 工资 ON 职工 FOR EACH ROW WHEN (ABS(NEW.工资 - OLD.工资) > OLD.工资 * 0.2) BEGIN INSERT INTO 工资审计(职工号, 旧工资, 新工资, 变更时间) VALUES (OLD.职工号, OLD.工资, NEW.工资, CURRENT_TIMESTAMP); END;OLD和NEW是行级触发器的两个伪记录,UPDATE 时两个都有,INSERT 只有 NEW,DELETE 只有 OLD。WHEN 子句里不能用查询语句,只能比较列值。不同数据库产品的触发器语法有差异,答题以题干给出的模板为准,别凭记忆硬写方言。
4. 数据库系统设计与管理:下午案例题的五类固定落点
下午卷满分 75 分,通常是五道大题,前两题偏分析与设计,中间两题偏 SQL 与运维,最后一题偏安全与新技术。它的难点不在知识点,在于「会做但写不全」——判卷按点给分,答案写成一整段废话,分就没了。
4.1 先看清题型结构,再决定时间分配
下午五道题的典型分布是:需求分析与 E-R 图补全、关系模式转换与范式判断、SQL 语句填空、数据库运行维护与性能优化、安全体系或新技术应用。每题 15 分左右,答题时间 150 分钟,意味着每题平均 25 分钟,留 20 分钟检查。
注意:拿不准的题不要空着。案例题按关键词给分,「写出两条优化措施」写三条,多写的正确项通常不扣分,这是和选择题完全不同的策略。
4.2 E-R 图补全与关系模式转换:从题干抠名词
这类题的题干是一段业务描述,做法是三步:把所有名词圈出来当候选实体,把动词圈出来当候选联系,再看每个联系两端是「一个」还是「多个」。描述里出现「每个订单只能由一个客户下」就是 1:n,「一个供应商可以供应多种零件,一种零件可以由多个供应商供应」就是 m:n。
m:n 转关系模式必须独立建表,主码是双方主码的组合,联系自身的属性(如供应量、下单时间)挂在这张表上。1:n 可以把「1」端的主码放到「n」端做外码,不需要新表。答题时把转换后的关系模式写全,主码用下划线标出,外码注明引用关系,这三样缺一样就少一个得分点。
4.3 SQL 与存储过程:看懂题干模板再动手
下午的 SQL 题通常给半截代码让你补空,空的位置集中在 WHERE 条件、GROUP BY 与 HAVING、子查询、视图定义。HAVING 和 WHERE 的区别是高频失分处:WHERE 过滤行,HAVING 过滤分组,聚合函数只能出现在 HAVING 里。
存储过程题一般要求「根据某条件更新并返回结果」,注意游标的使用顺序:声明、打开、取一行、循环、关闭、释放。少写 CLOSE 或 DEALLOCATE 都算不完整。
-- 存储过程:按部门调薪,参数为部门号和涨幅 CREATE PROCEDURE 调薪(IN p_部门号 CHAR(4), IN p_涨幅 DECIMAL(4,2)) BEGIN -- 涨幅做入参校验,避免负数或过大值写库 IF p_涨幅 <= 0 OR p_涨幅 > 0.5 THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = '涨幅超出范围'; END IF; UPDATE 职工 SET 工资 = 工资 * (1 + p_涨幅) WHERE 部门号 = p_部门号; END;参数说明:IN 表示入参,DECIMAL(4,2)能容纳 0.01 到 99.99;SIGNAL SQLSTATE是标准 SQL 的抛错写法,用来在过程里做业务校验。答题如果题干没要求校验,写不写都不扣分,但在「请说明该过程的风险」这类小问里,入参校验就是标准答案之一。
4.4 运维、备份恢复与性能优化:答成「可执行动作」
大纲第 3 章下午题的问法通常是「DBA 应该做什么」「如何优化该查询」。答题最忌写「加强管理」「提高效率」这种空话,要落到动作:备份策略写成「每周全量 + 每日增量 + 日志归档」,恢复策略写成「先恢复最近全量,再应用增量与日志到故障点」。性能优化按四层写:SQL 层(加索引、改写子查询、避免SELECT *)、对象层(分区表、物化视图、重建索引)、实例层(调整缓冲池、连接数)、硬件层(加内存、换存储)。
索引题有个固定陷阱:WHERE里对索引列做函数运算或隐式类型转换会导致索引失效,例如WHERE YEAR(入职日期) = 2020应改写成范围比较。这条几乎是必答点。
4.5 安全与新技术:权限模型与分布式概念
安全部分的答题骨架是「认证 + 授权 + 审计」三层。认证方式有操作系统认证、数据库认证、第三方认证;访问控制模型有自主访问控制、强制访问控制、基于角色访问控制,其中基于角色的最适合「岗位多、人员流动快」的场景,标准答法是「把权限授予角色,再把角色授予用户,降低授权维护成本」。
新技术部分按大纲 5.1 到 5.6 覆盖:分布式数据库的透明性(分片透明、位置透明、逻辑透明)、两阶段提交协议的两个阶段、数据仓库的 ETL 与 OLAP/OLTP 的区别、NewSQL 的定位。这部分以名词解释和简答为主,把定义里的关键词写准就能拿分。
5. 易错点:五类最常翻车的失分点与纠正写法
复习到后期,拉开差距的不是新知识,是把已经会的题做对。下面五条是反复出现的失分模式,每一条都能对应到具体题号。
5.1 候选码和主键混为一谈
错在哪:问「该关系的候选码是什么」,答成了建表时选的那个主键。 为什么错:候选码是能唯一标识元组的最小属性集,可能有多个;主键是从候选码里人为挑出来的一个,是设计选择不是理论属性。 怎么答对:先把所有能推出全部属性的属性闭包算一遍,能推全就是候选码,再从中挑一个当主键。答题时写「候选码为 A 和 B,主键取 A」,两句话都拿到分。
5.2 除法运算和 NOT EXISTS 不会互转
错在哪:看到「全部」「所有」的题,条件里写COUNT(*) = (SELECT COUNT(*) ...),逻辑对但题目要求用关系代数或指定写法。 为什么错:双重 NOT EXISTS 才是「全部」的标准表达,COUNT 写法在部分题里被判不符要求。 怎么答对:默写三层结构——外层候选人,中层「存在一门」,内层「他没选」。写完立刻反向读一遍:如果内层能查出一行,说明这个人漏了课,中层 NOT EXISTS 就为假,这个人被排除。语义通,答案就对。
5.3 隔离级别和封锁协议的对应关系记反
错在哪:把「二级封锁协议解决不可重复读」当成正确选项。 为什么错:一级防丢失修改,二级防脏读,三级防不可重复读,这个顺序是按「加的锁越来越多」排的,不是按问题严重程度排的。 怎么答对:记一条主线——读锁持有的时间越长,能防的问题越多。一级只有写锁,二级读锁用完即放,三级读锁保持到事务结束。顺着这条线推,不会记反。
5.4 下午题只写结论不写依据
错在哪:范式题写「属于 2NF」,E-R 题直接画图不写联系类型,优化题写「建立索引」。 为什么错:案例题按点给分,结论只占 1 分,理由占 2 到 3 分。 怎么答对:每题强制写「因为」两个字后面那句话。范式题的格式是「存在 X→Y,Y→Z 的传递依赖,故不满足 3NF」;优化题的格式是「在 部门号 上建索引,因为该列出现在 WHERE 等值条件中且区分度较高」。
5.5 专业英语和计算题死磕
错在哪:英语题逐词翻译耗掉 10 分钟,流水线计算题反复验算。 为什么错:这两类题单题分值和其他题一样,时间成本却高出一倍,性价比最低。 怎么答对:英语题先看问题再定位段落,90 秒没结论就凭关键词选一个走人;计算题只代一次公式,算完不回头验。省下的时间留给 SQL 和案例题的大分值。
6. 答题技巧:三轮复习节奏与考场分题策略
第一轮按大纲目录过一遍,目标是「知道每章在讲什么」,时间控制在总复习时长的四成。做法是每读完一节,合上书用一句话说出这节的考点,说不出来就说明白读了。这一轮不做整套卷,只做章节题,做错的标记,不回看,留着第二轮算账。
第二轮按模块打透,重点是第 3 章的四块硬骨头和下午五类题。方法是「真题倒推」:拿一套下午卷,先不看答案自己做,做完对照评分点,把自己漏掉的得分点抄在题干旁边。抄三套之后你会发现漏的点高度重复,那就是你的固定失分画像。这一轮要开始背模板,E-R 转换、范式判定、优化四层、安全三层,各背一套,背到能默写。
第三轮是限时整卷,上午卷 150 分钟、下午卷 150 分钟,按考试时间做。这一轮唯一的目标是节奏,不是分数。给自己定一条硬规则:上午卷单题超过 90 秒就跳,做完一轮再回头;下午卷先做最有把握的两题,把分锁住再去啃难的。
| 阶段 | 时长占比 | 主要动作 | 判断是否过关 |
|---|---|---|---|
| 第一轮 | 40% | 按大纲过章节,一句话概括考点 | 能说出各章考什么 |
| 第二轮 | 40% | 真题倒推,整理失分点,背模板 | 模板能默写,错题不再错 |
| 第三轮 | 20% | 限时整卷,练分题节奏 | 两科稳定在 55 分以上 |
考场上还有三个小动作值得养成。一是先扫一遍全卷,把一眼会做的题号圈出来,优先扫掉,建立信心也锁定基础分。二是案例题按「结论 + 依据 + 补充」三段写,哪怕只有一行也要把依据写全。三是留最后 15 分钟专门检查 SQL 语句的括号、分号和表名拼写——这类低级错误在阅卷时最冤。
我第一年考就是栽在节奏上:上午卷在一道流水线计算题上磨了八分钟,后面三道数据库题只剩两分钟扫读,明明会做全丢了。从那以后我每次模考都强制走一遍「90 秒跳题」的规则,训练到条件反射,第二年上午卷提前 20 分钟做完,回头补回了三道题。把这条习惯提前练出来,比多背十个知识点管用。希望帮到你。
本文还有配套的精品资源,点击获取