当前位置:   article > 正文

数据库事务四大特性-ACID(原子性、一致性、隔离性、持久性)_数据库一致性 持久性

数据库一致性 持久性

事务四大特性

特性简介

事务四大特性主要是:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。

特性详解

原子性(Atomicity)

指事务是一个不可分割的工作单位,一个事务中的操作要么全部执行完成,要么均不执行。

一致性(Consistency)

该特性容易误解为用转账前后金额是否一致的例子来举例!本人认为转账金额例子是基于原子性实现的,并不能用来说明一致性
注意:数据库的状态只有事务提交前的状态和事务提交后的状态,不会出现操作执行了一半时数据就被其他事务读取到的中间状态
即数据库事务的一致性就规定了:
事务提交前后,只存在两种状态,1.事务提交前的状态,2.事务提交后的状态。从一个一致性状态到另一个一致性状态,不会出现中间的过程态。
以上翻译下就是:数据库现在有一个事务C正在执行,对于数据库和当前事务C来说:存在2种事务状态,1-当前事务C提交成功前的数据库状态C1,2-当前事务C提交成功后的数据库状态C2。如果事务C提交成功,则数据库层面由状态C1变换为状态C2;如果事务C执行失败,数据库层面事务C回滚状态还是C1。不论事务C执行时间多长,在数据库层面,事务C提交前后只会存在C1状态和C2状态,不会存在事务C正在执行中的这种中间状态

隔离性(Isolation)

隔离性是基于原子性和一致性的,正因为事物的原子性和一致性,数据库支持多个事务并发的执行,多个事务互不干扰,此即为事务隔离。
但由于多个事务可能操作的对象是同一个资源,故数据库实现事务的隔离性有很多锁方案,如MySQL的四种隔离级别:

  • 读未提交(READ UNCOMMITTED)
  • 读提交 (READ COMMITTED)
  • 可重复读 (REPEATABLE READ)
  • 串行化 (SERIALIZABLE)
    不详述以上,可以参考Mysql数据库的几个特点第一点:事物级别。
持久性(Durability)

指事务一旦提交,对数据库中数据的改变就是永久性的,接下来即使数据接发生故障也不应该对其有任何影响。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/898729
推荐阅读
相关标签
  

闽ICP备14008679号