Questão de Banco de Dados — MySQL — CESPE / CEBRASPE 2025
- Código
- ce417228
- Banca
- CESPE / CEBRASPE
- Órgão
- PC DF
- Ano
- 2025
- Cargo
- GAAPC ( )
- CCerto
- EErrado
GabaritoE — Errado
Gabarito: Errado (E). A afirmação é contraditória: o MySQL suporta chaves estrangeiras justamente por meio de restrições de chave estrangeira (FOREIGN KEY), que são o mecanismo que implementa a integridade referencial. Não existe suporte a chaves estrangeiras sem as restrições correspondentes — são a mesma coisa.
A chave estrangeira (foreign key) é um atributo ou conjunto de atributos em uma tabela que cria uma ligação lógica com a chave primária (ou candidata) de outra tabela, permitindo associar registros entre elas. Essa ligação é implementada no banco de dados por meio de uma restrição de chave estrangeira (FOREIGN KEY), que garante a integridade referencial: cada valor da chave estrangeira deve corresponder a um valor existente na tabela referenciada (ou ser nulo, se a coluna permitir).
No MySQL, a restrição é definida na criação da tabela ou via ALTER TABLE, com a sintaxe FOREIGN KEY (coluna) REFERENCES tabela_referenciada (chave). Essa restrição é o que faz o SGBD impedir inserções, atualizações ou exclusões que violem a integridade referencial, a menos que sejam usadas ações como ON DELETE CASCADE ou ON UPDATE CASCADE. Portanto, dizer que o MySQL suporta chaves estrangeiras mas não suporta restrições de chave estrangeira é um contrassenso: a restrição é o próprio mecanismo de suporte.
A banca explora aqui uma confusão comum: o candidato pode achar que "restrição" é algo separado da chave estrangeira, ou que versões antigas do MySQL (como as que usavam apenas a engine MyISAM) não suportavam esse recurso. De fato, o suporte a chaves estrangeiras no MySQL depende da engine de armazenamento — a InnoDB suporta desde versões antigas, enquanto a MyISAM não suporta. Mas a afirmação fala da "versão mais recente", que usa InnoDB por padrão e suporta plenamente as restrições. A pegadinha está em separar artificialmente dois conceitos que são indissociáveis.
Guarde o par: chave estrangeira = restrição FOREIGN KEY = integridade referencial. É exatamente essa equivalência que torna a assertiva errada.
A assertiva contém uma contradição interna. Ela afirma que o MySQL suporta chaves estrangeiras, mas não suporta restrições de chave estrangeira. Isso é falso porque:
A chave estrangeira é uma restrição (FOREIGN KEY) no padrão SQL e no MySQL.
O suporte a chaves estrangeiras no MySQL é implementado exatamente por meio dessas restrições, que garantem a integridade referencial.
A versão mais recente do MySQL (com a engine InnoDB, que é a padrão) suporta plenamente a definição de restrições FOREIGN KEY, inclusive com ações de cascata (ON DELETE CASCADE, ON UPDATE CASCADE).
Portanto, a segunda parte da frase contradiz a primeira: se há suporte a chaves estrangeiras, há suporte às restrições que as definem. A afirmação está errada.
Gabarito: Errado (E).
Link permanente: /questoes/ce417228