Buscar

banco de dados 2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_67813… 1/16
 
Revisar envio do teste: Clique aqui para iniciar o Quiz
STSICAS2DA_2101-2101-686276 2101-BANCO DE DADOS Quiz
REVISAR ENVIO DO TESTE: CLIQUE AQUI PARA INICIAR O QUIZ 
Usuário DANIELLI ALMEIDA DA LUZ
Curso 2101-BANCO DE DADOS
Teste Clique aqui para iniciar o Quiz
Iniciado 26/05/21 16:13
Enviado 26/05/21 16:26
Data de vencimento 07/06/21 23:59
Status Completada
Resultado da tentativa 7 em 10 pontos  
Tempo decorrido 12 minutos
Resultados exibidos Todas as respostas, Respostas enviadas, Respostas corretas, Comentários
Pergunta 1
Considere uma tabela de solicitações feitas por cidadãos à Prefeitura de São
Paulo (dados disponíveis em http://dados.prefeitura.sp.gov.br/dataset/dados-do-si
stema-de-atendimento-ao-cidadao-sac-156) criada com o seguinte comando:
 
CREATE TABLE solicitacoes (
 data_abertura text,
 hora_abertura text,
 prefeitura_regional text,
 distrito text,
 orgao text,
 tema text,
 assunto text,
 servico text,
 status_solicitacao text,
Sala de Aula Tutoriais
0 em 1 pontos
DANIELLI ALMEIDA DA LUZ
https://senacsp.blackboard.com/webapps/blackboard/execute/courseMain?course_id=_154582_1
https://senacsp.blackboard.com/webapps/blackboard/content/listContent.jsp?course_id=_154582_1&content_id=_6781292_1&mode=reset
http://dados.prefeitura.sp.gov.br/dataset/dados-do-sistema-de-atendimento-ao-cidadao-sac-156
https://www.ead.senac.br/
https://senacsp.blackboard.com/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_193_1
https://senacsp.blackboard.com/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_210_1
https://senacsp.blackboard.com/webapps/login/?action=logout
26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_67813… 2/16
Resposta
Selecionada:
b.
Respostas: a.
b.
c.
d. 
e.
Comentário
da
resposta:
 data_parecer text,
 hora_parecer text
);
 
Considere ainda que uma certa consulta SQL produziu a seguinte saída:
 
tema qtd 
------------ ----------
Rua e bairro 526934 
Lixo e limpeza 261443 
Transporte 249783 
Animais 195256 
Meio Ambiente 185472 
 
Qual das opções exibe uma consulta que poderia ter produzido a saída acima?
SELECT tema, qtd FROM solicitacoes GROUP BY tema
ORDER BY qtd DESC LIMIT 5;
SELECT tema, count(*) as qtd FROM solicitacoes GROUP BY
tema ORDER BY qtd DESC LIMIT 5;
SELECT tema, qtd FROM solicitacoes GROUP BY tema
ORDER BY qtd DESC LIMIT 5;
SELECT tema, count(*) as qtd FROM solicitacoes GROUP BY
tema ORDER BY qtd LIMIT 5;
SELECT tema, qtd FROM solicitacoes LIMIT 5;
SELECT tema, count(*) as qtd FROM solicitacoes GROUP BY
qtd ORDER BY qtd DESC LIMIT 5;
a. Cada tema aparece somente uma vez na saída, sugerindo uma
agregação por GROUP BY. A coluna qtd está com valores decrescentes,
sugerindo a u�lização do “ORDER BY DESC”. Como a saída só possui 5
linhas, isso sugere a u�lização do LIMIT 5. Por fim, qtd não é uma
coluna original da tabela (ver comando CREATE), por isso deve ter
surgido como um alias no SELECT.
Pergunta 2 1 em 1 pontos
26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_67813… 3/16
Resposta Selecionada: b. 
Respostas: a. 
b. 
c. 
d. 
e. 
Comentário
da
resposta:
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.
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 3
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 �ver 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.
1 em 1 pontos
26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_67813… 4/16
Resposta
Selecionada:
d.
Respostas: a.
b.
c.
d.
e.
Comentário
da
resposta:
 
