SóProvas


ID
2909515
Banca
FGV
Órgão
Prefeitura de Niterói - RJ
Ano
2018
Provas
Disciplina
Banco de Dados
Assuntos

Considere um banco de dados onde duas transações, t1 e t2, são executadas concorrentemente. A primeira, t1, debita R$ 100,00 de uma conta corrente, e a segunda, t2, debita R$ 200,00 da mesma conta. Não há uma ordem de execução definida para as transações.

Suponha que cada uma das transações execute duas operações: leitura seguida de gravação. Essas operações são representadas como tx(r) para leitura e tx(w) para gravação.

Considere, ainda, os seguintes escalonamentos das operações de t1 e t2.


I. t1(r), t1(w), t2(r), t2(w)

II. t2(r), t2(w), t1(r), t1(w)

III. t2(r), t1(r), t1(w), t2(w)

IV. t2(r), t1(r), t2(w), t1(w)


Sobre a adequação desses escalonamentos com vistas à manutenção da integridade do banco dados, assinale a afirmativa correta. 

Alternativas
Comentários
  • Precisamos analisar quais dos escalonamentos são serializáveis, ou seja, cujos resultados são equivalentes à execução em série das duas transações. De cara podemos ver que I e II estão corretos, pois I é a mesma coisa que T1, T2 e II é equivalente a T2, T1.

    Nos resta analisar III e IV. Em III, temos um problema: se as duas transações forem executadas nessa ordem, há a possibilidade de atualizações perdidas. Olhe o schedule desse escalonamento para entender melhor:

    Veja que a leitura do saldo em T2 é feita antes de T1 alterar o valor da conta, mas a escrita de T2 só é realizada depois da alteração realizada por T1. Isso irá ocasionar o problema da atualização perdida em relação a t1, pois a escrita de T2 irá tomar em consideração o saldo inicial da conta, e não o saldo após a alteração realizada por T1. Dessa maneira, o item III apresenta um escalonamento que não é válido.

    Vamos ver agora o schedule do item IV:

    Observe que o mesmo problema ocorre, pois as leituras do item conta se dão antes das escritas. Nesse caso, a atualização perdida será a realizada por T2.

    Portanto, os únicos escalonamentos que produzem efeitos corretos são os dados em I e II.

    Gabarito: B

  • Vou propor uma resposta, não sei se é a mais adequada.

    Nas alternativas III e IV, as duas transações de escrita (w) são executadas juntas, o que ocasiona problemas, já nas alternativas I e II (corretas), cada transação é feita de uma vez.

  • As partes do enunciado q ajudam a resolver a questão "Transações concorrentes " e manutenção da integridade do banco

  • I e II corretas pois uma transação le e depois escreve.

    Já na III e IV podem ocorrer problemas pois a segunda transação vai ler um valor X que ao escrever vai estar modificado pois a outra transação subscreveu o valor lido

  • Vamos supor que estamos lendo uma conta corrente de R$500 e firam debitados um total de R$300. Logo a conta ficará com R$200

    I. CORRETO

    • t1 ler R$500
    • t1 escreve R$500 - R$100 = R$400
    • t2 ler R$400
    • t2 escreve R$400 - R$200 = R$200

    II. CORRETO

    • t2 ler R$500
    • t2 escreve R$500 - R$200 = R$300
    • t1 ler R$300
    • t1 escreve R$300 - R$100 = R$200

    III. INCORRETO

    • t2 ler R$500
    • t1 ler R$500
    • t1 escreve R$500 - R$100 = R$400
    • t2 escreve R$500 - R$200 = R$300

    IV. INCORRETO

    • t2 ler R$500
    • t1 ler R$500
    • t2 escreve R$500 - R$200 = R$300
    • t1 escreve R$500 - R$100 = R$400

    GAB B