Questão FC670755
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.
Sistema de Gerenciamento de Banco de Dados (SGBD)
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.
CREATE VIEW V_Medicos_Congressos AS SELECT M.nome AS medico, C.nome AS congresso, C.local, P.papel FROM Medicos M JOIN Participacoes P ON M.id_medico = P.id_medico JOIN Congressos C ON P.id_congresso = C.id_congresso;
Com base nessa situação hipotética, julgue o item a seguir.
A visão V_Medicos_Congressos permite que sejam inseridos diretamente novos registros na tabela Participacoes, desde que a inserção não viole as restrições de integridade, como CHECK e FOREIGN KEY.
Mostrar resposta e comentário
Gabarito
Errado
Comentário do professor
A afirmação foi julgada ERRADO porque a VIEW definida resulta de um JOIN entre as tabelas Medicos, Participacoes e Congressos. Views originadas por junções de várias tabelas geralmente não são insertable, pois o SGBD não sabe como distribuir os valores inseridos entre as tabelas base.
Na view em questão são exibidos M.nome, C.nome, C.local e P.papel. Um INSERT nessa view não fornece os valores de \(id\_medico\) e \(id\_congresso\) nem para campos como data_inscricao; além disso haveria ambiguidade sobre como traduzir nomes de médico/congresso em chaves estrangeiras.
Apenas views simples, baseadas em uma única tabela e sem agregações ou junções, são atualizáveis por padrão. Alterações através de uma view complexa só são possíveis se o SGBD suportar mecanismos adicionais, por exemplo triggers INSTEAD OF ou regras específicas. Caso contrário, deve-se inserir diretamente em Participacoes ou usar procedimentos que façam a conversão necessária.
Conteúdo do catálogo FC Concursos · Atualizado em