1、事务

        事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,事务是一个不可分割的工作单位。在关系数据库中,一个事务可以是一条SQL语句、一组SQL语句。

      事务的开始和结束可以由用户显式控制,也可以由系统自动划分。在SQL中,定义事务的语句一般有三条:

1 begin transaction;//开始事务
2 
3 commit;//结束事务:提交
4 
5 rollback;//结束事务:回滚

  事务通常由begin transaction开始,以commit或rollback结束。commit表示提交,即提交事务的操作,具体的说就是将事务中对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。rollback表示回滚,即所有已完成的操作全部撤销,回滚到事务开始前的状态。


 

2、事务的ACID特性

  事务具有4个特性:原子性、一致性、隔离性、持续性(Atomicity、Consistency、Isolation、Durability)

(1)原子性

  事务是数据库的逻辑工作单位,事务中包含的操作要么都做,要么不做。例如,某银行中有A1和A2两个账户,由A1向A2转账就是一个事务:

A1账户扣除1w元;
A2账户增加1w元;

A1账户扣除1w元的操作和A2账户增加1w元的操作只能全做或全部做。

(2)一致性

  事务的执行结果必须是使数据库从一个一致性状态变到另一个一致性状态。当数据库只包含成功事务提交的结果时,就称数据库处于一致性状态。事务的原子性保证了事务的一致性。

(3)隔离性

  事务与事务之间相互独立,互不干扰。一个事务内部操作和使用的数据对其他事务应该是隔离的,并发执行的事务之间不能相互干扰。

(4)持续性

  持续性也称永久性,指的是一个事务一旦提交,它对数据库中数据的改变就应该时永久的。