1.事务(Transaction)

事务一般是指数据库事务, 是基于关系型数据库(RDBMS)的企业应用的重要组成部分。在软件开发领域,事务扮演者十分重要的角色,用来确保应用程序数据的完整性和一致性。也就是要么完全执行,要么完全不执行。

事务允许我们将几个或一组操作组合成一个要么全部成功、要么全部失败的工作单元。如果事务中的所有操作都执行成功,那就是最终我们想要的正确的结果。但如果事务中的任何一个操作失败,那么事务中所有的操作都会被回滚,已经执行成功操作也会被完全还原,结果就跟操作之前一样。

很经典的例子就是银行转账操作, A转账给B500元, 如果A先转出去了500, 此时A的账户就少了500, 接下来就应该给B账户添加500元了, 但是很不巧此时程序出现了问题导致操作终止了, 这时候还没有给B账户加上500, 但是A却已经少了500元了, 这样就出现了问题. 所以就有了事务管理

事务管理的意义:保证数据操作的完整性。

而事务管理的四大特性就是ACID!

2.事务的ACID

事务的四个特性, 也就是ACID分别是: 原子性、一致性、隔离性 和 持久性

2.1.原子性(Atomicity)

事务的整个操作是一个整体,不可以分割,要么全部成功,要么全部失败。

例如: 上面的转账操作, A转出, B转入, 这虽然是两个操作, 但却应该是一个整体, 整体操作要么成功, 要么不成功(A也不会少那500元), 不能A转出了500, B却没有转入, 这就不是一个整体了.

2.2.一致性(Consistency)

事务必须保证数据库从一个一致性状态变到另一个一致性状态,一致性和原子性是密切相关的。

例如: 上面的转账操作, 账户A和B, 在操作之后, 应该要么都是转账前的状态(A没有转出500, B也没有收到500), 要么就都是转账后的状态(A转出了500, B转入了500), 不能A转出了500, B却没有转入500. 可以看出, 这里的一致性和原子性紧密结合的.

2.3.隔离性(Isolation)

一个事务的执行不能被其它事务干扰,即一个事务内部的操作及使用的数据对并发的其它事务是隔离的,并发执行的各个事务之间不能互相打扰。

例如: 上面的转账操作, 虽然A和B转账操作的那个时间段, 会有很多其他人也在转账(可能也会牵扯到A和B账户), 但是每个人的转账都是自己个事务中, 彼此之间不会影响

2.4.持久性(Durability)

持久性也称为永久性,指一个事务一旦提交,它对数据库中数据的改变就是永久性的,后面的其它操作和故障都不应该对其有任何影响。

例如: A和B的转账操作完成后(事务提交), 此时A就会少了这500, B也就多了500, 不会改变了(除非继续操作账户), 此时不管系统崩了还是银行断电, 账户里的钱都不会改变了

Spring事务的四大特性的更多相关文章

  1. 数据库事务的四大特性以及事务的隔离级别-与-Spring事务传播机制&隔离级别

    数据库事务的四大特性以及事务的隔离级别   本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ ...

  2. MySQL之事务的四大特性

    事务就是一组原子性的SQL查询,或者说一个独立的工作单元.如果数据库引擎能够成功地对数据应用该组查询的全部语句,那么久执行该组查询.如果其中任何一条语句因为崩溃或其他原因无法执行,那么所有语句都不会执 ...

  3. 事务的四大特性(ACID):

    事务的四大特性(ACID):    1.原子性(Atomicity): 事务中所有操作是不可再分割的原子单元.事务中所有操作要么都执行成功,要么都执行失败. 2.一致性(Consistency): 事 ...

  4. 数据库事务的四大特性以及事务的隔离级别(mysql)

      本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指 ...

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

    本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务 ...

  6. 数据库事务的四大特性以及4种事务的隔离级别-以及对应的5种JDBC事务隔离级别

    本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务 ...

  7. java面试题之----数据库事务的四大特性及隔离级别

    本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别. 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity) 原子性是指事务 ...

  8. 黑马day11 事务的四大特性

    1.事务的四大特性:一个事务具有的最主要的特性.一个设计良好的数据库能够为我们保证这四大特性. 1.1原子性:原子性是指事务是一个不可切割的工作单位,事务中的操作要么都发生要么都不发生. 1.2一致性 ...

  9. 事务的四大特性ACID

    ACID是指数据库事务的四大特性,是由Jim Gray在19世纪70年代后期提出的概念,1983年Andreas Reuter and Theo Härder创造了ACID这个缩略语用来描述这四大特性 ...

  10. DBMS事务的四大特性

    数据库事务的四大特性分别是:原子性.一致性.隔离性和持久性. 特性 说明 实现 一致性 在一个事务执行之前和执行之后数据库都必须处于一致性状态.假如数据库的状态满足所有的完整性约束,也可以说数据库是一 ...

随机推荐

  1. Task记录1.CancellationToken 取消Task任务的操作

    //1.创建取消令牌数据 CancellationTokenSource tokenSource = new CancellationTokenSource(); //2.创建取消令牌 Cancell ...

  2. drf-drf请求、响应、基于GenericAPIView+5个视图扩展类

    1.反序列化类校验部分源码分析(了解) 1.当我们在视图类中生成一个序列化类对象ser,并且用ser.is_valid()是就会执行校验,校验通过返回True,不通过返回False.首先对象ser和序 ...

  3. JavaScript 、三个点、 ...、点点点 是什么语法

    笔者在学习ts函数式的时候见到这样的写法,这个语法是es6的扩展运算符,可以在函数调用/数组构造时, 将数组表达式或者string在语法层面展开:还可以在构造字面量对象时, 将对象表达式按key-va ...

  4. P24_wxss - wxss与css的关系

    WXSS 模板样式 什么是 WXSS WXSS (WeiXin Style Sheets)是一套样式语言,用于美化 WXML 的组件样式,类似于网页开发中的 CSS. WXSS 和 CSS 的关系 W ...

  5. Java 如何通过JDBC 操作数据库

    JDBC 是Java 数据库连接,即 Java DataBase Connectivity.JDBC 可让Java 通过程序操作关系型数据库,可基于驱动程序实现与数据库的连接与操作.JDBC 有统一的 ...

  6. css 显示n行文字的方法 超出的部分用省略号代替

    // 超出的部分用省略号代替 text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 1; // 显示文字的行数 over ...

  7. JZOJ 3528. 【NOIP2013模拟11.7A组】图书馆(library)

    题目 解析 看到这题,没想到 \(dp\) 果断打了暴力 暴力理应只有 \(30\) 左右的样子 然而我加上了些奇技淫巧竟然有 \(80\) 分! 惊到我了! 我 \(80\) 分的暴力: 很容易想到 ...

  8. 这些 JavaScript 笔试题你能答对几道?

    收藏 javascript-questions 这个仓库很久了,趁着周末来锻炼下自己的 JS 基础水平 因为逐渐也在承担一些面试工作,顺便摘录一些个人觉得比较适合面试的题目和方向 事件流(捕获.冒泡) ...

  9. Node.js安装、webpack 安装步骤Windows

    注意:CMD要以管理员身份打开,否则在安装webpack那一步一直报错 默认 : C:\Windows\System32 --cmd.exe 什么是Node.js? 简单的说 Node.js 就是运行 ...

  10. Java 文本检索神器 "正则表达式"

    Java 文本检索神器 "正则表达式" 每博一文案 在我们短促而又漫长的一生中,我们在苦苦地寻找人生的幸福,可幸福往往又与我们失之交臂, 当我们为此而耗尽宝贵的.青春年华,皱纹也悄 ...