Baixe o app para aproveitar ainda mais
Prévia do material em texto
Curso GRA0244 BANCO DE DADOS GR0272211 - 202110.ead-14718.01 Teste ATIVIDADE 4 (A4) Iniciado 15/06/21 00:57 Enviado 15/06/21 03:41 Status Completada Resultado da tentativa 9 em 10 pontos Tempo decorrido 2 horas, 44 minutos Resultados exibidos Respostas enviadas, Respostas corretas, Comentários ● Pergunta 1 ● 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: C NO M E CO N T A T O DATA _ N A S C B 1 Ad r i a n a A r a ú j o 71 9 8 2 2 1 3 4 5 5 1987- 0 2- 0 3 B 2 Re n a t o N o g u e i r a 11 9 3 3 3 2 1 9 9 9 1977- 0 7- 0 9 M 3 Viv i a n e S a l 11 9 8 7 7 1 2 0 1995- 1 1- 0 2 Vil e s 2 2 4 Ma r c e l a C a m p o s 71 9 7 3 5 1 4 4 9 8 1980- 0 1- 1 9 B 5 Ro d r i g o G o n ç a l v e s 21 9 8 6 1 2 1 9 4 2 1992- 0 5- 1 0 C 6 Jor g e M a r i n h o 11 9 9 5 4 3 9 8 1 2 1990- 0 6- 0 7 M 7 Ro d r i g o V i 71 9 7 2 3 1 8 8 1985- 0 8- 2 7 C e i r a 7 2 8 Va n e s s a A q u i n o 21 9 3 3 2 1 1 3 4 6 1972- 0 2- 1 5 C 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) Comentá rio da respo sta: 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 2 ● 1 em 1 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_PRODUT O VAL O R DCR_CATEGORI A Caderno Matérias 15,6 0 Cadernos Caderno Simples 11,4 5 Cadernos Caneta 1,35 Canetas e afins Grafite 7,50 Canetas e afins Lapiseira 20,4 0 Canetas e afins Fonte: Elaborado pelo autor (2019). Qual cláusula de ordenação foi escrita na consulta? Resposta Seleci onada : ORDER BY DCR_CATEGORIA ASC, DCR_PRODUTO ASC Resposta Corret a: ORDER BY DCR_CATEGORIA ASC, DCR_PRODUTO ASC Coment ário da resp osta : 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 3 ● 1 em 1 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: GROUP BY Resposta Correta: GROUP BY Comen tário da resp osta : Resposta correta. A alternativa está correta, a cláusula de GROUP BY no comando de SELECT processa os agrupamentos em que os registros com o mesmo valor de modelo são agrupados e com a contabilização (COUNT) associado a algum outro campo. Portanto, para cada modelo serão contabilizadas as locações como requer o enunciado. ● Pergunta 4 ● 1 em 1 pontos ● 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: Resposta Selecionada: F, V, V, V. Resposta Correta: F, V, V, V. Comen tári o da res pos ta: 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. ● Pergunta 5 ● 1 em 1 pontos ● 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? Resposta Selecio nada: Permite que consultas mais complexas sejam manipuladas de forma mais simples Resposta Corret a: Permite que consultas mais complexas sejam manipuladas de forma mais simples Coment ário da resp osta: Resposta correta. A alternativa está correta pois com a criação de uma view, uma consulta complexa é encapsulada e os usuários passam a ter um mecanismo mais simples para consultar os dados de tabelas. ● Pergunta 6 ● 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 Comen tári o da resp osta : 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. ● Pergunta 7 ● 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, 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 Assinale qual sentença apresenta uma consulta correta feita com o uso da View. Resposta Seleci onada : SELECT NOME, COUNT(*) FROM COMPRAS_CLIENTES_VW GROUP BY NOME Resposta Corret a: SELECT NOME, COUNT(*) FROM COMPRAS_CLIENTES_VW GROUP BY NOME Coment ário da resp osta: 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 8 ● 0 em 1 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 Seleci onada: SELECT TITULO, COUNT(*), AVG(VALOR) FROM LIVRO GROUP BY TITULO Resposta Corret a: SELECT AUTOR, COUNT(*), AVG(VALOR) FROM LIVRO GROUP BY AUTOR Comen tário da resp osta : Sua resposta está incorreta. A alternativa está incorreta o agrupamento deve ser por auto e usando as funções SUM e AVG. A função MEDIA não existe para fazer o cálculo de média. A função SUM é usada para somatório de valores numéricos e não para contagem (COUNT) de registros. E o agrupamento não deve ser por título, e sim por autor. ● Pergunta 9 ● 1 em 1 pontos ● 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. Sistemas de Banco de Dados . São Paulo: Pearson Addison Wesley, 2011, p.88. O componente objeto do comentário do EMASRI é Resposta Selecionada: Uma view Resposta Correta: Uma view Coment ário da resp osta: 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. ● Pergunta 10 ● 1 em 1 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 Seleci onada : 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 Corret a: 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) Comen tári o da res pos ta: 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. Terça-feira, 15 de Junho de 2021 03h45min11s BRT bd4
Compartilhar