精华内容
下载资源
问答
  • ACID四大特性

    2021-06-16 21:32:49
    A 原子性 指的是一个事务是一个独立的整体,要么完全操作成功,要么完全失败 I 隔离性 指的是并发控制的时候,事务与事务之间相互不影响,防止并发导致数据不一致,一般通过通过乐观锁和悲观锁实现 ...
    • A 原子性
      指的是一个事务是一个独立的整体,要么完全操作成功,要么完全失败
    • I 隔离性
      指的是并发控制的时候,事务与事务之间相互不影响,防止并发导致数据不一致,一般通过通过乐观锁和悲观锁实现
    • D 持久性
      指的是数据一旦提交,将永久改变数据库中的数据
    • C 一致性
      事务和系统处于一致的状态
      其中一致性最不好理解,举个例子来说:一致性就是我给我同学转账100元,他如果接受到这个钱,我账户里就少了100元,而他的账户则必须要多100块,符合”守恒“,-100+100=0结果和原来没转帐之前是一样的
    展开全文
  • 事务及ACID四大特性

    2020-01-10 09:23:34
    事务及ACID四大特性 1. 事务 事务(Transaction)是并发控制单位,是用户定义的一个操作序列,这些操作要么都做,要么都不做,是一个不可分割的工作单位。 在计算机术语中是指访问并可能更新数据库中各种数据项的一...

    事务及ACID四大特性

    1. 事务

    事务(Transaction)是并发控制单位,是用户定义的一个操作序列,这些操作要么都做,要么都不做,是一个不可分割的工作单位。

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

    事务通常以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。

    1.1 概念

    在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。

    1.2 特性

    事务是恢复和并发控制的基本单位。

    事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。

    2. ACID特性

    2.1 原子性(atomicity)

    一个事务是一个不可分割的工作单位,事务中包括的操作要么都做,要么都不做。

    2.2 一致性(consistency)

    事务必须是使数据库从一个一致性状态变到另一个一致性状态。

    比如,当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统在运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致的状态。

    如果事务没有原子性的保证,那么在发生系统 故障的情况下,数据库就有可能处于不一致状态。 因而,事务的原子性与一致性是密切相关的。

    2.3 隔离性(isolation)

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

    2.4 持久性(durability)

    持久性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

    3. 参考面试题

    问1 :mysql 事务主要用来做什么?

    处理操作量大,复杂度高的数据.学员管理,删除一个学员.

    要删除基本资料,学员相关信息,成绩,考核,会议等等. 这些数据库操作语句就构成一个事务.

    问2 : mysql事务使用要注意哪些?

    1. 必须是 InnoDB 表引擎

    2. 事务处理,可以用来维护数据库的完整性,保证成批(整体)的sql语句 要么全部执行,要么全部不执行.

    3. 事务主要用来管理 update delete insert

    问3 : mysql事务需要满足哪些条件才会(全部)执行呢?

    一般来说,事务必须满足4个条件. ACID. 原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)

    问4 : mysql事务两个关键字?

    commit / rollback

    提交: 当一个事务完成之后,发出commit命令,来让所有参与表的更改生效.

    回滚: 当事务 发生故障,应该发出 rollback命令 来让事务引用的每一个表都回到事务开始以前的状态.

    参考

    https://baike.baidu.com/item/事务/5945882?fr=aladdin
    https://www.cnblogs.com/JiangDakang/p/9376510.html

    展开全文
  • 事务ACID四大特性 A:原子性(Atomicity) 一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。 事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像...

    什么是事务

    事务提供一种“要么什么都不做,要么做全套(All or Nothing)”机制。

    事务ACID四大特性

    • A:原子性(Atomicity)
      一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。
      事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
      C:一致性(Consistency)
      事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。
      如果事务成功地完成,那么系统中所有变化将正确地应用,系统处于有效状态。
      如果在事务中出现错误,那么系统中的所有变化将自动地回滚,系统返回到原始状态。
    • I:隔离性(Isolation)
      指的是在并发环境中,当不同的事务同时操纵相同的数据时,每个事务都有各自的完整数据空间。
      由并发事务所做的修改必须与任何其他并发事务所做的修改隔离。事务查看数据更新时,数据所处的状态要么是另一事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看到中间状态的数据。
    • D:持久性(Durability)
      指的是只要事务成功结束,它对数据库所做的更新就必须保存下来。即使发生系统崩溃,重新启动数据库系统后,数据库还能恢复到事务成功结束时的状态。
    展开全文
  • 数据库事务的ACID四大特性以及MySQL中的隔离级别 事务是一个单独的逻辑工作单元,事务中的所有更新操作要么都执行,要么都不执行。事务保证了一系列更新操作的原子性。如果事务之间存在并发操作,则可以通过食物...

    数据库事务的ACID四大特性以及MySQL中的隔离级别

    • 事务是一个单独的逻辑工作单元,事务中的所有更新操作要么都执行,要么都不执行。事务保证了一系列更新操作的原子性。如果事务之间存在并发操作,则可以通过食物之间的隔离级别来实现事务的隔离,从而保证事务间数据的并发访问

    一、事务的四大特性(ACID)

    1) 概念阐述
    • 1.原子性(Atomicity)

      • 事务的所有操作在数据库中要么全部正确反映出来,要么完全不反映
    • 2.一致性(Consistency)

      • 隔离执行事务时(在没有其他事务并发执行的情况下)保持数据库的一致性
    • 3.隔离性(Isolation)

      • 尽管多个事务可能并发执行,但系统保证,对于任何一对事务 T i T_i Ti T j T_j Tj ,在 T i T_i Ti 看来, T j T_j Tj 或者在 T i T_i Ti 开始之前已经完成执行,或者在 T i T_i Ti 完成之后开始执行。因此,每个事务都感觉不到系统中有其他事务在并发地执行
    • 4.持久性(Durability)

      • 一个事务成功完成后,它对数据库的改变必须是永久的,即使出现系统故障
    2) 实例讲解
    • 这里通过一个经典实例来详解这四个特性,设 T i T_i Ti 是从账户 A A A 过户 $ 50 50 50 到账户 B B B 的事务,这个事务可以定义为:

      在这里插入图片描述

      • 一致性:在这里,一致性要求事务的执行不改变 A A A B B B 之和。如果没有一致性要求,金额可能会被事务凭空创造或销毁。因此,如果数据库在事务执行之前是一致的,那么事务执行后数据库仍将保持一致

      • 原子性:假设事务 T i T_i Ti 执行前账户A和账户B分别有 $1000 和 $2000 。现在假设在事务 T i T_i Ti 执行时系统出现故障,导致 T i T_i Ti 的执行没有成功完成。我们进一步假设故障发生在 w r i t e ( A ) write(A) write(A) 操作执行之后 w r i t e ( B ) write(B) write(B) 操作执行之前。在这种情况下,数据库中反映出来的是账户 A 有 $950 , 而账户 B 有 $2000 。 这次故障导致系统丢失了 $50 。这样,由于故障,系统的状态不再反映数据库本应描述的现实世界的真实状态,将该种状态称为不一致状态。我们必须保证这种不一致状态在数据库系统中是不可见的。但是请注意,系统必然会在某一时刻处于不一致状态。即使事务 T i T_i Ti 能执行完,也仍然存在某一时刻账户 A 有 $950 , 而账户 B 有 $2000 , 这显然是一个不一致状态。但这一状态最终会被账户 A 有 $950 , 而账户 B 有 $2050 这个一致状态代替。因此,如果一个事务或者不开始,或者保证完成,那么这样的不一致状态除了在事务执行当中以外,在其他时刻是不可见的。这就是需要原子性的原因:如果具有原子性,某个事务的所有动作要么在数据库中全部反映出来,要么全部不反映出来

      • 持久性:一旦事务成功的完成执行,并且发起事务的用户已经被告知资金转账已经发生,系统就必须保证任何系统故障都不会引起与这次转账相关的数据丢失。持久性保证一旦事务成功完成,该事务对数据库所做的所有更新就都是持久的,即使事务执行完成后出现系统故障

      • 隔离性:如果几个事务并发地执行,即使每个事务都能确保一致性和原子性,它们的操作会以人们所不希望的某种方式交叉执行,这也会导致不一致的状态。正如我们先前看到的,例如,在 A 至 B 转账事务执行过程中,当 A 中总金额已减去转账额并已写回 A ,而 B 中总金额加上转账金额后还未写回 B 时,数据库暂时是不一致的。如果另一个并发运行的事务在这个中间时刻读取 A 和 B 的值并计算 A + B ,它将会得到不一致的值。更进一步,如果第二个事务基于它读取的不一致值对 A 和 B 进行更新,即使两个事务都完成后,数据库仍可能处于不一致状态。而事务的隔离性就是确保事务并发执行后的系统状态与这些事务串行执行后的系统状态等价

    二、事务的隔离级别

    • 事务的隔离级别是事务并发控制的整体解决方案,是综合利用各种类型的锁机制来解决并发问题。每个事务都有一个隔离级别,它定义了事务彼此之间隔离和交互的程度。 MYSQL 提供了 4 种隔离级别:read uncommitted (读取未提交的数据) 、 read committed (读取提交的数据) 、 repeatable read (可重复读) 和 serializable (串行化)。 其中 read uncommitted 的隔离级别最低,serializable 的隔离级别最高,4 种隔离级别逐渐增加

      • 1)read uncommitted (读取未提交的数据)

        • 提供了事务之间的最小隔离程度,处于这个隔离级别的事务可以读到其他事务还没有提交的数据
      • 2)read committed (读取提交的数据)

        • 处于这一级别的事务可以看见已经提交的事务所做的改变
      • 3)repeatable read (可重复读)

        • 这是 MySQL 默认的事务隔离级别,它能确保在同一事务内相同的查询语句其执行结果总是相同的
      • 4)serializable (串行化)

        • 这是最高级别的隔离,它强制事务排序,使事务一个接一个地顺序执行
    • 附:查看当前 MySQL 会话的事务隔离级别可以使用命令 s e l e c t @ @ s e s s i o n . t x _ i s o l a t i o n ; select @@session.tx\_isolation; select@@session.tx_isolation; , 查看 MySQL 服务实例全局事务隔离级别可以使用命令 s e l e c t @ @ g l o b a l . t x _ i s o l a t i o n ; select @@global.tx\_isolation; select@@global.tx_isolation;

    展开全文
  • MySQL(一)–ACID四大特性以及隔离级别 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性: ⑴ 原子性(Atomicity)  原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面...
  • 数据库的ACID四大特性

    2020-10-23 16:04:05
    ACID特性 详解 原子性 原子性是指事务是一个不可再分割的工作单元,事务中的操作要么都发生,要么都不发生。 可采用“A向B转账”这个例子来说明解释 在DBMS中,默认情况下一条SQL就是一个单独事务,事务是自动提交...
  • 数据库ACID四大特性到底为了啥,一文带你看通透

    千次阅读 多人点赞 2021-05-06 13:44:38
    说起数据库四大特性,同学们张口就来,ACID!那为什么要ACID?每种特性的原理又是什么?如何实现的?废话少说,哈哥今天带你搞清楚,快上车!
  • 为保证事务的正确性与可靠型,事务必须满足ACID四大特性:原子性、一致性、隔离性、持久性。 原子性(A):一个事务(transaction)中的所有操作,或者全部完成,或者全部不完成,不会结束在中间某个环节。事务在...
  • 数据库事务的ACID四大特性及脏读,不可重复读,幻读等 事务(transaction)到底是个啥? transaction有事务、交易的含义,翻译成事务,很难理解。如果理解为交易,就很清楚了。 想想如果要完成一笔交易,肯定一手交钱...
  • 数据库ACID四大特性及脏读,不可重复读,幻读,事物丢失 A 原子性(Atomicity) [ˌædəˈmɪsədi] 就是把事物分割成像原子一样,表示我们事物需要细微的去控制。比如我给你转钱,里面有我扣钱,你到账。总不能我...
  • 面试官:"知道事务的四大特性么?"你:"懂,ACID嘛,原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)!"面试官:“你们是用mysql数据库吧,能简单说说innodb中怎么实现这四大特性的么...
  • A 原子性(Atomicity) 就是把事物分割成像原子一样,表示我们事物需要细微的去控制。比如我给你转钱,里面有我扣钱,你到账。总不能我扣了钱,你没到账这种情况吧。所以就是指转账这个事物, 里面的所有环节哪怕一...
  • 原子性 原子性是指一个事务是一个不可分割的工作状态,其中的操作要么都做,要么都不做 一致性 一致性是指事务执行前后,数据处于一种...也就是说ACID四大特性之中,一致性是目的,原子性、隔离性、持久性是手段,
  • **也就是说ACID四大特性之中,一致性是目的,原子性、隔离性、持久性是手段,是为了保持一致性,数据库提供的手段。只有数据库实现了AID三大特性,才有可能实现一致性从应用层面来说,通过代码判断数据库是否有效...
  • 事务的原子性(Atomicity) 是指一个事务要么全部执行,要么全部不执行,不能执行到一般就不执行了。 例如A向B转账100元,A-100 和B+100 这两个操作要么都执行,要么都不执行,不然会导致严重的数据错误 ...
  • 数据库ACID特性 原子性:整个事务中的操作,要么全部完成,要么全部不完成。 一致性:事务可以封装状态改变,无论并发操作有多少,数据库的完整性不会被破坏。 隔绝性:多个事务并发访问时,事务间是隔绝的。 持久...
  • 这四个特性简称为 ACID 特性。  1 、 原子性 。事务是数据库的逻辑工作单位,事务中包含的各操作 要么都做,要么都不做  2 、 一致性 。事务执行的结果必须是使数据库从 一个一致性状态变到另一个一致性状态 。...
  • 数据库的事务必须满足4个特性:原子性, 一致性, 隔离性, 持久性,它们英文单词首字母合起来就是:ACID 在这些事务特性中,数据“一致性”为最终目标,其他特性都是为达到这个目标而采取的措施和手段。数据库...
  • 事务: ...事务的四大特性ACID): 原⼦性: 事务的原⼦性确保动作要么全部完成,要么完全不起作⽤; ⼀致性: 执⾏事务前后,数据保持⼀致,多个事务对同⼀个数据读取的结果是相同的; 隔离性:
  • (最简单,最通俗) 先介绍一下事物的ACIDA 原子性(Atomicity) 就是把事物分割成像原子一样,表示我们事物需要细微的去控制。比如我给你转钱,里面有我扣钱,你到账。总不能我扣了钱,你没到账这种情况吧。所以...
  • RandomAccessFile(随机访问读写文件类操作):支持随机访问磁盘文件 学习Java面试题(数据库的ACID四大特性) 照片分享 复习Java(I/O流) 到底什么是I/O流? I/O就是 input 和 output(数据流向) in:进(源头) ...

空空如也

空空如也

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

acid四大特性