软考系统架构师 · 全册考点精讲与真题实战 第 6 章 数据库设计

四季读书网 2 0
软考系统架构师 · 全册考点精讲与真题实战 第 6 章 数据库设计

所属篇章:上篇·综合知识
预估分值:5~8 分
考查重点:关系代数、规范化理论、数据库设计方法、并发控制与事务
难度等级:★★★★(规范化计算和关系代数必考)


一、本章知识图谱

数据库设计
├── 6.1 关系数据库理论
│   ├── 关系代数运算
│   └── 函数依赖
├── 6.2 规范化理论
│   ├── 1NF ~ BCNF
│   └── 反规范化
├── 6.3 数据库设计方法
│   ├── E-R 模型
│   └── 数据库设计阶段
├── 6.4 事务与并发控制
│   ├── ACID 特性
│   └── 并发问题与封锁协议
├── 6.5 数据库分布式与 NoSQL
└── 6.6 数据仓库与数据挖掘

二、核心考点详解

考点 1:关系代数运算(计算题高发区)

1.1 基本运算

运算
符号
含义
选择(σ)
σ_条件®
从关系 R 中选出满足条件的行(元组)
投影(π)
π_属性®
从关系 R 中选出指定的列(属性)
并(∪)
R ∪ S
两个关系的元组合并(去重)
差(−)
R − S
属于 R 但不属于 S 的元组
笛卡尔积(×)
R × S
两个关系的所有组合
除(÷)
R ÷ S
与 S 中所有元组都匹配的 R 中的部分

1.2 扩展运算

运算
说明
自然连接(⋈)
基于公共属性等值连接,去除重复列
θ连接
基于任意条件的连接
外连接
保留不匹配的行(左/右/全外连接)
半连接
返回 R 中与 S 有匹配的元组

高频考点:选择是行操作,投影是列操作。自然连接 = 等值连接 + 去重复列。除法运算常用于"全部""所有"类查询。

考点 2:函数依赖与规范化理论(核心必考)

2.1 函数依赖类型

类型
定义
符号
完全函数依赖
X→Y,且 X 的任何真子集不能决定 Y
X →F Y
部分函数依赖
X→Y,但 X 的某个真子集也能决定 Y
X →P Y
传递函数依赖
X→Y,Y→Z,但 Y 不能决定 X
X →T Z
多值依赖
X→→Y,Y 的值仅取决于 X
X →→ Y

2.2 规范化级别(递进关系)

范式
条件
消除的问题
1NF
所有属性都是原子值(不可再分)
重复组
2NF
满足 1NF + 消除非主属性对候选键的部分函数依赖
部分依赖导致的冗余
3NF
满足 2NF + 消除非主属性对候选键的传递函数依赖
传递依赖导致的冗余
BCNF
每个决定因素都包含候选键
主属性间的依赖问题
4NF
消除非平凡的多值依赖
多值依赖导致的冗余

记忆口诀:1NF 原子性 → 2NF 消部分 → 3NF 消传递 → BCNF 决定因素含键

2.3 规范化分析示例

例题:关系 R(A, B, C, D),函数依赖集 F = {A→B, B→C, A→D}

分析

  • 候选键:A(A 可以决定所有其他属性)
  • 1NF:满足(假设属性都是原子的)
  • 2NF:满足(候选键 A 是单属性,不存在部分依赖)
  • 3NF:检查传递依赖:A→B, B→C,存在传递依赖 A→B→C
  • 结论
     R 满足 2NF,不满足 3NF

分解为 3NF:R1(A, B, D), R2(B, C)

2.4 反规范化(了解)

反规范化通过有意引入冗余来提高查询性能:

  • 增加冗余列
  • 增加派生列
  • 表合并
  • 表分割(水平/垂直)

考点:反规范化以提高查询性能为目的,但会增加更新异常风险。

考点 3:E-R 模型

3.1 E-R 图基本元素

元素
图形
说明
实体
矩形
客观存在的事物
属性
椭圆
实体的特征
联系
菱形
实体间的关系
多值属性
双椭圆
可取多个值的属性
派生属性
虚线椭圆
可推导的属性
弱实体
双矩形
依赖其他实体存在

3.2 联系类型

类型
说明
示例
1:1
一对一
一个班级一个班主任
1:n
一对多
一个部门多个员工
m:n
多对多
学生和课程

