Banco de Dados: Para realizarmos controle de concorrência em transações locais utilizamos as mesmas técnicas utilizadas no controle de concorrência de bancos de dados centralizados. Uma das principais formas de controle deste tipo de concorrência é o protocolo de bloqueio. Nesse sentido, considere o seguinte cenário: Uma transação T1 deseja ler um item de dado X e solicita bloqueio. Uma transação T2 deseja ler o item de dados X e solicita bloqueio. Dentro deste cenário avalie as asserções a seguir e a relação proposta entre elas. I. Tanto as transações T1 e T2 poderão prosseguir sua execução porque II. Porque as duas solicitaram um bloqueio compartilhado no item de dados X. Quanto as duas afirmativas observamos que:
Para realizarmos controle de concorrência em transações locais utilizamos as mesmas técnicas utilizadas no controle de concorrência de bancos de dados centralizados. Uma das principais formas de controle deste tipo de concorrência é o protocolo de bloqueio. Nesse sentido, considere o seguinte cenário:
Uma transação T1 deseja ler um item de dado X e solicita bloqueio. Uma transação T2 deseja ler o item de dados X e solicita bloqueio.
Dentro deste cenário avalie as asserções a seguir e a relação proposta entre elas. I. Tanto as transações T1 e T2 poderão prosseguir sua execução porque II. Porque as duas solicitaram um bloqueio compartilhado no item de dados X.
Quanto as duas afirmativas observamos que:
A) As duas afirmações estão corretas e a segunda justifica a primeira.
B) As duas afirmações estão corretas e a segunda não justifica a primeira.
C) A primeira afirmação é correta e a segunda falsa.
D) A primeira afirmação é falsa e a segunda correta.
E) As duas afirmações são falsas.
No protocolo de bloqueios (locking) para controle de concorrência em bancos de dados, existem (entre outros) dois tipos clássicos de bloqueio:
- Bloqueio compartilhado (S / shared lock): usado para leitura. Várias transações podem manter simultaneamente um bloqueio S no mesmo item, pois leituras concorrentes não causam conflito.
- Bloqueio exclusivo (X / exclusive lock): usado para escrita. Ele é incompatível com quaisquer outros bloqueios (S ou X) no mesmo item.
No cenário:
- T1 quer ler X ⇒ solicita bloqueio compartilhado (S) em X.
- T2 quer ler X ⇒ também solicita bloqueio compartilhado (S) em X.
Como S é compatível com S, ambas as transações podem prosseguir (não há necessidade de espera).
Analisando as assertivas:
I. “Tanto T1 quanto T2 poderão prosseguir sua execução” — Verdadeiro, pois bloqueios compartilhados permitem múltiplos leitores.
II. “Porque as duas solicitaram um bloqueio compartilhado em X” — Verdadeiro e justifica a I, já que a compatibilidade S–S é exatamente o motivo de ambas avançarem.
Alternativa correta: (A).