深入理解事务:概念、模型与隔离机制
事务基础
事务是一种用于控制对同一数据集进行读写访问的机制。当数据处于变化状态时,可能会出现不一致的情况,因此在数据状态从“变化中”转变为“已提交”或“已回滚”之前,其他读写操作需要等待。
在单数据库节点的事务中,原子性在存储级别实现。当事务提交时,数据库会将事务的写入操作持久化(通常记录在预写日志中),并在磁盘日志中追加提交记录。磁盘驱动器的控制器在确保写入操作完成方面起着关键作用。一旦事务提交,就无法撤销,因为提交后的数据可能已被其他事务可见并依赖。
事务的 ACID 属性
事务需要具备 ACID(原子性、一致性、隔离性和持久性)属性才能符合规范,以下是对这些属性的详细解释:
- 原子性 :事务的结果要么全部提交,将所有写入操作作为一个工作单元持久化;要么全部回滚,撤销所有写入操作。硬件层面的支持使得无论是单个字还是多个字的写入,都能作为一个工作单元处理。
- 一致性 :该属性确保事务无论提交还是回滚,都能使数据保持一致状态。这意味着数据要符合数据库的约束和规则,维护一致性需要资源管理器和应用程序共同努力。例如,在为两位旅客同时预订航班最后一个座位的事务中,只有一个座位被分配给其中一位旅客,且系统显示该座位不再可供另一位旅客预订,这样的事务才是一致的。
- 隔离性 :保证一个事务的进行不会影响其他事务对数据的访问。隔离性可以进行更精细的控制,具体机制将在后续介绍。
- 持久性 :事务提交后,对数据所做的任何更改都必须永久记录。数
超级会员免费看
订阅专栏 解锁全文
874

被折叠的 条评论
为什么被折叠?



