数据库中三级封锁协议与两段锁协议有区别吗

数据库中三级封锁协议与两段锁协议有区别吗,第1张

区别如下:

1、过程不同

三级封锁协议是一部完成封锁的,而后者却要分为两个阶段,耗费时间

2、含义不同

两段锁协议是指每个事务的执行可以分为两个阶段:生长阶段(加锁阶段)和衰退阶段(解锁阶段),三级加锁协议也称为三级封锁协议,是为了保证正确的调度事务的并发 *** 作,事务在对数据库对象加锁,解锁是必须遵守的一种规则在运用X锁和S锁对数据对象加锁时,还需要约定一些规则

3、功能不同

三级封锁协议除防止了丢失修改和不读“脏”数据外,还进一步防止了不可重复读。后者只是对事务进行时的封锁

扩展资料

一、一级封锁协议

一级封锁协议是:事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。事务结束包括正常结束(COMMIT)和非正常结束(ROLLBACK)。

一级封锁协议可以防止丢失修改,并保证事务T是可恢复的。使用一级封锁协议可以解决丢失修改问题。

在一级封锁协议中,如果仅仅是读数据不对其进行修改,是不需要加锁的,它不能保证可重复读和不读“脏”数据。

二、二级封锁协议

二级封锁协议是:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,读完后方可释放S锁。

二级封锁协议除防止了丢失修改,还可以进一步防止读“脏”数据。但在二级封锁协议中,由于读完数据后即可释放S锁,所以它不能保证可重复读。

三、三级封锁协议

三级封锁协议是:一级封锁协议加上事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。

三级封锁协议除防止了丢失修改和不读“脏”数据外,还进一步防止了不可重复读

参考资料来源:百度百科-三级加锁协议

百度百科-两段锁协议

SELECT 学号,姓名 FROM 学生名单 WHERE 序号='30'

3、SELECT 学号,姓名,性别 FROM 学生名单 WHERE 姓名='李三'

4、SELECT FROM 学生名单 WHERE 性别='男'

5、SELECT AVG(成绩) AS 男生成绩 FROM 学生名单 WHERE 性别='男' GROUP BY 性别

SELECT AVG(成绩) AS 女生成绩 FROM 学生名单 WHERE 性别='女' GROUP BY 性别

6、SELECT FROM 学生名单 WHERE 班级='工管0914会' AND 成绩>90

7、INSERT INTO 学生名单 VALUES ('200','2010091001','张三',’工管0918会','女','59')

8、DELETE FROM 学生信息 WHERE 班级='工管0917会'

以上就是关于数据库中三级封锁协议与两段锁协议有区别吗全部的内容,包括:数据库中三级封锁协议与两段锁协议有区别吗、数据库系统与应用、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9796907.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存