Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados — CESGRANRIO 2007

Banco de DadosBanco de Dados
Código
cg026741
Banca
CESGRANRIO
Órgão
TERMOAÇU
Ano
2007
Nível
Superior
Um usuário reclama que o banco de dados está inconsistente.Abaixo, uma parte do relatório que ele executa.(...)(1) select idproduto, quantidade from estoque;(...)(2) select count(*) from estoque;(...)Ele verifica que, frequentemente, o select (1) retorna uma quantidade de registros diferente da contagem em (2). Como se pode explicar o que está ocorrendo e qual a solução para o problema?
  1. AIsso só acontece se o banco de dados realmente estiver inconsistente. A solução é restaurar um backup.
  2. BOutras transações estão alterando os dados da tabela estoque. A solução é inverter os comandos (1) e (2) para garantir um bloqueio de intenção.
  3. CO relatório está concorrendo com outras transações que alteram os dados da tabela ‘estoque’. A solução é bloquear a tabela ou envolver o relatório em uma transação ‘somente leitura’.
  4. DPara melhorar o desempenho, o comando (2) opera somente sobre as estatísticas da tabela e não conta efetivamente os registros. A solução é contar os registros durante o comando (1).
  5. EO banco de dados está inconsistente. A solução é reconstruir os índices sobre as chaves primárias.
Revelar gabarito e comentário

GabaritoC — O relatório está concorrendo com outras transações que alteram os dados da tabela ‘estoque’. A solução é bloquear a tabela ou envolver o relatório em uma transação ‘somente leitura’.

Link permanente: /questoes/cg026741