Questão de Banco de Dados — SQL — Quadrix 2025
- Código
- qg598673
- Banca
- Quadrix
- Órgão
- CRM-MS
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista de Informática

- CCerto
- EErrado

GabaritoC — Certo
Gabarito: CERTO (letra C). A remoção de um congresso da tabela Congressos apaga automaticamente os registros correspondentes na tabela Participacoes quando a chave estrangeira é definida com a ação ON DELETE CASCADE, e os médicos permanecem na tabela Medicos porque não há dependência referencial entre essas tabelas — a exclusão em cascata propaga apenas para as tabelas que referenciam a linha removida.
A integridade referencial é o mecanismo que garante a consistência entre tabelas relacionadas por chaves estrangeiras. Quando uma tabela filha possui uma chave estrangeira apontando para a chave primária de uma tabela pai, o banco de dados impede que existam registros órfãos — ou seja, registros na filha que referenciem uma linha que não existe mais no pai. Para lidar com a remoção de uma linha do pai, o padrão SQL define ações que podem ser especificadas na declaração da chave estrangeira: CASCADE, SET NULL, SET DEFAULT, RESTRICT e NO ACTION. A ação ON DELETE CASCADE determina que, ao excluir uma linha do pai, todas as linhas da filha que referenciam essa linha sejam excluídas automaticamente. Essa é a propagação em cascata: a exclusão se espalha para as tabelas dependentes.
No caso apresentado, a tabela Participacoes é a tabela filha que registra a participação de médicos em congressos, contendo chaves estrangeiras para Medicos e Congressos. Se a chave estrangeira para Congressos foi definida com ON DELETE CASCADE, a remoção de um congresso apagará todas as participações associadas a ele. Os médicos, por sua vez, estão na tabela Medicos, que não é referenciada pela tabela Congressos — a relação é unidirecional: Participacoes referencia Medicos, mas Medicos não referencia Congressos. Portanto, a exclusão em cascata não alcança a tabela Medicos, e os registros dos médicos permanecem intactos. A assertiva descreve exatamente esse comportamento.
A pegadinha que a banca explora aqui é a confusão entre a propagação da exclusão e a preservação das entidades independentes. O candidato pode pensar que, ao apagar um congresso, os médicos que participaram dele também seriam removidos — mas isso só ocorreria se houvesse uma relação de dependência direta entre Medicos e Congressos, o que não existe. A tabela Participacoes é uma tabela de associação (também chamada de tabela de ligação ou tabela relacional) que resolve o relacionamento muitos-para-muitos entre médicos e congressos. Nesse tipo de estrutura, a exclusão em cascata é aplicada apenas à tabela de associação, preservando as entidades principais.
Para fixar: a ação ON DELETE CASCADE propaga a exclusão apenas para as tabelas que possuem chave estrangeira referenciando a linha removida. No modelo apresentado, Participacoes referencia Congressos, então a exclusão atinge Participacoes. Medicos não referencia Congressos, então não é afetada. A assertiva está correta.
Critério |
| Sem ação de integridade (ou |
|---|---|---|
Efeito ao excluir congresso | Exclui automaticamente registros em | Impede a exclusão ou deixa órfãos (dependendo da configuração) |
Registros em | Apagados em cascata | Permanecem (ou exclusão é bloqueada) |
Registros em | Permanentes (não afetados) | Permanentes (não afetados) |
Dependência referencial |
|
|
Comportamento esperado | Consistência automática | Erro ou inconsistência potencial |
A afirmativa está correta porque descreve o comportamento padrão da ação ON DELETE CASCADE em uma chave estrangeira. Ao remover um congresso da tabela Congressos, o banco de dados automaticamente exclui todos os registros da tabela Participacoes que referenciam esse congresso, garantindo a integridade referencial. Os médicos permanecem na tabela Medicos porque não há chave estrangeira em Medicos apontando para Congressos — a relação é mediada pela tabela Participacoes, que é a única afetada pela cascata. A exclusão em cascata não se propaga para tabelas que não dependem diretamente da linha removida.
Gabarito: letra C (CERTO).
Link permanente: /questoes/qg598673