Buscar

ATIVIDADE 4 - BANCO DE DADOS EAD

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

• Pergunta 1 
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 2 
0 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: 
Full Join 
Resposta Correta: 
Right Outer Join 
Feedback 
da 
resposta: 
Sua resposta está incorreta. A alternativa correta envolve um 
RIGHT outer join pois existe um curso (última linha) sem aluno e 
como curso aparece por último, é tabela da direita. Se fosse 
inner joint, não haveriam linhas com valores null nos campos do 
join. O left outer join, teria alunos com cursos com valor nulo, 
isto é, alunos (esquerda) sem cursos. Um full join geraria valores 
null’s em ambos os lados, tanto em curso como em alunos. E ao 
escrever apenas join indica que é um inner join e daí não 
existiria linhas com valores null. 
 
 
• Pergunta 3 
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 4 
1 em 1 pontos 
 
As funções de agregação permitem extrair informações úteis a partir de um determinado 
conjunto de resultados, elas sumarizam os valores de determinados campos em um único 
valor e elas podem ser usadas em todos os dados de um conjunto de resultados ou então 
podem ser combinadas com as cláusulas GROUP BY. 
 
Em um sistema, existe um cadastro de clientes com os seguintes dados: 
CODIGO NOME CONTATO DATA_NASC SEXO BAIRRO 
1 Adriana Araújo 71 982213455 1987-02-03 F Barra 
2 Renato Nogueira 11 933321999 1977-07-09 M Morumbi 
3 Viviane Sales 11 987712022 1995-11-02 F Vila 
Madalena 
4 Marcela Campos 71 973514498 1980-01-19 F Barra 
5 Rodrigo Gonçalves 21 986121942 1992-05-10 M Centro 
6 Jorge Marinho 11 995439812 1990-06-07 M Morumbi 
7 Rodrigo Vieira 71 972318872 1985-08-27 M Centro 
8 Vanessa Aquino 21 933211346 1972-02-15 F Centro 
 
 
Para extrair nesta tabela a data de nascimento do cliente mais velho, a cláusula SELECT 
deve apresentar a seguinte função de agregação: 
 
Resposta Selecionada: 
MIN(DATA_NASC) 
Resposta Correta: 
MIN(DATA_NASC) 
Feedback da 
resposta: 
Resposta correta. A alternativa está correta. Ao se utilizar a 
função MIN será recuperada a menor data de nascimento do 
cliente, portanto a data de nascimento do cliente mais velho. 
 
 
• Pergunta 5 
1 em 1 pontos 
 
O comando SELECT pode conter várias cláusulas, por exemplo, para indicar as tabelas 
fonte dos dados (FROM), para estabelecer os filtros (WHERE), para ordenação dos dados 
 
(ORDER BY). Estas cláusulas e o emprego de diversos tipos de recursos torna este 
comando bastante útil para expressar as necessidades de informações de usuários de um 
banco de dados. 
 
A respeito dos recursos para construção de consultas avançadas com o SELECT, analise 
as sentenças a seguir e assinale (V) para a(s) verdadeira(s) e (F) para a(s) falsa(s): 
 
I. ( ) Subconsultas permitem que um comando de SELECT contenha outro comando de 
SELECT interno. Um exemplo, é usar subconsultas com um operador IN. 
II.( ) Os agrupamentos permitem resumir os dados agrupando registros, por exemplo, 
podemos agrupar os clientes por bairro e os bairros serão os agrupamentos 
III. ( ) Funções de agregação permite que os dados sejam consultados de forma mais 
simples, com um mecanismo análogo a uma tabela virtual 
IV. ( ) As junções são cálculos que permitem realizar por exemplo contabilizações, cálculo 
de média, maior valor e outros 
 
A partir das associações feitas anteriormente, assinale a alternativa que apresenta a 
sequência correta: 
Resposta Selecionada: 
V, V, F, F. 
Resposta Correta: 
V, V, F, F. 
Feedback 
da 
resposta: 
Resposta correta. A alternativa está correta. O itemI é 
verdadeiro pois subconsultas permite aninhar comandos 
SELECT, um comando SELECT pode conter outro mais interno 
e uma das formas usadas é de fato com o operador IN. O item II 
é verdadeiro pois agrupamentos resumem dados juntando 
registros com valores iguais nos campos do agrupamento e 
aplicando funções de agregação nos outros campos. O Item III é 
falso pois o mecanismo semelhante a uma tabela virtual que 
facilita o uso de consultas é uma VIEW e não as funções 
agregadas que servem para cálculos como totalização e 
contabilização. O item IV é falso pois as junções servem para 
combinar tabelas através das chaves estrangeiras. O recurso 
que realiza contabilizações são as funções de agregação. 
 
 
• Pergunta 6 
1 em 1 pontos 
 