(Traduzido da documentação oficial do MySQL. Disponível em: <h�ps://d
ev.mysql.com/doc/refman/8.0/en/mysql-indexes.html>. Acesso em: mar.
2020.
 
Sobre índices é correto afirmar que:
Considere uma base de dados construída para análises cien�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 cien�stas, 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 cien�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 cien�stas, 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 u�lizados em bancos de dados an�gos. O
sistema de o�mização de consultas do MySQL (optimum lookup
process) dispensa a u�lização de índices em tabelas do MySQL.
d. Índices aceleram consultas e são muito u�lizados. 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.
https://dev.mysql.com/doc/refman/8.0/en/mysql-indexes.html
26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_67813… 5/16
Pergunta 4
Resposta
Selecionada:
c.
Respostas: a.
b.
c.
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 (datadate, id_paciente int, id_medico int);
 
Considere agora as seguintes consultas realizadas sobre as tabelas acima
definidas:
 
I) SELECT p.nome as nome_paciente, m.nome as nome_medico, c.data FROM
paciente p, consulta c, medico m WHERE c.id_paciente = p.id and c.id_medico =
m.id and data = curdate();
 
II) SELECT p.nome as nome_paciente, m.nome as nome_medico, c.data FROM
paciente p JOIN consulta c ON c.id_paciente = p.id JOIN medico m ON c.id_medico
= m.id WHERE data = curdate();
 
III) SELECT p.nome as nome_paciente, m.nome as nome_medico, c.data FROM
paciente p JOIN consulta c JOIN medico m ON c.id_paciente = p.id and c.id_medico
= m.id WHERE data = curdate();
 
IV) SELECT p.nome as nome_paciente, m.nome as nome_medico, c.data FROM
paciente p INNER JOIN consulta c INNER JOIN medico m ON c.id_paciente = p.id
and c.id_medico = m.id WHERE data = curdate();
 
Obs: “curdate()” retorna a data corrente.
 
Assinale a opção que iden�fica corretamente os resultados ob�dos para essas
consultas.
As consultas I 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 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.
0 em 1 pontos
26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_67813… 6/16
d.
e.
Comentário
da
resposta:
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 5
Resposta
Selecionada:
b.
Respostas: a.
b.
c.
Considere a seguinte tabela de pratos disponíveis em um restaurante:
 
CREATE TABLE pratos (nome text, pais_origem text, vegetariano boolean, preco
float);
 
Qual alternativa seleciona somente os pratos vegetarianos, mostrando a diferença
entre o preço médio do prato e o preço do prato vegetariano mais caro de seu
país de origem?
SELECT nome, (SELECT max(preco) FROM pratos p2 WHERE
p1.pais_origem = p2.pais_origem) – 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;
0 em 1 pontos
26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_67813… 7/16
d.
e.
Comentário
da
resposta:
SELECT nome, (SELECT max(preco) FROM pratos p2 WHERE
p1.pais_origem = p2.pais_origem and vegetariano) – preco as
diferenca_pro_vegetariano_mais_caro FROM pratos p1 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;
SELECT nome, (SELECT max(preco) FROM pratos WHERE vegetariano)
– preco as diferenca_pro_vegetariano_mais_caro FROM pratos
WHERE vegetariano;
c. É preciso selecionar somente os pratos vegetarianos (“WHERE
vegetariano” no final) e mostrar a diferença entre cada prato e
“alguma coisa” (“alguma coisa” – preco). Essa “alguma coisa” deve
ser o preço mais caro do prato vegetariano daquele país. Para ser
vegetariano, há o “and vegetariano” no sub select, e, para ser do
mesmo país, há o “WHERE p1.pais_origem = p2.pais_origem”,
comparando os países do select mais interno (p2) com o do select
mais externo (p1).
Pergunta 6
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
26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_67813… 8/16
Resposta
Selecionada:
d.
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/a
uto-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/
26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_67813… 9/16
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 7
Considere a seguinte consulta: 
SELECT nome FROM funcionario WHERE not(idade > 65 AND sexo = 'M' OR idade
> 60 AND sexo = 'F');
1 em 1 pontos
26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_6781… 10/16
Resposta Selecionada:
d. 
Respostas:
a. 
Assinale a alternativa que indica um par válido de entrada e saída para essa
consulta.
Obs: Todas as entradas se referem à tabela “funcionario”.
Entrada:
 
