Prévia do material em texto
Painel / Cursos / 2023ED - Projeto de Banco de Dados II - G91-1372EAD2A / Grau B e Grau C / Prova de Grau B Iniciado em quinta, 6 jul 2023, 10:52 Estado Finalizada Concluída em quinta, 6 jul 2023, 12:07 Tempo empregado 1 hora 14 minutos Avaliar 10,00 de um máximo de 10,00(100%) Comentários Parabéns! https://ava.uniftec.com.br/course/view.php?id=4394 https://ava.uniftec.com.br/my/ https://ava.uniftec.com.br/course/index.php https://ava.uniftec.com.br/course/view.php?id=4394 https://ava.uniftec.com.br/course/view.php?id=4394§ion=6 https://ava.uniftec.com.br/mod/quiz/view.php?id=327449 Questão 1 Completo Atingiu 4,00 de 4,00 O modelo relacional é um modelo de dados representativo (ou de implementação), adequado a ser o modelo subjacente de um Sistema Gerenciador de Banco de Dados, que se baseia no princípio de que todos os dados estão armazenados em tabelas. Considere o esquema relacional abaixo: MateriaPrima(IdMateriaPrima, descricao, #IdTipoMateriaPrima) TipoMateriaPrima(IdTipoMateriaPrima, descricao) Produto(IdProduto, nome, imagem, preco) ProdutoMateriaPrima( #IdProduto,#IdMateriaPrima ) ProdutoComposto( #IdProduto,#IdComponente ) obs.: IdComponente é uma chave estrangeira para Produto Escreva um comando SQL para cada consulta a seguir: A) (1,0 ponto) Consultar o nome dos produtos que tem mais que 2 componentes. B) (1,0 ponto) Consultar todos os dados (campos) dos produtos. C) (1,0 ponto) Consulte o nome dos produtos que tem preço entre R$ 200,00 e R$ 800,00. D) (1,0 ponto) Consultar a descrição de todas as matérias primas e a média de preço dos produtos que a usam. Digite no espaço a seguir as suas consultas, identificando-as. CONSULTAS: A) SELECT p.nome FROM Produto p JOIN ProdutoComposto pc ON p.IdProduto = pc.IdProduto GROUP BY p.IdProduto, p.nome HAVING COUNT(pc.IdComponente) > 2; B) SELECT * FROM Produto; C) SELECT nome FROM Produto WHERE preco BETWEEN 200.00 AND 800.00 D) SELECT mp.descricao as descricao_materia_prima, AVG(p.preci) AS media_preco FROM MateriaPrima mp JOIN ProdutoMateriaPrima pm ON mp.IdMateriaPrima = pm.IdMateriaPrima JOIN Produto p ON pm.IdProduto = p.IdProduto GROUP BY mp.IdMateriaPrima, mp.descricao; Comentário: Questão 2 Correto Atingiu 1,00 de 1,00 A linguagem SQL possui diversos comandos, mas nenhum tão importante quanto o comando SELECT, que nos permite buscar e relacionar os dados que estão armazenados no banco de dados e responder às perguntas dos usuários. Analise as afirmativas sobre o comando SELECT: I. A cláusula WHERE é obrigatória e verifica se os dados de uma tupla atendem a uma condição e se sim, ela fará parte do resultado da consulta. II. A cláusula FROM especifica os campos (colunas) do resultado da consulta. III. A cláusula ORDER BY é sempre a última cláusula do comando SELECT. IV. Na cláusula SELECT são relacionadas as tabelas utilizadas no comando SELECT. É verdade somente o que se afirma em: Escolha uma opção: II, III, IV I, II, III, IV III I, III I, II, IV Sua resposta está correta. A resposta correta é: III Questão 3 Correto Atingiu 1,00 de 1,00 Ao construir uma consulta podemos restringir o seu resultado pela especificação de um predicado, que testará os valores dos campos de uma tupla. Quando o predicado for verdadeiro a tupla será considerada no resultado da consulta, caso contrário não. Considere o esquema relacional: MateriaPrima(IdMateriaPrima, descricao, #IdTipoMateriaPrima) TipoMateriaPrima(IdTipoMateriaPrima, descricao) Produto(IdProduto, nome, imagem) ProdutoMateriaPrima( #IdProduto,#IdMateriaPrima ) ProdutoComposto( #IdProduto,#IdComponente ) obs.: IdComponente é uma chave estrangeira para Produto Considere as seguintes consultas: A) SELECT P.nome, M.descricao FROM Produto P LEFT JOIN ProdutoMateriaPrima PM USING(IdProducto) LEFT JOIN MateriaPrima M USING (IdMateriaPrima) WHERE IdMateriaPrima IN (1,5) B) SELECT P.nome, M.descricao FROM Produto P LEFT JOIN ProdutoMateriaPrima PM USING(IdProducto) LEFT JOIN MateriaPrima M USING (IdMateriaPrima) WHERE IdMateriaPrima BETWEEN 1 AND 5 C) SELECT P.nome, M.descricao FROM Produto P LEFT JOIN ProdutoMateriaPrima PM USING(IdProducto) LEFT JOIN MateriaPrima M USING (IdMateriaPrima) WHERE P.nome LIKE "%Assento%" Analise as afirmativas: I. Os resultados das consultas A e B serão exatamente iguais. II. Na consulta C são consideradas as tuplas em que o nome do produto inicia pela palavra "Assento". III. O operador BETWEEN testa se o valor do campo está no intervalo identificado pelos limites, incluindo-os. IV. O operador IN verifica se o valor do campo pertence ao conjunto de valores listados. É verdade apenas o que se afirma em: Escolha uma opção: II, III III, IV I, II II, III, IV I, II, III, IV Sua resposta está correta. A resposta correta é: III, IV Questão 4 Correto Atingiu 1,00 de 1,00 A linguagem SQL possui um conjunto de funções que trabalham com conjunto de dados e elas são denominadas Funções de Agregação. Essas funções nos permitem contar quantas tuplas tem em um grupo, calcular somatório de valores, calcular média, etc. Considere o esquema relacional: MateriaPrima(IdMateriaPrima, descricao, #IdTipoMateriaPrima) TipoMateriaPrima(IdTipoMateriaPrima, descricao) Produto(IdProduto, nome, imagem) ProdutoMateriaPrima( #IdProduto,#IdMateriaPrima ) ProdutoComposto( #IdProduto,#IdComponente ) obs.: IdComponente é uma chave estrangeira para Produto Considere as seguintes consultas: A) SELECT P.nome, COUNT(DISTINCT IdMateriaPrima) FROM Produto P LEFT JOIN ProdutoMateriaPrima PM USING(IdProduto) GROUP BY P.nome B) SELECT P.nome, COUNT(*) FROM Produto P LEFT JOIN ProdutoMateriaPrima PM USING(IdProduto) GROUP BY P.nome C) SELECT P.nome, COUNT(DISTINCT IdComponente) FROM Produto P LEFT JOIN ProdutoComposto PC ON(P.IdProduto=PC.IdProduto) GROUP BY P.nome Analise as afirmativas: I. A consulta A somente lista os produtos que usam matérias prima. II. A consulta B gera um resultado com erros, pois os produtos que não tem matérias prima serão listados com a quantidade 1, indicando que usam uma matéria prima. III. A consulta C lista todos os produtos com sua quantidade de componentes. IV. Na função COUNT os argumentos * ou DISTINCT não alteram a geração do resultado da consulta. É verdade apenas o que se afirma em: Escolha uma opção: I, II, III, IV III, IV I, II II, III I, II, IV Sua resposta está correta. A resposta correta é: II, III Questão 5 Correto Atingiu 1,00 de 1,00 SQL (Structured Query Language) é a linguagem padrão para manipulação de bases de dados em Sistemas de Gerenciamento de Banco de Dados Relacionais (SGBDR). Existem diversas vantagens no uso da linguagem SQL. Nesse contexto analise os itens: (A) Linguagem Declarativa (B) Independência de Fabricante (C) Baixa Portabilidade (D) Baixo custo de treinamento (E) Consultas Interativas (F) Somente uma visão dos dados (G) Definição estática de dados São vantagens da linguagem SQL somente: Escolha uma opção: B - C - E - F A - C - F - G A - B - D - E - G A - B - D - E B - D - F - G Sua resposta está correta. A resposta correta é: A - B - D - E Questão 6 Correto Atingiu 1,00 de 1,00 Para se obter dados que estão em mais de uma tabela é necessário que estas sejam relacionadas no processo de realização da consulta. Essa ligação entre as tabelas é normalmente estabelecida pela referência que é expressa pela chave estrangeira, que está em uma tabela, e faz referência à chave primária de outra tabela. As tabelas são unidas através do uso de JOINs. Considere o esquema relacional: MateriaPrima(IdMateriaPrima, descricao, #IdTipoMateriaPrima) TipoMateriaPrima(IdTipoMateriaPrima, descricao) Produto(IdProduto, nome, imagem) ProdutoMateriaPrima( #IdProduto,#IdMateriaPrima ) ProdutoComposto( #IdProduto,#IdComponente ) obs.: IdComponente é uma chave estrangeira para Produto Considere as seguintes consultas: A) SELECT * FROM MateriaPrima INNER JOIN TipoMateriaPrimaUSING(IdTipoMateriaPrima) B) SELECT M.descricao, P.nome FROM MateriaPrima M LEFT JOIN ProdutoMateriaPrima PM USING(IdMateriaPrima) LEFT JOIN Produto P USING(IdProduto) C) SELECT P1.descricao, P2.descricao FROM Produto P1 RIGHT JOIN ProdutoComposto PC ON(P1.IdProduto=PC.IdProduto) RIGHT JOIN Produto P2 ON(PC.IdComponente=P2.IdProduto) Analise as afirmativas: I. Na consulta A serão listados todos campos das tabelas MateriaPrima e TipoMateriaPrima. II. A cláusula USING unifica a coluna utilizada na junção das tabelas. III. Na consulta B somente serão mostradas as Matérias Primas que são utilizadas nos produtos. IV. Na consulta C se substituirmos o RIGHT JOIN por LEFT JOIN o resultado da consulta será exatamente o mesmo. É verdade apenas o que se afirma em: Escolha uma opção: II, III III, IV I, II I, II, III I, II, III, IV Sua resposta está correta. A resposta correta é: I, II Questão 7 Correto Atingiu 1,00 de 1,00 Uma Trigger é um importante recurso da linguagem SQL que amplia sua capacidade de gerenciamento das bases de dados e possibilita controlar as operações realizadas e derivar dados. Considere a Trigger: CREATE TRIGGER newPerson BEFORE INSERT ON Person FOR EACH ROW BEGIN System(mailto,rh@gmail.com,Person.name) END Sobre essa trigger e seu funcionamento, avalie as asserções a seguir e a relação proposta entre elas. I. A Trigger será disparada depois de cada inserção de tupla na tabela Person. PORQUE II. O tempo da Trigger é Before. A respeito dessas asserções, assinale a opção correta. Escolha uma opção: A. As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I. B. As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I. C. A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. D. A asserção I é uma proposição falsa, e a II é uma proposição verdadeira. E. As asserções I e II são proposições falsas. Sua resposta está correta. A resposta correta é: A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.