Prévia do material em texto
26/03/2022 13:09 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_23830797_1&course_id=_178368_1&content_id=_79611… 1/13 Revisar envio do teste: Clique aqui para iniciar o Quiz SP_GRAD_686276_2201_01 2104-BANCO DE DADOS Quiz REVISAR ENVIO DO TESTE: CLIQUE AQUI PARA INICIAR O QUIZ Usuário SAVIO RODRIGUES MERLIN Curso 2104-BANCO DE DADOS Teste Clique aqui para iniciar o Quiz Iniciado 26/03/22 12:35 Enviado 26/03/22 13:08 Data de vencimento 30/03/22 23:59 Status Completada Resultado da tentativa 10 em 10 pontos Tempo decorrido 32 minutos Resultados exibidos Todas as respostas, Respostas enviadas, Respostas corretas, Comentários Pergunta 1 Considere as seguintes tabelas: CREATE TABLE paciente (id int primary key, nome text); CREATE TABLE medico (id int primary key, nome text); CREATE TABLE consulta (data date, id_paciente int, id_medico int); Considere agora as seguintes consultas realizadas sobre as tabelas acima definidas: I) SELECT p.nome as nome_paciente, m.nome as nome_medico, c.data FROM paciente p, consulta c, medico m WHERE c.id_paciente = p.id and c.id_medico = m.id and data = curdate(); II) SELECT p.nome as nome_paciente, m.nome as nome_medico, c.data FROM paciente p JOIN consulta c ON c.id_paciente = p.id JOIN medico m ON c.id_medico = m.id WHERE data = curdate(); Sala de Aula Tutoriais 1 em 1 pontos SAVIO RODRIGUES MERLIN 41 https://senacsp.blackboard.com/webapps/blackboard/execute/courseMain?course_id=_178368_1 https://senacsp.blackboard.com/webapps/blackboard/content/listContent.jsp?course_id=_178368_1&content_id=_7961098_1&mode=reset https://www.ead.senac.br/ https://senacsp.blackboard.com/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_193_1 https://senacsp.blackboard.com/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_210_1 https://senacsp.blackboard.com/webapps/login/?action=logout 26/03/2022 13:09 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_23830797_1&course_id=_178368_1&content_id=_79611… 2/13 Resposta Selecionada: e. Respostas: a. b. c. d. e. Comentário da resposta: III) SELECT p.nome as nome_paciente, m.nome as nome_medico, c.data FROM paciente p JOIN consulta c JOIN medico m ON c.id_paciente = p.id and c.id_medico = m.id WHERE data = curdate(); IV) SELECT p.nome as nome_paciente, m.nome as nome_medico, c.data FROM paciente p INNER JOIN consulta c INNER JOIN medico m ON c.id_paciente = p.id and c.id_medico = m.id WHERE data = curdate(); Obs: “curdate()” retorna a data corrente. Assinale a opção que iden�fica corretamente os resultados ob�dos para essas consultas. As consultas I, II, III e IV terão o mesmo resultado, independentemente do conteúdo das tabelas. As consultas I e II terão o mesmo resultado. As consultas III e IV possuem erros de sintaxe. As consultas I e II terão um mesmo resultado, enquanto as consultas III e IV terão um outro resultado (o resultado de III será o mesmo de IV). Todas as consultas são válidas. As consultas I e II terão um mesmo resultado, enquanto as consultas III e IV terão resultados diferentes (o resultado de III difere de I, II e IV; e o resultado de IV difere de I, II e III). Todas as consultas são válidas. As consultas I, II, III e IV terão o mesmo resultado, desde que todos os pacientes e médicos estejam vinculados a consultas marcadas para a data corrente. As consultas I, II, III e IV terão o mesmo resultado, independentemente do conteúdo das tabelas. e. No MySQL, o JOIN padrão (consulta II) é o INNER JOIN (consulta IV), o que é a mesma coisa que o resultado do produto cartesiano filtrado pela condição de junção (consulta I). Além disso, para fazer a junção de três tabelas, há duas formas possíveis: “tabela 1 JOIN tabela 2 JOIN tabela 3 ON condição 1 and condição 2” (consulta III) e “tabela 1 JOIN tabela 2 ON condição 1 JOIN tabela 3 ON condição 2” (consulta II). Pergunta 2 1 em 1 pontos 26/03/2022 13:09 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_23830797_1&course_id=_178368_1&content_id=_79611… 3/13 Resposta Selecionada: b. Respostas: a. b. c. d. e. Comentário da resposta: O diagrama a seguir representa uma modelagem ER para bandas de rock. Descrição acessível: Figura possui dois retângulos: “Banda de rock” (esquerda) e “Músico” (direita). Possui ainda quatro losangos no centro (um em baixo do outro): “vocalista”, “guitarrista”, “baixista” e “baterista”. Para cada losango há uma ligação do “Banda de rock” pro losango, e do losango pro “Músico”. Todos os losangos possuem o número 1 à esquerda (lado da “Banda de rock”). O losango “guitarrista” possui um “N” à direita (lado do “Músico”), enquanto que os outros losangos possuem um “1” à direita. Considere as seguintes afirmações: I – Uma banda de rock pode ter vários guitarristas. II – Uma banda de rock deve possuir exatamente quatro músicos. III – Uma banda de rock não pode possuir mais que um baterista. IV – Uma banda de rock é obrigada a ter um baixista. V – Uma banda de rock não pode possuir um flautista. VI – Um músico pode pertencer a várias bandas. Para um banco de dados que u�lize a modelagem apresentada no diagrama, assinale a alterna�va que apresente todas as afirmações verdadeiras. I, III, IV e V. I, III, IV e IV. I, III, IV e V. I e VI. I, III, IV, V e VI. II, III e IV. b. O diagrama mostra que uma banda de rock deve possuir um vocalista, um ou mais guitarristas, um baixista e um baterista. O diagrama também mostra que cada músico deve pertencer a exatamente uma banda. Pergunta 3 1 em 1 pontos https://senacsp.blackboard.com/bbcswebdav/pid-7961106-dt-content-rid-239590714_1/xid-239590714_1 26/03/2022 13:09 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_23830797_1&course_id=_178368_1&content_id=_79611… 4/13 Resposta Selecionada: e. Respostas: a. b. c. d. e. Imagine o site de uma grande loja global de livros. Há sempre muitos clientes comprando livros na loja, e de vários lugares do mundo. Considere que o site da loja armazene seus dados (livros no estoque, vendas, etc.) em um banco de dados MySQL. Considere ainda que essa loja estabeleceu uma política de backup on-line e incremental para o banco MySQL, sendo o backup executado de hora em hora. Considere agora as afirmações: I. Sendo uma loja global, não há horário sem usuários ativos, o que inviabiliza o backup off-line. II. Havendo um grande volume de dados, o backup completo periódico exigiria muito espaço em disco, o que sairia muito caro. III. Um backup on-line deve ser feito o mais rápido possível, e o backup completo poderia demorar muito. Sobre essas afirmações, assinale a alterna�va correta. As afirmações I, II e III fazem sen�do e jus�ficam a polí�ca de backup escolhida. As afirmações I, II e III fazem sen�do, mas nenhuma delas ajuda a jus�ficar a polí�ca de backup escolhida. As afirmações I e III fazem sen�do e jus�ficam a polí�ca de backup escolhida. A afirmação II faz sen�do, mas não jus�fica a polí�ca de backup escolhida, já que custo é um fator a ser ignorado em decisões técnicas. As afirmações I, II e III não fazem sen�do. As afirmações II e III fazem sen�do e jus�ficam a polí�ca de backup escolhida. A afirmação I não faz sen�do, pois em algum momento todos os usuários vão estar dormindo. As afirmações I, II e III fazem sen�do e jus�ficam a polí�ca de backup escolhida. 26/03/2022 13:09 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_23830797_1&course_id=_178368_1&content_id=_79611… 5/13 Comentário da resposta: e. As afirmações I, II e III apresentam motivospara evitar o backup completo (todo o banco é copiado) e o off-line (no qual o banco tem que parar). As afirmações justificam a política de backup, porque o backup completo se contrapõe ao backup incremental, enquanto o backup off-line se contrapõe ao backup on-line. Pergunta 4 Resposta Selecionada: c. Respostas: a. b. c. Considere o seguinte texto, que faz parte de uma descrição comercial na home page de uma suíte de produtos, servindo de link para mais detalhes sobre um produto específico. Pentaho Business Analytics Empodere consumidores de dados com análises interativas, visualizações em tempo real e modelagens preditivas, com mínimo suporte de TI. Pentaho Platform. [s. d.]. Disponível em: https://www.hitachivantar a.com/en-us/products/data-management-analytics/pentaho-platform.ht ml. Acesso em: 15 jul. 2020. Assinale a alterna�va que melhor esclarece o texto acima. Os “consumidores de dados” são pessoas (analistas, gerentes, etc.) que querem explorar diretamente os dados sem a necessidade de depender de pessoas especialistas em TI (“com mínimo suporte de TI”). Os “consumidores de dados” são painéis de monitoração que servem aos especialistas de TI. Assim, o suporte da TI age somente quando necessário. Os “consumidores de dados” são aplicações resilientes que possuem indisponibilidade mínima, mesmo sem a intervenção constante de operadores de TI. Os “consumidores de dados” são pessoas (analistas, gerentes, etc.) que querem explorar diretamente os dados sem a necessidade de depender de pessoas especialistas em TI (“com mínimo suporte de TI”). 1 em 1 pontos 26/03/2022 13:09 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_23830797_1&course_id=_178368_1&content_id=_79611… 6/13 d. e. Comentário da resposta: Os “consumidores de dados” são pessoas (analistas, gerentes, etc.) que querem explorar diretamente os dados, mas desde que minimamente tenham todo o suporte do pessoal de TI ao seu dispor. A chamada leva o leitor a acreditar que é possível explorar os dados diretamente. Mas isso é impossível, já que sempre deve exis�r uma aplicação projetada pela TI corpora�va entre o usuário final e os dados. c. O Pentaho é uma ferramenta de análise de dados que dispensa a necessidade de uma aplicação geradora de relatórios e o usuário final. Esse estilo arquitetural de análise de dados é o estilo dos data warehouses. Pergunta 5 Resposta Selecionada: c. Respostas: a. b. c. Considere a seguinte tabela de pratos disponíveis em um restaurante: CREATE TABLE pratos (nome text, pais_origem text, vegetariano boolean, preco float); Qual alternativa seleciona somente os pratos vegetarianos, mostrando a diferença entre o preço médio do prato e o preço do prato vegetariano mais caro de seu país de origem? SELECT nome, (SELECT max(preco) FROM pratos p2 WHERE p1.pais_origem = p2.pais_origem and vegetariano) – preco as diferenca_pro_vegetariano_mais_caro FROM pratos p1 WHERE vegetariano; SELECT nome, (SELECT max(preco) FROM pratos p2 WHERE vegetariano GROUP BY pais_origem) – preco as diferenca_pro_vegetariano_mais_caro FROM pratos p1 WHERE vegetariano; SELECT nome, (SELECT max(preco) FROM pratos p2 WHERE p1.pais_origem = p2.pais_origem) – preco as diferenca_pro_vegetariano_mais_caro FROM pratos p1 WHERE vegetariano; SELECT nome, (SELECT max(preco) FROM pratos p2 WHERE p1.pais_origem = p2.pais_origem and vegetariano) – preco as diferenca_pro_vegetariano_mais_caro FROM pratos p1 WHERE vegetariano; 1 em 1 pontos 26/03/2022 13:09 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_23830797_1&course_id=_178368_1&content_id=_79611… 7/13 d. e. Comentário da resposta: SELECT nome, (SELECT max(preco) FROM pratos p2 WHERE p1.pais_origem = p2.pais_origem and vegetariano) – preco as diferenca_pro_vegetariano_mais_caro FROM pratos p1; SELECT nome, (SELECT max(preco) FROM pratos WHERE vegetariano) – preco as diferenca_pro_vegetariano_mais_caro FROM pratos WHERE vegetariano; c. É preciso selecionar somente os pratos vegetarianos (“WHERE vegetariano” no final) e mostrar a diferença entre cada prato e “alguma coisa” (“alguma coisa” – preco). Essa “alguma coisa” deve ser o preço mais caro do prato vegetariano daquele país. Para ser vegetariano, há o “and vegetariano” no sub select, e, para ser do mesmo país, há o “WHERE p1.pais_origem = p2.pais_origem”, comparando os países do select mais interno (p2) com o do select mais externo (p1). Pergunta 6 Resposta Selecionada: c. Respostas: a. b. c. d. Considere a seguinte tabela: Tabela de municípios: nome uf populacao area São Paulo SP 12 252 023 1 521 Belo Horizonte MG 2 512 070 331 Sorocaba SP 679 378 450 Guaratinguetá SP 121 798 752 Rancharia SP 29 707 1 587 Altamira PA 114 594 159 533 Fonte: https://cidades.ibge.gov.br/ É correto afirmar que essa tabela: Possui os campos “nome”, “uf”, “populacao” e “area”. Possui 4 campos e 7 registros. Possui 4 registros. Possui os campos “nome”, “uf”, “populacao” e “area”. 1 em 1 pontos 26/03/2022 13:09 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_23830797_1&course_id=_178368_1&content_id=_79611… 8/13 e. Comentário da resposta: U�liza todos os �pos de colunas presentes no MySQL: text e integer. Não é uma tabela; na verdade é uma tupla. c. Cada coluna que vemos corresponde a um campo da tabela do banco de dados. A primeira linha que vemos representa os nomes dos campos; já as linhas subsequentes representam os registros da tabela do banco de dados. Pergunta 7 Resposta Selecionada: e. Respostas: Considere a tabela abaixo, denominada tab1 e contendo as colunas col1 e col2. col1 col2 10 1 20 2 30 3 Descrição acessível: Tabela com duas colunas: col1 e col2. Conteúdo composto apenas de números. A SQL possui um recurso que possibilita a execução de operações aritméticas entre as colunas, como demonstra a seguinte consulta: > SELECT col1 + col2 as soma FROM tab1; soma 11 22 33 Considere ainda a existência de uma tabela acidentes_aereos, em que cada registro representa um acidente aéreo e que possui as colunas quantidade_passageiros e quantidade_vitimas_fatais. Assinale a alternativa que corretamente consulta a porcentagem de vítimas fatais (em relação ao total de passageiros) de cada acidente na tabela acidentes_aereos. SELECT quantidade_vitimas_fatais / quantidade_passageiros * 100 as porcentagem_sobreviventes FROM acidentes_aereos; 1 em 1 pontos 26/03/2022 13:09 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_23830797_1&course_id=_178368_1&content_id=_79611… 9/13 a. b. c. d. e. Comentário da resposta: (SELECT quantidade_vitimas_fatais FROM acidentes_aereos) / (SELECT quantidade_passageiros FROM acidentes_aereos) * 100; SELECT porcentagem_sobreviventes FROM acidentes_aereos; SELECT IN acidentes_aereos VALUE quantidade_vitimas_fatais / quantidade_passageiros * 100 as porcentagem_sobreviventes; SELECT quantidade_vitimas_fatais FROM quantidade_passageiros * 100 IN acidentes_aereos; SELECT quantidade_vitimas_fatais / quantidade_passageiros * 100 as porcentagem_sobreviventes FROM acidentes_aereos; e. Para obter a porcentagem de ví�mas é preciso dividir, em cada registro, e quan�dade de ví�mas pela quan�dade de passageiros e mul�plicar essa proporção por 100. Pergunta 8 Considere as seguintes tabelas: CREATE TABLE bares (nome text, preco float); CREATE TABLE restaurantes (nome text, preco float); CREATE TABLE cafes (nome text, preco float); Assinale a alternativa que forneça um significado plausível para o seguinte comando: SELECT nome, preco FROM ( SELECT nome, preco FROM bares WHERE preco = (SELECT min(preco)FROM bares) UNION SELECT nome, preco FROM restaurantes WHERE preco = (SELECT min(preco) FROM restaurantes) UNION SELECT nome, preco FROM cafes WHERE preco = (SELECT min(preco) FROM cafes) ) as lazer WHERE preco < 100; 1 em 1 pontos 26/03/2022 13:09 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_23830797_1&course_id=_178368_1&content_id=_7961… 10/13 Resposta Selecionada: b. Respostas: a. b. c. d. e. Comentário da resposta: Um rapaz está procurando um lugar para marcar um encontro. Ele está em dúvida entre um restaurante, um bar ou um café. Como o rapaz está com pouco dinheiro, ele vai considerar somente as opções mais baratas de cada categoria, e desde que o preço da diversão não saia mais que 100 reais. Um inves�dor está procurando um estabelecimento para comprar. Ele está analisando um certo conjunto de restaurantes, bares e cafés. Ele pretende comprar o mais barato entre todos esses estabelecimentos, desde que o preço não ultrapasse 100 mil reais. Um rapaz está procurando um lugar para marcar um encontro. Ele está em dúvida entre um restaurante, um bar ou um café. Como o rapaz está com pouco dinheiro, ele vai considerar somente as opções mais baratas de cada categoria, e desde que o preço da diversão não saia mais que 100 reais. Um inves�dor pretende comprar um restaurante, um bar e um café. Mas o café ele só vai comprar se custar menos de 100 mil reais. Uma construtora aluga espaços para estabelecimentos comerciais, como restaurantes, bares e cafés. Um analista dessa construtora está montando um relatório com os aluguéis mais rentáveis para a construtora. A consulta não significa nada, pois possui um erro de sintaxe. b. A consulta retornará a princípio três registros: o restaurante mais barato, o bar mais barato e o café mais barato. Mas cada uma dessas três linhas só será exibida se seu preço correspondente for menor que 100. Pergunta 9 Analise a seguinte sequência de comandos realizada com o usuário administrador (aquele que possui todos os privilégios sobre a instância do SGBD): CREATE USER 'u1'@'%' IDENTIFIED BY 'senha'; CREATE USER 'u2'@'%' IDENTIFIED BY 'senha'; CREATE USER 'u3'@'%' IDENTIFIED BY 'senha'; CREATE DATABASE db1; USE db1; CREATE TABLE tb1 (id int, x int); CREATE TABLE tb2 (id int, x int); 1 em 1 pontos 26/03/2022 13:09 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_23830797_1&course_id=_178368_1&content_id=_7961… 11/13 Resposta Selecionada: b. Respostas: a. GRANT SELECT ON db1.* TO u1; GRANT SELECT, DELETE ON db1.* TO u2; GRANT UPDATE, INSERT ON db1.tb1 TO u3; CREATE DATABASE db2; USE db2; CREATE TABLE tb1 (id int, x int); CREATE ROLE r1; GRANT ALL ON db2.* TO r1; GRANT r1 TO u3; SET DEFAULT ROLE ALL TO u3; FLUSH PRIVILEGES; Considerando que os comandos apresentados já foram executados (todos com sucesso), associe a lista de comandos à lista de trechos das saídas produzidas por esses comandos. Lista de comandos (o sinal $ indica um comando realizado no sistema operacional e o sinal > indica um comando realizado no MySQL): (I) $ mysql -u u1 db2 -psenha (II) $mysql -u u2 db1 -psenha > DROP tb2; (III) $ mysql -u u3 db1 -psenha > UPDATE tb1 SET x = 2*x WHERE x > 10; (IV) $ mysql -u u3 db2 -psenha > UPDATE tb1 SET x = 2*x WHERE x > 10; Lista de trechos das saídas: ( ) SELECT command denied to user ( ) Access denied for user ( ) Query OK ( ) You have an error in your SQL syntax A sequência correta dessa associação é: (III) (I) (IV) (II) (IV) (I) (III) (II) 26/03/2022 13:09 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_23830797_1&course_id=_178368_1&content_id=_7961… 12/13 b. c. d. e. Comentário da resposta: (III) (I) (IV) (II) (IV) (I) (II) (III) (I) (II) (III) (IV) (IV) (III) (II) (I) b. O comando I resultará em acesso negado, pois u1 não tem nenhum privilégio sobre db2. O comando II resultará em erro de sintaxe, pois o comando correto seria “DROP TABLE tb2”. O comando III resultará em erro de permissão, pois, apesar de ter direito ao UPDATE, u3 não possui direito de SELECT em db1.tb1, e a condição do WHERE impõe a necessidade de leitura da tabela. Já o comando IV resultará em sucesso, pois u3 recebeu os privilégios de r1, que tem acesso total a db2. Pergunta 10 Resposta Selecionada: Considere uma tabela que registre as doações recebidas pelos partidos políticos para as eleições de 2014 no estado de São Paulo (Fonte: http://dados.gov.br/dat aset/prestacao-de-contas-das-campanhas-eleitorais). Considere que a tabela doacoes possui um schema conforme o seguinte comando: CREATE TABLE doacoes ( UF, SiglaPartido, DataReceita, Valor REAL, TipoReceita, FonteRecurso, EspecieRecurso, DescricaoReceita, DocumentoDoador, NomeDoador ); Considere agora a seguinte consulta SQL: SELECT SiglaPartido, sum(Valor) as total_recebido FROM doacoes GROUP BY SiglaPartido ORDER BY total_recebido DESC LIMIT 5; Assinale a alterna�va que indica qual saída o comando acima pode produzir. 1 em 1 pontos http://dados.gov.br/dataset/prestacao-de-contas-das-campanhas-eleitorais 26/03/2022 13:09 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_23830797_1&course_id=_178368_1&content_id=_7961… 13/13 Sábado, 26 de Março de 2022 13h08min26s BRT e. Respostas: a. b. c. d. e. Comentário da resposta: SiglaPartido total_recebido ------------ -------------- PSDB 57058765.03 PT 37767199.76 SD 18960025.0 PSD 17706828.38 PMDB 8748201.0 … You have an error in your SQL syntax ... SiglaPartido total_recebido ------------ -------------- PCO 91.66 PCB 6950.0 PRTB 7327.9 PDT 10000.0 PSC 18620.0 SiglaPartido Valor ------------ ---------- PSDB 50000.0 PSB 50000.0 PT 700000.0 PT 1615000.0 PT 500000.0 SiglaPartido total_recebido ------------ -------------- PSDB 57058765.03 SiglaPartido total_recebido ------------ -------------- PSDB 57058765.03 PT 37767199.76 SD 18960025.0 PSD 17706828.38 PMDB 8748201.0 e. O “GROUP BY SiglaPar�do” indica que cada par�do deve aparecer somente uma vez na saída. O LIMIT 5 indica que a saída deve ter apenas 5 registros. O “ORDER BY total_recebido DESC” indica que a coluna total_recebido deve estar em ordem decrescente. ← OK