数据库原理第十章课件.ppt
《数据库原理第十章课件.ppt》由会员分享,可在线阅读,更多相关《数据库原理第十章课件.ppt(47页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 Spring,2009.数据库原理主讲:赵海霞主讲:赵海霞河南科技大学电信学院河南科技大学电信学院 Spring,2009.学习要点学习要点n事务事务n故障及其类型故障及其类型n数据库恢复实现技术数据库恢复实现技术n数据库恢复策略数据库恢复策略第十章 数据库恢复技术 Spring,2009.10.1 事务的基本概念n事务(事务(Transaction)F用户定义的一个对数据库的读写操作序列用户定义的一个对数据库的读写操作序列F一个一个不可分割不可分割的工作单位的工作单位F数据库恢复和并发控制的基本单位数据库恢复和并发控制的基本单位F数据库系统中通常有多个事务并行运行数据库系统中通常有多个事务
2、并行运行n在关系数据库中,事务可以是一条、一组在关系数据库中,事务可以是一条、一组SQL语句,语句,或整个程序或整个程序n事务和程序的区别?事务和程序的区别?F程序包含多个事务程序包含多个事务 Spring,2009.SQL语言中定义事务的语句n事务的开始和结束可以由用户显式控制。如果用户没事务的开始和结束可以由用户显式控制。如果用户没有定义,则由有定义,则由DBMS按缺省规定自动划分事务。按缺省规定自动划分事务。nSQL定义事务的语句定义事务的语句FBegin transaction(事务开始事务开始)FCommit(事务提交,正常结束,将更新结果写入磁盘事务提交,正常结束,将更新结果写入磁
3、盘)FRollback(事务回滚,撤销事务中所有已完成的更新事务回滚,撤销事务中所有已完成的更新)Spring,2009.事务示例BEGIN TRANSACTION 读账户甲的余额balance;balance =balance amount;/amount为转账金额 if(balance 0)then 打印金额不足,不能转账;ROLLBACK;/撤销刚才的修改,恢复事务 else 读账户乙的金额balance1;balance1=balance1+amount;写回balance1;COMMIT;Spring,2009.事务的ACID性质n原子性(原子性(Atomicity)n一致性(一致性
4、(Consistency)n隔离性(隔离性(Isolation)n持续性(持续性(Durability)DBMS中事务处理必须保证其中事务处理必须保证其ACID特性,这特性,这样才能保证数据库中数据的安全和正确样才能保证数据库中数据的安全和正确 Spring,2009.事务的原子性原子性原子性(atomicity):一个事务中所有对数据库的操作,是一个不一个事务中所有对数据库的操作,是一个不可分割的操作序列。可分割的操作序列。“要么全做要么全做”“要么什么也不做要么什么也不做”(All or None)DBMS的事务管理子系统负的事务管理子系统负责责 Spring,2009.事务的一致性一致性
5、(一致性(consistency):):一个事务独立执行的结果,将保持数据库的一个事务独立执行的结果,将保持数据库的一致性,即数据不会因事务的执行而遭受破坏。一致性,即数据不会因事务的执行而遭受破坏。可由编写事务程可由编写事务程序的应用程序员序的应用程序员完成完成也可由系统测试完也可由系统测试完整性约束自动完成整性约束自动完成 Spring,2009.事务的隔离性隔离性(隔离性(isolation):):多个事务并发执行时,系统应保证与这些事务多个事务并发执行时,系统应保证与这些事务先后单独执行时的结果一样。先后单独执行时的结果一样。并发执行的各事务不并发执行的各事务不能相互干扰能相互干扰由由
6、DBMS的并发控的并发控制子系统负责制子系统负责 Spring,2009.事务的持续性持续性(持续性(durability)一个事务一旦完成全部操作,它对数据库的一个事务一旦完成全部操作,它对数据库的所有更新应永久性地反映在数据库中。所有更新应永久性地反映在数据库中。由由DBMS的恢复管的恢复管理子系统负责理子系统负责 Spring,2009.事务的ACID性质数据库的访问:数据库的访问:I.read(X):把数据把数据X从数据库中读到内存缓冲区从数据库中读到内存缓冲区II.write(X):):把数据把数据X从内存缓冲区写回数据库从内存缓冲区写回数据库数据库数据库内存内存缓冲区缓冲区read
7、(X)write(X)XX Spring,2009.事务的ACID性质例:银行数据库中有一转帐事务例:银行数据库中有一转帐事务Ti,从帐号从帐号A转一转一笔款(¥笔款(¥50)到帐号)到帐号B。AB¥50AB¥50 Spring,2009.其操作如下:其操作如下:T Ti i:read(A);read(A);A:=A-50;A:=A-50;Write(A);Write(A);Read(B);Read(B);B:=B+50;B:=B+50;Write(B);Write(B);内存内存缓冲区缓冲区1、read(A)3、write(A)AABB2、A:=A-504、read(B)6、write(B)
8、5、B:=B+50事务的ACID性质 Spring,2009.原子性原子性:n 事务中所有操作应作为一个整体,不能分割,要么事务中所有操作应作为一个整体,不能分割,要么全做,要么全不做。全做,要么全不做。n 如果只修改了如果只修改了A的值而没有修改的值而没有修改B的值,就违反了事的值,就违反了事务的原子性。务的原子性。Ti:read(A);A:=A-50;Write(A);Read(B);B:=B+50;Write(B);AB¥50事务的ACID性质 Spring,2009.一致性一致性:n 在事务在事务Ti执行结束后,要求数据库中执行结束后,要求数据库中A的值减的值减50,B的的值增值增50
9、,即,即A与与B的和不变,此时称数据库处于一致状态。的和不变,此时称数据库处于一致状态。Ti:read(A);A:=A-50;Write(A);Read(B);B:=B+50;Write(B);A-50B+50A+B不变不变注:注:“暂时不一致状态暂时不一致状态”的合理性、透明性。的合理性、透明性。事务的ACID性质 Spring,2009.隔离性隔离性:n 同时两个事务同时两个事务Ti和和Tj对对A、B操作,彼此独立,互不干涉。操作,彼此独立,互不干涉。Ti:read(A);A:=A-50;Write(A);Read(B);B:=B+50;Write(B);注:如注:如Ti“暂时不一致状态暂
10、时不一致状态”时如何控制时如何控制Tj事务。事务。ABTj:read(A);A:=A+100;Write(A);Read(B);B:=B-100;Write(B);¥50¥100事务的ACID性质 Spring,2009.持久性持久性:n事务的持久性保证事务成功执行后,所有对数据库事务的持久性保证事务成功执行后,所有对数据库修改的影响应长期存在,不能丢失。既使计算机系统修改的影响应长期存在,不能丢失。既使计算机系统的故障导致内存中数据丢失,但写入磁盘的数据也决的故障导致内存中数据丢失,但写入磁盘的数据也决不能丢失。不能丢失。n如何保证事务持久性的实现?如何保证事务持久性的实现?F 事务的更新操
11、作应在事务完成之前写入磁盘;事务的更新操作应在事务完成之前写入磁盘;F 事事务务的的更更新新和和写写入入磁磁盘盘操操作作应应保保存存足足够够的的信信息息,足足以以使使数数据据库库系系统统在在遇遇到到故故障障后后重重新新启启动动时时重重构构更更新操作。新操作。事务的ACID性质 Spring,2009.BEGINTRANSACTIONBEGINTRANSACTIONENDTRANSACTION事务的状态变迁活动活动局部提交局部提交失败失败提交提交异常中止异常中止COMMITABORTROLLBACKABORTREAD/WRITE事务的状态变迁图事务的状态变迁图 Spring,2009.BEGIN
12、TRANSACTIONBEGINTRANSACTIONENDTRANSACTION事务的状态变迁活动活动局部提交局部提交失败失败提交提交异常中止异常中止COMMITABORTROLLBACKABORTREAD/WRITE事务的状态变迁图事务的状态变迁图在事务开始执行后,立即进入在事务开始执行后,立即进入“活动活动”状状态。在活动状态,事务执行对数据库的读态。在活动状态,事务执行对数据库的读/写操作。但是写操作。但是“写操作写操作”并不立即写到磁并不立即写到磁盘上,很可能暂时存放在系统缓冲区中。盘上,很可能暂时存放在系统缓冲区中。Spring,2009.BEGINTRANSACTIONBEGIN
13、TRANSACTIONENDTRANSACTION事务的状态变迁活动活动局部提交局部提交失败失败提交提交异常中止异常中止COMMITABORTROLLBACKABORTREAD/WRITE事务的状态变迁图事务的状态变迁图事务的最后一个语句执行之后,事务的最后一个语句执行之后,进入进入“局部提交局部提交”状态。事务状态。事务执行完毕,但对数据库的修改,执行完毕,但对数据库的修改,可能还在内存的系统缓冲区中,可能还在内存的系统缓冲区中,事务还没有真正结束。事务还没有真正结束。Spring,2009.BEGINTRANSACTIONBEGINTRANSACTIONENDTRANSACTION事务的状
14、态变迁活动活动局部提交局部提交失败失败提交提交异常中止异常中止COMMITABORTROLLBACKABORTREAD/WRITE事务的状态变迁图事务的状态变迁图处于活动状态的事务还没处于活动状态的事务还没有执行完最后一个语句就有执行完最后一个语句就中止执行,事务进入中止执行,事务进入“失失败败”状态。状态。Spring,2009.BEGINTRANSACTIONBEGINTRANSACTIONENDTRANSACTION事务的状态变迁活动活动局部提交局部提交失败失败提交提交异常中止异常中止COMMITABORTROLLBACKABORTREAD/WRITE事务的状态变迁图事务的状态变迁图在局
15、部提交状态,虽然事务在局部提交状态,虽然事务的语句执行结束,但对数据的语句执行结束,但对数据库的修改可能还没有写到数库的修改可能还没有写到数据库。此时,如果系统出现据库。此时,如果系统出现故障,事务将进入故障,事务将进入“失败失败”状态。状态。Spring,2009.BEGINTRANSACTIONBEGINTRANSACTIONENDTRANSACTION事务的状态变迁活动活动局部提交局部提交失败失败提交提交异常中止异常中止COMMITABORTROLLBACKABORTREAD/WRITE事务的状态变迁图事务的状态变迁图处于失败状态的事务,可能已处于失败状态的事务,可能已对磁盘中的数据进行
16、了部分修对磁盘中的数据进行了部分修改。为了保证事务的原子性,改。为了保证事务的原子性,应该撤销该事务对数据库已做应该撤销该事务对数据库已做的修改。称为事务的回退。的修改。称为事务的回退。Spring,2009.BEGINTRANSACTIONBEGINTRANSACTIONENDTRANSACTION事务的状态变迁活动活动局部提交局部提交失败失败提交提交异常中止异常中止COMMITABORTROLLBACKABORTREAD/WRITE事务的状态变迁图事务的状态变迁图事务进入异常中止状态,系统可事务进入异常中止状态,系统可以重新启动(软硬件故障),或以重新启动(软硬件故障),或取消事务(事务逻
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 第十 课件
限制150内