ACID,是指在数据库管理系统(DBMS)中事务所具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。

1、原子性:

概念:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

举例:一个事务开始更新100行记录,但是在更新了20行之后(因为某种原因)失败了,那么此时数据库会回滚(撤销)对那20条记录的修改。

2、一致性:

概念:在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。

举例:在一个银行事务(在描述关系数据库事务的特性时,基本上都是用银行事务来作为描述对象的)中,需要从存储账户扣除款项,然后在支付账户中增加款项。 如果在这个中转的过程发生了失败,那么绝对不能让数据库只执行其中一个账户的操作,因为这样会导致数据处于不一致的状态(这样的话,银行的账目上,借贷就不平衡了)。

如果数据库系统运行中发生故障,有些事物尚未完成就被迫中断了,系统就将此事务中对数据库的所有已经完成的操作全部撤销,滚回到事务开始时的一致状态。

3、隔离性:

概念:”两个事务的执行是互不干扰的,一个事务不可能看到其他事务运行时,中间某一时刻的数据。这个特性是说,直到事务结束时(commit/rollback),其他事务(或者会话)对此事务所操作的数据都不可见(但并不是说其他会话的读取会被阻塞)

举例:比如说,一个用户正在修改hr.employees表,但是没有提交,那么其他用户在这个修改没有提交之前是看不到这个修改的。

4、持久性:

概念:在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。

指的是只要事务成功结束,它对数据库所做的更新就必须永久保存下来。即使发生系统崩溃,重新启动数据库系统后,数据库还能恢复到事务成功结束时的状态。

被提交的更改会永久地保存到数据库中(并不是说以后就不可以修改)。 事务提交之后,数据库必须通过“恢复机制”来确保事务更改的数据不会丢失。

SQL数据库的ACID特性相关推荐

  1. [转]数据库事务ACID特性

    ACID特性 数据库管理系统中事务(transaction)的四个特性(分析时根据首字母缩写依次解释):原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持 ...

  2. 数据库事务ACID特性

    ACID特性 数据库管理系统中事务(transaction)的四个特性(分析时根据首字母缩写依次解释):原子性(Atomicity).一致性(Consistency).隔离性(Isolation).持 ...

  3. 数据库事务ACID特性分析

    在日常生活中,事务是无时无刻不存在的,什么是事务,按我的理解事务便是执行一段连续的不可分离的操作,这段操作是为了实现某一个目的而执行的,它不存在中间状态,要么执行成功,则该操作所带来的影响永久存在,要 ...

  4. 数据库的ACID特性详解

    ACID是指在 数据库管理系统(DBMS)中事物所具有的四个特性:原子性.一致性.隔离性.持久性 事物:在数据库系统中,一个事务是指由一系列连续的数据库操作组成的一个完整的逻辑过程.这组操作执行前后, ...

  5. 数据库的事务ACID特性以及MySQL如何保持事物特性

    数据库的ACID特性 1.原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响 ...

  6. 数据库事务的ACID特性及含义

    数据库事务的ACID特性及含义 1.原子性(Atomic) 一个事务被视为一个不可分割的最小工作单元,这个事务里的所有操作要么全部成功执行,要么全都不执行,不能只执行其中的一部分操作.实现事务的原子性 ...

  7. 谈谈对数据库中ACID、CAP、BASE的认识

    2019独角兽企业重金招聘Python工程师标准>>> ACID.CAP.BASE的区别与联系 这得从关系型数据库关系型数据库(RDBMS)和非关系型数据库(NoSQL)说起. RD ...

  8. 谈谈MySQL InnoDB存储引擎事务的ACID特性

    2019独角兽企业重金招聘Python工程师标准>>> 1.前言 狼哥一直对数据库Mysql这块没有进行过系统的深入学习,今天看到一篇文章写的还不错,特意分享一下,我不能保证文章中所 ...

  9. 数据库 事务的特性ACID

    事务(Transaction)是并发控制的基本单位. 所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位.例如,银行转帐工作:从一个帐号扣款并使另一个帐号增款,这 ...

最新文章

  1. 基数排序算法(基于Java实现)
  2. SAP SD VL02N对STO的交货单执行PGI,报错 -Fld selectn for mvmt type 643 acct 400020 differs for Business Area –
  3. C语言经典例100-将学生成绩写入文件
  4. 文本和代码文件助手软件
  5. linux aemv7,无法在我的Ubuntu machin中安装“xlwings”
  6. 《TableStore最佳实践:轻松实现轨迹管理与地理围栏》
  7. active-class属于Vue哪一个modules,有什么作用
  8. systemd 与 sysVinit 彩版对照表
  9. HTTP GET请求URL中IP被异常替换的问题
  10. ISO常见的17大体系介绍
  11. PASCAL程序设计语言 PDF 分享
  12. quartus||仿真图
  13. oracle应收模块报表,OracleERPEBS应收模块AR概要培训ppt课件
  14. TMS570-4-RTI_DWD看门狗
  15. 猜拳小游戏(Java代码实现)
  16. 如何使用安卓+qq邮箱+腾讯企业邮箱发送邮件
  17. 零基础学习scala_从0-60开始学习Scala:基础知识
  18. [铁血开放平台]四轴团队
  19. 曲子龙:相比其它诈骗,区块链ICO到底牛在哪?
  20. loj 3090 「BJOI2019」勘破神机 - 数学

热门文章

  1. 论文解读 - 城市自动驾驶车辆运动规划与控制技术综述 (第2部分)
  2. 计算机病毒的活性,计算机病毒的特性
  3. 华为平板电子计算机,E开箱:华为平板电脑M6——10.8英寸版
  4. MATLAB信号处理---学习小案例(8)---Z变换概述
  5. C语言文件操作(三) —— 文件的随机读写(fseek / lseek)
  6. 原生JQUERY html5 分页
  7. windows计划任务创建—schtasks命令
  8. 公众号基本配置(token验证失败)|公众平台测试账号接口配置信息(token验证失败)
  9. 用信息化手段打赢疫情防控阻击战
  10. 中国大学MOOC课程《Python语言程序设计》第6章 文本词频人物统计 threekingdoms三国演义代码及解析