【答案解析】(1)满足2PL协议的伪代码:
SLock(T);
x=Get();
IF x=NULL THEN return 0;
Upgrade(T)
Writ(x,1);
Unlock(T);
(2)会产生死锁,调度如下:
填空题
[问题3]
若停车位表的关系模式为:park(parkno,isused),其中parkno为停车位号,isused为停车位标志,0为空,1为非空。
下面是用E-SQL实现的查询空车位的函数Get(),请补全空缺处的代码。
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
EXEC SQL DECLARE getblk CURSOR FOR
__(a)__
;
EXEC SQL OPEN getblk;
EXEC SQL FETCH getblk INTO:Hparkno;//Hparkno为已声明的主变量
IF SQLCA.sqlcode=100 THEN
EXEC SQL CLOSE getblk; Return NULL;
ELSE
__(b)__
;
END IF