3.3 E-R 图向关系模式转换规则

联系类型
转换方式
1:1
可合并到任一实体对应的关系,或独立成关系
1:n
合并到 n 端对应的关系,加入 1 端的主键作为外键
m:n
必须独立成一个新关系,包含两端的主键作为联合主键

考点 4:事务与并发控制

4.1 事务的 ACID 特性

特性
英文
含义
原子性
Atomicity
事务要么全做,要么全不做
一致性
Consistency
事务前后数据库状态一致
隔离性
Isolation
并发事务互不干扰
持久性
Durability
提交后修改永久保存

4.2 并发问题

问题
说明
丢失更新
两个事务同时修改同一数据,后提交者覆盖前者的修改
脏读
读取了未提交事务的数据(该事务后来回滚了)
不可重复读
同一事务中两次读取同一数据,结果不同
幻读
同一事务中两次范围查询,结果行数不同

4.3 隔离级别(从低到高)

隔离级别
脏读
不可重复读
幻读
Read Uncommitted
可能
可能
可能
Read Committed
不可能
可能
可能
Repeatable Read
不可能
不可能
可能
Serializable
不可能
不可能
不可能

4.4 封锁协议

锁类型
共享锁(S 锁)
排他锁(X 锁)
用途
读操作
写操作
兼容性
S 与 S 兼容
X 与任何锁不兼容

两阶段封锁协议(2PL)

  1. 扩展阶段
    只加锁,不释放锁
  2. 收缩阶段
    只释放锁,不加锁

高频考点:2PL 保证事务调度的可串行化,但不能防止死锁。

考点 5:分布式数据库与 NoSQL

5.1 CAP 定理

分布式系统无法同时满足以下三个特性(最多满足两个):

特性
含义
C
(Consistency)
一致性:所有节点数据一致
A
(Availability)
可用性:每个请求都能得到响应
P
(Partition tolerance)
分区容错性:网络分区时系统仍能运行

三种取舍:CP(强一致)、AP(高可用)、CA(单节点,不分区)

5.2 NoSQL 分类

类型
特点
代表产品
键值
简单高效
Redis、Memcached
文档
半结构化数据
MongoDB、CouchDB
列族
大规模数据分析
HBase、Cassandra
关系密集型数据
Neo4j、JanusGraph

考点 6:数据仓库

数据仓库四大特征

  1. 面向主题
    围绕业务主题组织
  2. 集成性
    来自多个数据源的数据整合
  3. 非易失性
    数据一旦进入不再修改
  4. 时变性
    数据随时间变化

OLAP vs OLTP

特征
OLTP(联机事务处理)
OLAP(联机分析处理)
操作
短事务、频繁增删改
复杂查询、聚合分析
数据量
当前数据
历史数据
用户
操作人员
决策人员

三、历年真题解析

【真题 2020 年·综合知识】

题目:关系 R(A,B,C,D),存在函数依赖 {A→B, B→C, C→D},则 R 最高属于(  )。

A. 1NF
B. 2NF
C. 3NF
D. BCNF

答案:B

解析:候选键为 A。A→B, B→C, C→D,存在传递依赖 A→B→C 和 A→B→C→D。消除了部分依赖(因候选键为单属性),但不满足 3NF(存在传递依赖)。所以最高属于 2NF。

【真题 2022 年·综合知识】

题目:在并发控制中,两阶段封锁协议可以保证(  )。

A. 不会发生死锁
B. 调度的可串行化
C. 不会发生级联回滚
D. 事务的原子性

答案:B

解析:两阶段封锁协议(2PL)的核心结论是保证冲突可串行化调度。但 2PL 不能防止死锁(A 错),不能防止级联回滚(C 错,严格 2PL 才能),原子性由恢复管理器保证(D 错)。

【真题 2023 年·综合知识】

题目:在 E-R 模型中,两个实体间的 m:n 联系在转换为关系模式时,应该(  )。

A. 合并到一个实体对应的关系中
B. 独立转换为一个新的关系
C. 不需要转换
D. 转换为一个属性

答案:B

解析:m:n(多对多)联系必须独立转换为一个新的关系,该关系包含两端实体的主键作为外键,并组成联合主键。1:1 和 1:n 联系可以合并到相关实体的关系中。

