数据库原理课件 第四章 数据库事务

数据库原理课件 第四章 数据库事务

ID:41123983

大小:2.39 MB

页数:59页

时间:2019-08-17

数据库原理课件 第四章 数据库事务_第1页
数据库原理课件 第四章 数据库事务_第2页
数据库原理课件 第四章 数据库事务_第3页
数据库原理课件 第四章 数据库事务_第4页
数据库原理课件 第四章 数据库事务_第5页
资源描述:

《数据库原理课件 第四章 数据库事务》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第四章数据库事务SQLServer20002005数据库系统通过事务保证多个数据库操作在一起处理,而事务使用锁定技术来防止其他数据库用户来更新或读取末完成事务中的数据。同时,SQLServer数据库系统为了提高自身的性能,实现多用户之间数据的共享,采用并发控制策略来实现多个任务的并行运行。4.1SQLServer中事务的定义1.实验目的熟悉SQLServer的事务控制语言,能够熟练使用事务控制语言来编写事务处理程序。2.原理分析(1)事务的概念事务(transaction)是一组单一逻辑工作单元的操作集合,是用户采用高级数据操纵语言或编程语言书写的用户程序,并由事务开始begin

2、transaction和事务结束endtransaction来界定全体操作的集合。(2)事务的性质数据库管理系统为了实现数据库系统的完整性,事务的ACID性质是数据库事务处理的基础,它要求事务具有以下的性质:原子性(atomicity):要求事务的全部操作要么在数据库中全部正确的反映出来要么全部不反映。一致性(consistency):数据库中数据不因事务的执行而受到破坏,事务执行的结果应当使得数据库由一种一致性达到另一种新的一致性。数据的一致性保证数据库的完整性。隔离性(isolation):事务的并发执行与这些事务单独执行的结果一样。也就是说,在多个事务并发执行时,各个事务不

3、必关心其它事务的执行,如同在单个用户环境下执行一样。事务的隔离性是事务并发控制技术的基础。持久性(durability):事务对数据库的更新应永久地反映在数据库中。也就是说,一个事务一旦完成其全部操作之后,它对数据库所有更新操作的结果将在数据库中永久存在,即使以后发生故障也应保留这个事务的执行结果。持久性的意义在于保证数据库具有可恢复性。(3)事务的控制事务的操作可由事务开始、事务读写、事务提交、事务回滚若干个基本操作组成,SQLServer提供事务控制语法,来将SQLServer语句集合分组后形成单个的逻辑工作单元,每个单元都是一个独立的事务。表4.1.1事务控制语句语法及含义

4、事务控制语句语法事务控制语句的含义BEGINTRAN表示事务开始执行COMMITTRAN表示事务完成所有数据操作,同时保存操作结果,它标志着事务的成功完成ROLLBACKTRAN表示事务未完成所有数据操作,重新返回到事务开始,它标志着事务的撤销SAVETRAN表示完成部分事务,同时撤消事务的其他部分在事务控制中常常还需要通过检测两个全局变量:@@ERROR,@@TRANCOUNT来检测事务的状态。全局变量@@ERROR记录任何TransactSQL语句中的最近错误。如果语句成功执行,变量值为0;如果语句执行失败,变量值不为0。在事务定义处理时,往往需要检查@@ERROR来判断语句

5、执行是否成功。如果没有成功,则需要使用ROLLBACKTRAN语句来撤消事务。全局变量@@TRANCOUNT记录SQLServer当前等待提交的事务数,如果没有等待提交的事务数,全局变量@@TRANCOUNT的值为0。(4)事务的类型对数据库的访问是建立在对数据“读”和“写”两个操作之上的,因此,一般事务中涉及到数据操作主要是由“读”与“写”语句组成,而当事务仅由读语句组成时,事务的最终提交就会变得十分简单。因此,有时可以将事务分成只读型和读写型两种。只读型(ReadOnly)此时,事务对数据库的操作只能是读语句,这种操作将数据X由数据库中取出读到内存的缓冲区中。定义此类型即表示

6、随后的事务均是只读型,直到新的类型定义出现为止。读写型(Read/Write)此时,事务对数据库可以做读与写的操作,定义此类型后,表示随后的事务均为读/写型,直到新的类型定义出现为止。此类操作可以缺省。上述两种类型可以用下面的SQL语句定义:SETTRANSACTIONREADONLYSETTRANSACTIONREADWRITE3.实验内容事务编程是数据库应用系统中经常要用到的技术,通过使用事务控制语言和SQL语句实现各种事务操作。4.实验步骤假设对于某数据库用户在银行有两个帐号,分别为A帐号和B帐号,现在需要从A帐号转1000元到B帐号,编写事务处理程序,实现这一操作。假设学

7、校将学生的银行卡和校园卡进行了绑定,允许学生直接从银行卡转账到校园卡中。假设某学号为05212222的学生需要从银行卡中转账100元到校园卡中,编写事务处理程序,实现这一操作。已将该例子进行更新将此处增加的表结构增加到school数据库中,请编写创建结构和初始数据的代码zheng.hx回复:此处的表结构及数据在原先数据库已经存在要求:(1)采用隐式事务方式来实现事务编程。(2)采用显示显式用户定义事务的方式来实现事务编程。(3)事务与批命令。(4)嵌套事务的编程。(5)在存储过程

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

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

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