事务的基本概念
事务是一个用户定义的数据库操作序列,这些操作要么全做,要么全不做,是一个不可分割的工作单位,是恢复和并发操作的基本单位。
事务和程序的基本区别:
- 在关系数据库中,事务可以是一条或多条SQL语句,或是一整个程序。
- 一个程序通常包含多条事务。
事务的定义
- 显式定义:
事务正常结束的方式
BEGIN TRANSACTION;
#SQL语句;
COMMIT;
事务正常结束,提交事务所有的操作(读+更新)即事务中对数据库的更新写回磁盘上的物理数据库中。
事务异常结束的方式
BEGIN TRANSACTION;
#SQL语句;
ROLLBACK;
事务异常结束,事务运行途中发生故障,不能继续执行,系统将事务中对数据库已完成的操作全部撤销。事务回滚到开始状态。
事务的特性(ACID)
原子性,一致性,隔离性,持续性。
- 原子性。事务是数据库中基本的工作单位。原子性是说事务中所有的操作要么都做,要么都不做。
- 一致性。事务的执行结果必须是从一个一致性状态变到另一个一致性状态。
一致性状态:只包含事务成功提交的结果。
不一致性状态:数据库运行中出现了故障,事务中部分操作未运行完就被迫中断。这些未完成事务对数据库所作的修改有一部分已写入数据库,这时数据库处于不一致性状态。 - 隔离性 一个事务的执行不能被其他事务干扰,一个事务内部的操作和使用的数据对其他事务是隔离的,并发操作的各个事务之间不能相互干扰
- 持续性 也称永久性。一个事务一旦提交,它对数据库的改变是永久的。接下来任何其他操作和故障不应对其操作结果有任何影响。
保证事务的ACID特性是事务处理的任务。破坏事务ACID特性的因素主要来源于两方面
- 多个事务并行运行时,不同事务的操作交叉运行。数据库管理系统必须保证多个事务交叉运行不影响事务的隔离性。
- 事务在运行过程中被强制中止。数据库管理系统必须保证被强制中止的事务对数据库和事务没有影响,
以上内容基于圣才教育数据库系统概论ppt 修改整理