找回密码
 立即注册
查看: 22|回复: 0

数据词典:两段封锁协议(Two Stage Lock Agreement)

[复制链接]

656

主题

70

回帖

2291

积分

管理员

积分
2291
发表于 2025-11-6 11:03:23 | 显示全部楼层 |阅读模式
为了解决并发控制问题,在关系数据库系统中,引入了两段封锁协议。封锁是指给定事务T1在对某个数据对象D1进行操作之前,先向数据库系统发出请求,并对D1加锁;成功加锁之后,该事务T1就得到对此数据对象D1的控制权;在T1释放该锁之前,其他事务(如T2T3等)无法更新数据对象D1。关系数据库系统通常提供多种类型的封锁。事务对数据对象加锁后拥有何种控制权是由封锁的类型决定的。封锁的基本类型有以下两种:
1.X锁:排他锁,事务T1对数据对象D1加了X锁之后,只要未释放该锁,其他事务不能对数据对象D1另加任何类型的锁。
2.S锁:共享锁,事务T1对数据对象D1加了S锁之后,虽然未释放S锁,其他事务也可以对D1S锁,但不能加X锁。
在关系数据库中,两段锁协议是指事务必须分成两个阶段对数据对象进行控制:
1.加锁阶段:在该阶段可以进行加锁操作。在对任何数据进行读操作之前要申请并获得S锁,而在进行写操作之前要申请并获得X锁。如果加锁不成功,则事务进入等待状态,直到加锁成功才继续执行。
2.解锁阶段:当事务释放了一个封锁以后,事务进入解锁阶段,在该阶段只能进行解锁操作不能再进行加锁操作。
通常,在关系数据库中,两段封锁协议的实现方法如下:事务开始后就处于加锁阶段,一直到执行ROLLBACKCOMMIT之前都是加锁阶段。ROLLBACKCOMMIT使事务进入解锁阶段,即在ROLLBACKCOMMIT模块中DBMS释放所有封锁。
【出处】朝乐门.数据科学,清华大学出版社,20168月第1.

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|全数联人才测评中心 ( 京ICP备2024094898号 )

GMT+8, 2025-11-18 06:02 , Processed in 0.094199 second(s), 20 queries .

版权所有: 全数联人才测评(北京)中心

友情链接: 中华全国数字人才培育联盟 全数联人才测评中心学习平台 全数联人才测评中心存证平台 全数联人工智能专员认证中心

快速回复 返回顶部 返回列表