事务的ACID

目录

一.什么是事务?

二.事务四个特征

原子性 Atomicity

事务是一个原子操作单元,要么全部执行成功,要么全部执行失败。如果事务中的任何一步失败,整个事务都将被回滚到最初状态。

一致性 Consistency

隔离性 Isolation

持久性 Durability

三.在并发情况下,数据库隔离级别问题


一.什么是事务?

  定义: 一系列操作的集合

解释:

在数据库管理系统中,事务通常是由多个数据库操作组成的一个逻辑单元。这些操作可以包括插入、更新、删除等操作,这些操作被视为一个不可分割的整体。

 

举例来说,如果你要从一个账户转账一定金额到另一个账户,这个操作可能包括以下步骤:

  1. 从第一个账户中扣除转出金额。
  2. 将转出金额添加到第二个账户。
  3. 记录这次转账的日志。

这三个步骤一起构成了一个转账事务。要么所有步骤都成功执行,要么全部失败,这确保了数据库的一致性和完整性。

在实际应用中,事务的概念不仅局限于数据库系统,也可以在其他计算机领域中找到应用,例如在分布式系统、消息队列等领域。

二.事务四个特征

原子性 Atomicity
事务是一个原子操作单元,要么全部执行成功,要么全部执行失败。如果事务中的任何一步失败,整个事务都将被回滚到最初状态。
一致性 Consistency

事务在执行之前和执行之后,数据库的完整性约束不会被破坏。换句话说,事务将数据库从一种一致状态转换为另一种一致状态。

隔离性 Isolation

事务之间应该是相互隔离的,即一个事务的执行不应该受其他事务的影响。这意味着一个事务的中间状态对其他事务是不可见的。

持久性 Durability

一旦事务被提交,其结果应该是永久性的,即使发生系统故障或重启,也不应该丢失提交的事务。


三.在并发情况下,数据库隔离级别问题

  • 脏读(Dirty Read):一个事务读取了另一个事务未提交的数据,导致读取到无效数据的情况。

  • 不可重复读(Non-Repeatable Read):一个事务内多次读取同一数据行,但在读取过程中另一个事务修改了该数据行,导致两次读取结果不一致。

  • 幻读(Phantom Read):一个事务在读取某个范围的数据时,另一个事务在该范围内插入新的数据,导致第一个事务多次读取同一数据范围时,发现了不同数量的行。

  • 丢失更新(Lost Update):两个事务同时读取同一数据并进行修改,但是其中一个事务的修改被另一个事务覆盖,导致前一个事务的修改丢失。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/782164.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Matlab|孤岛划分|弹性配网故障划分模型

目录 1 主要内容 1.1 DistFlow 模型 1.2 虚拟潮流 1.3 目标函数 2 部分代码 3 程序结果 4 下载链接 1 主要内容 程序主要复现《A New Model for Resilient Distribution Systems by Microgrids Formation》,建立灾害情况下配网优化孤岛划分方案,通…

【Linux】POSIX信号量{基于环形队列的PC模型/理解信号量的出现/参考代码}

文章目录 1.POSIX信号量1.1介绍1.2接口 2.基于环形队列的PC模型2.1环形队列常用计算2.2如何设计?2.3如何实现? 3.细节处理3.1空间资源和数据资源3.2push/pop3.3理解信号量的出现1.回顾基于阻塞队列的PC模型中条件变量的使用2.如何理解信号量的投入使用&a…

P8681 [蓝桥杯 2019 省 AB] 完全二叉树的权值

题目描述 给定一棵包含 �N 个节点的完全二叉树,树上每个节点都有一个权值,按从上到下、从左到右的顺序依次是 �1,�2,⋯��A1​,A2​,⋯AN​,如下图所示: 现在小明要把相同…

9.动态规划——1.从递归到动态规划

例题——N阶楼梯上楼问题 分析 大事化小:爬N层有F(N)种可能,有 F ( N ) F ( N − 1 ) F ( N − 2 ) F(N)F(N-1)F(N-2) F(N)F(N−1)F(N−2)小事化了: F ( 1 ) 1 , F ( 2 ) 2 F(1)1,F(2)2 F(1)1,F(2)2 …

Python之旅:你能学到什么?

在数字时代的浪潮中,编程技能已不再是专业程序员的专属,而是越来越多人想要掌握的一项技能。在众多编程语言中,Python因其简洁、易读和强大的功能库受到了广大学习者的青睐。那么,学习Python究竟能学到哪些东西呢? 一…

IDE/VS2015和VS2017帮助文档MSDN安装和使用

文章目录 概述VS2015MSDN离线安装离线MSDN的下载离线MSDN安装 MSDN使用方法从VS内F1启动直接启动帮助程序跳转到了Qt的帮助网页 VS2017在线安装MSDN有些函数在本地MSDN没有帮助?切换中英文在线帮助文档 概述 本文主要介绍了VS集成开发环境中,帮助文档MS…

