• 数据库事务的ACID


    对于支持Transaction的数据库而言,必须有以下特征

    一、Atomicity 原子性

    一个事务中的所有操作,执行情况有两种:全部完成和全部不完成。不能停滞在中间某个环节,执行过程中出现错误时,会回滚到事务开始前的状态

    二、Consistency 一致性

    (wikipedia):Ensures that any transaction will bring the database from one valid state to another.

    定义的规则:constraints(约束),cascades(级联),triggers(触发)

    所有写入数据库的数据必须满足上述规则或者规则组合(Any data written to the database must be valid according to all defined rules)

    不保证应用程序需求的事务正确性,仅仅保证任何程序错误不会导致破坏规则。

    (百科):一个事务可以封装状态改变(除非它是一个只读的)。事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事务有多少。

    三、Isolation 隔离性(串行化)

    提供隔离性是并发控制的主要目标。如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。

    四、Durability 持久性

    事务完成后,其对数据库所作的更改持久的保存在数据库中,不会被回滚。

    实现方式:

    1.write-ahead logging

    保证原子性的方法:在该表数据库前将没有更改的数据拷贝到日志中

    2.shadow paging

    (wiki)updates are applied to a partial copy of the database, and the new copy is activated when the transaction commits.

    (百科)与1相比,不需要redo,undo,消除了写日志记录的开销,恢复速度快

    缺点:事务提交时要输出多个块,提交开销大,以块为单位,很难应用到允许多个事务并发执行的情况。

  • 相关阅读:
    甲醛(Formaldehyde)
    Node Embedding
    受限玻尔兹曼机(RBM, Restricted Boltzmann machines)和深度信念网络(DBN, Deep Belief Networks)
    长尾分布,重尾分布(Heavy-tailed Distribution)
    SVD分解与数据压缩
    Batch Normailzation
    Attention Mechanism
    新装的Ubuntu在Nvidia显卡上分辨率不对
    人工神经网络(Artificial Neural Network)
    Xdebug+phpstorm配置
  • 原文地址:https://www.cnblogs.com/justdoitLLQ/p/6529534.html
Copyright © 2020-2023  润新知