Analise a operação a seguir. Π sexo, salario (o-DNR = 5 ...

Próximas questões
Com base no mesmo assunto
Q322046 Banco de Dados
Analise a operação a seguir.
Π sexo, salario (o-DNR = 5 (FUNCIONÁRIO) )
Em álgebra relacionai, considerando π como a operação de PROJEÇÃO e δ como a operação de SELEÇÃO, assinale a opção que apresenta a consulta SQL referente à operação acima. 
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a A.

Para entender completamente essa questão, é importante ter um bom conhecimento sobre a álgebra relacional e suas operações, como projeção e seleção, além de saber como essas operações são traduzidas para consultas SQL.

Na álgebra relacional, a operação π (projeção) é usada para selecionar certas colunas de uma tabela, enquanto a operação σ (seleção) é utilizada para selecionar linhas que satisfazem uma condição específica. No enunciado, temos uma seleção seguida de uma projeção.

Vamos agora justificar cada alternativa:

Alternativa A:
SELECT DISTINCT sexo, salario FROM FUNCIONÁRIO WHERE dnr = 5;
Esta é a alternativa correta. A cláusula WHERE aplica a condição de seleção dnr = 5, e o SELECT DISTINCT garante que os resultados não tenham duplicatas, o que corresponde à operação de projeção na álgebra relacional.

Alternativa B:
SELECT sexo, salario FROM FUNCIONÁRIO WHERE dnr = 5;
Embora esta alternativa também selecione as colunas corretas e aplique a condição necessária, ela não usa DISTINCT. Isso significa que pode haver duplicatas nos resultados, o que não corresponde precisamente à operação de projeção da álgebra relacional, que implica em um conjunto de resultados sem duplicatas.

Alternativa C:
SELECT DISTINCT sexo, salario FROM FUNCIONÁRIO HAVING dnr = 5;
A cláusula HAVING é usada normalmente com GROUP BY para filtrar resultados agregados, e não é apropriada para esta consulta. A condição de seleção deveria estar na cláusula WHERE.

Alternativa D:
SELECT sexo, salario FROM FUNCIONÁRIO HAVING dnr = 5;
Novamente, o uso de HAVING no lugar de WHERE está incorreto, pois HAVING é utilizado para filtrar grupos de resultados, não linhas individuais sem agrupamento.

Alternativa E:
SELECT sexo, salario FROM FUNCIONÁRIO GROUP BY sexo, salario HAVING dnr = 5;
Esta alternativa mistura conceitos de agrupamento que não são necessários aqui. O uso de GROUP BY e HAVING não é apropriado porque a questão não envolve agrupamento ou funções agregadas.

Espero que esta explicação tenha ajudado a entender a questão e a escolha da alternativa correta. Gostou do comentário? Deixe sua avaliação aqui embaixo!

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Álgebra relacional sempre considera como DISTINCT.

O gabarito é a letra A.

 

Analisando as demais alternativas:

 

B - Faltou o DISTINCT antes dos campos (necessário por causa da projeção).

C - Incluiu o HAVING sem GROUP BY.

D - Incluiu o HAVING sem GROUP BY.

E - Incluiu salario no GROUP BY e incluiu dnr no HAVING, sem ele ter aparecido no GROUP BY. 

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo