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