数据库事务机制ACID

什么是数据库ACID?

  事务在当今的企业系统无处不在,即使在高并发环境下也可以提供数据的完整性。一个事务是一个只包含所有读/写操作成功的集合。如下图:

一个事务本质上有四个特点ACID:

  1. Atomicity原子性
  2. Consistency一致性
  3. Isolation隔离性
  4. Durability耐久性

原子性

原子性任务是一个独立的操作单元,是一种要么全部是,要么全部不是的原子单位性的操作。

一致性

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

一致性有下面特点:

  • 如果一个操作触发辅助操作(级联,触发器),这些也必须成功,否则交易失败。
  • 如果系统是由多个节点组成,一致性规定所有的变化必须传播到所有节点(多主复制)。如果从站节点是异步更新,那么我们打破一致性规则,系统成为“最终一致性”。
  • 一个事务是数据状态的切换,因此,如果事务是并发多个,系统也必须如同串行事务一样操作。

在现实中,事务系统遭遇并发请求时,这种串行化是有成本的, Amdahl法则描述如下:它是描述序列串行执行和并发之间的关系。

“一个程序在并行计算情况下使用多个处理器所能提升的速度是由这个程序中串行执行部分的时间决定的。”

大多数数据库管理系统选择(默认情况下)是放宽一致性,以达到更好的并发性。

隔离性

事务是并发控制机制,他们交错使用时也能提供一致性。隔离让我们隐藏来自外部世界未提交的状态变化,一个失败的事务不应该破坏系统的状态。隔离是通过用悲观或乐观锁机制实现的。

耐久性

一个成功的事务将永久性地改变系统的状态,所以在它结束之前,所有导致状态的变化都记录在一个持久的事务日志中。如果我们的系统突然受到系统崩溃或断电,那么所有未完成已提交的事务可能会重演。

转:https://www.jdon.com/concurrent/acid-database.html

原文地址:https://www.cnblogs.com/seamanone/p/9566305.html

时间: 2024-08-01 12:35:25

数据库事务机制ACID的相关文章

数据库事务的ACID特性和隔离级别

1. 事务的四个特性 数据库事务(Transaction)是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行.一方面,当多个应用程序并发访问数据库时,事务可以在应用程序间提供一个隔离方法,防止互相干扰.另一方面,事务为数据库操作序列提供了一个从失败恢复正常的方法. 事务具有四个特性:原子性(Atomicity).一致性(Consistency).隔离型(Isolation).持久性(Durability),简称ACID. 1.1 原子性(Atomicity) 事务的原子性

数据库事务特性ACID

事务 事务(Transaction),一般是指要做的或所做的事情.在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit).在计算机术语中,事务通常就是指数据库事务. 概念 一个数据库事务通常包含对数据库进行读或写的一个操作序列.它的存在包含有以下两个目的: 1.为数据库操作提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍能保持一致性的方法.2.当多个应用程序在并发访问数据库时,可以在这些应用程序之间提供一个隔离方法,以防止彼此的操作互相干扰.

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

我从维基百科翻译的.翻译水平有限: 在计算机科学中,ACID(原子性,一致性,隔离性,持久性)是数据库事务的一组属性,旨在即使在发生错误,断电等情况下也可以确保有效性.在数据库的上下文中,这是指一系列数据库操作,它们可以满足ACID属性(并且可以将这些属性视为对数据的单个逻辑操作)称为事务.例如,从一个银行帐户到另一个银行帐户的资金转移,即使涉及多个更改,例如从一个帐户借记而向另一个帐户贷记,也只是一次交易. 1983年, Andreas Reuter和TheoHärder在吉姆·格雷(Jim

数据库事务总结(一)-ACID

概述 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作. 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源.通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠.一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性.一致性.隔离性和持久性)属性. 操作流程 设想网上购物的一次交易,其付款过程至少包括以下几步数据库操作: · 更新客户所购商品的库存信息 · 保存客

[数据库事务与锁]详解三: 深入分析事务的隔离级别

注明: 本文转载自http://www.hollischuang.com/archives/943 本文详细介绍四种事务隔离级别,并通过举例的方式说明不同的级别能解决什么样的读现象.并且介绍了在关系型数据库中不同的隔离级别的实现原理. 在DBMS中,事务保证了一个操作序列可以全部都执行或者全部都不执行(原子性),从一个状态转变到另外一个状态(一致性).由于事务满足久性.所以一旦事务被提交之后,数据就能够被持久化下来,又因为事务是满足隔离性的,所以,当多个事务同时处理同一个数据的时候,多个事务直接

数据库:自己理解的“数据库事务隔离级别”

转载请注明出处: jiq?钦's technical Blog - 季义钦 引言:在网上搜了很多关于事务的文章,感觉单独来看都很难看懂,所以综合自己的理解写一篇我自己能理解的关于关系型数据库事务的文章. 一.事务特征 我们都知道数据库事务具备ACID特性: Atomic(原子性):一个事务要么成功,要么失败 Consistency(一致性):一致性代表了底层数据存储的完整性.事务执行前后数据库都必须处于一个合法的状态.什么才是一个合法的状态? 比如满足数据库的唯一性约束.数据类型验证.引用完整性

关系型数据库(六),数据库事务

目录 1.ACID 2.事务并发引起的问题 3.事务隔离机制 4.为什么不直接设置为串行化事务隔离级别 六.数据库事务 1.ACID (1)原子性(Atomic) 整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节.事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样. (2)一致性(Consistency) 一个事务可以封装状态改变(除非它是一个只读的).事务必须始终保持系统处于一致的状态,不管在任何给定的时间并发事

数据库事务(一)

概述 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作. 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源.通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠.一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性.一致性.隔离性和持久性)属性. 操作流程 设想网上购物的一次交易,其付款过程至少包括以下几步数据库操作: · 更新客户所购商品的库存信息 · 保存客

关于数据库事务、隔离级别、锁的理解与整理(转)

数据库事务的ACID特性 1. 事务的四个特性 数据库事务(Transaction)是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行.一方面,当多个应用程序并发访问数据库时,事务可以在应用程序间提供一个隔离方法,防止互相干扰.另一方面,事务为数据库操作序列提供了一个从失败恢复正常的方法. 事务具有四个特性:原子性(Atomicity).一致性(Consistency).隔离型(Isolation).持久性(Durability),简称ACID. 1.1 原子性(Atom