考点 7:数据库设计阶段

数据库设计六个阶段

阶段
输出
需求分析
数据流图、数据字典
概念结构设计
E-R 图
逻辑结构设计
关系模式、规范化
物理结构设计
存储结构、索引设计
数据库实施
建库、加载数据
运行与维护
监控、调优、备份

考点 8:并发控制与恢复

数据库恢复技术

技术
说明
日志文件
记录所有事务操作
检查点
定期将缓存写入磁盘
数据库镜像
实时复制到备用数据库
备份与恢复
全量/增量/差异备份

ARIES 恢复算法:分析→重做→撤销三阶段

考点 9:分布式数据库

分布式数据库特点

  • 数据分布性:数据存储在多个节点
  • 逻辑整体性:对用户透明
  • 场地透明性:用户不知道数据存储位置
  • 复制透明性:用户不知道数据是否复制

分布式事务管理

  • 两阶段提交(2PC):准备阶段 + 提交阶段
  • 三阶段提交(3PC):解决 2PC 的阻塞问题

三、补充历年真题解析

【真题 2019 年·综合知识】

题目:关系 R(A,B,C,D),函数依赖集 F={AB→C, C→D, D→A},则 R 的候选键为(  )。

A. AB     B. BC     C. AB 和 BC     D. AB、BC 和 BD

答案:D

解析:AB→C→D→A,AB 可决定所有属性;BC→C→D→A,BC 可决定所有;BD→D→A,AB→C,BD 可决定所有。因此候选键为 AB、BC、BD。

【真题 2021 年·综合知识】

题目:以下关于分布式数据库透明性的叙述中,不正确的是(  )。

A. 分片透明性是指用户不知道数据如何分片
B. 位置透明性是指用户不知道数据存储在哪个场地
C. 局部映像透明性是指用户不知道局部数据库的 DBMS 类型
D. 复制透明性是指用户不知道数据是否有副本

答案:C

解析:局部映像透明性(也称局部DBMS透明性)是指用户不需要知道局部场地使用的是哪种 DBMS,而不是不知道 DBMS 类型这个表述。C 选项表述不够准确。

【真题 2023 年·综合知识】

题目:在分布式事务中,两阶段提交协议(2PC)的主要缺点是(  )。

A. 无法保证原子性
B. 存在阻塞问题
C. 不支持分布式环境
D. 无法实现数据一致性

答案:B

解析:2PC 的主要缺点是阻塞问题——如果协调者在第二阶段崩溃,参与者会一直等待。3PC 通过引入超时机制缓解了这个问题。2PC 能保证原子性和一致性,且专门用于分布式环境。

考点 10:数据库三级模式

模式
说明
对应
外模式
用户视图,每个用户看到的数据视图
视图
概念模式
全局逻辑结构,所有用户共享
基本表
内模式
物理存储结构
存储文件

两级映像

  • 外模式/概念模式映像:保证逻辑独立性
  • 概念模式/内模式映像:保证物理独立性

高频考点:三级模式 + 两级映像 = 数据独立性。逻辑独立性通过外/概念映像保证,物理独立性通过概念/内映像保证。

考点 11:ORM 访问接口

ORM(Object-Relational Mapping):对象关系映射,解决面向对象与关系数据库的“阻抗不匹配”问题。

ORM 框架
语言
特点
Hibernate
Java
功能强大,配置复杂
MyBatis
Java
半自动,SQL 灵活
Entity Framework
.NET
集成度高
SQLAlchemy
Python
灵活,支持声明式和命令式

ORM 优缺点

  • 优点:减少样板代码、数据库无关、对象化操作
  • 缺点:复杂查询性能低、学习成本、N+1 查询问题

考点 12:NoSQL 体系框架

类型
数据模型
特点
代表
CAP 侧重
键值
Key-Value
极高读写性能
Redis
AP
文档
JSON/BSON
灵活模式
MongoDB
CP
列族
列存储
大规模分析
HBase
AP
节点+边
关系查询
Neo4j
CP
时序
时间序列
IoT 数据
InfluxDB
AP

NoSQL vs 关系型数据库选型

场景
推荐
理由
事务处理
关系型
ACID 保证
社交网络
图数据库
关系查询高效
日志存储
文档型
灵活模式
缓存
键值
极高读写性能
时序数据
时序库
专用优化

