数据库事务中的四大特性ACID

一、概念

  数据库事务中的四大特性(ACID):

  A:原子性(Atomicity),一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。

    事务在执行过程中发生错误,会被回滚(rollback)到事务开始前的状态,就像这个事务从未执行过一样。

    就像你买东西要么交钱收货一起都执行,要么发不出货,就退钱。

  C:一致性(Consistency),一致性是指事务使得系统从一个一致的状态转换到另一个一致状态。

    比如数据库崩溃后重启,此时数据库处于不一致的状态,此时数据库必须做crash recovery操作,大致步骤如下:

      a、通过日志REDO(重演所有执行成功但是未写入到磁盘的操作)

      b、再对到数据库崩溃前没有执行完成的事务进行UNDO(撤销所有执行了一部分,但是有一部份还没有执行完成,且尚未提交的操作,保证事务的原子性)

      c、crash recovery结束后,数据库恢复了一致性,可以继续工作

  I:隔离性(Isolation),指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。

    由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。事务查看数据更新时,数据所处的状态要么是另一事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看到中间状态的数据。

    打个比方,你买东西这个事情,是不影响其他人的。

  D:持久性(Durability),指的是只要事务成功结束,它对数据库所做的更新就必须永久保存下来。

    即使发生系统崩溃,重新启动数据库系统后,数据库还能恢复到事务成功结束时的状态。

    打个比方,你买东西的时候需要记录在账本上,即使老板忘记了那也有据可查。

二、理解

  1、原子性并不能完全保证一致性。在多个事务并行进行的情况下,即使保证了每一个事务的原子性,仍然可能导致数据不一致的结果。

    例如,事务1需要将100元转入帐号A:先读取帐号A的值,然后在这个值上加上100。但是,在这两个操作之间,另一个事务2修改了帐号A的值,为它增加了100元。那么最后的结果应该是A增加了200元。但事实上,%20事务1最终完成后,帐号A只增加了100元,因为事务2的修改结果被事务1覆盖掉了。

原文地址:https://www.cnblogs.com/doublezh/p/10868849.html

时间: 2024-07-31 12:45:09

数据库事务中的四大特性ACID的相关文章

事务概念_四大特性

1.事务概念_四大特性 一.事务 事务的概念:事务是指逻辑上的一组操作,这组操作要么同时完成要么同时不完成. 事务的管理:默认情况下,数据库会自动管理事务,管理的方式是一条语句就独占一个事务. 如果需要自己控制事务也可以通过如下命令开启/提交/回滚事务 start transaction; commit; rollback; JDBC中管理事务: conn.setAutoCommit(false); conn.commit(); conn.rollback(); SavePoint sp = c

数据库事务中的隔离级别和锁+spring Transactional注解

数据库事务中的隔离级别和锁 数据库事务在后端开发中占非常重要的地位,如何确保数据读取的正确性.安全性也是我们需要研究的问题. ACID 首先总结一下数据库事务正确执行的四个要素(ACID): 原子性(Atomicity):即事务是不可分割的最小工作单元,事务内的操作要么全做,要么全不做,不能只做一部分:一致性(Consistency):在事务执行前数据库的数据处于正确的状态,而事务执行完成后数据库的数据还是处于正确的状态,即数据完整性约束没有被破坏:比如我们做银行转账的相关业务,A转账给B,要求

数据库事务的四大特性ACID

本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,所以事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响.为了实现原子性,需要通过日志:将所有对数据的更新操作都写入日志,如果一个事务中的一部分操作已经成功,但以后的操作,由于断电/系统崩溃/其它的软硬件错误而无法继续,则通过

事务的四大特性ACID

ACID是指数据库事务的四大特性,是由Jim Gray在19世纪70年代后期提出的概念,1983年Andreas Reuter and Theo Härder创造了ACID这个缩略语用来描述这四大特性. 原子性Atomicity是指事务是一个不可分割的整体,要么处于完成状态,要么处于未完成状态,不存在中间状态. 一致性Consistency是指任何事务操作完成后的结果不允许违背数据一致性的情况,其中包括不允许违背事先定义的约束Constraints等. 隔离性Isolation用于控制数据库的并

事务、事务的四大特性(ACID)、三大并发问题、四种锁、事务的隔离级别

一.什么是事务? 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做. 事务的结果有两种:当事务中的所有步骤全部成功执行完成时,事务提交.如果其中一个步骤失败,将发生回滚操作,撤消之前到事务开始时的所有操作. 二.事务的四个特性 事务具有四个特征:原子性( Atomicity ).一致性( Consistency ).隔离性( Isolation )和持续性( Durabil

python事务四大特性ACID

1.原子性 整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作 2.一致性 一致性就是在没有提交事务前,不管理对数据操作多少次,真实的数据都不会改动,只有提交了事务才会数据更改 3.隔离性 隔离性就是在没有完成本次事务前,不允许其他用户对数据的操作 4.持久性 一旦事务提交了,就永久写到数据库中了 原文地址:https://www.cnblogs.com/zrf-516/p/9021016.html

数据库事务的4大特性与隔离级别

本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响. ⑵ 一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执

事务的四个特性-ACID

事务是恢复和并发控制的基本单位. 事务应该具有4个属性:原子性.一致性.隔离性.持久性.这四个属性通常称为ACID特性. 原子性(atomicity):一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做. 一致性(consistency):事务必须是使数据库从一个一致性状态变到另一个一致性状态.一致性与原子性是密切相关的.几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致. 隔离性(isolation):一个事务的执行不能被其他事务干扰.即一个事务内部的操作

数据库事务的四个特性及含义

数据库事务transanction正确执行的四个基本要素. ACID 原子性(Atomicity) 原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节.事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样. 一致性(Correspondence) 一致性:在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏. 隔离性(Isolation) 隔离性:隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操