软考高级系统架构设计师备考(十八):数据库系统---事务管理与并发控制
核心考点包括:
-
事务管理与ACID特性
-
事务隔离级别
-
并发控制机制
-
数据库安全性
-
数据库备份策略
-
数据库故障与恢复
本文将系统讲解这些知识点,并配合典型例题帮助理解。
一、事务管理
1 事务的定义
事务是数据库中一组逻辑操作的集合,这些操作要么全部成功,要么全部失败。
2 ACID特性
1)原子性(Atomicity)
事务不可分割,要么全部执行,要么全部回滚。
2)一致性(Consistency)
事务执行前后数据库必须满足约束条件。
3)隔离性(Isolation)
多个事务之间互不干扰。
4)持久性(Durability)
事务提交后结果永久保存。
例题
以下属于事务特性的是:
A. 可恢复性 B. 原子性 C. 并发性 D. 高可用
答案:B
二、事务状态
事务执行过程中的状态:
-
活动(Active)
-
部分提交(Partially Committed)
-
提交(Committed)
-
失败(Failed)
-
终止(Terminated)
状态转换
开始 → 活动 → 提交 → 终止
↓
失败 → 回滚 → 终止
三、事务隔离级别
事务隔离级别用于控制并发事务之间的影响。
1 四种隔离级别
| 隔离级别 | 脏读 | 不可重复读 | 幻读 |
|---|---|---|---|
| 读未提交(Read Uncommitted) | 可能 | 可能 | 可能 |
| 读已提交(Read Committed) | 不允许 | 可能 | 可能 |
| 可重复读(Repeatable Read) | 不允许 | 不允许 | 可能 |
| 串行化(Serializable) | 不允许 | 不允许 | 不允许 |
2 三种并发问题
1)脏读
读取未提交数据
2)不可重复读
同一数据多次读取结果不同
3)幻读
查询结果条数变化
例题
在"读已提交"隔离级别下,可能发生:
A. 脏读 B. 不可重复读 C. 不会发生任何问题 D. 丢失更新
答案:B
四、并发控制
1 并发问题总结
| 问题 | 描述 |
|---|---|
| 丢失更新 | 更新被覆盖 |
| 脏读 | 读未提交数据 |
| 不可重复读 | 数据变化 |
| 幻读 | 记录数变化 |
2 封锁机制
锁的类型
-
共享锁(S锁)------读锁
-
排他锁(X锁)------写锁
锁兼容性
| S锁 | X锁 | |
|---|---|---|
| S锁 | ✔ | ✖ |
| X锁 | ✖ | ✖ |
3 两段锁协议(2PL)
规则:
加锁阶段:只能加锁
解锁阶段:只能解锁
作用:
保证调度的可串行性
例题
两段锁协议的主要作用是:
A. 提高并发性 B. 保证一致性 C. 保证可串行化 D. 防止死锁
答案:C
五、数据库安全性
1 安全目标
-
保密性
-
完整性
-
可用性
2 安全控制方法
1)身份认证
用户登录验证
2)权限控制
GRANT SELECT ON 表 TO 用户;
REVOKE SELECT ON 表 FROM 用户;
3)视图控制
限制用户访问部分数据
4)数据加密
防止数据泄露
例题
以下属于数据库安全机制的是:
A. 日志恢复 B. 权限控制 C. 索引优化 D. 查询优化
答案:B
六、数据库备份
1 备份的目的
保证数据安全,支持恢复。
2 常见备份方式
1)完全备份
备份全部数据
2)增量备份
备份变化部分
3)差量备份
备份自上次完全备份后的变化
对比
| 类型 | 恢复速度 | 存储成本 |
|---|---|---|
| 完全备份 | 快 | 高 |
| 增量备份 | 慢 | 低 |
| 差量备份 | 中 | 中 |
例题
恢复最复杂的是:
A. 完全备份 B. 增量备份 C. 差量备份 D. 日志备份
答案:B
七、数据库故障
1 故障类型
1)事务故障
程序错误、用户中断
2)系统故障
断电、系统崩溃
3)介质故障
磁盘损坏
八、数据库恢复
1 日志机制
数据库通过日志记录操作:
Write-Ahead Logging(先写日志)
2 Undo / Redo
Undo
撤销未完成事务
Redo
重做已提交事务
恢复原则
已提交 → Redo
未提交 → Undo
例题
系统崩溃后:
T1 已提交 T2 未提交
恢复策略是:
A. T1 Undo,T2 Redo B. T1 Redo,T2 Undo C. 全部Redo D. 全部Undo
答案:B
九、检查点
作用:
-
减少恢复时间
-
限制日志扫描范围
十、综合例题
例题
事务执行如下:
T1: 写A(未提交)
T2: 读取A
问:
出现的问题是?
分析
T2读取了T1未提交数据
答案
脏读
十一、软考高频考点总结
事务管理:
-
ACID特性
-
事务状态
事务隔离级别:
-
四级隔离
-
三大并发问题
并发控制:
-
锁机制
-
两段锁协议
安全性:
-
GRANT / REVOKE
-
视图
备份:
- 完全 / 增量 / 差量
恢复:
-
Undo / Redo
-
检查点
十二、总结
数据库运行机制是软考高级系统架构设计师考试中的重点内容。
本文重点讲解了:
-
事务管理与ACID
-
事务隔离级别
-
并发控制机制
-
数据库安全性
-
数据备份策略
-
故障与恢复机制