文档介绍:数据库原理与应用《数据库系统概论》、事务事务是用户定义的一个数据库的操作序列,这些操作要么全做,要么全不做,是一个不可分割的整体。BEGINTRANSACTION SELECT…… UPDATE…… ……COMMIT(或ROLLBACK):银行转帐业务,从A帐户将1000元转帐到B帐户。实现的过程:A帐户余额是否足够;A帐户余额减去1000;检查B帐户是否合法;B帐户余额加上1000;这些操作要么都做,要么都不做!、事务的特性原子性(Atomicity)要么全部执行,要么完全不执行一致性(Consistency)事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。隔离性(Isolation)一个事务的执行不能被其他事务干扰。持续性(Durability)一个事务一旦提交,它对数据库的改变就是永久性的。(续)事务是恢复和并发控制的基本单位。事务的ACID特性可能被破坏的因素:多个事务并发执行,产生了操作交叉;事务在运行过程中被强行停止。(续)3、SQLServer中事务的模式显式事务通过SQL事务语句而定义的事务。MITTRANSCATION、(ROLLBACKTRANSCATION)隐式事务SETIMPLICITY_TRANSACTIONSON、SETIMPLICITY_TRANSACTIONSOFF语句进入和退出隐式事务连接模式。自动事务模式当一个语句成功执行后,它被自动提交,而当事务执行过程中产生错误时,则被自动回滚。(续)4、事务的使用实例在DBMS中进行事务处理利用显式事务的方式将一系列操作定义成一个事务,所有操作都完成,则事务提交,否则事务回滚。或者进入隐式事务方式,MITTRANSACTION完成一个事务的提交。BEGINTRANIFEXISTS(SELECT*FROMBANKWHEREUID='A')BEGIN IF(SELECT[MONEY]FROMBANKWHEREUID='A')>1000 BEGIN UPDATEBANKSET[MONEY]=[MONEY]-1000WHEREUID='A' SELECT*FROMBANK IFEXISTS(SELECT*FROMBANKWHEREUID='B') BEGIN UPDATEBANKSET[MONEY]=[MONEY]+1000 WHEREUID='B' COMMITTRAN END ELSE ROLLBACKTRAN END ELSE PRINT'A帐户余额不足!'ENDELSEPRINT'帐户不存在!'(续)4、事务的使用实例在应用程序中设置事务例如:在java中,mit(false)方法关系自动提交事务。mit()方法来提交数据库操作;rollback()方法来进行事务回滚。