返回知识库

软考

数据库 + 计算机网络深化

范式判定决策树+候选码求解四步法+Armstrong公理+事务四级隔离+封锁协议+OSI七层+TCP三次握手四次挥手+HTTPS+子网划分五步公式

软考数据库计算机网络真题范式子网划分TCPHTTPS

一句话定位

数据库 45 题 + 网络 35 题是综合知识”易丢分重灾区”——本篇把范式判定落成决策树、子网计算落成五步公式,确保选择题 30 秒可解。

NOTE

本篇是 01-cs-fundamentals.mdx 的”DB+网络深化版”。事实据教材第 2 版 + 2020-2025 真题核对(2026-07-29)。

第一部分:数据库

A. 数据库基础

三级模式 / 两级映像

外模式(用户视图)  ─── 外模式/模式映像 ───  模式(逻辑结构)  ─── 模式/内模式映像 ───  内模式(物理存储)
   ↑                                            ↑                      ↑
 视图层                                       逻辑层                  存储层
映像作用数据独立性
外模式/模式逻辑结构变时改映像,外模式不变逻辑独立性
模式/内模式存储变时改映像,逻辑结构不变物理独立性

数据模型三要素

  1. 数据结构:描述对象类型(如层次/网状/关系)
  2. 数据操作:增删改查
  3. 完整性约束:实体完整性(主键)/ 参照完整性(外键)/ 用户定义完整性

关系术语

  • 候选码:能唯一标识元组的最小属性组
  • 主码:选定的一个候选码
  • 主属性:包含在任一候选码中的属性
  • 非主属性:不包含在任一候选码中
  • 外码:关系 A 的属性是关系 B 的主码

B. 关系代数(必考 1 题)

五基本运算

运算符号含义SQL 对应
选择σ行过滤WHERE
投影π列选择SELECT 列
笛卡尔积×两表所有组合FROM A, B
集合并去重合并UNION
集合差A 减 BEXCEPT

派生运算

运算符号含义等价
共同元组A − (A − B)
连接 θ-join笛卡尔积 + 条件过滤σ(条件)(A × B)
自然连接同名属性等值连接 + 去重复列
除法÷A 包含 B 的所有元组关键用于”全部”查询

重要等价

  • R − (R − S) = R ∩ S
  • R ⋈ S = S ⋈ R(自然连接可交换)
  • σ(条件1)(σ(条件2)(R)) = σ(条件1 ∧ 条件2)(R)(选择可合并)

IMPORTANT

关系代数解题套路

  1. 读题提取”表 + 条件 + 投影列”
  2. 写对应 SQL
  3. 按 SQL 与代数对照翻译
  4. 注意”全部”用除法 ÷;“至少”用交 ∩ 或嵌套

真题举一反三

2024-11 综合题:R − (R − S) 等价于?

  • 解:R ∩ S

2023-05 综合题:求”选修了所有课程的学生”的关系代数。

  • 解:π(学号, 课程号)(选课) ÷ π(课程号)(课程)

C. 函数依赖与范式(必考 1~2 题)

函数依赖类型

类型符号含义
完全函数依赖X →f YY 依赖于 X 全体,不依赖任何 X 的真子集
部分函数依赖X →p YY 依赖 X 的某个真子集(部分)
传递函数依赖X 决定 Y 决定 ZX 决定 Y,Y 决定 Z(Y 不是 X 子集,Z 不在 X 中)

Armstrong 公理

  • 自反律:Y ⊆ X 推出 X 决定 Y
  • 增广律:X 决定 Y ⇒ XZ 决定 YZ
  • 传递律:X 决定 Y ∧ Y 决定 Z ⇒ X 决定 Z
  • 导出规则:合并(X 决定 Y ∧ X 决定 Z ⇒ X 决定 YZ)/ 分解(X 决定 YZ ⇒ X 决定 Y ∧ X 决定 Z)/ 伪传递(X 决定 Y ∧ YW 决定 Z ⇒ XW 决定 Z)

