数据库基础与实例教程(达梦DM8) 课件 5.1数据库事务及锁管理_第1页
数据库基础与实例教程(达梦DM8) 课件 5.1数据库事务及锁管理_第2页
数据库基础与实例教程(达梦DM8) 课件 5.1数据库事务及锁管理_第3页
数据库基础与实例教程(达梦DM8) 课件 5.1数据库事务及锁管理_第4页
数据库基础与实例教程(达梦DM8) 课件 5.1数据库事务及锁管理_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

数据库基础(基于达梦DM8)数据库事务及锁管理55.1事务管理02事务的提交及回滚01认识事务及其特性认识事务及其特性5.1.15.1.1认识事务及其特性

1.认识事务

数据库中事务(Transaction)是数据库处理的单个逻辑工作单元,是一系列看作一个整体的操作的集合。一个事务内操作的集合一般包括插入(增)、删除(删)、修改(改)和检索(查)数据。这些操作要么全部执行,要么全部不执行,保证数据的有效性和一致性。

5.1.1认识事务及其特性

1.认识事务

对于DM数据库来说,第一次执行SQL语句时,隐式地启动一个事务,以提交(COMMIT)或回滚(ROLLBACK)语句/方法显式地结束事务。

COMMIT操作会将该语句所对应事务对数据库的所有更新持久化(即写入磁盘),数据库此时进入了新的一致性状态,并结束该事务。

ROLLBACK操作将该语句所对应事务对数据库的所有更新全部撤销,把数据库恢复到该事务初启动前的一致性状态。

5.1.1认识事务及其特性2.事务的特性

事务具有4个特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。这4个特征也简称为事务的ACID特性。

这些特性用于保证事务执行后数据库仍然是正确的状态。事务是数据库并发控制和恢复的基本单位。保证事务的ACID特性是事务处理的重要任务。5.1.1认识事务及其特性2.事务的特性(1)原子性

事务的原子性保证事务包含的一组操作是原子不可分的,也就是说这些操作是一个整体,对数据库而言全做或者全不做,不能部分地完成。5.1.1认识事务及其特性2.事务的特性(2)一致性事务的一致性是指表示客观世界同一事务状态的数据,不管出现在何时何处都是一致的、正确的、完整的。或者说事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。5.1.1认识事务及其特性2.事务的特性(3)隔离性事务的隔离性是指数据库中一个事务的执行不能被其他事务干扰,即事务是隔离的,每个事务的执行效果与系统中只有该事务的执行效果一样。也就是说,某个并发事务所做的修改必须与任何其他的并发事务所做的修改相互隔离,并发执行的各个事务之间不能相互干扰。只有当某个值被一个事务修改完并提交后才会影响到另一个事务。5.1.1认识事务及其特性2.事务的特性(4)持久性事务的持久性也称为永久性。持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来的其他操作和数据库故障不应该对其有任何影响。即一旦一个事务提交,数据库管理系统保证它对数据库中数据的改变应该是永久性的。事务的提交和回滚5.1.21.事务提交

提交事务就是提交事务对数据库所做的操作,将事务中一系列看作一个整体的所有操作的结果保存到数据库中。同时提交事务会将任何更改的记录都被写入日志文件并最终写入到数据文件,并且释放由事务占用的资源。1.事务提交生成回滚记录,回滚记录包含了事务中各SQL语句所修改的数据的原始值;在系统的重做日志缓冲区中生成重做日志记录,重做日志记录包含了对数据页和回滚页所进行的修改,这些记录可能在事务提交之前被写入磁盘;对数据的修改已经被写入数据缓冲区,这些修改也可能在事务提交之前被写入磁盘。已提交事务中对数据的修改被存储在数据库的缓冲区中,它们不一定被立即写入数据文件内。DM数据库自动选择适当的时机进行写操作以保证系统的效率。因此写操作既可能发生在事务提交之前,也可能在提交之后。

1)在事务提交前DM数据库的工作1.事务提交将事务任何更改的记录写入日志文件并最终写入到数据文件;释放事务上的所有锁,将事务标记为完成;返回提交成功消息给请求者。在DM数据库中还存在有3种事务模式:自动提交模式、手动提交模式和隐式提交模式。

2)在事务提交后DM数据库的工作1.事务提交-事务模式

除了命令行交互式工具DISQL外,DM数据库缺省都采用自动提交模式。用户通过DM数据库的其他管理工具、编程接口访问DM数据库时,如果不手动/编程设置提交模式,所有的SQL语句都会在执行结束后提交,或者在执行失败时回滚,此时每个事务都只有一条SQL语句。

①自动提交模式1.事务提交-事务模式

在DISQL中,用户也可以通过执行如下语句来打开/关闭当前会话自动提交模式。1)打开自动提交模式。

SETAUTOCOMMITON;2)关闭自动提交模式。

SETAUTOCOMMITOFF;

①自动提交模式1.事务提交-事务模式

在手动提交模式下,DM数据库用户或者应用开发人员明确定义事务的开始和结束,这些事务也被称为显式事务。在DISQL中,没有设置自动提交时,就是处于手动提交模式,此时DISQL连接到服务器后第一条SQL语句或者事务结束后的第一条语句就标记着事务的开始,可以执行COMMIT或者ROLLBACK来提交或者回滚事务。

②手动提交模式1.事务提交-事务模式

在手动提交模式下,当遇到DDL语句时,DM数据库会自动提交前面的事务,然后开始一个新的事务执行DDL语句。这种事务提交被称为隐式提交。DM数据库在遇到以下SQL语句时自动提交前面的事务:CREATE、ALTER、TRUNCATE、DROP、GRANT、REVOKE、审计设置语句。

③隐式提交模式2.事务回滚

回滚事务是撤销该事务所做的任何更改,回到事务开始前或者保存点的一致性状态。回滚有两种形式:DM数据库自动回滚,或者通过程序/ROLLBACK命令手动回滚。除此之外,与回滚相关的还有回滚到保存点和语句级回滚。2.事务回滚

若事务运行期间出现连接断开,DM数据库都会自动回滚该连接所产生的事务。回滚会撤销事务执行的所有数据库更改,并释放此事务使用的所有数据库资源,确保数据的一致性。DM数据库在恢复时也会使用自动回滚。如在运行事务时服务器突然断电,接着系统重新启动,DM数据库就会在重启时执行自动恢复。

1)自动回滚2.事务回滚

实际应用中,当某条SQL语句执行失败时,用户可主动使用ROLLBACK语句或者编程接口提供的回滚函数来回滚整个事务,避免不合逻辑的事务污染数据库,导致数据不一致。

2)手动回滚2.事务回滚

除了回滚整个事务之外,DM数据库的用户还可以部分回滚未提交事务。用户在事务内可以声明多个被称为保存点的标记,将一个大事务划分为几个较小的片段。之后用户在对事务进行回滚操作时,就可以选择从当前执行位置回滚到事务内的任意一个保存点。即从事务的最末端回滚到事务中任意一个被称为保存

温馨提示

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

评论

0/150

提交评论