事务的四个特性和事务的隔离级别

什么是事务?

一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。

一个事务可以是一条SQL语句,一组SQL语句或整个程序。

所以说事务是和数据库相关联的,事务的四个特性和事务的隔离级别也是关于数据库的。

事务的四个特性的理解(ACID)

1、原子性(Atomicity)

如果开启一个事务,那么这个事务所包含的sql语句要么全部执行,要么全部不执行,前面说过一个事务可以是一条SQL语句,一组SQL语句或整个程序。

例子:转账事务:A向B转100元,要么A失去100元,B得到100元,转账成功,要么A的100元还在,B没收到A的100元,转账失败

2、一致性(Consistency)

事务对于对于数据库的增删修改操作,要保证数据的一致,

举个例子:转账操作 A账户1000元,B账户没钱,AB之间相互转账,要保证总数是1000元,不可能多了或少了,这就是一致性;说白了就是现实中的数据必须有来源,有去向,不会凭空出现或者消失。

3、隔离性(Isolation)

事务的隔离性也有称作独立性,是指两个以上的事务不会出现交错执行的状态。因为这样可能会导致数据不一致。

4、持久性(Durability)

事务执行成功后,对数据库的修改是永久的,不会无缘无故地回滚。

事务的隔离级别的理解

Read uncommitted(读未提交) 发生了脏读

一个事务可以读取另一个事务未提交的数据

一个事务对数据库做出了修改但是没有提交(commit),这时候我们可以读到(查询到)修改的数据,但是如果这个事务回滚(rollback),我们之前读到的数据就是脏数据,是无效的数据。总的来说这个隔离级别会发生脏读的情况

Read Committed(读已提交) 解决了脏读,发生了不可重复读

一个事务要等到另一个事务提交之后才能读取数据。

例子:A银行卡有100元,这时他的妻子把100元转走了,当A去消费的时候发现卡里的100元没有了

一个事务的范围内两次相同的查询却得到不同的数据,这就是发生了不可重复读

Repeatable Read(可重复读) 解决了脏读和不可重复读,发生了幻读

在一个事务开启的时候就不允许其它事务去做修改的操作。

A事务开启对数据库进行修改,同时B事务在对数据库进行查询,B第一次查询结束的时候A提交了修改,当B再次查询的时候发现两次数据不一样,这就是幻读

Serializable(序列化) 解决了脏读,不可重复读和幻读

最高的事务隔离级别,代价花费最高,性能很低,很少使用,在此级别下,事务顺序执行,避免上述产生的情况。

原文地址:https://www.cnblogs.com/from-java-to-world/p/11304690.html

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

事务的四个特性和事务的隔离级别的相关文章

什么是事务?事务的四个特性以及事务的隔离级别

什么是事务 事务是指是程序中一系列严密的逻辑操作,而且所有操作必须全部成功完成,否则在每个操作中所作的所有更改都会被撤消.可以通俗理解为:就是把多件事情当做一件事情来处理,好比大家同在一条船上,要活一起活,要完一起完 . 事物的四个特性(ACID) ● 原子性(Atomicity):操作这些指令时,要么全部执行成功,要么全部不执行.只要其中一个指令执行失败,所有的指令都执行失败,数据进行回滚,回到执行指令前的数据状态. eg:拿转账来说,假设用户A和用户B两者的钱加起来一共是20000,那么不管

Spring的4种事务特性,5种隔离级别,7种传播行为

spring事务: 什么是事务: 事务逻辑上的一组操作,组成这组操作的各个逻辑单元,要么一起成功,要么一起失败. 事务特性(4种): 原子性 (atomicity):强调事务的不可分割. 一致性 (consistency):事务的执行的前后数据的完整性保持一致. 隔离性 (isolation):一个事务执行的过程中,不应该受到其他事务的干扰 持久性(durability) :事务一旦结束,数据就持久到数据库 如果不考虑隔离性引发安全性问题: 脏读 :一个事务读到了另一个事务的未提交的数据 不可重

事务的四个特性-ACID

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

mysql的事务四个特性以及事务的四个隔离级别

一.事务四大属性 分别是原子性.一致性.隔离性.持久性. 1.原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响. 2.一致性(Consistency) 一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态.举例来说,假设用户A和用户B两者的钱加起来一共是1000,那么不管A和B之间如何转账.转几次账,事务

Spring 声明式事务,propagation属性列表及isolation(隔离级别)

Spring 声明式事务,propagation属性列表 TransactionDefinition接口中定义,共有7种选项可用: PROPAGATION_REQUIRED:支持当前事务,如果当前没有事务,就新建一个事务.这是最常见的选择.PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行.PROPAGATION_MANDATORY:支持当前事务,如果当前没有事务,就抛出异常.PROPAGATION_REQUIRES_NEW:新建事务,如果当前存在事务,

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

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

事务的四个特性

事务的特性ACID 原子性(Atomicity):原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生. 一致性(Consistency):事务前后数据的完整性必须保持一致. 隔离性(Isolation):事务的隔离性是指多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发之间数据要相互隔离. 持久性(Durability):持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响. 原文地址

数据库事务的ACID特性和隔离级别

1. 事务的四个特性 数据库事务(Transaction)是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行.一方面,当多个应用程序并发访问数据库时,事务可以在应用程序间提供一个隔离方法,防止互相干扰.另一方面,事务为数据库操作序列提供了一个从失败恢复正常的方法. 事务具有四个特性:原子性(Atomicity).一致性(Consistency).隔离型(Isolation).持久性(Durability),简称ACID. 1.1 原子性(Atomicity) 事务的原子性

关于数据库事务、隔离级别、锁的理解与整理(转)

数据库事务的ACID特性 1. 事务的四个特性 数据库事务(Transaction)是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行.一方面,当多个应用程序并发访问数据库时,事务可以在应用程序间提供一个隔离方法,防止互相干扰.另一方面,事务为数据库操作序列提供了一个从失败恢复正常的方法. 事务具有四个特性:原子性(Atomicity).一致性(Consistency).隔离型(Isolation).持久性(Durability),简称ACID. 1.1 原子性(Atom