三、补充历年真题解析

真题 2020 年·综合知识

题目:数据库三级模式中,保证数据逻辑独立性的是(  )。

A. 外模式     B. 概念模式
C. 外模式/概念模式映像   D. 概念模式/内模式映像

答案:C

解析:逻辑独立性是指概念模式改变时,通过修改外模式/概念模式映像,使外模式不变,从而应用程序不变。物理独立性由概念模式/内模式映像保证。

真题 2022 年·综合知识

题目:以下关于 NoSQL 数据库的叙述中,正确的是(  )。

A. NoSQL 数据库完全取代了关系型数据库
B. 键值数据库适合复杂查询场景
C. 图数据库擅长处理高度关联的数据
D. NoSQL 数据库都支持 ACID 事务

答案:C

解析:图数据库通过节点和边建模关系数据,擅长处理社交网络、推荐系统等高度关联数据场景。NoSQL 并不取代关系型数据库(A 错),键值库不支持复杂查询(B 错),大部分 NoSQL 不支持完整 ACID(D 错)。

真题 2019 年·综合知识

题目:关系 R(A,B,C) 和 S(B,C,D) 进行自然连接后,结果关系的属性个数为(  )。

A. 4  B. 5  C. 6  D. 7

答案:A

解析:自然连接会自动消除重复的公共属性。R 有 3 个属性,S 有 4 个属性,公共属性 B、C 重复,因此结果属性个数 = 3+4-2 = 5… 不对,实际结果是 (A,B,C,D) 共 4 个属性。B、C 只保留一份,加上 A 和 D,共 4 个。

真题 2021 年·综合知识

题目:若关系 R 的候选键为 (A,B),则以下函数依赖中,属于部分函数依赖的是(  )。

A. (A,B)→C  B. A→C  C. (A,B)→D  D. B→E

答案:B

解析:部分函数依赖是指非主属性依赖于候选键的一部分。A→C 中,C 只依赖于候选键 (A,B) 的一部分 A,因此是部分函数依赖。这会导致 2NF 违例。

真题 2022 年·综合知识

题目:以下关于数据库事务隔离级别的叙述中,正确的是(  )。

A. READ UNCOMMITTED 可以避免脏读
B. READ COMMITTED 可以避免不可重复读
C. REPEATABLE READ 可以避免幻读
D. SERIALIZABLE 可以避免所有并发问题

答案:D

解析:SERIALIZABLE 是最高的隔离级别,可以避免脏读、不可重复读和幻读。READ UNCOMMITTED 可能出现脏读(A 错),READ COMMITTED 可能出现不可重复读(B 错),REPEATABLE READ 可能出现幻读(C 错)。

真题 2023 年·综合知识

题目:在分布式数据库中,CAP 定理指出分布式系统最多只能同时满足三个特性中的两个,这三个特性是(  )。

A. 一致性、可用性、分区容错性
B. 一致性、可靠性、可扩展性
C. 可用性、安全性、分区容错性
D. 一致性、可用性、安全性

答案:A

解析:CAP 定理的三个特性是 Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性)。由于网络分区不可避免,实际只能在 CP(一致+分区容错)和 AP(可用+分区容错)之间选择。

真题 2022 年·案例分析

题目:某电商系统的订单表包含字段:订单号、用户ID、商品ID、商品名称、数量、单价、订单日期。该表存在数据冗余问题。请分析并规范化到 3NF。

参考答案

问题分析

  • 候选键:(订单号, 商品ID)
  • 部分依赖:商品名称依赖于商品ID(部分依赖)
  • 传递依赖:无

规范化过程

1NF 原始表:订单(订单号, 用户ID, 商品ID, 商品名称, 数量, 单价, 订单日期)

2NF 拆分(消除部分依赖):

  • 订单主表(订单号, 用户ID, 订单日期)
  • 订单明细(订单号, 商品ID, 数量, 单价, 商品名称)

3NF 拆分(消除传递依赖):

  • 订单主表(订单号, 用户ID, 订单日期)
  • 订单明细(订单号, 商品ID, 数量, 单价)
  • 商品信息(商品ID, 商品名称)

三、补充考点

考点 11:分布式数据库架构

