ACID是指一个事务本质上有四个特点:

Atomicity:原子性

Consistency:一致性

Isolation:隔离性

Durablilty:耐久性

原子性

原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生

例如A向B转200元

如果A转成功,B也必须成功,否则都不成功,这就是所谓的要么都成功,要么都不成功

一致性

事务前后保持处于一致的状态,不管在任何给定的时间并发事务有多少

一致性具有以下特点:

  • 如果一个操作触发其他辅助操作(级联、触发器),这些辅助操作也必须成功,否则整个事务交易失败
  • 如果系统是由多个节点组成,一致性规定所有的变化必须传播到所有节点(多主复制),如果从站节点异步更新,那么我们打破一致性规则,系统成为“最终一致性”。
  • 一个事务是数据状态的切换,因此,如果事务并发对个,系统也必须串行执行这些事务操作。

操作前:A:800,B:200

操作后:A:600,B:400

操作前与操作后的状态一致,一致性表示事务完成后,符合逻辑运算

隔离性

事务的隔离性是指当多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,即多个事务之间要互相隔离。

针对两个事物同时进行,其中一个事物读取到的是另外一个事务提交之前的数据,A与C同时向B转钱,B的初始钱数都是200

当A向B转过钱之后的状态

A=800-200=600

B=200+200=400

当C向B转过钱之后的状态

C = 1000-100=900

B=200+100=300

两个事物的对B的状态是隔离的,不受其他事务的影响。

持久性

事务的持久性是指一个事务一旦被提交,这个事务对数据库里的数据的改变将是永久的,接下来即使数据库发生故障也不应该对其有任何

操作前:A:800,B:200

操作后:A:600,B:400

如果在操作前(事务还没有提交)服务器宕机或者断电,那么重启数据库以后,数据状态应该为:

A:800,   B:200

如果在操作前(事务已经提交)服务器宕机或者断电,那么重启数据库以后,数据状态应该为:

A:600,   B:400

数据库 ACID的更多相关文章

  1. 关系型数据库ACID

    关系型数据库ACID 一.事务 定义:所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位. 准备工作:为了说明事务的ACID原理,我们使用银行账户及资金管理的案例 ...

  2. 数据库ACID

    数据库的事务隔离级别 10.数据库的事务隔离级别一般分为4个级别,其中可能发生“不可重复读”的事物级别有()A.SERIALIZABLE B.READ COMMITTEDC.READ UNCOMMIT ...

  3. 数据库ACID和CAP理论

    1.ACID是RDBMS的理论基石:      A原子(Atomiclty )事务原子性:      C一致(Consistency)插入一张表数据,会 影响其它(索引/其它表)等一致.      I ...

  4. 数据库ACID、隔离级别与MVCC

    首先需要明确事务的概念:一组原子性的SQL查询,如果数据库引擎能够成功的对数据库应用该组查询的全部语句,那么就执行该组语句,否则所有语句都不执行. 事务有ACID四个特性,即: 原子性:一个事务是一个 ...

  5. 什么是数据库ACID?

    原子性:由于操作失败导致的数据碎片错误: 一致性:由于并发导致的数据库数据错误(与预期不一致): 隔离性:由于并发导致的当前使用数据(应用端)错误: 事务在当今的企业系统无处不在,即使在高并发环境下也 ...

  6. (转)数据库ACID特性

    转自:http://blog.csdn.net/shuaihj/article/details/14163713 隔离级别实现原理:http://www.cnblogs.com/wrencai/p/5 ...

  7. 数据库ACID和mvcc

    一.数据库的ACID性: 原子性(atomicity).一致性(consistency).隔离性(isolation).持久性(durability). 二.原子性 1.原子性:一个事务要么全部完成, ...

  8. 数据库--ACID特性

    事务的ACID属性 原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生. 一致性(Consistency) 事务必须使数据库从一个一致性状态变换 ...

  9. 数据库ACID,SQL和NoSQL

    数据库中的事务(transaction)有ACID4个基本特性,可以类比交易: 1,A(Atomicity)原子性 事务里的事情要么全部做完,要么执行过程中失败,此时回滚. 2,C(Consisten ...

随机推荐

  1. SQL server 删除日志文件 秒删

    直接执行 USE [库名称]GOALTER DATABASE [库名称] SET RECOVERY SIMPLE WITH NO_WAITGOALTER DATABASE  [库名称] SET REC ...

  2. Jenkins 配置git

    点击"新建任务"创建一个自用风格的项目 点击"源码管理",选择 git 系统管理 --> Global Tool Configuration<为访问 ...

  3. VC GDI 像素转厘米(英寸)[转发]

    [转载]http://blog.sina.com.cn/s/blog_638dd78201018663.html 函数原型:int GetDeviceCaps(int nIndex); 常用的参数有( ...

  4. 硬件笔记之MacMini开启HiDPI

    0x00 概述 先科普一下,有关retina和HiDPI那点事 ,Macmini在2k显示器的显示太小了,看起来费眼,没办法,苹果原生HiDPI是支持4k显示器的,所以以后买显示器,直接买4k的一步到 ...

  5. 【题解】Luogu P3674 小清新人渣的本愿

    原题传送门 这题还算简单(我记得我刚学oi时就来写这题,然后暴力都爆零了) 看见无修改,那么这题应该是莫队 维护两个bitset,第二个是第一个的反串,bitset内维护每个数字是否出现过 第一种操作 ...

  6. 立即执行函数(自执行函数) IIFE

    // 最常用的两种写法 (function(){ /* code */ }()); // 老道推荐写法 (function(){ /* code */ })(); // 当然这种也可以 // 括号和J ...

  7. Linux下复制文件

    命令: cp -Rf /文件名1/*               /文件名2 把文件夹1下的文件复制到文件2中(/* 表示复制文件夹1下的文件,不复制文件夹1)

  8. jsp+postgresql学习笔记(1)用户登录与注册

    前期准备: tomcat的安装与配置(略) jdk的安装与配置(略) eclipse软件安装与配置(略) webstrom软件或IDEA的安装与配置(大概用了IDEA就不需要eclipse了,但是怎么 ...

  9. 【转载】JVM 学习——垃圾收集器与内存分配策略

    本文主要是对<深入理解java虚拟机 第二版>第三章部分做的总结,文章中大部分内容都来自这章内容,也是博客 JVM 学习的第二部分. 简述 说到垃圾收集(Garbage Collectio ...

  10. xml转json和实体类的两种方式

    本文为博主原创,未经允许不得转载: xml在http通信中具有较高的安全性和传输速度,所以应用比较广泛, 在项目中往往需要对xml,json和实体类进行相互转换,在这里总结一下自己所用到的一些方法: ...