候选码求解算法

IMPORTANT

候选码求解四步 callout

  1. 属性分类
    • L 类:只在函数依赖左边
    • R 类:只在函数依赖右边
    • LR 类:左右都出现
    • N 类:不出现
  2. 必含:L+N 类必在所有候选码中
  3. 求闭包:(L+N)⁺ 若等于 U,即唯一候选码
  4. 否则组合:(L+N) 与 LR 类逐一组合,找最小闭包 = U 的组合

范式判定决策树

IMPORTANT

范式判定决策树(自上而下)

  • 1NF:分量是否原子?否则不满足 1NF
  • 2NF:非主属性对候选码是否存在部分函数依赖?是则仅 1NF
  • 3NF:非主属性对候选码是否存在传递函数依赖?是则仅 2NF
  • BCNF:每个函数依赖 X 决定 Y,X 是否都是超键?否则仅 3NF,是则 BCNF

一句话区分

  • 2NF:消除部分依赖
  • 3NF:消除传递依赖
  • BCNF:每个决定子都是候选码(主属性也不允许部分/传递依赖)

反范式

OLTP 严格遵循范式;OLAP / 读多写少可适度冗余(反范式)以减少 JOIN。

真题举一反三

2022-11 综合题:R(A,B,C,D),F = {A 决定 B, B 决定 C, A 决定 D},求候选码与最高范式。

  • 解:
    • L 类:A;R 类:C,D;LR 类:B
    • A⁺ = ABCD = U → 候选码 = A
    • 主属性 = A;非主属性 = B,C,D
    • B→C:B 不是码,存在传递 A→B→C → 不满足 3NF → 最高范式 = 2NF(无非主属性对码的部分依赖)

2024-05 综合题:R(A,B,C,D,E),F = {AB 决定 C, C 决定 D, D 决定 E},求候选码。

  • 解:
    • L 类:A,B;R 类:E;LR 类:C,D
    • (AB)⁺ = ABCDE = U → 候选码 = AB
    • 主属性 = A,B;非主属性 = C,D,E

2025-11 综合题:R(A,B,C,D),F = {A 决定 B, B 决定 A, B 决定 C, C 决定 A},求候选码与最高范式。

  • 解:
    • L 类:无;R 类:无;LR 类:A,B,C;N 类:D
    • D 必在码中;D⁺ = D ≠ U
    • 试 AD:AD⁺ = ABCD = U ✓;BD:BD⁺ = ABCD ✓;CD:CD⁺ = ABCD ✓
    • 候选码 = AD, BD, CD;主属性 = A,B,C,D(全部)
    • 所有决定子 (A, B, C) 都是候选码的一部分 → BCNF

D. 事务与并发控制(必考 1~2 题)

ACID

性质全称含义
A 原子性Atomicity全做或全不做(undo 日志)
C 一致性Consistency执行前后数据库一致
I 隔离性Isolation并发事务互不干扰
D 持久性Durability提交后永久(redo 日志)

并发问题四类

问题描述示例
丢失修改T1 写被 T2 覆盖T1 读 X=100→写 150;T2 读 X=100→写 200;T1 修改丢失
脏读读未提交数据T2 读 T1 未提交的 X=200;T1 回滚
不可重复读同事务两次读结果不同T1 读 X=100;T2 改 X=200;T1 再读 X=200
幻读范围查询出现新行T1 查 1-10;T2 插 5;T1 再查 1-10 多一行

四级隔离级别

隔离级别丢失修改脏读不可重复读幻读默认
Read Uncommitted✓ 防止可能可能可能
Read Committed✓ 防止✓ 防止可能可能Oracle/PG
Repeatable Read✓ 防止✓ 防止✓ 防止可能MySQL
Serializable✓ 防止✓ 防止✓ 防止✓ 防止

封锁协议