架构
说明
特点
主从复制
主库写,从库读
读写分离,主库单点
主主复制
多主互相同步
高可用,冲突解决复杂
分库分表
按规则拆分到多库
水平扩展,跨库查询难
NewSQL
分布式关系型
强一致+水平扩展(TiDB、CockroachDB)

分片策略:Hash 分片、范围分片、目录分片

考点 12:NoSQL 数据库对比

类型
代表产品
数据模型
适用场景
键值
Redis、Memcached
key-value
缓存、会话
文档
MongoDB、CouchDB
JSON/BSON
半结构化数据
列族
HBase、Cassandra
列族
大规模时序数据
Neo4j、JanusGraph
节点+边
关系网络、推荐

BASE 特性:Basically Available(基本可用)+ Soft State(软状态)+ Eventually Consistent(最终一致)

考点 13:数据库索引优化

索引类型
说明
适用
B+树索引
平衡多路搜索树
范围查询、等值查询
Hash 索引
哈希表
等值查询(不支持范围)
倒排索引
文档→词项映射
全文搜索
复合索引
多列组合
遵循最左前缀原则

最左前缀原则:复合索引 (A,B,C) 可支持 A、AB、ABC 查询,不支持 B、C、BC 查询

真题 2023 年·综合知识

题目:以下关于 NoSQL 数据库的叙述中,正确的是(  )。

A. NoSQL 数据库不支持任何事务
B. 图数据库最适合处理社交网络关系查询
C. 所有 NoSQL 数据库都保证强一致性
D. NoSQL 数据库将完全取代关系型数据库

答案:B

解析:图数据库(如 Neo4j)专门处理节点和边的关系,非常适合社交网络、推荐系统等关系查询场景。部分 NoSQL 支持事务(A 错),NoSQL 通常是最终一致性(C 错),NoSQL 与关系型互补而非替代(D 错)。

真题 2021 年·综合知识

题目:某复合索引为 (A, B, C),以下查询中不能使用该索引的是(  )。

A. WHERE A=1
B. WHERE A=1 AND B=2
C. WHERE B=2 AND C=3
D. WHERE A=1 AND B=2 AND C=3

答案:C

解析:根据最左前缀原则,复合索引 (A,B,C) 只能支持以 A 开头的查询。WHERE B=2 AND C=3 跳过了 A,无法使用索引。A、B、D 都符合最左前缀原则。


三、补充考点(二)

考点 14:SQL 优化与查询计划

查询优化器类型

类型
说明
优缺点
基于规则(RBO)
按预定义规则优化
简单但不够智能
基于代价(CBO)
根据统计信息计算最优计划
精确但依赖统计信息

常见 SQL 优化技巧

技巧
说明
避免 SELECT *
只查需要的列,减少 I/O
避免全表扫描
合理使用索引
避免在 WHERE 中用函数
函数会导致索引失效
用 EXISTS 代替 IN
对于大表子查询更高效
避免 NULL 判断
用 NOT NULL + 默认值代替
分页优化
延迟关联或游标分页

EXPLAIN 分析要点

  • type:访问类型(ALL < index < range < ref < eq_ref < const)
  • rows:预估扫描行数
  • Extra:Using filesort(需排序)、Using temporary(需临时表)

考点 15:数据库备份与恢复策略

备份类型

类型
说明
恢复方式
全量备份
备份所有数据
单独恢复
增量备份
只备份上次备份后的变化
全量 + 增量
差异备份
备份上次全量后的变化
全量 + 差异
日志备份
备份事务日志
时间点恢复

恢复策略对比

策略
RPO(数据丢失)
RTO(恢复时间)
成本
全量+日志
近零
较长
主从复制
近零
多活架构
极短
很高
冷备份
很长

数据库容灾架构

  • 同城双活:两个机房同时服务,RPO≈0
  • 异地灾备:主站写,异地只读备份
  • 三地五中心:金融级容灾标准

考点 16:分布式事务模式

Saga 模式

类型
说明
优缺点
编排式(Choreography)
服务间事件驱动
松耦合,难追踪
协调式(Orchestration)
中心协调器控制
易管理,协调器单点

Saga 补偿原则:每个本地事务都有对应的补偿事务,失败时按相反顺序执行补偿。

TCC 模式(Try-Confirm-Cancel)

阶段
操作
说明
Try
资源预留
冻结资源,不实际提交
Confirm
确认提交
执行实际业务
Cancel
取消释放
释放预留资源