+----------+-------+------+
| nome | idade | sexo |
+----------+-------+------+
| Moacir | 70 | M |
| Geraldo | 67 | M |
| Enzo | 23 | M |
| Karolyne | 23 | F |
| Josefina | 63 | F |
| Ivone | 70 | F |
+----------+-------+------+
 
Saída:
 
+----------+
| nome |
+----------+
| Enzo |
| Karolyne |
+----------+
Entrada:
 
+----------+-------+------+
| nome | idade | sexo |
+----------+-------+------+
| Moacir | 70 | M |
| Geraldo | 67 | M |
| Enzo | 23 | M |
| Josefina | 63 | F |
| Ivone | 70 | F |
+----------+-------+------+
 
Saída:
+----------+
| nome |
+----------+
| Enzo |
| Josefina |
| Ivone |
+----------+
26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_6781… 11/16
b. 
c. 
Entrada:
 
+----------+-------+------+
| nome | idade | sexo |
+----------+-------+------+
| Moacir | 70 | M |
| Geraldo | 67 | M |
| Enzo | 23 | M |
| Josefina | 63 | F |
| Ivone | 70 | F |
+----------+-------+------+
 
Saída:
 
+----------+
| nome |
+----------+
| Moacir |
| Geraldo |
| Josefina |
| Ivone |
+----------+
Entrada:
 
+----------+-------+------+
| nome | idade | sexo |
+----------+-------+------+
| Moacir | 70 | M |
| Geraldo | 67 | M |
| Enzo | 23 | M |
| Karolyne | 23 | F |
| Josefina | 63 | F |
| Ivone | 70 | F |
+----------+-------+------+
 
Saída:
 
+----------+
| nome |
+----------+
| Moacir |
| Geraldo |
| Enzo |
| Karolyne |
| Josefina |
+----------+
26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_6781… 12/16
d. 
e. 
Comentário
da
resposta:
Entrada:
 
+----------+-------+------+
| nome | idade | sexo |
+----------+-------+------+
| Moacir | 70 | M |
| Geraldo | 67 | M |
| Enzo | 23 | M |
| Karolyne | 23 | F |
| Josefina | 63 | F |
| Ivone | 70 | F |
+----------+-------+------+
 
Saída:
 
+----------+
| nome |
+----------+
| Enzo |
| Karolyne |
+----------+
Entrada:
 
+----------+-------+------+
| nome | idade | sexo |
+----------+-------+------+
| Moacir | 70 | M |
| Geraldo | 67 | M |
| Josefina | 63 | F |
| Ivone | 70 | F |
+----------+-------+------+
 
Saída:
 
…Syntax error…
D. A consulta irá selecionar todos os homens com idade até 65
anos e todas as mulheres com idade até 60 anos. Nas opções A e
B, temos “Ivone”, de 70 anos, sendo selecionada, por isso essas
opções estão erradas. Na opção C, temos “Josefina”, de 63 anos,
sendo selecionada, por isso essa opção também está errada. Como
a consulta não possui erro de sintaxe (opção E), a alternativa
correta é a D.
Pergunta 8
Considere a seguinte tabela de pratos disponíveis em um restaurante: 
1 em 1 pontos
26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_6781… 13/16
Resposta
Selecionada:
b.
Respostas: a.
b.
c.
d.
e.
Comentário
da
resposta:
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;
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 9 1 em 1 pontos
26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_6781… 14/16
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.
Como queremos listar somente os médicos, o DISTINCT é
desejável.
Pergunta 10
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):
1 em 1 pontos
26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_6781… 15/16
 
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
26/05/2021 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_19036311_1&course_id=_154582_1&content_id=_6781… 16/16
Quarta-feira, 26 de Maio de 2021 16h26min21s BRT
Resposta Selecionada: b. 
Respostas: a. 
b. 
c. 
d. 
e. 
Comentário
da
resposta:
 
( ) 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)
(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.
← OK
javascript:launch('/webapps/blackboard/content/listContent.jsp?content_id=_6781292_1&course_id=_154582_1&nolaunch_after_review=true');

Continue navegando