FC ConcursosFC Concursos

Questão FC670710

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.

Projeto e Modelagem de Dados

QUADRIX · 2025

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.

Mostrar resposta e comentário

Gabarito

Errado

Comentário do professor

A afirmação está errada porque a declaração da chave estrangeira em Participacoes inclui ON DELETE CASCADE. Isso faz com que, ao excluir um registro na tabela_pai (Medicos), o SGBD apague automaticamente as linhas dependentes na tabela_filho (Participacoes) que referenciam esse médico, evitando violação de integridade referencial.

Na prática o banco realiza a remoção das linhas em Participacoes que contenham o mesmo id_medico antes de excluir o registro em Medicos, mantendo as restrições consistentes. Portanto não haverá erro de violação por causa dessa chave estrangeira.

Somente ocorreria erro se a FK estivesse definida com comportamento restritivo (por exemplo NO ACTION ou RESTRICT) ou se existissem triggers/regras adicionais que impedissem a exclusão.

Observação técnica: o esquema apresentado tem pequenos problemas de sintaxe no CHECK de papel (aspas tipográficas e falta de uma aspa), que podem causar erro na criação da tabela, mas isso é distinto do comportamento de exclusão tratado acima.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo