思维导图:
第11章 并发控制


11.1 并发控制概述

- 多用户数据库系统:允许多个用户同时访问和操作数据库。
- 事务的并行执行:为了提高资源利用率和系统效率,多个事务应该并行(并发)执行。
- 并发执行的方式:
- 单处理机系统:交叉并发方式,事务操作轮流执行。
- 多处理机系统:同时并发方式,多个处理机同时运行不同事务。
11.1.1 并发操作带来的问题
- 数据不一致性问题:多个事务同时访问同一数据可能导致数据不一致。
- 并发操作的问题:
- 丢失修改:一个事务的更新被另一个事务覆盖。
- 不可重复读:一个事务重读数据时发现数据变化(包括幻读现象)。
- 读“脏”数据:一个事务读取另一个未提交事务修改的数据。
11.1.2 并发控制的目的
- 保证事务隔离性:确保并发操作时一个事务不被其他事务干扰。
- 避免数据不一致性:防止丢失修改、不可重复读和读“脏”数据等问题。
- 平衡一致性和效率:在某些应用中,可以适当降低一致性要求以提高效率。
11.1.3 并发控制技术
- 封锁(Locking):阻止其他事务访问正在被一个事务操作的数据。
- 时间戳(Timestamp):基于时间顺序控制数据访问。
- 乐观控制法(Optimistic Scheduler):假设冲突少发生,事务结束时检查冲突。
- 多版本并发控制(MVCC):为每个读操作提供数据的一个快照,减少锁的需求。
注意点
- 理解并发控制的重要性:强调并发操作对数据库性能和一致性的影响。
- 并发问题的识别:识别并发操作可能引起的各种数据不一致问题。
- 选择合适的并发控制技术:根据不同的应用需求和数据库特性选择合适的并发控制策略。
易错点
- 混淆并发控制技术:可能会错误地理解不同并发控制技术的适用场景和原理。
- 过度依赖一种控制方法:可能会忽视根据实际情况选择最适合的并发控制方法。
- 忽视数据一致性和系统效率的平衡:在提高效率的同时可能会忽视数据的一致性,或者过分强调一致性而降低系统效率。
这几节的笔记强调了数据库并发控制在维护数据一致性、提高系统效率以及保证事务隔离性方面的关键作用。理解并正确应用各种并发控制技术对于设计和维护高性能的数据库系统至关重要。
总结:





重点
- 并发操作的必要性:多用户数据库系统允许多个事务并行执行,提高系统效率和资源利用率。
- 并发操作的问题:包括丢失修改、不可重复读和读“脏”数据等数据不一致性问题。
- 并发控制技术:封锁(Locking)、时间戳(Timestamp)、乐观控制法和多版本并发控制(MVCC)等。
难点
- 理解并发操作的问题:明白并发操作如何导致数据不一致性,以及这些问题的具体表现。
- 选择合适的并发控制技术:根据不同场景和需求选择最适合的并发控制策略。
易错点
- 混淆并发控制技术:可能会错误地理解不同并发控制技术的适用场景和工作原理。
- 过度依赖单一控制策略:可能会过分依赖某一种并发控制技术,而忽略其他更适合的策略。
- 忽视数据一致性和系统效率的平衡:在追求效率提升时可能会忽视数据一致性的保障,或者过度强调一致性而牺牲系统性能。