Buscar

Atividade 4 Banco de Dados Unifacs 2º Semestre

Prévia do material em texto

Usuário ELY MARCILIO SANTOS DE SOUZA 
Curso GRA0244 BANCO DE DADOS PTA - 202010.ead-3868.03 
Teste ATIVIDADE 4 (A4) 
Iniciado 31/03/20 22:42 
Enviado 01/04/20 00:20 
Status Completada 
Resultado da tentativa 10 em 10 pontos 
Tempo decorrido 1 hora, 38 minutos 
Resultados exibidos Respostas enviadas, Respostas corretas, Comentários 
• Pergunta 1 
1 em 1 pontos 
 
Dados em tabelas diferentes podem compor um conjunto de resultados em 
um comando de SELECT através das junções. Alguns tipos de junções são 
as junções internas e as junções externas, estas últimas podem ser pela 
esquerda ou pela direita. 
Em um sistema de uma universidade existe o cadastro de Alunos e o de 
Cursos, onde em aluno pode conter apenas um curso e em curso pode 
conter vários cursos. Em uma consulta foi feita uma junção (join) entre as 
tabelas Alunos e Cursos e na consulta SELECT, Alunos e Cursos estão 
escritas nesta ordem (Alunos primeiro, antes de Cursos). O resultado da 
consulta está expresso na tabela a seguir: 
Matrícula Nome Cod_Curso Dcr_Curso 
322871 Joana Vieira 2 Engenharia Elétrica 
322609 Márcio Nogueira 2 Engenharia Elétrica 
212320 Cristiano Azevedo 12 Direito 
212201 Lúcia Vergamini 12 Direito 
NULL NULL 4 Gestão Ambiental 
 
Quadro - Resultado de consulta com junção entre Alunos e Cursos 
Fonte: Elaborado pelo autor (2019). 
Qual foi a junção realizada nesta consulta? 
 
Resposta Selecionada: 
Right Outer Join 
Resposta Correta: 
Right Outer Join 
Feedback 
da 
resposta: 
Resposta correta. A resposta está correta pois perceba que na última 
linha existe o curso Gestão Ambiental que não possui aluno 
correspondente, e o curso está a direita na escrita do SELECT porque 
aparece depois de aluno (está à esquerda). E se o campo de aluno 
ficou NULL é por que os valores direita prevaleceram (right outer 
join). 
 
 
• Pergunta 2 
1 em 1 pontos 
 
A criação de consultas em um banco de dados através do comando 
SELECT pode utilizar diversos recursos, ordenação, agrupamentos, filtros e 
outros. Um destes recursos, que permite consultas mais avançadas, é o uso 
de subconsultas em que um comando de SELECT pode conter um outro 
comando SELECT em alguma de suas outras cláusulas. 
Em um sistema de uma loja, imagine que existe uma tabela de COMPRAS 
com os seguintes dados. 
 
 
 
NOME DATA VLR_COMPRA 
Renato Nogueira 12/03/2019 35.60 
Renato Nogueira 21/03/2019 120.70 
Renato Nogueira 25/04/2019 81.50 
Rodrigo Gonçalves 14/03/2019 57.80 
Rodrigo Gonçalves 04/04/2019 31.00 
Vanessa Aquino 16/03/2019 23.70 
Vanessa Aquino 10/04/2019 92.50 
 
 
 Fonte: Elaborado pelo Autor (2019) 
 
Para avaliar o volume de vendas dos clientes, o setor de marketing solicitou 
uma listagem com os clientes e o seu volume total de compras e ordenados 
pelo volume de compras em ordem decrescente. A consulta que reflete esta 
necessidade do setor de marketing é 
 
Resposta 
Selecionada: 
 
SELECT * 
 FROM (SELECT NOME, 
SUM(VLR_COMPRA) as TOTAL 
 FROM COMPRAS) AS 
VOLUME_COMPRAS 
 ORDER BY TOTAL DESC 
Resposta Correta: 
SELECT * 
 FROM (SELECT NOME, 
SUM(VLR_COMPRA) as TOTAL 
 FROM COMPRAS) AS 
 
VOLUME_COMPRAS 
 ORDER BY TOTAL DESC 
