Pular para o conteúdo principal

Questão de Banco de Dados — SGBD - Sistema de Gerenciamento de Banco de Dados — FGV 2024

Banco de DadosSGBD - Sistema de Gerenciamento de Banco de Dados
Código
fg086428
Banca
FGV
Órgão
INPE
Ano
2024
Nível
Superior
Cargo
Tecnologista Pleno I - Processamento de Dados Meteorológicos e Georreferenciados; Desenvolvimento de Software na Área de Meteorologia
Entre as funcionalidades do SGBD existe a possibilidade da execução de transações.Esses blocos possuem a seguinte estrutura:BEGINOperação 1;Operação 2;....COMMITConsiderando a aplicação das transações em uma base vetorial armazenada em SGBD PostgreSQL com extensão espacial PostGIS, analise as afirmativas a seguir.I. Caso mais de um usuário inicie blocos de transações em uma mesma feição geométrica, com alteração de chave primária, sendo o intervalo de COMMIT entre os usuários dentro das especificações do SGBD, ambas as transações ocorrerão sem falha.II. As transações geralmente são utilizadas durante as edições da geometria das feições com a finalidade de garantir a integridade da informação em casos de falhas.III. Após o COMMIT é possível desfazer as execuções de um bloco de transações utilizando o comando ROLLBACK. Este comando anulará todas as edições realizadas dentro do bloco de transações.Está correto o que se afirma em
  1. AI, apenas.
  2. BII, apenas.
  3. CIII, apenas.
  4. DI e III, apenas.
  5. EI, II e III.
Revelar gabarito e comentário

GabaritoB — II, apenas.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Transações no PostgreSQL e PostGIS

Gabarito: letra B (II, apenas). A única afirmativa correta é a II, que descreve corretamente o uso de transações para garantir integridade em edições geométricas. A I é falsa porque o controle de concorrência do PostgreSQL (MVCC) não garante que duas transações concorrentes alterando a mesma feição (com chave primária) sejam bem-sucedidas – pode haver conflito de serialização. A III é falsa porque o comando ROLLBACK só desfaz transações antes do COMMIT; após o COMMIT, as alterações são permanentes.

Critério

Afirmativa I

Afirmativa II

Afirmativa III

Conteúdo

Duas transações concorrentes alterando mesma feição com chave primária

Transações usadas para garantir integridade em edições geométricas

ROLLBACK desfaz transações após COMMIT

Correção

❌ Incorreta

✅ Correta

❌ Incorreta

Justificativa

MVCC não garante sucesso em atualizações concorrentes na mesma linha; pode ocorrer erro de serialização

Transações seguem propriedades ACID, protegendo contra falhas durante edições

ROLLBACK só funciona antes do COMMIT; após COMMIT, alterações são permanentes

Afirmativa I — ❌ Incorreta

A afirmativa sugere que duas transações concorrentes sobre a mesma feição geométrica (alterando chave primária) ocorrerão sem falha se o intervalo de COMMIT estiver dentro das especificações. No PostgreSQL, o mecanismo MVCC (Multiversion Concurrency Control) permite que leituras concorrentes vejam snapshots diferentes, mas atualizações concorrentes na mesma linha (especialmente em chave primária) podem gerar conflitos de serialização. A segunda transação a commitar pode receber erro como "could not serialize access due to concurrent update", abortando a transação. Portanto, não há garantia de sucesso simultâneo.

Afirmativa II — ✅ Correta

Transações são blocos executados com atomicidade, consistência, isolamento e durabilidade (ACID). Durante edições de geometria (ex.: alteração de feições no PostGIS), o uso de transações assegura que, em caso de falha (queda de energia, erro de sistema), as alterações parciais sejam descartadas via ROLLBACK, mantendo a integridade dos dados. É prática padrão em SGBDs.

Afirmativa III — ❌ Incorreta

O comando ROLLBACK desfaz as operações de uma transação não confirmada (antes do COMMIT). Após o COMMIT, as alterações são efetivadas e não podem ser desfeitas com ROLLBACK – seria necessário um comando compensatório (outra transação) ou Point-in-Time Recovery. A afirmativa inverte o momento de validade do ROLLBACK.

PEGA ESSA DICA!

Em questões sobre transações, lembre-se do ciclo: BEGIN → operações → COMMIT (torna permanente) ou ROLLBACK (desfaz). Após o COMMIT, não há ROLLBACK. Em concorrência, conflitos de atualização podem ocorrer mesmo com MVCC; o PostgreSQL usa bloqueios e serialização para evitar inconsistências.

Gabarito: letra B — apenas a afirmativa II está correta.

Link permanente: /questoes/fg086428