数据库-事务隔离级别和事务的传播属性

1、事务概念 

  现在的很多软件都是多用户,多应用,多线程的,对同一个表可能同时有很多人在用,为保持数据的一致性,所以提出了事务的概念。
  比如A要给B转1000块钱,那么要做两步Update操作:a、从A账户减1000块钱;b、给B账户加1000块钱;
  a、b两个操作应该作为一个整体来执行,要么都成功,要么都失败,否则会出现比较尴尬的情况:“A账户减了1000,但B账户没加钱” ; 
  (注:MySql数据库只有InnoDB引擎支持事务)

2、事务特性  
  原子性、一致性、隔离性、持久性,这四个属性通常称为ACID特性。

  2.1、原子性(atomicity)
  一个事务必须被视为一个不可分割的最小单元,整个事务中的所有操作要么全部提交成功,要么全部失败,对于一个事务来说,不可能只执行其中的一部分操作。
  比如: 老婆大人给你发生活费500元:
    1.老婆大人工资卡扣除500元;
    2.你工资卡增加500;
  不能出现老婆工资卡扣除500元,但你工资卡没有增加500元的情况;要么全部成功,要么全部失败。

    
  2.2、一致性(consistency)
  一致性是指事务将数据库从一种一致性转换到另外一种一致性状态,在事务开始之前和事务结束之后数据库中数据的业务完整性没有被破坏。
  比如:比如:
    1.老婆大人工资卡扣除500元
    2.你工资卡增加500
    2.你工资卡增加500

  不能因为任何原因,导致Deer老师收到两次钱

  2.3、隔离性(isolation)

    待续。。。。。


  2.4、持久性(durability)

    待续。。。。。

3、事务隔离级别

  待续。。。。。

4、事务的传播属性

  待续。。。。。

 

==============================================
我不能保证文章中每个观点都是对的,但是至少保证每一句话、每一行代码都经过了认真的推敲、仔细的斟酌。
每一篇文章的背后,希望都能看到自己对于技术、对于生活的态度。
==============================================

猜你喜欢

转载自www.cnblogs.com/liushengit/p/9889131.html