Banco de Dados: A execução concorrente de transações deve ser controlada de forma que não ocorram anomalias de transação. Nesse sentido, considere o seguinte cenário: Duas transações T1 e T2 foram executadas de forma serial primeiro T1 e depois T2, sendo obtidos os valores finais 60 e 90 para X e Y respectivamente. Se elas forem executadas de forma serial em outra ordem, primeiro T2 e depois T1, os valores finais de X e Y são 55 e 85 respectivamente. Considere agora que elas foram executadas de forma intercalada, gerando os valores finais de 60 e 90 para X e Y respectivamente. Dentro deste cenário avalie as assertões a seguir e a relação proposta entre elas. I. A execução intercalada de T1 e T2 pode ser efetivada sem problemas porque II. O resultado final corresponde a uma execução serial. Quanto as duas afirmativas observamos que:
A execução concorrente de transações deve ser controlada de forma que não ocorram anomalias de transação. Nesse sentido, considere o seguinte cenário:
Duas transações T1 e T2 foram executadas de forma serial primeiro T1 e depois T2, sendo obtidos os valores finais 60 e 90 para X e Y respectivamente. Se elas forem executadas de forma serial em outra ordem, primeiro T2 e depois T1, os valores finais de X e Y são 55 e 85 respectivamente. Considere agora que elas foram executadas de forma intercalada, gerando os valores finais de 60 e 90 para X e Y respectivamente.
Dentro deste cenário avalie as assertões a seguir e a relação proposta entre elas. I. A execução intercalada de T1 e T2 pode ser efetivada sem problemas porque II. O resultado final corresponde a uma execução serial.
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.
Vamos analisar o cenário à luz de serialização/serializabilidade em controle de concorrência.
- Execuções seriais possíveis
- Ordem T1 → T2 resulta em .
- Ordem T2 → T1 resulta em .
- Execução intercalada observada
- A execução intercalada resultou em .
- Interpretação (anomalias vs. serializabilidade) Em bancos de dados, uma execução concorrente (intercalada) é considerada correta/sem anomalias se for equivalente a alguma execução serial (isto é, se for serializável).
Como o resultado final da execução intercalada foi exatamente , que coincide com o resultado da execução serial T1 → T2, então essa execução intercalada é equivalente a uma execução serial. Logo, ela pode ser efetivada sem problemas (não há anomalia do ponto de vista do critério de serializabilidade baseado no resultado observado).
- Avaliando as assertões I. “A execução intercalada de T1 e T2 pode ser efetivada sem problemas” → Verdadeiro, pois o efeito observado é consistente com uma execução serial. II. “O resultado final corresponde a uma execução serial” → Verdadeiro, pois corresponde à serial T1 → T2.
Relação: II justifica I, já que a razão para não haver problema (no critério de serializabilidade) é justamente o fato de o resultado ser equivalente ao de uma execução serial.
Alternativa correta: (A).