协议加锁规则防止
一级写前加 X 锁,到事务结束释放丢失修改
二级一级 + 读前加 S 锁,读完即释放丢失修改 + 脏读
三级一级 + 读前加 S 锁,到事务结束释放丢失修改 + 脏读 + 不可重复读
两段锁 2PL扩展阶段只加锁 + 收缩阶段只解锁保证可串行化(但不防死锁)

调度可串行化

  • 冲突可串行化:通过交换非冲突操作能等价于某串行调度
  • 冲突操作:不同事务对同一数据的写-写 / 读-写
  • 判定:冲突图无环 → 冲突可串行化

真题举一反三

2021-05 综合题:某银行转账事务最关心避免脏读,应选哪一级别?

  • 解:Read Committed

2023-11 综合题:调度 T1:R(A) T2:W(A) T1:W(A) T2:R(A),判断是否冲突可串行化。

  • 解:冲突对:(T2.R(A), T1.W(A))?——R(A) 后 W(A) 同数据,冲突;T1.W(A) 后 T2.R(A) 冲突
  • 冲突图:T1 ↔ T2 双向 → 有环,不可串行化

2024-05 综合题:T1: R(A) R(B); T2: W(A) W(B),下列哪种等价于串行?

  • 解:T1 全读必须在 T2 全写之前(或之后);若交错则不可串行化。

E. E-R 模型

E-R 三要素

  • 矩形:实体
  • 椭圆:属性
  • 菱形:联系

联系类型转换规则

联系类型转关系模式方法
1:1任一方加外码(指向另一方主码);或独立关系
1:NN 端加外码(指向 1 端主码)
M:N必须独立关系,含两端外码

真题举一反三

2024-11 综合题:学生(学号, 姓名)与课程(课程号, 课程名)M:N 选课,转换为关系模式。

  • 解:
    • 学生(学号, 姓名)
    • 课程(课程号, 课程名)
    • 选课(学号, 课程号, 成绩)← 独立关系,联合主码

F. 分布式数据库与 NoSQL

CAP 定理

分布式系统三选二(网络分区必选):

  • Consistency 一致性
  • Availability 可用性
  • Partition tolerance 分区容错

选择

  • CP:ZooKeeper / HBase / MongoDB(强一致)
  • AP:Eureka / Cassandra / DynamoDB(高可用)
  • CA:单机关系数据库(无分区)

BASE 理论

CAP 在 AP 侧的延伸:

  • Basically Available 基本可用
  • Soft state 软状态
  • Eventual consistency 最终一致

NoSQL 四类型

类型代表数据模型适用场景
键值 KVRedis / Memcachedkey → value缓存、会话
列族HBase / Cassandrarow key → 多列族大数据、稀疏矩阵
文档MongoDB / CouchDBJSON-like内容管理、灵活 schema
Neo4j / JanusGraph节点 + 边社交、推荐、知识图谱

数据仓库 vs 数据库

维度OLTP 数据库OLAP 数据仓库
目的日常事务分析决策
数据当前、详细历史、聚合
设计范式化星型/雪花
操作短事务长查询

真题举一反三

2023-05 综合题:ZooKeeper 属于哪类 CAP?

  • 解:CP(强一致)

2024-11 综合题:社交网络好友关系推荐选哪种 NoSQL?

  • 解:图数据库 Neo4j

第二部分:计算机网络

G. OSI 七层 vs TCP/IP 四层

完整对照表

OSI 层TCP/IP 层PDU主要协议典型设备
应用层应用层MessageHTTP, FTP, SMTP, DNS, DHCP, SNMP, Telnet网关
表示层应用层MessageSSL/TLS, JPEG, ASCII, 加密网关
会话层应用层MessageRPC, NetBIOS, SQL网关
传输层传输层Segment (TCP) / Datagram (UDP)TCP, UDP网关
网络层网际层PacketIP, ICMP, ARP, RARP, OSPF, BGP路由器
数据链路层网络接口层FrameEthernet, PPP, HDLC, VLAN交换机/网桥
物理层网络接口层BitRS-232, 双绞线, 光纤集线器/中继器

