版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 事务的基本概念事务的基本概念数据库恢复概述数据库恢复概述 SQL SQL对事务管理的支持对事务管理的支持事务事务本章小结本章小结 7.1 事务的基本概念事务的基本概念1、事务、事务(Transaction) 是用户定义的一个数据库操作序列,这些操作要么全是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。做,要么全不做,是一个不可分割的工作单位。n事务和程序关系:事务和程序关系: (1)程序是静止的,事务是动态的。事务是程序的执)程序是静止的,事务是动态的。事务是程序的执行而不是程序本身。行而不是程序本身。 (2)一个程序可分为多个独立部分同时执行,每一执
2、)一个程序可分为多个独立部分同时执行,每一执行则是一个不同的事务,即一个程序中可包含多个事务行则是一个不同的事务,即一个程序中可包含多个事务n事务生成:事务生成:n用户显式地定义事务用户显式地定义事务n由由DBMS按缺省自动划分事务按缺省自动划分事务n在在SQL语言中,定义事务的语句有三条:语言中,定义事务的语句有三条: BEGIN TRANSACTION 事务开始事务开始 COMMIT -事务提交事务提交 ROLLBACK -事务回滚事务回滚n事务的分类:事务的分类: (1)只读型只读型 SET TRANSACTION SET TRANSACTION READ ONLYREAD ONLY (
3、2)读写型读写型 SET TRANSACTION SET TRANSACTION READ WRITEREAD WRITE 2、事务的状态、事务的状态执行事务执行事务事务无法继事务无法继续正常执行续正常执行事务回滚,数据库恢事务回滚,数据库恢复到事务开始前状态复到事务开始前状态最后一条语最后一条语句被执行后句被执行后成功完成,永成功完成,永久写入数据库久写入数据库活动活动状态状态 失败失败 状态状态 中止中止 状态状态 提交提交 状态状态 局部提交局部提交 状态状态 事务定义语句与状态的关系事务定义语句与状态的关系 ROLLBACKROLLBACKCOMMITCOMMITBEGIN BEGIN
4、 TRANSACTIONTRANSACTION3、事务的特性(、事务的特性(ACID)v 原子性原子性v 一致性一致性v 隔离性隔离性v 持续性持续性nACID特性遭到破坏的因素有:特性遭到破坏的因素有: (1)多个事务并发运行时,不同事务的操作交)多个事务并发运行时,不同事务的操作交叉执行;叉执行; (2)事务在运行过程中被强行停止)事务在运行过程中被强行停止。4、更新事务的执行与恢复更新事务的执行与恢复 更新事务的执行要求:更新事务的执行要求: 更新事务在活动状态下对数据库的任何修改都不能直接更新事务在活动状态下对数据库的任何修改都不能直接在磁盘中进行,而只能在内存缓冲区中进行。在磁盘中进
5、行,而只能在内存缓冲区中进行。更新事务的恢复:更新事务的恢复:(1 1)从活动状态转入失败状态的恢复)从活动状态转入失败状态的恢复 (2 2)从局部提交状态转入失败状态的恢复。)从局部提交状态转入失败状态的恢复。 7. 2 数据库恢复概述数据库恢复概述n数据库的恢复:数据库的恢复: 指指DBMS必须具有把数据库从错误状态恢复到某一已必须具有把数据库从错误状态恢复到某一已知的正确状态知的正确状态(亦称为一致状态或完整状态亦称为一致状态或完整状态)的功能。的功能。 数据库恢复原理:数据库恢复原理:冗余冗余 建立冗余数据常用技术:建立冗余数据常用技术:n数据转储数据转储n登记日志文件登记日志文件一、
6、数据转储一、数据转储1. 数据转储的概念数据转储的概念 转储即转储即DBA定期地将定期地将整个数据库复制到磁带整个数据库复制到磁带或另一个磁盘上保存起或另一个磁盘上保存起来的过程。这些备用的来的过程。这些备用的数据文本称为数据文本称为后备副本后备副本或后援副本或后援副本。正常正常运行运行Ta Tb Tf 故障故障发生点发生点得到得到副本副本 转储转储 运行事务运行事务恢复恢复 装副本装副本重新运行事务重新运行事务 数据转储与数据转储与恢复恢复 例例 2、静态转储和动态转储静态转储和动态转储(1)静态转储)静态转储:是在系统中无运行事务时进行的:是在系统中无运行事务时进行的转储操作。转储操作。
7、静态转储得到的一定是一个数据一致性的副静态转储得到的一定是一个数据一致性的副本。本。 (2)动态转储)动态转储:是指转储期间允许对数据库进行:是指转储期间允许对数据库进行存取或修改。即转储和用户事务可以并发执行。存取或修改。即转储和用户事务可以并发执行。3、海量转储和增量转储海量转储和增量转储 (1)海量转储:海量转储:每次转储全部数据库。每次转储全部数据库。 (2)增量转储:增量转储:每次只转储上一次转储后更新过每次只转储上一次转储后更新过的数据。的数据。 二、登记(建立)日志文件二、登记(建立)日志文件 1、日志文件的格式和内容、日志文件的格式和内容 日志文件日志文件用来记录事务对数据库的
8、更新操作的文件。用来记录事务对数据库的更新操作的文件。n日志文件主要有两种格式:日志文件主要有两种格式:v以记录为单位以记录为单位v以数据块为单位以数据块为单位(1)以记录为单位的日志文件内容:)以记录为单位的日志文件内容:v 事务开始、结束标记事务开始、结束标记v 操作对象(表、属性等)操作对象(表、属性等)v更新前、后值更新前、后值n例:日志文件例:日志文件 事务编号事务编号 表表 元组标识元组标识 属性属性 更新前更新前 更新后更新后 201 201 * * *事务开始事务开始 201 201 库存库存 k102 k102 在库数量在库数量 410 310410 310 201 201
9、应收帐应收帐 801-2341233 801-2341233 余额余额 1000 60001000 6000 201 201 * * *事务提交事务提交(2 2)以数据块为单位的日志文件内容:)以数据块为单位的日志文件内容:n事务标识事务标识n更新前、后的数据块更新前、后的数据块 2 2、日志文件的作用、日志文件的作用 进行事务故障、系统进行事务故障、系统故障恢复,并协助后备故障恢复,并协助后备副本进行介质故障恢复。副本进行介质故障恢复。3 3、登记日志文件、登记日志文件应遵循两条原则:应遵循两条原则:(1)(1)登记的次序严格按并发事务登记的次序严格按并发事务执行的时间次序。执行的时间次序。
10、(2)(2)必须先写日志文件,后写数必须先写日志文件,后写数据库。据库。正常正常运行运行Ta Tb Tf 故障故障发生点发生点 静态转储静态转储 运行事务运行事务利用日志文件利用日志文件恢复事务恢复事务 登记日志文件登记日志文件登记日志文件登记日志文件恢复恢复 装副本装副本继续运行继续运行 一、事务故障一、事务故障及恢复及恢复事务故障事务故障: 是指事务运行过程中由于种种原因使事务未运是指事务运行过程中由于种种原因使事务未运行至正常终止点而夭折的情况。如:行至正常终止点而夭折的情况。如:n运算溢出运算溢出n死锁而被选中撤销该事务死锁而被选中撤销该事务n违反了完整性规则等违反了完整性规则等事务故
11、障的恢复事务故障的恢复: (1) (1)反向扫描文件日志,查找该事务的更新操作。反向扫描文件日志,查找该事务的更新操作。 (2)(2)对该事务的更新操作执行逆操作。对该事务的更新操作执行逆操作。 (3)(3)重复重复(1)(1)、(2)(2)直到遇此事务的开始标记。直到遇此事务的开始标记。二、系统故障二、系统故障及恢复及恢复(软故障)(软故障)系统故障系统故障:是指造成系统停止运转的任何事件,使得系统是指造成系统停止运转的任何事件,使得系统要重新启动。要重新启动。n例如,特定类型的硬件错误例如,特定类型的硬件错误(CPU故障故障)、操作系统故障、操作系统故障、DBMS代码错误、突然停电等。代码
12、错误、突然停电等。系统故障的恢复系统故障的恢复:n恢复操作:恢复操作:v要撤销故障发生时未完成的事务要撤销故障发生时未完成的事务v重做重做(REDO)已完成的事务已完成的事务n系统故障的恢复是由系统在重新启动时自动完成的,不系统故障的恢复是由系统在重新启动时自动完成的,不需要用户干预。需要用户干预。三、介质故障(硬故障)三、介质故障(硬故障)介质故障介质故障:是指外存设备故障。如:是指外存设备故障。如:n磁盘损坏磁盘损坏n磁头碰撞盘面磁头碰撞盘面n瞬时强磁场干扰瞬时强磁场干扰介质故障的恢复介质故障的恢复: (1)(1)装入最新的数据库后备副本,使数据库恢复到最近一次转储时装入最新的数据库后备副
13、本,使数据库恢复到最近一次转储时的一致性状态。的一致性状态。 (2)(2)装入相应的日志文件副本,重做已完成的事务。装入相应的日志文件副本,重做已完成的事务。 介质故障的恢复需要介质故障的恢复需要DBA介入。但介入。但DBA只需要重装最近转储只需要重装最近转储的数据库副本和有关的各日志文件副本,然后执行系统提供的恢的数据库副本和有关的各日志文件副本,然后执行系统提供的恢复命令即可,具体的恢复操作仍由复命令即可,具体的恢复操作仍由DBMS完成。完成。四、四、具有检查点的恢复技术具有检查点的恢复技术 n利用日志文件进行数据库恢复时存在的问题:利用日志文件进行数据库恢复时存在的问题:(1)搜索整个日
14、志文件将耗费大量的时间。)搜索整个日志文件将耗费大量的时间。(2)很多需要)很多需要REDO处理的事务实际上已经将它们的处理的事务实际上已经将它们的更新操作结果写到数据库中了,然而恢复子系统又重新执更新操作结果写到数据库中了,然而恢复子系统又重新执行了这些操作,浪费了大量时间。行了这些操作,浪费了大量时间。n解决:解决:使用检查点方法。使用检查点方法。 当事务当事务T在一个检查点之前提交,在一个检查点之前提交,T对数据库所做的修对数据库所做的修改一定都已经写入数据库,这样,在进行恢复处理时,就改一定都已经写入数据库,这样,在进行恢复处理时,就不必对事务不必对事务T执行执行REDO操作,从而改善
15、了恢复效率。操作,从而改善了恢复效率。 n增加:增加:日志文件中的检查点记录日志文件中的检查点记录 一个重新开始文件一个重新开始文件 并让恢复子系统在登录日志文件期间动态地维护日志。并让恢复子系统在登录日志文件期间动态地维护日志。n检查点记录的内容包括检查点记录的内容包括: 建立检查点时刻所有正在执行的事务清单建立检查点时刻所有正在执行的事务清单(Ti)。 各事务最近一个日志记录的地址各事务最近一个日志记录的地址(Di)。Ci的记录地址的记录地址Cj的记录地址的记录地址重新开始文件重新开始文件日志文件日志文件T1 D1 T2 D2 日日志志文文件件检查点检查点记录记录检查点检查点Ci的重新的重
16、新开始记开始记录录n动态维护日志文件的方法是周期性地执行动态维护日志文件的方法是周期性地执行: 建立检查点,保存数建立检查点,保存数据库状态。据库状态。具体步骤是具体步骤是: 将当前所有日志记录写入磁盘日志文件上;将当前所有日志记录写入磁盘日志文件上; 在日志文件中写入一个检查点记录;在日志文件中写入一个检查点记录; 将当前所有数据记录写入磁盘的数据库中;将当前所有数据记录写入磁盘的数据库中; 把检查点记录在日志文件中的地址写入重新开始文件。把检查点记录在日志文件中的地址写入重新开始文件。恢复系统将根据事务的不同状态采取不同的恢复策略恢复系统将根据事务的不同状态采取不同的恢复策略:时时间间系统
17、故障系统故障Ti检查点检查点TcT1T2T3T4T5在检查点前开始在检查点前开始,在在其后且故障点前提交其后且故障点前提交撤销撤销重做重做不重做不重做n系统使用检查点方法进行恢复的系统使用检查点方法进行恢复的步骤步骤是:是: 从重新开始文件中找到最后一个检查点记录在日志文件中的地从重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录。址,由该地址在日志文件中找到最后一个检查点记录。 由该检查点记录得到检查点建立时刻所有正在执行的事务清单由该检查点记录得到检查点建立时刻所有正在执行的事务清单ACTIVE-LIST。 从检查点开始正向扫描日志文件从检查
18、点开始正向扫描日志文件 如有新开始的事务如有新开始的事务Tj,把把Tj暂时放入暂时放入UNDO-LIST队列;队列; 如有提交的事务如有提交的事务Tj,把,把Tj从从UNDO-LIST队列移到队列移到REDO-LIST 队列;直到日志文件结束。队列;直到日志文件结束。 对对UNDO-LIST中的每个事务中的每个事务 执行执行UNDO操作,对操作,对REDO-LIST 中的每个事务执行中的每个事务执行REDO操作。操作。五、五、数据库镜像数据库镜像 n根据根据DBA的要求,自动把整的要求,自动把整个数据库或其中的关键数据个数据库或其中的关键数据复制到另一个磁盘上。复制到另一个磁盘上。DBMS自动
19、保证镜像数据与自动保证镜像数据与主数据的一致性。主数据的一致性。n作用:作用: n一旦出现介质故障,可由镜一旦出现介质故障,可由镜像磁盘继续提供使用,同时像磁盘继续提供使用,同时DBMS自动利用镜像磁盘数自动利用镜像磁盘数据进行数据库的恢复,不需据进行数据库的恢复,不需要关闭系统和重装数据库副要关闭系统和重装数据库副本。本。n在没有出现故障时,数据库在没有出现故障时,数据库镜像还可以用于并发操作,镜像还可以用于并发操作,即当一个用户对数据加排它即当一个用户对数据加排它锁修改数据时,其他用户可锁修改数据时,其他用户可以读镜像数据库上的数据,以读镜像数据库上的数据,而不必等待该用户释放锁。而不必等
20、待该用户释放锁。 n图图7.6 数据库镜像数据库镜像update镜像镜像DB复制复制应用应用1应用应用3应用应用4应用应用2read恢复恢复update并发操作并发操作在多用户共享系统中,多个用户同时存在多用户共享系统中,多个用户同时存取同一数据的情形称为并发操作。取同一数据的情形称为并发操作。n并发操作可能带来的问题:并发操作可能带来的问题: (1)破坏数据库的一致性)破坏数据库的一致性 (2)破坏事务的隔离性)破坏事务的隔离性n并发操作带来的三类数据不并发操作带来的三类数据不一致性:一致性: 1. 丢失修改丢失修改 T1、T2读入同一数据并修读入同一数据并修改,改,T2提交的结果破坏了提交
21、的结果破坏了T1提交的结果。提交的结果。A=16甲事务甲事务读出读出A=16乙事务乙事务 读出读出A=16A1写回写回A1 写回写回A=15 2不可重复读不可重复读 T1读数据后,读数据后,T2执行更执行更新操作,使新操作,使T1无法再现无法再现前一次读取结果。前一次读取结果。B=100甲事务甲事务读出读出B=100乙事务乙事务 删除删除B 读不出读不出Bn不可重复读包括三种情况:不可重复读包括三种情况: (1) 某事务两次读同一数据时,某事务两次读同一数据时,得到的值不同。得到的值不同。 (2)某事务再次按相同条件读某事务再次按相同条件读取数据时,发现记录丢失。取数据时,发现记录丢失。 (3
22、)某事务再次按相同条件读取某事务再次按相同条件读取数据时,发现多了记录。数据时,发现多了记录。 3脏读脏读 T1修改数据并写回修改数据并写回磁盘,磁盘,T2读取同一读取同一数据后,数据后,T1被撤销被撤销即数据恢复原值,即数据恢复原值,T2读的数据与读的数据与DB中中的不一致,称的不一致,称“脏脏”数据。数据。n并发控制方法:并发控制方法:封封锁锁C=100甲事务甲事务读出读出C C*2写回写回乙事务乙事务 读出读出 C=200撤销撤销C=200C=100“脏脏”数据数据n封锁封锁:指事务:指事务T在对某个数据在对某个数据对象操作之前,对其加锁。对象操作之前,对其加锁。在在T未释放锁之前,其他
23、的事未释放锁之前,其他的事务不能更新此数据对象。务不能更新此数据对象。n基本的封锁类型有两种:基本的封锁类型有两种:n排它锁排它锁(X锁或写锁锁或写锁):n保证其他事务在保证其他事务在T释放释放A上的上的锁之前,不能再读取和修改锁之前,不能再读取和修改A。n共享锁共享锁(S锁或读锁锁或读锁):n保证其他事务可以读保证其他事务可以读A,但在,但在T释放释放A上的上的S锁之前,不能锁之前,不能对对A做任何修改。做任何修改。数据数据对象对象A事务事务TS锁锁T可读、不可改可读、不可改A禁止加禁止加X锁锁数据数据对象对象A事务事务TX锁锁T可读、修改可读、修改A事务事务Ti禁止加锁禁止加锁事务事务Ti
24、可加可加S锁锁n共享锁(S锁)n排它锁(X锁)n封锁类型的相容矩阵 T1 T2 X S - X N N Y S N Y Y Y=Yes,相容的请求 - Y Y Y N=No,不相容的请求 n封锁协议:对数据对象加锁时,约定的规则。封锁协议:对数据对象加锁时,约定的规则。n封锁协议是为了保证并发操作的正确调度的。封锁协议是为了保证并发操作的正确调度的。n三级封锁协议:三级封锁协议: 1、一级封锁协议、一级封锁协议 是事务是事务T在修改数据在修改数据R之前必须先对其加之前必须先对其加X锁,直到锁,直到事务事务T结束结束(COMMIT和和ROLLBACK)才释放。才释放。n作用:可防止丢失修改,并保
25、证事务作用:可防止丢失修改,并保证事务T是可恢复的。是可恢复的。2、二级封锁协议、二级封锁协议 是一级封锁协议加上事务是一级封锁协议加上事务T在读取数据在读取数据R之前必须先对其加之前必须先对其加S锁,锁,读完后即可释放读完后即可释放S锁。锁。n作用:防止丢失修改,还可进一步防止读作用:防止丢失修改,还可进一步防止读“脏脏”数据。数据。 3、三级封锁协议、三级封锁协议 是一级封锁协议加上事务是一级封锁协议加上事务T在读取数据在读取数据R之前必须先之前必须先对其加对其加S锁,直到事务结束才释放。锁,直到事务结束才释放。n作用:除防止丢失修改和读作用:除防止丢失修改和读“脏脏”数据外,还可防止数据
26、外,还可防止不可重复读。不可重复读。n活锁:活锁:使某个事务永远处于等待状态,而得不到执行的使某个事务永远处于等待状态,而得不到执行的现象称为活锁。现象称为活锁。事务事务T1S锁锁请求加锁请求加锁事务事务T2事务事务T3事务事务T4等待等待数据数据D避免活锁的方法:避免活锁的方法:先来先服务。先来先服务。T2申请D上的X锁,而D上已有S锁,此时,T3、T4. 分别申请D上的S锁,造成T2永远等待。加加S锁锁n死锁:死锁:P.314数据数据R1数据数据R2事务事务T1事务事务T2请求加锁请求加锁1、死锁的预防、死锁的预防 (OS中预防死锁的方法)中预防死锁的方法)(1)一次加锁法)一次加锁法 要
27、求每个事务必须一次将所要使用的数据全部加锁。要求每个事务必须一次将所要使用的数据全部加锁。缺点:降低系统的并发度;难于确定每个事务所要封锁的缺点:降低系统的并发度;难于确定每个事务所要封锁的数据对象。数据对象。 (2)顺序封锁法)顺序封锁法 预先对数据对象规定一个封锁顺序,所有事务都按这个预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁。顺序实行封锁。缺点:难于按规定的顺序施加封锁。缺点:难于按规定的顺序施加封锁。注意:注意:这些方法并不适合数据库的特点。这些方法并不适合数据库的特点。2 2、死锁的诊断、死锁的诊断 (1)(1)超时法超时法 事务等待时间超过规定时限,事务等待时间超
28、过规定时限,就认为发生了死锁。就认为发生了死锁。 2 2、死锁的诊断、死锁的诊断 (1)(1)超时法超时法 事务等待时间超过规定时限,事务等待时间超过规定时限,就认为发生了死锁。就认为发生了死锁。 (2)(2)等待图法等待图法 检测事务等待图中是否存在回路。检测事务等待图中是否存在回路。n事务等待有向图:结点是事务,弧线T1T2表示事务T1正在等待T2加了锁的项。若图中出现回路,表明有死锁发生。n当死锁状态发生时,系统必须回滚其中一个事务或多个事务,且使得代价最小。T1T2T5T4T3T1T2T5T4T3无环等待图有环等待图n用事务等待图动态反映所有事务的等待情况 n事务等待图是一个有向图G=
29、(T,U) nT为结点的集合,每个结点表示正运行的事务 nU为边的集合,每条边表示事务等待的情况 n若T1等待T2,则T1,T2之间划一条有向边,从T1指向T2 n并发控制子系统周期性地(比如每隔1 min)检测事务等待图,如果发现图中存在回路,则表示系统中出现了死锁。2 2、死锁的诊断、死锁的诊断 (1)(1)超时法超时法 事务等待时间超过规定时限,事务等待时间超过规定时限,就认为发生了死锁。就认为发生了死锁。 (2)(2)等待图法等待图法 检测事务等待图中是否存在回路。检测事务等待图中是否存在回路。3 3、死锁的解除、死锁的解除 选择一个处理代价最小的事务,选择一个处理代价最小的事务,将其
30、撤消,释放此事务持有的所有锁。将其撤消,释放此事务持有的所有锁。时间 更新事务T1 T2 T3 t1 T1: SRead A t2 T2: SRead B t3 T2: B=B-10 t4 T2: XWrite B t5 T3: SRead A t6 T3: A=A+10 t7 T3: XWrite A t8 T1: SRead B t9 T2: SRead A t10 T4: SRead C t11 T4: C=C+5 t12 T4: Xwrite C t13 T4: Commit n调度:调度:事务的执行次序。事务的执行次序。n调度方式:调度方式:(1)串行调度)串行调度(2)并行调度)并
31、行调度n串行调度:串行调度:多个事务依次执行的调度。多个事务依次执行的调度。n并行调度:并行调度:利用分时的方法处理多个事务的调度。利用分时的方法处理多个事务的调度。n可串行化调度可串行化调度 :如果一个并发调度执行的结果等价如果一个并发调度执行的结果等价于某一个串行调度的结果,称这种调度策略为可串于某一个串行调度的结果,称这种调度策略为可串行化的调度。行化的调度。n例:表例:表8.5的串行调度(的串行调度(T1T2) 执行结果:执行结果:A=3,B=4;n例:表例:表8.5的串行调度(的串行调度(T2T1) 执行结果:执行结果:A=4,B=3;n例:表例:表8.5并行调度并行调度(d) 执行
32、结果:执行结果:A=3,B=4; 与与T1T2的串行调度结果相同,为的串行调度结果相同,为可串行化调度可串行化调度。n例:表例:表8.5 并行调度并行调度 执行结果:执行结果:A=3,B=3; 与与T1T2, T2T1的串行调度结果都相同,为的串行调度结果都相同,为不可串不可串行化调度行化调度。注意注意 :(:(1)一组事务并发调度的正确性准则:一组事务并发调度的正确性准则:可串行可串行化调度。化调度。 (2)一组事务的可串行化调度)一组事务的可串行化调度不惟一不惟一。n两段锁协议:两段锁协议:指所有事务必须分两个阶段对数据项加锁指所有事务必须分两个阶段对数据项加锁和解锁。和解锁。n获得封锁:
33、获得封锁:对任何数据进行读、写操作之前,要申请并对任何数据进行读、写操作之前,要申请并获得对该数据的封锁;获得对该数据的封锁;n释放封锁:释放封锁:释放一个封锁后,事务不再申请和获得任何释放一个封锁后,事务不再申请和获得任何其他封锁。其他封锁。 例如:事务例如:事务T遵守两段锁协议,其封锁序列是;遵守两段锁协议,其封锁序列是; Slock A Slock B Xlock C Unlock B Unlock A Unlock C |n结论:结论:若并发执行的所有事务均遵守两段锁协议,则对若并发执行的所有事务均遵守两段锁协议,则对这些事务的任何并发调度策略都是可串行化的。这些事务的任何并发调度策略
34、都是可串行化的。n说明:事务遵守两段锁协议是可串行化调度的充分条件,说明:事务遵守两段锁协议是可串行化调度的充分条件,而不是必要条件。而不是必要条件。n封锁粒度封锁粒度:封锁对象的大小。封锁对象的大小。n封锁对象:封锁对象:属性、元组、关系、数据库属性、元组、关系、数据库n封锁粒度与系统的并发度和并发控制的开销密切相关:封锁粒度与系统的并发度和并发控制的开销密切相关:n 封锁的粒度越大,并发度越小,系统开销越小;封锁的粒度越大,并发度越小,系统开销越小;n 封锁的粒度越小,并发度越高,系统开销越大。封锁的粒度越小,并发度越高,系统开销越大。n多粒度封锁:多粒度封锁:一个系统中同时支持多种封锁粒
35、度供不同一个系统中同时支持多种封锁粒度供不同事务选择的封锁方法。事务选择的封锁方法。n封锁粒度选择原则:封锁粒度选择原则:(1)需处理大量元组的事务以关系为封锁粒度。)需处理大量元组的事务以关系为封锁粒度。(2)需处理多个关系的大量元组的事务以数据库为封锁)需处理多个关系的大量元组的事务以数据库为封锁粒度。粒度。(3)处理少量元组的事务以元组为封锁粒度。)处理少量元组的事务以元组为封锁粒度。一、多粒度封锁一、多粒度封锁1. 定义多粒度树定义多粒度树n四级粒度树四级粒度树关系关系R1 关系关系Rn 数据库数据库元组元组 元组元组 元组元组 元组元组列列 列列 列列 列列 2. 多粒度树封锁协议多
36、粒度树封锁协议n可对多粒度树中的每个结点可对多粒度树中的每个结点独立加锁。(注意:自动对独立加锁。(注意:自动对其所有后裔结点加同类型的其所有后裔结点加同类型的锁。)锁。)n多粒度封锁方式:显式封锁多粒度封锁方式:显式封锁和隐式封锁。和隐式封锁。 n显式封锁显式封锁是应事务的要求直接是应事务的要求直接加到数据对象上的封锁;加到数据对象上的封锁;n隐式封锁隐式封锁是该数据对象没有独是该数据对象没有独立加锁,是由于其上级结点加立加锁,是由于其上级结点加锁而使该数据对象加上了锁。锁而使该数据对象加上了锁。数据库数据库关系关系R1 关系关系Rn 元组元组 元组元组 元组元组 元组元组事务事务T1列列 列列 列列 列列 n封锁冲突检查:封锁冲突检查: (1)与显示封锁冲突(本结点)与显示封锁冲突(本结点) (2)显示封锁
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年信息安全防护与监测系统项目可行性研究报告
- 2025年智慧农业示范园区建设项目可行性研究报告
- 2025年区块链技术在供应链应用可行性研究报告
- 2025年城乡一体化发展战略可行性研究报告
- 2025年智能周边设施建设项目可行性研究报告
- 供货保证协议书
- 中缅边境协议书
- 美吉姆销售协议书
- 高一历史期中考试题库含解析及答案
- 《GB-T 37716-2019信息技术 学习、教育和培训 电子课本与电子书包术语》专题研究报告
- 塑料制品行业财务工作年度绩效报告
- 皮肤科护理中的振动按摩在皮肤病管理中的应用
- 20以内进位加法100题(精心整理6套-可打印A4)
- 肠内营养考评标准终
- 2023届高考专题复习:小说专题训练群体形象与个体形象(含答案)
- 项目全周期现金流管理培训
- 生物化学实验智慧树知到答案章节测试2023年浙江大学
- 等腰三角形复习课教案
- GB/T 39741.1-2021滑动轴承公差第1部分:配合
- GB/T 19228.3-2012不锈钢卡压式管件组件第3部分:O形橡胶密封圈
- GB/T 18370-2014玻璃纤维无捻粗纱布
评论
0/150
提交评论