Prévia do material em texto
Painel / Meus cursos / 2022/2 - Projeto de Banco de Dados - G110-0184TERNT / AULA 19 - 06/12/2022 - Avaliação GRAU B / Avaliação GRAU B Iniciado em segunda, 5 Dez 2022, 01:43 Estado Finalizada Concluída em segunda, 5 Dez 2022, 02:21 Tempo empregado 38 minutos 38 segundos Avaliar Ainda não avaliado Questão 1 Correto Atingiu 2,50 de 2,50 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. Sobre o comando SELECT, analise as afirmativas: I. Ao lado da cláusula SELECT é colocada a lista de tabelas que se deseja no resultado. II. Na cláusula FROM se especificam as colunas necessárias para a consulta. III. A cláusula WHERE testa um predicado de seleção das tuplas e é obrigatória. IV. A cláusula ORDER BY ordena o resultado da consulta e deve ser a última cláusula do SELECT. É correto apenas o que se afirma em: Escolha uma opção: III, IV II, IV I, II I, II, III, IV IV Sua resposta está correta. A resposta correta é: IV https://graduacao.ftec.com.br/course/view.php?id=11805 https://graduacao.ftec.com.br/my/ https://graduacao.ftec.com.br/course/view.php?id=11805 https://graduacao.ftec.com.br/course/view.php?id=11805§ion=19 https://graduacao.ftec.com.br/mod/quiz/view.php?id=807769 Questão 2 Correto Atingiu 2,50 de 2,50 Considere o seguinte esquema relacional: Pessoa(IdPessoa, Nome) Projeto(IdProjeto, Descricao) PessoaProjeto(#IdPessoa,#IdProjeto) Considere a seguinte consulta: SELECT nome FROM Pessoa A WHERE NOT EXISTS (SELECT * FROM Projeto B WHERE NOT EXISTS (SELECT * FROM PessoaProjeto C WHERE A.IdPessoa=C.IdPessoa AND B.IdProjeto=C.IdProjeto)) Analise as afirmativas: I. A cláusula EXISTS retorna V (Verdadeiro) se a subconsulta retornaria no mínimo uma linha como resultado. II. Os dois comandos NOT EXISTS se anulam e assim o resultado da consulta será sempre vazio. III. A consulta retorna os nomes das pessoas que participam de projetos. IV. A consulta retorna os nomes das pessoas que participam de todos os projetos. É correto apenas o que se afirma em: Escolha uma opção: II, IV I, II, III, IV II, III I, II I, IV Sua resposta está correta. A resposta correta é: I, IV Questão 3 Correto Atingiu 2,50 de 2,50 A linguagem SQL é composta por diversos comandos que permitem construir, manipular e administrar bancos de dados. As operações nos bancos de dados são realizadas por transações. Sobre as transações dos banco de dados, avalie as asserções a seguir e a relação proposta entre elas. I. Transações são conjuntos de comandos DML que podem ser efetivados ou não no banco de dados. PORQUE II. Quando ocorre alguma falha é possível executar um ROLLBACK que irá desfazer os comandos DML da transação ativa. A respeito dessas asserções, assinale a opção correta: Escolha uma opção: As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I. As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I. A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. A asserção I é uma proposição falsa, e a II é uma proposição verdadeira. As asserções I e II são proposições falsas. Sua resposta está correta. A resposta correta é: As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I. Questão 4 Correto Atingiu 2,50 de 2,50 Considere o esquema relacional: Pessoa(IdPessoa,Nome,salario,#IdSetor) Setor(IdSetor, Descricao) A diretoria deseja um relatório com as descrições de todos os setores e a quantidade de pessoas que trabalham nele. Analise as alternativas de implementação desta consulta: I. SELECT descricao, COUNT(*) FROM SETOR GROUP BY descricao II. SELECT descricao, AVG(salario) FROM SETOR INNER JOIN PESSOA GROUP BY descricao III. SELECT descricao, COUNT(distinct IdPessoa) FROM SETOR LEFT JOIN PESSOA USING(IdSetor) GROUP BY descricao IV. SELECT descricao, COUNT(*) FROM SETOR NATURAL JOIN PESSOA GROUP BY descricao V. SELECT descricao, COUNT(distinct IdPessoa) FROM SETOR LEFT JOIN PESSOA ON(SETOR.IdSetor = PESSOA.IdSetor) A consulta que expressa corretamente o que o relatório deve mostrar é: Escolha uma opção: I II III IV V Sua resposta está correta. A resposta correta é: III Questão 5 Correto Atingiu 2,50 de 2,50 Questão 6 Correto Atingiu 2,50 de 2,50 A SQL é uma linguagem que possui diversos comandos que possibilitam a criação, manutenção e administração de bancos de dados. Com base na estrutura e funcionamento dos comandos da SQL, avalie as afirmações a seguir: I. O comando UPDATE altera a definição (estrutura) da tabela. II. O comando DELETE elimina uma tabela. III. A cláusula WHERE somente pode ser utilizada com o comando SELECT. IV. As cláusulas WHERE e HAVING testam predicados, mas tem funções diferentes. V. As funções de agregação podem ser utilizadas com ou sem o GROUP BY. É correto apenas o que se afirma em: Escolha uma opção: IV, V II, III, IV I, II, III I, IV, V I, II, III, IV, V Sua resposta está correta. A resposta correta é: IV, V A SQL possui diversas estruturas para além das tabelas. Uma destas estruturas são as views. Nesse contexto, avalie as afirmativas: I. VIEW é um recurso que permite armazenar a estrutura de uma consulta. II. As VIEWs podem facilitar a construção de consultas complexas. III. A VIEW é executada quando é criada e seu resultado fica armazenado na base de dados. IV. Não é possível executar comandos DML em uma VIEW. É correto apenas o que se afirma em: Escolha uma opção: III, IV I, II I, IV II, III I, II, III, IV Sua resposta está correta. A resposta correta é: I, II Questão 7 Correto Atingiu 2,50 de 2,50 Questão 8 Correto Atingiu 2,50 de 2,50 A linguagem SQL é composta por diversos comandos que permitem construir, manipular e administrar bancos de dados. A partir da estrutura e funcionamento da linguagem SQL, avalie as asserções a seguir e a relação proposta entre elas. I. A SQL é uma linguagem de programação procedural. PORQUE II. Na SQL se descreve o problema ao invés da solução, especificando o que deve ser feito e não como. A respeito dessas asserções, assinale a opção correta: Escolha uma opção: As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I. As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I. A asserção I é uma proposição verdadeira, e a II é uma proposição falsa. A asserção I é uma proposição falsa, e a II é uma proposição verdadeira. 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. Para escrever uma consulta utilizamos o comando SELECT. Nele definimos as tabelas necessárias para a realização da consulta. Quando utilizamos duas ou mais tabelas, elas precisam ser relacionadas e para isso utilizamos o operador JOIN. Nesse contexto, avalie as afirmações: I. Os operadores ON e USING tem exatamente a mesma função e sempre podem ser utilizados em qualquer situação de junção de tabelas. II. As linhas de resultado que são retornadas pelo INNER JOIN também são retornadas quando usamos OUTER JOIN. III. FULL OUTER JOIN une os resultados de LEFT e RIGHT OUTER JOIN. IV. Em uma consulta se apenas substituirmos LEFT por RIGHT o resultado será exatamente o mesmo. É correto apenas o que se afirma em: Escolha uma opção: III, IV I, II, III II, III I, II, III, IV I, II Sua resposta está correta. A resposta correta é: II, III Questão 9 Correto Atingiu 2,50 de 2,50 Considere o seguinte esquema relacional: Livro(IdLivro, Titulo, Paginas, Ano, #IdEditora) Editora(IdEditora, Nome) Considere a seguinte consulta: SELECT IdEditora, COUNT(*) FROM Livro WHERE ano > 2010 GROUP BY IdEditora HAVING COUNT(*) > 5 Analise as afirmativas:I. A consulta faz o agrupamento pela editora responsável pela edição de cada livro. II. A consulta mostra os identificadores de todas as editoras e a quantidade total de livros editados por cada uma delas. III. No resultado da consulta teremos apenas as editoras que tem mais que 5 livros editados depois de 2010 IV. A cláusula WHERE seleciona as tuplas que participarão do agrupamento. V. A cláusula HAVING define uma regra que seleciona grupos que aparecerão no resultado da consulta. É correto apenas o que se afirma em: Escolha uma opção: I, II, III I, II, III, IV, V II, III I, III, IV, V I, IV, V Sua resposta está correta. A resposta correta é: I, III, IV, V Questão 10 Correto Atingiu 2,50 de 2,50 Considere o esquema relacional: Pessoa(IdPessoa, Nome, Sexo, Fone) Assunto(IdAssunto, Descricao) PessoaAssunto(#IdPessoa,#IdAssunto) A coordenação de pessoal deseja saber as descrições de todos os assuntos e a quantidade de pessoas que os tratam. Analise as alternativas de implementação desta consulta: I. SELECT descricao, COUNT(*) FROM ASSUNTO GROUP BY descrição II. SELECT descricao, COUNT(*) FROM ASSUNTO INNER JOIN PESSOA USING(IdAssunto) GROUP BY descrição III. SELECT descricao, COUNT(*) FROM ASSUNTO LEFT OUTER JOIN PESSOA USING(IdPessoa) GROUP BY descrição IV. SELECT descricao, COUNT(distinct IdPessoa) FROM ASSUNTO LEFT OUTER JOIN PESSOAASSUNTO USING(IdAssunto) GROUP BY descricao V. SELECT descricao, COUNT(*) FROM ASSUNTO LEFT OUTER JOIN PESSOAASSUNTO LEFT OUTER JOIN PESSOA USING (IdAssunto, IdPessoa) GROUP BY descricao A consulta que expressa corretamente o que o relatório deve mostrar é: Escolha uma opção: I II III IV V Sua resposta está correta. A resposta correta é: IV Questão 11 Correto Atingiu 2,50 de 2,50 Considere o esquema relacional: Livro(IdLivro,Titulo,Ano,#IdEditora) Editora(IdEditora, Nome) Assunto(IdAssunto, Descricao) LivroAssunto(#IdLivro,#IdAssunto) A coordenação da biblioteca deseja um relatório para ver os títulos de todos os livros e a quantidade de assuntos que eles abordam, mostrando apenas aqueles que tratam de mais de dois assuntos. Analise as alternativas de implementação desta consulta: I. SELECT titulo, COUNT(*) FROM LIVRO GROUP BY descricao WHERE COUNT(*) > 2 II. SELECT titulo, COUNT(DISTINCT IdAssunto) FROM LIVRO INNER JOIN ASSUNTO USING(IdLivro) GROUP BY titulo WHERE ANO > 2 III. SELECT titulo, COUNT(*) FROM LIVRO LEFT OUTER JOIN ASSUNTO USING (IdLivro) GROUP BY titulo HAVING IdAssunto > 2 IV. SELECT titulo, COUNT(DISTINCT IdAssunto) FROM LIVRO LEFT OUTER JOIN LIVROASSUNTO LEFT OUTER JOIN ASSUNTO USING (IdLivro, IdAssunto) GROUP BY titulo HAVING COUNT(DISTINCT IdAssunto)>2 V. SELECT titulo, COUNT(DISTINCT IdAssunto) FROM LIVRO LEFT OUTER JOIN LIVROASSUNTO USING(IdLivro) GROUP BY titulo HAVING COUNT(DISTINCT IdAssunto)>2 A consulta que expressa corretamente o que o relatório deve mostrar é: Escolha uma opção: I II III IV V Sua resposta está correta. A resposta correta é: V Questão 12 Correto Atingiu 2,50 de 2,50 Questão 13 Incorreto Atingiu 0,00 de 2,50 A linguagem SQL foi desenvolvida na década de 70, como produto resultante do estudo de E.F. Codd. Em pouco tempo, o modelo relacional e a linguagem SQL se tornaram um sucesso e a SQL foi padronizada pelo ANSI, o que tornou possível a portabilidade de bases de dados. Com base no texto apresentado e na estrutura do padrão SQL é correto afirmar: Escolha uma opção: As aplicações que acessam bases de dados com SQL possuem portabilidade muito limitada. A linguagem SQL somente manipula estritamente estruturas relacionais. A linguagem SQL possui comandos que são iguais para todos os SGBDs disponíveis. Os programadores de aplicações sempre precisam aprender muitas especificidades dos comandos DML-SQL para cada SGBD que utilizam. Na linguagem SQL todos os comandos possuem uma sintaxe e estrutura totalmente padronizada de execução, comum a todos os SGBD Relacionais. Sua resposta está correta. A resposta correta é: A linguagem SQL possui comandos que são iguais para todos os SGBDs disponíveis. A linguagem SQL possui Triggers que são gatilhos disparados quando ocorrem eventos no banco de dados. Sobre as Triggers da SQL é correto afirmar: Escolha uma opção: As triggers podem acessar as versões dos dados de antes e de depois do evento que disparou a trigger. Uma trigger, que é definida sobre um conjunto de eventos, que podem dispará-la, não consegue identificar qual evento específico a disparou. Triggers são o melhor recurso para controlar o acesso aos dados, identificando dados e operações que cada usuário pode acessar. O evento da Trigger define se ela será disparada antes, depois ou no lugar da transação que a disparou. Uma trigger pode ser disparada por eventos em qualquer uma das tabelas especificadas na trigger. Sua resposta está incorreta. A resposta correta é: As triggers podem acessar as versões dos dados de antes e de depois do evento que disparou a trigger. Questão 14 Correto Atingiu 2,50 de 2,50 Questão 15 Correto Atingiu 2,50 de 2,50 Considere o seguinte comando: REVOKE SELECT ON Pessoa FROM PUBLIC Com base nesse comando, analise as afirmativas: I. Retira a permissão de todos os usuários de fazer consultas em qualquer tabela. II. Retira a permissão de todos os usuários de fazer consultas à tabela Pessoa. III. Se os usuários tinham permissão para realizar comandos DML na tabela Pessoa, continuam com essa permissão. IV. Se os usuários tinham permissão para realizar comandos DML na tabela Pessoa, perdem essa permissão, pois já não podem consultá-la. É verdade apenas o que se afirma em: Escolha uma opção: II, III, IV III, IV I, II, III, IV I, II II, III Sua resposta está correta. A resposta correta é: II, III A linguagem SQL é composta por diversos comandos que permitem construir, manipular e administrar bancos de dados. Um importante recurso dos SGBD é o controle de transações. Neste contexto, analise as afirmativas: I. Dados manipulados por uma transação ativa não podem ser visualizados por outras transações. II. Transações finalizadas com o COMMIT tem suas operações desfeitas. III. Transações que são finalizadas com sucesso, tem seus resultados efetivados no banco de dados através do comando ROLLBACK. IV. Transações podem ser parcialmente executadas e isto garante que sejam atômicas. É correto apenas o que se afirma em: Escolha uma opção: II, III, IV I I, II, III, IV III I, II, IV Sua resposta está correta. A resposta correta é: I Questão 16 Correto Atingiu 2,50 de 2,50 O comando CREATE TABLE permite definir as tabelas (relações) do banco de dados, suas propriedades (atributos/campos), seus respectivos tipos de dados, restrições de cada campo (obrigatoriedade, valores predefinidos, chaves, etc.) e restrições da tabela (chave primária, chaves estrangeiras e chaves únicas). Analise as seguintes afirmativas sobre o comando CREATE TABLE: I. Devemos especificar que um campo é NOT NULL, quando ele é um campo de preenchimento opcional. II. Para definir uma chave primária simples, colocamos Primary Key ao lado da definição do campo. III. Para definir a chave estrangeira, devemos criar primeiro a tabela que será referenciada. IV. Para definir uma chave primária composta é necessário colocar Primary Key ao lado da definição de cada um dos campos que compõe a chave primária. V. Foreign key é o tipo de uma constraint que define uma chave estrangeira. É verdadeiro apenas o que se afirma em: Escolha uma opção: I, II, III, IV, V II, III, V II, IV, V II I, II, III Sua resposta está correta. A resposta correta é: II, III, V Questão 17 Completo Vale 2,50 ponto(s). Considere os seguintes comandos de criação de tabelas. CREATE TABLE FUNCIONARIO (CODIGO_FUNCIONARIO NUMBER(4) CONSTRAINT FUNCIONARIO_PK PRIMARY KEY, NOME VARCHAR2(100) NOT NULL, DATA_NASCIMENTO DATE, SEXO VARCHAR2(1)) CREATE TABLE PROJETOS (CODIGO_PROJETO NUMBER(4)CONSTRAINT PROJETOS_PK PRIMARYKEY, DESCRICAO VARCHAR2(100)NOT NULL, CODIGO_FUNCIONARIO NUMBER(4) CONSTRAINT PROJETOCOORDENADOR_FK REFERENCES FUNCIONARIO(CODIGO_FUNCIONARIO)) CREATE TABLE FUNCIONARIOPARTICIPARPROJETO (CODIGO_FUNCIONARIO NUMBER(4) NOT NULL CONSTRAINT FUNCIONARIOPARTICIPAR_FK REFERENCES FUNCIONARIO(CODIGO_FUNCIONARIO), CODIGO_PROJETO NUMBER(4) NOT NULL CONSTRAINT PROJETOPARTICIPAR_FK REFERENCES PROJETOS(CODIGO_PROJETO), CONSTRAINT FUNCIONARIOPROJETO_PK PRIMARY KEY(CODIGO_FUNCIONARIO, CODIGO_PROJETO)) RESPONDA: A) Qual a estrutura (esquema relacional resumido) das tabelas criadas? B) Escreva o comando SQL pra consultar os funcionários que não participam de projetos. (use EXISTS) A) Qual a estrutura (esquema relacional resumido) das tabelas criadas? FUNCIONARIO(CODIGO_FUNCIONARFIO, NOME, DATA_NASCIMENTO,SEXO) PROJETOS(CODIGO_PROJETO,DESCRICAO, #CODIGO_FUNCIONARIO) FUNCIONARIOPARTICIPAPROJETO(#CODIGO_FUNCIONARIO,#CODIGO_PROJETO) B) Escreva o comando SQL para consultar os funcionários que não participam de projetos. (use EXISTS) SELECT NOME FROM E_FINCIONARIO F WHERE NOT EXISTS( SELECT *FROM E_FUNCIONARIOPARTICIPAPROJETO FPP WHERE F.CODIGO_FUNCIONARIO=FPP.CODIGO_FUNCIONARIO) Questão 18 Completo Vale 2,50 ponto(s). 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 Deseja-se um relatório que tenha os nomes dos produtos que usam todas as matérias primas. Você deve: - reescrever o texto dessa consulta em termos de duas negações. (Consultar os nomes dos produtos que usam todas as matérias primas.) - escrever a consulta em SQL para obter esse resultado SELECT nome FROM Produto P WHERE NOT EXISTS( SELECT * FROM MateriaPrima M WHERE NOT EXISTS( SELECT * FROM ProdutoMateriaPrima PMP WHERE P.IdProduto = PMP.IdProduto AND M.IdMateriaPrima = PMP.IdMateriaPrima)) Questão 19 Completo Vale 2,50 ponto(s). 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 Escreva uma consulta (SQL) que retorne a descrição de cada tipo de matéria-prima (tabela: TipoMateriaPrima) com a quantidade de matérias-primas classificadas em cada tipo. SELECT D.descricao, COUNT(DISTINTC IdTipoMateriaPrima) FROM TipoMateriaPrima GROUP BY IdTipoMateriaPrima Questão 20 Completo Vale 2,50 ponto(s). 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 Escreva uma consulta SQL que mostre os nomes dos produtos com o nome de cada um dos seus componentes. SELECT P.nome, C.nome FROM Produto P INNER JOIN ProdutoComposto PC ON(PC.IdProduto = P.IdProduto) INNER JOIN Produto B ON(PC.IdProduto = B.IdProduto)