Buscar

Banco de dados I Atividade 4

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
0,25 em 0,25 pontos
	
	
	
	A ordenação de registros é expressa em uma cláusula parte de uma consulta com um SELECT que contém ainda as cláusulas where para realizar os filtros e pode ainda conter cláusulas “group by” para realizar agrupamentos. Quando se está fazendo a ordenação de registros os campos são especificados com as palavras chaves ‘ASC’ e ‘DESC’ indicando ordem ascendente e decrescente. 
Ao escrever uma consulta proveniente da junção entre a tabela de Categoria e Produto em um sistema de papelaria os registros encontrados foram os seguintes: 
	DCR_PRODUTO
	VALOR
	DCR_CATEGORIA
	Caderno Matérias
	15,60
	Cadernos
	Caderno Simples
	11,45
	Cadernos
	Caneta
	1,35
	Canetas e afins
	Grafite
	7,50
	Canetas e afins
	Lapiseira
	20,40
	Canetas e afins
Fonte: Elaborado pelo autor (2019). 
Qual cláusula de ordenação foi escrita na consulta?
	
	
	
	
		Resposta Selecionada:
	 
ORDER BY      DCR_CATEGORIA ASC, DCR_PRODUTO ASC
	Resposta Correta:
	 
ORDER BY      DCR_CATEGORIA ASC, DCR_PRODUTO ASC
	Feedback da resposta:
	Resposta correta. A alternativa está correta pois na listagem perceba que a categoria está em ordem crescente e dentro de cada categoria os produtos estão em ordem crescente também.
	
	
	
· Pergunta 2
0,25 em 0,25 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 3
0,25 em 0,25 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
0,25 em 0,25 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 5
0 em 0,25 pontos
	
	
	
	O comando de SELECT é um dos comandos de DML (Data Manipulation Language) responsável por recuperar os registros de tabelas e ele possui vários recursos como filtros, ordenação, subconsultas e junções, além de outros e isso permite que este comando atenda às mais variadas necessidade de informação de seus usuários. 
Em um sistema de Locadora, um determinado gerente solicitou à equipe de Tecnologia de Informação uma listagem com o volume de locações de carros organizadas por modelo de carro. A listagem apresenta cada modelo e para cada modelo apresenta a quantidade de locações. 
A cláusula do comando SELECT que atende esta demanda de avaliar a quantidade de locações por modelo de carro é o:
	
	
	
	
		Resposta Selecionada:
	 
LIKE
	Resposta Correta:
	 
GROUP BY
	Feedback da resposta:
	Sua resposta está incorreta. A alternativa está incorreta, o correto seria usar o GROUP BY para realizar esta contabilização por modelo de carro. A cláusula ORDER BY é usada para ordenação. O FROM indica as tabelas que são as fontes de dados para o comando SELECT. O RIGHT OUTER JOIN é um tipo de junção para combinar dados de tabelas. E o LIKE é usado para filtrar campos de caracteres conforme padrão, por exemplo, NOME LIKE ‘%Marcelo%’.
	
	
	
· Pergunta 6
0,25 em 0,25 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 7
0 em 0,25 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 8
0,25 em 0,25 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 9
0 em 0,25 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 FULL JOIN ESPECIALIDADE as E 
    ON M.COD_ESPECIALIDADE = E.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:
	Sua resposta está incorreta. A alternativa está incorreta, pois, na junção correta, a tabela de especialidade deve ser a base da junção externa (OUTER JOIN). Se esta tabela especialidade estiver antes (esquerda) do que a tabela de médico (direita), a junção deve ser LEFT OUTER JOIN e se a tabela médico estiver antes (esquerda) do que a tabela de especialidade (direita) deve ocorrer um (RIGHT OUTER JOIN), ou seja, em ambos os casos a tabela especialidade deve estar do lado do tipo, left ou rigth, do outer join. O full join considera tanto os registros de especialidade como de médico como base, e pretende-se usar apenas especialidade como base. E o INNER JOIN somente trará os registros que apresentam correspondência nas duas tabelas, e especialidades sem registros de médicos não seriam recuperadas.
	
	
	
· Pergunta 10
0,25 em 0,25 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.
	
	
	
Sábado, 31 de Agosto de 2019 15h04min30s BRT
 OK

Continue navegando