R语言颜色细分

1.如何对R语言中两种颜色之间进行细分 2.代码&#xff1a; x <- colorRampPalette(c("#FC8D62","#FDEAE6"))(12) #打印向量值 # 按字典顺序排序颜色值 x_sorted <- sort(x,decreasing TRUE)# 打印排序后的颜色值 print(x_sorted)#展示颜色 scales:…

Linux系统---如何理解Linux中的文件系统

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 一、理解文件系统 1.ls与stat 我们使用ls -l的时候看到的除了看到文件名&#xff0c;还看到了文件元数据。 每行包含7列…

神经网络与深度学习(一)

线性回归 定义 利用数理统计中回归分析&#xff0c;来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法 要素 训练集&#xff08;训练数据&#xff09;输出数据拟合函数数据条目数 场景 预测价格&#xff08;房屋、股票等&#xff09;、预测住院时间&#…

TASKPROMPTER

baseline模型的预训练权重就有1.6G! 多吓人呐&#xff0c;当时我就暂停下载了&#xff0c;不建议复现

python opencv 直线检测

直线检测 前期准备 import cv2 import numpy as np# 读取图片 img cv2.imread(r"C:\Users\HONOR\Desktop\12.png") # 灰度转换 gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 二值化 # reg, img cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) # 显示二值化…

数据结构 - 图

参考链接&#xff1a;数据结构&#xff1a;图(Graph)【详解】_图数据结构-CSDN博客 图的定义 图(Graph)是由顶点的有穷非空集合 V ( G ) 和顶点之间边的集合 E ( G ) 组成&#xff0c;通常表示为: G ( V , E ) &#xff0c;其中&#xff0c; G 表示个图&#xff0c; V 是图 G…

QT中的文件操作QFile、QDataStream、QTextStream、QBuffer

文件操作概述 1、Qt中IO操作的处理方式 &#xff08;1&#xff09;、Qt通过统一的接口简化了文件与外部设备的操作方式 &#xff08;2&#xff09;、Qt中的文件被看做是一种特殊的外部设备 &#xff08;3&#xff09;、Qt中的文件操作与外部设备操作相同 2、IO操作中的关键…

设计模式9--单例模式

定义 案例一 案例二 优缺点

新网站秒收录技术,新网站百度收录时间

在建立新网站后&#xff0c;让它尽快被搜索引擎收录是网站主最为关注的事情之一。百度作为中国最大的搜索引擎&#xff0c;网站被其快速收录对于增加曝光和流量至关重要。本文将介绍一些新网站秒收录技术&#xff0c;以及一般情况下新网站被百度收录需要的时间。 新网站秒收录技…

酷柚易讯无人空间小程序注册后需开通的部分接口权限

注意&#xff1a;无人共享小程序注册认证与备案后&#xff0c;需要开通以下接口系统才能正常使用&#xff01; 登录小程序后&#xff0c;找到开发管理->接口设置&#xff08;申请对应的接口权限&#xff09;

【vue】一个小bug和key的引入

点击master Vue!删除后该list后输入框中的Jerry消失了 原因&#xff1a;vue当你更改元素时会在真实的dom中渲染并更新list。这两个goal是两个dom元素,触发点击事件后,vue并不会删除第一个dom元素,而是把第二个dom元素的动态内容({{ goal }} - {{ index }})复制到第一个dom元素…

ChatGPT指引:借助ChatGPT撰写学术论文的技巧

ChatGPT无限次数:点击直达 ChatGPT指引&#xff1a;借助ChatGPT撰写学术论文的技巧 在当今信息技术高度发达的时代&#xff0c;人工智能技术的不断发展为学术研究者提供了更多的便利和可能。其中&#xff0c;自然语言处理技术中的ChatGPT无疑是一种强大的工具&#xff0c;它能…

B096-docker版jenkins环境搭建

目录 Jenkins持续集成工具的介绍Jenkins安装过程案例 tips&#xff1a;ssm项目需要放到tomcat中运行&#xff0c;springboot项目不需要&#xff0c;内置有tomcat&#xff0c;可直接命令行运行 Jenkins持续集成工具的介绍 Jenkins安装过程 docker版Jenkins需要先安装docker环境…

Redis实战篇-利用逻辑过期解决缓存击穿问题

实战篇Redis 3.0 、利用逻辑过期解决缓存击穿问题 需求&#xff1a;修改根据id查询商铺的业务&#xff0c;基于逻辑过期方式来解决缓存击穿问题 思路分析&#xff1a;当用户开始查询redis时&#xff0c;判断是否命中&#xff0c;如果没有命中则直接返回空数据&#xff0c;不…