Oracle 事务ACID的特性
1.事务对数据库控制操作
事务(Transaction)是用户定义的一个数据库操作序列,是不可分割的一部分的整体。这些操作要么做,要么不做(原子性)。事务是对数据库对进行操作的最基本的逻辑单位,他可以是一组SQL语句或者一条SQL语句或者整个程序,通常情况一个应用程序应该包含多个事务,此外,事务是恢复和并发控制的基本单位。
2.事务的特性
事务的的四大特性(ACID)
原子性:A (Atomicity) 事务是数据库的逻辑工作单位,事务中的操作要么做,要么就不做。
一致性:C(Consistency) 事务的结果必须是数据库从一个一致性到另一个一致性的状态。(一致性是指数据库执行成功的结果,不一执行是指数据库中也包含执行失败的结果)
隔离性:I (Isolation) 一个事务的执行不能被其他事务所干扰。一个事务内部的操作及使用的数据对对其他并发事务是隔离的,并发的执行的各个事务之间不能相互干扰。
持久性:D(Durability)一个事务一旦提交,其数据库中数据的改变应该是永久的,该事务中接下来的其他操作或产生的故障不应该对其执行结果有任何影响.
例子:取钱
某个银行数据库转帐 A(10000)A向B转账1000 B(原1000)
[第一步确定A账户是否有1000]
[第二步 A-b=9000]
[第三 写入A账户9000]
[第四步 B账户余额为1000]
[第五 写入账户B+1000]
[第六] 写入2000
转账事务处理流程
在正确执行的情况下,A的余额是9000,B的余额是2000,二者的金额之和等于事务未发生之前的和,称之为数据库的数据从一个一致性状态转移到了另一个一致性的状态,数据的完整性和一致性得到了保障。
假如在事务的处理过程中完成了第三步,未完成第六步,过程中出现了断电,这样就会出现A=9000,B=1000.很显然 一致性遭到了破坏,不能反映数据库的真是情况。因此必须还原到A=10000 B=1000的真实情况,进行回滚,这就是原子性的含义.——实现原子性(对于事务中的写操作的数据项,数据库系统在磁盘上记录着旧值,如果事务如果没有完成,没有全部就必须回滚,这就是原子性的含义).
3.事务状态

提交状态和中止状态的事务叫做已经解决的事务,处于活动中,部分提交状态和失败状态的事务称为未解决的事务
Oracle 事务ACID的特性的更多相关文章
- 【原创】Mysql中事务ACID实现原理
引言 照例,我们先来一个场景~ 面试官:"知道事务的四大特性么?" 你:"懂,ACID嘛,原子性(Atomicity).一致性(Consistency).隔离性(Isol ...
- Mysql中事务ACID实现原理
引言 照例,我们先来一个场景~ 面试官:"知道事务的四大特性么?"你:"懂,ACID嘛,原子性(Atomicity).一致性(Consistency).隔离性(Isola ...
- 【转】Mysql中事务ACID实现原理
转自:https://www.cnblogs.com/rjzheng/p/10841031.html 作者:孤独烟 引言 照例,我们先来一个场景~ 面试官:"知道事务的四大特性么?" ...
- Oracle事务的ACID特性
Oracle事务的ACID特性 1.原子性(Atomicity) 事务的原子性是指事务中包含的所有操作要么都做,要么都不做,保证数据库是一致的. 例如:A帐户向B帐户划账1000,则先将A减少1000 ...
- 数据库中事务的四大特性(ACID)
本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务 ...
- 【概念原理】四种SQL事务隔离级别和事务ACID特性
摘要: SQL事务隔离级别和事务的ACID特性 事务是一组读写操作,并且具有只有所有操作都成功才算成功的特性. 事务隔离级别 SQL事务隔离级别由弱到强分别是:READ_UNCOMMITTED.R ...
- 什么是事务?事务的四个特性(ACID)?并发事务带来哪些问题?事务隔离级别都有哪些?事务的传播特性
什么是事务? 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做. 事物的四个 ...
- 事务的四大特性(ACID):
事务的四大特性(ACID): 1.原子性(Atomicity): 事务中所有操作是不可再分割的原子单元.事务中所有操作要么都执行成功,要么都执行失败. 2.一致性(Consistency): 事 ...
- 事务ACID特性
所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位.例如,银行转帐工作:从一个帐号扣款并使另一个帐号增款,这两个操作要么都执行,要么都不执行. 数据库事务必须具备 ...
随机推荐
- FCC---CSS Flexbox: Align Elements Using the justify-content Property
Sometimes the flex items within a flex container do not fill all the space in the container. It is c ...
- 15.junit测试类使用及注解
1.junit简介 JUnit是一个Java语言的单元测试框架,可以大大缩短你的测试时间和准确度.多数Java的开发环境都已经集成了JUnit作为单元测试的工具. 2.实现junitDemo示例 2. ...
- [Windows] 智慧职教刷课软件(职教雨滴1.9更新完成)
(智慧职教刷课软件-职教雨滴)支持职教云(云课堂)的课程 2019年10月17日 16:19:57 增加支持资料库,MOOC 点击链接加入群聊[职教雨滴反馈群]:https://jq.qq.com/? ...
- Android组件体系之Service解析
一.调用方式 1.启动服务 只启动一个服务,不进行通信,包括startService.startForegroundService两种调用方式.第二种方式适用于后台应用启动前台服务,在启动 ...
- 备份下ESP8266的AT指令集手册和用例手册中文版,准备为V7做几个ESP8266的例子
指令集手册:https://files.cnblogs.com/files/armfly/4a-esp8266_at_instruction_set_cn.rar 用例手册: https://file ...
- Centos7 死活上不了网
NAT模式,手动修改ifcfg 如下: # vi /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=EthernetPROXY_METHOD=noneBR ...
- ruby中的多线程和函数的关键字传参
1.实现ruby中的多线程 # def test1 # n = 1 # if n > 10 # puts "test1结束" # else # while true # sl ...
- Python - 文件分发小程序
一.概述 该小程序实现从源端到目标端的文件一键拷贝,源端和目标段都在一台电脑上面,只是目录不同而已 二.参数文件说明 1. settings.txt的说明 a. 通过配置settings.txt,填源 ...
- mysql 排它锁之行锁、间隙锁、后码锁
MySQL InnoDB支持三种行锁定 行锁(Record Lock):锁直接加在索引记录上面,锁住的是key. 间隙锁(Gap Lock):锁定索引记录间隙,确保索引记录的间隙不变.间隙锁是针对事务 ...
- How to: Implement a Custom Base Persistent Class 如何:实现自定义持久化基类
XAF ships with the Business Class Library that contains a number of persistent classes ready for use ...