数据库的S锁和X锁,两段锁协议
admin
2023-06-05 17:01:43
0
基本的封锁类型有两种:排它锁(X锁)和共享锁(S锁).所谓X锁,是事务T对数据A加上X锁时,只允许事务T读取和修改数据A,...所谓S锁,是事务T对数据A加上S锁时,其他事务只能再对数据A加S锁,而不能加X锁,直到T释放A上的S锁。
若事务T对数据对象A加了S锁,则T就可以对A进行读取,但不能进行更新(S锁因此又称为读锁),在T释放A上的S锁以前,其他事务可以再对A加S锁,但不能加X锁,从而可以读取A,但不能更新A.

两段锁协议:

数据库的两段锁协议是指所有事务必须分两个阶段对数据项进行加锁和解锁

1.扩展阶段

在对任何数据项的读、写之前,要申请并获得该数据项的封锁。

2.收缩阶段

每个事务中,所有的封锁请求必须先于解锁请求。

例如:事务T遵循两段锁协议,其封锁协议为:

BEGIN TRANSACTION;

LOCK(A);READ A; A := A + 100; WRITE A; LOCK(B); UNLOCK(A); READ(B), UNLOCK(B),;

COMMIT;     

可以证明:若并发执行的所有事务均遵守两段锁协议,则对这些并行事务的任何并行调度策略都是可串行化

需要说明的是,并发执行的所有事务若均遵守两段锁协议,只是这些事务的并行调度策略能可串行化的充分条件,不是必要条件。

两段锁协议与防止死锁的一次封锁法的区别:

一次封锁法要求事务必须一次对所有要使用到的数据项进行加锁,否则不能继续运行。

显然,一次封锁法符合两段锁协议,但是两段锁协议并不要求一次就要对所有需要用到的数据项进行加锁,因此遵守两段锁协议的事务有可能死锁


相关内容

热门资讯

原创 火... ## 这是一张MMX航天器的一个版本在火星轨道插入(MOI)期间的图像。图片来源:JAXA 火卫一...
“智在甬为 码上出彩”华为云企... 8月7日,“智在甬为 码上出彩”华为云企业快成长AI创新论坛在宁波正式举办。本次活动由宁波市软件行业...
原创 8... 近期,国内人工智能领域的巨头企业如阿里云、火山引擎及百度,在短短两个月内,密集地与同一家公司签署了深...
换电模式为什么要统一电池标准? 随着新能源汽车产业的迅猛发展,补能效率成为用户关注的核心痛点之一。相较于传统充电方式,电池更换技术能...
寻宝不用挖?一文了解给地球做“... 提到找矿,你脑海里是不是浮现出地质队员背着地质锤、翻山越岭、敲敲打打的辛苦画面?如今科技早已今非昔比...
中美登月竞赛白热化,Space... 嫦娥七号奔赴月球南极开展探测,美国“阿尔忒弥斯”计划继续推进,人类新一轮登月竞赛正在提速。目前,美国...
“婚外胚胎案”妻子回应起号质疑... 近日,“江苏无锡朱女士申请销毁丈夫婚外胚胎遭拒案”持续引发关注。今天,也就是2026年8月8日,是朱...
特朗普说很多人称他是最伟大总统... 当地时间8月6日,有记者在采访美国总统特朗普时提出,如果民主党人在中期选举后控制国会众议院,可能会再...
贿赂!性侵!霸凌!韩国体坛缘何... 韩国队在美加墨世界杯小组赛出局引发的韩国体坛震荡余波未了,韩国媒体又爆出一则有关韩国足球的惊天丑闻—...
vivo手机数据丢失或损坏 如果您的vivo手机数据丢失或损坏,以下是一些可能的解决步骤:1.立即停止使用手机:避免继续操作手机...