简答题

为什么事务非正常结束时会影响数据库数据的正确性,请列举一例说明之。

正确答案

事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是不一致的状态。
例如某工厂的库存管理系统中,要把数量为Q的某种零件从仓库1移到仓库2存放。
则可以定义一个事务T,T包括两个操作;Ql=Ql一Q,Q2=Q2+Q。如果T非正常终止时只做了第一个操作,则数据库就处于不一致性状态,库存量无缘无故少了Q。

答案解析