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特性
所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位.例如,银行转帐工作:从一个帐号扣款并使另一个帐号增款,这两个操作要么都执行,要么都不执行. 数据库事务必须具备 ...
随机推荐
- Vue项目无法使用局域网IP直接访问的配置方法
一般使用 vue-cli 下来的项目是可以直接访问局域网 IP 打开的,比如 192.168.1.11:8080 .但是最近公司的一个项目只可以通过 localhost 访问. 需要配置一下,才可直接 ...
- Python连载58-http协议简介
一.http协议实战 1.URL(Uniform Resource Located) (1)使用FFTP的URL,例如:ftp://rtfm.mit.edu (2)使用HTTP的URL,例如:http ...
- Homebrew的安装
Homebrew是一款Mac OS平台下的软件包管理工具. 安装方法:命令行输入 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubuserc ...
- Microsemi Libero使用技巧——使用FlashPro单独下载程序
前言 在工程代码编译完成之后,如果需要给某个芯片下载程序时,或者是工厂量产烧录程序时,我们不需要把整个工程文件给别人,而只需要把生成的下载文件给别人,然后使用FlashPro就可以单独下载程序文件了. ...
- C#总结(七)动态加载C++动态链接库
C#调用C++ 链接库的方式分为静态调用和动态调用这两种方式.静态调用之前的文章里面都有介绍,使用.net 提供的DllImport 导入相关的C++ 库即可.请看之前的文章,https://www. ...
- SpringBoot内容聚合
分类整理一些内容,方便需要时回过头来看,整理不易,如有疏漏,请多担待!之后要查看这篇文章,公众号后台回复 “Springboot聚合” SpringBoot+Mybatis多模块(module)项目搭 ...
- c++-构造函数练习和delete,new
强化练习 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <iostr ...
- JS---DOM---part4 课程介绍 & part3 复习
part4 课程介绍 事件 1. 绑定事件的区别 2. 移除绑定事件的方式及区别和兼容代码 3. 事件的三个阶段 4. 事件冒泡 5. 为同一个元素绑定多个不同的事件,指向的是同一个事件处理函数 6. ...
- 【iOS翻译】App启动时的响应过程
Responding to the Launch of Your App Initialize your app’s data structures, prepare your app to run, ...
- Python 学习笔记(基础篇)
背景:今年开始搞 Data science ,学了 python 小半年,但一直没时间整理整理.这篇文章很基础,就是根据廖雪峰的 python 教程 整理了一下基础知识,再加上自己的一些拓展,方便自己 ...