王珊数据库·第十一章

文章介绍了并发操作可能导致的数据不一致问题,如丢失修改、不可重复读和脏读。封锁是解决这些问题的一种方法,包括排他锁(X锁)和共享锁(S锁)。封锁协议分为三级,一级封锁协议防止丢失修改,二级封锁协议进一步防止脏读,而三级封锁协议则能防止不可重复读问题。

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

并发控制概述

并发操作带来的数据不一致的三种情况

  • 丢失修改

  • 不可重复读

  • 脏读

封锁

封锁的类型

排他锁(X锁,Exclusive Lock)

事务T对数据对象加X锁后,只能读写,其他事务无法加锁,无法读写。

共享锁(S锁,Shared Lock)

事务T对数据对象加S锁,T可读不可写,其他事务可以对R加S锁,但不可以加X锁。这保证了事务S释放S锁之前,其他事务只可以读R,但是不能修改。

三级封锁协议

一级封锁协议

修改X之前先对其加X锁,直到事务结束后才释放。

一级封锁协议可以防止丢失修改。

二级封锁协议

一级封锁协议+读之前先加S锁读后释放

防止丢失数据和脏读

三级封锁协议

一级封锁协议+事务读数据之前加锁,直到事务结束释放。

防止丢失修改、脏读、不可重复读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值