欢迎来到天天文库
浏览记录
ID:19250967
大小:42.00 KB
页数:6页
时间:2018-09-30
《网络数据库讲稿(事务)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、事务处理机制一、事务的概念事务由一系列的数据操作组成,是数据处理的逻辑单元,是一个不可分割的工作单位,用来保证数据的一致性和完整性。一般情况下,一个程序可以包含多个事务。为保证数据的一致性,事务中的每一步操作都必须正确完成。如果事务成功的执行,则在该事务中进行的所有数据更改均会成为数据库中的永久组成部分;如果一个事务处理的过程中出现故障,那么该事务中的所有操作将回滚,所有数据更改均被清除。二、事务的属性原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability),通常称为事务的ACID特性。1.原子性(Atomicity
2、)一个事务中包括的所有操作,要么全部执行,要么全都不执行。2.一致性(Consistency)一个事务在完成时,必须使所有的数据都处于一致状态,不能出现矛盾的数据。一致性与原子性紧密联系。3.隔离性(Isolation)多个事务可并发执行,每一个事务的执行不能被其他事务干扰。4.持久性(Durability)事务完成之后,它对系统的影响是持久的。三、事务与日志的联系每个数据库都有事务日志记录数据库内的数据变化。日志记录每个事务的开始和结束,并将每一个数据修改与一个事务相关联。随着数据修改的进行,在修改尚未写入数据库之前,它们首先被记录到事务日志。日志文件中记录的主要内容包括:每个事务
3、的开始标记(BEGINTRANSACTION)、事务的名称、操作的类型(INSERT、UPDATE、DELETE等)、操作对象、更新前的数据和更新后的数据、结束标记(COMMIT和ROLLBACK)。四、事务的状态一个事务执行的过程中,处于以下状态之一:活动状态,部分提交状态,提交状态,失败状态,终止状态。1.活动状态事务执行时处于活动状态。2.部分提交状态当事务完成它最后一条语句后,数据已逻辑保存(存入缓存),但未物理保存(未写入硬盘)。3.提交状态日志成功地物理保存,但数据不一定物理保存。标志着事务成功完成。4.失败状态事务不能正常执行,被回滚。5.终止状态。事务已回滚并且数据库
4、已恢复到事务开始前的状态。五、事务的种类每个事务以三种模式之一运行。1.自动提交事务每条单独的T-SQL语句都是一个事务。2.显式事务一个事务由BEGINTRANSACTION开始,以COMMIT或ROLLBACK语句显式结束。3.隐式事务在隐式事务中,无须使用BEGINTRANSACTION标记事务的开始。用SETIMPLICIT_TRANSACTIONON将隐性事务模式设置为打开,然后执行下列任何语句时,都会自动启动一个新事务:ALTERTABLEFETCHREVOKECREATEGRANTSELECTDELETEINSERTTRUNCATETABLEDROPOPENUPDATE
5、用SETIMPLICIT_TRANSACTIONOFF关闭隐性事务模式。六、定义事务定义事务的基本语句有:1.BEGINTRANSACTION[<事务名>[WITHMARK[‘<标记>’]]]2.COMMIT[TRANSACTION][<事务名>]3.ROLLBACK[TRANSACTION][<事务名>]不能在发出一个COMMIT之后使用ROLLBACK,因为数据已永久修改。七、事务隔离级别事务隔离级别保证一个事务的执行不受其它事务的干扰。下表按从低到高的顺序对事务隔离级别进行了说明。描述说明READUNCOMMITTED访问数据时不发出共享锁和排它锁。当设置该选项时,允许其它事务
6、在某一事务执行过程中更改数据。READCOMMITTED是SQLServer默认的事务隔离级。指定在读取数据时使用共享锁,但不要求一个事务对同一条记录的两次读取之间,其他的事务不能对该记录进行更新。REPEATABLEREAD用共享锁锁定查询中使用的所有数据,以防止其他用户在事务完成之前更新数据。SERIALIZABLE在数据集(表)上放置一个共享锁,以防止其他用户在事务完成之前更新或插入数据。设置事务隔离级别的命令:SETTRANSACTIONISOLATIONLEVEL{READCOMMITTED
7、READUNCOMMITTED
8、REPEATABLEREAD
9、SERIALIZAB
10、LE}八、事务故障的恢复在事务执行中出现错误或故障时,SQLServer将自动回滚该事务。也可用ROLLBACK人为回滚事务。九、编写有效的事务以下是编写有效事务的原则:1.不要在事务处理期间和用户交互。2.在浏览数据时不要打开事务。3.保持事务尽可能地短。4.灵活使用低级别的事务隔离。5.在事务中尽量使访问的数据量最小。6.避免并发问题一、填空题8、据库并发操作可能带来数据不一致的问题,主要有三种类型的数据不一致,分别是:______________
此文档下载收益归作者所有