Feedback 
da resposta: 
Resposta correta. A alternativa está correta. Perceba que a 
subconsulta realiza a totalização de vendas e abrevia o somatório 
SUM(VLR_COMPRA) como TOTAL. Este campo é o empregado na 
ordenação com a palavra DESC, em ordem decrescente, os maiores 
primeiro. 
 
• Pergunta 3 
1 em 1 pontos 
 
As funções de agregação são úteis para contabilizar, totalizar ou avaliar 
registros em consultas construídas com o comando SELECT, com ou sem a 
cláusula GROUP BY. Quando usada sem agrupamentos, considera todos 
os registros dentro de um conjunto de resultados. Quando usada com group 
by, resumem os registros de um agrupamento em um valor conforme o 
objetivo da função. 
Em relação às funções de agregação, realize a associação de cada uma 
delas com as afirmações na sequência: 
 
I. SUM 
II. COUNT 
III. AVG 
IV. MAX 
 
Associe as funções de agregação com as afirmações sobre estes comandos 
 
( ) Podem ser aplicadas tendo como parâmetro o “*” 
( ) Retorna o maior valor de um conjunto de dados 
( ) Usada para totalizar valores 
( ) Usada para o cálculo de média de valores 
 
 
Assinale a alternativa que apresenta a sequência correta: 
 
Resposta Selecionada: 
II, IV, I, III 
Resposta Correta: 
II, IV, I, III 
Feedback 
da 
resposta: 
Resposta correta. A alternativa está correta. Comentando na 
sequência. O item II, COUNT pode de fato ser usado na forma 
count(*) pois ele realiza uma contagem de registros.O item IV, MAX, 
de fato calcula o valor máximo dentro de um conjunto de valores. 
SUM (Item I) é usado para totalizar, fazer somatório de valores. E 
AVG (item III) é uma abreviação de average, que representa a média 
de um conjunto de valores. 
 
 
• Pergunta 4 
1 em 1 pontos 
 
O banco de dados serve de fonte para atender às diversas demandas de 
setores informatizados por um determinado sistema, por exemplo, um setor 
de recursos humanos pode recuperar o total da folha de pagamento, um 
setor de vendas pode requisitar a quantidade de produtos vendidos por 
categoria e um setor de marketing pode requisitar alguns relatórios sobre os 
clientes. 
Em um sistema de locação de automóveis, a tabela de cliente apresenta o 
seguinte formato e com uma breve amostra de dados. 
 
Cod Nome Sexo Idade Cidade 
2 Ademar M 22 São Paulo 
1 Fabrício M 41 Salvador 
5 Joelma F 60 Rio de Janeiro 
4 Carlos M 21 São Paulo 
3 Adriana F 30 Curitiba 
 
 
O setor de marketing está avaliando as regiões onde a empresa atua e o 
volume de clientes em cada região. Daí, surgiu a necessidade de recuperar 
as cidades nesta tabela e para cada cidade, o total de clientes existentes. A 
consulta que melhor atende à esta necessidade é: 
 
Resposta 
Selecionada: 
 
SELECT CIDADE, COUNT(COD) FROM 
CLIENTE GROUP BY CIDADE 
Resposta Correta: 
SELECT CIDADE, COUNT(COD) FROM 
CLIENTE GROUP BY CIDADE 
Feedback 
da resposta: 
Resposta correta. A alternativa está correta. Para atender a esta 
demanda de para cada cidade recuperar a quantidade de clientes é 
necessário realizar uma consulta com agrupamento (CROUP BY), no 
caso um agrupamento por cidade e contabilizando (COUNT) valores 
de outros campos. 
 
 
• Pergunta 5 
1 em 1 pontos 
 
Os bancos de dados permitem que dados básicos, provenientes dos 
processos operacionais de um negócio, possam ser processados e 
sumarizados para se obter informações de nível gerencial e estratégico. Por 
exemplo, a quantidade de carros locados por semana em uma locadora, a 
quantidade de alunos matriculados em uma escola, além de outras 
situações ilustram o que pode ser processado facilmente com consultas via 
 
