Foram encontradas 24.479 questões.
A figura precedente consiste em um DER, que representa a modelagem de uma clínica médica na qual um mesmo médico pode realizar consulta com vários pacientes, sendo possível que o mesmo paciente se consulte com o mesmo médico mais de uma vez.
A partir das informações apresentadas, é correto afirmar que, na transformação do diagrama para o modelo físico, CONSULTA
Provas
A figura precedente é um DER, que representa a modelagem de uma clínica médica na qual um mesmo médico pode realizar consulta com vários pacientes, sendo possível que o mesmo paciente se consulte com o mesmo médico mais de uma vez.
A partir das informações apresentadas, assinale a opção correta.
Provas
Nesse tipo de sistema distribuído, faz-se necessário um software que gerencie essas diversas partes e assegure que elas possam se comunicar e trocar dados. Esse software é denominado
Provas
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 tabela Participacoes implementa uma relação N:N (muitos para muitos) entre as tabelas Medicos e Congressos, utilizando uma chave primária composta (id_medico, id_congresso), o que garante que um mesmo médico não possa inscrever-se mais de uma vez no mesmo congresso.
Provas
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.
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.
Provas
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.
O comando a seguir encontra todos os médicos que participaram de congressos em 2023, mas não participaram de nenhum congresso em 2024.
SELECT DISTINCT M.nome
FROM Medicos M
JOIN Participacoes P ON M.id_medico = P.id_medico
JOIN Congressos C ON P.id_congresso = C.id_congresso
WHERE EXTRACT(YEAR FROM C.data_inicio) = 2023
AND M.id_medico NOT IN (
SELECT P2.id_medico
FROM Participacoes P2
JOIN Congressos C2 ON P2.id_congresso = C2.id_congresso
WHERE EXTRACT(YEAR FROM C2.data_inicio) = 2024
);
Provas
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.
Se um congresso for removido da tabela Congressos, todos os registros correspondentes na tabela Participacoes serão automaticamente apagados, e os médicos que participaram desse congresso permanecerão na tabela Medicos.
Provas
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.
Provas
O Hospital Campo Grande está implementando um novo sistema de banco de dados para gerenciar informações sobre médicos, pacientes e atendimentos. O banco de dados apresenta as tabelas a seguir.
CREATE TABLE Medicos (
id_medico INT PRIMARY KEY,
nome VARCHAR(100),
especialidade VARCHAR(50),
salario DECIMAL(10,2)
);
CREATE TABLE Pacientes (
id_paciente INT PRIMARY KEY,
nome VARCHAR(100),
data_nascimento DATE
);
CREATE TABLE Atendimentos (
id_atendimento INT PRIMARY KEY,
id_medico INT,
id_paciente INT,
data_atendimento DATE,
descricao VARCHAR(100),
FOREIGN KEY (id_medico) REFERENCES Medicos(id_medico),
FOREIGN KEY (id_paciente) REFERENCES Pacientes(id_paciente)
);
Com relação à situação hipotética apresentada e aos comandos SQL, julgue o item seguinte.
Para aumentar em 10% o salário de todos os médicos que realizaram mais de 20 atendimentos, o comando a ser utilizado é:
UPDATE Medicos
SET salario = salario * 1.10
WHERE id_medico IN (
SELECT id_medico FROM Atendimentos
GROUP BY id_medico
HAVING COUNT(id_atendimento) > 20
);Provas
- SQLDMLSELECTCROSS JOIN e Produto Cartesiano
- SQLDMLSELECTDISTINCT
- SQLDMLSELECTIN, EXISTS, ALL, SOME e ANY
O Hospital Campo Grande está implementando um novo sistema de banco de dados para gerenciar informações sobre médicos, pacientes e atendimentos. O banco de dados apresenta as tabelas a seguir.
CREATE TABLE Medicos (
id_medico INT PRIMARY KEY,
nome VARCHAR(100),
especialidade VARCHAR(50),
salario DECIMAL(10,2)
);
CREATE TABLE Pacientes (
id_paciente INT PRIMARY KEY,
nome VARCHAR(100),
data_nascimento DATE
);
CREATE TABLE Atendimentos (
id_atendimento INT PRIMARY KEY,
id_medico INT,
id_paciente INT,
data_atendimento DATE,
descricao VARCHAR(100),
FOREIGN KEY (id_medico) REFERENCES Medicos(id_medico),
FOREIGN KEY (id_paciente) REFERENCES Pacientes(id_paciente)
);
Com relação à situação hipotética apresentada e aos comandos SQL, julgue o item seguinte.
O comando a seguir retorna os pacientes que nunca foram atendidos:
SELECT P.nome
FROM Pacientes P
WHERE P.id_paciente NOT IN (SELECT DISTINCT id_paciente FROM Atendimentos);Provas
Caderno Container