Prévia do material em texto
Exercícios - União de conjuntos em SQL
A linguagem SQL (Structured Query Language) implementa operadores que atuam sobre
conjuntos, como, por exemplo: UNION, INTERSECT, EXCEPT, etc. Sobre a operação de
união, assinale a alternativa correta:
Você acertou!
C. Retorna todas as linhas da consulta 1 e da consulta 2 removendo as duplicadas.
A alternativa correta é a que retorna todas as linhas da consulta 1 e da consulta 2 removendo
as duplicadas. Para manter as duplicadas, precisa-se adicionar o ALL na cláusula. Além disso,
retornar as linhas da consulta 1 que não estão na consulta 2 é papel da cláusula EXCEPT.
O comando UNION foi utilizado para a construção de uma consulta que retornava
a quantidade de pessoas que são tanto funcionários como clientes de uma determinada
empresa. Sabendo que a tabela funcionário contém 30 linhas e que a tabela cliente também
contém 30 linhas, qual das opções a seguir indica o número de linhas retornadas pela
consulta, sendo que 20% dos funcionários são também clientes?
Você acertou!
A. 54.
O primeiro passo é calcular 20% de 30 linhas, que é 6 linhas. Esta é a quantidade de linhas
repetidas que serão removidas do resultado final. Como temos 30 linhas na primeira consulta
e 30 na segunda consulta, o total é de 60 linhas menos as 6 repetidas, logo, 54 linhas. A
resposta seria 57 se a quantidade de funcionários que são clientes fosse 10%. 30 seria
retornado caso todos os funcionários fossem clientes. Por fim, 27 e 24 só poderiam ser
retornados caso as tabelas tivessem 15 linhas cada, ao invés de 30, e a quantidade de
funcionários que são clientes fosse 10% e 20%, respectivamente.
Buscando otimizar uma consulta, o administrador de banco de dados pode gerar planos de
execução e analisá-los buscando melhorar uma operação específica. Nesse sentido, qual é o
comando do PostgreSQL que executa uma consulta e a analisa?
Você acertou!
D. ANALYZE.
O comando que realiza essa operação é o ANALYZE. O EXPLAIN faz o mesmo, entretanto,
estima todos os dados sem executar a aplicação. O COUNT, por exemplo, é utilizado para
contar o número de linhas retornadas por uma consulta.
O diagrama de Venn é uma forma de representar conjuntos graficamente. Dois diagramas
de Venn foram montados tendo como base os conjuntos A = {43, 80, 86, 61, 28, 4} e B = {16,
58, 28, 35, 18, 79}. O primeiro diagrama é resultado da operação A UNION B, enquanto o
segundo, da operação A UNION ALL B. Nesse sentido, qual das opções a seguir indica
corretamente o número de elementos dos diagramas da operação UNION e UNION ALL,
respectivamente?
Você acertou!
D. 11 e 12.
A operação UNION não mantém elementos iguais. Neste caso, o conjunto de solução seria C
= {43, 80, 86, 61, 28, 4, 16, 58, 35, 18, 79}, o qual contém 11 elementos. Todavia, a operação
UNION ALL mantém os iguais, assim, manteria o elemento 28, o qual é o único repetido.
Então, o conjunto teria 12 elementos. Sendo assim, a resposta seria 11 e 12 elementos,
respectivamente.
A álgebra relacional também contém diferentes operações sobre conjuntos, como, por
exemplo, a operação de união. Esta operação é representada por U e retorna uma relação
contendo todas as tuplas que ocorrem em uma relação A e B. Sobre a operação de união,
assinale a alternativa correta:
Você acertou!
A. A operação de união é comutativa, ou seja, R1 U R2 é equivalente a R2 U R1.
A resposta correta é a que diz que a operação de união é comutativa. Além disso, essa
operação pode ser aplicada a vários conjuntos e não apenas a dois. Ela leva em consideração
apenas o tipo do atributo, e não o seu nome. Seu resultado herda nomes da primeira tabela
utilizada, e não da segunda. Por fim, ela remove os repetidos.