欢迎来到天天文库
浏览记录
ID:40187847
大小:209.50 KB
页数:31页
时间:2019-07-25
《学时(英教)讲义-补充讲座相关附》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、事务(Transaction)7.2TransactionsMotivationDatabasesystemsarenormallybeingaccessedbymanyusersorprocessesatthesametime.(e.g.Airlinereservations)Bothqueriesandmodifications.ExampleYouandyourspouseeachtake$100fromdifferentATM’sataboutthesametime.TheDBMSbettermakesureoneaccountd
2、eductiondoesn’tgetlost.7.2.3TransactionsAtransactionisacollectionofoneormoreoperationsonthedatabasethatmustbeexecutedatomically,thatis,eitheralloperationsareperformedornoneare.事务(Transaction)用户定义的一个对数据库读写操作序列一个不可分割的工作单位ACIDTransactionsADBMSisexpectedtosupport“ACIDtransact
3、ions,”whichare:Atomic:Allornoneisdone.Consistent:Databaseconstraintsarepreserved.Isolated:Itappearstotheuserasifonlyoneprocessexecutesatatime.Durable:Effectsofaprocessdonotgetlostifthesystemcrashes.事务的性质(ACID特性)原子性(Atomicity)事务中的操作要么都做,要么都不做(AllorNone)一致性(Consistency)事务执行
4、的结果必须使数据库从一个一致性状态变到另一个一致性状态与原子性密切相关隔离性(Isolation)并发执行的各事务不能相互干扰持续性/永久性(Durability)事务一旦提交,它对数据库的更新不再受后继操作或故障的影响★DBMS中事务处理必须保证其ACID特性,这样才能保证数据库中数据的安全和正确TransactionsinSQLSQLsupportstransactions,oftenbehindthescenes.Eachstatementissuedatthegenericqueryinterfaceisatransactionb
5、yitself.InprogramminginterfaceslikeEmbeddedSQLorPSM,atransactionbeginsthefirsttimeanSQLstatementisexecutedandendswiththeprogramoranexplicitend.COMMIT&ROLLBACKTheSQLstatementCOMMITcausesatransactiontocomplete.It’sdatabasemodificationsarenowpermanentinthedatabase.TheSQLstat
6、ementROLLBACKalsocausesthetransactiontoend,butbyaborting.Noeffectsonthedatabase.Failureslikedivisionby0canalsocauserollback,eveniftheprogrammerdoesnotrequestit.SQL语言中定义事务的语句事务的开始和结束可以由用户显式控制。如果用户没有定义,则由DBMS按缺省规定自动划分事务。SQL定义事务的语句Begintransaction(事务开始)Commit(事务提交,正常结束,将更新结果
7、写入磁盘)Rollback(事务回滚,撤销事务中所有已完成的更新)BEGINTRANSACTION读账户甲的余额balance;balance=balance–amount;//amount为转账金额if(balance<0)then{打印‘金额不足,不能转账’;ROLLBACK;//撤销刚才的修改,恢复事务}else{读账户乙的金额balance1;balance1=balance1+amount;写回balance1;COMMIT;}事务示例事务型DBMS中必备的机制事务是恢复和并发控制的基本单位恢复机制与并发控制机制的提出事务在运行
8、过程中因某种故障被强行终止,数据库一致性被破坏,需进行恢复多个事务并行运行时,不同事务的各种操作交叉进行,为保证各事务的执行互不干扰,需进行并发控制事务管理之数据库恢复技术数据库恢复概述数据库
此文档下载收益归作者所有