精华内容
下载资源
问答
  • 事物的四大特性
    千次阅读
    2017-08-01 22:56:33

    事物—事物四大特性

    原子性(Atomicity)

    原子性是事物最小的单元,是不可再分的,对一个数据库小的操作。这些必须同时完成,如果有一个失败了。则一切的操作都全部失败。比如A给B转账,A是一个操作,B也是一个操作。A转账失败,则B接帐也失败

    一致性(Consistency)

    指在数据库操作前后是完全一致的。这个一致可以理解为对数据库操作的有效性。如果事物正常操作则系统会维持有效性,如果事物操作失败,回到事物操作前的原始状态,也要维持数据库的有效性。保证事物开始和结束后的系统始终处于一致状态。例如A给B转账,成功则维持有效性。若失败则返回到转账钱的状态并维持有效性。A的钱没有减少。B的钱也没有增加。

    隔离性(Isolation)

    多个事物可以同时进行且彼此之间无法访问。只有在事物完成最终的操作的时候,才可以看见结果。这种主要涉及到数据的脏读,幻读等问题。

    持久性(Durability)

    当一个系统崩溃时,一个事物依然可以坚持提交,当一个事物完成后。操作的结果会保存在磁盘中,永远不会被回滚。

    更多相关内容
  • RDBMS(关系型数据库管理系统的英文缩写)所具有的4个重要特性:原子性、一致性、隔离性、持久性,用英文头字母表示为ACID。原子性:要么完全做,要么完全不做。例如:一个事务执行删除1000个记录的SQL,执行到999后...

    RDBMS(关系型数据库管理系统的英文缩写)所具有的4个重要特性:原子性、一致性、隔离性、持久性,用英文头字母表示为ACID。

    原子性:要么完全做,要么完全不做。例如:一个事务执行删除1000个记录的SQL,执行到999后错误,那么事务终止(回滚)。简单点就是王八考试成绩为59.5分,最终的结果就是不及格。只是数据库把不及格和及格的操作分为0分(rollback)和100分(commit)两种。

    持久性:王八往银行存入1块钱,20年后王八希望查询这1块钱是什么时候存的,银行工作人员不能把这1块的记录删掉或忽略掉。那么oracle可以检索到所有已提交的事务,通过数据库恢复机制实施,采用先行写的方式,在数据写入磁盘的数据文件前,先把事务写入到磁盘的重做日志。

    隔离性:关系型数据库的特点是并发性,实际中,会有很多不同的用户对表进行插入、删除、修改操作,因此在一个事务提交前不能看到其它相关事务所更改的内容,所以每个事务都是隔离的,oracle通过并发性控制来支持。

    一致性:举个例子,王八又去银行办理手续,他希望把储蓄账户里面的1块钱取出,然后存入支票账户,那么银行工作人员不能够直接把1块钱存入支票账户,王八不可能变成2块钱,银行不允许这样的操作,oracle也不例外。再举个oracle的例子:用户希望删除部门ID A,但雇员表中有一个雇员属于部门A,那么oracle不允许删除部门A。

    事务并发性控制:所有用户所看到的数据必须是一致的,维护一个单用户的数据库一致性非常的简单,但是实际中会有许多不同的用户会修改、删除、插入数据到一张表中,那么并发性就会带来数据不一致的问题,所以oracle采用一种锁定的机制来保持数据的一致性。一个事务修改一张表时,oracle将锁定整张表,这样一个事务的操作不会影响到其他事务。在并发性控制下,就像用户一个接一个的处理事务,oracle牺牲了并发性,为了最大的提高并发性oracle使用的锁定是最小限制方式。

    展开全文
  • MYSQL的事物四大特性

    2021-01-18 19:33:40
    MYSQL的事物四大特性(ACID)1.什么是事物?事务(Transaction)是并发控制的基本单位。所谓的事务,它是由单独单元的一个或者多个sql语句组成,在这个单元中,每个mysql语句是相互依赖的。而整个单独单元作为一个不可...

    MYSQL的事物四大特性(ACID)

    1.什么是事物?

    事务(Transaction)是并发控制的基本单位。所谓的事务,它是由单独单元的一个或者多个sql语句组成,在这个单元中,每个mysql语句是相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中某条sql语句一旦执行失败或者产生错误,整个单元将会回滚,也就是所有受到影响的数据将会返回到事务开始以前的状态;如果单元中的所有sql语句均执行成功,则事务被顺利执行。

    例如,银行转账工作:一个账号转账给另一个账号,就会发生转账的账号会被扣钱另一个账号就会被加钱,这两个操作要么都执行,要么都不执行,在关系数据库中,一个事务可以是一条SQL语句、一组SQL语句或整个程序。所以,应该把它们看成一个事务。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。

    注意:mysql中,有多种存储引擎,在mysql中用的最多的存储引擎有:innodb,bdb,myisam ,memory 等。其中innodb和bdb支持事务而myisam等不支持事务。

    2.事物四大特性(ACID)

    事务具有四个特征:原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )和持久性( Durability )。这四个特性简称为 ACID 特性。

    原子性( Atomicity ):一个事务不可在分割,要么全部执行成功,要么全部执行失败。

    一致性( Consistency ):一个事务的执行会使数据从一个一致状态切换到另一个一致的状态。不会改变数据的完整性和约束性。

    隔离性( Isolation ):一个事务的执行不受其他事物的干扰。

    持久性( Durability ):当一个事物成功提交后,就会被永久的修改了数据库数据,即使出现系统故障也将一直保留。

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    5fc9626427e4afcee570b5a50b97d02c.gif                                

    be7d5ebf3a896b38bd8bd46031eaf3eb.gif

    展开全文
  • 1、事务的四大特性: 事务四大特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)四个特性,简称 ACID. 1.1、原子性(Atomicity) 原子性是指事务包含的所有操作要么...

    目录

     

    1、事务的四大特性:

    1.1、原子性(Atomicity)

    1.2、一致性(Consistency)

    1.3、隔离性(Isolation)

    1.4、持久性(Durability)

    2、事物隔离性

    2.1、如果不考虑隔离性,会发生什么事呢?

    2.1.1、脏读

    2.1.2、不可重复读

    2.1.3虚读(幻读)

    2.2、事物隔离级别 

    2.2.1读未提交(Read uncommitted):

    2.2.2、读已提交(Read committed)

    ​​​​​​​2.2.3、可重复读(Repeatable read):

    ​​​​​​​2.2.4、串行化(Serializable ):

    ​​​​​​​3、查询、设置数据库的隔离级别:

    3.1、查询数据库的隔离级别

    ​​​​​​​3.2、设置数据库的隔离级别


    ​​​​​​​

    1、事务的四大特性:

    事务四大特性原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)四个特性,简称 ACID.

    1.1、原子性(Atomicity)

    原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚。

    1.2、一致性(Consistency)

    一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。

          例:用户A和用户B两者的钱加起来一共是5000,那么不管A和B之间如何转账,转几次账,事务结束后两个用户的钱相加起来应该还得是5000,这就是事务的一致性。

    1.3、隔离性(Isolation)

    隔离性是当多个用户并发访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。

    即要达到这么一种效果:对于任意两个并发的事务T1和T2,在事务T1看来,T2要么在T1开始之前就已经结束,要么在T1结束之后才开始,这样每个事务都感觉不到有其他事务在并发地执行。

    1.4、持久性(Durability)

    持久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,即便是在数据库系统遇到故障的情况下也不会丢失提交事务的操作。

    例如:我们在使用JDBC操作数据库时,在提交事务方法后,提示用户事务操作完成,当我们程序执行完成直到看到提示后,就可以认定事务已经正确提交,即使这时候数据库出现了问题,也必须要将我们的事务完全执行完成,否则就会造成我们看到提示事务处理完毕,但是数据库因为故障而没有执行事务的重大错误。

    2、事物隔离性

    当多个线程都开启事务操作数据库中的数据时,数据库系统要能进行隔离操作,以保证各个线程获取数据的准确性,在介绍数据库提供的各种隔离级别之前,我们先看看如果不考虑事务的隔离性,会发生的几种问题:

    2.1、如果不考虑隔离性,会发生什么事呢?

    2.1.1、脏读

    脏读是指在一个事务处理过程里读取了另一个未提交的事务中的数据

    当一个事务正在多次修改某个数据,而在这个事务中这多次的修改都还未提交,这时一个并发的事务来访问该数据,就会造成两个事务得到的数据不一致。

    例如:用户A向用户B转账100元,对应SQL命令如下

    update account set money=money+100 where name=’B’;  (此时A通知B)

    update account set money=money - 100 where name=’A’;

    当只执行第一条SQL时,A通知B查看账户,B发现确实钱已到账(此时即发生了脏读),而之后无论第二条SQL是否执行,只要该事务不提交,则所有操作都将回滚,那么当B以后再次查看账户时就会发现钱其实并没有转。

    2.1.2、不可重复读

    不可重复读是指在对于数据库中的某个数据,一个事务范围内多次查询却返回了不同的数据值,这是由于在查询间隔,被另一个事务修改并提交了。

    例如:事务T1在读取某一数据,而事务T2立马修改了这个数据并且提交事务给数据库,事务T1再次读取该数据就得到了不同的结果,发生了不可重复读。

    不可重复读和脏读的区别是,脏读是某一事务读取了另一个事务未提交的脏数据,而不可重复读则是读取了前一事务提交的数据

    在某些情况下,不可重复读并不是问题,比如我们多次查询某个数据当然以最后查询得到的结果为主。但在另一些情况下就有可能发生问题,例如对于同一个数据A和B依次查询就可能不同,A和B就可能打起来了……

    2.1.3虚读(幻读)

    幻读是事务非独立执行时发生的一种现象。

    例如事务T1对一个表中所有行的某个数据项做了从“1”修改为“2”的操作,这时事务T2又对这个表中插入了一行数据项,而这个数据项的数值还是为“1”并且提交给数据库。而操作事务T1的用户如果再查看刚刚修改的数据,会发现还有一行没有修改,其实这行是从事务T2中添加的,就好像产生幻觉一样,这就是发生了幻读。

    幻读不可重复读都是读取了另一条已经提交的事务(这点就脏读不同),所不同的是不可重复读查询的都是同一个数据项

    幻读针对的是一批数据整体(比如数据的个数)。

    2.2、事物隔离级别 

    2.2.1读未提交(Read uncommitted):

    最低级别。这种事务隔离级别下,select语句不加锁。

    此时,可能读取到不一致的数据,即“读脏 ”。这是并发最高,一致性最差的隔离级别。

    ​​​​​​​2.2.2、读已提交(Read committed)

    可避免 脏读 的发生。

    在互联网大数据量,高并发量的场景下,几乎 不会使用 上述两种隔离级别。

    Oracle默认隔离级别。

    ​​​​​​​2.2.3、可重复读(Repeatable read):

    MySql默认隔离级别。

    可避免 脏读 不可重复读 的发生。

    ​​​​​​​2.2.4、串行化(Serializable ):

    可避免 脏读、不可重复读、幻读 的发生。

    以上四种隔离级别最高的是 Serializable 级别,最低的是 Read uncommitted 级别,当然级别越高,执行效率就越低。

    像 Serializable 这样的级别,就是以 锁表 的方式(类似于Java多线程中的锁)使得其他的线程只能在锁外等待,所以平时选用何种隔离级别应该根据实际情况。

    MySQL数据库中,支持上面四种隔离级别,默认的为Repeatable read (可重复读) ;

    而在 Oracle数据库 中,只支持Serializable (串行化) 级别和 Read committed (读已提交) 这两种级别,其中默认的为 Read committed(读已提交) 级别。

    ​​​​​​​3、查设置数据库的隔离级别:

    3.1、查询数据库的隔离级别

    select @@tx_isolation;

     ​​​​​​

     

     

    ​​​​​​​3.2、设置数据库的隔离级别

    set tx_isolation='隔离级别';  

    隔离级别: 

    read-uncommitted    

    read-committed    

    repeatable-read   

    serializable

    展开全文
  • 事物四大特性

    2021-09-22 10:18:40
    事物四大特性(ACID) 1、原子性(Atomicity):数据库中原子性强调事务是一个不可分割的整体,事务开始后所有操作要么全部成功,要么全部失败,不可能停滞在中间某个环节。如果事务执行过程中出错就会回滚到事务...
  • 1、事物四大特性(ACID)原子性(atomicity):一个事务必须视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的...
  • 事务的四大特性

    千次阅读 2022-03-22 10:42:42
    事务的四大特性:原子性、一致性、隔离性、持久兴; 原子性 事务的原子性是指事务必须是一个原子的操作序列单元。事务中包含的各项操作在一次执行过程中,只允许出现两种状态之一,要么都成功,要么都失败。 任何...
  • ACID事务的四大特性

    2022-03-12 10:17:53
    事务四大特性(简称ACID) 1、原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行。 2、一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果...
  • 数据库事务四大特性

    2022-04-18 11:15:10
    基本介绍(ACID) 原子性(Atomicity) 首先事务包括普通的SQL语句以及显示启动事务的情况 普通的一条SQL语句的情况,较容易理解,要么该语句执行成功,要么该语句执行失败,满足事务的原子性 ...
  • ACID--事务四大特性

    千次阅读 2022-04-18 19:19:33
    一致性(Consistency) 这个是数据库事务的核心,它是数据库最基本的特性。这条特性看起来简单,但是理解起来还是比较复杂的。 它的书面定义是:一致读 和 一致写 一致读:事务读取数据只能从一个状态中读取,不能...
  • java事务四大特性ACID

    2022-03-06 10:56:25
    事务的四大特性主要是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。 一、事务的四大特性 1.1 原子性(Atomicity) 原子性是指事务是一个不可分割的...
  • Redis-事物&事物四大特性(ACID)

    千次阅读 2020-01-08 19:57:51
    Redis事物 事物是指一系列操作步骤,这一系列操作步骤,要么完全执行,要么完全不执行 Redis中的事物(transaction)是一组命令的集合,至少是两个或两个以上的命令, redis事物保证这些命令被执行时间时中间不会被...
  • 事务四大特性(ACID)

    2022-03-22 17:00:19
    简单阐述事务的四大特性(原子性、一致性、隔离性和持久性),和解释并发事务的相互影响(脏读、不可重复读、幻读,第一类丢失更新和第二类丢失更新),并举出详细例子。
  • 数据库事物四大特性

    2017-12-07 15:58:00
    四大特性:隔离性,原子性,一致性,持久性 转载于:https://www.cnblogs.com/lauhp/p/7999477.html
  • 数据库事务的四大特性和隔离级别
  • java——事务四大特性

    2020-07-05 17:36:09
    事务四大特性(ACID): 1、原子性(Atomicity):化学中的原子指不可再分的基本微粒,数据库中原子性强调事务是一个不可分割的整体,事务开始后所有操作要**么全部成功,要么全部失败,不可能停滞在中间某个环节。*...
  • 事务的四大特性ACID

    万次阅读 2019-12-20 14:27:24
    相关历史文章(阅读本文之前,您可能需要先看下之前的系列????) ... 事务的四大特性主要是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。 一...
  • 事务管理的四大特性
  • 事务的:原子性、一致性、分离性、持久性 事物(transaction)是由一些列操作序列构成的执行单元,这些单元要么都做,要么不做,是...2.一致性(consistency)在事物开始以前,数据库处于一致性的状态,事物结束后,...
  • 本文主要介绍一下数据库事务的四大特性及事务的隔离级别 一 、事务的四大特性 二 、事务的隔离级别 一 、事务的四大特性 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性(ACID): ...
  • 事务的四大特性: 原子性(Atomicity):事务是最小的工作单元,不可再分。 一致性(Consistency):事务必须保证多条DML语句同时成功或同时失败。 隔离性(Isolation):一个事务不会影响其他事务的运行,互不干扰。...
  • 数据库事务及四大特性

    千次阅读 2020-09-24 16:01:54
    事务及四大特性 1 什么是事务 数据库事务(Database Transaction),是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。 简单的说:事务就是将一堆SQL(通常是增删改操作)的执行绑在一起,...
  • 1.事物的ACID特性 原子性 事物的原子性是指事物必须是一个原子的操作序列单元。事物中包含的各项操作在一次执行过程中,只允许出现两种状态之一。 全部执行成功 全部执行失败 任何一个异常的操作,都会使目前...
  • ACID四大特性: A原子性:事务必须是原子工作单元,其对于数据的修改,要么全都执行,要么全都不执行。(比如一个简单的涉及到两个即以上操作的行为,不会存在部分执行的情况) C一致性:事务在完成时,必须使所有...
  • 简单解释事物的概念和四大特性

    千次阅读 2020-04-18 17:14:22
    ACID(四大特新) 原子性(atomicty):事物是一个完整的操作。要么都执行要么都不执行。 一致性(consistency):当事物完成时,数据必须处于一致状态。 隔离性(isolation):对数据的各种操作事物必须是彼此隔离...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,318
精华内容 3,727
关键字:

事物的四大特性

友情链接: FileTransfer.rar