千家信息网

数据库的S锁和X锁,两段锁协议

发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,基本的封锁类型有两种:排它锁(X锁)和共享锁(S锁).所谓X锁,是事务T对数据A加上X锁时,只允许事务T读取和修改数据A,...所谓S锁,是事务T对数据A加上S锁时,其他事务只能再对数据A加S锁,而不
千家信息网最后更新 2024年11月23日数据库的S锁和X锁,两段锁协议
基本的封锁类型有两种:排它锁(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;

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

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

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

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

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


事务 数据 封锁 数据项 阶段 条件 策略 死锁 更新 调度 数据库 必要 必要条件 两个 只是 对象 类型 A. 和解 收缩 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 我的世界开服务器需要具备什么 软件开发公司研发支出 移动通信网络技术是做什么的 杭州百世网络技术通讯录 落实意识行态和网络安全责任 百度公司网络安全宣讲 网络技术公司招聘英语作文 南阳市司法局网络安全培训会 液冷服务器柜 日本自动网络技术研究所 软件开发类好学吗 服务器租赁需要注意什么 h3c服务器带外管理口 关于银行网络安全的规定 在数据库安全控制中授权的对象 在联发科做软件开发 单品数据库 郑州养老院管理软件开发 重大节假日期间网络安全应急预案 数据库原理什么叫约束 重庆城管网络技术专业 gmsql连接远程数据库 中职 网络安全技能大赛 山东综合软件开发批发 服务器机柜安装工艺流程 从左到右连接两个数据库 金山区品牌数据库系统销售职能 数据库主键查询效率 如何实施网络安全法律法规 小型网络技术诚信合作
0