欢迎来到天天文库
浏览记录
ID:15468202
大小:255.00 KB
页数:6页
时间:2018-08-03
《数据库原理与应用实验11(二版)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据库原理与应用实验教材实验十一事务与并发控制一、实验目的及要求本实验主要目的是让学生了解事务的工作原理、事务并发操作类型与解决方法。主要要求有:l了解事务特点,学会创建事务。l了解事务并发操作导致数据库数据的三种不一致性。l学会解决出现不一致性的方法l了解锁机制l了解死锁和活锁发生的原理二、实验原理及背景知识(一)事务概念与模式结构多用户并发存取同一数据可能会导致产生数据的不一致性问题。正确地使用事务处理可以有效控制这类问题发生的频度甚至能避免这类问题的发生。1、事务的概念事务是由一系列的数据查询操作或更新操作构成的。从用户的观点来看,根据业务规则,这些操作是一个整体
2、,不能分割,即要么所有的操作都顺利完成,要么一个也不要做。绝不能只完成了部分操作,而还有一些操作没有完成。事务中任何一个语句执行时出错,系统都会返回到事务开始前的状态。2、事务的特性事务作为一个逻辑工作单元,其中包括一系列的操作,这些语句将被作为一个整体进行处理。当事务执行遇到错误时,将取消事务做的所有操作。事务的(原子性、一致性、隔离性、持久性)4个特性一般简称为事务的ACID特性,可以说对数据库中的数据保护是围绕着实现事务的特性而达到的。3、事务模式(1)显式事务由用户在其中定义事务的启动和结束。其语句格式如下:l使用BEGINTRANSACTION建立事务SETT
3、RANISOLATIONLEVELisolation_name--设置隔离级别BEGINTRAN[SACTION][transaction_name
4、@tran_name_variable[WITHMARK['description']]]其隔离级别有如下几种类型表2-11-1隔离级别类型表隔离级别丢失更新读脏数据不可重复读readuncommitted(未提交读)允许允许允许readcommitted(提交读)允许不允许允许repeatableread(可重复读)允许不允许不允许Serializable(可串行读)不允许不允许不允许注意:系统默认隔离级别为READCO
5、MMITTED(可提交读)-5-数据库原理与应用实验教材l使用COMMITTRANSACTION标识事务结束,其语句格式如下:COMMIT[TRAN[SACTION][transaction_name
6、@tran_name_variable]]执行该语句,将提交当前事务,事务中所有数据修改在数据库中将永久有效,占用的资源将被释放。l使用COMMITWORK语句标识事务结束,其语句格式如下:COMMIT[WORK]标示一个事务正常结束,该语句成功执行后,SQLServer将从上一个事务结束后到该语句之前的所有T-sql语句对数据库的操作保存到数据库中。l使用ROLLBAC
7、KTRANSACTION语句回滚到事务的指定点,其语句格式如下:ROLLBACK[TRAN[SACTION][transaction_name
8、@tran_name_variable
9、savepoint_name
10、@savepoint_variable]事务执行过程中遇到错误,修改的所有数据被回滚到事务指定位置的状态,占用的资源将被释放。l使用ROLLBACKWORK语句回滚到事务的起点ROLLBACK[WORK]表示一个事务的非正常结束,该语句结束后,SQLServer将从上一个事务结束后到该语句之间的所有T-sql语句对数据库的操作撤销掉,数据库恢复到事务执行前的状
11、态。l使用SAVETRANSACTION语句设置保存点SAVE[TRAN[SACTION]]{savepoint_name}SQLServer允许在事务处理上设置保存点,保存点允许在一个事务处理内部做些工作,而后基于特定条件回滚这些工作,保存点类似于c语言的goto语句的标号。(2)隐式事务隐式事务是指在当前事务提交或回滚后,自动启动新事务。当SQLServer首次执行下列语句时,都会自动启动一个事务:所有的create语句、drop语句、open、altertable、insert、delete、update、revoke、grant、select和fetch。一般使
12、用setimplicit_transactionsoff(on)语句可以关闭(打开)隐式事务模式。(3)自动事务模式在自动事务模式下,每个Transact_SQL语句在成功执行完成后,都被自动提交;如果遇到错误,则自动回滚该语句。该模式为系统默认的事务管理模式。(一)锁机制所作为一种安全机制,用以封锁正被一个事务修改的数据,防止其它用户访问到“不一致”的数据。锁机制能够控制多个用户的并发操作,可以防止用户读取正在由其他用户更改的数据或者多个用户同时修改同一数据,从而确保事务完整性和数据库一致性。1、锁的控制方法(1)锁类型排它锁(Excl
此文档下载收益归作者所有