事务是由一步或几步数据库操作序列组成逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行。程序和事务是两个不同的概念。一般而言:一段程序中可能包含多个事务。
事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这四个特性也简称ACID性。
(1)原子性:事务是应用中最小的执行单位,就如原子是自然界最小颗粒,具有不可再分的特征一样。事务是应用中不可再分的最小逻辑执行体。
(2)一致性:事务执行的结果,必须使数据库从一个一致性状态,变到另一个一致性状态。当数据库中只包含事务成功提交的结果时,数据库处于一致性状态。一致性是通过原子性来保证的。
(3)隔离性:各个事务的执行互不干扰,任意一个事务的内部操作对其他并发的事务,都是隔离的。也就是说:并发执行的事务之间不能看到对方的中间状态,并发执行的事务之间不能相互影响。
(4)持续性:持续性也称为持久性,指事务一旦提交,对数据所做的任何改变,都要记录到永久存储器中,通常是保存进物理数据库。
数据库的事务有下列语句组成:
一组DML(Data Manipulate Language,即数据操作语言)经过这组DML修改后数据将保持较好的一致性。
一个DDL(Data Definition Language,即数据定义语言)语句。
一个DCL(Data control Language,即数据控制语言)语句。
DDL和DCL语句最多只能有一个,因为DDL和DCL语句都会导致事务立即提交。
当事务所包含的全部数据库操作都成功执行后,应该提交(commit)事务,使这些修改永久生效。
事务提交有两种方式:显式提交和自动提交。
(1)显式提交:使用commit。
(2)自动提交:执行DDL或DCL,或者程序正常退出。