IMPORTANT

每层功能记忆 callout

  • 物理层:比特传输
  • 数据链路层:帧 + MAC 地址 + 差错控制
  • 网络层:包 + IP 地址 + 路由
  • 传输层:端到端 + 端口 + 可靠性
  • 会话层:会话建立与同步
  • 表示层:数据格式 + 加密压缩
  • 应用层:用户接口

真题举一反三

2024-11 综合题:以下哪个工作在数据链路层?A) 路由器 B) 交换机 C) 集线器 D) 网关

  • 解:B 交换机

2025-05 综合题:HTTPS 中 SSL/TLS 工作在 OSI 哪一层?

  • 解:表示层(虽然 TCP/IP 模型中归应用层)

H. TCP/UDP 与三次握手四次挥手

TCP vs UDP

维度TCPUDP
连接面向连接无连接
可靠性可靠(确认+重传)不可靠
顺序有序无序
速度
头部20 字节8 字节
流量/拥塞控制
应用HTTP/FTP/SMTP/SSHDNS/DHCP/TFTP/视频流

TCP 三次握手

图 1:TCP 三次握手(来源:教材第 2 版 §3.4)

为什么三次? 防止历史失效连接请求(SYN)到达服务端,造成资源浪费。

TCP 四次挥手

图 2:TCP 四次挥手(TIME-WAIT 等 2MSL 防最后 ACK 丢失)

为什么四次? 全双工关闭——A→B FIN 后 B 还能继续发数据(半关闭),B 发完再 FIN。

TCP 拥塞控制

  • 慢启动:cwnd 从 1 指数增长到 ssthresh
  • 拥塞避免:cwnd 线性增长
  • 快重传:连续 3 个重复 ACK 立即重传
  • 快恢复:ssthresh = cwnd/2,cwnd = ssthresh(不回 1)

真题举一反三

2021-11 综合题:TCP 连接建立过程中,服务端收到 SYN 后状态转换为?

  • 解:SYN-RCVD

2023-05 综合题:TIME-WAIT 状态持续 2MSL 的原因?

  • 解:①保证最后 ACK 到达对端(若丢失,对端会重发 FIN);②让本次连接的报文都消失,防止干扰新连接

2024-11 综合题:连续 3 个重复 ACK 触发什么?

  • 解:快重传 + 快恢复(不触发慢启动)

I. HTTP/HTTPS/DNS

HTTP 方法

方法用途幂等安全
GET获取资源
POST创建资源
PUT更新(全量)
PATCH更新(部分)
DELETE删除
HEAD仅获取头
OPTIONS探测支持方法

HTTP 状态码

类别含义典型
1xx信息100 Continue
2xx成功200 OK / 201 Created / 204 No Content
3xx重定向301 永久 / 302 临时 / 304 Not Modified
4xx客户端错400 / 401 / 403 / 404 / 429
5xx服务端错500 / 502 / 503 / 504

HTTP 版本

版本关键特性
HTTP/1.0短连接(每次新建 TCP)
HTTP/1.1长连接 Keep-Alive + 流水线 + Host 头
HTTP/2二进制分帧 + 多路复用 + 头压缩 HPACK + 服务端推送
HTTP/3基于 QUIC(UDP)+ 解决队头阻塞

HTTPS = HTTP + TLS

完整握手流程

图 3:HTTPS/TLS 握手流程(来源:教材第 2 版 §3.10)

核心思想

  1. 非对称加密协商对称密钥(用服务器证书公钥加密预主密钥)
  2. 对称加密传输数据(性能高)
  3. CA 证书保证公钥可信

DNS 解析流程

浏览器输入 → 浏览器缓存 → 操作系统 hosts → 本地 DNS 解析器
   ↓ (递归)
