A.
R1(A,x),R2(A,x),W1(A,x-1),W2(A,x-2) ;
B.
R1(A,x),R2(A,x),W2(A,x-2),W1(A,x-1) ;
C.
R1(A,x),W1(A,x-1), R2(A,x),W2(A,x-2) ; 其中 Ri(A,x) 、 Wi(A,x) 分别表示第 i 个销售网点的读写操作,其余类同。假设当前航班 A 的剩余 15 张机票,分析上述 3 个调度各自执行完成后的剩余票数,并指出错误的调度及产生错误的原因。 【问题 2 】 (1) 判断事务并发执行正确性的准则是什么?如何保证并发事务正确地执行? (2) 引入相应的加解锁指令,重写售票程序的伪指令序列,以保证正确的并发调度。 【问题 3 】 下面是用 E-SQL 实现的机票销售程序的一部分代码,请补全空缺处的内容。 EXEC SQL SETTRANSACTION ISOLATION LEVEL SERIALIZABLE EXEC SQL SELECTbalance INTO : x FRPMtickets WHERE flight=’A’; printf(“ 航班 A 当前剩余机票数为: %d\n 请输入够票数: ”,x); scanf(“%d”,&a); x=x-a; if(x<0) EXEC SQL ROLLBACK WORK; printf ( ” 票数不够,购票失败 ” ) ; else{ EXEC SQL ( a ) tickets SET (b) ; if(SQLCA . sqlcode<>SUCCESS) EXEC SQL ROLLBACK WORK; else (c) ; }