SóProvas


ID
205477
Banca
FEPESE
Órgão
SEFAZ-SC
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Sobre acesso concorrente a dados por transações em bancos de dados, é correto afirmar:

Alternativas
Comentários
  • E) Na fase de expansão os LOCKS são adquiridos. Na fase de ENCOLHIMENTO os LOCKS são liberados.

  • Bloqueios de duas fases previnem que transações concorrentes interfiram em outras. Isso para garantir a seriabilidade. Entretanto, isso não garante que não haja deadlock.
  • a) Uma transação que necessita acesso a um dado que está bloqueado deve ser abortada.
    Errado: Necessita aguardar até o desbloqueio. b) Uma ocorrência de deadlock envolve de uma (1) a várias transações.
    Errado: Envolve no mínimo 2 ou mais transações. Sendo que a transação em conflito pode requisitar o bloqueio das demais transações concorrentes para que estas fiquem na fila de espera. c) A técnica de bloqueio de duas fases requer que um dado seja bloqueado apenas por uma (1) transação para leitura ou para atualização.
    Errado:   Esse "por uma" realmente tá difícil de interpretar pois me parece que foi copiada de algum livro e traduzida ao pé da letra. O por me parece ser "for" e na verdade é para. O bloqueio pode ser "por uma"  transação no sentido de a partir de uma transação ou "para uma" transação no sentido do bloqueio se aplicar diretamente àquela transação conflitante. Então se o sentido do "por" for de "para uma" então bloqueio deveria ser  de uma ou mais  transações.   d) Uma transação que consegue adquirir a priori todos os bloqueios necessários sobre os dados pode, mesmo assim, incorrer em uma situação de deadlock com outras transações.
    Me parece certa esta questão, mas foi considerada errada. Não seria o conceito de Deadlock? e) A técnica de bloqueio de duas fases requer que uma transação adquira todos os bloqueios necessários antes de liberar qualquer bloqueio já adquirido.
    Correto
  • Olá Roduza,
    A letra "D" está errada porque: neste caso não existe deadlock, se a transação consegue ter posse de todos os bloqueios necessários para ela, então ela só vai liberar os bloqueios, não vai esperar desbloqueio de nenhuma outra transação.
    Valeu..
  • Na minha opinião a letra D esta correta, pois mesmo assim, incorrer em uma situação dedeadlock com outras transações. Cabível de recurso.

    Bons estudos.
  • d) Uma transação que consegue adquirir a priori todos os bloqueios necessários sobre os dados pode, mesmo assim, incorrer em uma situação de deadlock com outras transações. --> ERRADO!

    O item se refere ao protoloco de serialização em duas fases do tipo "conservador". Em que é necessario bloquear todos os itens antes de começar a transação, evitando assim o dead-lock.

    Imagine que eu bloqueio todos (TODOS) os dados que eu vou utilizar em uma transação (ou seja, nao tera supresa) então, apos este bloqueio eu posso realizar minha transação tranquilamente, pois em nenhum momento vai aparecer um dado bloqueado por outra transação, já que foi definido A PRIORI, que eu tinha todos os bloqueios necessarios antes mesmo de começar.

    Gabarito: letra E. Bons estudos!!!
  • Prezados,

    Em bancos de dados distribuídos é necessário fazer um controle aprimorado de transações. O bloqueio em duas fases é uma técnica realizada da seguinte forma :

    Fase 1 : Fase de crescimento ( expansão ) 
    A transação pode obter os bloqueios necessários, mas não libera os bloqueios

    Fase 2 : Fase de encurtamento ( encolhimento ) 
    A transação passa a liberar os bloqueios ,e já não pode obter mais bloqueios

    Portanto a alternativa correta é a letra E


  • Prezados,

    Em bancos de dados distribuídos é necessário fazer um controle aprimorado de transações. O bloqueio em duas fases é uma técnica realizada da seguinte forma :

    Fase 1 : Fase de crescimento ( expansão ) 
    A transação pode obter os bloqueios necessários, mas não libera os bloqueios

    Fase 2 : Fase de encurtamento ( encolhimento ) 
    A transação passa a liberar os bloqueios ,e já não pode obter mais bloqueios

    Portanto a alternativa correta é a letra E