一级封锁协议

  • 一级封锁协议是指,事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放。事务结束包括正常结束(COMMIT)和非正常结束(ROLLBACK).
  • 一级封锁协议可防止丢失修改,并保证事务T是可恢复的。
  • 在一级封锁协议中,如果仅仅是读数据而不对其进行修改,是不需要加锁的,所以它不能保证可重复读和不读“脏”数据。

丢失修改:不加锁修改之后被其它事务修改了
写:加X锁->修改数据R->成功或失败->释放X锁

读:不加锁,导致读到别的事务未提交数据,且多次读结果不一致

二级封锁协议

  • 二级封锁协议是指,在一级封锁协议基础上增加事务T在读取数据R之前必须先对其加S锁,读完后即可释放S锁=。
  • 二级封锁协议除防止了丢失修改,还可进一步防止读“脏”数据。
  • 在二级封锁协议中,由于读完数据后即可释放S锁,所以它不能保证可重复读。

写:同一级封锁协议
读:加S锁->读数据R->读完释放S锁,不会读到别的事务未提交的数据,但多次读会结果还是会不一致
注:在数据R加了X锁之后,不能再加其它锁(其它事务的X锁和S锁);在数据R加了S锁之后,其它锁还能加S锁,但不能加X锁

三级封锁协议

  • 三级封锁协议是指,在一级封锁协议的基础上增加事务T在读取数据R之前必须先对其加S锁,直到事务结束才释放。
  • 三级封锁协议除了防止丢失修改和读“脏”数据外,还进一步防止了不可重复读。

写:同一级封锁协议
读:加S锁->读数据R->再读数据R->事务完成->释放S锁,多次读结果一致

四、不同级别的封锁协议和一致性保证

内容补充

X锁(排他锁、写锁)

S锁(共享锁、读锁)

有关数据库的一级、二级、三级封锁协议相关推荐

  1. 数据库 三级封锁协议

    --并发事务在读写数据时容易发生数据读写错误,通过锁的方式确保并发事务的正确性 -- 三级封锁协议:         在运用X锁和S锁对数据对象加锁时,还需要约定一些规则 ,例如何时申请X锁或S锁.持 ...

  2. mysql中的两段锁协议和三级封锁协议

    两段锁协议 一个事务中一旦开始释放锁,就不能再申请新锁了.事务的加锁和解锁严格分为两个阶段,第一阶段加锁,第二阶段解锁. 目的 :"引入2PL是为了保证事务的隔离性,保证并发调度的准确性,多 ...

  3. 天津二级计算机考试地点,2016年9月天津计算机一级二级三级四级考点地址电话...

    2016年9月天津计算机等级考试考点    2016年9月天津计算机一级二级三级四级考点地址电话 代码 考点名称 报名地点 报名电话 1    120001 天津医学高等专科学校 河西区柳林路14号教 ...

  4. 2021CFA一级二级三级预测 结合十余年实践总结

    2021CFA一级二级三级预测是结合十余年实践总结,针对CFA考试重难点分析,预测CFA考试必考要点的习题资料,也是市面上很少有带详细答案解析以及视频解析的优质题目,每年考点准确度高达90%以上,考一 ...

  5. 2023CFA一级二级三级视频网课

    2023CFA一级二级三级视频网课已出,要的童鞋留邮箱!

  6. 2020年12月CFA一级二级三级百题预测

    2020年12月CFA一级二级三级百题预测下载链接:https://pan.baidu.com/s/1uZ6UvB-tYR81Kq6z1fiidQ 密码:l3w1 是结合十余年实践总结,针对CFA考试 ...

  7. 2020年12月最新CFA一级二级三级百题预测+答案解析下载pdf

    2020年12月最新CFA一级二级三级预测是结合十余年实践总结,针对CFA考试重难点分析,预测CFA考试必考要点的习题资料,也是市面上很少有带详细答案解析以及视频解析的优质题目,每年考点准确度高达90 ...

  8. 硬件 - CPU 为什么要分一级二级三级缓存

    文章目录 硬件 - CPU 为什么要分一级二级三级缓存 1.为什么要给 CPU 设置缓存 2.L1 Cache.L2 Cache.L3 Cache 3.三个级别的缓存与内存数据交互速度的大概对比 4. ...

  9. 【CPU缓存】一级二级三级缓存

    CPU缓存   CPU缓存(Cache Memory)是位于 CPU 与内存之间的临时存储器,它的容量比内存小的多,但是交换速度却快得多.   CPU运算速度要比内存读写速度快很多,这样会使CPU花费 ...

最新文章

  1. 解决git无法clone地址为https的库
  2. 'cross-env' 不是内部或外部命令,也不是可运行的程序
  3. 任正非:进军高端市场的同时,华为要防范未来竞争者从低端崛起
  4. php excel cpu高,phpexcel读文件的时候cpu99%
  5. 无线网络连接无法停用
  6. 谷歌回归中国,最紧张的为什么会是小米、华为们?
  7. 系统架构设计上需要注意的
  8. react滑动切换tab动画效果_后端设计中,如何用axure实现table切换动效?
  9. python 获取运行文件的路径
  10. mariadb 集群mysql_负载均衡的mariadb集群搭建
  11. 学成在线day13,HLS视频文件处理,FFmpeg,画面清晰度的码率, H5播放器video.js,媒资管理,断点上传文件和合并文件,WebUploader百度上传插件,
  12. Maven基础篇之Maven的实战入门
  13. 计算机添加pdf打印机驱动,给win7系统电脑安装PDF虚拟打印机的详细教程
  14. cmos逻辑门传输延迟时间_【转载】CMOS与TTL电路的区别
  15. CESM优化——Intel编译器编译安装NetCDF库(C+Fortran)
  16. CTB6.0标注体系
  17. 计算机二级第一次考试不及格有没有影响,计算机二级还没有过吗?
  18. 苏州优步高级车资费标准和奖励政策
  19. 【JZ38 字符串的排列】
  20. HC-05,HC-06AT指令

热门文章

  1. 网站如何备案 怎么备案 网站备案流程有哪些?
  2. Android 欢迎引导页的魅力
  3. 柔性电子综述2012 ---在医疗,汽车行业,人机界面,移动设备以及其他场景下的可能应用
  4. 跑过的城市,走过的路
  5. CF1375E Inversion SwapSort
  6. KMS工具激活office2016报错0x80080005的解决记录
  7. day17 面向对象基础
  8. WiFi驱动(1)框架解析
  9. Ubuntu下清除DNS缓存的方法
  10. 【兴趣阅读】DeepInf: Social Influence Prediction with Deep Learning