SóProvas


ID
222298
Banca
FGV
Órgão
BADESC
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Assinale a alternativa que indique três maneiras diferentes em que uma transação possa ser violada.

Alternativas
Comentários
  • Violações de transações, segundo Elmasri 2005:
    Atualização perdida
    Leitura suja (ou Problema da atualização temporária)
    Sumário incorreto e
    Leitura sem repetição.


    Atualização perdida: ocorre quando duas transações que acessam os mesmos itens de bancos de dados tiverem suas operações intercaladas.

    Atualização temporária (Leitura Suja): ocorre quando uma transação atualizar um item de banco de dados e, a seguir, falhar por alguma razão. Este item pode ser acessado por uma outra transação antes que ele retorne ao seu valor original.

    Sumário Incorreto: se uma transação aplicar uma função agregada para sumário de um número de registros enquanto outras transações estiverem atualizando alguns desses registros, pode acontecer da função agregada calcular alguns valores antes de eles serem atualizados.
     
    Leitura sem repetição: quando um item é lido duas vezes e entre as duas leituras o seu valor for alterado por outra transação.

    Sistemas de Banco de Dados - ELMASRI, 2005 p. 400
  • Quando vcs forem justificar as respostas poderiam, por favor, mencionar todos os itens da questao? Ela não fala de sumario incorreto e menciona como violações de transações outros, como leitura não repetivel e fantasma.
    Grato!
  • Fonte: http://pgdocptbr.sourceforge.net/pg80/transaction-iso.html

    O padrão SQL define quatro níveis de isolamento de transação em termos de três fenômenos que devem ser evitados entre transações simultâneas. Os fenômenos não desejados são:

    dirty read (leitura suja)

    A transação lê dados escritos por uma transação simultânea não efetivada (uncommitted). 

    nonrepeatable read (leitura que não pode ser repetida)

    A transação lê novamente dados lidos anteriormente, e descobre que os dados foram alterados por outra transação (que os efetivou após ter sido feita a leitura anterior). 

    phantom read (leitura fantasma)

    A transação executa uma segunda vez uma consulta que retorna um conjunto de linhas que satisfazem uma determinada condição de procura, e descobre que o conjunto de linhas que satisfazem a condição é diferente por causa de uma outra transação efetivada recentemente. [3]

    Os quatro níveis de isolamento de transação, e seus comportamentos correspondentes, estão descritos na Tabela 12-1.

    Tabela 12-1. Níveis de isolamento da transação no SQL

    Nível de isolamento Dirty Read Nonrepeatable Read Phantom Read Read uncommitted Possível Possível Possível Read committed Impossível Possível Possível Repeatable read Impossível Impossível Possível Serializable Impossível Impossível Impossível
  • Resposta:B

    Link: fonte https://books.google.com.br/books?id=xBeO9LSlK7UC&pg=PA419&lpg=PA419&dq=uma+transação+possa+ser+violada.&source=bl&ots=xaRxg3zb4H&sig=7N395D7AxaGw_jrS5l09xGRuofA&hl=pt-BR&sa=X&ved=0ahUKEwj-1oXK44bMAhWIlZAKHZ0mApIQ6AEIPjAH#v=onepage&q=uma%20transa%C3%A7%C3%A3o%20possa%20ser%20violada.&f=false

  • Os problemas ocorrem quando leitura suja, quando a leitura não é repetível e quando há fantasmas na transação. Ou seja, a resposta está na letra B.

    Uma leitura suja ocorre quando uma modificação não confirmada realizada por uma transação T1 é lida por outra T2. A leitura não repetível se dá quando uma transação T2 realiza uma modificação e a confirma entre duas leituras de T1 e, por fim, um fantasma é idêntico a uma leitura não repetível, só que acontece no caso de inserções ou remoções, que alteram o número de tuplas retornadas pelas duas consultas idênticas realizadas por T1.

    Gabarito: B