1、事务
- 事务
Transaction
,最初特指数据库事务,是数据库管理系统执行过程中的一个逻辑单元,由一个有限的数据库操作序列(数据读写)构成。 - 后面扩展为广义上的一组特定的操作集合,通常由高级数据库操纵语言或编程语言(如 SQL,C++ 或 Java)书写,并用形如
begin transaction
和end transaction
语句来界定。
最经典的事务场景有:银行转账,12306 购票等。
2、事务特性
严格来说,并非任意的对数据库的操作序列都是数据库事务,必须拥有 ACID 特性。
ACID:
- 原子性(Atomicity):
- 事务作为一个整体被执行,其中的所有操作要么全部都执行成功,要么都不执行。
- 任何一项操作失败,则整个事务失败,且其它已被执行的操作都被撤销并回滚。
- 一致性(Consistency):
- 事务应确保数据库的状态从一个一致性状态转变为另一个一致性状态。
- 一致性状态:指数据库中的数据应满足完整性约束。
- 隔离性(Isolation):
- 多个事务并发执行时,一个事务的执行不影响其他事务的执行。
- 事务的 4 种隔离级别