Pular para o conteúdo principal

Questão de Banco de Dados — Conceitos e Fundamentos de Modelo Relacional — Quadrix 2025

Banco de DadosConceitos e Fundamentos de Modelo Relacional
Código
qa698957
Banca
Quadrix
Órgão
CRM MS
Ano
2025
Cargo
Ana ( )
O Hospital Campo Grande do Norte deseja gerenciar a participação de seus médicos em congressos médicos. Para isso, um banco de dados relacional foi projetado com as tabelas seguir.   CREATE TABLE Medicos (        id_medico INT PRIMARY KEY,        nome VARCHAR(100) NOT NULL,        especialidade VARCHAR(50) NOT NULL ); CREATE TABLE Congressos (        id_congresso INT PRIMARY KEY,        nome VARCHAR(100) NOT NULL,        local VARCHAR(100) NOT NULL,        data_inicio DATE NOT NULL,        data_fim DATE NOT NULL CHECK (data_fim > = data_inicio) ); CREATE TABLE Participacoes (         id_medico INT,         id_congresso INT,         papel VARCHAR(50) CHECK (papel IN (‘Palestrante’, ‘Ouvinte’, ‘Organizador)),         data_inscricao TIMESTAMP DEFAULT CURRENT_TIMESTAMP,         PRIMARY KEY (id_medico, id_congresso),         FOREIGN KEY (id_medico) REFERENCES Medicos(id_medico) ON DELETE CASCADE,        FOREIGN KEY (id_congresso) REFERENCES Congressos(id_congresso) ON DELETE CASCADE         ); Além disso, para facilitar consultas, foi criada a seguinte view.   Com base nessa situação hipotética, julgue o item a seguir.   Caso um médico seja removido da tabela Medicos, o sistema lançará um erro de violação de integridade referencial, pois a tabela Participacoes possui uma chave estrangeira que impede a remoção de médicos que tenham participado de congressos.
  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”.

Integridade referencial e a ação ON DELETE CASCADE

Gabarito: ERRADO (letra E). A afirmação está incorreta porque a chave estrangeira FOREIGN KEY (id_medico) REFERENCES Medicos(id_medico) ON DELETE CASCADE define que, ao remover um médico, o SGBD propaga automaticamente a exclusão para as linhas correspondentes na tabela Participacoes, em vez de lançar um erro de violação de integridade referencial. A ação CASCADE é justamente o oposto do comportamento descrito no item.

A integridade referencial é uma das restrições fundamentais do modelo relacional: ela garante que um valor de chave estrangeira em uma tabela sempre corresponda a um valor de chave primária existente na tabela referenciada. Quando tentamos excluir uma linha da tabela-pai (no caso, Medicos) que possui linhas dependentes na tabela-filha (Participacoes), o SGBD precisa decidir o que fazer com essas linhas órfãs. Essa decisão é controlada pela cláusula ON DELETE, que pode assumir diferentes ações: RESTRICT (ou NO ACTION), CASCADE, SET NULL e SET DEFAULT.

No script fornecido, a definição da tabela Participacoes contém:

FOREIGN KEY (id_medico) REFERENCES Medicos(id_medico) ON DELETE CASCADE

A ação CASCADE instrui o banco a excluir automaticamente todas as linhas da tabela Participacoes que referenciam o médico removido. Ou seja, a exclusão do médico é permitida e, em vez de um erro, ocorre uma exclusão em cascata: primeiro são apagadas as participações daquele médico e, em seguida, o próprio médico. Esse é o comportamento padrão esperado quando se usa ON DELETE CASCADE.

Se a intenção fosse impedir a remoção de médicos com participações registradas, a cláusula correta seria ON DELETE RESTRICT (ou NO ACTION), que faz o SGBD lançar uma violação de integridade referencial. A banca explora exatamente essa confusão: o candidato que conhece o conceito de integridade referencial, mas não presta atenção na ação específica definida, tende a marcar como certo, pois a ideia de "impedir a remoção" é associada à existência de uma FK. No entanto, a presença do CASCADE muda completamente o resultado.

Vamos comparar as ações mais comuns:

Ação ON DELETE

Comportamento ao excluir a linha-pai

RESTRICT / NO ACTION

Impede a exclusão; lança erro de violação de integridade referencial.

CASCADE

Exclui automaticamente as linhas dependentes (exclusão em cascata).

SET NULL

Define a chave estrangeira das linhas dependentes como NULL (exige que a coluna aceite nulos).

SET DEFAULT

Define a chave estrangeira das linhas dependentes para um valor padrão.

No caso concreto, como a ação é CASCADE, a remoção do médico não gera erro; ela é executada e as participações correspondentes são apagadas junto. Portanto, o item está errado.

NÃO CAIA NESSA!

A banca inverte o efeito da cláusula ON DELETE CASCADE. O candidato que sabe que uma FK impõe integridade referencial pode assumir que a exclusão será bloqueada, mas o CASCADE faz exatamente o oposto: propaga a exclusão. Fique atento à ação específica definida na FK — é ela que determina o comportamento.

Item — ❌ ERRADO

A afirmação diz que "o sistema lançará um erro de violação de integridade referencial, pois a tabela Participacoes possui uma chave estrangeira que impede a remoção de médicos que tenham participado de congressos". Isso é falso porque a FK foi definida com ON DELETE CASCADE, que permite a remoção e apaga automaticamente as participações relacionadas. O erro só ocorreria se a ação fosse RESTRICT ou NO ACTION. Portanto, o item está errado.

Gabarito: letra E (ERRADO).

Link permanente: /questoes/qa698957