Questão de Banco de Dados — SGBD - Sistema de Gerenciamento de Banco de Dados — FGV 2024
Banco de Dados›SGBD - 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
AI, apenas.
BII, apenas.
CIII, apenas.
DI e III, apenas.
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.