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. 【分析笔记】Linux 4.9 backlight 子系统分析

    相关信息 内核版本:Linux version 4.9.56 驱动文件:lichee\linux-4.9\drivers\video\backlight\backlight.c 驱动作用 对上,面对应 ...

  2. vue学习笔记(一)---- vue指令(在vue中使用样式的方式)

    认真学习,认真记录,每天都要有进步呀!!! 加油叭!!! 一.在vue中使用样式的方式: 1. 直接传递一个数组,注意: 这里的 class 需要使用 v-bind 做数据绑定 <style&g ...

  3. socket模块实现网络编程及struct模块解决黏包问题

    目录 一.socket模块 1.简介 2.基于文件类型的套接字家族 3.基于网络类型的套接字家族 二.socket代码简介 三.socket代码优化 1.聊天内容自定义 2.让聊天循环起来 3.用户输 ...

  4. 面向对象程序设计(二):C++模板初探

    背景:老师留了一个作业,对两个数组进行相加,但是总是会出现错误:首先我们需要知道当数组作为参数传递的时候是不能用 sizeof 的,因为当数组传入子函数就变成了普通的数组头:这时候使用 sizeof ...

  5. 重定向Kubernetes pod中的tcpdump输出

    重定向Kubernetes pod中的tcpdump输出 最新发现一个比较有意思的库ksniff,它是一个kubectl 插件,使用tcpdump来远程捕获Kubernetes集群中的pod流量并保存 ...

  6. Docker中apt-get update失败解决方案

    一.更换apt的镜像源 1. 进入目录 cd /etc/apt 2. 备份源文件 cp /etc/apt/sources.list /etc/apt/sources.list.bak 3. 更改镜像源 ...

  7. OWASP 靶机下载

    OWASP靶机下载安装详细过程一. OWASP靶机下载二. VM虚拟机三. OWASP安装四. OWASP启动运行一. OWASP靶机下载下载地址:https://sourceforge.net/pr ...

  8. appium连接手机 adb调试 app自动化

    一. 工具准备 jdk,java环境必备. android sdk,要使用内置的Android debug bridge,简称adb,调试手机用. appium,提供自动化服务,app自动化的核心库. ...

  9. gitbook使用指南

    一. node 下载 不要去node官网下载,那是最新版的,官方没提供旧版node.如果下载了最新版的还得下载一个管理node版本的工具,很麻烦且没必要. 在这个网站下载node:https://no ...

  10. JZOJ 2022.07.06【提高组A】模拟

    历程 被暴打了 原因是钻进了 \(T4\) 的坑中... 先看完题,发现 \(T4\) 比较有意思,\(T2\) 没有想法 \(T3\) 挺容易,做法似乎很好想 \(T1\) 送分,十几分钟搞定 然后 ...