Logo Passei Direto
Buscar

Ferramentas de estudo

Questões resolvidas

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 alternativa correta.
a. 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.
b. 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).
c. Essa alteração no “espaço do problema” provocará obrigatoriamente uma necessidade de atualização no sistema para que se utilize algum outro campo como chave primária: talvez o número de chassi ou mesmo um valor sequencial gerado automaticamente.
d. 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.
e. 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.

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: . Acesso em: mar. 2020.
Sobre índices é correto afirmar que:
a. A criação de índices é imprescindível para qualquer tabela do MySQL.
b. 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.
c. Í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.
d. 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.
e. 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.

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? 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;

Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

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 alternativa correta.
a. 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.
b. 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).
c. Essa alteração no “espaço do problema” provocará obrigatoriamente uma necessidade de atualização no sistema para que se utilize algum outro campo como chave primária: talvez o número de chassi ou mesmo um valor sequencial gerado automaticamente.
d. 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.
e. 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.

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: . Acesso em: mar. 2020.
Sobre índices é correto afirmar que:
a. A criação de índices é imprescindível para qualquer tabela do MySQL.
b. 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.
c. Í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.
d. 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.
e. 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.

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? 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;

Prévia do material em texto

Revisar envio do teste: Clique aqui para iniciar o Quiz
SP_GRAD_686276_2504_01 2503-BANCO DE DADOS Quiz
Revisar envio do teste: Clique aqui para iniciar o Quiz 
Usuário RAFAEL MIRALHA DE CARVALHO
Curso 2503-BANCO DE DADOS
Teste Clique aqui para iniciar o Quiz
Iniciado 01/12/25 11:38
Enviado 01/12/25 11:51
Data de vencimento 10/12/25 23:59
Status Completada
Resultado da tentativa 10 em 10 pontos  
Tempo decorrido 12 minutos
Resultados exibidos Todas as respostas, Respostas enviadas, Respostas corretas, Comentários
Pergunta 1
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
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
1 em 1 pontos
01/12/2025, 11:51 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_47769324_1&course_id=_288294_1&content_id=_13431… 1/14
https://senacsp.blackboard.com/webapps/blackboard/execute/courseMain?course_id=_288294_1
https://senacsp.blackboard.com/webapps/blackboard/content/listContent.jsp?course_id=_288294_1&content_id=_13431197_1&mode=reset
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: . 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.
01/12/2025, 11:51 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_47769324_1&course_id=_288294_1&content_id=_13431… 2/14
https://quatrorodas.abril.com.br/auto-servico/placa-do-mercosul-tire-suas-duvidas-e-saiba-o-que-ja-mudou-no-projeto/
https://quatrorodas.abril.com.br/auto-servico/placa-do-mercosul-tire-suas-duvidas-e-saiba-o-que-ja-mudou-no-projeto/
https://quatrorodas.abril.com.br/auto-servico/placa-do-mercosul-tire-suas-duvidas-e-saiba-o-que-ja-mudou-no-projeto/
 
Dadas essas considerações, assinale a alternativa correta.
Resposta
Selecionada:
d. 
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.
Respostas:
a. 
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.
b. 
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).
c. 
Essa alteração no “espaço do problema” provocará
obrigatoriamente uma necessidade de atualização no
sistema para que se utilize algum outro campo como
chave primária: talvez o número de chassi ou mesmo um
valor sequencial gerado automaticamente.
d. 
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.
e. 
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.
Comentário da
resposta:
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
automaticamente (“on update cascade”), mas essa opção não é
default.
Pergunta 2
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-
1 em 1 pontos
01/12/2025, 11:51 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_47769324_1&course_id=_288294_1&content_id=_13431… 3/14
http://dados.prefeitura.sp.gov.br/dataset/dados-do-sistema-de-atendimento-ao-cidadao-sac-156
do-sistema-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,
    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?
