【最后24小时冲刺】软考数据库系统工程师:这份「急救笔记」帮你把60分稳攥手里(含超全考点+案例拆解)
上午题:遇到“CAP定理”别慌(C一致性、A可用性、P分区容忍性,分布式系统中P必选,所以选CP或AP)。下午题:ER图用矩形(实体)、椭圆(属性)、菱形(联系),联系要标类型(如1:n)。SQL题:关键字大写(如SELECT、FROM),表名/列名用中文时加引号(如WHERE 姓名='张三'计算题:范式判断、主码计算写清步骤(“主码是(学号,课程号),因为…”),别直接写结论。最后提醒:软考是通
·
明天上考场,现在最需要的不是刷新题,而是把高频考点、易错细节、答题模板过一遍。作为去年压线飘过(上午71,下午65)的“实战派”,我把考前熬夜整理的核心考点清单+案例题模板+避坑红榜全整理出来,帮你用最短时间抓最稳的分!
一、基础概念篇:这些“必考题”必须刻进DNA(上午题30%分值)
1. 数据库系统核心术语(选择题重灾区)
-
数据模型三层体系结构(常考选择):
- 外模式(用户视图,如某个用户看到的表结构)→ 模式(全局逻辑结构,如数据库所有表的定义)→ 内模式(物理存储结构,如索引、文件存储方式)。
- 两级映射:外模式/模式(保证逻辑独立性)、模式/内模式(保证物理独立性)。
口诀:外-模→逻辑独立;模-内→物理独立
-
候选码 vs 主码 vs 外码(必背!):
- 候选码:能唯一标识元组的最小属性集(可能有多个,如学生表中“学号”和“身份证号”都是候选码)。
- 主码:从候选码中选一个(唯一,如选“学号”作为主码)。
- 外码:其他表的主码(如选课表中的“学号”是学生表的外码)。
2. 范式判断:从“蒙圈”到“秒选”(上午+下午都考)
关键步骤:找主码→确定非主属性→检查部分依赖→检查传递依赖→检查主属性依赖。
示例1:判断关系R(学号, 姓名, 课程号, 成绩)的范式
- 主码:(学号, 课程号)(因为只有两个属性组合才能唯一确定一条记录)。
- 非主属性:姓名、成绩。
- 部分依赖?姓名只依赖“学号”(部分依赖主码)→ 不满足2NF(只满足1NF)。
示例2:关系R(学号, 姓名, 系别, 系主任)
- 主码:学号(唯一标识元组)。
- 非主属性:姓名、系别、系主任。
- 传递依赖?学号→系别,系别→系主任→ 系主任传递依赖学号→ 不满足3NF(只满足2NF)。
示例3:关系R(仓库, 商品, 数量, 管理员),已知管理员→仓库
- 主码:(仓库, 商品)(组合唯一标识)。
- 主属性:仓库、商品;非主属性:数量、管理员。
- 主属性依赖?管理员→仓库(仓库是主属性,但依赖于非主属性管理员)→ 违反BCNF(因为BCNF要求所有决定因素都包含候选码)。
二、数据库设计流程:下午题的“命门”(占分≥30%)
1. 需求分析→概念设计→逻辑设计→物理设计(每步输出要记死)
| 阶段 | 核心任务 | 关键输出 | 常考问题 |
|---|---|---|---|
| 需求分析 | 收集用户需求 | 数据流图(DFD)、数据字典(DD) | “DFD的四个基本元素是?”(加工、数据源、数据流、数据存储) |
| 概念设计 | 抽象业务模型 | ER图(实体-联系-属性) | “ER图中联系的类型?”(1:1/1:n/m:n) |
| 逻辑设计 | ER图转关系模式 | 关系模式(带主码、外码) | “m:n联系如何转表?”(新建联系表,主码为两端主码组合) |
| 物理设计 | 确定存储结构和索引 | 索引方案、文件存储方式 | “聚集索引 vs 非聚集索引?”(聚集索引决定数据物理顺序,一个表只能有一个) |
2. ER图转关系模式:手把手教你写(下午题必得分)
步骤1:实体转表
实体的所有属性作为表的字段,主码是实体的标识符(如学生实体→学生表(学号, 姓名, 年龄),主码=学号)。
步骤2:处理联系
- 1:1联系:任选一端表中加入另一端主码作为外码(如部门和经理是1:1,可在部门表中加“经理ID”外码REFERENCES员工表(员工ID))。
- 1:n联系:在n端表中加入1端主码作为外码(如部门和员工是1:n,员工表加“部门ID”外码)。
- m:n联系:必须新建联系表(主码=两端主码的组合,外码分别指向两端表)。
案例:学生(学号,姓名)、课程(课程号,名称)、教师(工号,姓名),其中学生和课程是m:n(选课),教师和课程是1:n(一门课由一个教师教)。
→ 关系模式:
- 学生表(学号, 姓名) [主码:学号]
- 课程表(课程号, 名称, 工号) [主码:课程号;外码:工号 REFERENCES 教师表(工号)]
- 选课表(学号, 课程号, 成绩) [主码:(学号, 课程号);外码:学号 REFERENCES 学生表(学号),课程号 REFERENCES 课程表(课程号)]
三、SQL实战:下午题“直接抄”的模板(占分20%+)
1. 约束条件:写对就能得分(别漏关键字!)
CREATE TABLE 学生 (
学号 CHAR(10) PRIMARY KEY, -- 主码约束
姓名 VARCHAR(20) NOT NULL, -- 非空约束
年龄 INT CHECK(年龄>0 AND 年龄<100), -- 自定义检查约束
系别 CHAR(20) REFERENCES 系表(系别代码) -- 外码约束(系别代码是系表的主码)
);
2. 复杂查询:高频考点+示例(窗口函数必考!)
示例1:分组统计(求各班级平均分≥80的学生)
SELECT 班级, AVG(成绩) AS 平均分
FROM 学生表
GROUP BY 班级
HAVING AVG(成绩) >= 80; -- 注意:过滤分组用HAVING,不是WHERE
示例2:窗口函数(按成绩排名,相同分数并列)
SELECT 学号, 成绩,
DENSE_RANK() OVER(ORDER BY 成绩 DESC) AS 排名 -- DENSE_RANK()处理并列(如两个90分都排第1,下一个85排第2)
FROM 学生表;
示例3:多表连接(查选了“数据库”课程的学生姓名)
SELECT 学生.姓名
FROM 学生
JOIN 选课 ON 学生.学号=选课.学号
JOIN 课程 ON 选课.课程号=课程.课程号
WHERE 课程.名称='数据库';
四、事务与并发控制:案例题的“送分点”(下午常考)
1. 事务状态与故障类型(选择题常考)
- 事务状态:活动→部分提交→提交/失败→终止。
- 故障类型:
- 事务内部故障(如运算错误,需回滚)。
- 系统故障(断电,需Undo未提交事务+Redo已提交事务)。
- 介质故障(磁盘损坏,需恢复备份+日志)。
2. 封锁协议与隔离级别(避坑!)
-
一级封锁协议:写数据时加X锁,直到事务结束(防“丢失修改”)。
- 反例:事务T1读数据A=10,事务T2读A=10并修改为20(未加锁),T1再修改A=30→最终A=30(丢失T2的修改)。
-
三级封锁协议:一级+读数据时加S锁直到事务结束(防“丢失修改+脏读+不可重复读”)。
- 脏读场景:事务T1修改A=20(未提交),事务T2读A=20(加S锁但读完释放),T1回滚→T2读到脏数据。
五、备份与恢复:案例题“按模板答”(下午必背)
1. 备份策略选择(根据场景选)
- 完全备份:适合数据量小、恢复要求高(如财务系统,每天凌晨全备)。
- 增量备份:适合数据变化频繁(如日志系统,全备+每日增量)。
- 差异备份:折中方案(全备+每日差异,恢复时只需全备+最后一次差异)。
2. 恢复步骤(按顺序写!)
- 系统故障恢复:
- 撤销所有未提交事务(Undo):反向扫描日志,将事务修改过的数据恢复到旧值。
- 重做所有已提交事务(Redo):正向扫描日志,将事务修改过的数据恢复到新值。
六、最后1天:这些“小细节”决定你过不过!
- 上午题:遇到“CAP定理”别慌(C一致性、A可用性、P分区容忍性,分布式系统中P必选,所以选CP或AP)。
- 下午题:ER图用矩形(实体)、椭圆(属性)、菱形(联系),联系要标类型(如1:n)。
- SQL题:关键字大写(如SELECT、FROM),表名/列名用中文时加引号(如
WHERE 姓名='张三')。 - 计算题:范式判断、主码计算写清步骤(“主码是(学号,课程号),因为…”),别直接写结论。
最后提醒:软考是通过性考试,90分就过!别纠结偏题怪题,把这份笔记里的高频点过2遍,错题本翻1遍,明天稳住心态,你一定能过!等你考完回来报喜~ 🎉
更多推荐

所有评论(0)