定义
- 一个数据库操作序列
- 一个不可分割的工作单位
- 恢复和并发控制的基本单位
事务(Transaction),是我们关系型数据库中非常重要的一个概念,它要符合ACID特性。是由一组SQL语句组成的一个程序执行单元(Unit),该执行单元要么成功Commit,要么失败Rollback。
事务和程序比较
- 在关系数据库中,一个事务可以是一条或多条SQL语句,也可以包含一个或多个程序。
- 一个程序通常包含多个事务
显式定义方式
BEGIN TRANSACTION BEGIN TRANSACTION
SQL 语句1 SQL 语句1
SQL 语句2 SQL 语句2
。。。。。 。。。。。
COMMIT ROLLBACK
隐式方式
当用户没有显式地定义事务时,DBMS按缺省规定自动划分事务
事务的ACID特性:
- 原子性(Atomicity)指事务是一个不可再分割的工作单元,事务中的操作要么都发生,要么都不发生。
- 一致性(Consistency)指事务开始之前和事务结束以后,数据库的完整性约束没有被破坏
- 隔离性(Isolation)指多个事务并发访问时,事务之间是隔离的,一个事务不应该影响其它事务运行效果。
通俗的说:多个用户并发访问操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务的操作所干扰,多个并发事务之间要相互隔离。 - 持续性(Durability )事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