在某银行转账系统中,用户A向用户B转账1000元的操作包含:①扣除A账户1000元;②增加B账户1000元。若操作①成功但操作②失败(如系统突然断电),会导致数据不一致。为避免该问题,需利用事务的()特性。A. 原子性(Atomicity)B. 一致性(Consistency)C. 隔离性(Isolation)D. 持久性(Durability)
考点解析
本题核心考查事务的ACID特性,需明确四者的定义与作用:
详细分析过程
题干中“操作①成功但操作②失败”导致数据不一致,核心问题是“事务未全部完成却部分生效”,需通过原子性解决:
工作中的实际应用
早年开发财务系统时,曾因忽视原子性出过大问题:某笔工资发放事务中,“扣除公司账户”成功,但“向员工账户打款”因网络波动失败,结果公司钱扣了,员工没收到,引发投诉。
后来给事务加上原子性控制:用数据库的BEGIN TRANSACTION和ROLLBACK机制,若打款失败,自动回滚“扣除公司账户”的操作。从此,无论中间出现什么故障,要么全成功,要么全回滚,再没出现过账对不上的情况。
但要注意,原子性依赖数据库的日志机制,曾有项目因日志磁盘满了,导致事务失败后无法回滚,这提醒我们:保障ACID特性需配套完善的存储和监控。
答案总结
原子性是避免事务部分执行导致数据不一致的核心保障。
答案:A