概念
事务(transaction)是数据库中一个单独的执行单元,是作为单个逻辑单元执行的一系列操作,这些操作作为一个整体一起向系统提交,要么都执行,要么都不执行。
事务的4个属性
事务必须满足4个属性,简称ACID属性,即原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )、持久性( Durability )。数据库的ACID属性是由数据库管理系统(DBMS)来进行保证的。
- 原子性:事务是一个不可分割的整体,是一个完整的操作,事务必须具有原子性,事务的各步操作是不可分的,要么全执行,要么都不执行。
- 一致性:一个事务在执行之前和执行之后,数据库数据必须保持一致性状态。
- 隔离性:隔离性也称为独立性,即当两个或多个事务并发执行时,为了保证数据库数据的安全性,对数据进行修改的所有并发事务是彼此隔离的。这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务。
- 持久性:持久性也被称为永久性,事务完成后,它对数据库的修改被永久保持,当系统或介质发生故障时,该修改也永久保持。持久性一般通过数据库备份与恢复来保证。
事务的隔离级别
数据库事务的隔离级别有4种,由低到高分别为读未提交(Read uncommitted) 、读已提交(Read committed) 、可重复读(Repeatable read) 、序列化(Serializable) 。在事务的并发操作中可能会出现脏读,不可重复读,幻读。