As views permitem simplificar a forma como as consultas podem ser feitas pois uma view 
abstrai a complexidade das consultas, por exemplo consultas com muitas junções, funções de 
agregação e outras. Daí, uma consulta utiliza a view como se fosse uma tabela virtual cuja 
definição é baseada na consulta mais complexa. 
 
Em um determinado sistema de compras, foi criada a seguinte view. 
CREATE 
VIEW `COMPRAS_CLIENTES_VW AS (NOME, BAIRRO, DATA_NASC, S
EXO, COD_CIDADE, CIDADE, DATA_COMPRA, VALOR) AS SELECT CL
I.NOME, CLI.BAIRRO, CLI.DATA_NASC, CLI.SEXO, CID.COD_CIDAD
E, CID.DCR_CIDADE, CMP.DATA_COMPRA, CMP.VLR_COMPRA 
FROM CLIENTE CLI INNER JOIN COMPRA CMP ON 
CLI.COD_CLIENTE = CMP.COD_CLIENTE INNER JOIN CIDADE AS 
CID ON CLI.COD_CIDADE = CID.COD_CIDADE 
 
 
Assinale qual sentença apresenta uma consulta correta feita com o uso da View. 
 
Resposta 
Selecionada: 
 
SELECT NOME, 
COUNT(*) FROM COMPRAS_CLIENTES_VW GROUP 
BY NOME 
Resposta 
Correta: 
 
SELECT NOME, 
COUNT(*) FROM COMPRAS_CLIENTES_VW GROUP 
BY NOME 
Feedback da 
resposta: 
Resposta correta. A alternativa está correta pois o campo NOME 
está definido como um dos campos da VIEW no cabeçalho do 
CREATE VIEW e o count(*) vai contar quantas compras por 
cliente, via recurso de GROUP BY. 
 
 
• Pergunta 7 
0 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 compras, mesmo sem clientes, serão 
visualizados 
Resposta Correta: 
Todos os registros de clientes, mesmo que não tenham 
compras, serão visualizados 
Feedback 
da 
resposta: 
Sua resposta está incorreta. A alternativa está incorreta pois 
como 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 de clientes serão recuperados. Para se recuperar todos 
os registros de compras deveria ser usado o RIGHT OUTER 
JOIN usando a tabela de COMPRAS como base para a junção. 
Como toda compra possui um cliente, o tipo INNER JOIN traria 
todas as compras também mas não mostraria os clientes sem 
compras. Para mostrar registros de ambas as tabelas que não 
possuam correspondência na outra tabela deveria ser usado o 
FULL JOIN. Para recuperar apenas os clientes com compras 
também o INNER JOIN deveria ter sido usado.. 
 
 
• Pergunta 8 
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 VALOR 
totalizando toda a tabela (sem group by). 
 
 
• Pergunta 9 
1 em 1 pontos 
 
Uma cláusula “group by”, parte do comando SELECT, permite criar agrupamentos, isto é, 
vários registros com os mesmos valores são combinados em uma linha e os valores dos 
outros campos podem ser resumidos através de funções de agregação, gerando cálculo de 
totais, contagens, médias e outros. 
Em um sistema de livraria, existe uma tabela LIVRO que contém os seguintes campos: 
 
LIVRO (COD_LIVRO, TITULO, AUTOR, VALOR) 
 
 
Para recuperar a lista dos autores com o total de títulos de sua autoria presentes na livraria 
e o valor médio dos valores de seus títulos, a consulta deve ser: 
 
Resposta 
Selecionada: 
 
SELECT AUTOR, COUNT(*), AVG(VALOR) FROM 
LIVRO GROUP BY AUTOR 
Resposta Correta: 
SELECT AUTOR, COUNT(*), AVG(VALOR) FROM 
LIVRO GROUP BY AUTOR 
Feedback 
da 
resposta: 
Resposta correta. A alternativa está correta pois o agrupamento 
(group by) ocorre por AUTOR que é o campo junto ao SELECT 
e é requisitado contagem e média por autor tratadas com as 
funções de contagem (COUNT(*) ) e a média (AVG(VALOR) ) 
aplicadas corretamente. 
 
 
• Pergunta 10 
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 INNERJOIN tanto entre as tabelas CATEGORIA e 
PRODUTO quanto também com PRODUTO_COMPRA e que 
está sendo feita nesta resposta.

Continue navegando