数据库系统概论——事务

事务

事务指的是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单元,事务的开始和结束可以由用户显示控制,事务是恢复和并发控制的基本单位。一个应用程序程序可能包含多个事务,应用程序对数据库的操作都应以事务的方式进行。

事务语句

事务通常由高级数据操纵语言(SQL等)或编程语言(C++、Java等)通过JDBCODBC嵌入式数据库访问书写的用户程序执行引起,用BEGIN TRANSACTION开始,以COMMITROLLBACK结束。

BEGIN TRANSACTION;
COMMIT;
ROLLBACK;
  • BEGIN TRANSACTION表示开始事务
  • COMMIT表示提交,即提交事务所有操作,将事务中的所有对数据库的更新写回磁盘中的物理数据库
  • ROLLBACK表示回滚,即在事务运行的过程中发生了某种故障使事务不能继续执行,系统将事务中对数据库所有完成的操作全部撤销,回滚到事务开始时的情况

ACID特性

事务的ACID特性(ACID properties)指的是事务具有的四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持续性(Durability)

原子性

事务的原子性要求事务是数据库的逻辑工作单元,事务包括的操作要么都做要么都不做

一致性

事务的一致性要求事务的执行结果必须使数据库从一个一致性状态变换到另一个一致性状态。事务执行完成,数据库只包含成功事务提交的结果时,数据库就处于一致性状态;数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成的事务对数据库所做的修改有一部分已写入物理数据库,数据库就处于不一致的状态。

隔离性

事务的隔离性要求一个事务的执行不能被其他事物干扰,即一个事务的内部操作及使用的数据对其他并发事务是隔离的,并发执行的各个事务之间不能互相干扰。

持续性

事务的持续性要求一个事务一旦提交,它对数据库中数据的改变就应该是永久的,其他的操作或故障不应对其执行结果有任何影响。

可能破坏ACID的因素

  • 多个事务并行运行时,不同的事务操作交叉执行时
  • 事务在运行过程中被强制停止

鸣谢

数据库系统概论(第5版)
数据库系统概念(原书第6版)

最后

  • 由于博主水平有限,不免有疏漏之处,欢迎读者随时批评指正,以免造成不必要的误解
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