Buscar

BANCO DE DADOS - ATIVIDADE 4

Prévia do material em texto

• Pergunta 1 
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, SEXO, COD_CIDADE, C
IDADE, DATA_COMPRA, VALOR) AS 
SELECT CLI.NOME, CLI.BAIRRO, CLI.DATA_NASC, CLI.SE
XO, CID.COD_CIDADE, 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 2 
1 em 1 pontos 
 
Uma visão (view) é um dos componentes que pode ser criado em um banco de dados junto 
com as tabelas, stored procedures, usuários e outros. Uma view, por ser um componente 
que ajuda a estruturar a forma como os dados são consultados, é definido por comandos de 
DDL e existe uma forma e comando específico para esta criação. 
Sobre o comando para criação de Views, analise as sentenças a seguir e assinale (V) para 
a(s) verdadeira(s) e (F) para a(s) falsa(s). 
 
I. ( ) O comando para a criação de uma view é o “ADD VIEW” 
II. ( ) Campos das views precisam ter os mesmos nomes da consulta usada para defini-la 
III. ( ) Ao ser criada, os dados da view são copiados para uma estrutura própria 
IV. ( ) Uma view pode ser criada com base em outra view 
 
A partir das associações feitas anteriormente, assinale a alternativa que apresenta a 
sequência correta: 
 
Resposta Selecionada: 
F, F, F, V. 
Resposta Correta: 
F, F, F, V. 
Feedback 
da resposta: 
Resposta correta. A alternativa é a correta. Na sequência dos 
itens, o item I é falso, o comando para criação de view é 
“CREATE VIEW”, análogo à criação de tabela. O item II é falso, 
 
os campos das views podem ter nomes mais intuitivos, diferentes 
dos campos de tabelas que muitas vezes são “codificados”. O 
item III é falso, as views não possuem dados, elas simplesmente 
usam os dados das tabelas como se fosse uma “tabela virtual”. O 
item IV é verdadeiro, de fato uma view pode conter outra view em 
sua definição. 
 
• Pergunta 3 
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 item I é 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 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 
 
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 menordata de nascimento do 
cliente, portanto a data de nascimento do cliente mais velho. 
 
• 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 
 
Em um servidor de dados, os dados estão armazenados em tabelas e pelas questões de 
normalização, cada tabela trata especificamente dados relacionados com suas respectivas 
entidades. Quando ocorre a necessidade por informações mais abrangentes, os dados de 
tabelas diferentes precisam compor um resultado conjunto e o mecanismo que permite 
combinar dados de várias tabelas são as junções que podem ser de vários tipos. 
Considerando uma parte do modelo de um sistema de clínica médica, referente aos médicos 
e especialidades, tem-se as seguintes tabelas: 
 
MEDICO (COD_MEDICO, CRM, NOME, CONTATO, COD_ESPECIALIDADE) 
 ESPECIALIDADE (COD_ESPECIALIDADE, DCR_ESPECIALIDADE) 
 
Todo médico está associado a uma especialidade, mas na clínica podem existir 
especialidades que não possuem médicos. A consulta que recupera todas as especialidades 
com os médicos relacionados, recuperando mesmo as especialidades sem médico 
cadastrado é: 
 
Resposta 
Selecionada: 
 
SELECT * FROM MEDICO as M RIGHT OUTER 
JOIN ESPECIALIDADE as E 
 ON E.COD_ESPECIALIDADE = 
M.COD_ESPECIALIDADE 
 
Resposta Correta: 
SELECT * FROM MEDICO as M RIGHT OUTER 
JOIN ESPECIALIDADE as E 
 ON E.COD_ESPECIALIDADE = 
M.COD_ESPECIALIDADE 
Feedback 
da resposta: 
Resposta correta. A alternativa está correta. As tabelas escritas 
no join estão na sequencia Medico primeiro (esquerda) e 
Especialidade depois (direita) e a junção foi feita pela direita 
(RIGHT OUTER JOIN), portanto usando a tabela especialidade 
como base para junção. 
 
• Pergunta 8 
0 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 VLR_COMPRA DESC 
Resposta Correta: 
 
SELECT * 
 FROM (SELECT NOME, 
SUM(VLR_COMPRA) as TOTAL 
 FROM COMPRAS) AS 
VOLUME_COMPRAS 
 ORDER BY TOTAL DESC 
Feedback 
da 
resposta: 
Sua resposta está incorreta. A alternativa está incorreta, pois a 
alternativa correta realiza a totalização de vendas na subconsulta 
abreviando o somatório SUM(VLR_COMPRA) como TOTAL. E 
este campo TOTAL deve ser usado para a ordenação 
decrescente (ORDER BY TOTAL DESC). Usar a função AVG 
calcularia a média de compras e o marketing solicitou o volume 
total de compras. Na cláusula ORDER BY não pode ser usado 
VLR_COMPRA pois ele é um campo na tabela COMPRAS, e não 
o total calculado na subconsulta. E ao usar a palavra ASC a 
ordenação será crescente. 
 
• Pergunta 9 
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 10 
1 em 1 pontos 
 
O comando SELECT é bastante versátil e por meio das suas cláusulas de WHERE, ORDER 
BY, GROUP BY, JOIN permite especificar filtros, ordenações, agrupamentos e junções 
respectivamente. Estes e outros recursos oferecem suporte ao usuário para escrever suas 
consultas. 
Em relação a algumas das cláusulas, comandos e palavras chave para escrita dos 
comandos, realize a associação entre os itens a seguir e as afirmações na sequência: 
 
 
I. HAVING 
II. DESC 
III. AVG 
IV. LEFT 
 
Associe as funções de agregação com as afirmações sobre estes comandos: 
 
( ) Permite especificar qual o tipo de junção deve ser executada 
( ) Estabelece ordem decrescente na cláusula ORDER BY 
( ) Função de agregação que pode ser usada com GROUP BY 
( ) Permite editar filtros em consultas com GROUP BY 
 
Assinale a alternativa que apresenta a sequência correta: 
Resposta Selecionada: 
IV, II, III, I 
Resposta Correta: 
IV, II, III, I 
Feedback 
da resposta: 
Resposta correta. A alternativa está correta. Comentando na 
sequência. O item IV, LEFT é usado junto com OUTER JOIN 
(LEFT OUTER JOIN) para especificar um certo tipo de junção. O 
item II (DESC) é usado com os campos na cláusula ORDER BY 
para especificar o ordenação decrescente. Caso a ordenação 
seja crescente, a palavra seria ASC. Item III (AVG) é de fato uma 
função de agregação para cálculo de média. E o item I (HAVING) 
permite filtrar valores provenientes de cálculo de função agregada 
em consultas que possuem o group by.

Continue navegando