当多个事务在数据库中并发地执行时,数据的一致性可能无法再维持。系统有必要控制各事务之间的相互作用,这是通过被称为并发控制的机制来实现的。最常用的机制是各种封锁协议、时间戳排序机制、有效性检查技术与多版本机制。
一、封锁协议是一组规则,这些规则阐明了事务何时对数据库中的数据项进行加锁和解锁。
两阶段封锁协议仅在一个事务未曾释放任何数据项上的锁时才允许该事务封锁新的数据项。该协议保证可串行性,但不能避免死锁。在没有关于数据项访问方式信息的情况下,两阶段封锁协议对于保证可串行性即使必要的又是充分的。
严格两阶段封锁协议要求事务持有的所有排他锁必须在事务结束时方可释放,其目的是保证结果调度的可恢复性和无级联性;强两阶段封锁协议要求事务持有的所有锁必须在事务结束时方可释放。
基于图的封锁协议对访问数据项的顺序加以限制,从而不需要使用两阶段封锁还能保证可串行性,而且又能够保证不会产生死锁。
许多种封锁协议都不能防止死锁。一种可以防止死锁的方法是使用数据项的一种顺序,并且按与该顺序一致的次序申请加锁;另一种防止死锁的方法是使用抢占与事务回滚。为控制抢占,我们为每个事务赋予一个唯一时间戳。这些时间戳用于决定事务是等待还是回滚。如果一个事务回滚,它在重启时保持原有时间戳。
如果没有预防死锁的机制,系统必须用死锁检测与恢复机制来处理它们。为此,系统构造了一个等待图,当且仅当等待图包含环时,系统会处于死锁状态。当一个检测算法判定死锁存在时,系统通过回滚一个或多个事务来解除死锁。
某些情况下把多个数据项聚为一组,将它们作为聚集数据项来处理,其效果可能更好,这就涉及到粒度级别的问题。系统允许各种大小的数据项,并定义数据项的层次,其中小数据项、嵌套于大数据项之中。这种层次结构可以图形化地表示为树。封锁按从根结点到叶节点的顺序进行;解锁则按从叶节点到根节点的顺序进行。但这种协议虽然可以保证可串行性,但不能避免死锁。

二、时间戳排序机制通过事先在每对事务之间选择一个顺序来保证可串行性。系统中的每个事务对应一个唯一的时间戳,这个时间戳决定了事务的可串行化顺序。如果事务Ti的时间戳小于事务Tj的时间戳,则该机制保证产生的调度等价于事务Ti出现在事务Tj之前的串行调度。该机制通过回滚违反该次序的食物来保证这一点。

三、多版本并发控制机制基于在每个事务写数据项时为该数据项创建一个新版本。读操作发出时,系统选择其中的一个版本进行读取。利用时间戳,并发控制机制保证按确保可串行性的方式选择要读取的版本。
四、

学习资料:Database System Concepts, by Abraham Silberschatz, Henry F.Korth, S.Sudarshan

转载于:https://www.cnblogs.com/zhixin9001/p/8343717.html