SELECT. 
Uma determinada Fintech realiza empréstimos para pessoas de uma 
comunidade e a tabela EMPRESTIMO mostrada a seguir apresenta os 
registros de empréstimos realizados: 
CPF Data Sexo Valor 
02311220012 10/04/2019 M R$ 1.200,00 
91311770028 13/04/2019 F R$ 3.500,00 
84911560025 21/04/2019 F R$ 4.100,00 
73923560458 23/04/2019 M R$ 1.000,00 
64821569228 02/05/2019 M R$ 1.600,00 
 
 
A consulta que calcula o total de empréstimo em reais realizado pela Fintech 
é 
Resposta Selecionada: 
SELECT SUM(valor) from EMPRESTIMO 
Resposta Correta: 
SELECT SUM(valor) from EMPRESTIMO 
Feedback da 
resposta: 
Resposta correta. A alternativa está correta pois basta que seja 
usada a função SUM associada ao campo VALORtotalizando toda 
a tabela (sem group by). 
 
 
• Pergunta 6 
1 em 1 pontos 
 
Em um banco de dados, os registros são armazenados e decompostos em 
tabelas e o relacionamento entre elas ocorre através de chaves estrangeiras 
que permitem combinar os dados. Por exemplo, os dados de cliente estão 
armazenados em uma tabela e os dados de compras estão armazenados 
em outra tabela, para se listar os dados de clientes com os dados de 
compras em conjunto, usa-se a chave estrangeira código do cliente para 
este elo. 
Neste sistema de loja, a seguinte consulta foi realizada: 
 
 SELECT CLI.*, COMP.* 
 FROM CLIENTE AS CLI LEFT OUTER JOIN COMPRAS 
AS COMP 
 ON CLI.COD_CLIENTE = COMP.COD_CLIENTE 
 
A respeito desta consulta assinale a afirmação correta: 
 
Resposta 
Selecionada: 
 
Todos os registros de clientes, mesmo que não tenham 
compras, serão visualizados 
Resposta Correta: 
 
Todos os registros de clientes, mesmo que não tenham 
compras, serão visualizados 
Feedback 
da resposta: 
Resposta correta. A alternativa está correta pois o tipo de junção 
empregado é o LEFT OUTER JOIN, isto é, a tabela da esquerda vai 
ser usada como base e como CLIENTE foi escrita primeiro (é a 
tabela da esquerda) todos os registros dela serão recuperados. 
 
• Pergunta 7 
1 em 1 pontos 
 
As cláusulas WHERE, ORDER BY, GROUP BY, JOIN e outras são 
exemplos de partes de um SELECT e cada uma fornece algum recurso que 
traduz alguma necessidade ao se realizar consultas sobre os dados. Ao 
consultar as tabelas de CARRO e FABRICANTE em um sistema de 
locadoras, foi realizada a seguinte consulta: 
 
SELECT F.FABRICANTE, COUNT(*), AVG(C.VLR_LOCACAO) 
FROM CARRO as C INNER JOIN FABRICANTE as F 
ON (C.COD_FABRICANTE = F.COD_FABRICANTE) 
WHERE ANO > 2015 
AND AR_COND = ‘S’ 
GROUP BY FABRICANTE 
 
Considerando esta consulta, analise e assinale nas sentenças a seguir (V) 
para a(s) verdadeira(s) e (F) para a(s) falsa(s). 
 
I. ( ) Os carros do ano 2015 serão considerados na consulta 
II. ( ) Será mostrada a contagem de carros conforme condições e agrupados 
por fabricante 
III. ( ) Apenas carros com ar condicionado serão contabilizados 
IV. ( ) Apenas carros que tiverem um fabricante cadastrado serão 
considerados 
A partir das associações feitas anteriormente, assinale a alternativa que 
apresenta a sequência correta: 
 
Resposta Selecionada: 
F, V, V, V. 
Resposta Correta: 
F, V, V, V. 
Feedback 
da 
resposta: 
Resposta correta. A alternativa está correta. O item I é falso pois 
carros do ano de 2015 não atendem à condição ANO > 2015, deveria 
ser ANO >= 2015. O item II é verdadeiro, a consulta faz um 
agrupamento por fabricante contando os registros que atendem às 
condições em WHERE. O item III é verdadeiro pois a condição 
AR_COND=’S’ é indicativo que o carro possui ar condicionado. E o 
item IV é verdadeiro pois como é feito um INNER JOIN, apenas 
 
