ACID和数据库事务?

ACID和数据库事务之间有什么关系?

ACID给数据库事务还是同样的事情?

有人可以启发这个话题。

ACID是一组您希望在修改数据库时应用的属性。

  • primefaces性
  • 一致性
  • 隔离
  • 耐久力

一个事务是一组相关的变化,用来实现一些ACID属性。 事务是实现ACID属性的工具。

primefaces性意味着你可以保证所有的交易都发生,或者没有任何交易; 您可以将复杂的操作作为一个单一的单元进行,完全没有任何事情,而且崩溃,电源故障,错误或其他任何事情都不会使您处于仅发生一些相关更改的状态。

一致性意味着你保证你的数据将是一致的; 您对相关数据的任何限制都不会被违反。

隔离意味着一个事务不能从另一个尚未完成的事务中读取数据。 如果两个事务同时执行,每个人都会看到这个世界,就像他们正在顺序执行一样,如果需要读取另一个人写的数据,就必须等到另一个完成。

耐久性意味着一旦交易完成,就保证所有的改变都被logging在一个耐用的媒体(如硬盘)中,并且交易已经完成的事实也被logging下来。

所以,交易是保证这些财产的机制; 它们是将相关行动分组在一起的一种方式,整体而言,一组行动可以是primefaces性的,产生一致的结果,与其他行动隔离,并被持久logging。

ACID是任何事务处理引擎的理想属性。

数据库pipe理系统(如果有的话)是一种特定types的事务处理引擎,通常在很大程度上,但不完全是这些属性。

但是也有其他的引擎可以暴露这些属性。 曾经被称为“TP监视器”的软件就是一个很好的例子(现在相当于Web服务器)。

这样的TP监视器可以访问DBMS(例如打印机)以外的资源,并且仍然保证ACID对着他们的用户。 作为打印机参与事务时ACID的含义的一个例子:

  • primefaces性:整个文档被打印出来或根本没有
  • 一致性:在交易结束时,供纸位于页面顶部
  • 隔离:打印时没有两个文档混在一起
  • 耐用性:打印机可以保证它不是用空墨盒“打印”。

ACID属性是非常古老而重要的数据库理论概念。 我知道你可以在这个主题上find很多的post,但是我仍然想就此开始分享,因为这是RDBMS的重要话题。

数据库系统处理大量不同types的交易,所有交易都具有一定的特征。 这个特性是已知的ACID属性。 ACID属性让所有数据库事务的受让者完成所有任务。

primefaces性:可以全部或全部提交。

一致性:在validation交易的所有规则和约束方面做出一致的logging。

隔离:确保两个事务不知道对方。

耐久性:承诺数据永久保存。 从这篇文章引用:

引用维基百科 :

ACID(primefaces性,一致性,隔离性,持久性)是一组保证数据库事务处理可靠的属性。

支持事务的DBMS将努力支持所有这些属性 – 任何商业DBMS(以及几个开源DBMS)都提供了完整的ACID'支持' – 虽然通常可能(例如,在MSSQL中具有不同的隔离级别)减lessACIDness – 从而失去完全交易行为的保证。

[Gray]在1981年介绍了交易的ACD属性​​。1983年[Haerder]添加了Isolation属性。 在我看来,ACD的属性将有一个更有用的一套属性来讨论。 primefaces性的一种解释(即交易应该是任何时候从任何客户那里看到的primefaces)实际上都意味着孤立的财产。 当交易不是孤立的时候,“隔离”属性是有用的; 当隔离属性放宽时。 在ANSI SQL中说:如果隔离级别较弱,则为SERIALIZABLE。 但是,当隔离级别是SERIALIZABLE时,隔离属性并不真正感兴趣。

我在博客文章中写了更多关于这方面的内容:“ACID没有意义”。

http://blog.franslundberg.com/2013/12/acid-does-not-make-sense.html

[Gray]交易概念,Jim Gray,1981。http ://research.microsoft.com/en-us/um/people/gray/papers/theTransactionConcept.pdf

[Haerder] Transaction-Oriented Database Recovery,Haerder和Reuter,1983年。http://www.stanford.edu/class/cs340v/papers/recovery.pdf

我稍微修改了打印机的例子,使其更容易解释

1页有2页内容的文件被送到打印机

交易 – 文件发送到打印机

  • primefaces性 – 打印机打印2页的文件或没有
  • 一致性 – 打印机打印半页,页面卡住。 打印机重新启动,打印2页将全部内容
  • 隔离 – 当打印出来的打印数量太多时 – 打印机打印正确的文档内容
  • 耐用性 – 在打印时,有一个电源切断 – 打印机再次打印文件没有任何错误

希望这能帮助别人理解ACID的概念

事务的ACID属性在事务处理的上下文中,首字母缩略词ACID是指事务的四个关键属性:primefaces性,一致性,隔离性和持久性。

primefaces性对数据的所有更改都像是单一操作一样执行。 也就是说,所有的变化都是被执行的,或者都不是。 例如,在将资金从一个账户转移到另一个账户的应用程序中,primefaces性属性确保了如果从一个账户成功进行借记,则将相应的信贷转到另一个账户。 一致性数据在事务开始时和结束时处于一致状态。 例如,在将资金从一个账户转移到另一个账户的应用程序中,一致性属性确保了每个交易开始和结束时两个账户中的资金总值相同。 隔离交易的中间状态对其他交易是不可见的。 结果,同时运行的事务似乎被序列化。 例如,在将资金从一个账户转移到另一个账户的应用程序中,隔离性能确保了另一个交易将转移的资金看到一个账户或另一个账户中,而不是在两个账户中,也不在两个账户中。 持久性事务成功完成后,即使在系统发生故障的情况下,对数据的更改仍然存在并且不会被撤消。 例如,在将资金从一个账户转移到另一个账户的应用程序中,耐久性属性确保对每个账户所做的更改不会被撤销。

事务可以被定义为被认为是最小处理单元的任务的集合。 每个最小处理单位不能进一步划分。

所有交易都必须包含四个通常称为ACID属性的属性。 即ACID是任何交易的属性组。

  • primefaces性:
  • 一致性
  • 隔离
  • 耐久力