Baixe o app para aproveitar ainda mais
Prévia do material em texto
ATIVIDADE 04 - QUESTIONÁRIO Pergunta 1 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 VLR_COMPRA DESC 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 VLR_COMPRA ASC 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 TOTAL DESC 1 pontos Pergunta 2 1. 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: V, V, F, F. F, F, V, F. V, V, F, V. F, F, V, V. F, F, V, F. 1 pontos Pergunta 3 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? São funções que permitem contabilizar ou totalizar valores Permite combinar dados de tabelas diferentes via chave estrangeira Definem os perfis de usuários que podem inserir dados no banco de dados Permite que consultas mais complexas sejam manipuladas de forma mais simples Permite armazenar dados para uma consulta mais simples 1 pontos Pergunta 4 1. As funções de agregação são úteis para contabilizar, totalizar ou avaliar registros em consultas construídas com o comando SELECT, com ou sem a cláusula GROUP BY. Quando usada sem agrupamentos, considera todos os registros dentro de um conjunto de resultados. Quando usada com group by, resumem os registros de um agrupamento em um valor conforme o objetivo da função. Em relação às funções de agregação, realize a associação de cada uma delas com as afirmações na sequência: I. SUM II. COUNT III. AVG IV. MAX Associe as funções de agregação com as afirmações sobre estes comandos ( ) Podem ser aplicadas tendo como parâmetro o “*” ( ) Retorna o maior valor de um conjunto de dados ( ) Usada para totalizar valores ( ) Usada para o cálculo de média de valores Assinale a alternativa que apresenta a sequência correta: II, I, IV, III II, IV, I, III III, I, II, IV I, IV, II, III III, IV, I, II 1 pontos Pergunta 5 1. 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: RIGHT OUTER JOIN LIKE GROUP BY FROM ORDER BY 1 pontos Pergunta 6 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, COUNT(*), AVG(VALOR) FROM LIVRO GROUP BY TITULO SELECT TITULO, SUM(*), 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 SELECT AUTOR, COUNT(*), AVG(VALOR) FROM LIVRO GROUP BY AUTOR 1 pontos Pergunta 7 1. 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: Apenas clientes com compras serão visualizados Todos os registros de clientes, mesmo que não tenham compras, serão visualizados Todos os registros de clientes e de compras mesmo que não tenham correlação entre si serão visualizados Todos os registros de compras,mesmo sem clientes, serão visualizados Apenas registros que tenham valores nos dois campos e que tenham correlação serão visualizados. 1 pontos Pergunta 8 1. 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, CIDADE, DATA_COMPRA, VALOR) AS SELECT CLI.NOME, CLI.BAIRRO, CLI.DATA_NASC, CLI.SEXO, 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 2. Assinale qual sentença apresenta uma consulta correta feita com o uso da View. SELECT NOME, VLR_COMPRA FROM CLIENTE SELECT NOME, CIDADE FROM CLIENTE SELECT NOME, DCR_CIDADE FROM COMPRAS_CLIENTES_VW SELECT NOME, COUNT(*) FROM COMPRAS_CLIENTES_VW GROUP BY NOME SELECT NOME, VLR_COMPRA FROM COMPRAS_CLIENTES_VW 1 pontos Pergunta 9 1. 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: FROM (CATEGORIA as C LEFT OUTER 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 RIGHT OUTER JOIN PRODUTO as P .ON C.COD_CATEGORIA = P.COD_CATEGORIA) RIGHT OUTER JOIN PODUTO_COMPRA AS PC ON P.COD_PRODUTO = PC.COD_PRODUTO) FROM (CATEGORIA as C RIGHT OUTER 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) LEFT OUTER 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) 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 RIGHT OUTER JOIN ESPECIALIDADE as E ON E.COD_ESPECIALIDADE = M.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 1 pontos
Compartilhar