本地消息表:将分布式事务转化为本地事务 + 消息通知,实现最终一致性。

考点 17:数据库连接池

连接池工作原理

  1. 初始化时创建一定数量的连接
  2. 应用获取连接时从池中分配
  3. 使用完毕后归还连接到池中
  4. 定期检测无效连接并替换

连接池配置参数

参数
说明
建议值
最小连接数
池中保持的最少连接
5-10
最大连接数
池中允许的最多连接
CPU 核数 × 2 + 磁盘数
超时时间
获取连接等待超时
5-30 秒
空闲时间
空闲连接回收时间
300 秒

常见连接池:HikariCP(Java 最快)、Druid(阿里,监控强)、C3P0、DBCP

考点 18:数据迁移与 ETL

ETL 过程

阶段
活动
工具示例
Extract
从源系统抽取数据
Sqoop、DataX、Canal
Transform
清洗、转换、标准化
Kettle、Informatica
Load
加载到目标系统
Bulk Insert、COPY

数据迁移策略

策略
说明
适用场景
停机迁移
停止服务后一次性迁移
数据量小、可停机
双写迁移
新旧系统同时写入
数据量大、不能停机
灰度迁移
逐步切换流量
风险控制

数据迁移风险

  • 数据不一致:源端和目标端格式差异
  • 数据丢失:迁移过程中异常
  • 停机时间:迁移窗口不够
  • 回滚困难:迁移后发现问题的回滚

考点 19:数据库安全与审计

数据库安全技术

技术
说明
访问控制
GRANT/REVOKE 权限管理
数据脱敏
对敏感数据进行掩码处理
行级安全
按行控制访问权限
审计日志
记录所有数据访问和变更
加密存储
对敏感数据加密存储

数据脱敏方式

方式
说明
示例
遮蔽
替换部分字符
手机号 138****1234
替换
用假数据替换
真实姓名换为虚拟名
泛化
降低精度
年龄 25→20-30
置空
删除敏感数据
删除身份证号

真题 2023 年·综合知识

题目:以下关于 SQL 优化的叙述中,正确的是(  )。

A. SELECT * 比指定列查询效率更高
B. 在 WHERE 条件中使用函数不会导致索引失效
C. 基于代价的优化器(CBO)不需要统计信息
D. 子查询总是比连接查询效率更高

答案:A

解析:SELECT * 会返回所有列,增加 I/O 和网络传输,效率低于指定列查询。WHERE 中使用函数会导致索引失效(B 错),CBO 需要统计信息来估算代价(C 错),连接查询通常比子查询效率更高(D 错)。

真题 2022 年·综合知识

题目:以下关于数据库备份策略的叙述中,不正确的是(  )。

A. 全量备份可以单独用于恢复
B. 增量备份需要依赖全量备份进行恢复
C. 差异备份是备份上次增量备份后的变化
D. 日志备份可以实现时间点恢复

答案:C

解析:差异备份是备份上次全量备份后的变化,而不是上次增量备份后的变化。全量备份可单独恢复(A 正确),增量备份需依赖全量(B 正确),日志备份记录事务日志可实现精确的时间点恢复(D 正确)。

真题 2021 年·综合知识

题目:在 Saga 分布式事务模式中,以下叙述正确的是(  )。

A. Saga 模式保证强一致性
B. 每个本地事务都有对应的补偿事务
C. Saga 模式不需要协调器
D. Saga 补偿失败时不需要处理

答案:B

解析:Saga 模式的核心是每个本地事务都有对应的补偿事务,失败时按相反顺序执行补偿。Saga 只保证最终一致性(A 错),编排式不需要协调器但协调式需要(C 太绝对),补偿失败是严重问题需要处理(D 错)。

真题 2020 年·综合知识

题目:以下关于 TCC 事务模式的叙述中,正确的是(  )。

A. TCC 只包含 Try 和 Confirm 两个阶段
B. TCC 的 Cancel 阶段用于释放预留资源
C. TCC 比 Saga 模式对业务侵入性更小
D. TCC 不需要处理幂等性

答案:B

解析:TCC 包含 Try-Confirm-Cancel 三个阶段,Cancel 用于释放 Try 阶段预留的资源。A 错,C 错(TCC 侵入性更大,每个业务都要实现三个阶段),D 错(TCC 各阶段都可能重试,必须幂等)。

