第12章 事务和锁

第12章 事务和锁

ID:45135836

大小:291.50 KB

页数:34页

时间:2019-11-10

第12章 事务和锁_第1页
第12章 事务和锁_第2页
第12章 事务和锁_第3页
第12章 事务和锁_第4页
第12章 事务和锁_第5页
资源描述:

《第12章 事务和锁》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第12章事务和锁数据库是可供多个用户共享的信息资源。允许多个用户同时使用数据库的系统成为多用户数据库系统。当多个用户并发地存取数据库时,就会产生多个事务同时存取同一数据的情况。数据库的并发控制就是控制数据库,防止多用户并发使用数据库时造成数据错误和程序运行错误,保证数据的完整性。事务是多用户系统的一个数据操作基本单元。封锁是使事务对它要操作的数据有一定的控制能力。12.1事务多用户并发存取同一数据可能会引起数据的不一致性问题。正确地使用事务可以有效地控制这类问题发生的频度甚至能避免这类问题的发生

2、。事务(Transaction),是指一个操作序列,这些操作序列要么都被执行,要么都不被执行,它是一个不可分割的工作单元。事务是并发控制的基本单元,是数据一致性的基本手段。例如:A账户转账给B账户n元钱A账户-nB账户+n12.1.1事务的特性及管理1.事务的特性ACID:原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durabilily)12.1.1事务的特性及管理(1)原子性事务是一个工作单元事务中的操作要么都做、要么都不做。12.1.1事务

3、的特性及管理(2)一致性事务的执行结果必须使数据库从一个一致性状态变到另一个一致性状态。12.1.1事务的特性及管理(3)隔离性是指数据库中的一个事务的执行不能被其他事务干扰。即多个事务同时进行,它们之间应该互不干扰12.1.1事务的特性及管理(4)持久性持久性意味着一旦事务执行成功,在系统中产生的所有变化将是永久的。12.1.1事务的特性及管理2.事务的管理在SQLServer2008中,对事务的管理包含3个方面:事务控制语句:控制事务执行的语句。包括将一系列操作定义为一个工作单元来处理;

4、锁机制:封锁正被一个事务修改的数据,防止其他用户访问到“不一致”数据;事务日志:使事务具有可恢复性。12.1.2事务控制语句隐式事务显式事务SQLServer2008为每个独立的SQL语句都提供了隐含的事务控制,使得每个DML的数据操作得以完整提交或回滚。12.1.2事务控制语句1.事务控制语句BEGINTRANSACTION[tran_name]:标识一个用户定义的事务的开始。tran_name为事务的名字,标识一个事务开始。COMMITTRANSACTION[tran_name]:表示

5、提交事务中的一切操作,结束一个用户定义的事务,使得对数据库的改变生效;ROLLBACKTRANSACTION[tran_name

6、save_name]:回退一个事务到事务的开头或一个保存点。表示要撤销该事务已做的操作,回滚到事务开始前或保存点前的状态;SAVETRANSACTIONsave_name:在事务中设置一个保存点,名字为save_name,它可以使一个事务内的部分操作回退。其中,TRANSACTION可简写为TRAN。12.1.2事务控制语句2.两个可用于事务管理的全局变量@@er

7、ror:给出最近一次执行的出错语句引发的错误号,@@error为0表示未出错。(返回执行的上一个Transact-SQL语句的错误号。)@@rowcount:给出受事务中已执行语句所影响的数据行数。12.1.2事务控制语句3.事务控制语句的使用事务控制语句的使用方法如下:BEGINTRANA组语句序列SAVETRANsave_pointB组语句序列IF@@error<>0ROLLBACKTRANsave_point/*仅回退B组语句序列*/COMMITTRAN/*提交A组语句,且若未回退B组语句

8、,则提交B组语句*/12.1.2事务控制语句【例12-1】使用事务向表AdminTb中插入数据。解USELibraryGOBEGINTRANtran_instINSERTINTOAdminTb(Admin,Psw)VALUES('WANG1','ABC')SAVETRANint_pointINSERTINTOAdminTb(Admin,Psw)VALUES('WANG2','123')GOINSERTINTOAdminTb(Admin)VALUES('WANG3')GOIF@@ERROR<>0R

9、OLLBACKTRANint_pointGOCOMMITTRANtran_instGO12.1.2事务控制语句4.事务中不能包含的语句CREATEDATABASE;ALTERDATABASE;BACKUPLOG;DROPDATABASE;RECONFIGURE;RESTOREDATABASE;RESTORELOG;UPDATESTATISTICS。12.2锁锁定是MicrosoftSQLServer数据库引擎用来同步多个用户同时对同一个数据块的访问的一种机制。12.2锁当多个用户

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。