第7章数据库事务管理.ppt

上传人:p** 文档编号:572394 上传时间:2023-11-07 格式:PPT 页数:87 大小:410.50KB
下载 相关 举报
第7章数据库事务管理.ppt_第1页
第1页 / 共87页
第7章数据库事务管理.ppt_第2页
第2页 / 共87页
第7章数据库事务管理.ppt_第3页
第3页 / 共87页
第7章数据库事务管理.ppt_第4页
第4页 / 共87页
第7章数据库事务管理.ppt_第5页
第5页 / 共87页
第7章数据库事务管理.ppt_第6页
第6页 / 共87页
第7章数据库事务管理.ppt_第7页
第7页 / 共87页
第7章数据库事务管理.ppt_第8页
第8页 / 共87页
第7章数据库事务管理.ppt_第9页
第9页 / 共87页
第7章数据库事务管理.ppt_第10页
第10页 / 共87页
亲,该文档总共87页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第7章数据库事务管理.ppt》由会员分享,可在线阅读,更多相关《第7章数据库事务管理.ppt(87页珍藏版)》请在第壹文秘上搜索。

1、数据库系统基础教程数据库系统基础教程(第2版)普通高等教育普通高等教育“十一五十一五”国家级规划教材国家级规划教材 1.事务概念事务概念 事务是DBMS中操作的基本执行单位,事务本身就是构成单一逻辑工作单元的数据库操作的有限序列。操作序列中的操作要么全做,要么全不做,整个序列是一个不可分割的操作单位。第第7章章 数据库事务管理数据库事务管理7.1事务与事务管理事务与事务管理7.1.1事务概念与事务概念与ACID性质:概念性质:概念 2事务性质(事务性质(ACID)(1)原子性()原子性(Atomicity)一个事务对于数据所有操作是不可分割整体,这些操作要一个事务对于数据所有操作是不可分割整体

2、,这些操作要么全执行,要么全不执行。么全执行,要么全不执行。原子性是事务概念本质体现和基本要求。原子性是事务概念本质体现和基本要求。7.1.1 事务概念与ACID性质2事务性质(事务性质(ACID)(2)一致性()一致性(Consistency)数据库中数据不因事务执行而受到破坏,数据库中数据不因事务执行而受到破坏,事务执行结果应使数据库由一种一致性达事务执行结果应使数据库由一种一致性达到另一种新的一致性。到另一种新的一致性。一致性意义在于保证数据完整性。一致性意义在于保证数据完整性。7.1.1 事务概念与ACID性质(3)隔离性()隔离性(Isolation)事务并发执行与这些事务单独执行的

3、结果事务并发执行与这些事务单独执行的结果一样。在多事务并发执行时,各事务不必一样。在多事务并发执行时,各事务不必关心其它事务的执行,如同在单个用户环关心其它事务的执行,如同在单个用户环境下执行一样。境下执行一样。隔离性意义在于是事务并发控制技术基础隔离性意义在于是事务并发控制技术基础。7.1.1 事务概念与ACID性质(4)持久性()持久性(Durability)事务对数据的更新应永久地反映在数据库事务对数据的更新应永久地反映在数据库中。事务一旦完成全部操作后,它对数据中。事务一旦完成全部操作后,它对数据库所有更新结果将永久保留,即使以后发库所有更新结果将永久保留,即使以后发生故障也应保留相应

4、结果。生故障也应保留相应结果。持久性意义在于保证数据的故障恢复持久性意义在于保证数据的故障恢复。7.1.1 事务概念与ACID性质7.1.1 事务概念与ACID性质 1.SQL中的事务处理语句中的事务处理语句 事务开始语句:事务开始语句:START TRANSACTION语句语句 事务提交语句:事务提交语句:COMMIT语句语句 存储点语句:存储点语句:SAVEPOINT语句语句 事务回滚语句:事务回滚语句:ROLLBACK语句语句7.1.2 SQL对事务管理的支持 2.事务提交与回滚基本方式事务提交与回滚基本方式 显式方式:显式方式:通过通过COMMIT和和ROLLBACK语句明语句明显指出

5、提交或回滚有关事务。显指出提交或回滚有关事务。隐式方式:隐式方式:CREATE TABLE、DROP TABLE、CREATE VIEW,CREATE INDEX等创建语句在等创建语句在执行后即刻导致相关事务的提交。执行后即刻导致相关事务的提交。自动方式:自动方式:定期提交完成的事务。定期提交完成的事务。7.1.2 SQL对事务管理的支持 3.事务内容的两种类型事务内容的两种类型 只读型(只读型(Read Only)读写型(读写型(Read/Write)7.1.2 SQL对事务管理的支持 事务事务并发执行并发执行是数据共享性重要保证,并是数据共享性重要保证,并发执行应当加以适当控制,否则会出现

6、数发执行应当加以适当控制,否则会出现数据不一致,破坏数据库一致性。为在并发据不一致,破坏数据库一致性。为在并发执行过程中保持一致性,需应用事务概念执行过程中保持一致性,需应用事务概念讨论并发控制技术。讨论并发控制技术。7.2 并发控制技术并发控制技术 1.串行执行与并发执行串行执行与并发执行 在事务活动过程中,只有当一个事务完全结束,在事务活动过程中,只有当一个事务完全结束,另一事务才开始执行,这种执行方式称为事务另一事务才开始执行,这种执行方式称为事务的的串行执行串行执行或或串行访问串行访问。在事务执行过程中,如果在事务执行过程中,如果DBMS同时接纳多个同时接纳多个事务,使得事务在时间上可

7、以重叠执行,这种事务,使得事务在时间上可以重叠执行,这种执行方式称为事务的执行方式称为事务的并发执行并发执行或或并发访问并发访问7.2.1 事务的并发执行事务的并发执行 两类并发执行方式两类并发执行方式 交叉并发执行交叉并发执行:在单:在单CPU系统中,同一时间只系统中,同一时间只能有一个事务占用能有一个事务占用CPU,实际情形是各个并发执,实际情形是各个并发执行的事务交叉使用行的事务交叉使用CPU,这种并发方式称为交叉,这种并发方式称为交叉并发执行或分时并发执行。并发执行或分时并发执行。同时并发执行同时并发执行:在多:在多CPU系统中,多个并发执系统中,多个并发执行的事务可以同时占用系统中的

8、行的事务可以同时占用系统中的CPU,这种方式,这种方式称为同时并发执行。称为同时并发执行。7.2.1 事务的并发执行事务的并发执行 2.并发执行的优势并发执行的优势 改善系统资源利用率 改善短事务响应时间 7.2.1 事务的并发执行事务的并发执行 在同一时刻,多个用户存取同一数据,由在同一时刻,多个用户存取同一数据,由于使用时间相互重叠和使用方式彼此影响,于使用时间相互重叠和使用方式彼此影响,如对并发操作不加以适当控制,就可能引如对并发操作不加以适当控制,就可能引发数据不一致问题,导致错误结果,使数发数据不一致问题,导致错误结果,使数据库由于并发操作错误而出现故障。据库由于并发操作错误而出现故

9、障。7.2.2 并发执行引发不一致并发执行引发不一致(1)丢失更新)丢失更新 丢失更新是指两个事务T1和T2从数据库读取同一数据并进行更新,其中事务T2提交的更新改结果破坏了事务T1提交的更新结果,导致了事务T1的更新被丢失。丢失更新是由于两个事务对同一数据并发地进行写入操作所引起的,因而称为写-写冲突 7.2.2 并发执行引发不一致并发执行引发不一致(2)读)读“脏脏”数据数据 读“脏”数据是指事务T1将数据a更新成数据b,然后将其写入磁盘;此后事务T2读取该更新后的数据,即数据b;接下来T1因故被撤销,使得数据b恢复到了原值a。这时,T2得到的数据就与数据库内的数据不一致。这种不一致或者不

10、存在的数据通常就称为“脏”数据。7.2.2 并发执行引发不一致并发执行引发不一致(3)不可重复读取)不可重复读取 不可重复读是指当事务T1读取数据a后,事务T2进行读取并进行更新操作,使得T1再读取a进行校验时,发现前后两次读取值发生了变化,从而无法再读取前一次读取的结果。7.2.2 并发执行引发不一致并发执行引发不一致 不可重复读包括不可重复读包括3种情形。种情形。事务事务T1读取某一数据后,事务读取某一数据后,事务T2对其进行了修改,当对其进行了修改,当事务事务T1再次读该数据时,得到与前一次不同的值。图再次读该数据时,得到与前一次不同的值。图8-5中(中(c)说明的就是这种情况。)说明的

11、就是这种情况。事务事务T1按一定条件从数据库中读取某些数据记录后,事按一定条件从数据库中读取某些数据记录后,事务务T2删除了其中的部分记录,当事务删除了其中的部分记录,当事务T1再次按照相同条再次按照相同条件读取该数据时,发现某些记录已经不存在了。件读取该数据时,发现某些记录已经不存在了。事务事务T1按一定条件从数据库中读取某些数据记录后,事按一定条件从数据库中读取某些数据记录后,事务务T2插入了一些记录,当事务插入了一些记录,当事务T1再次按照统一条件读取再次按照统一条件读取数据,就会发现多出了某些数据数据,就会发现多出了某些数据 7.2.2 并发执行引发不一致并发执行引发不一致t T1 T

12、2 t T1 T2 t T1 T2 1 Read:a=10 2 Read:a=10 1 Read:b=100 bb*2 Write:b=200 1 Read:c=60 Read:d=100 ec+d=160 3 aa-1 Write:a=9 2 Read:b=200 2 Read:d=100 dd*2 Write:d=200 4 aa-1 Write:a=9 3 ROLLBACK b恢复为100 3 Read:c=60 Read:d=200 ec+d=260(校验不一致)(a)修改丢失 (b)读脏数据 (c)不可重复读取 7.2.2 并发执行引发不一致并发执行引发不一致 1.事务并发执行的调度

13、事务并发执行的调度 在数据库应用中,经常存在多个事务执行过程。在数据库应用中,经常存在多个事务执行过程。由于每个事务含有若干有序的操作,当这些事务由于每个事务含有若干有序的操作,当这些事务处于并发状态时,处于并发状态时,DBMS就必须对这些操作的执就必须对这些操作的执行顺序做出安排,即需要进行行顺序做出安排,即需要进行“调度调度”。如果数据库在某时刻存在并发执行的如果数据库在某时刻存在并发执行的n个事务之个事务之集,对这集,对这n个事务所有操作一个顺序安排称为对个事务所有操作一个顺序安排称为对该并发执行事务集的一个该并发执行事务集的一个调度调度(Schedule)。)。7.2.3 并发执行正确

