问答题 若两个售票网点同时销售航班A的机票,在数据库服务器端可能出现如下的调度:
A:R 1 (A,x),R 2 (A,X),W 1 (A,x-1),W 2 (A,x-2);
B:R 1 (A,x),R 2 (A,x),W 2 (A,x-2),W 1 (A,x-1);
C:R 1 (A,x),W 1 (A,x-1),R 2 (A,X),W 2 (A,x-2);
其中R i (A,x),W i (A,x)分别表示第i个销售网点的读写操作,其余类同。
假设当前航班A剩余10张机票,分析上述三个调度各自执行完后的剩余票数,并指出错误的调度及产生错误的原因。
【正确答案】
【答案解析】调度A结果:8 调度B结果:9 调度C结果:7
调度A、B结果错误,因为破坏了事务的隔离性。一个事务的执行结果被另一个所覆盖。 [解析] 本问题考查并发情况下不同的调度可能产生不同结果的情况。针对两个并发执行的售票程序,会相互影响从而得到错误的结果。