SóProvas


ID
977359
Banca
CETRO
Órgão
ANVISA
Ano
2013
Provas
Disciplina
Banco de Dados
Assuntos

Em relação às transações em banco de dados, assinale a alternativa correta.

Alternativas
Comentários
  • Os esquemas de bloqueio poder pessimistas e não otimistas, logo a A está errada.
    Todo fragmento de dados em que uma transação tenha acesso, pode ser necessário para uma transação concorrente,  sendo sempre bom bloqueá-lo, logo a alternativa B está errada.
    Os esquemas de bloqueio otimistas fazem verificação com muita frequência, logo a D está errada.
    Os esquemas otimistas podem ser preferidos em sistemas com grande número de processadores paralelos, logo a E está errada.
    Realmente os esquemas de validação ou certificação, ou seja, esquemas otimistas fazem a suposição de que os conflitos provavelmente serão bastante raros na prática, fazendo as verificações se ocorreu algum conflito somente no momento do COMMIT, logo a alternatica C é a correta.
  • Técnica de bloqueio -> uma das técnicas de controle de concorrência para assegurar a propriedade do isolamento de transações. Esta técnica é utilizada para sincronizar o acesso por transações concorrentes aos itens do banco de dados. O bloqueio é utilizado na maioria dos BD atuais. Um lock (bloqueio) é uma variável associada a um item de dados que descreve as possíveis operações que podem ser aplicadas a ele.

    Tipos de bloqueios -> binários (lock_item(X) e unlock_item(X)) e compartilhados/exclusivos (read_lock(X), write_lock(X), unlock(X)).

    As técnicas de controle de concorrência não-otimistas sempre fazem alguma verificação antes que alguma operação de banco de dados possa ser executada. Ex: técnica de bloqueio.

    As técnicas de controle de concorrência otimistas não fazem nenhuma verificação enquanto a transação estiver sendo executada. Ex: validação ou técnicas de certificação.

    Fonte: Sistemas de Banco de Dados - ELMASRI e NAVATHE, 4ª edição, Capítulo 18.

  • Em ambientes com aplicações multi-usuários uma situação comum é a concorrência de dados, onde vários usuários pegam um mesmo dado simultaneamente, e a atualização do mesmo pode ser trabalha de duas maneiras, Otimista ou Pessimista.


    Concorrência pessimista trabalha com o conceito de bloqueio do registro na fonte de dados, impedindo que os usuários alterem os dados de uma forma que afeta outros usuários. Quando um usuário executa uma ação que provoca um bloqueio, outros usuários não podem realizar ações que entraria em conflito com o bloqueio até que o proprietário de bloqueio finalize-o. Este modelo é usado principalmente em ambientes onde há contenção pesada de dados, onde o custo de proteção de dados com bloqueios é menor que o custo de reverter as transações se ocorrem conflitos de simultaneidade. Esse modelo não é uma opção escalável quando os usuários estão interagindo com os dados, fazendo com que os registros sejam bloqueados por períodos de tempo relativamente grande.


    Em contra-partida, concorrência otimista não bloqueia registros quando lê-os. Quando um usuário deseja atualizar uma linha, o aplicativo deve determinar se outro usuário alterou a linha desde que foi lido. Concorrência otimista é geralmente utilizada em ambientes com baixa contenção de dados, aliviando o servidor do custo adicional de criar e manter locks. Outro ponto é a não necessidade de uma conexão aberta todo o tempo, já que não existe lock no banco, liberando o banco de dados para atender mais requisições.


    Fonte: http://marcobaccaro.wordpress.com/2011/07/21/concorrencia-otimista-e-pessimista/

  • não fazem nenhuma validação até que a transação seja concluída. terminada a transação, começa a validação. se violar alguma regra, desfaz ( rollback ), senão comita.