Pular para o conteúdo principal

Questão de Banco de Dados — MySQL — VUNESP 2023

Banco de DadosMySQL
Código
vu196121
Banca
VUNESP
Órgão
Pref Jaguariúna
Ano
2023
Cargo
Tec (Jaguariúna)

O sistema gerenciador de banco de dados MySQL (v. 8.0) dispõe de alguns dispositivos de armazenamento (storage engines), dentre os quais é correto citar:

  1. ACommit e Compile.
  2. BInnoDB e MyISAM.
  3. CTransaction e Federated.
  4. DMemory e Hash.
  5. ELocked e Flushing.
Revelar gabarito e comentário

GabaritoB — InnoDB e MyISAM.

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

Storage Engines do MySQL: InnoDB e MyISAM

Gabarito: letra B. O MySQL 8.0 oferece diversos dispositivos de armazenamento (storage engines), e entre os mais conhecidos estão InnoDB (o padrão, que suporta transações, chaves estrangeiras e bloqueio por linha) e MyISAM (que não suporta transações, mas é rápido para leituras). A alternativa B é a única que traz dois nomes reais de storage engines do MySQL.

Storage engines (ou motores de armazenamento) são componentes do MySQL que gerenciam como os dados são armazenados, indexados e manipulados em cada tabela. O MySQL usa uma arquitetura de storage engines plugáveis, o que significa que você pode escolher, para cada tabela, qual motor será usado, conforme a necessidade da aplicação. O comando SHOW ENGINES lista todos os motores disponíveis no servidor.

O InnoDB é o motor padrão desde o MySQL 5.5 e é recomendado pela Oracle para a maioria dos casos. Ele oferece suporte a transações ACID (Atomicidade, Consistência, Isolamento e Durabilidade), chaves estrangeiras (foreign keys) e bloqueio por linha (row-level locking), o que o torna ideal para aplicações que exigem integridade referencial e operações concorrentes. Já o MyISAM é um motor mais antigo, que não suporta transações nem chaves estrangeiras, mas é conhecido por sua simplicidade e bom desempenho em leituras. Ele usa bloqueio por tabela (table-level locking), o que pode ser um gargalo em cenários de muitas escritas simultâneas.

Além desses dois, o MySQL 8.0 também inclui outros storage engines, como MEMORY (armazena dados em memória RAM), CSV (armazena dados em arquivos CSV), ARCHIVE (para armazenamento compactado de grandes volumes de dados históricos), BLACKHOLE (descarta os dados, como um /dev/null), MERGE (combina várias tabelas MyISAM idênticas) e FEDERATED (acessa tabelas em servidores remotos). Cada um tem características específicas e casos de uso particulares.

A pegadinha desta questão é que ela mistura nomes de storage engines com termos de outras áreas do banco de dados. Por exemplo, "Commit" e "Rollback" são comandos de transação, não motores de armazenamento. "Transaction" é um conceito, não um motor. "Memory" é um motor real, mas "Hash" é um tipo de índice ou estrutura de dados. "Locked" e "Flushing" são estados ou operações, não motores. A banca quer que o candidato reconheça os nomes reais dos motores, e não se deixe enganar por termos que parecem plausíveis.

Guarde a lista dos principais storage engines do MySQL: InnoDB, MyISAM, MEMORY, CSV, ARCHIVE, BLACKHOLE, MERGE, FEDERATED. É exatamente nessa lista que as alternativas se dividem: as incorretas trazem termos que não pertencem a ela.

Alternativa A — ❌ Incorreta

"Commit" e "Compile" não são storage engines. Commit é um comando SQL usado para confirmar uma transação (tornar permanentes as alterações feitas dentro dela). Compile não tem relação com armazenamento de dados no MySQL — é um termo de programação (compilar código). A banca tenta confundir com termos técnicos que soam plausíveis, mas não são motores de armazenamento.

Alternativa B — ✅ Correta ⟵ GABARITO

InnoDB e MyISAM são, de fato, dois dos storage engines mais conhecidos do MySQL. O InnoDB é o motor padrão, com suporte a transações, chaves estrangeiras e bloqueio por linha. O MyISAM é um motor mais antigo, sem transações, mas rápido para leituras. Ambos são citados na documentação oficial do MySQL 8.0 como motores alternativos de armazenamento.

Alternativa C — ❌ Incorreta

"Transaction" não é um storage engine — é o conceito de transação (unidade lógica de trabalho com propriedades ACID). "Federated" é um storage engine real do MySQL, mas a alternativa erra ao juntá-lo com um termo que não é um motor. A banca mistura um nome verdadeiro com um conceito para induzir ao erro.

Alternativa D — ❌ Incorreta

"Memory" é um storage engine real do MySQL (armazena tabelas em memória RAM, perdendo os dados ao reiniciar o servidor). Porém, "Hash" não é um storage engine — é um tipo de índice (índice hash) ou uma estrutura de dados usada em algoritmos. A alternativa é parcialmente correta, mas não totalmente, pois um dos nomes não é um motor de armazenamento.

Alternativa E — ❌ Incorreta

"Locked" e "Flushing" não são storage engines. Locked refere-se ao estado de uma tabela ou registro quando está bloqueado (por exemplo, durante uma transação). Flushing é uma operação de escrita dos dados do buffer para o disco (como o comando FLUSH TABLES). São termos de operação do banco, não motores de armazenamento.

PEGA ESSA DICA!

Para não errar questões sobre storage engines do MySQL, memorize a lista dos principais: InnoDB, MyISAM, MEMORY, CSV, ARCHIVE, BLACKHOLE, MERGE, FEDERATED. Na prova, desconfie de termos que parecem técnicos, mas não são motores — como "Commit", "Transaction", "Hash", "Locked" e "Flushing". Eles pertencem a outros contextos do banco de dados (transações, índices, operações).

Gabarito: letra B

Link permanente: /questoes/vu196121