SQLSERVER中的事务处理教学研究_第1页
SQLSERVER中的事务处理教学研究_第2页
SQLSERVER中的事务处理教学研究_第3页
SQLSERVER中的事务处理教学研究_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、    sqlserver中的事务处理教学研究    张胜摘要:数据库中的事务处理是数据库教学的重点内容,该文结合sql server数据库对 其特性,执行,编写规则等做了概括论述,并结合教学实践,对相关注意事项做了简要说明,这对于如何学好该知识点具备一定指导意义。关键词:sql server; 事务; 锁:tp311 :a :1009-3044(2014)30-7017-02事务的作用是保证一系列的数据操作可以全部正确完成,不会造成数据操作到中途未完成而导致数据完整性出错,锁的作用是保证数据在操作过程中不会受到任何其他影响,事务和锁都是数据库中的重要功

2、能,这里将结合sql server数据库谈谈事务处理部分内容。1 事务的特性事务是作为单个逻辑工作单元执行的一系列工作有下列四个属性:原子性:事务必须是原子性的工作单元,对事务里的操作,要么全都执行,要么全不执行。一致性:事务完成时,必须使所有数据都保持一致状态,所有规则都必须应用于事务的修改。隔离性:由并发事务所做的修改必须与其他并发事务所做的修改隔离,事务在开始时就会识别数据所处的状态,以便发生错误时回滚操作,所以另一个并发事务要么修改它之前的状态,要么修改他之后的状态,不能在该事物正在运行时去修改他的状态。持久性:在事务完成后,其操作结果对于系统的影响应该是永久的。2 执行事务的注意事项

3、1) 在每个操作之后,都要检查error和rowcount的值。因为error只对当前操作有小,当进行第二个操作时,error的值就会被第二个操作的值取代。rowcount的作用是判断该操作影响了多少条记录,当使用update或delete进行更新或删除操作时,若没有符合条件的记录,那么其所影响的记录数为0,但并不出错,所以error的值也为0.因此,还要检查rowcount的值,以确定操作是否成功。2) 当一个事务结束后,紧跟在事务之后的代码还可以继续执行,但出错后不能再回滚事务了。3) 已经提交完毕的事务会将数据写入数据库,此时也不能回滚事务。4) 在每个事务正在执行时,若发生断电等意外,

4、则在下次重启系统后,该事务会自动回滚。5) 无法回滚的语句不能在事务中使用,如:create database、alter database等。3 事务的工作原理事务在开始时,sql server就会将要修改的数据锁定,同时创建一个临时事务日志,在该日志里存放要更改的数据和更改的过程。事务未提交时,事务中所有数据操作是临时的,一旦发生数据操作失败,就是用临时日志去回滚事务操作,并解除锁定。在事务被成功提交后,数据库九江临时事务日志的内容存储到数据库中,此时事务操作完成。4 事务执行的模式显式事务:明确定义事务开始和结束的事务。自动提交事务:这是sql server database engin

5、e的默认事务方式,每一个t-sql语句都可以看成一个自动提交事务。隐式事务:当执行“set implicit_transactions on”语句后,sql server将会进入隐式事务模式,系统将在提交或回滚当前事务后自动启动新的事物,不需要再次定义事务的开始,隐式事务产生的是一个连续的事务序列。5 编写事务的规则1) 事务要尽可能简短事务在启动后,dbms会在事务结束前保留很多资源,以保证事务的acid性质,若在事务里还要修改数据,数据管理系统还会使用锁来保护修改过的行,其他事务此时不能对这些行进行控制,直至事务结束,在多用户系统里,这种过大资源的占有和过长时间的锁定,是不可忍受的。2)

6、在事务中访问的数据量要尽量少。这也是基于事务会对数据加锁的理由。3) 在事务处理期间尽量不要请求用户输入在事务处理过程中,如果还要等待用户输入,事务占用的所有资源都会保留相当长时间,会造成阻塞。6 事务的隔离级别事务具有隔离性,在同一时间可以有多个事务处理数据,但每个数据在同一时刻只能有一个事务操作,将数据锁定可以防止其他事务影响当前事务操作的数据,但会影响数据库使用效率。甚至造成死锁。事务隔离级别是用来设置事务在读取数据时的隔离状态,从而提高数据并发使用效率的一种手段,sql server中事务隔离级别由低到高可分为5个级别。read uncommitted:不隔离数据,即使在事务正在使用数

7、据的同时,其他事务也能同时修改或删除该数据。read committed:不允许读取没有提交的数据,这是sql server的默认隔离级别,由于事务还没有提交,数据被修改的可能性还很大。repeatable read:在事务中锁定所读取的数据不让其他程序修改或删除,如此可以保证在事务中每次读取到的数据都一致,其他事务可以在该数据表中新增数据。snapshot:快照隔离,可以为读取数据的事务提供所需数据的一个已提交版本,因此写入数据的事务不会阻塞读取数据的事务。serializable:将事务所要用到的数据表全部锁定。7 小结本文总结了在sql server中事务处理的基本原理和使用注意事项,对于使用sql server进行数据库教学的教师具有一定的参考价值。参考文献:1 朱如龙. sql server2005数据库应用系统开发技术m.北京

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论