Baixe o app para aproveitar ainda mais
Prévia do material em texto
20/09/2021 09:08 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_20936857_1&course_id=_156956_1&co… 1/16 REVISAR ENVIO DO TESTE: CLIQUE AQUI PARA INICIAR O QUIZ Pergunta 1 6.1.2.1 Orientações do usuário final para a segurança de senha Use a opção --password = password ou -ppassword na linha de comando. Por exemplo: shell> mysql -u francis -pfrank db_name Aviso Isso é conveniente, mas inseguro. Em alguns sistemas, sua senha fica visível para programas de status do sistema, como ps, que podem ser invocados por outros usuários para exibir linhas de comando. Os clientes MySQL geralmente substituem o argumento da senha da linha de comandos com zeros durante sua sequência de inicialização. No entanto, ainda há um breve intervalo durante o qual o valor é visível. Além disso, em alguns sistemas, essa estratégia de substituição é ineficaz e a senha permanece visível para o ps. (Os sistemas SystemV Unix e talvez outros estejam sujeitos a esse problema.) Se o seu ambiente operacional estiver configurado para exibir seu comando atual na barra de título da janela do terminal, a senha permanecerá visível enquanto o comando estiver em execução, mesmo se o comando já estiver fora de vista. MYSQL. MySQL 8.0 Reference Manual. 2020. Sala de Aula Tutoriais 1 em 1 pontos 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 20/09/2021 09:08 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_20936857_1&course_id=_156956_1&co… 2/16 Resposta Selecionada: a. Respostas: a. b. c. d. e. Comentário da resposta: O trecho acima do manual do MySQL explica que um determinado método de login possui um certo risco de segurança. Indique qual seria uma alternativa segura ao método discutido. Logar com a opção -p sem passar o parâmetro (senha) no comando, o que fará com que a senha seja lida a par�r de um prompt seguro do terminal. Logar com a opção -p sem passar o parâmetro (senha) no comando, o que fará com que a senha seja lida a par�r de um prompt seguro do terminal. Logar com a opção -p sem passar o parâmetro (senha) no comando, o que fará com que o usuário anônimo seja u�lizado. Logar como o discu�do, passando a senha na linha de comando, mas especificando o uso de uma conexão SSL segura entre cliente e banco de dados. Logar como o discu�do, passando a senha na linha de comando, mas usando um contêiner Docker. O manual do MySQL está defasado. Na úl�ma versão disponível do MySQL, o método discu�do é inteiramente seguro. a. Com a senha sendo digitada em modo interativo (com a opção -p), não há como outro programa capturar a senha digitada, a menos que haja algum programa espião que capture as teclas sendo digitadas. Pergunta 2 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://dado s.gov.br/dataset/prestacao-de-contas-das-campanhas-eleitorais). Considere que a tabela doacoes possui um schema conforme o seguinte comando: CREATE TABLE doacoes ( UF, 1 em 1 pontos http://dados.gov.br/dataset/prestacao-de-contas-das-campanhas-eleitorais 20/09/2021 09:08 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_20936857_1&course_id=_156956_1&co… 3/16 Resposta Selecionada: e. Respostas: a. b. c. 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. 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 20/09/2021 09:08 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_20936857_1&course_id=_156956_1&co… 4/16 d. e. Comentário da resposta: 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. Pergunta 3 Resposta Selecionada: d. Respostas: a. 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.hitachiva ntara.com/en-us/products/data-management-analytics/pentaho-pl atform.html. 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, mas desde que minimamente tenham todo o suporte do pessoal de TI ao seu dispor. 0 em 1 pontos 20/09/2021 09:08 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_20936857_1&course_id=_156956_1&co… 5/16 b. c. d. e. Comentário da resposta: 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”). 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 4 Ao elaborar um sistema, um desenvolvedor criou uma tabela no MySQL utilizando o seguinte comando: CREATE TABLE livro ( titulo TEXT, autor TEXT, editora TEXT, ano INTEGER); O desenvolvedor deve agora documentar essa tabela por meio de um diagrama ER. Qual das alternativas exibe um diagrama que o desenvolvedorpoderia utilizar para realizar essa documentação? 1 em 1 pontos 20/09/2021 09:08 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_20936857_1&course_id=_156956_1&co… 6/16 Resposta Selecionada: d. Respostas: a. b. Descrição acessível: Figura possui um retângulo “Livro” associado (ligado por retas) a quatro circunferências. As circunferências são “título”, “autor”, “editora” e “livro”. Descrição acessível: Figura possui um retângulo “Livro” associado (ligado por uma reta) a uma circunferência. O rótulo das circunferências é “título, autor, editora, livro”. 20/09/2021 09:08 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_20936857_1&course_id=_156956_1&co… 7/16 c. d. e. Descrição acessível: Figura possui um grande retângulo “Livro” associado (ligado por retas) a quatro pequenos retângulos. Os retângulos pequenos são “título”, “autor”, “editora” e “livro”. Descrição acessível: Figura possui um retângulo cujo texto possui duas linhas. Primeira linha é “Livro”. Segunda linha é “título, autor, editora, ano”. Descrição acessível: Figura possui um retângulo “Livro” associado (ligado por retas) a quatro circunferências. As circunferências são “título”, “autor”, “editora” e “livro”. 20/09/2021 09:08 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_20936857_1&course_id=_156956_1&co… 8/16 Comentário da resposta: Descrição acessível: Figura possui um grande quadrado “Livro” com quatro pequenos quadrados dentro desse quadrado maior. Os quadrados pequenos são: “título”, “autor”, “editora” e “livro”. d. A opção d é a que segue corretamente a nomenclatura visual de diagramas ERs: entidades são representadas como retângulos, e os atributos das entidades são representados como circunferências associadas ao retângulo da entidade. Pergunta 5 Resposta Selecionada: b. Respostas: a. b. c. d. Considere a seguinte modelagem feita para o banco de dados de um sistema de estacionamento: Descrição acessível: tabela estadia com campos inicio, fim e placa_veiculo; tabela veiculo com campos placa, marca, modelo, cor, cpf_dono e nome_dono; estadia.placa_veiculo é chave estrangeira para veiculo.placa. Assinale a alternativa que indica em que forma normal se encontra essa modelagem. 2FN. 1FN. 2FN. 3FN. BCFN. 1 em 1 pontos 20/09/2021 09:08 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_20936857_1&course_id=_156956_1&co… 9/16 e. Comentário da resposta: Essa modelagem não atende nem à 1FN. b. Essa modelagem viola a 3FN, pois cpf_dono e nome_dono são funcionalmente dependentes entre si. Como há uma violação da 3FN e não há violações nem da 2FN nem da 1FN, então a modelagem apresentada está na 2FN. A modelagem não viola a 1FN pois não há campos mul�valorados. Ela também não viola a 2FN, o que ocorreria se algum atributo não primário fosse funcionalmente dependente de parte de alguma chave da tabela. Pergunta 6 Resposta Selecionada: a. Respostas: a. 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, mas nenhuma delas ajuda a jus�ficar a polí�ca de backup escolhida. 0 em 1 pontos 20/09/2021 09:08 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_20936857_1&course_id=_156956_1&c… 10/16 b. c. d. e. Comentário da resposta: 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. e. As afirmações I, II e III apresentam motivos para 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 7 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); 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; 1 em 1 pontos 20/09/2021 09:08 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_20936857_1&course_id=_156956_1&c… 11/16 Resposta Selecionada: b. Respostas: a. b. c. d. 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) (III) (I) (IV) (II) (IV) (I) (II) (III) (I) (II) (III) (IV) 20/09/2021 09:08 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_20936857_1&course_id=_156956_1&c… 12/16 e. Comentário da resposta: (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 8 Níveis de abstração: da realidade ao dado A evolução dahumanidade pode ser encarada em parte como um trajeto no sentido da aquisição progressiva da capacidade individual de abstração. De um ser intimamente ligado ao universo e em particular à natureza, o ser humano individual tornou-se ao longo do tempo um ente independente, isolado e com cada vez maior capacidade de introspecção objetiva, isto é, sem que este dependa de fatores subjetivos, temporais e individuais. (SETZER, V. W.; SILVA, F. S. C. da. Banco de dados: aprenda o que são, melhore seu conhecimento, construa os seus. São Paulo: Edgard Blücher, 2005.) Assim como Setzer & Silva consideram a história da humanidade como um crescente na capacidade de abstração, a história da programação de computadores também pode ser encarada como uma busca por formas cada vezes mais abstratas de dar instruções a máquinas. Considere essas três formas de se utilizar o computador para se obter a previsão do tempo: I – SELECT temperatura, precipitacao FROM previsao WHERE data = CURDATE(); II – Computador, por favor, me dê a previsão do tempo de hoje. III - temperatura = None precipitacao = None 1 em 1 pontos 20/09/2021 09:08 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_20936857_1&course_id=_156956_1&c… 13/16 Resposta Selecionada: e. Respostas: a. b. c. d. e. Comentário da resposta: for prev in previsoes: if prev.data = date.today(): temperatura = prev.temperatura precipitacao = prev.precipitacao print(“ temperatura=”, temperatura) print(“precipitacao=”, precipitacao) Assinale a alterna�va que corretamente ordena os itens acima em ordem crescente de abstração. III, I, II. I, II, III. III, II, I. II, I, III. Todas os itens estão no mesmo nível de abstração. III, I, II. Texto feedback Pergunta 9 Placa do Mercosul: tire suas dúvidas e saiba o que já mudou no projeto. As novas placas no padrão Mercosul finalmente começaram a ser usadas no Brasil – inicialmente no Rio de Janeiro e gradualmente em outros Estados .… Como serão as sequências? Figura - O padrão novo troca o segundo número por uma letra 1 em 1 pontos 20/09/2021 09:08 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_20936857_1&course_id=_156956_1&c… 14/16 Descrição acessível: Figura mostra duas placas de carro. Placa de cima é uma placa cinza (padrão antigo – no topo há a sigla do estado e nome do município) e a placa de baixo é uma placa Mercosul (padrão novo – fundo branco, topo azul, sem sigla do estado, sem nome do município e com bandeira do Brasil). A placa cinza possui numeração PHL4506, enquanto que a placa Mercosul possui a numeração PHL4F06. Os países do Mercosul que adotarem a nova placa, inclusive, poderão estabelecer essa distribuição de maneira distinta. Por exemplo, enquanto na Argentina a sequência tem sido LL NNN LL, no Brasil ela será inicialmente LLL NLNN para automóveis e LLL NN LN para motocicletas. Como ficará a sequência em carros já emplacados? Como a nova placa manterá a quantidade de caracteres, porém com mudanças na sequência de letras e números, quem fizer a troca da placa antiga pela nova em um veículo já registrado verá o segundo número (da esquerda para a direita) ser substituído por uma letra de acordo com a tabela abaixo: Como é Como ficará 0 A 1 B 2 C 3 D 4 E 5 F 6 G 7 H 8 I 9 J Com isso, uma placa QUA1960 se transformará em QUA1J60, com o “J” dando lugar ao “9”. (Placa do Mercosul: tire suas dúvidas e saiba o que já mudou. Quatro rodas. Disponível em: <https://quatrorodas.abril.com. br/auto-servico/placa-do-mercosul-tire-suas-duvidas-e-saiba-o- que-ja-mudou-no-projeto/>. Acesso em: mar. 2020). Considere a notícia acima e a existência de diversos bancos de dados no Brasil que armazenam veículos em seus registros. Considere que cada um desses bancos de dados tenha uma tabela de veículos, cuja chave primária é a placa. Considere ainda que em cada banco de dados há outras tabelas que apontam para a tabela de veículos por meio de chaves estrangeiras. Dadas essas considerações, assinale a alterna�va correta. https://quatrorodas.abril.com.br/auto-servico/placa-do-mercosul-tire-suas-duvidas-e-saiba-o-que-ja-mudou-no-projeto/ 20/09/2021 09:08 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_20936857_1&course_id=_156956_1&c… 15/16 Resposta Selecionada: d. Respostas: a. b. c. d. e. Comentário da resposta: Mesmo com essas mudanças, é possível manter a placa como chave primária. Quando um veículo trocar de placa, será preciso atualizar a chave primária na tabela de veículos e atualizar os valores das chaves estrangeiras nas outras tabelas. Como cada uma dessas operações pode violar as restrições do banco de dados, pode ser necessário algum subterfúgio como por exemplo a desabilitação das chaves estrangeiras durante a operação. As tabelas de veículos não aceitarão que um dado veículo troque de placa, uma vez que não é possível alterar o valor de uma chave primária. Quando um veículo trocar de placa, basta atualizar diretamente a chave primária na tabela de veículos (as chaves estrangeiras nunca impedirão essa mudança). Essa alteração no “espaço do problema” provocará obrigatoriamente uma necessidade de atualização no sistema para que se u�lize algum outro campo como chave primária: talvez o número de chassi ou mesmo um valor sequencial gerado automa�camente. Mesmo com essas mudanças, é possível manter a placa como chave primária. Quando um veículo trocar de placa, será preciso atualizar a chave primária na tabela de veículos e atualizar os valores das chaves estrangeiras nas outras tabelas. Como cada uma dessas operações pode violar as restrições do banco de dados, pode ser necessário algum subterfúgio como por exemplo a desabilitação das chaves estrangeiras durante a operação. A alteração apenas da chave primária na tabela de veículos não fere a integridade referencial do banco de dados, uma vez que a tabela de veículos permanece consistente. d. Embora a existência de chaves estrangeiras possa complicar a operação, é possível atualizar chaves primárias. Também é possível configurar as chaves estrangeiras para que sejam atualizadas automa�camente (“on update cascade”), mas essa opção não é default. Pergunta 10 0 em 1 pontos 20/09/2021 09:08 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_20936857_1&course_id=_156956_1&c… 16/16 Segunda-feira, 20 de Setembro de 2021 09h06min03s BRT Resposta Selecionada: c. Respostas: a. b. c. d. e. Comentário da resposta: Considere a uma tabela voos contendo um registro por voo e a coluna orig_estado_abrv, que representa o estado da federação de origem do voo. Qual será o resultado da consulta abaixo? SELECT count(*) FROM voos WHERE orig_estado_abrv = 'SP' AND orig_estado_abrv = 'RJ'; Duas linhas, uma linha com a quan�dade de voos par�ndo do estado de São Paulo e outra linha com a quan�dade de voos par�ndo do estado do Rio de Janeiro. A soma das quan�dades de voos par�ndo do estado de São Paulo e voos par�ndo do estado do Rio de Janeiro. Zero. Duas linhas, uma linha com a quan�dade de voos par�ndo do estado de São Paulo e outra linha com a quan�dade de voos par�ndo do estado do Rio de Janeiro. Uma linha com duas colunas; uma coluna com a quan�dade de voos par�ndo do estado de São Paulo e outra coluna com a quan�dade de voos par�ndo do estado do Rio de Janeiro. Um erro, pois a sintaxe está incorreta. b. Um mesmo registro não pode ter um valor (“SP”) para uma coluna e ao mesmo tempo outro valor (“RJ”) para a mesma coluna. Dessa forma nenhuma linha sa�sfará a condição imposta pelo WHERE. O que resultará numa contagem de zero linhas. ← OK javascript:launch('/webapps/blackboard/content/listContent.jsp?content_id=_6881087_1&course_id=_156956_1&nolaunch_after_review=true');20/09/2021 14:40 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_21133352_1&course_id=_156956_1&co… 1/15 Revisar envio do teste: Clique aqui para iniciar o Quiz STADCAS2DB_2102-2102-686276 2102-BANCO DE DADOS Quiz REVISAR ENVIO DO TESTE: CLIQUE AQUI PARA INICIAR O QUIZ Usuário Curso 2102-BANCO DE DADOS Teste Clique aqui para iniciar o Quiz Iniciado 20/09/21 09:10 Enviado 20/09/21 14:37 Data de vencimento 20/09/21 23:59 Status Completada Resultado da tentativa 9 em 10 pontos Tempo decorrido 5 horas, 27 minutos Resultados exibidos Todas as respostas, Respostas enviadas, Respostas corretas, Comentários Pergunta 1 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 Sala de Aula Tutoriais 1 em 1 pontos 91 https://senacsp.blackboard.com/webapps/blackboard/execute/courseMain?course_id=_156956_1 https://senacsp.blackboard.com/webapps/blackboard/content/listContent.jsp?course_id=_156956_1&content_id=_6881087_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 20/09/2021 14:40 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_21133352_1&course_id=_156956_1&co… 2/15 Resposta Selecionada: b. Respostas: a. b. c. d. e. Comentário da resposta: SELECT nome, preco FROM cafes WHERE preco = (SELECT min(preco) FROM cafes) ) as lazer WHERE preco < 100; 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 2 Considere a tabela abaixo, denominada tab1 e contendo as colunas col1 e col2. col1 col2 10 1 20 2 1 em 1 pontos 20/09/2021 14:40 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_21133352_1&course_id=_156956_1&co… 3/15 Resposta Selecionada: e. Respostas: a. b. c. d. e. 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; (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; 20/09/2021 14:40 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_21133352_1&course_id=_156956_1&co… 4/15 Comentário da resposta: 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 3 Resposta Selecionada: b. Respostas: a. b. c. d. e. Considere a seguinte tabela de pratos disponíveis em um restaurante: CREATE TABLE pratos (nome text, pais_origem text, vegetariano boolean, preco float); Considerando essa tabela, assinale a alternativa com o comando que torna possível a execução da seguinte consulta: SELECT pais_origem as pais, count(*) as qtd_pratos_vegetarianos FROM pratos_vegetarianos GROUP BY pais_origem; +--------+-------------------------+ | pais | qtd_pratos_vegetarianos | +--------+-------------------------+ | Índia | 10 | | Itália | 7 | | Brasil | 4 | +--------+-------------------------+ CREATE VIEW pratos_vegetarianos AS SELECT nome, pais_origem FROM pratos WHERE vegetariano; CREATE SUBSELECT pratos_vegetarianos AS SELECT nome, pais_origem AS pais FROM pratos WHERE vegetariano; CREATE VIEW pratos_vegetarianos AS SELECT nome, pais_origem FROM pratos WHERE vegetariano; CREATE SUBSELECT pratos_vegetarianos AS SELECT nome, pais_origem FROM pratos WHERE vegetariano; CREATE VIEW pratos_vegetarianos FROM SELECT nome, pais_origem FROM pratos WHERE vegetariano; 1 em 1 pontos 20/09/2021 14:40 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_21133352_1&course_id=_156956_1&co… 5/15 Comentário da resposta: CREATE VIEW FOR pratos AS SELECT * FROM pratos_vegetarianos WHERE vegetariano; b. Para que a consulta funcione, é preciso criar uma view para a tabela pratos. E a sintaxe para criar uma view é CREATE VIEW <nome- da-view> AS <SELECT ...>. Pergunta 4 Resposta Selecionada: b. Respostas: a. b. c. d. e. Comentário da Considere um banco de dados com uma tabela voos, contendo a coluna companhia, com a sigla da companhia aérea que operou o voo. Considere também que esse banco possui uma tabela companhias, com um cadastro de todas as companhias aéreas existentes. O que representa a seguinte consulta? SELECT (SELECT count(distinct companhia) FROM voos) / (SELECT count(*) FROM companhias); Considere como dica os seguintes comandos e suas respectivas saídas: > SELECT 4; 4 > SELECT 4/2; 2 A proporção de companhias cadastradas que operaram voos registrados na tabela voos. A quan�dade de companhiasque operaram voos registrados na tabela voos. A proporção de companhias cadastradas que operaram voos registrados na tabela voos. A quan�dade total de companhias cadastradas. Não representa nada, pois seja qual for o conteúdo das tabelas esse comando sempre retorna o número zero. Não representada nada, pois resultará em um erro devido a sintaxe incorreta. b. A consulta está dividindo o “count(dis�nct companhia) FROM voos” (quan�dade de companhias que operaram voos) por “SELECT count(*) 1 em 1 pontos 20/09/2021 14:40 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_21133352_1&course_id=_156956_1&co… 6/15 resposta: FROM companhias” (quan�dade de empresas cadastradas). Ou seja, temos a proporção de empresas que operaram voos pelo total de empresas cadastradas. Pergunta 5 Resposta Selecionada: a. Respostas: a. b. c. d. e. Comentário da resposta: 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); Assinale a alternativa que indica uma consulta válida para identificarmos os médicos que não possuem consulta marcada na data de hoje. SELECT DISTINCT m.nome as nome_medico FROM medico m LEFT JOIN consulta c ON c.id_medico = m.id WHERE data != curdate() or data is null; SELECT DISTINCT m.nome as nome_medico FROM medico m LEFT JOIN consulta c ON c.id_medico = m.id WHERE data != curdate() or data is null; SELECT DISTINCT m.nome as nome_medico FROM medico m JOIN consulta c ON c.id_medico = m.id WHERE data != curdate() or data is null; SELECT DISTINCT m.nome as nome_medico FROM medico m RIGHT JOIN consulta c ON c.id_medico = m.id WHERE data != curdate() or data is null; SELECT DISTINCT m.nome as nome_medico FROM medico m LEFT JOIN consulta c WHERE c.id_medico = m.id and data != curdate() or data is null; Dada a modelagem apresentada, não é possível realizar a consulta desejada com um único SELECT. a. Com um LEFT JOIN, teremos os médicos associados a alguma consulta e também os médicos sem consultas. Para que a consulta devolva os médicos sem consulta alguma marcada, temos o “data is null”. Para que a consulta devolva os médicos com consulta marcada em outros dias que não o dia corrente, temos o “data != curdate()”. Sem o DISTINCT, a consulta SQL devolveria uma linha por consulta médica, o que poderia repetir os nomes dos médicos. 1 em 1 pontos 20/09/2021 14:40 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_21133352_1&course_id=_156956_1&co… 7/15 Como queremos listar somente os médicos, o DISTINCT é desejável. Pergunta 6 Resposta Selecionada: a. 6.1.2.1 Orientações do usuário final para a segurança de senha Use a opção --password = password ou -ppassword na linha de comando. Por exemplo: shell> mysql -u francis -pfrank db_name Aviso Isso é conveniente, mas inseguro. Em alguns sistemas, sua senha fica visível para programas de status do sistema, como ps, que podem ser invocados por outros usuários para exibir linhas de comando. Os clientes MySQL geralmente substituem o argumento da senha da linha de comandos com zeros durante sua sequência de inicialização. No entanto, ainda há um breve intervalo durante o qual o valor é visível. Além disso, em alguns sistemas, essa estratégia de substituição é ineficaz e a senha permanece visível para o ps. (Os sistemas SystemV Unix e talvez outros estejam sujeitos a esse problema.) Se o seu ambiente operacional estiver configurado para exibir seu comando atual na barra de título da janela do terminal, a senha permanecerá visível enquanto o comando estiver em execução, mesmo se o comando já estiver fora de vista. MYSQL. MySQL 8.0 Reference Manual. 2020. O trecho acima do manual do MySQL explica que um determinado método de login possui um certo risco de segurança. Indique qual seria uma alternativa segura ao método discutido. 1 em 1 pontos 20/09/2021 14:40 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_21133352_1&course_id=_156956_1&co… 8/15 Respostas: a. b. c. d. e. Comentário da resposta: Logar com a opção -p sem passar o parâmetro (senha) no comando, o que fará com que a senha seja lida a par�r de um prompt seguro do terminal. Logar com a opção -p sem passar o parâmetro (senha) no comando, o que fará com que a senha seja lida a par�r de um prompt seguro do terminal. Logar com a opção -p sem passar o parâmetro (senha) no comando, o que fará com que o usuário anônimo seja u�lizado. Logar como o discu�do, passando a senha na linha de comando, mas especificando o uso de uma conexão SSL segura entre cliente e banco de dados. Logar como o discu�do, passando a senha na linha de comando, mas usando um contêiner Docker. O manual do MySQL está defasado. Na úl�ma versão disponível do MySQL, o método discu�do é inteiramente seguro. a. Com a senha sendo digitada em modo interativo (com a opção - p), não há como outro programa capturar a senha digitada, a menos que haja algum programa espião que capture as teclas sendo digitadas. Pergunta 7 Resposta Selecionada: d. Ao elaborar um sistema, um desenvolvedor criou uma tabela no MySQL utilizando o seguinte comando: CREATE TABLE livro ( titulo TEXT, autor TEXT, editora TEXT, ano INTEGER); O desenvolvedor deve agora documentar essa tabela por meio de um diagrama ER. Qual das alternativas exibe um diagrama que o desenvolvedor poderia utilizar para realizar essa documentação? 1 em 1 pontos 20/09/2021 14:40 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_21133352_1&course_id=_156956_1&co… 9/15 Respostas: a. b. Descrição acessível: Figura possui um retângulo “Livro” associado (ligado por retas) a quatro circunferências. As circunferências são “título”, “autor”, “editora” e “livro”. Descrição acessível: Figura possui um retângulo “Livro” associado (ligado por uma reta) a uma circunferência. O rótulo das circunferências é “título, autor, editora, livro”. 20/09/2021 14:40 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_21133352_1&course_id=_156956_1&c… 10/15 c. d. e. Descrição acessível: Figura possui um grande retângulo “Livro” associado (ligado por retas) a quatro pequenos retângulos. Os retângulos pequenos são “título”, “autor”, “editora” e “livro”. Descrição acessível: Figura possui um retângulo cujo texto possui duas linhas. Primeira linha é “Livro”. Segunda linha é “título, autor, editora, ano”. Descrição acessível: Figura possui um retângulo “Livro” associado (ligado por retas) a quatro circunferências. As circunferências são “título”, “autor”, “editora” e “livro”. 20/09/2021 14:40 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_21133352_1&course_id=_156956_1&c… 11/15 Comentário da resposta: Descrição acessível: Figura possui um grande quadrado “Livro” com quatro pequenos quadrados dentro desse quadrado maior. Os quadrados pequenos são: “título”, “autor”, “editora” e “livro”. d. A opção d é a que segue corretamente a nomenclatura visual de diagramas ERs: entidades são representadas como retângulos, e os atributos das entidades são representados como circunferências associadas ao retângulo da entidade. Pergunta 8 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 realizadassobre 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(); III) SELECT p.nome as nome_paciente, m.nome as nome_medico, c.data FROM paciente p JOIN consulta c JOIN 1 em 1 pontos 20/09/2021 14:40 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_21133352_1&course_id=_156956_1&c… 12/15 Resposta Selecionada: e. Respostas: a. b. c. d. e. Comentário da resposta: 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 9 1 em 1 pontos 20/09/2021 14:40 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_21133352_1&course_id=_156956_1&c… 13/15 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. 20/09/2021 14:40 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_21133352_1&course_id=_156956_1&c… 14/15 Comentário da resposta: As afirmações I, II e III fazem sen�do e jus�ficam a polí�ca de backup escolhida. e. As afirmações I, II e III apresentam motivos para 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 10 Resposta Selecionada: b. Respostas: a. b. c. d. 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) – 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; 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; 0 em 1 pontos 20/09/2021 14:40 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash... https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_21133352_1&course_id=_156956_1&c… 15/15 Segunda-feira, 20 de Setembro de 2021 14h37min25s BRT e. Comentário da resposta: 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). ← OK javascript:launch('/webapps/blackboard/content/listContent.jsp?content_id=_6881087_1&course_id=_156956_1&nolaunch_after_review=true'); Resposta Selecionada: b. Respostas: a. b. c. 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 ( ) QueryOK ( ) You have an error in your SQL syntax A sequência correta dessa associação é: (III) (I) (IV) (II) (IV) (I) (III) (II) (III) (I) (IV) (II) (IV) (I) (II) (III) Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 2 of 16 19/09/2021 16:21 d. e. Comentário da resposta: (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 2 Considere a tabela municipio criada com o seguinte comando: CREATE TABLE municipio ( id int auto_increment primary key, nome text, uf varchar(2) ); Considere ainda o seguinte estado para a essa tabela: > select * from municipio; +----+------------+------+ | id | nome | uf | +----+------------+------+ | 1 | São Paulo | SP | | 2 | Osasco | SP | | 3 | Mateiros | TO | +----+------------+------+ Dado o estado definido acima, considere a execução do seguinte comando: INSERT INTO municipio (nome, uf) VALUES ('Salvador', 'BA'); Considere agora as seguintes afirmações: I – A execução do comando acima incorrerá em erro. II – A chave primária deve ser especificada no comando INSERT. 1 em 1 pontos Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 3 of 16 19/09/2021 16:21 Resposta Selecionada: b. Respostas: a. b. c. d. e. Comentário da resposta: Assinale agora a opção correta. As sentenças I e II são falsas. As sentenças I e II são verdadeiras e a II é a explicação da I. As sentenças I e II são falsas. A sentença I é verdadeira, mas a II é falsa. As sentenças I e II são verdadeiras, mas a II não é a explicação da I. Apenas a sentença II é verdadeira. b. A chave primária foi especificada com a opção auto_increment, o que dispensa a especificação da chave primária no comando INSERT. Pergunta 3 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/dataset/prestacao-de-contas-das-campan has-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 0 em 1 pontos Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 4 of 16 19/09/2021 16:21 Resposta Selecionada: a. Respostas: a. b. c. d. e. Comentário da resposta: LIMIT 5; Assinale a alternativa que indica qual saída o comando acima pode produzir. … You have an error in your SQL syntax ... … 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 SiglaPartido” indica que cada partido 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. 1 em 1 pontos Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 5 of 16 19/09/2021 16:21 Pergunta 4 Resposta Selecionada: d. Respostas: a. Ao elaborar um sistema, um desenvolvedor criou uma tabela no MySQL utilizando o seguinte comando: CREATE TABLE livro ( titulo TEXT, autor TEXT, editora TEXT, ano INTEGER); O desenvolvedor deve agora documentar essa tabela por meio de um diagrama ER. Qual das alternativas exibe um diagrama que o desenvolvedor poderia utilizar para realizar essa documentação? Descrição acessível: Figura possui um retângulo “Livro” associado (ligado por retas) a quatro circunferências. As circunferências são “título”, “autor”, “editora” e “livro”. Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 6 of 16 19/09/2021 16:21 b. c. d. Descrição acessível: Figura possui um retângulo “Livro” associado (ligado por uma reta) a uma circunferência. O rótulo das circunferências é “título, autor, editora, livro”. Descrição acessível: Figura possui um grande retângulo “Livro” associado (ligado por retas) a quatro pequenos retângulos. Os retângulos pequenos são “título”, “autor”, “editora” e “livro”. Descrição acessível: Figura possui um retângulo cujo texto possui duas linhas. Primeira linha é “Livro”. Segunda linha é “título, autor, editora, ano”. Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 7 of 16 19/09/2021 16:21 e. Comentário da resposta: Descrição acessível: Figura possui um retângulo “Livro” associado (ligado por retas) a quatro circunferências. As circunferências são “título”, “autor”, “editora” e “livro”. Descrição acessível: Figura possui um grande quadrado “Livro” com quatro pequenos quadrados dentro desse quadrado maior. Os quadrados pequenos são: “título”, “autor”, “editora” e “livro”. d. A opção d é a que segue corretamente a nomenclatura visual de diagramas ERs: entidades são representadas como retângulos, e os atributos das entidades são representados como circunferências associadas ao retângulo da entidade. Pergunta 5 Considere a uma tabela voos contendo um registro por voo e a coluna orig_estado_abrv, que representa o estado da federação de origem do voo. Qual será o resultado da consulta abaixo? 0 em 1 pontos Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 8 of 16 19/09/2021 16:21 Resposta Selecionada: c. Respostas: a. b. c. d. e. Comentário da resposta: SELECT count(*) FROM voos WHERE orig_estado_abrv = 'SP' AND orig_estado_abrv = 'RJ'; Duas linhas, uma linha com a quantidade de voos partindo do estado de São Paulo e outra linha com a quantidade de voos partindo do estado do Rio de Janeiro. A soma das quantidades de voos partindo do estado de São Paulo e voos partindo do estado do Rio de Janeiro. Zero. Duas linhas, uma linha com a quantidade de voos partindo do estado de São Paulo e outra linha com a quantidade de voos partindo do estado do Rio de Janeiro. Uma linha com duas colunas; uma coluna com a quantidade de voos partindo do estado de São Paulo e outra coluna com a quantidade de voos partindo do estado do Rio de Janeiro. Um erro, pois a sintaxe está incorreta. b. Um mesmo registro não pode ter um valor (“SP”) para uma coluna e ao mesmo tempo outro valor (“RJ”) para a mesma coluna. Dessa forma nenhuma linha satisfará a condição imposta pelo WHERE. O que resultará numa contagem de zero linhas. Pergunta 6 Como o MySQL utiliza índices Os índicessão usados para rapidamente localizar linhas com valores de coluna específicos. Sem um índice, o MySQL deve começar com a primeira linha e depois ler a tabela inteira para encontrar as linhas relevantes. Quanto maior a tabela, mais isso custa. Se a tabela tiver um índice para as colunas em questão, o MySQL poderá determinar rapidamente a posição a ser procurada no meio do arquivo de dados sem precisar examinar todos 1 em 1 pontos Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 9 of 16 19/09/2021 16:21 Resposta Selecionada: d. Respostas: a. b. c. d. os dados. Isso é muito mais rápido do que ler todas as linhas sequencialmente. (Traduzido da documentação oficial do MySQL. Disponível em: <https://dev.mysql.com/doc/refman/8.0/e n/mysql-indexes.html>. Acesso em: mar. 2020. Sobre índices é correto afirmar que: Considere uma base de dados construída para análises científicas que é montada uma vez e depois não é mais atualizada, e que possui muitos dados. Nesse caso compensa construir diversos índices que serão úteis para as consultas dos cientistas, pois mesmo que o tempo de criação dos índices seja grande, a alta velocidade das leituras subsequentes compensará o tempo de criação dos índices. A criação de índices é imprescindível para qualquer tabela do MySQL. Considere um sistema muito acessado por usuários de todo o mundo e uma tabela que armazene os eventos de login desses usuários. Nesse caso, a criação de um índice nessa tabela de registro de login é conveniente para acelerar o tempo de inserção, provendo uma melhor experiência para o usuário. Índices deixam inserções mais lentas e consomem mais espaço em disco. Por essas razões devem ser usados apenas em tabelas com mais de um milhão de registros. Só nesses casos os custos compensarão os ganhos de velocidade de leitura. Considere uma base de dados construída para análises científicas que é montada uma vez e depois não é mais atualizada, e que possui muitos dados. Nesse caso compensa construir diversos índices que serão úteis para as consultas dos cientistas, pois mesmo que o tempo de criação dos índices seja grande, a alta velocidade das leituras subsequentes compensará o tempo de criação dos índices. Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 10 of 16 19/09/2021 16:21 e. Comentário da resposta: Os índices são recursos utilizados em bancos de dados antigos. O sistema de otimização de consultas do MySQL (optimum lookup process) dispensa a utilização de índices em tabelas do MySQL. d. Índices aceleram consultas e são muito utilizados. Um problema muito comum em sistemas lentos é a falta de índices em tabelas do banco de dados (seja no MySQL ou em outros SGBDs). Por outro lado, o preço a se pagar é: inserções mais lentas e mais espaço ocupado no disco. Contudo, tabelas muito pequenas podem dispensar índices. Pergunta 7 1 em 1 pontos Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 11 of 16 19/09/2021 16:21 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 utilize a modelagem apresentada no diagrama, assinale a alternativa 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. Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 12 of 16 19/09/2021 16:21 Pergunta 8 Resposta Selecionada: a. Respostas: a. Com a SQL podemos utilizar sub-selects, que são “selects dentro de selects”. Considere o exemplo: > select * from municipio; +----+------------+------+ | id | nome | uf | +----+------------+------+ | 1 | São Paulo | SP | | 2 | Osasco | SP | | 3 | Mateiros | TO | | 4 | Salvador | BA | +----+------------+------+ > select * from municipio where uf = 'SP'; +----+------------+------+ | id | nome | uf | +----+------------+------+ | 1 | São Paulo | SP | | 2 | Osasco | SP | +----+------------+------+ > select count(*) from (select * from municipio where uf = 'SP') as subtab; +----------+ | count(*) | +----------+ | 2 | +----------+ Considere agora a existência da tabela voos, com um voo por registro e com a coluna data, representando a data do voo. Qual dos seguintes comandos exibe corretamente todos os dados dos voos ocorridos na data do voo mais antigo registrado? SELECT * FROM voos WHERE data = (SELECT min(data) FROM voos) as data_mais_antiga; SELECT * FROM voos WHERE data = (SELECT min(data) FROM voos) as data_mais_antiga; 1 em 1 pontos Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 13 of 16 19/09/2021 16:21 b. c. d. e. Comentário da resposta: SELECT * FROM voos WHERE data = (SELECT min(data)) as data_mais_antiga; SELECT * FROM voos WHERE data = min(data); SELECT min(data) FROM voos; SELECT * FROM voos WHERE min(data); a. Como queremos ver todas as colunas, é necessário o “SELECT *”. Como queremos ver apenas alguns registros (voos mais antigos) é preciso um WHERE limitando isso, impondo uma condição sobre a data. Se já soubéssemos a data poderíamos fazer algo como “WHERE data = ‘2010-01-01’”, mas no caso podemos trocar o literal ‘2010-01-01’ pela expressão que nele resulta: “SELECT min(data) FROM voos”. Pergunta 9 Resposta Selecionada: c. Infodeck introdutório aos bancos de dados NoSQL Este texto fornece uma breve introdução aos bancos de dados NoSQL. Nossa intenção é explicar ao público técnico-gerencial por que os bancos de dados NoSQL são importantes. Descrevemos por que os bancos de dados relacionais têm sido tão dominantes e quais forças levaram o NoSQL a quebrar esse domínio. Discutimos os principais benefícios de uma abordagem NoSQL, mas enfatizamos que os bancos de dados relacionais ainda têm um grande papel a desempenhar, por isso nossa ênfase na persistência poliglota. FOWLER, M.; SADALAGE, P. Infodeck introdutório aos bancos de dados NoSQL. 2012. https://martinfowler.com /articles/nosql-intro. Acesso em: 15 jul. 2020. Assinale a alternativa que melhor explica o que os autores do texto citado querem dizer com “persistência poliglota”. 1 em 1 pontos Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 14 of 16 19/09/2021 16:21 Respostas: a. b. c. d. e. Comentário da resposta: Novos sistemas continuarão usando os SGBDs relacionais, mas ao mesmo tempo utilizarão outros bancos NoSQL para propósitos específicos. “Persistência poliglota” diz respeito aos vários tipos de bancosNoSQL disponíveis (excluindo, portanto, os bancos relacionais). O sucesso do movimento NoSQL se dá principalmente porque esses novos bancos suportam uma grande variedade de linguagens de programação (Java, .NET, Python, Ruby, etc.). Novos sistemas continuarão usando os SGBDs relacionais, mas ao mesmo tempo utilizarão outros bancos NoSQL para propósitos específicos. A “persistência poliglota” consiste numa Babel de bancos NoSQL que não é sustentável a longo prazo. A persistência poliglota é uma camada genérica de inferência entre os bancos de dados e as aplicações. c. A “persistência poliglota” se refere a uma só aplicação utilizando diversos tipos de persistência: seja relacional, seja NoSQL. Pergunta 10 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 1 em 1 pontos Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 15 of 16 19/09/2021 16:21 Domingo, 19 de Setembro de 2021 16h19min46s BRT Resposta Selecionada: c. Respostas: a. b. c. d. e. Comentário da resposta: 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”. Utiliza todos os tipos 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. Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 16 of 16 19/09/2021 16:21 Resposta Selecionada: b. Respostas: a. b. c. d. e. Comentário da resposta: id saldo ----- -------- 1324 5000.0 7634 40000.0 id saldo ----- -------- 1324 5100.0 7634 40200.0 id saldo ----- -------- 1324 5000.0 7634 40000.0 id saldo ----- -------- 1324 5100.0 7634 40000.0 … You have an error in your SQL syntax ... ----- -------- 1324 7634 5000.0 40000.0 b. Como há um erro de sintaxe no segundo UPDATE e os comandos de UPDATE estão envoltos em uma transação (BEGIN, COMMIT), então nenhum UPDATE será efetivo. Por isso a saída final será igual a saída do primeiro SELECT. Pergunta 2 Ao elaborar um sistema, um desenvolvedor criou uma tabela no MySQL utilizando o seguinte comando: CREATE TABLE livro ( titulo TEXT, autor TEXT, editora TEXT, ano INTEGER); O desenvolvedor deve agora documentar essa tabela por meio de um diagrama ER. 1 em 1 pontos Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 2 of 18 20/09/2021 12:52 Resposta Selecionada: d. Respostas: a. b. Qual das alternativas exibe um diagrama que o desenvolvedor poderia utilizar para realizar essa documentação? Descrição acessível: Figura possui um retângulo “Livro” associado (ligado por retas) a quatro circunferências. As circunferências são “título”, “autor”, “editora” e “livro”. Descrição acessível: Figura possui um retângulo “Livro” associado (ligado por uma reta) a uma circunferência. O rótulo das circunferências é “título, autor, editora, livro”. Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 3 of 18 20/09/2021 12:52 c. d. e. Descrição acessível: Figura possui um grande retângulo “Livro” associado (ligado por retas) a quatro pequenos retângulos. Os retângulos pequenos são “título”, “autor”, “editora” e “livro”. Descrição acessível: Figura possui um retângulo cujo texto possui duas linhas. Primeira linha é “Livro”. Segunda linha é “título, autor, editora, ano”. Descrição acessível: Figura possui um retângulo “Livro” associado (ligado por retas) a quatro circunferências. As circunferências são “título”, “autor”, “editora” e “livro”. Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 4 of 18 20/09/2021 12:52 Comentário da resposta: Descrição acessível: Figura possui um grande quadrado “Livro” com quatro pequenos quadrados dentro desse quadrado maior. Os quadrados pequenos são: “título”, “autor”, “editora” e “livro”. d. A opção d é a que segue corretamente a nomenclatura visual de diagramas ERs: entidades são representadas como retângulos, e os atributos das entidades são representados como circunferências associadas ao retângulo da entidade. Pergunta 3 Resposta Selecionada: a. Respostas: a. b. 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); Assinale a alternativa que indica uma consulta válida para identificarmos os médicos que não possuem consulta marcada na data de hoje. SELECT DISTINCT m.nome as nome_medico FROM medico m LEFT JOIN consulta c ON c.id_medico = m.id WHERE data != curdate() or data is null; SELECT DISTINCT m.nome as nome_medico FROM medico m LEFT JOIN consulta c ON c.id_medico = m.id WHERE data != curdate() or data is null; SELECT DISTINCT m.nome as nome_medico FROM medico m JOIN consulta c ON c.id_medico = m.id WHERE data != curdate() or data is null; 1 em 1 pontos Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 5 of 18 20/09/2021 12:52 c. d. e. Comentário da resposta: SELECT DISTINCT m.nome as nome_medico FROM medico m RIGHT JOIN consulta c ON c.id_medico = m.id WHERE data != curdate() or data is null; SELECT DISTINCT m.nome as nome_medico FROM medico m LEFT JOIN consulta c WHERE c.id_medico = m.id and data != curdate() or data is null; Dada a modelagem apresentada, não é possível realizar a consulta desejada com um único SELECT. a. Com um LEFT JOIN, teremos os médicos associados a alguma consulta e também os médicos sem consultas. Para que a consulta devolva os médicos sem consulta alguma marcada, temos o “data is null”. Para que a consulta devolva os médicos com consulta marcada em outros dias que não o dia corrente, temos o “data != curdate()”. Sem o DISTINCT, a consulta SQL devolveria uma linha por consulta médica, o que poderia repetir os nomes dos médicos. Como queremos listar somente os médicos, o DISTINCT é desejável. Pergunta 4 1 em 1 pontos Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 6 of 18 20/09/2021 12:52 Resposta Selecionada: d. Respostas: a. b. c. Como o MySQL utiliza índices Os índices são usados para rapidamente localizar linhas com valores de coluna específicos. Sem um índice, o MySQL deve começar com a primeira linha e depois ler a tabela inteira para encontrar as linhas relevantes. Quanto maior a tabela, mais isso custa. Se a tabela tiver um índice para as colunas em questão, o MySQL poderá determinar rapidamente a posição a ser procurada no meio do arquivo de dados sem precisar examinar todos os dados. Isso é muito mais rápido do que ler todas as linhas sequencialmente. (Traduzido da documentação oficial do MySQL. Disponível em: <https://dev.mysql.com/doc/refman/8.0/e n/mysql-indexes.html>. Acesso em: mar. 2020. Sobre índices é correto afirmar que: Considere uma base de dados construída para análises científicas que é montada uma vez e depois não é mais atualizada, e que possui muitos dados. Nesse caso compensa construir diversos índices que serão úteis para as consultas dos cientistas, pois mesmo que o tempo de criação dos índices seja grande, a alta velocidadedas leituras subsequentes compensará o tempo de criação dos índices. A criação de índices é imprescindível para qualquer tabela do MySQL. Considere um sistema muito acessado por usuários de todo o mundo e uma tabela que armazene os eventos de login desses usuários. Nesse caso, a criação de um índice nessa tabela de registro de login é conveniente para acelerar o tempo de inserção, provendo uma melhor experiência para o usuário. Índices deixam inserções mais lentas e consomem mais espaço em disco. Por essas razões devem ser usados apenas em tabelas com mais de um milhão de registros. Só nesses casos os custos compensarão os ganhos de velocidade de leitura. Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 7 of 18 20/09/2021 12:52 d. e. Comentário da resposta: Considere uma base de dados construída para análises científicas que é montada uma vez e depois não é mais atualizada, e que possui muitos dados. Nesse caso compensa construir diversos índices que serão úteis para as consultas dos cientistas, pois mesmo que o tempo de criação dos índices seja grande, a alta velocidade das leituras subsequentes compensará o tempo de criação dos índices. Os índices são recursos utilizados em bancos de dados antigos. O sistema de otimização de consultas do MySQL (optimum lookup process) dispensa a utilização de índices em tabelas do MySQL. d. Índices aceleram consultas e são muito utilizados. Um problema muito comum em sistemas lentos é a falta de índices em tabelas do banco de dados (seja no MySQL ou em outros SGBDs). Por outro lado, o preço a se pagar é: inserções mais lentas e mais espaço ocupado no disco. Contudo, tabelas muito pequenas podem dispensar índices. Pergunta 5 Considere a seguinte tabela de pratos disponíveis em um restaurante: CREATE TABLE pratos (nome text, pais_origem text, vegetariano boolean, preco float); Considerando essa tabela, assinale a alternativa com o comando que torna possível a execução da seguinte consulta: SELECT pais_origem as pais, count(*) as qtd_pratos_vegetarianos FROM pratos_vegetarianos GROUP BY pais_origem; +--------+-------------------------+ | pais | qtd_pratos_vegetarianos | +--------+-------------------------+ | Índia | 10 | | Itália | 7 | | Brasil | 4 | 1 em 1 pontos Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 8 of 18 20/09/2021 12:52 Resposta Selecionada: b. Respostas: a. b. c. d. e. Comentário da resposta: +--------+-------------------------+ CREATE VIEW pratos_vegetarianos AS SELECT nome, pais_origem FROM pratos WHERE vegetariano; CREATE SUBSELECT pratos_vegetarianos AS SELECT nome, pais_origem AS pais FROM pratos WHERE vegetariano; CREATE VIEW pratos_vegetarianos AS SELECT nome, pais_origem FROM pratos WHERE vegetariano; CREATE SUBSELECT pratos_vegetarianos AS SELECT nome, pais_origem FROM pratos WHERE vegetariano; CREATE VIEW pratos_vegetarianos FROM SELECT nome, pais_origem FROM pratos WHERE vegetariano; CREATE VIEW FOR pratos AS SELECT * FROM pratos_vegetarianos WHERE vegetariano; b. Para que a consulta funcione, é preciso criar uma view para a tabela pratos. E a sintaxe para criar uma view é CREATE VIEW <nome-da-view> AS <SELECT ...>. Pergunta 6 Com a SQL podemos utilizar sub-selects, que são “selects dentro de selects”. Considere o exemplo: > select * from municipio; +----+------------+------+ | id | nome | uf | +----+------------+------+ | 1 | São Paulo | SP | | 2 | Osasco | SP | | 3 | Mateiros | TO | | 4 | Salvador | BA | +----+------------+------+ 1 em 1 pontos Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 9 of 18 20/09/2021 12:52 Resposta Selecionada: a. Respostas: a. b. c. d. e. Comentário da resposta: > select * from municipio where uf = 'SP'; +----+------------+------+ | id | nome | uf | +----+------------+------+ | 1 | São Paulo | SP | | 2 | Osasco | SP | +----+------------+------+ > select count(*) from (select * from municipio where uf = 'SP') as subtab; +----------+ | count(*) | +----------+ | 2 | +----------+ Considere agora a existência da tabela voos, com um voo por registro e com a coluna data, representando a data do voo. Qual dos seguintes comandos exibe corretamente todos os dados dos voos ocorridos na data do voo mais antigo registrado? SELECT * FROM voos WHERE data = (SELECT min(data) FROM voos) as data_mais_antiga; SELECT * FROM voos WHERE data = (SELECT min(data) FROM voos) as data_mais_antiga; SELECT * FROM voos WHERE data = (SELECT min(data)) as data_mais_antiga; SELECT * FROM voos WHERE data = min(data); SELECT min(data) FROM voos; SELECT * FROM voos WHERE min(data); a. Como queremos ver todas as colunas, é necessário o “SELECT *”. Como queremos ver apenas alguns registros (voos mais antigos) é preciso um WHERE limitando isso, impondo uma condição sobre a data. Se já soubéssemos a data poderíamos fazer algo Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 10 of 18 20/09/2021 12:52 como “WHERE data = ‘2010-01-01’”, mas no caso podemos trocar o literal ‘2010-01-01’ pela expressão que nele resulta: “SELECT min(data) FROM voos”. Pergunta 7 Resposta Selecionada: c. Respostas: a. b. c. d. Informação Um computador só trata de dados, sendo incapaz de associar significados a eles. Assim, é válido chamar essa máquina de “processador de dados”; é inválido dizer que ela “processa informações”. Tudo se passa com o computador como se ele lidasse apenas com dados (…) De fato, o computador não “compreende” absolutamente nada. O computador é uma máquina sintática, pois as relações entre dados são sempre feita de maneira estrutural, por exemplo por contiguidade física dentro do dispositivo de armazenamento ou por meio dos chamados “ponteiros”. Um dado “aponta” para outro, se ao lado do primeiro coloca-se o endereço do segundo, indicando onde o último está armazenado. Um computador pode ser programado para reconhecer padrões, como por exemplo a escrita manual cursiva. Mas isso é feito de maneira puramente matemática, com uma quantidade tão enorme de cálculos que deveria provocar profunda admiração pelo ser humano que, parece-nos, obviamente não calcula nada enquanto lê. Ao lermos, estamos continuamente associando conceitos para reconhecer letras e palavras, e muito mais ainda para compreender uma frase. (SETZER, V. W.; SILVA, F. S. C. da. Banco de dados: aprenda o que são, melhore seu conhecimento, construa os seus. São Paulo: Edgard Blücher, 2005.) Segundo o texto acima, os autores reconhecem que: Máquinas compreendem apenas dados e suas estruturas; a transformação de dados em informação é restrita a humanos. Máquinas inteligentes poderão processar informações como humanos, graças à detecção de padrões. Sofisticados cálculos matemáticos podem atribuir semântica a operações robóticas. Máquinas compreendem apenas dados e suas estruturas; a transformação de dados em informação é restrita a humanos. 1 em 1 pontos Revisar envio do teste: Clique aqui para iniciar o Quiz... https://senacsp.blackboard.com/webapps/assessment/r... 11 of 18 20/09/2021 12:52 e. Comentário da resposta: Por mais que uma máquina não "compreenda" como seres humanos, isso não impede as máquinas de armazenar e manipular informações. O reconhecimento algorítmico de letras cursivas transforma o dado (imagem) em informação (texto). c. O autor conceitua que o computador se relaciona apenas com dados, não com informações. Pergunta 8 Resposta Selecionada: c. Respostas: a. b. Infodeck introdutório aos bancos de dados NoSQL Este texto fornece uma breve introdução aos bancos de dados NoSQL. Nossa intenção é explicar ao público técnico-gerencial
Compartilhar