Pular para o conteúdo principal

Questão de Banco de Dados — SGBD - Sistema de Gerenciamento de Banco de Dados — Quadrix 2025

Banco de DadosSGBD - Sistema de Gerenciamento de Banco de Dados
Código
qg594975
Banca
Quadrix
Órgão
CFO
Ano
2025
Nível
Superior
Cargo
Analista de Infraestrutura
Um componente fundamental de qualquer infraestrutura de computação é o sistema de banco de dados formado pelos servidores e SGBDs. É lá que ficam os dados e as informações da empresa. Com base nessas informações, julgue o item seguinte.O controle de concorrência multiversionamento (MVCC) permite alta disponibilidade em sistemas de bancos de dados transacionais sem comprometer a consistência.
  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 concorrência multiversionamento (MVCC)

Gabarito: CERTO (letra C). O MVCC (Multiversion Concurrency Control) é uma técnica de controle de concorrência que permite alta disponibilidade e desempenho em sistemas transacionais, pois leituras não bloqueiam escritas e vice-versa, mantendo a consistência por meio de versões dos dados. A afirmação está correta.

O controle de concorrência é um dos pilares dos SGBDs, responsável por garantir que transações simultâneas não interfiram umas nas outras, preservando a consistência dos dados. O MVCC é uma das abordagens mais modernas e eficientes para esse controle, adotada por SGBDs como PostgreSQL, Oracle e MySQL (InnoDB).

A ideia central do MVCC é que cada transação enxerga uma "fotografia" (snapshot) consistente do banco de dados em um determinado momento. Em vez de bloquear linhas que estão sendo lidas ou escritas, o SGBD mantém múltiplas versões de cada registro. Quando uma transação lê um dado, ela vê a versão mais recente que era válida no início da transação. Quando uma transação escreve, ela cria uma nova versão, sem descartar as anteriores imediatamente. Isso permite que leituras e escritas ocorram simultaneamente sem conflito, aumentando a concorrência e, consequentemente, a disponibilidade do sistema.

A consistência é preservada porque o SGBD garante que cada transação opere sobre um snapshot consistente, e o isolamento entre transações é mantido. O MVCC é uma implementação prática do isolamento, uma das propriedades ACID das transações. As propriedades ACID (Atomicidade, Consistência, Isolamento e Durabilidade) são fundamentais para garantir a confiabilidade das transações em bancos de dados.

A principal vantagem do MVCC é que ele reduz a necessidade de bloqueios (locks), que são caros e podem causar deadlocks e baixa concorrência. Em sistemas de alta disponibilidade, onde o tempo de resposta e a capacidade de processar muitas transações simultâneas são críticos, o MVCC é uma solução eficaz.

No entanto, é importante notar que o MVCC não elimina completamente a necessidade de bloqueios. Escritas concorrentes na mesma linha ainda precisam ser serializadas, e o SGBD pode usar bloqueios ou outras técnicas (como OCC - Optimistic Concurrency Control) para resolver conflitos. Mas, para o cenário típico de leitura intensa, o MVCC oferece um ganho significativo de desempenho e disponibilidade.

A banca explora aqui a relação entre concorrência, disponibilidade e consistência. O candidato pode ser tentado a marcar "Errado" por pensar que concorrência e consistência são antagônicas, mas o MVCC demonstra que é possível conciliar ambos.

MVCC (Multiversion Concurrency Control)
  • 1Ideia central
    • Snapshot consistente por transação
    • Múltiplas versões de cada registro
  • 2Vantagens
    • Leituras não bloqueiam escritas
    • Escritas não bloqueiam leituras
    • Alta concorrência e disponibilidade
    • Consistência preservada (ACID)
  • 3Limitações
    • Escritas concorrentes ainda exigem serialização
    • Locks ou OCC para resolver conflitos
LEVEL · soulevel.com.br

Item — ✅ CERTO

A afirmação está correta. O MVCC permite alta disponibilidade em sistemas transacionais sem comprometer a consistência. Isso é alcançado porque:

  • Leituras não bloqueiam escritas: uma transação de leitura não precisa esperar que uma escrita termine, pois ela lê uma versão consistente dos dados.

  • Escritas não bloqueiam leituras: uma transação de escrita não bloqueia leituras, pois ela cria uma nova versão, e as leituras continuam vendo a versão antiga.

  • Consistência preservada: cada transação vê um snapshot consistente, e o isolamento é garantido.

Essa é a essência do MVCC, que é amplamente utilizado em SGBDs modernos para maximizar a concorrência e a disponibilidade.

Gabarito: CERTO (letra C).

Link permanente: /questoes/qg594975