Gabarito D também correto. "d) as técnicas de controle de concorrência baseadas em ordenação por
timestamp não usam bloqueios e, por isso, diminuem as chances de
ocorrência de deadlocks."
O ivaneide está certo ao afirmar que não existe deadlock na técnica timestamp. Mas é uma mera questão de raciocício lógico: vamos supor que haveriam 10 casos de deadlock por hora usando-se outro tipo de protocolo. Se usarmos o timestamp eliminamos esse problema. Seria correto inferir que o número de casos de deadlock foi reduzido de 10 para 0 casos?
Claro! Reduzir uma chance a 0% é o mesmo que eliminá-la.
Todos os créditos a @Ivaneide de Sousa Lucio, mas precisei organizar para a melhor compreensão.
a) sempre que duas ou mais transações simultâneas tentam acessar o mesmo item de dados, elas provocam um deadlock no sistema de gerenciamento de banco de dados.
As transações têm que ser concorrentes e não simultâneas.
b) uma das técnicas para se detectar um estado de deadlock é construir um grafo wait-for. OK [GABARITO]
c) o problema de espera indefinida associado a uma transação (starvation) ocorre sempre que o seu esquema de espera para itens bloqueados atribui prioridade maior aos requisitos de outras transações simultâneas cujas execuções provoquem repetidos aborts na execução de suas atualizações.
aborts é uma características das técnicas de timestamp não de bloqueio, que é onde ocorrem os starvations
d) as técnicas de controle de concorrência baseadas em ordenação por timestamp não usam bloqueios e, por isso, diminuem as chances de ocorrência de deadlocks.
Não há deadlock nesta técnica, assim não há como diminuí-los.
e) diz-se que uma transação segue o protocolo de bloqueio de duas fases se todas as operações (read_lock, write_lock) precedem a última operação de desbloqueio na transação.
Devem preceder as primeira de unlock, pois esta é que determina a mudança de fase.