Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FGV 2023

Banco de DadosSQL
Código
fg065333
Banca
FGV
Órgão
PGM - Niterói
Ano
2023
Nível
Superior
Cargo
Analista de Tecnologia da Informação
Considere o comando SQL a seguir.SELECT a.X, b.Y FROM T1 a, T2 b WHERE a.R = b.SDado que essa consulta pode ser expressa usando as operações primitivas da Álgebra Relacional, a lista que contém as operações necessárias e suficientes para essa conversão é, em ordem alfabética:
  1. ADiferença, Produto, Projeção;
  2. BProduto, Projeção, União;
  3. CProjeção, União;
  4. DProduto, Projeção, Seleção;
  5. ESeleção, União.
Revelar gabarito e comentário

GabaritoD — Produto, Projeção, Seleção;

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”.

Álgebra Relacional: correspondência com SQL

Gabarito: letra D. A consulta SQL SELECT a.X, b.Y FROM T1 a, T2 b WHERE a.R = b.S é equivalente, na álgebra relacional, a uma sequência de operações: produto cartesiano entre as tabelas T1 e T2, seguido de seleção (filtro condicional a.R = b.S) e, por fim, projeção das colunas desejadas (a.X, b.Y). Essa correspondência é clássica e está diretamente alinhada com os fundamentos da álgebra relacional.

A banca cobra o conhecimento de como as cláusulas SQL se traduzem em operações algébricas primitivas. A chave é lembrar que:

  • FROM T1 a, T2 bproduto cartesiano (operação binária entre as tabelas)

  • WHERE ...seleção (filtra linhas com base em condição)

  • SELECT ...projeção (seleciona colunas específicas)

A ordem na álgebra pode variar, mas as operações necessárias e suficientes são exatamente essas três.

Operação

Função na consulta SQL

Exemplo no comando

Produto

Combina todas as tuplas de T1 e T2 (FROM T1 a, T2 b)

T1 × T2

Seleção

Filtra linhas conforme condição (WHERE a.R = b.S)

σ(a.R = b.S)

Projeção

Seleciona colunas específicas (SELECT a.X, b.Y)

π(a.X, b.Y)

  1. 1Produto cartesiano (FROM)
  2. 2Seleção (WHERE)
  3. 3Projeção (SELECT)
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Inclui a operação diferença, que não é necessária para essa consulta. A diferença é usada para retirar tuplas de uma relação que aparecem em outra (ex.: subconsulta com NOT EXISTS ou EXCEPT), o que não ocorre aqui.

Alternativa B — ❌ Incorreta

Substitui a seleção pela união. União é usada para combinar tuplas de duas relações compatíveis (mesmo esquema), não para filtrar linhas com base em condição. Aqui, a condição do WHERE exige seleção, não união.

Alternativa C — ❌ Incorreta

Apenas projeção e união. Faltam o produto cartesiano (para combinar as tabelas do FROM) e a seleção (para aplicar a condição a.R = b.S). União novamente é inadequada.

Alternativa D — ✅ Correta ⟵ GABARITO

Contém as três operações necessárias e suficientes: produto (binária), projeção (unária) e seleção (unária). O produto gera todas as combinações de tuplas; a seleção filtra aquelas que satisfazem a.R = b.S; a projeção extrai apenas as colunas pedidas. Nenhuma outra operação (diferença, união) é requerida.

Alternativa E — ❌ Incorreta

Troca o produto pela união. União não combina tuplas de tabelas diferentes com esquemas distintos (T1 e T2 têm colunas de nome e tipo possivelmente diferentes), e a condição do WHERE exige seleção, mas o produto é indispensável para o FROM com duas tabelas.

PEGA ESSA DICA!

Na prova, monte o mapeamento mental: FROM com mais de uma tabela = produto; WHERE = seleção; SELECT (com colunas) = projeção. Decore esta tríade — ela cai em 90% das questões de álgebra relacional! Se aparecer UNION ou EXCEPT, aí entram operações extras.

Gabarito: letra D

Link permanente: /questoes/fg065333