事务管理:事务的状态相关知识笔记

 

1、事务的几个概念

中止事务:事务在执行过程中发生故障,不能执行完成的事务。可以进行事务回滚,保持数据库的一致性。

事务回滚:将中止事务对数据库的更新操作撤销称为事务回滚。

已提交事务:成功执行完成的事务称为已提交事务。已提交的事务不能进行回滚操作,必须由程序员手工执行一个补偿事务才能撤销提交的事务对数据库的影响。

2、事务的状态 

事务执行的情况:事务成功执行,数据库进入一个新的一致状态;事务因为故障或其他原因未能够成功执行,这个时候数据库处于不一致状态,需要对未成功执行的事务造成的变更进行回滚操作,即事务回滚。

2.1 事务的五种状态

  • 活动状态:事务的初始状态,事务执行时处于这个状态。

  • 部分提交状态:当操作序列的最后一条语句自动执行后,事务处于部分提交状态。此时事务虽然已经完全执行,但由于实际输出可能还临时驻留在内存中,在事务成功完成之前还有可能出现硬件故障,事务仍有可能中止的情况。因此部分提交状态不表示事务一定成功执行。

  • 失败状态:因为硬件或逻辑等错误,使得事务不能继续正常执行,事务就会进入失败状态,然后必须执行回滚操作,然后事务就进入中止状态。

  • 中止状态:事务回滚并且数据库恢复到事务开始执行前的状态。

  • 提交状态:事务成功完成后,称事务处于提交状态。只有事务处于提交状态后,才表明事务已经提交。

2.2 事务的状态转换 

 begin transation:开始执行事务,使得事务处于活动状态。

  • end transation:表示事务中所有对数据库的操作都已经完成。

  • commit transation:标志事务已经成功完成。、,事务中对数据库的操作已经安全存入数据库,事务进入提交状态,结束事务的运行。

  • abort transaction:标志事务进入失败状态,系统撤销事务中所有操作对数据库的影响,结束事务的运行。

2.3 事务进入中止状态一般会有以下两种选择

1、重启事务:如果事务是因为软、硬件错误引起,不是事务内部逻辑错误所产生时,一般会采用重启事务的方法。重启事务可以理解为一个新的事务。

2、杀死事务:这种选择通常是因为事务中内部逻辑造成的错误或者输入的错误。

 

IT技术分享社区

个人博客网站:https://programmerblog.xyz

文章推荐程序员效率:画流程图常用的工具程序员效率:整理常用的在线笔记软件远程办公:常用的远程协助软件,你都知道吗?51单片机程序下载、ISP及串口基础知识硬件:断路器、接触器、继电器基础知识

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271040.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql符合安可要求吗,安可是什么意思?演唱太过精彩,粉丝要求返场(再唱一个)...

解答:安可是指再唱一个的意思,最早是源自英语“Encore”,常被用在演唱会上,当最后一轮表演或演唱结束之后,粉丝就会开始大喊“安可”,就是想要再听一场,这时歌手也会应粉丝的要求返场。安可是什…

事务管理基础:数据库的并发控制相关知识笔记

1、并发操作的概念介绍并发操作主要是指在多用户共享的系统当中,可能存在很多用户同时对同一个数据进行操作。并发操作会造成丢失更新、不可重复读、读脏数据。主要原因是事务的并发操作破坏了事务的隔离性。2、事务调度相关知识事务调度主要有串行调度、并发调度、…

Spring的AOP理解

Spring的AOP理解: OOP面向对象,允许开发者定义纵向的关系,但并适用于定义横向的关系,导致了大量代码的重复,而不利于各个模块的重用。 AOP,一般称为面向切面,作为面向对象的一种补充&#xff…

wpf 如何设置弹出窗口必须关闭才能打开其他软件_5招教你如何清除C盘除系统外的所有垃圾!都学会了吗?...

老毛桃winpe 2019-04-24 12:22:54 对于C盘,最让我们头疼的问题就是空间不足了!虽然知道C盘会存有很多垃圾,但由于C盘也是系统盘,我们只能可望不可及。那么,有什么办法清除C盘除系统外的所有垃圾吗?答案是…

事务管理基础:排它锁和共享锁相关知识笔记

1、排它锁、共享锁出现的意义数据库的并发事务对数据库进行读写,可能会破坏事务的隔离性和数据一致性。为了保持事务的隔离性,系统必须对事务之间的相互作用加以控制。最典型的做法就是当一个事务访问某个数据对象时,其他事务都不能更新该数据…

php对象底层结构,PHP 底层原理之类和对象

对于PHPer来说,OOP是不可或缺的开发思维,但是你对php类和对象的底层实现又了解多少呢?本着知其然且知其所以然的思想,让我们一起来寻找答案~类的底层实现可看作是之前我们讲过的变量、函数等的知识集合。所以想要理解更深入的同学…

程序默认在副屏显示_聊一款性价比极高的电竞显示器

小米在6月17日开启了小米显示器27寸165Hz版本的众筹,这台显示器的分辨率为2560x1440,也就是大家熟悉的小金刚,它与大金刚的最大区别也只是省去了G-Sync功能,而其他方面的参数几乎是一致的。那么我们今天就来聊聊这款真香的显示器。…

事务管理基础:两段锁协议、活锁、死锁相关知识整理

1、两段锁协议(Two-phase Locking Protocol) 两段锁协议是指对任何数据进行读写之前必须对数据进行加锁;在释放一个封锁之后,事务不再申请和获得任何其他封锁。两段锁协议中两段的含义:事务分为两个阶段,第…

php 空函数,PHP 中函数 isset(), empty(), is_null() 的区别

PHP 中函数 isset(), empty(), is_null() 的区别,使用 PHP 进行开发的时候,经常会用到 isset(), empty(), is_null() 这几个函数对数据进行判断,但是这是哪个函数的具体区别其实没有很好的掌握。下面我们详细讲解一下:NULL什么是 NULL&#x…

UVa11021

11021 TribblesGRAVITATION, n.“The tendency of all bodies to approach one another with a strengthproportion to the quantity of matter they contain – the quantity ofmatter they contain being ascertained by the strength of their tendencyto approach one anot…

数据库系统故障相关知识笔记

数据库系统中可能发生的故障主要包括事务故障、系统故障、介质故障、计算机病毒等。下面给大家简单整理一下相关的故障知识笔记。1、事务故障事务故障是因为程序执行错误而引起的非预期、异常终止的故障。主要有逻辑错误、系统错误导致事务的执行失败。逻辑错误:比如…

dede php分页代码,DEDECMS系统分页标签自定义二次开发

以前有给大家写过一篇自定义dedecms留言板的分页,下面我再来给大家分享一篇自定义常见的分页标签例子,希望文章对大家会有所帮助.自定搜索结果页面文章分页,在/plus文件夹中新建一个search.php文件,代码如下:require_once(dirname(__FILE__)."/../include/common.inc.php&…

数据库系备份相关知识笔记

1、数据库备份的知识介绍在互联网时代,最珍贵的财产不是计算机应用软件,更不是计算机硬件,而是企业在业务长期发展过程中积累下来的业务数据。建立网络最根本的用途是更加方便的传递、使用数据,人为原因、硬盘损坏、计算机病毒、断…

操作系统:分享6 个“吓人”的 Linux 命令

目录 1、crypt 2、kill 3、shred 5、at midnight 6、daemons 1、crypt 好吧,我们一直都有crypt。顾名思义,crypt不是存放垃圾文件的地宫或墓坑,而是加密文件内容的命令。 如今,“crypt”通常作为一个脚本而实现:通过调…

谷歌网络代理工具_谷歌更新了Dialogflow AI引擎,帮助客户创建更好的虚拟代理...

日前,谷歌发布了对其Dialogflow的一些重要更新,对话流是其呼叫中心人工智能服务的主要技术,它可以自动与呼叫中心的客户进行交互。据悉,Dialogflow是一个会话人工智能引擎,用于创建虚拟代理,可以理解和响应…

数据库恢复相关知识笔记

1、数据库恢复的原理数据库恢复的原理主要是在数据库发生故障之后,建立冗余数据,在故障发生之后利用冗余数据来完成数据库恢复。数据转储和建立日志文件是建立冗余数据常用的技术手段。一般情况下两种技术手段会同时使用。2、故障恢复的两个操作故障恢复…

oracle數據庫any,Oracle权限集合全集

alter any cluster 修改任意簇的权限alter any index 修改任意索引的权限alter any role 修改任意角色的权限alter any sequence 修改任意序列的权限alter any snapshot 修改任意快照的权限alter any table 修改任意表的权限alter any trigger 修改任意触发器的权限alter clust…

equals方法中变量在前和在后的区别

如果是两个都是变量,那就放哪都行没啥区别 如果有一个是常量一个变量的情况下,因为equals()方法是在Object类里定义的,也就是说任何对象都可以调用equals()方法,但是对象在调用方法的时候,如果对象为null那系统运行就…