1、与delete操作冲突的操作
��首先要弄清楚调度中删除操作和哪些操作冲突。假设调度S中两个连续的操作Im和In分别属于事务Ti和Tj,其中Im = delete(Q):
��⑴�若In = read(Q):则当Im位于In之前时冲突,为什么?
��⑵�若In = write(Q):则当Im位于In之前时冲突,为什么?
��⑶�若In = delete(Q):无论Im和In谁在前都冲突,为什么?
��⑷�若In = insert(Q):则冲突。分两种情况:
����①�在Im与In之前,Q还不存在,若Im位于In之前,则冲突;
����②�在Im与In之前,Q已经存在,若In位于Im之前,则冲突;
2、并发控制机制中删除操作的处理
��⑴�如果使用两阶段封锁协议,则在一数据项被删除之前,应该为其申请加排他锁;
��⑵�在时间戳排序协议下进行类似于write操作的测试。假设事物Ti发出delete(Q)操作:
����-�如果TS(Ti)<R-TS(Q),则Ti应回滚;
����-�如果TS(Ti)<W-TS(Q),则Ti应回滚;
����-�否则,执行delete(Q)操作。