事务与并发控制(I)

事务与并发控制(I)

ID:39810426

大小:595.10 KB

页数:21页

时间:2019-07-11

事务与并发控制(I)_第1页
事务与并发控制(I)_第2页
事务与并发控制(I)_第3页
事务与并发控制(I)_第4页
事务与并发控制(I)_第5页
资源描述:

《事务与并发控制(I)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章事务与并发控制7.1事务7.2并发控制7.1事务7.1.1事务的特性事务具有如下特性:①原子性(Atomicity),事务是一个不可分割的整体,它对数据库的操作要么全做,要么全不做,即不允许事务部分地完成,若因故障而导致事务未能完成,则应通过恢复功能使数据库回到该事务执行前的状态。②一致性(Consistency),事务对数据库的作用应使数据库从一个一致状态转换到另一个一致状态。一致状态是指数据库中的数据满足完整性约束。③隔离性(Isolation),多个事务并发执行时,应互不影响,其结果要和这些事务独立执行的结果一样。并发控制就

2、是为了保证事务间的隔离性。④持久性(Durability),一旦事务执行成功,则该事务对数据库进行的所有更新都是持久的,即使因数据库故障而受到破坏,DBMS也能恢复。事务的这些特性简称为ACID特性,DBMS一般都能保证事务的ACID特性。7.1.2事务类型与事务的状态1.事务类型事务一般可分为两类:系统事务和用户定义的事务。系统事务又称为隐式事务,指某些特定的SQL语句由系统单独作为一个事务处理,包括的主要语句如下:●所有的CREATE语句;●所有的DROP语句;●INSERT,UPDATE,DELETE语句。例如,执行如下的创建表语

3、句:CREATETABLExx(f1intnotnull,f2char(10),f3varchar(30))这条语句本身就构成了一个事务,它要么建立含3列的表结构,要么对数据库没有任何影响。在实际应用中,大量使用的是用户定义的事务。用户事务的定义方法:用BEGINTRANSACTION语句指定一个事务的开始,用COMMIT或ROLLBACK语句表明一个事务的结束。注意必须明确指定事务的结束,否则系统将把从事务开始到用户关闭连接之间所有的操作都作为一个事务来处理。7.1.2事务类型与事务的状态(1)开始事务语法格式:BEGINTRANSA

4、CTION功能:控制事务的开始。(2)结束事务●事务提交语法格式:COMMIT功能:COMMIT语句用于提交事务,即将事务对数据库的所有更新写到物理数据库中,同时,也标志一个事务的结束。●事务回滚语法格式:ROLLBACK功能:事务回滚,即将事务对数据库已完成的操作全部撤销,回滚到事务开始时的状态,它也标志一个事务的结束,ROLLBACK语句将清除自事务的起点或到某个保存点所做的所有数据修改,并且释放由事务控制的资源。以下例子说明事务处理语句的使用。7.1.2事务类型与事务的状态【例7.1】定义一个事务,将“计算机”专业学生的密码改为“

5、1234”,并提交该事务。BEGINTRANSACTIONUSEXSCJUPDATEXSSET密码='1234'WHERE专业='计算机'COMMIT在SQLServer2005中,ROLLBACK还可以加上选项[TRAN[SACTION]<保存点名>

6、<保存点变量名>],保存点名或保存点变量名可用SAVETRANSACTION语句设置:SAVETRAN[SACTION]{保存点名

7、@保存点变量名}【例7.2】定义一个事务,向XSCJ数据库的XS表中插入一行数据,然后删除该行。BEGINTRANSACTIONUSEXSCJINSERTI

8、NTOXS(学号,姓名,性别,出生时间,专业)VALUES('07050104','朱一虹',1,'1989-10-21','计算机应用')SAVETRANMy_savDELETEFROMXSWHERE姓名='朱一虹'ROLLBACKTRANMy_savCOMMITTRAN7.1.2事务类型与事务的状态执行上述事务后,可知:新插入的数据行并没有被删除,因为事务中使用ROLLBACK语句将操作回滚到保存点My_sav,即删除前的状态。2.事务的状态图7.1说明了一个事务对数据库进行操作时,其生存周期内可能进入的状态。图7.1事务的状态描述

9、7.1.2事务类型与事务的状态活动状态:表示事务正在执行中。提交未完成状态:表示事务虽然已完成,但事务对数据的更新可能还在缓冲区,未写到数据库中。失败状态:在两种状态下,事务可能进入失败状态。①一个处于活动状态的事务在执行过程中发生故障,将进入失败状态。②一个处于提交未完成状态的事务执行时发生故障,将进入失败状态。对于处于失败状态的事务必须进行回滚,才能使数据库处于一致状态。提交已完成状态:处于提交已完成状态的事务表示事务已执行完毕,数据已写入数据库,并处于一致状态。终止状态:表示事务执行回滚操作,数据库恢复到事务执行前的一致状态。7.

10、2并发控制对数据库进行操作的事务可以以串行方式执行,即一个事务执行结束后,另一事务才开始执行,这种调度方式称为串行调度,存在的缺点是系统资源利用率低,对用户响应慢。因此通常采用的方案是多个事务并发执行,这分

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

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

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