Pular para o conteúdo principal

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

Banco de DadosTransações (Locks, ACID, etc.)
Código
ce417232
Banca
CESPE / CEBRASPE
Órgão
PC DF
Ano
2025
Cargo
GAAPC ( )
A respeito de arquitetura, segurança, integridade, concorrência, recuperação após falhas e gerenciamento de transições em sistemas de gerenciamento de banco de dados (SGDB), julgue o item a seguir.   Em um SGBD que visa garantir a segurança e a integridade dos dados, o uso de controle de transações não é suficiente para assegurar que todas as operações realizadas sejam recuperáveis em caso de falha nem para garantir que não haja inconsistências ou problemas de concorrência entre transações simultâneas.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

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

Controle de Transações e Propriedades ACID em SGBDs

Gabarito: Certo. A afirmação está correta porque o controle de transações, materializado pelas propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade), é um mecanismo fundamental, mas não é, por si só, suficiente para garantir a recuperação total após qualquer falha nem para eliminar todos os problemas de concorrência entre transações simultâneas. Essas garantias dependem de uma combinação de técnicas de controle de concorrência (como locks) e de protocolos de recuperação (como logs), que atuam em conjunto com as propriedades ACID.

O enunciado aborda um ponto central na teoria de bancos de dados: a relação entre o controle de transações e a garantia de segurança, integridade e recuperação dos dados. Para entender por que a afirmação está correta, é preciso compreender o que são as propriedades ACID e qual o papel de cada uma delas, bem como as limitações inerentes a qualquer sistema que lida com concorrência e falhas.

As propriedades ACID são o alicerce do processamento de transações em um SGBD. Elas definem as garantias que uma transação deve oferecer para que o banco de dados permaneça em um estado consistente. Vamos detalhar cada uma:

  • Atomicidade: Garante que uma transação seja tratada como uma unidade indivisível. Ou seja, ou todas as suas operações são executadas com sucesso (commit), ou nenhuma delas é aplicada (rollback). Isso impede que o banco de dados fique em um estado intermediário e inconsistente devido a uma falha no meio da transação.

  • Consistência: Assegura que uma transação leve o banco de dados de um estado consistente para outro estado consistente, respeitando todas as regras e restrições de integridade definidas (como chaves primárias, estrangeiras e checks).

  • Isolamento: Garante que transações executadas concorrentemente não interfiram umas nas outras. O resultado final deve ser o mesmo que se as transações fossem executadas em sequência (serial). Isso é alcançado por meio de mecanismos de controle de concorrência, como os locks.

  • Durabilidade: Assegura que, uma vez que uma transação seja confirmada (commit), suas alterações sejam permanentes e persistam mesmo em caso de falha do sistema. Isso é garantido por meio de logs de transação (write-ahead logging) e técnicas de recuperação.

A afirmação do enunciado destaca que o controle de transações "não é suficiente" para assegurar a recuperação total e a ausência de inconsistências. Isso é verdade por vários motivos:

  1. Recuperação após falhas: A durabilidade garante que os dados de transações confirmadas sejam persistidos, mas a recuperação de uma falha (como queda de energia ou crash do sistema) depende de mecanismos adicionais, como o uso de logs (registros de transações) e técnicas de checkpoint. O SGBD precisa ser capaz de refazer (redo) as transações confirmadas e desfazer (undo) as transações não confirmadas. O controle de transações fornece a base, mas a implementação da recuperação é um subsistema complexo.

  2. Problemas de concorrência: O isolamento é a propriedade que trata da concorrência, mas ela não é absoluta. Diferentes níveis de isolamento (Read Uncommitted, Read Committed, Repeatable Read, Serializable) oferecem diferentes garantias e podem permitir fenômenos como leitura suja (dirty read), leitura não repetível (non-repeatable read) e fantasma (phantom read). Além disso, o controle de concorrência pode levar a problemas como deadlocks (impasse), que precisam ser gerenciados pelo SGBD. O controle de transações define as regras, mas a gestão prática da concorrência é um desafio contínuo.

  3. Falhas de hardware e software: Nenhum sistema é imune a falhas de hardware (disco, memória) ou erros de software. O controle de transações não pode prever ou evitar todas as falhas possíveis; ele fornece os mecanismos para que, após uma falha, o banco de dados possa ser restaurado a um estado consistente.

Portanto, a afirmação está correta ao reconhecer que o controle de transações é necessário, mas não suficiente. Ele é um componente essencial, mas precisa ser complementado por outras técnicas e subsistemas para garantir a segurança e a integridade dos dados em cenários de falha e concorrência.

Controle de transações (ACID)
  • 1Atomicidade
    • Tudo ou nada (commit/rollback)
  • 2Consistência
    • Estado válido → estado válido
  • 3Isolamento
    • Níveis: Read Uncommitted a Serializable
    • Fenômenos: dirty read, non-repeatable read, phantom
  • 4Durabilidade
    • Persistência pós-commit
  • 5Limitações (não é suficiente)
    • Recuperação após falhas
      • Logs (redo/undo)
      • Checkpoints
    • Concorrência
      • Deadlocks
      • Níveis de isolamento
    • Falhas de hardware/software
LEVEL · soulevel.com.br
NÃO CAIA NESSA!

A banca pode tentar induzir o candidato a acreditar que o controle de transações (ACID) é uma solução completa e infalível. A pegadinha está em interpretar que, por existirem as propriedades ACID, o SGBD está automaticamente protegido contra qualquer falha ou problema de concorrência. Na prática, o ACID define as garantias, mas a implementação e a gestão de concorrência e recuperação são complexas e sujeitas a limitações. O candidato deve lembrar que o ACID é um conjunto de propriedades que o SGBD deve impor, mas que a eficácia depende de como essas propriedades são implementadas e de outros fatores, como o nível de isolamento escolhido e a robustez do subsistema de recuperação.

CERTO. A afirmação está correta: o controle de transações, embora fundamental, não é suficiente para garantir a recuperação total após falhas nem para eliminar todos os problemas de concorrência. A segurança e a integridade dos dados dependem de uma combinação de técnicas de controle de concorrência, protocolos de recuperação e gerenciamento adequado de falhas.

Gabarito: Certo.

Link permanente: /questoes/ce417232