Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados Relacionais — TJ-PI 2025

Banco de DadosBanco de Dados Relacionais
Código
qg614885
Banca
TJ-PI
Órgão
TJ-PI
Ano
2025
Nível
Superior
Cargo
Residente Tecnológico
No sistema de gerenciamento de projetos do TJ-PI, existe a seguinte estrutura de tabelas:SERVIDOR(id_servidor, nome)PROJETO(id_projeto, titulo)ALOCACAO (id_servidor, id_projeto)Deseja-se listar os nomes dos servidores que estão alocados em TODOS os projetos cadastrados no sistema. Dessa forma, assinale a alternativa da consulta SQL que implementa corretamente essa operação:
  1. ASELECT s.nomeFROM SERVIDOR AS SJOIN ALOCACAO AS a ON s.id servidor = a.id servidorJOIN PROJETO AS p ON p.id projeto = a.id projeto;
  2. BSELECT DISTINCT s.nomeFROM SERVIDOR AS S, PROJETO AS p, ALOCACAO AS aWHERE s.id servidor = a.id servidorAND p.id_projeto = a.id_projeto;
  3. CSELECT s.nomeFROM SERVIDOR ASSWHERE EXISTS (SELECT *FROM PROJETO AS pWHERE EXISTsSELECTFROM ALOCACAO AS aWHERE a.id servidor = s.id servidorAND a.id_projeto = p.id_projeto));
  4. DSELECT s.nomeFROM SERVIDOR AS sWHERE EXISTS (SELECT *FROM PROJETO AS pWHERE NOT EXISTS (SELECT *FROM ALOCACAO AS aWHERE a.id servidor = s.id_servidorAND a.id_projeto = p.id_projeto) );
  5. ESELECT s.nomeFROM SERVIDOR AS SWHERE NOT EXISTS (SELECT * FROM PROJETO AS p WHERE NOT EXISTS ( SELECT * FROM ALOCACAO AS a WHERE a.id servidor = s.id_servidor AND a.id_projeto = p.id_projeto ) );
Revelar gabarito e comentário

GabaritoE — SELECT s.nome FROM SERVIDOR AS S WHERE NOT EXISTS ( SELECT * FROM PROJETO AS p WHERE NOT EXISTS ( SELECT * FROM ALOCACAO AS a WHERE a.id servidor = s.id_servidor AND a.id_projeto = p.id_projeto ) );

Link permanente: /questoes/qg614885