zoukankan      html  css  js  c++  java
  • 数据库事物四大特性-ACID

    事务的:原子性、一致性、分离性、持久性

      事物(transaction)是由一些列操作序列构成的执行单元,这些单元要么都做,要么不做,是一个不可分割的工作单元。

    数据库事物的四个基本性质(ACID)

    1.原子性(Atomicity)

      指的是事物中包含的所有操作要么全做,要么全不做(all or none)。

      例如银行取款事务分为2个步骤(1)存折减款(2)提取现金。不可能存折减款,却没有提取现金。2个步骤必须同时完成或者都不完成。

    2.一致性(consistency)

      在事物开始以前,数据库处于一致性的状态,事物结束后,数据库也必须处于一致性的状态。

      拿银行转账来说,一致性要求事务的执行不应改变A、B 两个账户的金额总和。如果没有这种一致性要求,转账过程中就会发生钱无中生有,或者不翼而飞的现象。事务应该把数据库从一个一致性状态转换到另外一个一致性状态。

    3.隔离性(Isolation)

      分离性指并发的事务是相互隔离的。即一个事务内部的操作及正在操作的数据必须封锁起来,不被其它企图进行修改的事务看到。假如并发交叉执行的事务没有任何控制,操纵相同的共享对象的多个并发事务的执行可能引起异常情况。

      对于任何一对事务T1和T2,在事务T1看来,T2要么在T1开始之前执行,要么在T1完成之后才开始执行,这样,每个事务都感觉不到系统中有并发事务执行。

    4.持久性(Durability)

      持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。即一旦一个事务提交,DBMS保证它对数据库中数据的改变应该是永久性的,即对已提交事务的更新能恢复。持久性通过数据库备份和恢复来保证。

  • 相关阅读:
    poj 2187 Beauty Contest (凸包)
    poj 1584 A Round Peg in a Ground Hole(计算几何)
    poj 1039 Pipe (计算几何)
    struts2开篇
    Action的内容
    输入校验
    文件上传
    Struts.xml内容
    .NET资源推荐:数据持久层
    线程间操作无效: 从不是创建控件“...”的线程访问它。
  • 原文地址:https://www.cnblogs.com/lixiaolun/p/5251718.html
Copyright © 2011-2022 走看看