"这篇PPT主要讲解了数据库技术中的事务管理,特别是冲突的操作对和事务的四个特性,包括原子性、持久性、隔离性和一致性。"
在数据库管理系统中,事务管理是确保数据一致性和完整性的关键组成部分。事务是一组数据库操作,被视为一个逻辑工作单元,必须全部成功执行或全部不执行。事务的粒度可以根据用户需求定义,可以是单一的数据库操作,也可以是一系列连续的操作。
冲突的操作对是事务并发执行时可能导致的问题,主要分为三种类型:RW冲突(读-写冲突)、WR冲突(写-读冲突)和WW冲突(写-写冲突)。例如,如果事务T1读取数据项x后,事务T2再写入x,然后T1又尝试写入x,这就是WW冲突。如果T1先写x,T2后读x,就是WR冲突。反之,T1读x,T2随后写x,是RW冲突。如果两个操作针对不同的数据项,例如T1读x,T2读y(x和y无交集),则不视为冲突。
事务的生命周期包括开始、执行读写操作、结束和交付。在异常情况下,事务可能需要被撤消。为了保证数据库的正确性,事务必须具备四大特性:
1. 原子性(Atomicity):事务的所有操作要么全部成功,要么全部回滚。这意味着即使在部分操作成功后发生故障,系统也能恢复到事务开始前的状态,如银行转账操作。
2. 持久性(Durability):一旦事务成功交付,其结果将永久保存,不受后续故障影响。这确保了事务更改的数据不会丢失。
3. 隔离性(Isolation):每个事务都像是在单独执行,不受其他事务的影响。这防止了脏读、不可重复读和幻读等问题,确保了数据的一致性。
4. 一致性(Consistency)/可串行性(Serializability):事务并发执行的结果必须等同于某个串行执行序列的结果,这通过并发控制机制实现,确保了数据的逻辑正确性。
通过举例来说明,假设三个账户A、B、C分别有200、300、150元。两个并发事务T1(从B转100到C)和T2(从B转50到A)可能会导致并发问题。如果没有适当的并发控制,两个事务可能同时读取B的余额300,然后各自减去转账金额,导致B的余额不正确。为了解决这个问题,DBMS会使用诸如锁、两阶段提交等并发控制机制,以保证事务的可串行性。
数据库事务管理的核心是确保并发执行的事务能够正确、安全地操作数据,避免数据不一致,同时保持高效率的系统性能。通过原子性、持久性、隔离性和一致性这四大特性的保证,数据库系统能够提供可靠的事务处理能力。