zoukankan      html  css  js  c++  java
  • 事务

       所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转账工作:从一个账号扣款并使另一个账号增款,这两个操作要么都执行,要么都不执行。所以,应该把它们看成一个事务。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。事务是恢复和并发控制的基本单位。

     (1) 事务4个基本特征:

    ●   Atomic(原子性):事务中包含的操作被看做一个逻辑单元,这个逻辑单元中的操作要么全部成功,要么全部失败。

    ●   Consistency(一致性):只有合法的数据可以被写入数据库,否则事务应该将其回滚到最初状态。

    ●   Isolation(隔离性):事务允许多个用户对同一个数据进行并发访问,而不破坏数据的正确性和完整性。同时,并行事务的修改必须与其他并行事务的修改相互独立。

    ●   Durability(持久性):事务结束后,事务处理的结果必须能够得到固化。

    (2)事务通常是以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。 
    COMMIT表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。
    ROLLBACK表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续进行,系统将事务中对数据库的所有以完成的操作全部撤消,滚回到事务开始的状态。 
    (3)事务运行的三种模式: 
    A:自动提交事务 
    每条单独的语句都是一个事务。每个语句后都隐含一个COMMIT。 
    B:显式事务 
    以BEGIN TRANSACTION显式开始,以COMMIT或ROLLBACK显式结束。 
    C:隐性事务 
    在前一个事务完成时,新事务隐式启动,但每个事务仍以COMMIT或ROLLBACK显式结束。 

  • 相关阅读:
    Python 多线程,文件io
    Python map/reduce函数式编程
    LeetCode 77 组合
    LeetCode 198 打家劫舍
    LeetCode 138 复制带随机指针的链表
    LeetCode 445 两数相加 II
    LeetCode 2 两数相加
    LeetCode 215 数组中的第K个最大元素
    和为S的两个数字
    数组中重复的数字
  • 原文地址:https://www.cnblogs.com/moxia1234/p/4763664.html
Copyright © 2011-2022 走看看