事务四大特性
时间: 2025-06-07 12:44:37 浏览: 26
### 事务的ACID特性:原子性、一致性、隔离性、持久性
#### 原子性(Atomicity)
原子性确保一个事务中的所有操作要么全部完成,要么完全不执行。如果事务在执行过程中因任何原因中断,则数据库会将已执行的部分撤销,使数据库恢复到事务开始前的状态。这种特性通过日志机制实现,例如重执行日志记录了数据库变化的每一个动作[^4]。当事务失败时,数据库可以依据这些日志撤销已完成的操作。
#### 一致性(Consistency)
一致性保证事务执行前后,数据库从一个合法状态转换到另一个合法状态。这意味着事务不会破坏数据库的完整性约束条件,如外键约束、唯一性约束等。一致性是事务的核心目标,其他特性(如原子性和持久性)都是为了确保一致性得以实现[^4]。
#### 隔离性(Isolation)
隔离性确保多个并发事务之间互不干扰。即使多个事务同时操作同一资源,每个事务仍然像单独执行一样。数据库通过锁机制或MVCC(多版本并发控制)等技术实现隔离性。不同的数据库提供了多种隔离级别,包括读未提交(Read Uncommitted)、读提交(Read Committed)、可重复读(Repeatable Read)和串行化(Serializable),以满足不同场景下的需求[^1]。
#### 持久性(Durability)
持久性保证一旦事务提交成功,其对数据库的修改将永久保存,即使系统发生故障也不会丢失。持久性通常通过写入磁盘的日志文件来实现,确保即使数据库崩溃,在重启后也能根据日志恢复数据[^3]。
```python
# 示例代码:使用Python模拟事务的基本操作
try:
# 开始事务
connection.begin()
# 执行一系列数据库操作
cursor.execute("INSERT INTO users (name, age) VALUES ('Alice', 25)")
cursor.execute("UPDATE accounts SET balance = balance - 100 WHERE user_id = 1")
# 提交事务
connection.commit()
except Exception as e:
# 如果发生错误,回滚事务
connection.rollback()
print(f"Transaction failed: {e}")
```
阅读全文
相关推荐




