14、性准则并发执行正确性准则 2.并发操作正确性准则并发操作正确性准则可串行化准则可串行化准则 当数据库有多个事务进行操作时,如果对当数据库有多个事务进行操作时,如果对数据库进行的操作以事务为单位,多个事数据库进行的操作以事务为单位,多个事务按顺序依次执行,即一个事务执行完全务按顺序依次执行,即一个事务执行完全结束之后,另一个事务才开始,这种执行结束之后,另一个事务才开始,这种执行方式就是串行调度。方式就是串行调度。7.2.3 并发执行正确性准则并发执行正确性准则 对于一个并发事务集来说,如果一种调度与一种对于一个并发事务集来说,如果一种调度与一种串行调度等价,则称该串行调度等价,则称该调度可串行

15、化调度可串行化,这种执行,这种执行称为并发事务的可串行化,采用相应技术称之为称为并发事务的可串行化,采用相应技术称之为并发控制(并发控制(Concurrent Control)技术。)技术。DBMS以可串行化作为并发控制正确性准则,其中并发以可串行化作为并发控制正确性准则,其中并发控制机构的任务就是调度事务的并发执行,使得控制机构的任务就是调度事务的并发执行,使得这个事务等价于一个串行调度。这个事务等价于一个串行调度。7.2.3 并发执行正确性准则并发执行正确性准则 串行执行、并发执行(不正确)以及并发串行执行、并发执行(不正确)以及并发执行可以串行化(正确)的例子。执行可以串行化(正确)的例

16、子。例例7-1 以银行转账为例。事务以银行转账为例。事务T1从账号从账号A(初值为(初值为20000)转)转10000到账号到账号B(初值(初值为为20000),事务),事务T2从账号从账号A转转10%的款项的款项到账号到账号B,T1和和T2具体执行过程如下:具体执行过程如下:7.2.3 并发执行正确性准则并发执行正确性准则t T1 T2 t T1 T2 1 Read(A)1 Read(A)2 A:=A-10000 2 Temp:=A*0.1 3 Write(A)3 A:=A-Temp 4 Read(B)4 Write(A)5 B:=B+10000 5 Read(B)6 Write(B)6 B:=B+Temp 7 Read(A)7 Write(B)8 Temp:=A*0.1 8 Read(A)9 A:=A-Temp 9 A:=A-10000 10 Write(A)10 Write(A)11 Read(B)11 Read(B)12 B:=B+Temp 12 B:=B+10000 13 Write(B)13 Write(B)a)串行调度(1)b)串行调度(2)7.2.3 并发执行正确性准则

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 数据库

copyright@ 2008-2023 1wenmi网站版权所有

经营许可证编号:宁ICP备2022001189号-1

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!