Pular para o conteúdo principal

Questão de Banco de Dados — Transações (Locks, ACID, etc.) — VUNESP 2025

Banco de DadosTransações (Locks, ACID, etc.)
Código
vu222881
Banca
VUNESP
Órgão
TJM SP
Ano
2025
Cargo
Ana BDJ ( )
Segundo o conceito de transações executadas em um banco de dados relacional, aplicam-se as propriedades definidas pelo acrônimo ACID, sendo que o conceito de
  1. Aconsistência representa que a execução isolada de uma transação preserva a consistência da base de dados.
  2. Bdurabilidade indica que cada tabela inserida na base de dados deve ter seu armazenamento duplicado, ou seja, armazenado duas vezes no mesmo servidor.
  3. Catomicidade representa o conceito de que cada registro inserido em tabelas do banco de dados deve ter um número máximo de bytes especificado quando da criação da base de dados.
  4. Ddurabilidade indica que o registro identificado por essa propriedade não pode ser excluído da base de dados.
  5. Eisolamento indica que só pode haver uma única base de dados em cada servidor utilizado.
Revelar gabarito e comentário

GabaritoA — consistência representa que a execução isolada de uma transação preserva a consistência da base de dados.

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”.

Propriedades ACID em transações de banco de dados

Gabarito: letra A. A propriedade de consistência garante que a execução de uma transação, de forma isolada, leva o banco de dados de um estado consistente para outro estado consistente, preservando todas as regras de integridade definidas (restrições, triggers, etc.). As demais alternativas distorcem completamente os conceitos de durabilidade, atomicidade e isolamento, atribuindo-lhes significados que não correspondem à teoria de transações.

O acrônimo ACID é um dos pilares fundamentais dos sistemas de gerenciamento de banco de dados relacionais (SGBDs). Ele define as quatro propriedades que garantem a confiabilidade das transações: Atomicidade, Consistência, Isolamento e Durabilidade. Cada uma dessas propriedades tem um papel específico e é essencial para assegurar que as operações sobre os dados sejam seguras, mesmo em cenários de falhas ou de acesso concorrente.

A atomicidade trata a transação como uma unidade indivisível: ou todas as operações são executadas com sucesso (commit), ou nenhuma delas é refletida no banco de dados (rollback). Isso impede que resultados parciais de uma transação fiquem gravados, o que poderia corromper a lógica de negócio. Um exemplo clássico é a transferência bancária: debitar uma conta e creditar outra são operações que devem ocorrer juntas; se uma falha acontecer no meio, o sistema deve desfazer tudo, retornando ao estado anterior.

A consistência é a propriedade que garante que uma transação, quando executada isoladamente, leva o banco de dados de um estado consistente para outro estado consistente. Um estado consistente é aquele que satisfaz todas as regras e restrições definidas no esquema, como unicidade de chaves, integridade referencial, restrições de domínio, entre outras. A responsabilidade por manter a consistência é tanto do programador (que deve escrever transações corretas) quanto do SGBD (que impõe as restrições de integridade). É importante notar que a consistência não garante a correção lógica da transação do ponto de vista do aplicativo, mas sim que nenhuma regra definida no banco será violada.

O isolamento garante que transações concorrentes sejam executadas como se fossem isoladas umas das outras, ou seja, os efeitos de uma transação não são visíveis para outras até que ela seja confirmada. Isso evita problemas como leituras sujas, leituras não repetíveis e registros fantasmas. O controle de concorrência, geralmente implementado por meio de locks ou de técnicas de versionamento, é o mecanismo que assegura essa propriedade.

A durabilidade assegura que, uma vez confirmada (commit), as alterações feitas pela transação são permanentes e não se perdem, mesmo em caso de falha do sistema, queda de energia ou reinicialização. Para garantir essa propriedade, o SGBD utiliza mecanismos como logs de transação (write-ahead logging) e backups. A durabilidade não tem relação com duplicação de armazenamento, criptografia ou impossibilidade de exclusão de registros.

A banca explora a confusão entre os conceitos, criando alternativas que atribuem a cada propriedade um significado absurdo e sem fundamento técnico. A chave para acertar é conhecer a definição precisa de cada uma das quatro propriedades e saber identificar qual delas está sendo descrita em cada alternativa. Guarde a fronteira entre elas: atomicidade é "tudo ou nada", consistência é "estado válido", isolamento é "concorrência controlada" e durabilidade é "persistência após o commit". É exatamente nessa fronteira que as alternativas se dividem.

Propriedade

Significado correto

O que a alternativa errada diz

Atomicidade

Tudo ou nada (commit/rollback)

Nº máximo de bytes por registro

Consistência

Estado válido → estado válido

Isolamento

Concorrência controlada

Só 1 base por servidor

Durabilidade

Persistência após o commit

Duplicar armazenamento / não excluir registro

Alternativa A — ✅ Correta ⟵ GABARITO

A alternativa descreve corretamente a propriedade da consistência. A execução isolada de uma transação deve preservar a consistência da base de dados, ou seja, levar o banco de um estado consistente para outro estado consistente, respeitando todas as regras de integridade. Isso está alinhado com a definição clássica da propriedade, que é um dos pilares do ACID.

Alternativa B — ❌ Incorreta

A alternativa atribui à durabilidade o significado de que cada tabela deve ter seu armazenamento duplicado no mesmo servidor. Isso é um absurdo técnico. A durabilidade garante que as alterações de uma transação confirmada persistem no banco de dados, mesmo após falhas. A duplicação de armazenamento é um conceito de replicação ou redundância, que não faz parte da definição de durabilidade.

Alternativa C — ❌ Incorreta

A alternativa atribui à atomicidade o significado de que cada registro deve ter um número máximo de bytes especificado na criação da base de dados. Isso não tem relação alguma com a atomicidade. A atomicidade trata a transação como uma unidade indivisível: ou todas as operações são executadas, ou nenhuma é refletida. A definição de tamanho máximo de bytes é um detalhe de implementação física, não uma propriedade de transação.

Alternativa D — ❌ Incorreta

A alternativa atribui à durabilidade o significado de que o registro não pode ser excluído da base de dados. Isso é falso. A durabilidade garante que as alterações de uma transação confirmada persistem, mas não impede que registros sejam excluídos por transações subsequentes. A exclusão de um registro é uma operação normal do banco de dados, desde que respeite as regras de integridade.

Alternativa E — ❌ Incorreta

A alternativa atribui ao isolamento o significado de que só pode haver uma única base de dados em cada servidor. Isso é completamente equivocado. O isolamento garante que transações concorrentes sejam executadas como se fossem isoladas umas das outras, evitando interferências. A quantidade de bases de dados em um servidor é uma questão de configuração e não tem relação com a propriedade de isolamento.

Gabarito: letra A

Link permanente: /questoes/vu222881