Buscar

ATIVIDADE 4 - BANCO DE DADOS


Continue navegando


Prévia do material em texto

RReevviissaarr eennvviioo ddoo tteessttee:: AATTIIVVIIDDAADDEE 44
((AA44))
Usuário ANDRE VINICIUS DE OLIVEIRA
Curso ADM01040 BANCO DE DADOS GR0272202 - 202020.ead-11043.01
Teste ATIVIDADE 4 (A4)
Iniciado 19/08/20 13:54
Enviado 19/08/20 14:06
Status Completada
Resultado da tentativa 10 em 10 pontos  
Tempo decorrido 12 minutos
Resultados exibidos Respostas enviadas, Respostas corretas, Comentários
PPeerrgguunnttaa 11
Resposta Selecionada:
Resposta Correta:
Feedback
da
resposta:
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:
F, V, V, V.
F, V, V, V.
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.   
PPeerrgguunnttaa 22
1 em 1 pontos
1 em 1 pontos← OOKK
Revisar envio do teste: ATIVIDADE 4 (A4) – ADM01040 ... https://anhembi.blackboard.com/webapps/assessment/review/revie...
1 of 6 8/19/20, 2:10 PMCr
ea
te
d 
in 
M
as
te
r P
DF
 E
dit
or
Resposta
Selecionada:
Resposta Correta:
Feedback da
resposta:
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:
Todos os registros de clientes, mesmo que não tenham compras, serão
visualizados
Todos os registros de clientes, mesmo que não tenham compras, serão
visualizados
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. 
PPeerrgguunnttaa 33
Resposta Selecionada:
Resposta Correta:
Feedback
da resposta:
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?
Right Outer Join
Right Outer Join
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).
1 em 1 pontos
1 em 1 pontos
Revisar envio do teste: ATIVIDADE 4 (A4) – ADM01040 ... https://anhembi.blackboard.com/webapps/assessment/review/revie...
2 of 6 8/19/20, 2:10 PMCr
ea
te
d 
in 
M
as
te
r P
DF
 E
dit
or
PPeerrgguunnttaa 44
Resposta
Selecionada:
Resposta Correta:
Feedback da
resposta:
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:
SELECT      AUTOR, COUNT(*), AVG(VALOR)         FROM LIVRO GROUP BY
AUTOR
SELECT      AUTOR, COUNT(*), AVG(VALOR)         FROM LIVRO GROUP BY
AUTOR
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.
PPeerrgguunnttaa 55
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:
1 em 1 pontos
Revisar envio do teste: ATIVIDADE 4 (A4) – ADM01040 ... https://anhembi.blackboard.com/webapps/assessment/review/revie...
3 of 6 8/19/20, 2:10 PMCr
ea
te
d 
in 
M
as
te
r P
DF
 E
dit
or
Resposta Selecionada:
Resposta Correta:
Feedback
da
resposta:
IV, II, III, I
IV, II, III, I
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álculode função agregada em consultas que
possuem o group by.
PPeerrgguunnttaa 66
Resposta Selecionada:
Resposta Correta:
Feedback da
resposta:
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:
MIN(DATA_NASC)
MIN(DATA_NASC)
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.   
PPeerrgguunnttaa 77
Resposta Selecionada:
Resposta Correta:
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:
HAVING
HAVING
1 em 1 pontos
1 em 1 pontos
Revisar envio do teste: ATIVIDADE 4 (A4) – ADM01040 ... https://anhembi.blackboard.com/webapps/assessment/review/revie...
4 of 6 8/19/20, 2:10 PMCr
ea
te
d 
in 
M
as
te
r P
DF
 E
dit
or
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”.   
PPeerrgguunnttaa 88
Resposta Selecionada:
Resposta Correta:
Feedback da
resposta:
Um banco de dados pode ser composto de diversos componentes, existem as tabelas que são os
principais componentes mas existem também outros. Sobre um destes componentes, (ELMASRI, 2011,
p.88) diz que “não necessariamente existe em forma física, ela é considerada uma tabela virtual, ao
contrário das tabelas de base, cujas tuplas sempre estão armazenadas fisicamente no banco de dados.
Isso limita possíveis operações de atualização mas não oferece quaisquer limitações sobre a consulta.“
 
ELMASRI, R.; NAVATHE, S. SSiisstteemmaass ddee BBaannccoo ddee DDaaddooss . São Paulo: Pearson Addison Wesley, 2011,
p.88.
 
O componente objeto do comentário do EMASRI é
Uma view
Uma view
Resposta correta. A alternativa está correta. De fato uma view é uma tabela virtual,
que não possui dados fisicamente e que por isso oferece limitações para atualizações
porém não oferece limitações quanto à consulta.
PPeerrgguunnttaa 99
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:
1 em 1 pontos
1 em 1 pontos
Revisar envio do teste: ATIVIDADE 4 (A4) – ADM01040 ... https://anhembi.blackboard.com/webapps/assessment/review/revie...
5 of 6 8/19/20, 2:10 PMCr
ea
te
d 
in 
M
as
te
r P
DF
 E
dit
or
Quarta-feira, 19 de Agosto de 2020 14h09min53s BRT
Resposta Selecionada:
Resposta Correta:
Feedback
da
resposta:
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)
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. 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.
PPeerrgguunnttaa 1100
Resposta
Selecionada:
Resposta Correta:
Feedback da
resposta:
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 é:
SELECT      CIDADE, COUNT(COD)            FROM CLIENTE           GROUP BY
CIDADE
SELECT      CIDADE, COUNT(COD)            FROM CLIENTE           GROUP BY
CIDADE
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. 
1 em 1 pontos
Revisar envio do teste: ATIVIDADE 4 (A4) – ADM01040 ... https://anhembi.blackboard.com/webapps/assessment/review/revie...
6 of 6 8/19/20, 2:10 PMCr
ea
te
d 
in 
M
as
te
r P
DF
 E
dit
or