数据库知识整理 - 并发控制(封锁、两段锁协议、意向锁)

本文深入探讨数据库并发控制,分析并发操作带来的数据不一致性问题,如丢失修改、不可重复读和读脏数据。重点讨论了封锁机制,包括排他锁(X锁)和共享锁(S锁),以及封锁协议的一到三级。同时介绍了活锁和死锁的概念,以及解决死锁的策略。此外,还讲解了两段锁协议确保并发调度的可串行性,并讨论了封锁的粒度和多粒度封锁,特别是意向锁在提高并发度中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要内容

两种基本封锁类型 

封锁协议

活锁

死锁

多粒度封锁

意向锁

锁的强度


 

前提

并发控制技术与前一篇提到的数据库恢复技术是主要的事务处理技术,同时并发控制机制和数据库恢复机制是数据库管理系统(DBMS)的重要组成部分。

单处理机系统中,事务的并行执行实际上是这些并行事务轮流交叉运行。这种并行执行方式称为交叉并发方式(interleaved concurrency)。虽然单处理机系统中的并行事务并没有真正地(物理上)并行运行,但是减少了处理机和各设备的空闲时间,提高了系统的效率。

多处理机系统中,当事务数小于处理机数时,每个处理机可以运行一个事务,实现真正意义上的并行运行。这种并行执行方式称为同时并发方式(simultaneous concurrency)

当多个用户并发地操作数据库时,就有可能出现多个事务同时存取同一数据的情况,这种情况可能会破坏事务的一致性和数据库的一致性,所以数据库管理系统(DBMS)必须提供并发控制机制。并发控制机制是衡量一个DBMS性能的重要标志之一。


 

并发操作带来的数据不一致性

以下三类数据不一致性的主要原因是并发操作破坏了事务的隔离性

1)丢失修改(lost update):

事务T1和T2先后读入同一数据并修改,T1先提交,T2后提交,T2提交的结果将覆盖T1的结果,导致T1的修改被丢失。

2)不可重复读(non-repeatable read):

事务T1读入

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值