简介:面向备考软考中级数据库系统工程师的考生,这份与第四版教材对应的考试大纲docx可用于快速确认考试范围、梳理复习主线并安排各模块学习顺序。压缩包内仅含1个docx文件,约110KB,体积轻便,便于在电脑或手机上随时查阅。大纲从考试说明、考试要求、考试目的与考试科目切入,内容覆盖信息系统知识、计算机系统基础、数据库技术、系统开发与运行维护、网络与系统安全、数据库主流应用技术及计算机专业英语,并进一步细分关系数据库、事务管理、SQL、数据库设计、数据仓库与数据分析、系统分析与设计等知识点。读者可据此对照教材逐项排查薄弱环节,建立从基础概念到设计管理的完整知识框架,也可作为冲刺阶段查漏补缺的清单。目前已有1660人学习,适合需要按官方范围系统备考的考生参考。
1. 考试全景:两科一张卷,先看清这张知识地图
数据库系统工程师考纲对应第四版教材,最大的特点是"两科分工明确、覆盖面铺得极开"。上午卷 150 分钟选择题,考信息系统知识,从 CPU 流水线、RAID 分级一路铺到网络协议和专业英语;下午卷 150 分钟问答题,考数据库系统设计与管理,从需求分析、E-R 建模、SQL 编写一路压到备份恢复与性能调优。很多人复习翻车的根本原因,往往不是不够努力,而是把下午卷当上午卷背,或者把公共基础课当专业课死磕。这张图其实是三层的结构:底层是计算机与网络公共底座,中层是数据库原理加 SQL 硬功夫,顶层是设计与运维的工程判断。两科都卡在 45 分及格线,意味着一科偏离及格线和另一科拿高分同样危险。
2. 信息系统知识:从硬件底座到网络安全的公共盘
上午卷看上去是"什么都考一点",真正拉分的其实集中在几块固定区域:体系结构与存储、操作系统与数据结构、网络与安全。这几块的知识点密度高、题型稳定,属于投入产出比最高的部分,先把它们拿下,再谈数据库原理。
2.1 硬件与存储系统:CPU、流水线与 RAID 分级
计算机由运算器、控制器、存储器、输入设备和输出设备五大部件构成,CPU 内部则由运算器、控制器和寄存器组组成。寄存器里名字最容易记混的是几个:PC 存放下一条指令地址,IR 存放当前正在执行的指令,PSW 存放程序状态字。性能指标要看主频、字长、CPI 和 MIPS,别只盯着主频判断快慢,指令集不同,主频高不代表实际吞吐高。
CISC 与 RISC 的对比是选择题里重复率很高的对照题,考点集中在指令数量、指令长度、寻址方式和实现方式这四个维度上。
| 维度 | CISC | RISC |
|---|---|---|
| 指令数量 | 多,功能复杂 | 少,功能精简 |
| 指令长度 | 变长 | 定长 |
| 寻址方式 | 丰富 | 少 |
| 控制器实现 | 以微程序控制为主 | 以硬布线控制为主 |
| 流水线实现 | 难度大 | 容易实现 |
流水线部分必须会算执行时间。设一条指令分 k 段,各段耗时为 t1 到 tk,流水线周期 Δt 取最长的那一段,则执行 n 条指令的时间为 (t1+t2+…+tk)+(n−1)×Δt。举个数:取指 2ns、分析 2ns、执行 1ns,共 100 条指令,结果是 5+(100−1)×2=203ns。吞吐率是 n 除以执行时间,加速比是顺序执行时间除以流水线执行时间。这里最容易错的是把 Δt 当成各段平均时间,实际要取最大值。
存储系统分 Cache、主存、辅存三级,理论依据是程序的局部性原理,包括时间局部性和空间局部性。Cache 平均访问时间 = H×Tc + (1−H)×Tm,H 是命中率。虚拟存储器有页式、段式、段页式三种实现,页式由系统划分、对用户透明,段式按逻辑意义划分、便于共享和保护,这个区别下午卷偶尔也会借去考。
RAID 分级几乎每年都有影子,记住技术特征和可用容量的对应关系比背定义有用。
| 级别 | 技术手段 | 容错能力 | 可用容量 | 典型特征 |
|---|---|---|---|---|
| RAID 0 | 条带化分块 | 无 | 全部磁盘 | 速度最快,一块坏全部失效 |
| RAID 1 | 镜像 | 可坏一块 | 总容量的一半 | 读写性能好,空间利用率低 |
| RAID 3 | 位或字节条带加专用校验盘 | 可坏一块 | n−1 | 校验盘成为写瓶颈 |
| RAID 5 | 分布式奇偶校验 | 可坏一块 | n−1 | 读写均衡,实际部署常见 |
| RAID 6 | 双校验块 | 可坏两块 | n−2 | 写惩罚更重,安全性更高 |
| RAID 10 | 先镜像再条带 | 视组合而定 | 总容量的一半 | 性能与可靠性折中 |
网络存储分 DAS、NAS、SAN 三类:DAS 是直接挂在本机上的存储,NAS 走文件级共享,SAN 走块级网络。可靠度计算里串联系统 R=R1×R2,并联系统 R=1−(1−R1)(1−R2),可用性用 MTBF/(MTBF+MTTR) 表达,MTTR 越小可用性越高,这个结论要能直接反推。
2.2 操作系统与数据结构:上午卷的高频得分区
数据结构这部分不是让你写代码,而是考性质和复杂度。把常用结构按查找、插入、删除的开销排成一张表,比逐个背定义有效得多。
| 结构 | 逻辑特征 | 关键操作复杂度 | 考点提示 |
|---|---|---|---|
| 顺序表 | 连续存储 | 插入删除 O(n),随机访问 O(1) | 与链表对照记忆 |
| 单链表 | 指针连接 | 插入删除 O(1)(已知位置),查找 O(n) | 双向链表删除更方便 |
| 栈 | 后进先出 | 入栈出栈 O(1) | 表达式求值、递归实现 |
| 队列 | 先进先出 | 入队出队 O(1) | 循环队列判空判满 |
| 二叉排序树 | 左小右大 | 平均 O(log n),最坏 O(n) | 退化成链表时最坏 |
| 平衡二叉树 | 高度平衡 | 查找 O(log n) | 调整靠左旋右旋 |
| B/B+ 树 | 多路平衡 | O(log n) | B+ 树叶子结点串成链表,适合范围查询 |
| 堆 | 完全二叉树 | 建堆 O(n),调整 O(log n) | 堆排序取最值 |
| 图 | 顶点加边 | 邻接矩阵 O(n²),邻接表 O(n+e) | 遍历分深度优先与广度优先 |
| 散列表 | 哈希定位 | 平均 O(1) | 冲突处理分开链法与开放地址法 |
排序算法那张表必须背到条件反射,尤其是稳定性这一列,考试极爱在这一列设题。稳定的有冒泡、插入、归并、基数排序;不稳定的有快速排序、希尔排序、堆排序、直接选择排序。复杂度和稳定性的交叉判断是常见失分点。
| 算法 | 平均时间 | 最坏时间 | 辅助空间 | 稳定性 |
|---|---|---|---|---|
| 冒泡排序 | O(n²) | O(n²) | O(1) | 稳定 |
| 直接插入 | O(n²) | O(n²) | O(1) | 稳定 |
| 快速排序 | O(n log n) | O(n²) | O(log n) | 不稳定 |
| 归并排序 | O(n log n) | O(n log n) | O(n) | 稳定 |
| 堆排序 | O(n log n) | O(n log n) | O(1) | 不稳定 |
| 希尔排序 | O(n^1.3) 量级 | 与增量序列有关 | O(1) | 不稳定 |
操作系统部分抓住四条主线。进程管理看三态转换:就绪、运行、阻塞,以及创建和终止两个附加状态,从运行到阻塞是主动请求资源,从运行到就绪是被剥夺处理机,这两个方向最容易被调换。同步互斥用 PV 操作,P 操作申请资源、V 操作释放资源,信号量的取值含义要能写出来。死锁的四个必要条件——互斥、请求并保持、不可剥夺、环路等待——缺一不可,银行家算法属于死锁避免。存储管理要分清分页和分段。
| 对比项 | 分页 | 分段 |
|---|---|---|
| 划分依据 | 物理单位,大小固定 | 逻辑单位,长度不定 |
| 地址结构 | 页号加页内偏移 | 段号加段内偏移 |
| 是否对用户可见 | 不可见 | 可见 |
| 主要目的 | 提高内存利用率 | 便于共享、保护与动态链接 |
设备管理记 SPOOLing 假脱机技术把独占设备改造成共享设备,磁盘调度考 FCFS、SSTF、SCAN 三种算法的磁头移动序列计算。文件管理看目录结构、索引结构和存取控制。语言处理程序要能排出六个阶段:词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成,解释程序不生成目标代码,这是与编译程序最本质的区别。
2.3 网络与信息安全:协议分层、加密与数字签名
网络部分的主干是分层模型和协议归属,任何一道题落在哪一层,先定位层次再判断。
| 层次 | 主要功能 | 代表协议 | 常见设备 |
|---|---|---|---|
| 物理层 | 比特流传输 | 无 | 中继器、集线器 |
| 数据链路层 | 成帧、差错控制 | PPP、HDLC | 网桥、交换机 |
| 网络层 | 路由与寻址 | IP、ICMP、ARP | 路由器 |
| 传输层 | 端到端传输 | TCP、UDP | 网关 |
| 会话与表示层 | 会话管理、编码转换 | 无 | 无 |
| 应用层 | 面向应用的服务 | HTTP、FTP、SMTP、DNS | 无 |
TCP 面向连接、可靠、有流量控制,UDP 无连接、开销小、不保证送达,选谁取决于业务对时延和可靠性的取舍,不是谁更"好"。IP 地址部分要会做基本的子网划分,用子网掩码取出网络号和主机号,判断两台主机能否直接通信,看的是网络号是否一致。
信息安全重点在三类算法的分工,这张表几乎覆盖了选择题的全部考点范围。
| 类型 | 密钥特征 | 代表算法 | 主要用途 |
|---|---|---|---|
| 对称加密 | 加解密同一密钥 | DES、3DES、AES | 大量数据加密,速度快 |
| 非对称加密 | 公钥加密、私钥解密 | RSA、ECC | 密钥分发、数字签名 |
| 摘要算法 | 单向不可逆 | MD5、SHA 系列 | 完整性校验 |
数字签名的流程要能倒着说清楚:发送方先对消息计算摘要,再用自己的私钥加密摘要形成签名,与消息一起发出;接收方用发送方的公钥解开签名得到摘要,再对收到的消息重新计算摘要做比对。既验完整性,也防抵赖。数字证书由认证机构签发,解决的是公钥本身可信的问题,不是数据加密的问题,这两个概念在题干里经常被混在一起考。
3. 数据库内核:数据模型、关系代数、范式与事务的复习主线
下午卷和上午卷的数据库部分共享同一套原理,区别只在考法:上午卷考判断,下午卷考推导与书写。这一章按"模型—运算—设计理论—事务—语言"的顺序串起来,是因为它本身就是一条推导链:数据模型定结构,关系代数定操作语义,范式定设计质量,事务定并发正确性,SQL 定落地写法。
3.1 数据模型与三级模式两级映像
数据模型的三要素是数据结构、数据操作和完整性约束。按抽象层次分两类:概念数据模型面向用户,最典型的是 E-R 模型,由实体、属性和联系构成,联系分一对一、一对多、多对多三种;逻辑数据模型面向实现,包括层次模型、网状模型、关系模型和面向对象模型。典型数据库系统则列了关系型、面向对象型、对象关系型、XML 数据库和 NoSQL 几类。
DBMS 的功能要按"定义—操作—管理—存储—维护"的顺序记:数据库定义、数据库操作、数据库运行管理(并发控制、安全性、完整性检查)、数据组织存储和管理、数据库建立与维护(装载、备份、恢复、重组重构),再加上通信接口等辅助功能。题干问"保证数据独立性属于哪项功能"时,答案落在运行管理与辅助功能交界处,看清楚问的是哪一项。
三级模式两级映像是本章最扎实的框架。外模式是用户视图,可以有多个;模式是全局逻辑结构,只有一个;内模式是物理存储结构,也只有一个。外模式/模式映像保证逻辑独立性,修改模式时只要调整映像,外模式和应用不必改;模式/内模式映像保证物理独立性,改内模式时同样只调整映像。梳理下来会发现,考"逻辑独立性"和"物理独立性"的题目,本质就是问改了哪一层、动了哪个映像。
数据库体系结构还包括集中式、并行(SMP、MPP、NUMA 等)、分布式、C/S 与 B/S 等形态。并行数据库强调的是多个处理机协同完成同一查询,分布式强调的是数据物理分散而逻辑统一,两者不要混为一谈。
3.2 关系代数与关系演算
关系模型的术语先对齐:关系即二维表,元组即行,属性即列,域是属性的取值范围。键的层次要分清:超键是能唯一标识元组的属性集,候选键是最小超键,主键是选定的那个候选键,外键是本关系中引用其他关系主键的属性。关系的"型"指结构,"值"指某一时刻的具体内容。
完整性约束有三类:实体完整性要求主键非空且唯一;参照完整性要求外键要么为空、要么等于被参照关系中某个主键值;用户自定义完整性由具体业务规则决定,落地形式是 CHECK、NOT NULL 等约束。
关系代数运算分两组。集合运算包括并、交、差、笛卡尔积,要求参与运算的关系属性个数相同、对应属性域相同。专门运算包括选择、投影、连接和除。连接的变体最多:θ 连接按条件连接,等值连接用等号做条件,自然连接在等值连接基础上去掉重复属性,外连接则保留未匹配的悬挂元组,分左外、右外和全外。
除运算的语义是"对所有的",是最容易看不懂的一个。用 SQL 表达时靠双重否定,这个写法值得抄下来反复看。
-- 关系代数除运算的等价写法:找出选修了全部课程的学生 -- 语义拆解:"不存在一门课程,该学生没有选" SELECT s.sname FROM student s WHERE NOT EXISTS ( -- 外层:不存在这样的课程 SELECT 1 FROM course c WHERE NOT EXISTS ( -- 中层:该学生没有选这门课 SELECT 1 FROM sc WHERE sc.sno = s.sno AND sc.cno = c.cno ) );这段逻辑要从内往外读:最内层判断某学生是否选了某门课,中层在外面套一层 NOT EXISTS,含义变成"这门课该学生没选",最外层再套一层 NOT EXISTS,含义变成"不存在他没选的课",也就是全都选了。参数上 sno 是学号、cno 是课程号、sc 是选课关系,三张表的主外键关系决定了关联条件写在哪一层。
元组演算的表达式形式是 {t | P(t)},软考只要求能把简单的关系代数与演算式互译,重点在于识别量词"存在"和"任意"对应的否定嵌套。这里有个细节值得单独标出来:关系代数的投影默认去重,而 SQL 的 SELECT 默认保留重复行,要写 DISTINCT 才等价。这个差异在判断题里年年有。
3.3 函数依赖、范式与模式分解
函数依赖 X→Y 表示 X 的取值唯一决定 Y。完全函数依赖要求 X 的任何真子集都不能决定 Y;部分函数依赖则是存在真子集就能决定;传递函数依赖是 X→Y、Y→Z 且 Y 不能反推 X。多值依赖 X→→Y 描述的是"一组值独立于另一组值"的情形,比较抽象,抓住定义里"交换两组值不影响关系"这一条即可。
Armstrong 公理三条:自反律、增广律、传递律。由此可推出合并规则、分解规则和伪传递规则。求候选键的实用方法是先给属性分类:只出现在函数依赖左部的属性必定属于某个候选键,只出现在右部的必定不属于,然后从左侧属性集开始求闭包,看能否推出全部属性。
范式判定是本章的核心表格,建议直接背判定条件和"消除了什么"。
| 范式 | 判定条件 | 消除的问题 |
|---|---|---|
| 1NF | 每个属性都是不可再分的原子值 | 非原子属性 |
| 2NF | 1NF 且非主属性完全依赖于候选键 | 非主属性对候选键的部分依赖 |
| 3NF | 2NF 且非主属性不传递依赖于候选键 | 非主属性对候选键的传递依赖 |
| BCNF | 每个非平凡函数依赖的决定因素都包含候选键 | 主属性对候选键的部分与传递依赖 |
| 4NF | BCNF 且非平凡多值依赖的决定因素都包含候选键 | 非平凡多值依赖 |
举一个具体的判定过程:关系 R(A,B,C),函数依赖集 {A→B, B→C}。左侧只出现 A,A 的闭包能推出 A、B、C,所以候选键是 A。A→B 是完全依赖,没有问题;但 A→B、B→C 构成传递依赖,所以 R 满足 2NF 不满足 3NF。保持无损连接的分解方式之一是拆成 R1(A,B) 和 R2(B,C)。
模式分解要同时看两个性质:无损连接性和保持函数依赖。无损连接的判定可以用表格法(初表法),把每个函数依赖逐个代入消元,最后若某一行全是 a 则无损。结论层面记两条:分解到 3NF 可以同时做到无损连接和保持函数依赖;分解到 BCNF 能保证无损连接,但不一定保持函数依赖。这个不对称结论是简答题的常客。
3.4 事务、并发控制与恢复
事务的四个特性 ACID 要能各配一句解释:原子性靠日志的 UNDO 实现,一致性靠完整性约束和业务逻辑保证,隔离性靠并发控制机制,持久性靠日志的 REDO 和介质冗余。四者不是并列的技术手段,而是层层支撑的关系。
并发不加控制会出四类问题:丢失更新(两个事务读同一数据各自修改,后写的覆盖先写的)、读脏数据(读到未提交且随后回滚的数据)、不可重复读(同一事务内两次读同一行结果不同)、幻读(同一事务内两次按同一条件查询,第二次多出或少了行)。前三个针对"值变了",幻读针对"行数变了",这个区分决定了加锁对象是行还是范围。
封锁机制里两种锁:排他锁 X 锁和共享锁 S 锁。相容性只有 S 与 S 相容,其余组合都冲突。三级封锁协议层层加严:一级要求修改前加 X 锁并保持到事务结束,解决丢失更新;二级在一级基础上要求读前加 S 锁、读完即可释放,解决读脏数据;三级要求 S 锁也保持到事务结束,解决不可重复读。两段锁协议规定事务分扩展段和收缩段,加锁只能在前段、解锁只能在后段,遵守 2PL 能保证并发调度的可串行化,但可能产生死锁。
隔离级别与四类问题的对应关系几乎是必考项。
| 隔离级别 | 脏读 | 不可重复读 | 幻读 |
|---|---|---|---|
| 读未提交 | 可能 | 可能 | 可能 |
| 读已提交 | 不可能 | 可能 | 可能 |
| 可重复读 | 不可能 | 不可能 | 可能 |
| 串行化 | 不可能 | 不可能 | 不可能 |
事务控制的语句写法要熟,尤其是回滚的边界。
-- 转账场景:两条更新必须同生共死 BEGIN TRANSACTION; -- 开启事务 UPDATE account SET balance = balance - 100 WHERE acct_id = 'A001'; -- 转出 UPDATE account SET balance = balance + 100 WHERE acct_id = 'A002'; -- 转入 COMMIT; -- 两条同时生效 -- 若第二条更新失败,执行 ROLLBACK; A001 的扣款一并撤销参数 acct_id 是账户标识,balance 是余额。这段的价值在于说明原子性的实现思路:两步更新之间任何一步失败都必须整体回滚,否则账目对不上。写简答题时点出"由日志记录前像,回滚时用前像恢复"会更完整。
故障恢复要区分三类故障:事务故障(单个事务出错,靠 UNDO)、系统故障(如断电,导致内存内容丢失但磁盘完好,靠 UNDO 未提交事务、REDO 已提交事务)、介质故障(磁盘损坏,靠备份加日志重做)。日志的两条铁律:先写日志后写数据库,以及事务提交前必须把该事务的日志写到稳定存储。检查点的作用是缩短恢复时需要扫描的日志范围,判定规则是:检查点之前已提交的事务不需要处理,检查点之后提交的事务需要 REDO,检查点之后未提交的事务需要 UNDO。
3.5 SQL 语言:DDL、DML、DCL 与存储过程、触发器
SQL 的四大类要分清楚:DDL 数据定义(CREATE、ALTER、DROP,对象是表、视图、索引、约束)、DML 数据操作(SELECT、INSERT、UPDATE、DELETE)、DCL 数据控制(GRANT、REVOKE)、以及事务控制语句。SQL 的特点是一体化(集定义、操纵、控制于一体)、非过程化(只说要什么不说怎么做)、面向集合。
视图是高频考点。它的作用有三个:简化复杂查询、实现安全性(只暴露部分行和列,且能隐藏基表结构)、提供逻辑独立性。可更新视图有前提条件,一般要求视图由单表导出且不含聚合函数、GROUP BY、DISTINCT 等,聚合视图和连接视图通常不可更新。
多表连接要能默写左外、右外、全外的语义差别:左外保留左表全部行、右表匹配不上补空;右外反之;全外两边都保留。自连接用于同一张表内的层次或比较关系,典型场景是"找出工资高于本部门平均工资的员工"。
子查询要分清非相关与相关:非相关子查询独立执行一次,结果供外层使用;相关子查询依赖外层的每一行,逐行执行。EXISTS 只判断结果集是否为空,不关心取到什么值,配合 NOT EXISTS 可以表达"对所有"的语义,这也是上一节除运算的写法基础。
窗口函数在 OLAP 类题目里越来越常见,它和 GROUP BY 最大的区别是不折叠行。
-- 按部门给工资排名,同时保留每一行明细 SELECT dept_id, emp_name, salary, RANK() OVER (PARTITION BY dept_id ORDER BY salary DESC) AS rk FROM employee;PARTITION BY 划分分组窗口,相当于"按部门分组但不合并行";ORDER BY 决定排名依据。三个排名函数的差异要记牢:ROW_NUMBER 强制给出连续不重复序号,RANK 遇到并列时跳号(1、1、3),DENSE_RANK 并列时不跳号(1、1、2)。题目问"并列第二名之后下一个是第几名",就是在考这个区别。
存储过程把多条 SQL 封装成可调用单元,参数模式分 IN、OUT、INOUT 三种,内部可以用变量、条件分支、循环和游标。游标解决的是"集合操作语言处理单行逻辑"的矛盾,使用分四步:声明、打开、取数、关闭。触发器绑定在表的增删改事件上,分 BEFORE 和 AFTER、行级和语句级,典型用途是审计留痕、级联更新和复杂业务约束。嵌入式 SQL 要掌握三个概念:SQL 通信区用来回传执行状态、共享变量用于宿主语言与 SQL 之间传值、游标用于把集合结果逐行交给宿主语言处理。
4. 设计与运维:从需求到 E-R,再到备份恢复与性能调优
上午卷考"知不知道",下午卷考"会不会做"。这一章的四个模块,对应下午卷第一题到最后一题的全部题型:设计流程出 E-R 与关系模式,分析设计出数据流图与架构,运维出备份恢复与调优,新技术出概念辨析。
4.1 数据库设计六步法与 E-R 图转换规则
六步法:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行维护。每一步的产出物要能对上号:需求分析出数据字典和数据流图;概念设计出 E-R 图;逻辑设计出关系模式和视图;物理设计出索引、分区与存储安排。
概念设计阶段的核心工作是局部 E-R 图设计与合并。合并时要处理三类冲突:属性冲突(同名不同义、同义不同名、单位不一致)、命名冲突、结构冲突(同一对象在不同局部图中抽象不同)。合并后还要消除冗余,冗余的联系会让后续关系模式变复杂。
逻辑设计的核心是 E-R 图向关系模式的转换规则,这几条必须能直接写出来:
- 每个实体转换为一个关系模式,实体的属性成为关系的属性,实体的码成为关系的码。
- 一对一联系可以独立成一个关系模式,也可以合并到任意一端的关系模式中。
- 一对多联系可以独立成关系模式,也可以合并到多端,把一端的码作为外键加进去。
- 多对多联系必须独立成一个关系模式,码是两端实体码的组合。
- 三个及以上实体之间的多元联系,独立成一个关系模式,码是各实体码的组合。
- 同一实体集内部的联系按一对多或一对一规则处理。
转换完还要做规范化处理,一般达到 3NF 即可,然后再做优化,包括减少连接次数、消除冗余属性,最后设计外模式即用户视图。
物理设计阶段选存取方法和存储结构:存取方法主要指索引策略,区分聚簇索引与非聚簇索引、区分哪些列建索引;存储结构涉及分区、表空间和存放位置。判断依据是查询模式,读多写少、等值查询多的列优先建索引,更新极频繁的列要慎建,因为每个索引都要跟着维护。
4.2 系统分析与架构:数据流图、数据字典与体系结构选择
结构化分析的两大工具是数据流图和数据字典,二者合起来构成系统的逻辑模型。数据流图有四种元素:外部实体、加工、数据流、数据存储,画分层图时从顶层图开始逐层细化,关键约束是父子平衡——父图中某个加工的输入输出数据流,必须与它对应子图的输入输出保持一致。
数据字典有五类条目:数据项、数据结构、数据流、数据存储、加工。其中数据项是不可再分的最小单位,数据结构由若干数据项组成。简答题常问"数据字典的作用是什么",答案是它对数据流图中的每个元素给出精确定义,使系统逻辑模型完整无歧义。
面向对象分析用 UML 表达,用例图描述系统与外部参与者的交互,类图描述静态结构,序列图描述对象间的时序交互,状态图描述对象生命周期。面向服务的分析方法则强调服务识别与编排,属于较新的内容,抓"服务松耦合、可复用"两个关键词。
系统设计层面,模块化设计的两个度量是内聚和耦合。内聚从高到低分为功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚;耦合从低到高分为非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合。判断原则是"高内聚、低耦合",做题时看模块之间传递的是数据还是控制信号,传控制信号就落在控制耦合,共享全局变量就是公共耦合。
体系结构选型上,C/S 结构把处理分散到客户端和服务器,交互体验好但维护成本高;B/S 把界面统一到浏览器,部署升级方便;三层结构在二者之间加一层应用服务器,用于承载业务逻辑。大规模数据库与并行计算机体系结构是下午卷的高频搭配考点,SMP 是共享内存的对称多处理,扩展
本文还有配套的精品资源,点击获取