SQL 面试题 目录

SQL 中事务的 ACID 特性是什么?

推荐答案

在 SQL 中,事务的 ACID 特性是指事务必须具备的四个关键属性,分别是:

  • A (Atomicity) 原子性:事务是一个不可分割的工作单位,事务中的所有操作要么全部成功,要么全部失败。如果事务中的任何一部分操作失败,整个事务都会回滚到最初的状态。

  • C (Consistency) 一致性:事务必须确保数据库从一个一致的状态转换到另一个一致的状态。事务执行前后,数据库的完整性约束不会被破坏。

  • I (Isolation) 隔离性:多个事务并发执行时,一个事务的操作不会被其他事务干扰。每个事务都感觉不到其他事务在同时执行。

  • D (Durability) 持久性:一旦事务提交,它对数据库的修改就是永久性的,即使系统发生故障,数据也不会丢失。

本题详细解读

1. 原子性 (Atomicity)

原子性确保事务中的所有操作要么全部成功,要么全部失败。例如,在银行转账操作中,如果从账户 A 向账户 B 转账,那么扣款和加款这两个操作必须同时成功或同时失败。如果其中一个操作失败,整个事务必须回滚,确保数据的一致性。

2. 一致性 (Consistency)

一致性确保事务执行前后,数据库的状态保持一致。例如,在一个订单系统中,如果某个订单被创建,那么相关的库存数量必须相应减少。事务必须确保这些操作符合业务规则,不会破坏数据库的完整性。

3. 隔离性 (Isolation)

隔离性确保多个事务并发执行时,每个事务的操作不会相互干扰。例如,如果两个事务同时尝试修改同一行数据,数据库系统会通过锁机制或其他并发控制机制来确保事务的执行顺序,避免数据不一致。

4. 持久性 (Durability)

持久性确保一旦事务提交,它对数据库的修改就是永久性的。即使系统发生故障(如断电、崩溃),提交的事务也不会丢失。数据库系统通常通过日志机制来实现持久性,确保在系统恢复后能够重新应用已提交的事务。

纠错
反馈