Pular para o conteúdo principal

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

Banco de DadosSGBD - Sistema de Gerenciamento de Banco de Dados
Código
qg475067
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2025
Nível
Superior
Cargo
Analista em Computação/Ênfase em Suporte em Banco de Dados
Assinale a alternativa correta sobre MySQL 8.
  1. ASem --single-transaction, o mysqldump já garante snapshot consistente em InnoDB.
  2. BCom --single-transaction, o mysqldump precisa bloquear tabelas com LOCK TABLES para obter consistência.
  3. CCom --single-transaction, o mysqldump faz um dump consistente das tabelas InnoDB sem bloquear tabelas; não se aplica a engines não transacionais.
  4. Dmysqldump é backup físico dos arquivos de dados.
  5. Emysqldump lê dados “sujos” (dirty reads) de transações não confirmadas.
Revelar gabarito e comentário

GabaritoC — Com --single-transaction, o mysqldump faz um dump consistente das tabelas InnoDB sem bloquear tabelas; não se aplica a engines não transacionais.

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

mysqldump e a opção --single-transaction no MySQL 8

Gabarito: letra C. Com --single-transaction, o mysqldump inicia uma transação e obtém um snapshot consistente do banco de dados InnoDB sem bloquear tabelas, utilizando o mecanismo de consistent read do InnoDB. Essa opção não se aplica a engines não transacionais, como MyISAM, que exigem bloqueio. Já sem --single-transaction, o mysqldump não garante snapshot consistente para InnoDB e, para consistência, precisa executar FLUSH TABLES WITH READ LOCK. A alternativa C descreve exatamente esse comportamento.

Alternativa

Afirmação sobre mysqldump no MySQL 8

Comportamento real

Correta?

A

Sem --single-transaction, já garante snapshot consistente em InnoDB.

❌ Sem a opção, usa FLUSH TABLES WITH READ LOCK (bloqueio), não snapshot automático.

B

Com --single-transaction, precisa bloquear tabelas (LOCK TABLES) para consistência.

❌ Com a opção, usa consistent read do InnoDB (snapshot), sem bloquear tabelas InnoDB.

C

Com --single-transaction, faz dump consistente de InnoDB sem bloquear; não se aplica a engines não transacionais.

✅ Exato: snapshot via transação REPEATABLE READ; MyISAM continua exigindo bloqueio.

D

mysqldump é backup físico dos arquivos de dados.

❌ É backup lógico (SQL). Backup físico copia arquivos .ibd/.frm.

E

mysqldump lê dados “sujos” (dirty reads) de transações não confirmadas.

❌ Com --single-transaction lê snapshot consistente; sem ele, usa bloqueios para evitar dirty reads.

1Com --single-transaction
InnoDB: snapshot consistente
Sem bloquear tabelas
Não se aplica a MyISAM
2Sem --single-transaction
InnoDB: sem snapshot
Requer FLUSH TABLES WITH READ LOCK
3Tipo de backup
Lógico (SQL)
Físico (arquivos .ibd)
mysqldump
LEVELsoulevel.com.br
mysqldump: Com --single-transaction (InnoDB: snapshot consistente, Sem bloquear tabelas, Não se aplica a MyISAM); Sem --single-transaction (InnoDB: sem snapshot, Requer FLUSH TABLES WITH READ LOCK); Tipo de backup (Lógico (SQL), Físico (arquivos .ibd))

Alternativa A — ❌ Incorreta

Sem --single-transaction, o mysqldump não garante snapshot consistente para tabelas InnoDB. Para obter consistência, ele usa FLUSH TABLES WITH READ LOCK, que bloqueia todas as tabelas. A afirmação inverte a regra.

Alternativa B — ❌ Incorreta

Com --single-transaction, o mysqldump não precisa bloquear tabelas InnoDB — ele usa a funcionalidade de consistent read do InnoDB (snapshot de uma transação com isolamento REPEATABLE READ). O bloqueio com LOCK TABLES só é necessário para engines não transacionais. A alternativa afirma o oposto.

Alternativa C — ✅ Correta ⟵ GABARITO

Exato: com --single-transaction, o mysqldump faz um dump consistente das tabelas InnoDB sem bloquear, lendo um snapshot transaction. A ressalva "não se aplica a engines não transacionais" é fundamental, pois esses (ex.: MyISAM) não suportam transações e continuam sendo bloqueados.

Alternativa D — ❌ Incorreta

mysqldump é uma ferramenta de backup lógico que gera comandos SQL (CREATE, INSERT) para recriar o banco. Backup físico copia os arquivos de dados diretamente (ex.: mysqlbackup ou cp dos arquivos .ibd).

Alternativa E — ❌ Incorreta

mysqldump não realiza leituras sujas (dirty reads). Com --single-transaction, ele lê um snapshot consistente (dados confirmados até o início da transação). Sem ele, usa bloqueios para evitar leitura de dados não confirmados.

NÃO CAIA NESSA!

A banca explora a confusão entre o comportamento de mysqldump com e sem --single-transaction, e também mistura as engines. Lembre-se: InnoDB é transacional e suporta snapshot consistente sem bloqueio; MyISAM não. A pegadinha típica é afirmar que --single-transaction bloqueia ou que funciona para todas as engines.

Gabarito: letra C.

Link permanente: /questoes/qg475067