第15章 事务与并发控制75086

第15章 事务与并发控制75086

ID:24864503

大小:836.00 KB

页数:40页

时间:2018-11-16

第15章 事务与并发控制75086_第1页
第15章 事务与并发控制75086_第2页
第15章 事务与并发控制75086_第3页
第15章 事务与并发控制75086_第4页
第15章 事务与并发控制75086_第5页
资源描述:

《第15章 事务与并发控制75086》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、第15章事务与并发控制本章导学事务的概念ACID属性创建事务启动事务提交事务回滚事务并发控制SQLServer中的锁select*from银行账户表update银行账号表set存款余额=存款余额-80000where账号=‘杨百万’update银行账号表set存款余额=存款余额+80000where账号=‘邱发财’select*from银行账户表事务的概念事务的概念一次成功的网上交易需要系统提供多方支持,数据库相关的操作构成一个事务。1.买家所购商品库存减少2.卖家交易记录增加3.买家交易记录增加4.付款所涉及买方、卖方和

2、相关金融机构系统数据更新5.物流信息处理事务的概念事务是一个由Transact-SQL组成的作为单个逻辑工作单元执行的一系列操作。这个单元块中的语句是一个整体,不能分割,要么都执行要么都不执行,绝不能只完成部分操作,而还有一些操作没有完成。事务中任何一个语句执行时出错,系统都会返回到事务开始前的状态。ACID属性事务必须满足以下四个属性原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持久性(Durability)ACID属性原子性(Atomicity)事务必须是原子工作单元,对于数据

3、的操作,要么全都执行,要么全都不执行。例子将一名学生从1班转到2班,需要执行以下操作:将该学生信息从1班删除1班人数减1将该学生信息添加到2班2班人数加1ACID属性一致性(Consistency)完成事务时,必须保证所有数据都的一致性。例子将一名学生从1班转到2班,定义如下事务:将该学生信息从1班删除1班人数减1将该学生信息添加到2班ACID属性隔离性(Isolation)由并发事务所做的数据修改必须与任何其它并发所做的同一数据的修改隔离。事务查看的数据所处状态,要么是一个并发事务修改它之前的状态,要么是另一事务修改它之

4、后的状态,事务不会查看中间状态的数据。例如事务1:教师修改学生的成绩事务2:学生查看自己的成绩事务2执行查看的是事务1执行前的或执行后的状态。ACID属性持久性(Durability)事务对于数据库系统的影响是永久性的事务对数据所做的的修改是永久的,即使该修改会导致致命的系统故障。创建事务-基本语法启动事务BEGIN{TRAN

5、TRANSACTION}[{transaction_name

6、@tran_name_variable}[WITHMARK[‘description’]]]提交事务COMMIT{TRAN

7、TRANSA

8、CTION}[transaction_name

9、@tran_name_variable]]创建事务-基本语法回滚事务ROLLBACK{TRAN

10、TRANSACTION}[transaction_name

11、@tran_name_variable

12、savepoint_name

13、@savepoint_variable]注意回滚某事务必须在它的提交语句之前才有效ROLLBACKTRAN语句回滚到最外层事务的起点创建事务-基本语法设置保存点SAVE{TRAN

14、TRANSACTION}{savepoint_name

15、@savepoin

16、t_variable}创建事务-基本语法常用系统变量@@TRANCOUNTBEGINTRAN:@@TRANCOUNT加1ROLLBACKTRAN

17、WORK:@@TRANCOUNT还原为0ROLLBACKTRANsavepoint_name:不影响@@TRANCOUNTCOMMITTRAN

18、WORK:@@TRANCOUNT减1创建事务-实例分析任务一:提交事务提出问题学号为“S036”的学生艾家羽完成了编号为“C010”的日语课程的学习,考试取得成绩为88。因此,该生已修总学分也相应增加。编写SQL语句,完成该生的信息修改,

19、并防止在数据修改过程中发生意外状况导致数据不一致。创建事务-实例分析任务一:提交事务分析问题编写UPDATE语句更新Register表中的成绩。编写UPDATE语句更新该生在Student表中的学分信息。将以上两个操作纳入一个事务中,作为一个逻辑单元来执行。创建事务-实例分析任务一:提交事务问题求解BEGINTRANSACTIONStuCreditTran--开始事务UPDATERegisterSETscore=88WHEREstuNo='S036'ANDclassNo='C010'DECLARE@creditintSEL

20、ECT@credit=classCreditFROMClassesWHEREclassNo='C010'UPDATEStudentSETstuTotalCredit=stuTotalCredit+@creditWHEREstuNo='S036'COMMITTRANSACTIONStuCreditTran

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

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

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