FC ConcursosFC Concursos

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

Continue aprendendo