Pular para o conteúdo principal

Questão de Banco de Dados — MySQL — CESPE / CEBRASPE 2025

Banco de DadosMySQL
Código
ce417228
Banca
CESPE / CEBRASPE
Órgão
PC DF
Ano
2025
Cargo
GAAPC ( )
Julgue o item a seguir, a respeito de Oracle e de MySQL.   A versão mais recente do MySQL oferece suporte a chaves estrangeiras, que permitem referência cruzada de dados relacionados entre tabelas, entretanto essa versão não suporta restrições de chave estrangeira.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoE — Errado

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

MySQL: chaves estrangeiras e restrições de integridade referencial

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.

Item — ❌ Errado

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