Resposta
Selecionada:
a. 
SELECT tema, count(*) as qtd FROM solicitacoes
GROUP BY tema ORDER BY qtd DESC LIMIT 5;
Respostas:
a. 
SELECT tema, count(*) as qtd FROM solicitacoes
GROUP BY tema ORDER BY qtd DESC LIMIT 5;
b. 
SELECT tema, qtd FROM solicitacoes GROUP BY
tema ORDER BY qtd DESC LIMIT 5;
c. 
SELECT tema, count(*) as qtd FROM solicitacoes
GROUP BY tema ORDER BY qtd LIMIT 5;
d. SELECT tema, qtd FROM solicitacoes LIMIT 5;
01/12/2025, 11:51 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_47769324_1&course_id=_288294_1&content_id=_13431… 4/14
http://dados.prefeitura.sp.gov.br/dataset/dados-do-sistema-de-atendimento-ao-cidadao-sac-156
e. 
SELECT tema, count(*) as qtd FROM solicitacoes
GROUP BY qtd ORDER BY qtd DESC LIMIT 5;
Comentário
da resposta:
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 utilização do “ORDER BY DESC”. Como a
saída só possui 5 linhas, isso sugere a utilizaçã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 3
Considere a seguinte tabela:
Tabela de municípios:
n
o
m
e
u
f
p
o
p
u
l
a
c
a
o
a
r
e
a
S
ã
o
P
a
ul
o
S
P
1
2
2
5
2
0
2
3
1
5
2
1
B
el
o
H
o
ri
z
o
nt
e
M
G
2
5
1
2
0
7
0
3
3
1
S
o
r
o
c
S
P
6
7
9
3
4
5
0
1 em 1 pontos
01/12/2025, 11:51 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_47769324_1&course_id=_288294_1&content_id=_13431… 5/14
a
b
a
7
8
G
u
ar
at
in
g
u
et
á
S
P
1
2
1
7
9
8
7
5
2
R
a
n
c
h
ar
ia
S
P
2
9
7
0
7
1
5
8
7
Al
ta
m
ir
a
P
A
1
1
4
5
9
4
1
5
9
5
3
3
Fonte: https://cidades.ibge.gov.br/
É correto afirmar que essa tabela:
Resposta
Selecionada:
c. Possui os campos “nome”, “uf”, “populacao” e “area”.
Respostas: a. Possui 4 campos e 7 registros.
b. Possui 4 registros.
c. Possui os campos “nome”, “uf”, “populacao” e “area”.
d. 
Utiliza todos os tipos de colunas presentes no MySQL:
text e integer.
e. Não é uma tabela; na verdade é uma tupla.
Comentário da
resposta:
c. Cada coluna que vemos corresponde a um campo da tabela do
banco de dados. A primeira linha que vemos representa os nomes
dos campos; já as linhas subsequentes representam os registros
da tabela do banco de dados.
Pergunta 4 1 em 1 pontos
01/12/2025, 11:51 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_47769324_1&course_id=_288294_1&content_id=_13431… 6/14
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 5
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: . Acesso
em: mar. 2020.
1 em 1 pontos
01/12/2025, 11:51 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_47769324_1&course_id=_288294_1&content_id=_13431… 7/14
https://dev.mysql.com/doc/refman/8.0/en/mysql-indexes.html
https://dev.mysql.com/doc/refman/8.0/en/mysql-indexes.html
 
Sobre índices é correto afirmar que:
Resposta
Selecionada:
d. 
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.
Respostas:
a. 
A criação de índices é imprescindível para qualquer
tabela do MySQL.
b. 
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.
c. 
Í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.
d. 
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.
e. 
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.
Comentário
da resposta:
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 6 1 em 1 pontos
01/12/2025, 11:51 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_47769324_1&course_id=_288294_1&content_id=_13431… 8/14
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:
01/12/2025, 11:51 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_47769324_1&course_id=_288294_1&content_id=_13431… 9/14
 
( ) 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, apesarde 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 7
Considere os seguintes tipos de bancos de dados:
 (I) Relacionais com propriedades ACID
(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.
1 em 1 pontos
01/12/2025, 11:51 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_47769324_1&course_id=_288294_1&content_id=_1343… 10/14
 
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 8
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;
1 em 1 pontos
01/12/2025, 11:51 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_47769324_1&course_id=_288294_1&content_id=_1343… 11/14
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 9
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');
 
1 em 1 pontos
01/12/2025, 11:51 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_47769324_1&course_id=_288294_1&content_id=_1343… 12/14
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.
 
Assinale agora a opção correta.
Resposta
Selecionada:
b. As sentenças I e II são falsas.
Respostas:
a. 
As sentenças I e II são verdadeiras e a II é a explicação da
I.
b. As sentenças I e II são falsas.
c. A sentença I é verdadeira, mas a II é falsa.
d. 
As sentenças I e II são verdadeiras, mas a II não é a
explicação da I.
e. Apenas a sentença II é verdadeira.
Comentário da
resposta:
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 10
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,
 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 alternativa que indica qual saída o comando acima pode produzir.
1 em 1 pontos
01/12/2025, 11:51 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_47769324_1&course_id=_288294_1&content_id=_1343… 13/14
http://dados.gov.br/dataset/prestacao-de-contas-das-campanhas-eleitorais
http://dados.gov.br/dataset/prestacao-de-contas-das-campanhas-eleitorais
Segunda-feira, 1 de Dezembro de 2025 11h51min45s BRT
Resposta
Selecionada:
e. 
SiglaPartido total_recebido
------------ --------------
PSDB 57058765.03 
PT 37767199.76 
SD 18960025.0 
PSD 17706828.38 
PMDB 8748201.0 
Respostas: a. … You have an error in your SQL syntax ...
b. 
SiglaPartido total_recebido
------------ --------------
PCO 91.66 
PCB 6950.0 
PRTB 7327.9 
PDT 10000.0 
PSC 18620.0
c. 
SiglaPartido Valor 
------------ ----------
PSDB 50000.0 
PSB 50000.0 
PT 700000.0 
PT 1615000.0
PT 500000.0 
d. 
SiglaPartido total_recebido
------------ --------------
PSDB 57058765.03 
e. 
SiglaPartido total_recebido
------------ --------------
PSDB 57058765.03 
PT 37767199.76 
SD 18960025.0 
PSD 17706828.38 
PMDB 8748201.0 
Comentário da
resposta:
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.
← OK
01/12/2025, 11:51 Revisar envio do teste: Clique aqui para iniciar o Quiz &ndash...
https://senacsp.blackboard.com/webapps/assessment/review/review.jsp?attempt_id=_47769324_1&course_id=_288294_1&content_id=_1343…14/14

Mais conteúdos dessa disciplina