Considere os seguintes tipos de bloqueio utilizados em um sistema de banco de dados, sendo T uma transação que solicitou um bloqueio do tipo indicado sobre a RelVar (variável relacional) R: . IC: T tem a intenção de definir bloqueios do tipo C sobre tuplas individuais em R, a fim de garantir a estabilidade dessas tuplas enquanto elas estiverem sendo processadas. . IX: Igual a IC, além disso, T poderia atualizar tuplas individuais em R e, dessa forma, definir bloqueios do tipo X sobre essas tuplas. . C: T pode tolerar leitores concorrentes, mas não atualizadores concorrentes em R (a própria T não atualizará quaisquer tuplas em R). . ICX: Combina C e IX, isto é, T pode tolerar leitores concorrentes, mas não atualizadores concorrentes em R. Além disso, T poderia atualizar tuplas individuais em R e, por isso, definir bloqueios do tipo X sobre essas tuplas. . X: T não pode tolerar qualquer acesso concorrente a R. A própria T poderia ou não atualizar tuplas individuais em R. Se uma transação A mantém um determinado tipo de bloqueio sobre uma RelVar R qualquer e uma transação distinta B emite uma requisição de bloqueio sobre R que não pode ser satisfeita imediatamente, temos um conflito; caso contrário, temos uma compatibilidade. Uma compatibilidade ocorre, portanto, quando A mantém um bloqueio do tipo
a) C sobre R e B emite uma requisição do tipo IX.
b) X sobre R e B emite uma requisição do tipo IC.
c) IC sobre R e B emite uma requisição do tipo ICX.
d) IX sobre R e B emite uma requisição do tipo C.
e) ICX sobre R e B emite uma requisição do tipo X.