Pular para o conteúdo principal

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

Banco de DadosTransações (Locks, ACID, etc.)
Código
fg165284
Banca
FGV
Órgão
EPE
Ano
2024
Cargo
AGC ( )
No contexto de banco de dados, há um conjunto de propriedades fundamentais para a integridade e a confiabilidade das transações em um banco de dados representadas pelo acrônimo ACID. Cada uma delas desempenha um papel crucial na manutenção da integridade dos dados e na garantia de que as transações sejam realizadas de forma correta e segura.   Com isto em mente, associe as propriedades listadas a seguir, aos responsáveis, dentro ou fora do SGBD, por garanti-las.   1. Programadores ou módulo do SGBD que impõe restrições de integridade. 2. Subsistema de recuperação. 3. Subsistema de controle de concorrência. (   ) Atomicidade. (   ) Consistência. (   ) Isolamento. (   ) Durabilidade.   Assinale a opção que apresenta a associação correta, na ordem apresentada.
  1. A2 – 1 – 3 – 3.
  2. B1 – 3 – 2 – 2.
  3. C2 – 2 – 1 – 3.
  4. D2 – 1 – 3 – 2.
  5. E3 – 2 – 1 – 1.
Revelar gabarito e comentário

GabaritoD — 2 – 1 – 3 – 2.

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: responsáveis pela garantia

Gabarito: letra D. A associação correta é Atomicidade → Subsistema de recuperação (2), Consistência → Programadores ou módulo do SGBD que impõe restrições de integridade (1), Isolamento → Subsistema de controle de concorrência (3), Durabilidade → Subsistema de recuperação (2), resultando na sequência 2 – 1 – 3 – 2. A chave da questão está em saber que a atomicidade e a durabilidade são garantidas pelo subsistema de recuperação, enquanto a consistência depende das regras de integridade e o isolamento é papel do controle de concorrência.

As propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade) são os pilares que garantem a confiabilidade das transações em um banco de dados. Cada uma delas é assegurada por um componente específico do SGBD ou pelo próprio programador, e é exatamente essa divisão de responsabilidades que a questão cobra.

Atomicidade é a propriedade que 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 (rollback). A responsabilidade por essa garantia é do subsistema de recuperação, que mantém um log (registro) das operações e, em caso de falha, desfaz os efeitos parciais da transação. Por exemplo, em uma transferência bancária, se o sistema falhar após debitar a conta de origem mas antes de creditar a de destino, o subsistema de recuperação deve desfazer o débito para restaurar a consistência.

Consistência assegura que a transação leve o banco de dados de um estado consistente para outro, respeitando todas as regras de integridade definidas, como chaves únicas, restrições (constraints), triggers e operações em cascata. Essa propriedade é garantida pelos programadores que escrevem o código da aplicação e pelo módulo do SGBD que impõe restrições de integridade. O SGBD valida cada operação contra as regras definidas no esquema, rejeitando qualquer escrita que viole essas regras.

Isolamento garante que transações concorrentes não interfiram umas nas outras, produzindo o mesmo resultado que teriam se fossem executadas em sequência (serialização). Essa propriedade é implementada pelo subsistema de controle de concorrência, que utiliza mecanismos como locks (bloqueios) — compartilhados e exclusivos — para gerenciar o acesso simultâneo aos dados. Por exemplo, se duas transações tentam atualizar o mesmo registro ao mesmo tempo, o controle de concorrência serializa as operações para evitar conflitos.

Durabilidade garante que, uma vez confirmada (commit), as alterações da transação sejam permanentes e persistam mesmo em caso de falha do sistema. Essa propriedade também é responsabilidade do subsistema de recuperação, que grava as alterações em disco e utiliza o log para restaurar o estado do banco em caso de queda. Sem a durabilidade, uma transação confirmada poderia ser perdida em um desligamento inesperado.

A pegadinha desta questão está em associar a atomicidade e a durabilidade ao mesmo subsistema (recuperação), enquanto muitos candidatos tendem a atribuir a atomicidade ao controle de concorrência ou a durabilidade a outro componente. A distinção crucial é: recuperação lida com falhas (desfazer transações incompletas e persistir as confirmadas), enquanto controle de concorrência lida com o acesso simultâneo (isolamento).

NÃO CAIA NESSA!

A banca explora a confusão entre os papéis do subsistema de recuperação e do controle de concorrência. Muitos candidatos associam a atomicidade ao controle de concorrência, mas a atomicidade é garantida pela recuperação, que desfaz transações incompletas (rollback). Da mesma forma, a durabilidade também é papel da recuperação, que persiste as alterações confirmadas. O controle de concorrência cuida apenas do isolamento.

Alternativa A — ❌ Incorreta

A sequência 2 – 1 – 3 – 3 atribui a durabilidade ao subsistema de controle de concorrência (3), o que está errado. A durabilidade é garantida pelo subsistema de recuperação (2), que persiste as alterações confirmadas em disco. O controle de concorrência é responsável apenas pelo isolamento.

Alternativa B — ❌ Incorreta

A sequência 1 – 3 – 2 – 2 atribui a atomicidade aos programadores/módulo de integridade (1) e a consistência ao controle de concorrência (3), invertendo os papéis. A atomicidade é garantida pelo subsistema de recuperação (2), e a consistência é papel dos programadores/módulo de integridade (1).

Alternativa C — ❌ Incorreta

A sequência 2 – 2 – 1 – 3 atribui a consistência ao subsistema de recuperação (2) e o isolamento aos programadores/módulo de integridade (1). A consistência é garantida pelos programadores/módulo de integridade (1), e o isolamento é papel do controle de concorrência (3).

Alternativa D — ✅ Correta ⟵ GABARITO

A sequência 2 – 1 – 3 – 2 associa corretamente: Atomicidade → Subsistema de recuperação (2), Consistência → Programadores/módulo de integridade (1), Isolamento → Subsistema de controle de concorrência (3), Durabilidade → Subsistema de recuperação (2). Essa é a divisão clássica de responsabilidades das propriedades ACID.

Alternativa E — ❌ Incorreta

A sequência 3 – 2 – 1 – 1 atribui a atomicidade ao controle de concorrência (3) e a durabilidade aos programadores/módulo de integridade (1). A atomicidade é garantida pelo subsistema de recuperação (2), e a durabilidade também é papel da recuperação (2), não dos programadores.

Gabarito: letra D

Link permanente: /questoes/fg165284