- 1、本文档共63页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
An Introduction to Database System 第11章 数据库并发控制 11.1 事务的基本概念 11.2 并发控制概述 11.3 封锁 11.4 并发调度的可串行性 11.5 两段锁协议 11.6 封锁的粒度 第11章 数据库并发控制 11.1 事务的基本概念 定义 是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位 事务和程序比较 在关系数据库中,一个事务可以是一条或多条SQL语句,也可以包含一个或多个程序。一个程序通常包含多个事务 SQL Server 中事务分类 (1)系统事务:一条语句就是一个事务 (2)用户定义事务: 系统提供的事务语句如下: ALTER TABLE 、CREATE、DELETE、DROP、GRANT、INSERT、OPEN、SELECT、UPDATE等 用户定义事务 BEGIN TRANSACTION BEGIN TRANSACTION SQL 语句1 SQL 语句1 SQL 语句2 SQL 语句2 。。。。。 。。。。。 COMMIT ROLLBACK 11.1 事务的基本概念 事务的ACID特性: 原子性(Atomicity) 事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做 。 一致性(Consistency) 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。 隔离性(Isolation) 一个事务的执行不能被其他事务干扰。即并发执行的各个事务之间不能互相干扰。多个并发执行的结果和分别单独执行单个事务的结果完全一样。 持续性(Durability ) 指一个事务一旦提交,它对数据库中数据的改变就应该是永 久性的。 11.2 并发控制概述 并发控制机制的任务 对并发操作进行正确调度 保证事务的隔离性 保证数据库的一致性 并发操作带来的数据不一致性 丢失修改(Lost Update) 不可重复读(Non-repeatable Read) 读“脏”数据(Dirty Read) 记号 R(x):读数据x W(x):写数据x 1. 丢失修改 两个事务T1和T2读入同一数据并修改,T2的提交结果破坏了T1提交的结果,导致T1的修改被丢失。 2. 不可重复读 不可重复读是指事务T1读取数据后,事务T2 执行更新操作,使T1无法再现前一次读取结果。 3. 读“脏”数据 读“脏”数据是指: 事务T1修改某一数据,并将其写回磁盘 事务T2读取同一数据后,T1由于某种原因被撤销 这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致 T2读到的数据就为“脏”数据,即不正确的数据 11.2 并发控制概述 并发控制的主要技术 有封锁(Locking) 时间戳(Timestamp) 乐观控制法 商用的DBMS一般都采用封锁方法 11.3 封锁 什么是封锁 基本封锁类型 锁的相容矩阵 什么是封锁 封锁就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁 加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。 排它锁又称为写锁 若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁 保证其他事务在T释放A上的锁之前不能再读取和修改A 共享锁又称为读锁 若事务T对数据对象A加上S锁,则其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁 保证其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改 锁的相容矩阵 使用封锁机制解决丢失修改问题 使用封锁机制解决不可重复读问题 11.4 活锁和死锁 封锁技术可以有效地解决并发操作的一致性问题,但也带来一些新的问题 死锁 活锁 11.4.1 活锁 事务T1封锁了数据R 事务T2又请求封锁R,于是T2等待。 T3也请求封锁R,当T1释放了R上的封锁之后系统首先批准了T3的请求,T2仍然等待。 T4又请求封锁R,当T3释放了R上的封锁之后系统又批准了T4的请求…… T2有可能永远等待,这就是活锁的情形
您可能关注的文档
最近下载
- AB-罗克韦尔PowerFlex755变频器操作说明.pdf
- 2024-2025学年初中信息技术(信息科技)青岛版(2024)第一册教学设计合集.docx
- ANSI-ESD S20.20-2021电气和电子零件装置和设备的静电保护.pdf VIP
- 养鸡创业计划书3篇农村养鸡创业计划书范文.pdf VIP
- QGDW11190-2014农网高过载能力配电变压器技术导则.pdf VIP
- 全国市政排水管道工程施工质量通病的防治.pptx VIP
- 财务报表词汇-中英对照.docx VIP
- 2025至2030中国冬虫夏草行业市场发展分析及趋势前景与行业项目调研及市场前景预测评估报告.docx VIP
- 治具设计完整版.pptx VIP
- 广西壮族自治区南宁市2025年八年级下学期期末数学模拟试题九套含答案.pptx VIP
文档评论(0)