《数据库系统概念》19-并发控制相关推荐

  1. 数据库书籍-数据库系统概念(原书第6版)

    数据库书籍-数据库系统概念(原书第6版) 基本信息 原书名: Database System Concepts,Sixth Edition 原出版社: McGraw-Hill 作者: (美)Abrah ...

  2. 《数据库系统概念》学习笔记——恢复系统

    数据库系统概念--恢复系统 恢复系统 故障分类 存储器 稳定存储器的实现 数据访问 恢复与原子性 日志记录 数据库修改 并发控制和恢复 事务提交 使用日志来重做和撤销事务 检查点 恢复算法 事务回滚 ...

  3. 《数据库系统概念》第一章:引言

    数据库(database):一个互相关联的数据的集合. 数据库管理系统(DataBase-Management System,DBMS):由数据库和一组用以访问这些数据的程序组成. 数据视图 数据抽象 ...

  4. 数据库系统概念原书第六版黑皮书第一章课后习题作业答案

    文章目录 1.8列出文件处理系统和DBMS之间的四个显著区别. 1.9 解释物理数据独立性的概念,以及它在数据库系统中的重要性. 1.10 列出数据库管理系统的五个职责.对每个职责,说明当它不能被履行 ...

  5. 数据库系统概念Ch1

    数据库系统概念 CH1 数据:Data,数据是描述人.物体和事件的原始事实. 数据库:DataBase,相关数据的综合集合构成数据库(DB). 数据库管理系统:DataBase-Management ...

  6. 数据库系统概念 复习总结

    数据库系统概念 Database Systems Concepts 第六版 来源:https://blog.csdn.net/qq_39326472/article/details/88420916 ...

  7. 数据库系统概念读书笔记-引言

    学习数据库的基本的概念,采用了原书第6版的数据库系统概念,该书的Web站点为http://www.db-book.com.参考内容来自卡内基梅隆 数据库导论 2018,讲师:Andy Pavlo,课程 ...

  8. 实体 联系 模型mysql_数据库系统概念读书笔记――实体-联系模型_MySQL

    bitsCN.com 数据库系统概念读书笔记--实体-联系模型 前言 为了重新回顾我写的消息系统架构,我需要重新读一下数据库系统概念的前三章,这里简单的做一个笔记,方便自己回顾 基本概念 实体-联系( ...

  9. 《数据库系统概念》一二章学习笔记

    书上的例子以及练习题都是用 Mysql 实现的,操作系统使用的 macOS.在使用 Mysql 遇到问题时,推荐查看官方文档 Mysql Reference Manual. 第一章 引言 第一章就是综 ...

  10. 数据库系统概念 实验1~实验9

    数据库系统概念实验1~实验9 本文仅为某咸鱼的实验报告记录,仅供参考,不保证一定正确,也不保证sql语句最优化.代码前斜体部分是本人对实验题目的思路,不保证方法一定最简.部分实验创建表或创建视图的语句 ...

最新文章

  1. 上海Uber优步司机奖励政策(1月18日~1月24日)
  2. 如何用catia画半圆_简笔画用半圆画卡通动物
  3. python实现WebsocketServer 服务端
  4. 基于ZooKeeper的分布式Session实现
  5. .NET Core微服务开发选项
  6. 如何将多个文本数据转化为指定数据格式[以电影数据为例](数据预处理)
  7. 【白皮书分享】快手私域经营白皮书.pdf(附下载链接)
  8. win7与internet时间同步出错_时间同步出错,教您时间同步出错
  9. 逆流而上:计算机专业图书破圈营销,这个直播间做到了
  10. Empty suite
  11. 第十九天前端jsp Ajax
  12. 什么是 PCIe 卡?您需要了解的有关PCI Express卡的所有信息
  13. 超级账本学习之三:创建超级账本网络
  14. flowable 中文文档
  15. 父类(指针、引用)指向子类对象
  16. 阅读笔记 |《哲学·科学·常识》陈嘉映
  17. 打蚊子表情包_蚊子表情包 - 蚊子微信表情包 - 蚊子QQ表情包 - 发表情 fabiaoqing.com...
  18. python缺失值与异常值处理_pandas学习(常用数学统计方法总结、读取或保存数据、缺省值和异常值处理)...
  19. IoT:OneNET - 中国移动物联网平台介绍
  20. Fixflow引擎解析(三)(模型) - 创建EMF模型来读写XML文件

热门文章

  1. Final Cut Pro X for Mac(fcpx视频剪辑)中文版
  2. inDesign教程,如何设置打印出血?
  3. idea + debug
  4. 6间企业获颁“首届粤港澳大湾区百强企业传承大奖”
  5. 1.2 不停机升级困难
  6. springmvc + ehcache + redis+mybatis 分布式架构
  7. flume学习(七):如何使用event header中的key值
  8. Angular JS 学习笔记(二)
  9. cmd命令配置MySQL
  10. linux网络服务学习笔记--基本网络配置