事务满足4个特性 ACID 。
分别是 原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。
(1)原子性(Atomicity)
原子性是指一个事务是一个整体,这个事务所涉及的所有操作必须都提交或者都回滚。
(2)一致性(Consistency)
一致性是指一旦事务完成(不管成功还是失败),系统必须确保它所建模的业务处于一致的状态,而不会是部分完成部分失败。在现实中的数据不应该被破坏。
举个很好理解的例子:
A向B转账300元,事务完成之后,整个结果必须是A减少300元,B增加300元。这样才是整个业务处于一致的状态。
如果事务完成后,A减少300元,B增加了200元。这样整个业务不是出于一致的状态。
(3)隔离性(Isolation)
因为多个事务可能同时处理相同的数据。因此隔离性反映了多个事务之间的交互深度。这个特性决定了在多个事务访问相同数据的时候,怎样保护未提交的数据。
事务的隔离性通过隔离级别来衡量。隔离性是一致性与并发性之间的一个杠杆,隔离界别越高,一致性越高,但是并发性越低。
有4中隔离级别:
- Read uncommitted (读未提交)
- Read committed (读已提交)
- Repeatable read (可重复读)
- Serializable (串行化)
(4)持久性(Durability)
持久性是指一旦一个事务成功完成,那么这个事务导致的数据修改就将持久的被改变,不会因为其他因素而被改变。通常,事务的结果被写入持久化的存储中。