第7章数据库事务管理.ppt
《第7章数据库事务管理.ppt》由会员分享,可在线阅读,更多相关《第7章数据库事务管理.ppt(87页珍藏版)》请在课桌文档上搜索。
1、数据库系统基础教程(第2版),普通高等教育“十一五”国家级规划教材,1.事务概念事务是DBMS中操作的基本执行单位,事务本身就是构成单一逻辑工作单元的数据库操作的有限序列。操作序列中的操作要么全做,要么全不做,整个序列是一个不可分割的操作单位。,第7章 数据库事务管理,7.1事务与事务管理,7.1.1事务概念与ACID性质:概念,2事务性质(ACID)(1)原子性(Atomicity)一个事务对于数据所有操作是不可分割整体,这些操作要么全执行,要么全不执行。原子性是事务概念本质体现和基本要求。,7.1.1 事务概念与ACID性质,2事务性质(ACID)(2)一致性(Consistency)数据
2、库中数据不因事务执行而受到破坏,事务执行结果应使数据库由一种一致性达到另一种新的一致性。一致性意义在于保证数据完整性。,7.1.1 事务概念与ACID性质,(3)隔离性(Isolation)事务并发执行与这些事务单独执行的结果一样。在多事务并发执行时,各事务不必关心其它事务的执行,如同在单个用户环境下执行一样。隔离性意义在于是事务并发控制技术基础。,7.1.1 事务概念与ACID性质,(4)持久性(Durability)事务对数据的更新应永久地反映在数据库中。事务一旦完成全部操作后,它对数据库所有更新结果将永久保留,即使以后发生故障也应保留相应结果。持久性意义在于保证数据的故障恢复。,7.1.
3、1 事务概念与ACID性质,7.1.1 事务概念与ACID性质,1.SQL中的事务处理语句 事务开始语句:START TRANSACTION语句 事务提交语句:COMMIT语句 存储点语句:SAVEPOINT语句 事务回滚语句:ROLLBACK语句,7.1.2 SQL对事务管理的支持,2.事务提交与回滚基本方式 显式方式:通过COMMIT和ROLLBACK语句明显指出提交或回滚有关事务。隐式方式:CREATE TABLE、DROP TABLE、CREATE VIEW,CREATE INDEX等创建语句在执行后即刻导致相关事务的提交。自动方式:定期提交完成的事务。,7.1.2 SQL对事务管理的
4、支持,3.事务内容的两种类型 只读型(Read Only)读写型(Read/Write),7.1.2 SQL对事务管理的支持,事务并发执行是数据共享性重要保证,并发执行应当加以适当控制,否则会出现数据不一致,破坏数据库一致性。为在并发执行过程中保持一致性,需应用事务概念讨论并发控制技术。,7.2 并发控制技术,1.串行执行与并发执行在事务活动过程中,只有当一个事务完全结束,另一事务才开始执行,这种执行方式称为事务的串行执行或串行访问。在事务执行过程中,如果DBMS同时接纳多个事务,使得事务在时间上可以重叠执行,这种执行方式称为事务的并发执行或并发访问,7.2.1 事务的并发执行,两类并发执行方
5、式交叉并发执行:在单CPU系统中,同一时间只能有一个事务占用CPU,实际情形是各个并发执行的事务交叉使用CPU,这种并发方式称为交叉并发执行或分时并发执行。同时并发执行:在多CPU系统中,多个并发执行的事务可以同时占用系统中的CPU,这种方式称为同时并发执行。,7.2.1 事务的并发执行,2.并发执行的优势 改善系统资源利用率 改善短事务响应时间,7.2.1 事务的并发执行,在同一时刻,多个用户存取同一数据,由于使用时间相互重叠和使用方式彼此影响,如对并发操作不加以适当控制,就可能引发数据不一致问题,导致错误结果,使数据库由于并发操作错误而出现故障。,7.2.2 并发执行引发不一致,(1)丢失
6、更新丢失更新是指两个事务T1和T2从数据库读取同一数据并进行更新,其中事务T2提交的更新改结果破坏了事务T1提交的更新结果,导致了事务T1的更新被丢失。丢失更新是由于两个事务对同一数据并发地进行写入操作所引起的,因而称为写-写冲突,7.2.2 并发执行引发不一致,(2)读“脏”数据 读“脏”数据是指事务T1将数据a更新成数据b,然后将其写入磁盘;此后事务T2读取该更新后的数据,即数据b;接下来T1因故被撤销,使得数据b恢复到了原值a。这时,T2得到的数据就与数据库内的数据不一致。这种不一致或者不存在的数据通常就称为“脏”数据。,7.2.2 并发执行引发不一致,(3)不可重复读取 不可重复读是指
7、当事务T1读取数据a后,事务T2进行读取并进行更新操作,使得T1再读取a进行校验时,发现前后两次读取值发生了变化,从而无法再读取前一次读取的结果。,7.2.2 并发执行引发不一致,不可重复读包括3种情形。事务T1读取某一数据后,事务T2对其进行了修改,当事务T1再次读该数据时,得到与前一次不同的值。图8-5中(c)说明的就是这种情况。事务T1按一定条件从数据库中读取某些数据记录后,事务T2删除了其中的部分记录,当事务T1再次按照相同条件读取该数据时,发现某些记录已经不存在了。事务T1按一定条件从数据库中读取某些数据记录后,事务T2插入了一些记录,当事务T1再次按照统一条件读取数据,就会发现多出
8、了某些数据,7.2.2 并发执行引发不一致,7.2.2 并发执行引发不一致,1.事务并发执行的调度在数据库应用中,经常存在多个事务执行过程。由于每个事务含有若干有序的操作,当这些事务处于并发状态时,DBMS就必须对这些操作的执行顺序做出安排,即需要进行“调度”。如果数据库在某时刻存在并发执行的n个事务之集,对这n个事务所有操作一个顺序安排称为对该并发执行事务集的一个调度(Schedule)。,7.2.3 并发执行正确性准则,2.并发操作正确性准则可串行化准则 当数据库有多个事务进行操作时,如果对数据库进行的操作以事务为单位,多个事务按顺序依次执行,即一个事务执行完全结束之后,另一个事务才开始,
9、这种执行方式就是串行调度。,7.2.3 并发执行正确性准则,对于一个并发事务集来说,如果一种调度与一种串行调度等价,则称该调度可串行化,这种执行称为并发事务的可串行化,采用相应技术称之为并发控制(Concurrent Control)技术。DBMS以可串行化作为并发控制正确性准则,其中并发控制机构的任务就是调度事务的并发执行,使得这个事务等价于一个串行调度。,7.2.3 并发执行正确性准则,串行执行、并发执行(不正确)以及并发执行可以串行化(正确)的例子。例7-1 以银行转账为例。事务T1从账号A(初值为20000)转10000到账号B(初值为20000),事务T2从账号A转10%的款项到账号
10、B,T1和T2具体执行过程如下:,7.2.3 并发执行正确性准则,7.2.3 并发执行正确性准则,在串行调度(1)中,执行T1后的数据A=10000,B=30000。T2读取这样的数据A,B,得到Temp=A*0.1=1000,A:=A-Temp=9000,B:=B+Temp=31000。最终,数据库写入数据A=9000,B=31000。,7.2.3 并发执行正确性准则,在串行调度(2)中,执行T2后的数据Temp=A*0.1=2000,A:=A-Temp=18000;B:=B+Temp=22000。T1读取这样的数据A和B,得到A:=A-10000=8000,B:=B+10000=32000
11、。最终数据库写入数据A=8000,B=32000下面给出如下图所示的两种并发调度方案。,7.2.3 并发执行正确性准则,7.2.3 并发执行正确性准则,通过并发执行调度(1),得到数据A=9000,B=31000,与先T1再T2结果相同,因此调度(1)是可串行化调度。通过并发执行调度(2),得到数据A=18000,B=32000,与T1再T2和先T2再T1的结果都不相同,因此调度(1)是非可串行化调度。,7.2.3 并发执行正确性准则,事务并发控制是对多事务并发执行中所有操作按照正确方式进行调度,避免造成数据不一致性,使得一个用户事务执行不受其他事务干扰。并发控制技术是采用封锁机制,其基本思想
12、是如果事务T要修改数据A,在读A前先封锁A,此时,其他事务不能读和修改A,直到T修改并写回A并解除对A封锁为止。,7.2.4 并发执行基本技术,1.封锁概念 当一个事务T需要对某些数据对象进行操作(读/写)时,须向系统提出申请,对其加以封锁;在获得加锁后,即具有对此数据一定操作与控制权限,而其他事务不能对加锁数据随意操作。当事务T操作完成之后即释放锁,此后数据即可为其他事务操作服务。,7.2.4 并发执行基本技术,2.两种封锁类型(1)排它锁 排它锁(eXclusive Lock)又称为写锁或X锁,其含义是:事务T对数据A加X锁后,T可以对加X锁的A进行读写,而其它事务只有等到T解除X锁之后,
13、才能对A进行封锁和操作(包括读写)。,7.2.4 并发执行基本技术,(2)共享锁共享锁(Sharing Lock)又称为读锁或S锁。其含义是:事务T对数据A加S锁之后,T可以读A但不能写A;同时其它事务可以对A加S锁但不能加X锁。,7.2.4 并发执行基本技术,7.2.4 并发执行基本技术,排它锁和共享锁的控制方式可以用图7-8所示的相容矩阵表示。其中,Y=YES,表示相容的请求;N=NO,表示不相容的请求。,7.2.4 并发执行基本技术,3.封锁粒度逻辑粒度:属性(值),属性(值)集合;元组;关系表;数据库。物理粒度:物理页面;索引。,7.2.4 并发执行基本技术,1三级封锁协议与数据一致性
14、(1)一级封锁协议一级封锁协议的内容是:事务T在对数据A写操作之前,必须对A加X锁;保持加锁状态直到事务结束(包括Commit与Rollback)方可释放加在A上的X锁。以图7-5(a)为例,对它做一级封锁后即可避免修改丢失,如图7-9所示。,7.2.5 封锁协议,7.2.5 封锁协议,(2)二级封锁协议考虑下面封锁方式:事务T读取数据A前先对A加S锁,读完后即释放加在A上S锁。此种封锁方式与一级封锁协议联合构成二级封锁协议。二级封锁协议包含一级封锁协议内容。按照二级封锁协议,事务对数据A做读、写操作时使用X锁,从而防止了丢失数据;做读操作时使用S锁,从而防止了读脏数据。以图8-5(b)为例,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 事务管理

链接地址:https://www.desk33.com/p-750588.html