事务的概念
所谓事务是用户自定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位。例如,在关系数据库中,一个事务可以是一条sql语句,一组sql语句或整个程序。
事务和程序是两个概念,一般来讲,一个程序中包含多个事务。
事务的开始与结束可以由用户显示控制。如果用户没有显示的定义事务,则由数据库管理系统按默认规定自动划分事务。在SQL中,定义事务的语句一般有三条:
1.BEGIN TRANSACTION
2.COMMIT
3.ROLLBACK
事务通常是以BEGIN TRANSACTION开始,以COMMIT或ROOLBACK结束。COMMIT表示提交,即提交事务的所有操作。具体的说就是将事务中的所有对数据库的更新写回到磁盘上的物理数据库中,事务正常的结束。ROLLBACK表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的操作全部撤销,回滚到事务开始是的状态,这里的操作指对数据库的更新操作。
事务的ACID特性
事务具有4个特性:原子性(Atomicity),一致性(Consistency),隔离性(Isolation)和持续性(Durability)。这4个特性简称为ACID特性。
(1)原子性
事务是数据库的逻辑工作单元,事务中包括的诸单元要么全做,要么全部做。
(2)一致性
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库中只包含成功事务提交的结果时,就说数据库处于一个一致