Questão de Banco de Dados — Modelo relacional — FURB 2025
Banco de Dados›Modelo relacional
Código
qg496992
Banca
FURB
Órgão
Prefeitura de Florianópolis - SC
Ano
2025
Nível
Superior
Cargo
Auditor Fiscal de Tributos Municipais - Auditoria e Fiscalização - 2º Dia
Avalie as afirmativas a seguir sobre operações de conjunto (UNION, INTERSECT, EXCEPT), tratamento de valores NULL e duplicação de tuplas em SQL:I. A operação UNION DISTINCT, embora semanticamente equivalente a UNION, pode ser utilizada para explicitar a remoção de duplicatas entre os resultados de duas consultas. Já UNION ALL preserva todas as tuplas, inclusive duplicadas, com melhor desempenho.II. A linguagem SQL utiliza lógica de três valores (TRUE, FALSE, UNKNOWN) ao avaliar expressões lógicas, sendo UNKNOWN o resultado típico de comparações com NULL.III. Em SQL, ao comparar um valor com NULL, deve-se usar o operador de igualdade (=) ou desigualdade (<>), já que NULL é tratado como um valor especial.IV. Embora o modelo relacional clássico trate relações como conjuntos, o SQL permite tuplas duplicadas tanto em tabelas quanto em resultados de consultas, tratando seus dados como multiconjuntos (bags).É correto o que se afirma:
AIII, apenas.
BII, III e IV, apenas.
CI, II e IV, apenas.
DI, II, III e IV.
EI, apenas.
Revelar gabarito e comentário▾
GabaritoC — I, II e IV, apenas.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Operações de conjunto, NULL e duplicatas em SQL
Gabarito: letra C — estão corretas as afirmativas I, II e IV. A afirmativa III erra ao afirmar que se deve usar = ou <> para comparar com NULL; o correto é usar IS NULL / IS NOT NULL, pois a comparação direta resulta em UNKNOWN (lógica de três valores).
A questão testa o conhecimento sobre o comportamento do SQL com NULLs, duplicatas e operadores de conjunto. Vamos analisar cada afirmativa.
Afirmativa I — ✅ Correta
A operação UNION (sem cláusula) já remove duplicatas por padrão, sendo equivalente a UNION DISTINCT. O uso explícito de UNION DISTINCT é redundante, mas permitido para deixar a intenção clara. Já UNION ALL preserva todas as tuplas, inclusive repetidas, e tem melhor desempenho por não realizar a etapa de eliminação de duplicatas. Portanto, a afirmativa está correta.
Afirmativa II — ✅ Correta
SQL adota a lógica trivalente (TRUE, FALSE, UNKNOWN) porque o valor NULL representa ausência de informação. Qualquer comparação com NULL usando operadores relacionais (=, <>, <, > etc.) resulta em UNKNOWN, e não em TRUE ou FALSE. A afirmativa descreve corretamente esse comportamento.
Afirmativa III — ❌ Incorreta
NÃO CAIA NESSA!
A banca induz ao erro ao afirmar que se deve usar = ou <> para comparar com NULL. Na verdade, essas comparações sempre retornam UNKNOWN, nunca TRUE ou FALSE. O correto é utilizar os operadores IS NULL ou IS NOT NULL. Portanto, a afirmativa está errada.
Afirmativa IV — ✅ Correta
O modelo relacional puro (Codd) trata relações como conjuntos, sem duplicatas. No entanto, a linguagem SQL, por razões práticas, permite a existência de linhas duplicadas tanto em tabelas (a menos que haja chave primária ou restrição de unicidade) quanto em resultados de consultas – a menos que se use DISTINCT. Assim, o SQL trabalha com multiconjuntos (bags), e não com conjuntos. A afirmativa está correta.
Conclusão: Corretas: I, II e IV → alternativa C.
PEGA ESSA DICA!
Para comparar valores com NULL em SQL, lembre-se: nunca use = NULL ou <> NULL. Use sempre IS NULL ou IS NOT NULL. Esse é um dos erros mais comuns em provas de banco de dados.