问题 单项选择题

若系统中存在一个等待事务集(T0,T1,T2,…,Tn),其中T0正等待被T1锁住的数据项A1,T1正等待被T2锁住的数据项A2,…,Tn-1正等待被Tn锁住的数据项An,Tn正等待被T0锁住的数据项A0,则系统处于()的工作状态。

A.并发处理

B.封锁

C.循环

D.死锁

答案

参考答案:D

解析:

与操作系统中的进程调度类似,在数据库系统中,若系统中存在一个等待事务集(T0,T1,T2,…,Tn),其中T0正等待被T1锁住的数据项A1,T1正等待被T2锁住的数据项A2,…,Tn-1正等待被Tn锁住的数据项An,Tn正等待被T0锁住的数据项A0,则系统处于死锁的工作状态。

在数据库中,产生死锁的原因是两个或多个事务都已封锁了一些数据对象,然后又都请求对已为其他事务封锁的数据对象加锁,从而出现死等待。预防死锁的方法通常有一次封锁法(每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行)和顺序封锁法(预先对数据对象规定一个封锁顺序,所有事务都按这个顺序进行封锁),死锁的诊断方法一般有超时法和等待图法。

解答题
翻译题