真题 2019 年·综合知识

题目:以下关于数据库连接池的叙述中,不正确的是(  )。

A. 连接池可以避免频繁创建和销毁连接的开销
B. 连接池的最大连接数越大越好
C. 连接池中的连接需要定期检测有效性
D. HikariCP 是一种高性能数据库连接池

答案:B

解析:连接池最大连接数不是越大越好,过多的连接会消耗数据库服务器资源(CPU、内存),反而降低性能。建议值通常为 CPU 核数×2+磁盘数。连接池避免频繁创建销毁(A 正确),需要定期检测(C 正确),HikariCP 是 Java 生态最快的连接池(D 正确)。

真题 2023 年·综合知识

题目:在数据迁移过程中,以下哪种策略适合数据量大且不能停机的场景?(  )

A. 停机迁移
B. 双写迁移
C. 直接替换
D. 全量导入

答案:B

解析:双写迁移在迁移期间同时写入新旧系统,逐步切换流量,适合数据量大且不能停机的场景。停机迁移需要停止服务(A 错),直接替换风险太大(C 错),全量导入需要停机(D 错)。

真题 2022 年·综合知识

题目:以下关于数据脱敏的叙述中,正确的是(  )。

A. 数据脱敏会改变原始数据的存储结构
B. 遮蔽脱敏是将部分字符替换为特定符号
C. 泛化脱敏会删除原始数据
D. 数据脱敏只对非生产环境有意义

答案:B

解析:遮蔽脱敏是将部分字符替换为特定符号(如手机号 138****1234),保留数据格式但隐藏敏感信息。脱敏不改变存储结构(A 错),泛化是降低精度而非删除(C 错),生产环境也需要脱敏(D 错)。

真题 2021 年·综合知识

题目:某数据库系统采用 B+树索引,以下关于 B+树的叙述中,正确的是(  )。

A. B+树的所有数据都存储在非叶子节点
B. B+树的叶子节点通过指针相连,支持范围查询
C. B+树只支持等值查询
D. B+树的高度与数据量无关

答案:B

解析:B+树的叶子节点通过双向链表相连,支持高效的范围查询。B+树的数据都存储在叶子节点(A 错),支持等值和范围查询(C 错),高度与数据量相关(D 错)。


四、高频易错点归纳

易错点
正确理解
2NF 消除传递依赖
2NF 消除部分依赖,3NF 才消除传递依赖
规范化程度越高越好
过高的范式增加连接开销,实际中常用 3NF
2PL 能防止死锁
2PL 保证可串行化,但不能防止死锁
CAP 三者可以兼得
分布式系统最多满足 CAP 中的两个
脏读和不可重复读是一回事
脏读读的是未提交数据,不可重复读读的是已提交但变化的数据
SELECT * 效率更高
指定列查询效率更高,减少 I/O 和网络传输
连接池越大越好
过多连接反而降低性能,建议 CPU×2+磁盘数
Saga 保证强一致性
Saga 只保证最终一致性,不保证强一致

五、本章小结

数据库设计是高频考点,重点掌握:

  1. 关系代数
    选择和投影的区别,自然连接的计算
  2. 规范化
    1NF→2NF→3NF→BCNF 的递进条件和消除内容
  3. E-R 模型
    联系类型的转换规则
  4. 事务 ACID
    四个特性的含义
  5. 并发控制
    隔离级别、封锁协议、2PL
  6. CAP 定理
    三种取舍的选择
  7. 分布式数据库
    主从复制、分库分表、NewSQL
  8. NoSQL
    键值/文档/列族/图数据库的适用场景
  9. 索引优化
    B+树/Hash/倒排索引,最左前缀原则
  10. SQL 优化
    CBO/RBO、EXPLAIN 分析、常见优化技巧
  11. 备份恢复
    全量/增量/差异备份,RPO/RTO 概念
  12. 分布式事务
    Saga 编排/协调、TCC 三阶段、本地消息表
  13. 连接池
    工作原理、配置参数、常见产品
  14. 数据迁移
    停机/双写/灰度迁移策略,ETL 流程
  15. 数据库安全
    访问控制、数据脱敏、审计日志

抱歉,评论功能暂时关闭!