Baixe o app para aproveitar ainda mais
Prévia do material em texto
Curso 2103-BANCO DE DADOS Teste Clique aqui para iniciar o Quiz Iniciado 15/10/21 23:48 Enviado 16/10/21 00:31 Data de vencimento 29/11/21 23:59 Status Completada Resultado da tentativa 10 em 10 pontos Tempo decorrido 43 minutos Resultados exibidos Todas as respostas, Respostas enviadas, Respostas corretas, Comentários • Pergunta 1 1 em 1 pontos 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'; Resposta Selecionada: b. Zero. Respostas: a. A soma das quantidades de voos partindo do estado de São Paulo e voos partindo do estado do Rio de Janeiro. b. Zero. c. 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. d. 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. e. Um erro, pois a sintaxe está incorreta. Comentário da resposta: 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 2 1 em 1 pontos 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.hitachivantara.com/en-us/products/data-management- analytics/pentaho-platform.html. Acesso em: 15 jul. 2020. Assinale a alternativa que melhor esclarece o texto acima. Resposta Selecionada: c. 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”). Respostas: a. 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. b. Os “consumidores de dados” são aplicações resilientes que possuem indisponibilidade mínima, mesmo sem a intervenção constante de operadores de TI. c. 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”). d. 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. e. A chamada leva o leitor a acreditar que é possível explorar os dados diretamente. Mas isso é impossível, já que sempre deve existir uma aplicação projetada pela TI corporativa entre o usuário final e os dados. Comentário da resposta: 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 3 1 em 1 pontos 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? Resposta Selecionada: c. 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; Respostas: a. 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; b. 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; c. 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; d. 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; e. SELECT nome, (SELECT max(preco) FROM pratos WHERE vegetariano) – preco as diferenca_pro_vegetariano_mais_caro FROM pratos WHERE vegetariano; Comentário da resposta: 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 4 1 em 1 pontos 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; 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 é: Resposta Selecionada: b. (III) (I) (IV) (II) Respostas: a. (IV) (I) (III) (II) b. (III) (I) (IV) (II) c. (IV) (I) (II) (III) d. (I) (II) (III) (IV) e. (IV) (III) (II) (I) Comentário da resposta: 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 5 1 em 1 pontos Considere os seguintes tipos de bancos de dados: (I) Relacionais com propriedadesACID (II) Em memória (III) Orientados a documentos (IV) Orientados a grafos Considere agora os seguintes domínios a serem modelados em bancos de dados: ( ) Soluções de cache. ( ) Entidades com alta variabilidade de atributos entre suas instâncias. ( ) Dados financeiros que exigem alta consistência. ( ) Análise logística de rotas de caminhões. Assinale a alternativa que traça a correspondência mais adequada entre os tipos de bancos de dados e os domínios aos quais eles se aplicam melhor. Resposta Selecionada: d. (II) (III) (I) (IV) Respostas: a. (IV) (III) (I) (II) b. (II) (I) (III) (IV) c. (III) (II) (I) (IV) d. (II) (III) (I) (IV) e. (I) (III) (II) (IV) Comentário da resposta: d. Soluções de cache exigem pouco espaço e devem ser rápidas, por isso bancos em memória são adequados para elas. Instâncias diferentes com atributos diferentes para uma mesma entidade geram tabelas esparsas em bancos relacionais; utilizar um banco com esquema flexível, como os orientados a documentos, é interessante. A transferência entre contas correntes é um caso que exige alta consistência e todas as garantias do ACID: melhor ficar com um SGBD relacional. Por fim, a análise logística pode utilizar a aplicação de algoritmos em grafos, por isso pode se valer de um SGBD orientado a grafos. • Pergunta 6 1 em 1 pontos 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; Resposta Selecionada: b. 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. Respostas: a. Um investidor 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. b. 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. c. Um investidor pretende comprar um restaurante, um bar e um café. Mas o café ele só vai comprar se custar menos de 100 mil reais. d. 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. e. A consulta não significa nada, pois possui um erro de sintaxe. Comentário da resposta: 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 7 1 em 1 pontos 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. Resposta Selecionada: a. Logar com a opção -p sem passar o parâmetro (senha) no comando, o que fará com que a senha seja lida a partir de um prompt seguro do terminal. Respostas: a. Logar com a opção -p sem passar o parâmetro (senha) no comando, o que fará com que a senha seja lida a partir de um prompt seguro do terminal. b. 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 utilizado. c. Logar como o discutido, passando a senha na linha de comando, mas especificando o uso de uma conexão SSL segura entre cliente e banco de dados. d. Logar como o discutido, passando a senha na linha de comando, mas usando um contêiner Docker. e. O manual do MySQL está defasado. Na última versão disponível do MySQL, o método discutido é inteiramente seguro. Comentário da resposta: 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 8 1 em 1 pontos 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? Resposta Selecionada: d. 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”. Respostas: a. 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”. b. 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”. c. Descrição acessível: Figura possui um retângulo cujo texto possui duas linhas. Primeira linha é “Livro”. Segunda linha é “título, autor, editora, ano”. d. 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”. e. 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”. Comentário da resposta: 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 9 1 em 1 pontos Considerea 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. Resposta Selecionada: b. 2FN. Respostas: a. 1FN. b. 2FN. c. 3FN. d. BCFN. e. Essa modelagem não atende nem à 1FN. Comentário da resposta: 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 multivalorados. 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 10 1 em 1 pontos 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”. Resposta Selecionada: c. Novos sistemas continuarão usando os SGBDs relacionais, mas ao mesmo tempo utilizarão outros bancos NoSQL para propósitos específicos. Respostas: a. https://martinfowler.com/articles/nosql-intro “Persistência poliglota” diz respeito aos vários tipos de bancos NoSQL disponíveis (excluindo, portanto, os bancos relacionais). b. 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.). c. Novos sistemas continuarão usando os SGBDs relacionais, mas ao mesmo tempo utilizarão outros bancos NoSQL para propósitos específicos. d. A “persistência poliglota” consiste numa Babel de bancos NoSQL que não é sustentável a longo prazo. e. A persistência poliglota é uma camada genérica de inferência entre os bancos de dados e as aplicações. Comentário da resposta: c. A “persistência poliglota” se refere a uma só aplicação utilizando diversos tipos de persistência: seja relacional, seja NoSQL.
Compartilhar