什么是事务
- 事务的是操作数据库的最基本单元,在逻辑上,一组操作要么都成功,如果说有一个操作失败了,那么所有的操作就都是失败的
- 典型场景
- 银行转账
事务的四个特性(ACID)
- 原子性
整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
- 一致性
在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。即事务开始前后数据的总体状态是一致的,一个开边,另外一个必须跟着变化,保持平衡
- 隔离性
隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事务,运行在相同的时间内,执行 相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。这种属性有时称为串行化,为了防止事务操作间的混淆,必须串行化或序列化请求,使得在同一时间仅有一个请求用于同一数据。
- 持久性
事务一旦提交,便会使数据持久化,无法逆转,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。