简介:面向备考软考中级数据库系统工程师的考生,这份第四版教材配套考试大纲以单份docx文档呈现,帮助快速明确考试范围、科目结构与复习重点,适合基础梳理和冲刺阶段对照查漏。包内共1个docx文件,资源包约110KB,篇幅精炼,便于在电脑或移动端查阅标注。资源已获得1660人学习下载,具备一定的参考热度。大纲内容覆盖考试说明、考试要求与目的,并系统列出信息系统知识、数据库技术、系统开发与运行维护、网络与系统安全、数据库主流应用技术及计算机专业英语等模块;其中数据库技术部分细化到关系数据库、事务管理、SQL、数据库设计以及数据仓库和数据分析基础,数据库系统设计与管理部分则涉及应用系统分析、功能设计、架构设计与数据库结构设计。读者可据此建立知识框架、核对教材章节、定位薄弱环节,并安排针对性练习,减少盲目翻书的时间。
1. 先看地图:数据库系统工程师大纲的四条主线
数据库系统工程师这份大纲,最容易被读成一份目录。真正复习时,它其实是一张双卷地图:上午卷考信息系统知识,150 分钟笔试,覆盖面从计算机系统、软件与网络一直拉到数据库技术、系统开发运维、安全、主流应用技术和专业英语;下午卷考数据库系统设计与管理,150 分钟笔试,把系统分析与设计、详细设计与开发、数据库管理与维护、安全和大数据应用串成一条工程线。
大纲列出的考试要求有 13 条,核心不是背名词,而是既能理解数据库原理,又能参与应用信息系统的规划、设计、构建、运行和管理。复习时先认地图,再按模块填格子,最后用易错点和清单回查,比从第一页硬背更稳。适合已经有一点数据库基础、准备系统复习的人,也适合做过项目但知识点散、需要重新归位的人。
2. 上午卷底座:计算机系统、软件网络与专业英语的考点链
上午卷的底座常被当成纯背诵区,实际它决定后面数据库题的理解速度。硬件、操作系统、网络和程序设计语言这些内容,单独看很散,放进数据库场景里就会变成一条链:存储设备影响物理设计,操作系统影响并发与文件管理,网络影响体系结构,语言与编译影响 SQL 与宿主语言的边界。复习这一章的目标不是把教材逐字背下来,而是把“概念—参数—场景”对应起来。
2.1 硬件与存储:从 CPU 到 RAID、网络存储的考点链
计算机系统组成、体系结构分类及特征,是硬件部分的第一层。CPU 和存储器的组成、性能、基本工作原理要能说清指令执行的基本流程,常用 I/O 设备的性能和工作原理要知道典型差异,I/O 接口的功能、类型和特点要能和设备连接方式对应。CISC/RISC、流水线操作、多处理机、并行处理这些词经常一起出现,复习时不要只记缩写,要抓住“指令复杂度、并行度、吞吐量、代价”四个判断维度。
存储系统是高频区。虚拟存储器基本工作原理、多级存储体系、RAID 类型和特性、网络存储技术,几乎每年都能在选择题里找到影子。多级存储体系要按“寄存器—高速缓存—主存—辅存”的层次理解速度、容量和成本的反向关系;虚拟存储器要抓住局部性原理、页表、缺页中断和地址转换;RAID 要按冗余方式、最少盘数、读性能、写代价和容错能力做对比,而不是只背级别数字。
| 级别 | 冗余方式 | 最少盘数 | 读性能 | 写代价 | 容错能力 |
|---|---|---|---|---|---|
| RAID0 | 条带化,无冗余 | 2 | 高 | 无校验写 | 无容错 |
| RAID1 | 镜像 | 2 | 读高 | 双写 | 可坏一块盘 |
| RAID5 | 分布式奇偶校验 | 3 | 读高 | 有写惩罚 | 可坏一块盘 |
| RAID6 | 双校验 | 4 | 读高 | 写惩罚更大 | 可坏两块盘 |
| RAID10 | 先镜像再条带 | 4 | 高 | 双写 | 按镜像组容错 |
这张表复习时不要只看“最少盘数”,还要看“写惩罚”和“容错边界”。RAID5 适合读多写少、能接受一块盘故障的场景;RAID6 在重建风险更高时更有意义;RAID10 性能和恢复能力都不错,但容量利用率低。考试容易把 RAID5 的最少盘数写成 2,或者把 RAID1 的容错说成坏两块盘,这类错误本质是没有把冗余方式和校验分布连起来。
提示:RAID 的“最少盘数”要按可用容量和校验分布一起记,考试常把 RAID5 的最低盘数写成 2,这是典型失分点。
可靠性与系统性能评测基础知识也不要跳过。故障诊断与容错技术、系统可靠性分析评价、计算机系统性能评测方法,复习时用“故障模型—冗余手段—评价指标”三个词串起来。可靠性不是只说“双机热备”,还要知道串联系统、并联系统的可靠度计算思路;性能评测不是只背 MIPS、MFLOPS,还要知道评测对象和评测方法的局限。
2.2 软件与网络:数据结构、操作系统、协议栈的交叉点
数据结构与算法部分,大纲列得很细:数组(静态数组、动态数组)、线性表、链表(单向、双向、循环)、栈和队列、树(二叉树、查找树、平衡树、遍历树、堆)、图、集合的定义、存储和操作,以及 Hash 的存储位置计算和碰撞处理。复习重点不是把每种结构都写一遍定义,而是知道“什么场景选什么结构”:需要随机访问选数组,频繁插入删除选链表,括号匹配和表达式求值选栈,任务调度选队列,范围查询和有序遍历选树,键值映射选 Hash。
常用算法包括排序、查找、数值计算、字符串处理、数据压缩、递归、图的相关算法。算法与数据结构的关系、算法效率、算法设计、算法描述(流程图、伪代码、决策表)、算法复杂性,是选择题和下午题都可能碰到的底层能力。排序要能比较时间复杂度、空间复杂度和稳定性;查找要区分顺序查找、二分查找、Hash 查找的适用条件;递归要会写终止条件和递推关系;图的算法要抓住遍历、最短路径、最小生成树的基本思想。复杂度复习不要只背 O(n log n),要能解释为什么。
操作系统基础知识是另一个交叉点。基本概念包括类型、特征、地位、内核(中断控制)、进程、线程;处理机管理包括状态转换、同步与互斥、信号灯、分时轮转、抢占、死锁;存储管理包括主存保护、动态连接分配、分段、分页、虚存;设备管理包括 I/O 控制、假脱机、磁盘调度;文件管理包括文件目录、文件的结构和组织、存取方法、存取控制、恢复处理、共享和安全;作业管理包括任务管理、界面管理,以及大纲提到的语音控制和虚拟现实等外延。操作系统的配置也要知道基本思路。
这一块最容易“看会了,做题错”。进程状态转换要能画清就绪、运行、阻塞之间的合法迁移;同步与互斥要能判断临界区、信号灯初值和 P/V 操作顺序;死锁要能区分预防、避免、检测和解除;分页与分段要能说清地址结构和碎片差异;磁盘调度要会比较先来先服务、最短寻道时间优先、电梯算法的移动轨迹。复习时不用把每种调度算法都写成代码,但要用小例子手算一遍,否则考试一换参数就容易翻车。
程序设计语言和语言处理程序的知识,重点在汇编、编译、解释系统的基础知识和基本工作原理,程序设计语言的基本成分(数据、运算、控制和传输)、函数调用的机制,以及各类程序设计语言的主要特点。函数调用机制要抓住参数传递、返回地址、栈帧和递归展开;编译与解释要区分翻译时机和执行方式;语言特点要能和适用场景对应,而不是只背“面向对象”“函数式”这些标签。
计算机网络知识要按协议体系结构来收:网络拓扑、OSI/RM、基本网络协议、传输介质与交换技术、常用网络设备和服务器、局域网络连接、因特网基础知识、TCP/IP 协议、简单网络管理。复习时把 OSI 七层和 TCP/IP 四层做映射,把每层典型设备、协议和数据单元放在一起记。TCP 与 UDP 的差异、IP 地址与子网划分、路由与交换的基本区别、常用网络设备的层次归属,都是容易在选择题里设陷阱的地方。网络部分不需要学到排障专家水平,但要知道数据库系统的分布式部署、C/S 与 B/S 架构、Web 访问数据库时,数据经过哪些层。
2.3 专业英语与主流技术:术语识别和场景匹配
计算机专业英语在大纲里要求“具有工程师所要求的英语阅读水平,理解本领域的英语术语”。这部分不适合单独突击语法,更适合和数据库术语一起复习。关系模型里的 relation、tuple、attribute、domain、key、constraint,事务里的 transaction、commit、rollback、isolation、deadlock,体系结构里的 schema、view、index、partition,都是阅读题的高频词。复习时把中文概念和英文术语做成对照,遇到长句先找主语、谓语和技术对象,不要逐词硬翻。
数据库主流应用技术包括云计算、大数据、应用领域新进展、移动应用。这里考的是“知道技术位置和基本特征”,不是让背产品参数。云计算要理解资源服务化、弹性、按需使用的基本思想;大数据要抓住数据规模、处理模式、分析需求的变化;移动应用要能和前后端、数据同步、轻量访问联系起来。复习时把每个热词放回“数据产生—传输—存储—处理—使用”的链路里,选择题就不容易被陌生名词带偏。
这一章梳理下来会发现,上午卷底座不是数据库的附属品,而是数据库系统的外部条件。存储决定数据放在哪里,操作系统决定并发和文件如何管理,网络决定数据如何流动,语言和英语决定你能不能读懂题。把这些条件想清楚,后面的事务、SQL、体系结构和运维题会顺很多。
3. 数据库核心:关系模型、事务与 SQL 的复习重点
数据库技术是整份大纲的重心。上午卷里它占大块,下午卷里它又会以设计、开发、运维的形式再考一遍。复习这一章要避免两个极端:只背范式定义,不会做题;只练 SQL 语法,说不清模型和事务。比较稳的顺序是先用关系模型把“数据如何组织”讲清,再用事务把“并发和故障下如何保持正确”讲清,最后用 SQL 和设计把“如何落地”串起来。
3.1 关系模型与规范化:从 ER 到范式分解的推理线
数据库技术基础部分先要建立模型分层。数据库模型的基本概念、数据库模型的分类,包括数据模型的组成要素、概念数据模型 ER 图(实体、属性、关系)、逻辑数据模型(关系模型、层次模型、网络模型),以及典型数据库:关系型数据库、面向对象数据库、对象关系数据库、XML 数据库、NoSQL。复习时不要把“概念模型”和“逻辑模型”混在一起:ER 图是概念层表达,关系模式是逻辑层表达,索引、存储结构才是物理层表达。
数据库管理系统功能要能说出主要功能和辅助功能。数据库定义、数据库操作、数据库运行管理、数据组织存储和管理、数据库的建立和维护,是主要功能;确保数据独立性、数据库存取、同时执行过程、排它控制、故障恢复、安全性、完整性,是辅助功能。数据库系统体系结构要掌握 ANSI—SPARC 体系结构、集中式数据库系统、并行数据库系统、分布式数据库系统、对象关系数据库系统。三级模式两级映像不是背名词,要能解释“为什么外模式能提供逻辑独立性,为什么模式/内模式映像能提供物理独立性”。
关系数据库部分,基本概念包括关系模式、关系模式的型与值、关系的完整性约束。关系运算要掌握并、交、差、笛卡儿积、选择、投影、连接、除,以及关系代数表达式;元组演算及其表达式也要能看懂。复习关系代数时,把“选择是行过滤、投影是列选择、连接是条件组合、除是‘对所有’语义”记牢。除运算容易让人卡住,可以用“被除关系在除关系属性上的像集是否包含除关系全部元组”来判断。
关系数据库理论是重点也是难点。函数依赖与多值依赖、函数依赖的公理系统、范式的规范化(第一范式、第二范式、第三范式、BC 范式、第四范式、第五范式)、模式分解,这些内容在选择题和下午题里都可能出现。复习时不要只背“1NF 属性不可分,2NF 消除非主属性对候选码的部分依赖,3NF 消除非主属性对候选码的传递依赖,BCNF 消除主属性对候选码的部分和传递依赖”,还要会求候选码、会判断主属性、会做模式分解。
| 范式 | 核心约束 | 常见判断点 | 容易混淆 |
|---|---|---|---|
| 1NF | 属性不可再分 | 是否有复合属性、多值属性 | 把“多列”误当成多值属性 |
| 2NF | 消除非主属性对候选码的部分依赖 | 候选码是否为组合码 | 单属性候选码时直接满足 2NF |
| 3NF | 消除非主属性对候选码的传递依赖 | 是否存在非主属性决定非主属性 | 主属性之间的依赖要看 BCNF |
| BCNF | 每个决定因素都包含候选码 | 主属性是否被非候选码决定 | 3NF 不一定 BCNF |
| 4NF | 消除非平凡多值依赖 | 多值依赖是否由候选码决定 | 多值依赖不是函数依赖 |
| 5NF | 消除连接依赖 | 分解后是否无损 | 考试更常见的是概念判断 |
范式判断的固定动作是:先列属性集,再求候选码,再标主属性与非主属性,然后逐级看部分依赖、传递依赖和决定因素。模式分解要同时关注“无损连接”和“保持函数依赖”,这两个目标有时不能同时满足,考试会让你判断分解是否合理。复习时用一个小关系手算一遍,比看十遍定义有用。
3.2 事务与并发恢复:隔离级别、封锁协议和日志检查点
事务的基本概念要抓住一组操作作为一个逻辑单元,要么全部成功,要么全部回滚。并发控制部分包括事务调度、并发操作、并发调度与并发控制、封锁协议、事务隔离级别。故障与恢复部分要掌握事务故障、系统故障、介质故障的基本恢复思路。这里复习时最好把 ACID 作为组织框架:原子性对应回滚和日志,一致性对应完整性约束和业务规则,隔离性对应并发控制,持久性对应提交和恢复。
并发操作会带来丢失修改、不可重复读、读脏数据等问题。事务隔离级别就是对这些现象的容忍度约定。隔离级别越高,并发度通常越低;考试喜欢把隔离级别和封锁协议混着考,所以要把“现象—级别—锁”分开记。封锁协议要能说清共享锁和排它锁的兼容关系,两段锁协议要抓住“加锁阶段”和“解锁阶段”,死锁要能判断等待图或资源分配。
| 隔离级别 | 脏读 | 不可重复读 | 幻读 | 复习关键词 |
|---|---|---|---|---|
| 读未提交 | 可能 | 可能 | 可能 | 隔离最弱 |
| 读已提交 | 避免 | 可能 | 可能 | 很多系统的默认起点 |
| 可重复读 | 避免 | 避免 | 可能 | 快照与锁机制要看语义 |
| 可串行化 | 避免 | 避免 | 避免 | 最强隔离,代价高 |
故障恢复要抓住日志。顺序、日志(审计痕迹)、检查点,是下午卷运维部分也会反复出现的词。恢复的基本判断是:已提交事务要重做,未提交事务要撤销;检查点之前的已提交事务可能不需要重做,检查点之后的动作要看日志。复习时不要只背“UNDO/REDO”,要能画出检查点前后的事务状态,知道系统故障和介质故障的恢复起点不同。
注意:隔离级别和封锁协议不是同一个知识点。隔离级别描述“允许出现什么现象”,封锁协议描述“用什么规则实现并发控制”,答题时把两者混成一句话,容易被扣分。
3.3 SQL 与数据库设计:DDL/DML/DCL 到六步设计法
数据库标准语言 SQL 是必须能落到笔头的部分。SQL 的功能与特点、数据定义语言(表、视图、索引、约束)、数据操作语言(数据检索、插入/删除/更新、触发控制)、数据控制语言,要能区分清楚。数据库定义包括数据库对象定义、数据库用户定义、数据库访问控制;数据查询包括 Select 基本查询、函数操作、多表连接、集合操作(并、交、差)、嵌套查询;数据更新包括 insert、update、delete;完整性控制包括主键约束、外键约束、属性值上的约束、全局约束;事务控制包括 begin transaction、end transaction、commit、rollback;存储过程和触发器要掌握基本类别和应用场景。
复习 SQL 不要只看语法,要抓住执行语义。多表连接要分清内连接、左外连接、右外连接和全外连接;嵌套查询要分清相关子查询和非相关子查询;集合操作要分清 UNION 去重和 UNION ALL 不去重;分组要分清 WHERE 与 HAVING 的作用位置;空值要按三值逻辑处理。下面这段 SQL 把主键、外键、视图和事务边界放在一个例子里,复习时可以照着改表名和列名。
-- 逻辑模型落地示例:主键、外键、视图与事务边界 CREATE TABLE dept ( dept_id CHAR(4) PRIMARY KEY, dept_name VARCHAR(40) NOT NULL ); CREATE TABLE student ( stu_id CHAR(10) PRIMARY KEY, stu_name VARCHAR(30) NOT NULL, dept_id CHAR(4), CONSTRAINT fk_student_dept FOREIGN KEY (dept_id) REFERENCES dept(dept_id) ); CREATE VIEW v_student_dept AS SELECT s.stu_id, s.stu_name, d.dept_name FROM student s LEFT JOIN dept d ON s.dept_id = d.dept_id; BEGIN TRANSACTION; UPDATE student SET dept_id = 'D01' WHERE stu_id = 'S0001'; COMMIT;这段 SQL 的逻辑是先用 DDL 定义部门表和学生表,再通过外键约束把学生与部门关联起来,然后用视图封装连接查询,最后用事务边界包住一次更新。参数上,CHAR 和 VARCHAR 的长度要按业务编码设计,约束名 fk_student_dept 是为了后续维护和报错定位,事务的 BEGIN TRANSACTION 与 COMMIT 在不同数据库里语法可能略有差异,但考试更关注“事务开始、提交、回滚”的语义。视图不是物理表,它体现的是外模式层面的数据暴露方式。
数据库设计部分要掌握设计基础知识、设计方法与步骤:用户需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护。复习时把六步法和产物对应起来:需求分析产出数据字典和数据流图,概念结构设计产出 ER 模型,逻辑结构设计完成 ER 到关系模式的转换和优化,物理结构设计关注存取方法和存储结构,实施阶段建库建表加载数据,运行维护阶段做监控、备份、恢复和优化。每一阶段都有评审,评审不是形式,而是检查“需求是否覆盖、模型是否冗余、约束是否完整、性能是否有退路”。
数据仓库和数据分析的基础知识包括数据仓库基本概念、数据抽取转换和装载、多维数据分析基础知识、常见数据分析方法。复习时把 OLTP 与 OLAP 的差异抓住:OLTP 面向日常事务,强调并发、一致和短事务;OLAP 面向分析,强调多维汇总、历史数据和查询吞吐。ETL 要能说清抽取、转换、装载三步,多维分析要理解维度、度量、切片、切块、钻取和旋转的基本含义。常见数据分析方法不需要写成算法论文,但要知道适用场景和输出形式。
这一章的核心不是把关系代数、范式、SQL、事务和设计分成五座孤岛,而是让它们互相解释:关系模型决定 SQL 怎么写,函数依赖决定表怎么拆,事务决定并发下数据是否可信,设计步骤决定这些内容在项目中什么时候出现。复习到能用自己的话把这条线讲通,选择题和下午题都会稳很多。
4. 下午卷主线:系统分析设计、开发与运维的落地要点
下午卷的“数据库系统设计与管理”更偏工程场景。它不只问“是什么”,还会问“在某个应用系统里,需求怎么落到数据模型,功能怎么落到模块,数据库怎么开发,上线后怎么监控和优化”。复习这一章要把自己放在一个模拟项目 A 的位置:先分析需求和架构,再做详细设计和 SQL 开发,最后进入运行维护和安全审计。每一步都要知道输入、输出和评审点。
4.1 应用系统分析与架构设计:需求、DFD、C/S 与 B/S、中间件
应用系统分析要了解用户需求、确定系统范围,确定应用系统的业务功能需求及业务相关的数据,确定现有环境与新系统环境的关系、可能提供的数据服务,以及新系统中的数据项、数据字典、数据加工及对应的数据流图。这里的重点是“范围”和“数据流”。范围不清,后面数据库设计一定返工;数据流不清,数据字典和加工说明就会漏项。复习时拿一个模拟业务,把外部实体、加工、数据存储和数据流画出来,再检查每个数据项是否有来源和去向。
应用系统功能设计要关注功能划分与需求对应关系,以及系统规格说明书的内容:系统配置图、各子系统关系图、业务流程图、系统的功能说明、输入输出规格说明、数据规格说明和数据流。功能划分不是把菜单抄一遍,而是按业务职责和数据处理边界拆分子系统。系统规格说明书要能让开发人员知道“做什么、输入什么、输出什么、数据放在哪里”,也要能让测试人员知道“怎么判断做对了”。
应用系统架构设计要掌握信息系统架构,如 Client/Server、Browser/Server;大规模数据库和并行计算机体系结构,如 CSMP、MPP;中间件角色和相关工具;按构件分解,确定构件功能规格以及构件之间的接口。C/S 和 B/S 的比较不要停留在“客户端厚不厚”,要看到部署、升级、交互体验、网络依赖和安全边界。中间件要理解它在应用与数据库、应用与网络之间的解耦作用。构件分解要落到功能规格和接口,接口说不清,后面数据库访问和事务边界就会含糊。
数据库结构设计是下午卷的核心动作。数据库设计方法包括自顶向下与自底向上设计、结构化设计与面向对象设计;数据库设计内容包括概念模型设计、逻辑模型设计和物理存储模型设计。概念结构设计要设计 E-R 模型及其他数据模型并评审;逻辑结构设计要完成 E-R 模型到逻辑模型转换、逻辑模型优化、外模式设计并评审;物理结构设计要做存取方法设计、存储结构设计并评审。复习时把“评审”当成检查表:实体是否遗漏、关系基数是否正确、主键是否稳定、外键是否完整、范式是否合理、索引是否有查询依据。
安全体系设计包括明确用户安全域、安全等级,选择合适的认证方式(操作系统认证、数据库认证、第三方认证),设计数据库访问控制机制(自主访问控制、强制访问控制、基于角色访问控制),确认安全审计方式(对象审计、命令审计、操作审计)。这一块要和后面的数据库安全性连起来看,不要只写“加密码”。安全域决定边界,认证决定身份,访问控制决定权限,审计决定事后可追溯。
数据库系统测试包括功能测试(确认测试、功能符合性测试)、非功能测试(性能测试、安全测试、可用性测试)、辅助功能测试(数据加载与数据导出、易用性、可维护性测试)。复习时用“测什么—怎么测—输出什么证据”三列整理。功能测试看需求覆盖和业务规则,性能测试看响应时间、吞吐量和资源占用,安全测试看认证、授权、审计和敏感数据保护,辅助功能测试看数据迁移和日常维护是否顺手。测试类型不是越多越好,关键是与设计目标对应。
4.2 详细设计与 SQL 应用开发:模块、接口、存储过程、触发器
应用系统详细设计包括模块划分(原则、方法、标准)、界面设计(输入输出、检查方法和信息设计)、编写程序设计文档、程序设计评审、设计文档和设计评审。模块划分要遵循高内聚低耦合,模块规格说明书要写清功能和接口说明、程序处理逻辑的描述、输入输出数据格式的描述;测试要求说明书要写清测试类型和目标、测试用例、测试方法。设计文档还包括系统配置说明、构件划分图、构件间的接口、构件处理说明、屏幕设计文档、报表设计文档、程序设计文档、文件设计文档。复习时不要把这些文档当成形式主义,它们是把数据库约束传递到应用层的载体。
应用程序开发准备包括选择应用程序开发平台、系统实施顺序、框架开发、基于小组的程序开发、源代码控制、版本控制。数据库开发环境搭建包括常见关系型数据库的安装与部署。这里考试不会要求你背某个产品的安装截图,而是要知道环境搭建的检查项:字符集、端口、存储路径、账号权限、备份策略、版本一致性。源代码控制和版本控制要能解释为什么数据库脚本也要纳入版本管理,否则环境一换就会出现“表结构对不上”的血泪经验。
SQL 应用是下午卷最容易出具体题的部分。创建数据库、用户和表空间,创建表、索引、视图、约束、用户自定义类型,复杂 SQL 语句(左连接、右连接、嵌套、递归),存储过程语法、游标、高级数据类型和应用,触发器类别和应用,分区表、物化视图,多维查询语言 MDX 与 OLAP 窗口函数,嵌入式 SQL 的基本概念、SQL 与宿主语言接口(SQL 通信区、共享变量、游标),都要有基本认识。复习时把“普通查询、连接查询、嵌套查询、递归查询、窗口函数”按难度排开,先保证语义正确,再考虑性能。
存储过程和触发器要抓住适用边界。存储过程适合把一组数据库操作封装成可复用单元,减少网络往返,但业务逻辑过度下沉会增加维护成本;触发器适合做审计、派生列维护和复杂约束补充,但触发器嵌套和副作用容易让排错变难。游标适合逐行处理,但能集合操作就不要逐行。嵌入式 SQL 要理解 SQL 通信区、共享变量和游标的作用:通信区传递执行状态,共享变量在宿主语言和 SQL 之间传值,游标解决集合查询与逐行处理之间的阻抗不匹配。
应用系统的数据库开发还包括数据库访问接口(ODBC、嵌入 SQL)和数据库访问框架(持久化框架)。复习时把接口层和框架层分开:接口解决“应用怎么连数据库、怎么执行语句、怎么取结果”,框架解决“对象与关系如何映射、事务如何传播、连接如何管理”。培训与用户支持也要知道基本内容,包括用户培训、操作手册、问题反馈和售后支持。下午题如果给一个上线场景,培训和支持往往是容易被忽略的得分点。
4.3 运维、安全与性能调整:DBA 职责、监控、审计与优化
数据库系统的运行计划包括运行策略的确定,确定数据库系统报警对象和报警方式,数据库系统的管理计划(执行、故障/恢复、安全性、完整性、用户培训和维护)。运行和维护包括新旧系统的转换、收集和分析报警数据(执行报警、故障报警、安全报警)、连续稳定运行、数据库维护(数据库重构、安全视图的评价和验证、文档维护)、数据库系统的运行统计(收集、分析、提出改进措施)、关于运行标准和标准改进一致性的建议、数据库系统的审计。复习时把“计划—监控—处理—记录—改进”当成运维闭环,不要只背 DBA 职责名称。
数据库管理要掌握数据库管理员职责、数据字典和数据仓库的管理、数据完整性维护和管理(实体完整性、参照完整性)、数据库物理结构的管理、数据库空间及碎片管理、备份和恢复(顺序、日志、检查点)、死锁管理(集中式、分布式)、并发控制(可串行性、锁机制、时间戳、优化)、数据安全性管理(加密、安全、访问控制、视图、有效性确认规则)。这里最容易出场景题:空间涨得快先看什么,死锁频繁先看什么,备份恢复演练缺什么,权限过大怎么收敛。
数据库监控包括数据库用户活动监控、数据库服务器运行监控(锁监控、连接数监控、表空间监控、内存监控、网络流量监控)、数据库运行安全监控。监控指标要和动作对应:连接数高可能是连接池配置或慢查询堆积,锁等待高可能是长事务或缺少索引,表空间增长快可能是归档或日志未清理,内存压力可能来自缓存命中率下降。复习时用“指标—可能原因—验证方式—处置动作”四列整理,比背监控项列表有效。
数据库系统性能调整包括优化基本概念(主动优化、被动优化)、SQL 优化、数据库存储对象优化、数据库存取方式优化、数据库实例配置参数优化、服务器硬件环境优化、业务管理优化。主动优化是在问题发生前做设计与容量规划,被动优化是问题发生后定位和处置。SQL 优化要看执行计划、过滤条件、连接顺序、索引使用和排序开销;存储对象优化要看表结构、分区、索引和物化视图;存取方式优化要看访问路径和批量处理;实例参数优化要谨慎,不能把参数当玄学乱调;硬件环境优化要看瓶颈在 CPU、内存、I/O 还是网络;业务管理优化则要回到业务规则和访问模式。
数据库安全性包括安全性策略、数据库安全控制、数据库安全审计。安全性策略包括口令策略与资源管理策略、数据库视图的安全性策略、数据的安全级别(最重要的、重要的、注意、选择);安全控制包括用户访问控制(授权方式)、程序访问控制(包含在程序中的 SQL 命令限制)、表的访问控制(视图机制)、控制访问的函数和操作、外部存储数据的加密与解密;安全审计包括数据库审计、基于内容的数据库审计(通过触发器或包含在程序中的 SQL 命令限制)。复习时把“身份认证—授权—视图隔离—加密—审计”按防线顺序记,答题时按对象写,不要只写“加强安全”。
| 控制方式 | 控制对象 | 典型手段 | 复习注意 |
|---|---|---|---|
| 自主访问控制 | 用户与对象权限 | 授权、回收权限 | 灵活但依赖管理员 |
| 强制访问控制 | 安全等级 | 安全标记、等级比较 | 规则强,灵活性低 |
| 基于角色访问控制 | 岗位职责 | 角色授予权限 | 适合权限批量管理 |
| 视图机制 | 行/列暴露范围 | 视图限制可见数据 | 不是物理隔离 |
| 审计 | 操作行为 | 对象审计、命令审计、操作审计 | 关注审计内容和保留 |
4.4 大数据相关技术:分布式、Web/XML、对象与 NewSQL 的边界
大数据相关技术与应用在下午卷里更像“新技术边界题”。分布式数据库要掌握基本概念(策略、特点)、体系结构(模式结构、数据分布、数据分片、分布透明性、DDBMS)、分布式查询处理和优化、分布事务管理(特性、故障、恢复、两阶段协议)、新型分布式海量数据库。复习时抓住“分片、复制、透明性、两阶段协议”四个词:分片解决数据放哪里,复制解决可用性和读扩展,透明性解决用户是否感知分布,两阶段协议解决分布式事务提交的一致性。
Web 与数据库包括 Web 概述、Web 服务器脚本程序与服务器的接口、CGI 的应用、ASP 的应用、Servlet 和 JSP 的应用。XML 与数据库包括 XML 概念、XML 文件存储面临的问题、XML 与数据库的数据转换。面向对象数据库包括面向对象数据库系统的特征、面向对象数据模型(对象结构、对象类、继承、对象标识、对象嵌套)、面向对象数据库语言、对象关系数据库系统(嵌套关系、复杂类型、继承、引用类型、函数与过程)。大数据与数据库包括大数据概念、大数据之数据仓库设计、数据转移技术、数据仓库主要应用场景联机分析处理(OLAP)、数据库主要应用场景联机事务处理(OLTP)。NewSQL 数据库要了解发展脉络和基本定位,不展开具体产品参数。
这一块复习不要被名词吓住,按“数据形态—访问方式—一致性要求—扩展方式”归类。Web 访问数据库关注连接层和会话;XML 关注半结构化数据的存储与转换;对象数据库关注复杂类型和继承;大数据关注分析型负载;NewSQL 关注在扩展性和事务一致性之间找平衡。考试如果出选择题,通常考特征和适用场景,不会要求你背某个系统的部署细节。
5. 易漏点与易错点:大纲边界上的五个翻车点
复习到中后段,很多人会有一种“都看过”的错觉。真正拉分的地方往往不是没学过,而是边界概念混在一起、语法会写但语义不清、下午题场景里写不出对象。这一章把最容易漏和最容易错的五个点单独拎出来,每条按“易漏点—为什么漏—怎么补”处理。复习时不要只读一遍,最好拿一张纸把每个“怎么补”写成可执行动作。
5.1 模型模式与范式分解的易漏点
易漏点一:三级模式两级映像与“视图等于外模式”的混淆。为什么漏?因为教材里的模式、外模式、内模式很抽象,复习时容易只背“三级模式两级映像”,做题时却说不清 ER 图、关系模式、视图、索引分别属于哪一层。怎么补?画一个三层框:概念层放 ER 图,逻辑层放关系模式和视图定义,物理层放索引、分区和存储结构。视图是外模式的一种实现方式,不是外模式本身;索引属于物理存储设计,不是逻辑模型。遇到“某操作提高了什么独立性”的题,先问它改的是模式/外模式映像还是模式/内模式映像。
易漏点二:函数依赖、候选码和范式判断只背定义不做闭包。为什么漏?因为定义看起来很短,考试却会给一个多属性关系让你判断候选码、主属性和范式。只背“2NF 消除部分依赖”不够,必须会求属性闭包。怎么补?固定四步:列属性集,求每个属性组合的闭包,找出能推出全部属性的最小组合作为候选码,再标主属性与非主属性,最后逐级判断部分依赖、传递依赖和决定因素。模式分解还要补两个检查:分解是否无损连接,是否保持函数依赖。用一个小关系手算三遍,比看十遍定义
本文还有配套的精品资源,点击获取