什么是事务的acid性质?由哪些机制保证这些性质的实现

如题所述

ACID性质

ACID property

定义:ACID指数据库事务正确执行的四个基本要素的缩写,包含原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)。一个支持事务的数据库系统,必须要具有这四种特性,否则在事务执行过程中无法保证数据的正确性,处理过程极可能达不到正确要求。

学科:计算机科学技术_数据库_数据库管理系统及其实现

技术

相关名词:数据库 数据库管理系统 事务

【延伸阅读】

从数据库用户的观点看,数据库中某些特定操作的集合需要被认为是一个独立单元。例如,顾客认为从支票账户到储蓄账户的资金转账是一个操作单元,尽管在数据库系统中这是由对支票账户资金余额的修改、对储蓄账户资金余额的修改以及对本次交易的登记等几个操作组成的。显然,必须要求这些操作要么全都发生,要么由于出错而全不发生。保证这一点非常重要。无论从系统的观点还是从用户的观点,都不愿意看到资金从支票账户支出而未转入储蓄账户的情况发生。

由上述问题,可以引入数据库的“事务”概念。事务是构成单一逻辑工作单元的操作集合。不论有无故障,数据库系统必须保证事务的正确执行,即该事务的整个操作集合完全被执行,或属于该事务的操作一个也不执行。此外,数据库系统必须以一种能避免引入不一致性的方式来管理事务的并发执行。例如,假设系统中有一个资金转账事务,将一笔资金从支票账户转到储蓄账户中,假设还有一个事务是计算顾客总金额,它和上述资金转账的事务在系统中并发地执行。如果计算顾客总金额的事务在资金转账事务从支票账户支出金额之前查看支票账户余额,而在资金存入储蓄账户之后查看储蓄账户余额,并对它们进行求和,该事务就会得到不正确的结果,因为同一笔资金被重复计算了两次。所以,为了保证事务的正确执行,维护数据库的完整性,要求数据库系统维护以下事务特性:

原子性:事务的所有操作在数据库中要么全部正确反映出来,要么全部不反映。

一致性:事务的隔离执行(即没有并发执行的其他事务),保持数据库的一致性。

隔离性:尽管多个事务可以并发执行,但系统必须保证,对任一对事务A和B,在A看来,B或者在A开始之前已经停止执行,或者在A完成之后开始执行。这样,每个事务都感觉不到系统中有其他事务在并发地执行。

持久性:一个事务成功完成后,它对数据库的改变必须是永久的,即使系统可能出现故障。

以上特性统称为ACID特性,他们全部是由数据库管理系统来维护的。

成功完成执行的事务称为已提交事务。已提交事务使数据库进入一个新的一致状态。未能成功完成的事务称为中止事务,中止事务必须对数据库的状态不造成影响。即中止事务对数据库所做的任何改变必须撤销。一旦中止事务造成的变更被撤销,就说明事务已回滚。如此,才能保证数据库当中的数据在经过操作或

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-02
原子性

事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。

一致性

事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。

隔离

由并发事务所作的修改必须与任何其他并发事务所作的修改隔离。事务识别数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是第二个事务修改它之后的状态,事务不会识别中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。

持久性

事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。本回答被提问者采纳
相似回答