registros que possuem valores e são correspondentes são válidos para 
o resultado. 
 
• Pergunta 8 
1 em 1 pontos 
 
Um banco de dados é um conjunto de componentes definidos de diversas 
formas via comandos de DDL. Por exemplo, dentre os componentes existem 
as tabelas, os procedimentos armazenados e as visões, dentre outros, cada 
um com suas finalidades. Sobre as visões, qual das sentenças a seguir 
representa uma das vantagens de usar estes componentes em um banco de 
dados? 
 
Resposta 
Selecionada: 
 
Permite que consultas mais complexas sejam manipuladas de 
forma mais simples 
Resposta Correta: 
Permite que consultas mais complexas sejam manipuladas de 
forma mais simples 
Feedback da 
resposta: 
Resposta correta. A alternativa está correta pois com a criação de 
uma view, uma consulta complexa é encapsulada e os usuários 
passam a ter um mecanismo mais simples para consultar os dados de 
tabelas. 
 
 
• Pergunta 9 
1 em 1 pontos 
 
A modelagem de um banco de dados permite compreender como as tabelas 
estão relacionadas entre si, permite identificar chaves primárias e as chaves 
estrangeiras envolvidas nos relacionamentos e assim serve de suporte para 
construção de consultas, especificamente para saber quais campos usar em 
junções. 
 
Em um banco de dados, a parte referente ao cadastro de produtos associado 
ao itens de compras (tabela PRODUTO_COMPRA) está mostrado a seguir. 
 
 
 
 
 
 
 
 
 
 
 
 
 Fonte: Elaborado pelo Autor (2019) 
 
Em certo setor da empresa, houve a necessidade de recuperar todos os 
produtos (com sua descrição e a descrição da sua categoria) que possuem 
compra e apenas aqueles que de fato possuem compras associadas e que 
possuem a categoria cadastrada. A cláusula de junção após a palavra chave 
FROM na consulta deve ser: 
Resposta 
Selecionada: 
 
FROM (CATEGORIA as C INNER JOIN PRODUTO as 
P 
.ON C.COD_CATEGORIA = P.COD_CATEGORIA) 
INNER JOIN PODUTO_COMPRA AS PC 
ON P.COD_PRODUTO = PC.COD_PRODUTO) 
Resposta Correta: 
FROM (CATEGORIA as C INNER JOIN PRODUTO as 
P 
.ON C.COD_CATEGORIA = P.COD_CATEGORIA) 
INNER JOIN PODUTO_COMPRA AS PC 
ON P.COD_PRODUTO = PC.COD_PRODUTO) 
Feedback 
da 
resposta: 
Resposta correta. A alternativa está correta pois pela especificação da 
consulta, que envolve recuperar todos os produtos e apenas os produtos 
que possuem compras associadas e com as categorias cadastradas deve 
ser expressa como INNER JOIN tanto entre as tabelas CATEGORIA e 
PRODUTO quanto também com PRODUTO_COMPRA e que está 
sendo feita nesta resposta. 
 
 
• Pergunta 10 
1 em 1 pontos 
 
O uso de agrupamentos é um recurso utilizado ao criar consultas com 
SELECT para sumarizar dados e realizar contabilizações ou totalizações, e 
a cláusula usada é o GROUP BY. Uma demanda comum é, ao realizar 
agrupamentos, realizar algum filtro sobre os campos calculados. Por 
 
exemplo, ao avaliar os clientes e o total de compras calculado via uma 
função SUM, pode-se querer filtrar apenas os clientes com este volume de 
compras acima de R$500,00. 
A palavra chave usada na cláusula que permite realizar este tipo de filtro 
sobre campos calculados por funções de agregação é a: 
Resposta Selecionada: 
HAVING 
Resposta Correta: 
HAVING 
Feedback 
da resposta: 
 Resposta correta. A alternativa está correta. A cláusula HAVING é a 
alternativa que se tem para realizar filtro sobre um campo calculado. 
Por exemplo, para o caso do exemplo, uma cláusula having seria 
“HAVING SUM(VLR_COMPRA) >= 500”. 
 
 
Quarta-feira, 1 de Abril de 2020 00h20min12s BRT

Mais conteúdos dessa disciplina