数据库事务管理教学课程课件

上传人:仙*** 文档编号:241431083 上传时间:2024-06-25 格式:PPT 页数:52 大小:407.50KB
返回 下载 相关 举报
数据库事务管理教学课程课件_第1页
第1页 / 共52页
数据库事务管理教学课程课件_第2页
第2页 / 共52页
数据库事务管理教学课程课件_第3页
第3页 / 共52页
点击查看更多>>
资源描述
精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远数据库事务管理教学课数据库事务管理教学课程程2024/6/25精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远第第8 8章章 数据库事务管理数据库事务管理精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远本章内容概述本章内容概述8.1事务与事务管理8.2并发控制与封锁机制8.3数据库恢复精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远8.18.1事务与事务管理事务与事务管理n8.1.1 事务的概念n事务定义n事务是构成数据库处理逻辑单元的可执行程序,由用户定义的一组操作序列(包括插入、删除、修改或检索等操作)组成,序列中的操作要么全做,要么全不做,是一个不可分割的工作单位。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远事务概念n 事务特性(ACID)n原子性原子性(Atomicity)事务中包含的所有操作要么全做,要么全不做原子性由恢复机制恢复机制实现n一致性一致性(Consistency)事务的隔离执行必须保证数据库的一致性事务开始前,数据库处于一致性的状态;事务结束后,数据库必须仍处于一致性状态数据库的一致性状态由用户用户来负责,由并发控制并发控制机制机制实现如银行转帐,转帐前后两个帐户金额之和应保持不变(意大利香肠)精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远事务概念n隔离性隔离性(Isolation)系统必须保证事务不受其它并发执行事务的影响对任何一对事务T1,T2,在T1看来,T2要么在T1开始之前已经结束,要么在T1完成之后再开始执行隔离性通过并发控制机制并发控制机制实现n持续性持续性(Durability)一个事务一旦提交之后,它对数据库的影响必须是永久的系统发生故障不能改变事务的持久性持续性通过恢复机制恢复机制实现精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远8.1.2可串行性理论 对于调度S中的每个事务T,如果T中所有的操作在调度中都是连续执行的,那么就称调度S是串行的串行的;否则调度S是非串非串行的。行的。串行调度中不会发生不同事务的交替操作。如果具有n个事务的调度S等价于某个具有相同n个事务的串行调度,那么S就是可串行化调度。可串行化调度。冲突操作冲突操作是指不同的事务对同一个数据的”读写”操作和“写写”操作,其他操作时不冲突的。不同事务的冲突操作和同一事务的两个操作时不能交换的。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远n例 8.1 有两个调度:事务T1=R1(A)W1(A)R1(B)W1(B),事务T2=R2(A)W2(A)R2(B)W2(B)n有调度S1=R1(A)W1(A)R2(A)W2(A)R1(B)W1(B)R2(B)W2(B)nR2(A)W2(A)与 R1(B)W1(B)这两组操作操作的对象不是同一对象,因此不是冲突操作,故把R2(A)W2(A)与 R1(B)W1(B)交换得到:nS2=R1(A)W1(A)R1(B)W1(B)R2(A)W2(A)R2(B)W2(B)nS2等价于一个串行调度T1T2,所以S1是冲突可串行化调度。n注意:冲突可串行化调度是可串行化调度的充分条件,不是必要条件。还有不满足冲突可串行化条件的可串行化调度。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远8.1.3 8.1.3 事务基本操作与活动状态事务基本操作与活动状态n1.事务操作的组成事务操作的组成n事务操作可以看做若干部分组成事务操作可以看做若干部分组成n(1)事务开始()事务开始(BEGIN TRANSACTION):事):事务开始执行;务开始执行;n(2)事务读写操作()事务读写操作(READ/WRITE TRANSACTION):事务进行数据操作):事务进行数据操作精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远8.1.3 8.1.3 事务基本操作与活动状态事务基本操作与活动状态(3)事务提交()事务提交(COMMIT TRANSACTION):事务完成所有数据操作,同时保存操作事务完成所有数据操作,同时保存操作结果,它标志着事务成功完成。结果,它标志着事务成功完成。(4)事务回滚()事务回滚(ROLLBACK TRANSACTION):事务未完成所有数据):事务未完成所有数据操作,重新返回到事务开始状态,标志着操作,重新返回到事务开始状态,标志着事务的撤销。事务的撤销。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远事务的活动状态事务的活动状态精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远8.1.4 SQL8.1.4 SQL对事务管理的支持对事务管理的支持n标准SQL规定事务的开始一般是隐含的,而事务的结束一般使用COMMIT TRANSACTION ROLLBACK TRANSACTION 语句。其中,COMMIT TRANSACTION 表示提交事务,执行该语句后,事务对数据库的更新结果将被写入物理磁盘数据库;而ROLLBACK TRANSACTION 表示回滚事务,执行该语句后,DBMS 将撤消事务对数据库所作的全部操作,就像事务没有被执行一样。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远8.2 8.2 并发控制与封锁并发控制与封锁n8.2.1 并发操作与数据的不一致性n并发操作可能带来的数据不一致性情况有三种:n1.丢失修改丢失修改n2.读过时数据读过时数据n3.读读“脏脏”数据数据精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远8.2.2封锁 n排它锁和共享锁n封锁协议n活锁和死锁 封锁就是事务封锁就是事务 T 在对某个数据对象如关系、元组在对某个数据对象如关系、元组等进行查询或更新操作以前等进行查询或更新操作以前,应先向系统发出对该数据应先向系统发出对该数据对象进行加锁的请求对象进行加锁的请求,否则就不可以进行相应的操作否则就不可以进行相应的操作,而而事务在获得了对该数据对象的锁以后事务在获得了对该数据对象的锁以后,其他的事务就不其他的事务就不能查询或更新此数据对象能查询或更新此数据对象,直到相应的锁被释放为止。直到相应的锁被释放为止。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远1)排它锁和共享锁n排它锁和共享锁是最基本的封锁方式。排它锁和共享锁是最基本的封锁方式。n如果事务如果事务 T 对数据对象对数据对象 Y 加上了排它锁加上了排它锁(记为记为 X 锁锁),那么,那么 T 既可以读取既可以读取 Y,也可以更新,也可以更新 Y。n如果事务如果事务 T 对数据对象对数据对象 Y 加上了共享锁加上了共享锁(记为记为 S 锁锁),那么,那么 T 可以读取可以读取 Y,但不能更新,但不能更新 Y。n一次加锁锁住的数据单位大小被称为锁的粒度一次加锁锁住的数据单位大小被称为锁的粒度(granularity),如果数据单位比较小,我们说锁是),如果数据单位比较小,我们说锁是细(细(fine)粒度的,否则就说锁是粗()粒度的,否则就说锁是粗(coarse)粒度)粒度的。的。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远2)封锁协议n一级封锁协议n二级封锁协议 n三级封锁协议 封锁协议就是在对数据对象加锁、持锁和封锁协议就是在对数据对象加锁、持锁和释放锁时所约定的一些规则。不同的封锁规释放锁时所约定的一些规则。不同的封锁规则形成了不同的封锁协议则形成了不同的封锁协议精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远(1)一级封锁协议n一级封锁协议规定事务一级封锁协议规定事务 T 在更新数据对象以前,在更新数据对象以前,必须对该数据对象加排它锁,并且直到事务必须对该数据对象加排它锁,并且直到事务 T 结束时才可以释放该锁。结束时才可以释放该锁。n利用一级封锁协议可以防止丢失更新问题的发利用一级封锁协议可以防止丢失更新问题的发生。生。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远(2)二级封锁协议n二级封锁协议规定事务二级封锁协议规定事务 T 在更新数据对象以在更新数据对象以前必须对数据对象加前必须对数据对象加 X 锁,且直到事务锁,且直到事务 T 结束时才可以释放该锁,还规定事务结束时才可以释放该锁,还规定事务 T 在读在读取数据对象以前必须先对其加取数据对象以前必须先对其加 S 锁,读完后锁,读完后即可释放即可释放 S 锁。锁。n二级封锁协议可以防止丢失更新问题,还可二级封锁协议可以防止丢失更新问题,还可以防止未提交依赖问题,但却不能防止不一以防止未提交依赖问题,但却不能防止不一致性分析问题。致性分析问题。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远(3)三级封锁协议n三级封锁协议规定事务三级封锁协议规定事务 T 在更新数据对象在更新数据对象前,必须对数据对象加前,必须对数据对象加 X 锁,且直到事务锁,且直到事务 T 结束时才可以释放该锁,还规定事务结束时才可以释放该锁,还规定事务 T 在读取数据对象以前必须先对其加在读取数据对象以前必须先对其加 S 锁,锁,该该 S 锁也必须在事务锁也必须在事务 T 结束时才可释放。结束时才可释放。n三级封锁协议可以防止丢失更新和未提交依三级封锁协议可以防止丢失更新和未提交依赖问题,还可以防止不一致性分析问题的赖问题,还可以防止不一致性分析问题的发生。但却带来了其他的问题:发生。但却带来了其他的问题:活锁和死活锁和死锁。锁。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远3)活锁和死锁 n(1)活锁)活锁n在多个事务并发执行的过程中,可能会在多个事务并发执行的过程中,可能会存在某个尽管总有机会获得锁的事务却存在某个尽管总有机会获得锁的事务却永远也没得到锁,这种现象称为活锁。永远也没得到锁,这种现象称为活锁。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远n(2)死锁)死锁n多个并发事务处于相互等待的状多个并发事务处于相互等待的状态,其中的每一个事务都在等待态,其中的每一个事务都在等待它们中的另一个事务释放封锁,它们中的另一个事务释放封锁,这样才可以继续执行下去,但任这样才可以继续执行下去,但任何一个事务都没有释放自己已获何一个事务都没有释放自己已获得的锁,也无法获得其他事务已得的锁,也无法获得其他事务已拥有的锁,所以只好相互等待下拥有的锁,所以只好相互等待下去,死锁的情形如图去,死锁的情形如图 8.10 所示。所示。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远n(3)死锁的预防)死锁的预防n数据库中预防死锁的方法有两种。数据库中预防死锁的方法有两种。n第一种方法是要求每个事务必须一次性地第一种方法是要求每个事务必须一次性地将所有要使用的数据加锁或必须按照一个将所有要使用的数据加锁或必须按照一个预先约定的加锁顺序对使用到的数据加锁。预先约定的加锁顺序对使用到的数据加锁。n第二种方法是每当处于等待状态的事务有第二种方法是每当处于等待状态的事务有可能导致死锁时,就不再等待下去,强行可能导致死锁时,就不再等待下去,强行回滚该事务。回滚该事务。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远(4)死锁检测(5)死锁恢复 当系统中存在死锁时,一定要解除死锁。具体的方法是从发生死锁的事务中选择一个回滚代价最小的事务,将其彻底回滚,或回滚到可以解除死锁处,释放该事务所持有的锁,使其他的事务可以获得相应的锁而得以继续运行下去。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远8.2.3 基于时标的并发控制技术 n事务事务 Ti 运行时,有惟一的时间标记,称为时运行时,有惟一的时间标记,称为时戳,用戳,用 TS(Ti)表示,时标技术的基本思想是:表示,时标技术的基本思想是:n(1)每个事务开始执行时,系统为这个事务赋每个事务开始执行时,系统为这个事务赋予一个时标予一个时标(一般为当前时间一般为当前时间),称之为启动时,称之为启动时间,用间,用 TS(Ti)标识。标识。n(2)每个事务所进行的每个读写操作,均具有每个事务所进行的每个读写操作,均具有时标属性。时标属性。n(3)系统标识并保存每个有数据项系统标识并保存每个有数据项 Q 的最近读的最近读时标时标R_TM(Q)和写时标和写时标W_TM(Q)。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远n(4)某个事务某个事务 T 执行到某一读写操作时,比较事务执行到某一读写操作时,比较事务T的的时标时标 TS(Ti)与操作对象与操作对象 Q的最近读写时标:的最近读写时标:n若是读操作,如果若是读操作,如果 TS(Ti)W_TM(Q),则拒绝进行,则拒绝进行读操作,并将读操作,并将 T 的时标赋一个新值的时标赋一个新值(一般为当前时间一般为当前时间),重新启动重新启动T;否则执行读操作,并修改;否则执行读操作,并修改Q的读时标,使得的读时标,使得 R_TM(Q)=max(t,R_TM(Q)。n若是写操作,如果若是写操作,如果 TS(Ti)R_TM(Q)或或 TS(Ti)W_TM(Q),则拒绝读操作,并将,则拒绝读操作,并将T 的时标赋的时标赋一个新值一个新值(一般为当前时间一般为当前时间),重新启动,重新启动T;否则执行读否则执行读操作,并修改操作,并修改 Q 的写时标,使得的写时标,使得 W_TM(Q)=TS(Ti)。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远8.2.4 SQL Server 事务和封锁机制n1.事务 n事务的类型n在 Microsoft SQL Server 系统中,可以把事务分成两种类型。一种是系统提供的事务,另一种是用户定义的事务。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远事务的工作原理精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远2.封锁机制n 封锁类型n(1)共享锁n(2)修改锁n(3)独占锁n(4)意向锁精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远(1)共享锁n共享锁是非独占的,允许多个并发事务读取其锁定的资源。通常情况下,数据被读取后,SQL Server 立即释放共享锁。例如,执行查询 SELECT 命令时,首先锁定第一页,读取之后释放对第一页的锁定,然后锁定第二页。这样,就允许在读操作过程中修改未被锁定的第一页。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远(2)修改锁n修改锁在修改操作的初始化阶段用来锁定可能要被修改的资源,这样可以避免使用共享锁造成的死锁现象。因为使用共享锁时,修改数据的操作分为两步,首先获得一个共享锁读取数据,然后将共享锁升级为独占锁再执行修改操作。这样如果同时有两个或多个事务对一个事务申请了共享锁,在修改数据的时候,这些事务都要将共享锁升级为独占锁。这时,这些事务都不会释放共享锁而是一直等待对方释放,这样就造成了死锁。如果一个数据在修改前直接申请修改锁,在数据修改的时候再升级为独占锁,就可以避免死锁。修改锁与共享锁是兼容的,也就是说一个资源用共享锁锁定后,允许再用修改锁定。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远n(3)独占锁n独占锁是为修改数据而保留的。它所锁定的资源,其他事务不能读取也不能修改。n(4)意向锁n意向锁说明SQL Server有在资源的低层获得共享锁或独占锁的意向。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远 锁冲突及其防止办法n在SQL Server中,系统能够自动定期搜索和处理死锁问题。系统在每次搜索中标识所有等待锁定请求的进程会话,如果在下一次搜索中该被标识的进程仍处于等待状态,SQL Server 就开始递归死锁搜索。当搜索检测到锁定请求环时,系统将根据各进程会话的死锁优先级别来结束一个优先级最低的事务,此后,系统“回滚”该事务,这样,其他事务就有可能继续运行了。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远 手工加锁nSQL Server 系统中建议让系统自动管理锁,但在 SQL Server 中,封锁操作可以通过SELECT、INSERT、DELETE、UPDATE支持显式加锁。n这些语句中进行显示设置封锁时,在指定选择表的同时指定对表所实施的封锁(在FROM 子句中),并且保持到事务结束时再释放封锁。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远8.3 数据库恢复 尽管数据库系统中采取了各种保护措施来保证数据库的安全性和完整性,保证并发事务能够正确执行,但硬件的故障、系统软件和应用软件的错误、操作员的失误以及恶意的破坏仍然是不可避免的。这些故障轻则造成运行事务非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中数据部分或全部丢失。因此,DBMS必须具有把数据库从错误状态恢复到某种逻辑一致的状态(也称为正确状态或完整状态)的功能,这就是数据库的恢复功能。各种现有数据库系统运行情况表明,数据库系统所来用的恢复技术是否行之有效,不仅对系统的可靠程度起着决定性作用,而且对系统的运行效率也有很大影响,是衡量系统性能优劣的重要指标。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远8.3.1数据库恢复的原理及其实现技术n恢复系统应该提供两种类型的功能:一种是生成冗余数据,即对可能发生的故障作某些准备;另一种是冗余重建,即利用这些冗余数据恢复数据库。n生成冗余数据最常用的技术是数据备份和登记日志文件,在实际应用中,这两种方法常结合起来一起使用。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远1.数据备份n备份也称作转储。数据备份(Data Dump)是指定期地将整个数据库复制到多个存储设备(如磁带、磁盘)上保存起来的过程,它是数据库恢复中采用的基本手段。n备份的数据称为后备副本或后援副本,当数据库遭到破坏后就可利用后援副本把数据库有效地加以恢复。备份是十分耗费时间和资源的,不能频繁地进行,应该根据数据库的使用情况确定一个适当的备份周期。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远1)备份的类型 n全备份:即完整的备份整个数据库;n增量备份:增量数据库备份只备份自上次数据库备份后发生更改的数据;n文件和文件组备份:备份数据库文件或文件组,而不是备份数据库;n事务日志备份:只备份事务日志。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远2)动态备份和静态备份n动态备份也称作在线备份,即在做备份时不中断数据库的运行,不中断数据库上的应用程序和事务处理。n静态备份也称作离线或脱机备份,这意味着在做备份时没有任何数据库事务在运行,这种备份方式应是首选的备份方式。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远2.登记日志文件n日志文件(Logging)是用来记录事务对数据库的更新操作的文件。对数据库的每次修改,都将被修改项目的原始值和新值写在一个叫做运行日志的文件中,目的是为数据库的恢复保留详细的数据。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远n在日志文件中需要登记以下内容:n(1)各个事务的开始标记(BEGIN TRANSACTION);n(2)各个事务的结束标记(COMMIT或ROLLBACK);n(3)各个事务的所有更新操作。n这里每个事务开始的标记、每个事务的结束标记和每个更新操作均作为日志文件中的一个日志记录(Logrecord)。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远n登记日志文件必须遵循两条原则:n(1)至少要等到相应运行记录的撤销部分已经写入日志文件中以后,才允许该事务向数据库中写入记录。n(2)直到事务的所有运行记录的撤销和重做两部分都已写入日志文件中以后,才允许事务完成提交处理。n这两条原则称为日志文件的先写原则。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远8.3.2数据库的故障和恢复策略n数据库运行过程中可能发生的故障主要有三类:n 事务故障 n 系统故障n 介质故障n不同的故障其恢复方法也不一样。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远1.事务故障(Transaction Failure)及其恢复n事务故障表示由非预期的、不正常的程序结束所造成的故障。n恢复的具体做法:n(1)反向扫描文件日志(即从最后向前扫描日志文件),查找该事务的更新操作。n(2)对该事务的更新操作执行逆操作。即将日志记录中“更新前的值”写入数据库。这样,如果记录中是插入操作,则相当于做删除操作(因为此时“更新前的值”为空)。若记录中是删除操作,则做插入操作(因为此时“更新后的值”为空);若是修改操作,则相当于用修改前的值代替修改后的值。n(3)继续反向扫描日志文件,查找该事务的其他更新操作,并做同样处理。n(4)如此处理下去,直至读到此事务的开始标记,事务故障恢复就完成了。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远2.系统故障(System Failure)及其恢复n系统故障是指系统在运行过程中,由于某种原因,造成系统停止运转,致使所有正在运行的事务都以非正常方式终止,要求系统重新启动。n恢复的具体做法:n(1)正向扫描日志文件(即从头扫描日志文件),找出在故障发生前已经提交事务,将其事务标识记入重做(REDO)队列。同时还要找出故障发生时尚未完成的事务,将其事务标识记入撤销(UNDO)队列。n(2)对撤销队列中的各个事务进行撤销(UNDO)处理。进行UNDO处理的方法是,反向扫描日志文件,对每个UNDO事务的更新操作执行逆操作,即将日志记录中“更新前的值”写入数据库。n(3)对重做队列中的各个事务进行重做(REDO)处理。进行REDO处理的方法是:正向扫描日志文件,对每个REDO事务重新执行登记的操作。即将日志记录中“更新后的值”写入数据库。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远3.介质故障(Media Failure)及其恢复 n介质故障是指系统在运行过程中,由于辅助存储器介质受到破坏,使存储在外存中的数据部分丢失或全部丢失。n恢复的具体做法:n1)装入最新的数据库副本,使数据库恢复到最近一次转储的可用状态。n2)装入最新的日志文件副本,根据日志文件中的内容重做已完成的事务。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远8.3.3 SQL Server 2005中数据的备份与恢复nSQL Server 2005 可以将数据库备份到很安全的地方,当数据库被破坏时,就可以利用备份好的数据恢复数据库。SQL Server 2005提供了四种数据库备份与恢复的方式:n(1)全库备份:备份整个数据库。n(2)日志备份:备份日志文件。n(3)差异备份:仅备份自上次全库备份后被修改过的数据页。n(4)文件或文件组备份:对组成数据库的文件或文件组进行单独的备份。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远小结n本章详细介绍了数据库的事务及事务管理、并发控制和数据库恢复技术。n事务是数据库的逻辑工作单位,由用户定义的一组操作序列组成,序列中的操作要么全做要么全不做,是一个不可分割的工作单位。n事务和程序是两个概念,一般而言,一个数据库应用程序由若干个事务组成,每个事务可以看做是数据库的一个状态,形成了某种一致性,而整个应用程序的操作过程则是通过不同事务使得数据库由某种一致性不断转换到新的一致性的过程。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远n并发控制是为了防止多个用户同时存取同一数据,造成数据库的不一致性。事务是数据库进行并发控制的基本单位,多个事务的并发调度会带来一些问题,如丢失更新、不一致性分析和未提交依赖等问题。实现并发作的方法主要是封锁技术,基本的封锁类型有排它锁和共享锁两种,三个级别的封锁协议可以有效解决并发操作的一致性问题。在封锁过程中还会发生活锁和死锁现象,死锁一旦发生,可以选择一个处理死锁代价最小的事务将其撤消。精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远习题n1事务是一个()。nA程序 B进程 C操作序列 D完整性规则n2数据恢复的主要依据是()。nADDA BDD C文档 D事务日志n3“日志”文件主要保存于()。nA程序运行的过程 B数据操作nC程序执行结果 D对数据库的更新操作n4在DB技术中,“脏数据”是指()。nA未回退的数据 B未提交的数据nC回退的数据 D未提交随后又被销毁的数据n5数据库中数据的正确性、有效性和相容性称为()。nA恢复 B并发控制 C完整性 D安全性精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远n6下列不属于并发操作带来的问题是()。nA丢失修改 B不可重复读 C死锁 D读“脏数据”n7DBMS普遍采用()方法来保证调度的正确性。nA索引 B授权C封锁 D日志n8设事务T1和T2,对数据库中的数据A进行操作,可能有如下几种情况,请问哪一种不会发生冲突操作()。nAT1正在写A,T2要读AnBT1正在写A,T2也要写AnCT1正在读A,T2要写AnDT1正在读A,T2也要读An9如果有两个事务,同时对数据库中同一数据进行操作,不会引起冲突的操作是()。nA一个是DELETE,一个是SELECTnB一个是SELECT,一个是DELETEnC两个都是UPDATEnC两个都是SELECT精彩展示精彩展示精彩展示精彩展示路漫漫其悠远路漫漫其悠远n1如果数据库系统对事务的并发操作不加控制,有可能带来哪些问题?n2什么是封锁?封锁的基本类型有哪几种?n3什么是事务日志?它有什么用途?n4什么是数据库的恢复?恢复的基本原则是什么?恢复是如何实现的?
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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