目录
ACID
Atomicity 原子性
整个事务的开启和提交算是一个整体。在事务开启过程中执行了一百个操作,如果最终提交失败了,这之前的操作也全部都会回滚。
Consistency 一致性
相较于其他几个特性很特殊,一致性的概念是数据库在经过一个或多个事务后,数据库必须保持在一致性的状态。如果从事务的角度去理解,保证了AID就可以保证事务是可串行、可恢复、原子性的,但是这种事务状态的一致性就是真正的一致性吗?破坏了AID就一定破坏C,但是反之AID都保证了C一定会被保证吗?如果答案是是的话那这个概念就会失去它的意义。我们可以保证AID来保证事务是一致的,但是是否能够证明事务的一致一定保证数据的一致呢?另外数据一致这个概念通过事务很难去准确定义,而如果通过用户层面就很好定义。数据一致就是用户认为数据库中数据任何时候的状态是满足其业务逻辑的。比如银行存款不能是负数,所以用户定义了一个非负约束。我认为这是概念设计者的一个留白,倾向于将一致性视为一种高阶目标。(没太理解)
Isolation 隔离性
隔离性的本质是防止事务并发会导致不一致的状态,有四种隔离级别,分别是:Read Uncommited、Read Commited、Repeatable Read、Serlalizable。
Durability 持久性
事务一经提交,就永久的写在了硬盘中。