根 DNS 服务器 → 顶级域名(.com)→ 权威 DNS → 解析 IP
  • 递归查询:客户端 → 本地 DNS(必须给答案)
  • 迭代查询:本地 DNS → 根/顶级/权威(依次问)

真题举一反三

2024-05 综合题:HTTPS 与 HTTP 区别?

  • 解:HTTPS = HTTP + TLS/SSL;端口 443(vs HTTP 80);加密通信 + 身份认证 + 完整性

2025-11 综合题:HTTP/2 主要改进?

  • 解:二进制分帧 + 多路复用(解决队头阻塞)+ 头部压缩 + 服务端推送

J. IP 编址与子网划分(必考 1 题)

IPv4 五类地址

范围默认掩码网络位
A1.0.0.0 ~ 126.255.255.255/88
B128.0.0.0 ~ 191.255.255.255/1616
C192.0.0.0 ~ 223.255.255.255/2424
D 组播224.0.0.0 ~ 239.255.255.255
E 保留240.0.0.0 ~ 255.255.255.255

私有 IP(RFC 1918):

  • A:10.0.0.0/8
  • B:172.16.0.0/12(172.16.0.0 ~ 172.31.255.255)
  • C:192.168.0.0/16

特殊 IP

  • 127.0.0.0/8:回环
  • 169.254.0.0/16:链路本地
  • 0.0.0.0:本机所有 IP

子网划分五步公式

IMPORTANT

子网划分五步 callout

  1. 看掩码/CIDR:如 /27 = 27 位网络号
  2. 算借位数 b:b = CIDR − 默认类网络位(如 C 类 /27,借 b=3 位)
  3. 算子网数:2^b(如 2³ = 8 个子网)
  4. 算每子网主机数:2^h − 2,h = 32 − CIDR(如 /27,h=5,30 台)
  5. 算子网步长:256 − 掩码最后非 0 段(如 255.255.255.224 → 256-224=32,步长 32)

子网划分例题

2020-11 综合题:192.168.1.0/24 划分 4 个子网,求掩码与每子网主机数。

  • 解:借位 b:2^b ≥ 4 → b=2;新掩码 = /26 → 255.255.255.192;步长 = 256-192 = 64
    • 子网 1:192.168.1.0/26(IP:.1~.62,广播 .63)
    • 子网 2:192.168.1.64/26(IP:.65~.126,广播 .127)
    • 子网 3:192.168.1.128/26(IP:.129~.190,广播 .191)
    • 子网 4:192.168.1.192/26(IP:.193~.254,广播 .255)
  • 每子网主机数 = 2^6 - 2 = 62

2023-05 综合题:CIDR 聚合 192.168.0.0/24, 192.168.1.0/24, 192.168.2.0/24, 192.168.3.0/24。

  • 解:第三段 0,1,2,3 二进制前 2 位相同(00xxxxxx),故聚合 /22 → 192.168.0.0/22

2025-05 综合题:10.1.12.129/27 的网络地址与广播地址。

  • 解:掩码 255.255.255.224,第四段步长 32
    • 子网起始:0, 32, 64, 96, 128, 160, 192, 224
    • 129 在 128-159 段
    • 网络地址 = 10.1.12.128;广播 = 10.1.12.159

IPv6

  • 128 位(16 字节)
  • 表示:8 组 4 位十六进制,如 2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • 缩写:连续 0 用 ::(只用一次);2001:db8:85a3::8a2e:370:7334
  • 过渡:双栈 / 隧道 / NAT-PT

NAT

  • 私有 IP ↔ 公网 IP 映射
  • 节省 IPv4 地址
  • 类型:静态 NAT / 动态 NAT / PAT(端口映射,最常用)

K. 反查表

