Buscar

atividade A4

Prévia do material em texto

PERGUNTA 1
1. 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?
	
	
	Permite que consultas mais complexas sejam manipuladas de forma mais simples
	
	
	Definem os perfis de usuários que podem inserir dados no banco de dados
	
	
	Permite combinar dados de tabelas diferentes via chave estrangeira
	
	
	Permite armazenar dados para uma consulta mais simples
	
	
	São funções que permitem contabilizar ou totalizar valores
1 pontos   
PERGUNTA 2
1. 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:
	
	
	INNER
	
	
	ORDER
	
	
	WHERE
	
	
	FROM
	
	
	HAVING
1 pontos   
PERGUNTA 3
1. 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       TITULO, SUM(*), AVG(VALOR)                         FROM LIVRO GROUP BY TITULO
	
	
	SELECT      AUTOR, COUNT(*), AVG(VALOR)         FROM LIVRO GROUP BY AUTOR
	
	
	SELECT       TITULO, COUNT(*), AVG(VALOR)         FROM LIVRO GROUP BY TITULO
	
	
	SELECT       AUTOR, SUM(*), MEDIA(VALOR)          FROM LIVRO GROUP BY AUTOR
	
	
	SELECT       AUTOR, COUNT(*), MEDIA(VALOR)     FROM LIVRO GROUP BY AUTOR
1 pontos   
PERGUNTA 4
1. 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
2. 
Quadro - Resultado de consulta com junção entre Alunos e Cursos
Fonte: Elaborado pelo autor (2019).
Qual foi a junção realizada nesta consulta?
	
	
	Full Join
	
	
	Inner Join
	
	
	Left Outer Join
	
	
	Join
	
	
	Right Outer Join
1 pontos   
PERGUNTA 5
1. 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, F, F.
	
	
	F, V, V, V.
	
	
	V, V, F, V.
	
	
	V, V, V, V.
	
	
	F, F, V, F.
1 pontos   
PERGUNTA 6
1. 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:
	
	
	II, III, I, IV
	
	
	III, I, IV, II
	
	
	IV, II, III, I
	
	
	I, III, II, IVI
	
	
	I, IV, II, III
1 pontos   
PERGUNTA 7
1. 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
2. 
 
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:
	
	
	COUNT(DATA_NASC)
	
	
	MAX(DATA_NASC)
	
	
	SUM(DATA_NASC)
	
	
	MIN(DATA_NASC)
	
	
	AVG(DATA_NASC)
1 pontos   
PERGUNTA 8
1. 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
2. 
 
                        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 é
	
	
	SELECT *
            FROM(SELECT          NOME, AVG(VLR_COMPRA) as TOTAL
                        FROM              COMPRAS) AS VOLUME_COMPRAS
            ORDER BY TOTAL DESC
	
	
	SELECT *
            FROM   (SELECT          NOME, SUM(VLR_COMPRA) as TOTAL
                        FROM              COMPRAS) AS VOLUME_COMPRAS
            ORDER BY VLR_COMPRA ASC
	
	
	SELECT *
            FROM   (SELECT          NOME, SUM(VLR_COMPRA) as TOTAL
                        FROM              COMPRAS) AS VOLUME_COMPRAS
            ORDER BY VLR_COMPRA DESC
	
	
	SELECT *
            FROM   (SELECT          NOME, SUM(VLR_COMPRA) as TOTAL
                        FROM              COMPRAS) AS VOLUME_COMPRAS
            ORDER BY TOTAL DESC
	
	
	SELECT *
            FROM   (SELECT          NOME, AVG(VLR_COMPRA) as TOTAL
                        FROM              COMPRAS) AS VOLUME_COMPRAS
            ORDER BY VLR_COMPRA DESC
1 pontos   
PERGUNTA 9
1. 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
2. 
 
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           ORDER BY CIDADE
 
 
 
	
	
	SELECT       CIDADE, SUM(NOME)              FROM CLIENTE           GROUP BY CIDADE
	
	
	SELECT        CIDADE, SUM(COD)                 FROM CLIENTE           GROUP BY CIDADE
	
	
	SELECT       CIDADE, NOME                        FROM CLIENTE           ORDER BY CIDADE
	
	
	SELECT      CIDADE, COUNT(COD)            FROM CLIENTE           GROUP BY CIDADE
1 pontos   
PERGUNTA 10
1. 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 é:
	
	
	SELECT        *           FROM   ESPECIALIDADE as E RIGHT OUTER JOIN MEDICO as M 
    ON M.COD_ESPECIALIDADE = E.COD_ESPECIALIDADE
	
	
	SELECT       *           FROM   MEDICO as M FULL JOIN ESPECIALIDADE as E 
    ON M.COD_ESPECIALIDADE = E.COD_ESPECIALIDADE
	
	
	SELECT       *           FROM   MEDICO as M INNER JOIN ESPECIALIDADE as E 
    ON M.COD_ESPECIALIDADE = E.COD_ESPECIALIDADE
	
	
	SELECT       *           FROM   MEDICO as M LEFT OUTER JOIN ESPECIALIDADE as E 
    ON M.COD_ESPECIALIDADE = E.COD_ESPECIALIDADE
	
	
	SELECT      *           FROM   MEDICO as M RIGHT OUTER JOIN ESPECIALIDADE as E 
    ON E.COD_ESPECIALIDADE = M.COD_ESPECIALIDADE

Continue navegando