- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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语句在成功执行完成后,都被自动提交;如果遇到错误,则自动回滚该语句。该模式为系统默认的事务管理模式。
(一)锁机制
所作为一种安全机制,用以封锁正被一个事务修改的数据,防止其它用户访问到“不一
您可能关注的文档
最近下载
- 驼峰500重载无人机产品介绍.pdf VIP
- 建筑与市政施工现场安全卫生与职业健康通用规范培训课件-(2).pptx VIP
- 2025年社会工作者《初级综合能力》考点速记20页.pdf
- 联勤保障部队第九四〇医院面向社会招聘93人招聘笔试备考试题及答案解析.docx VIP
- SYNSPEC PM型颗粒物在线监测系统说明.ppt
- 从去思碑到言行录-元代士人的政绩颂扬、交游文化与身分形.pdf
- 赢利-未来10年的经营能力-读后感.pptx VIP
- 一次函数存在性问题(菱形).docx VIP
- 肠内营养并发症的预防与管理肠道感染的措施.pptx
- 2024年2月贵州省2024届高三大联考英语试卷(含答案).pdf VIP
文档评论(0)