考点公式或决策树真题锚点
三级模式/两级映像外/模式 → 逻辑独立性2024-05§A
关系代数除法π(学号, 课程号)/π(课程号)2023-05§B
R-(R-S) 等价R∩S2024-11§B
候选码求解四步L+N 必含 → 求闭包2024-05, 2025-11§C
范式判定决策树1NF→2NF→3NF→BCNF2022-11, 2025-11§C
ACID 四性质原子一致隔离持久2023-11§D
四级隔离级别RC 防脏读 / RR 防不可重复2021-05§D
三级封锁协议S 锁到事务结束→三级2023-11§D
2PL 可串行化扩展+收缩两阶段2024-05§D
E-R M:N 转换独立关系 + 双外码2024-11§E
CAP/NoSQL 选型CP=ZK / AP=Eureka2023-05, 2024-11§F
OSI 七层协议对应应用 HTTP / 网际 IP / 链路 Ethernet2024-11, 2025-05§G
TCP 三次握手SYN → SYN+ACK → ACK2021-11§H
TIME-WAIT 2MSL防最后 ACK 丢失2023-05§H
TCP 快重传3 个重复 ACK2024-11§H
HTTPS 握手非对称协商对称密钥2024-05§I
HTTP/2 改进多路复用+二进制分帧2025-11§I
子网划分五步借位 b → 2^b 子网 → 步长 256-m2020-11, 2025-05§J
CIDR 聚合共同前缀长度2023-05§J

记忆口诀 / 易错点汇总

  1. 范式四步:1NF 原子 → 2NF 消部分 → 3NF 消传递 → BCNF 决定子都含码
  2. 候选码:L+N 必含,LR 类试组合,闭包=U
  3. 隔离级别递进:读未提交 → 读已提交(防脏读)→ 可重复读(防不可重复)→ 串行化(防幻读)
  4. 封锁协议:一级防丢失,二级防脏读,三级防不可重复,2PL 保证可串行化
  5. OSI 七层口诀:物数网传会表应(Bottom-Up)
  6. 子网五步:看掩码 → 算借位 → 算子网数 → 算主机数 → 算步长
  7. TCP 三次握手:SYN → SYN+ACK → ACK
  8. TCP 四次挥手:FIN → ACK → FIN → ACK

TIP

避坑建议

  • 候选码务必画属性分类表(L/R/LR/N)
  • 范式判定注意”主属性 vs 非主属性”
  • 子网掩码最后段算步长用 256−m
  • HTTPS 握手是”非对称换对称密钥”——别答成全程非对称
  • TCP 拥塞控制记住”快重传 = 3 重复 ACK”,不会回慢启动

交叉引用

本系列笔记

主计划文档

详见 主计划 §3.3~§3.4 数据库与网络 的对应内容。

外部延伸

  • 官方教材:《系统架构设计师教程(第 2 版)》§3.3, §3.4
  • 真题练习:2020-2025 综合 DB+网络题

自测题

  1. 候选码:R(A,B,C,D),F={AB 决定 C, C 决定 D, D 决定 A},求所有候选码。(答:AB, BC, BD)
  2. 范式:R(A,B,C),F={A 决定 B, B 决定 C},最高范式?(答:2NF,因 A 决定 B 决定 C 传递)
  3. 隔离:MySQL 默认隔离级别?(答:Repeatable Read)
  4. TCP:四次挥手中 TIME-WAIT 持续多久?为什么?(答:2MSL,防最后 ACK 丢失)
  5. 子网:172.16.50.0/22 的网络地址、广播、可用 IP?(答:网络 172.16.48.0,广播 172.16.51.255,可用 1022)
  6. HTTPS:握手用对称还是非对称?(答:非对称换对称密钥,数据传输对称)

IMPORTANT

如果只能”看着面熟”但说不出来,说明还没真正掌握,建议回看对应章节并多做真题。


下一篇导引安全 + 数学 + 知识产权 + 英语 将讲述加密算法对照、数学图论/排队论、著作权保护期、英语 120 词表,帮助你掌握边角拿分区。