数据库的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;     

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

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

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

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

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


相关内容

热门资讯

巴基斯坦消息人士:美伊接近达成... 新华社伊斯兰堡5月23日电(记者杨恺)巴基斯坦官方消息人士23日告诉新华社记者,美国与伊朗接近达成一...
特朗普又说美伊“越来越接近”达... 新华社华盛顿5月23日电(记者黄强 徐剑梅)美国总统特朗普23日说,美国与伊朗的谈判“越来越接近”达...
非洲埃博拉疫情最大缺口:没有任... 当地时间5月23日,非洲疾控中心与世界卫生组织联合召开线上新闻发布会,针对刚果(金)和乌干达本轮暴发...
首位来自香港的航天员为何是她? 5月23日,神舟二十三号乘组名单公布,首位来自香港的航天员黎家盈名列其中。 5月24日晚,她将乘坐神...
原创 携... 前几天吃饭,隔壁桌两个人聊得挺大声,一个说自己用了快10年的号码,前阵子终于转网了,原本还担心麻烦,...
宁夏吴忠举办AIGC项目签约仪... 转自:新华财经 5月22日,宁夏吴忠市AIGC(人工智能生成内容)项目签约仪式暨产业沙龙活动在宁夏人...
2026年618期间手机性价比... 感谢各位的耐心等待,手上的工作暂时告一段落,终于可以腾出时间写文章了。2026年618性价比手机购买...
山西煤矿瓦斯爆炸事故造成82死... 新华社太原5月23日电(记者刘扬涛、原勋)记者从23日晚10点30分许召开的山西通洲集团留神峪煤矿瓦...
告别纸贴手写,会议室预约管理该... "这个会议室下午几点有人?" "不知道,去门口看看有没有贴条。" 这段对话在很多企业的日常里反复上演...
原创 够... 前两天一条新闻刷屏了——时隔54年,人类再次飞向月球。美国“阿耳忒弥斯2号”载人绕月任务发射升空,四...