Questão de Banco de Dados — MySQL — FUNDATEC 2025
- Código
- qa699036
- Banca
- FUNDATEC
- Órgão
- IF Sertão PE
- Ano
- 2025
- Cargo
- Tec ( )
- A--all-databases --force
- B--routines --all-data
- C--routines --triggers
- D--procedures --triggers
- E--procedures --skip-triggers
GabaritoC — --routines --triggers
Gabarito: letra C. Para incluir procedures, functions e triggers em um backup lógico do banco ensino, o comando mysqldump deve usar as opções --routines e --triggers. A opção --routines é a que cobre procedures e functions; --triggers é a que cobre triggers. As demais alternativas ou usam opções inexistentes (--all-data, --procedures) ou omitem a inclusão de triggers (--skip-triggers).
O mysqldump é a ferramenta de linha de comando do MySQL para gerar backups lógicos, ou seja, um arquivo de texto com comandos SQL que recriam a estrutura e os dados do banco. Por padrão, o mysqldump não inclui objetos programáveis como stored procedures, functions e triggers — é preciso habilitar explicitamente essas opções. A opção --routines é a que faz o dump de procedures e functions, enquanto --triggers (que é o padrão, mas pode ser desabilitada com --skip-triggers) inclui os triggers associados às tabelas.
Na prática, o comando completo ficaria:
mysqldump -u root -p --routines --triggers ensino > c:/bkp_completo.sqlIsso gera um arquivo com a estrutura das tabelas, os dados, as procedures, as functions e os triggers do banco ensino. É importante notar que --routines é uma opção única que abrange tanto procedures quanto functions — não existe uma opção separada --procedures no mysqldump. Já --triggers é o comportamento padrão, mas como a questão pede explicitamente a inclusão, é correto especificá-la.
A pegadinha da banca está em oferecer opções que parecem plausíveis, mas que não existem ou não fazem o que se espera. Por exemplo, --all-data não é uma opção válida do mysqldump (o correto seria --all-databases para todos os bancos, mas aqui queremos apenas o banco ensino). E --procedures simplesmente não existe — o correto é --routines. Além disso, --skip-triggers faria o oposto do que se deseja, excluindo os triggers.
--all-databases faz backup de todos os bancos de dados, não apenas do banco ensino. Como o comando já especifica o banco ensino no final, usar --all-databases seria redundante e incorreto — o backup incluiria outros bancos. Além disso, --force apenas continua o backup mesmo se ocorrerem erros, não tem relação com objetos programáveis.
--routines está correto para procedures e functions, mas --all-data não é uma opção válida do mysqldump. Não existe essa opção; o correto para incluir todos os dados seria simplesmente não usar nenhuma opção de exclusão de dados (como --no-data). A opção --all-databases é que existe, mas não é o caso aqui.
--routines inclui stored procedures e functions, e --triggers inclui os triggers. Juntas, atendem exatamente ao requisito do enunciado: backup completo da estrutura, dados e todos os objetos programáveis do banco ensino. É a combinação correta e a única que usa apenas opções válidas e necessárias.
--procedures não existe no mysqldump. A opção correta para procedures e functions é --routines. Além disso, --triggers está correto, mas a primeira lacuna já invalida a alternativa.
--procedures não existe (o correto é --routines), e --skip-triggers exclui os triggers do backup, exatamente o oposto do que o enunciado pede. Portanto, duplamente errada.
A banca explora a confusão entre --routines e --procedures. Muita gente acha que existe uma opção específica para procedures, mas o mysqldump usa --routines para cobrir tanto procedures quanto functions. Outra armadilha é --skip-triggers: o candidato pode ler rápido e achar que é uma opção de inclusão, quando na verdade ela desabilita os triggers. Fique atento ao prefixo skip- — ele sempre indica exclusão.
Memorize as opções-chave do mysqldump para backup lógico: --routines (procedures e functions), --triggers (triggers, padrão), --all-databases (todos os bancos), --no-data (apenas estrutura) e --skip-triggers (exclui triggers). Na prova, desconfie de opções que você nunca viu na documentação — como --all-data ou --procedures — e lembre-se de que --routines é a única que cobre procedures e functions juntas.
Gabarito: letra C
Link permanente: /questoes/qa699036