《并发控制》PPT课件(I)

《并发控制》PPT课件(I)

ID:39508225

大小:848.60 KB

页数:63页

时间:2019-07-04

《并发控制》PPT课件(I)_第1页
《并发控制》PPT课件(I)_第2页
《并发控制》PPT课件(I)_第3页
《并发控制》PPT课件(I)_第4页
《并发控制》PPT课件(I)_第5页
资源描述:

《《并发控制》PPT课件(I)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第11章数据库并发控制11.1事务的基本概念11.2并发控制概述11.3封锁11.4并发调度的可串行性11.5两段锁协议11.6封锁的粒度第11章数据库并发控制问题的提出:数据库是一个共享资源,应该允许多个用户程序并行地存取数据,当对数据库进行并行操作时,有可能出现数据不一致的情况。并行操作:在单处理机系统中,事务的并行执行实际上是这些并行事务的操作轮流交叉进行。并发操作举例考虑飞机订票系统。设有两个订票点,机票余票A=15。取A=15修改A=A-1写回数据库A=14取A=15修改A=A-1写回数据库A=14T甲售票点乙售票点结果明明卖出两张机票,数据库中机票余额只减少1数

2、据库技术11.1事务的基本概念定义是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位事务和程序比较在关系数据库中,一个事务可以是一条或多条SQL语句,也可以包含一个或多个程序。一个程序通常包含多个事务SQLServer中事务分类(1)系统事务:一条语句就是一个事务(2)用户定义事务:系统提供的事务语句如下:ALTERTABLE、CREATE、DELETE、DROP、GRANT、INSERT、OPEN、SELECT、UPDATE等用户定义事务BEGINTRANSACTIONBEGINTRANSACTIONSQL语句1SQL语句1SQL语句2S

3、QL语句2。。。。。。。。。。COMMITROLLBACKCOMMIL:表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。ROLLBACK:表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的操作全部撤销,滚到事务开始时的状态11.1事务的基本概念事务的ACID特性:原子性(Atomicity)事务是数据库的逻辑工作单位,事务中包括的诸操作要么都做,要么都不做。一致性(Consistency)事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与

4、原子性是密切相关的。隔离性(Isolation)一个事务的执行不能被其他事务干扰。即并发执行的各个事务之间不能互相干扰。多个并发执行的结果和分别单独执行单个事务的结果完全一样。持续性(Durability)指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。11.2并发控制概述并发控制机制的任务对并发操作进行正确调度保证事务的隔离性保证数据库的一致性前面飞机票示例可表示为:事务T1取A=15修改A=A-1写回数据库A=14事务T2取A=15修改A=A-1写回数据库A=14T11.2并发控制概述造成数据不一致的原因:(1)在并发操作情况下,对甲、乙两个事务的操作序列的

5、调度是随机的(2)T2事务修改A并写回后覆盖了T1事务的修改.并发操作带来的数据不一致性丢失修改(LostUpdate)不可重复读(Non-repeatableRead)读“脏”数据(DirtyRead)记号R(x):读数据xW(x):写数据x1.丢失修改两个事务T1和T2读入同一数据并修改,T2的提交结果破坏了T1提交的结果,导致T1的修改被丢失。T1T2①R(A)=15②R(A)=15③A←A-1W(A)=14④A←A-1W(A)=14丢失修改2.不可重复读不可重复读是指事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果。T1T2①R(A)=50R(

6、B)=100求和=150②R(B)=100B←B*2(B)=200③R(A)=50R(B)=200和=250(验算不对)3.读“脏”数据读“脏”数据是指:事务T1修改某一数据,并将其写回磁盘事务T2读取同一数据后,T1由于某种原因被撤销这时T1已修改过的数据恢复原值,T2读到的数据就与数据库中的数据不一致T2读到的数据就为“脏”数据,即不正确的数据T1T2①R(C)=100C←C*2W(C)=200②R(C)=200③ROLLBACKC恢复为100读“脏”数据T1将C值修改为200,T2读到C为200T1由于某种原因撤销,其修改作废,C恢复原值100这时T2读到的C为200

7、,与数据库内容不一致,就是“脏”数据11.2并发控制概述并发控制的主要技术有封锁(Locking)时间戳(Timestamp)乐观控制法商用的DBMS一般都采用封锁方法11.3封锁什么是封锁基本封锁类型锁的相容矩阵什么是封锁封锁就是事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求,对其加锁加锁后事务T就对该数据对象有了一定的控制,在事务T释放它的锁之前,其它的事务不能更新此数据对象。基本封锁类型排它锁(ExclusiveLocks,简记为X锁)共享锁(ShareLocks,简记为S锁)排它锁又称为

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。