SóProvas


ID
137056
Banca
FGV
Órgão
Senado Federal
Ano
2008
Provas
Disciplina
Banco de Dados
Assuntos

No que diz respeito às técnicas de controle de concorrência em bancos de dados, é correto afirmar que:

Alternativas
Comentários
  • 16.6.3.1 Deadlock Detection

        Deadlocks can be described precisely in terms of a directed graph called a wait-for graph.


    Fonte: Pag 618 - Chapter 16 - Concurrency Control - Silberschatz−Korth−Sudarshan: Database System
  •  a) sempre que duas ou mais transações simultâneas tentam acessar o mesmo item de dados, elas provocam um deadlock no sistema de gerenciamento de banco de dados.  As transações têm que ser concorrentes e não simultâneas.  b) uma das técnicas para se detectar um estado de deadlock é construir um grafo wait-for. OK c) o problema de espera indefinida associado a uma transação (starvation) ocorre sempre que o seu esquema de espera para itens bloqueados atribui prioridade maior aos requisitos de outras transações simultâneas cujas execuções provoquem repetidos aborts na execução de suas atualizações. aborts é uma características das técnicas de timestamp não de bloqueio, que é onde ocorrem os starvations d) as técnicas de controle de concorrência baseadas em ordenação por timestamp não usam bloqueios e, por isso, diminuem as chances de ocorrência de deadlocks. Não há deadlock nesta técnica, assim não há como diminuí-los. e) diz-se que uma transação segue o protocolo de bloqueio de duas fases se todas as operações (read_lock, write_lock) precedem a última operação de desbloqueio na transação. Devem preceder as primeira de unlock, pois esta é que determina a mudança de fase. 
  • Gabarito D também correto. "d) as técnicas de controle de concorrência baseadas em ordenação por timestamp não usam bloqueios e, por isso, diminuem as chances de ocorrência de deadlocks."

    O ivaneide está certo ao afirmar que não existe deadlock na técnica timestamp. Mas é uma mera questão de raciocício lógico: vamos supor que haveriam 10 casos de deadlock por hora usando-se outro tipo de protocolo. Se usarmos o timestamp eliminamos esse problema. Seria correto inferir que o número de casos de deadlock foi reduzido de 10 para 0 casos?

    Claro! Reduzir uma chance a 0% é o mesmo que eliminá-la.

  • Todos os créditos a @Ivaneide de Sousa Lucio, mas precisei organizar para a melhor compreensão.

    a) sempre que duas ou mais transações simultâneas tentam acessar o mesmo item de dados, elas provocam um deadlock no sistema de gerenciamento de banco de dados.

    As transações têm que ser concorrentes e não simultâneas.  

    b) uma das técnicas para se detectar um estado de deadlock é construir um grafo wait-for. OK [GABARITO] 

    c) o problema de espera indefinida associado a uma transação (starvation) ocorre sempre que o seu esquema de espera para itens bloqueados atribui prioridade maior aos requisitos de outras transações simultâneas cujas execuções provoquem repetidos aborts na execução de suas atualizações. 

    aborts é uma características das técnicas de timestamp não de bloqueio, que é onde ocorrem os starvations 

    d) as técnicas de controle de concorrência baseadas em ordenação por timestamp não usam bloqueios e, por isso, diminuem as chances de ocorrência de deadlocks. 

    Não há deadlock nesta técnica, assim não há como diminuí-los. 

    e) diz-se que uma transação segue o protocolo de bloqueio de duas fases se todas as operações (read_lock, write_lock) precedem a última operação de desbloqueio na transação. 

    Devem preceder as primeira de unlock, pois esta é que determina a mudança de fase.