网站大量收购闲置独家精品文档,联系QQ:2885784924

数据库原理与应用实验11(二版).doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验十一 事务与并发控制 一、实验目的及要求 本实验主要目的是让学生了解事务的工作原理、事务并发操作类型与解决方法。主要要求有: 了解事务特点,学会创建事务。 了解事务并发操作导致数据库数据的三种不一致性。 学会解决出现不一致性的方法 了解锁机制 了解死锁和活锁发生的原理 二、实验原理及背景知识 (一)事务概念与模式结构 多用户并发存取同一数据可能会导致产生数据的不一致性问题。正确地使用事务处理可以有效控制这类问题发生的频度甚至能避免这类问题的发生。 1、事务的概念 事务是由一系列的数据查询操作或更新操作构成的。从用户的观点来看,根据业务规则,这些操作是一个整体,不能分割,即要么所有的操作都顺利完成,要么一个也不要做。绝不能只完成了部分操作,而还有一些操作没有完成。事务中任何一个语句执行时出错,系统都会返回到事务开始前的状态。 2、事务的特性 事务作为一个逻辑工作单元,其中包括一系列的操作,这些语句将被作为一个整体进行处理。当事务执行遇到错误时,将取消事务做的所有操作。 事务的(原子性、一致性、隔离性、持久性)4个特性一般简称为事务的ACID特性,可以说对数据库中的数据保护是围绕着实现事务的特性而达到的。 3、事务模式 (1) 显式事务 由用户在其中定义事务的启动和结束。其语句格式如下: 使用BEGIN TRANSACTION建立事务 SET TRAN ISOLATION LEVEL isolation_name -- 设置隔离级别 BEGIN TRAN[SACTION] [transaction_name | @tran_name_variable [WITH MARK [description] ] ] 其隔离级别有如下几种类型 表2-11-1 隔离级别类型表 隔离级别 丢失更新 读脏数据 不可重复读 read uncommitted(未提交读) 允许 允许 允许 read committed (提交读) 允许 不允许 允许 repeatable read(可重复读) 允许 不允许 不允许 Serializable(可串行读) 不允许 不允许 不允许 注意:系统默认隔离级别为READ COMMITTED(可提交读) 使用COMMIT TRANSACTION标识事务结束,其语句格式如下: COMMIT [TRAN[SACTION] [ transaction_name | @tran_name_variable] ] 执行该语句,将提交当前事务,事务中所有数据修改在数据库中将永久有效,占用的资源将被释放。 使用COMMIT WORK语句标识事务结束,其语句格式如下: COMMIT [WORK] 标示一个事务正常结束,该语句成功执行后,SQL Server将从上一个事务结束后到该语句之前的所有T-sql语句对数据库的操作保存到数据库中。 使用ROLLBACK TRANSACTION语句回滚到事务的指定点,其语句格式如下: ROLLBACK [TRAN[SACTION] [transaction_name | @tran_name_variable|savepoint_name|@savepoint_variable] 事务执行过程中遇到错误,修改的所有数据被回滚到事务指定位置的状态,占用的资源将被释放。 使用ROLLBACK WORK语句回滚到事务的起点 ROLLBACK[WORK] 表示一个事务的非正常结束,该语句结束后,SQL Server将从上一个事务结束后到该语句之间的 所有T-sql语句对数据库的操作撤销掉,数据库恢复到事务执行前的状态。 使用SAVE TRANSACTION语句设置保存点 SAVE [TRAN[SACTION]] {savepoint_name} SQL Server允许在事务处理上设置保存点,保存点允许在一个事务处理内部做些工作,而后基于 特定条件回滚这些工作,保存点类似于c语言的goto语句的标号。 (2)隐式事务 隐式事务是指在当前事务提交或回滚后,自动启动新事务。当SQL Server首次执行下列语句时,都会自动启动一个事务:所有的create语句、drop语句、open、alter table、insert、delete、update、revoke、grant、select和fetch。 一般使用set implicit_transactions off (on)语句可以关闭(打开)隐式事务模式。 (3)自动事务模式 在自动事务模式下,每个Transact_SQL语句在成功执行完成后,都被自动提交;如果遇到错误,则自动回滚该语句。该模式为系统默认的事务管理模式。 (一)锁机制 所作为一种安全机制,用以封锁正被一个事务修改的数据,防止其它用户访问到“不一

文档评论(0)

185****7617 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档