数据库事务(简称事务):是数据库管理系统(Database Managment System 简称 DBMS)执行过程中的一个逻辑单位,是由有限的数据库操作序列构成。

事务的特性:

  • 原子性:事务作为一个整体执行,包含在其中的数据库操作要么全部执行,要么不执行。
  • 一致性:事务要确保数据库由一个一致性的状态变成另一个一致性的状态。
  • 隔离性:允许多个事务并发进行,并且执行过程中一个事务不应受另外一个事务影响。
  • 持久性:已经提交的事务对数据库的修改应该永远保存在数据库中。

事务的四种隔离:

  • 读未提交(Read uncommitted):允许“脏读”,即事务可以读到其它事务还未提交的修改。
  • 读已提交(Read committed):只能读取到已经提交的数据。
  • 可重复读(Repeatable reads):即在事务中的查询和开始是一致的。
  • 可串形化(Serializable):在基于锁机制并发控制的 DBMS 实现可串行化,要求在选定对象上的读锁和写锁保持直到事务结束后才能释放。在 SELECT 的查询中使用一个“WHERE”子句来描述一个范围时应该获得一个“范围锁”(range-locks)。