O schedule de um conjunto de transações representa a ordem e...
T1: r1(X); X:= X -10; w1(X); r1(Y); Y:= Y + 10; w1(Y); T2: r2(Y); Y := Y - 20; w2(Y); r2(X); X := X + 20; w2(X);
Considere o schedule para essas duas transações:
Schedule: r1(X); w1(X); r2(Y); w2(Y); r1(Y); w1(Y); r2(X); w2(X);
Assinale a alternativa que classifica corretamente esse schedule
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: B - Correto e não serializável.
Para compreender a questão em questão, é preciso estar familiarizado com o conceito de schedules em sistemas de banco de dados, em particular com a noção de serializabilidade, que é uma propriedade que determina se a ordem de execução das operações em transações concorrentes pode ser rearranjada de forma que seu resultado seja equivalente ao resultado de suas execuções em série (uma após a outra), garantindo a consistência dos dados.
O correto se refere ao fato de que o schedule não viola nenhuma regra de execução das transações, tais como violações de dependências de leitura e escrita. Já a parte não serializável indica que não é possível encontrar uma sequência serial (T1 seguido de T2, ou T2 seguido de T1) que produza o mesmo resultado final que o schedule intercalado fornecido.
A determinação da serializabilidade é geralmente realizada através de um gráfico de precedência ou de serialização, onde se verifica se há ciclos. No schedule fornecido, existe uma situação de não serializabilidade pois a transação T1 lê e escreve em X antes que T2 possa lê-lo, e T2 lê e escreve em Y antes de T1 poder lê-lo. Esta intercalação impossibilita reordenar as operações em uma sequência serial sem alterar o resultado final das transações. Por exemplo, T1 depende de ler Y após T2 ter escrito nele, e T2 depende de ler X após T1 ter escrito nele, criando uma dependência circular que impede a serialização.
Portanto, a alternativa B é a correta pois o schedule é correto ao seguir as regras de execução, mas é não serializável por não poder ser transformado em uma execução sequencial equivalente.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo