Buscar

QUIZ - BANCO DE DADOS - SENAC

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 20 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 20 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 20 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

Revisar envio do teste: Clique aqui para iniciar o QuizSP_GRAD_686276_2402_01 2401-BANCO DE DADOS Quiz
REVISAR ENVIO DO TESTE: CLIQUE AQUI PARA INICIAR O QUIZ 
Usuário MATHEUS PEREIRA DIONISIO
Curso 2401-BANCO DE DADOS
Teste Clique aqui para iniciar o Quiz
Iniciado 10/05/24 15:13
Enviado 10/05/24 15:59
Data de vencimento 19/06/24 23:59
Status Completada
Resultado da tentativa 10 em 10 pontos  
Tempo decorrido 45 minutos
Resultados exibidos Todas as respostas, Respostas enviadas, Respostas corretas, Comentários
Pergunta 1
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?
 
Sala de Aula Tutoriais
1 em 1 pontos
MATHEUS PEREIRA DIONISIO
117
https://senacsp.blackboard.com/webapps/blackboard/execute/courseMain?course_id=_241574_1
https://senacsp.blackboard.com/webapps/blackboard/content/listContent.jsp?course_id=_241574_1&content_id=_10944101_1&mode=reset
https://www.ead.senac.br/
https://senacsp.blackboard.com/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_260_1
https://senacsp.blackboard.com/webapps/portal/execute/tabs/tabAction?tab_tab_group_id=_210_1
https://senacsp.blackboard.com/webapps/login/?action=logout
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
Resposta Selecionada: b. A proporção de companhias cadastradas que operaram voos registrados na tabela voos.
Respostas: a. A quan�dade de companhias que operaram voos registrados na tabela voos.
b. A proporção de companhias cadastradas que operaram voos registrados na tabela voos.
c. A quan�dade total de companhias cadastradas.
d. Não representa nada, pois seja qual for o conteúdo das tabelas esse comando sempre retorna o número zero.
e. Não representada nada, pois resultará em um erro devido a sintaxe incorreta.
Comentário da
resposta:
b. A consulta está dividindo o “count(dis�nct companhia) FROM voos” (quan�dade de companhias que operaram voos)
por “SELECT count(*) FROM companhias” (quan�dade de empresas cadastradas). Ou seja, temos a proporção de
empresas que operaram voos pelo total de empresas cadastradas.
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://dados.gov.br/dataset/prestacao-de-contas-das-campanhas-eleitorais).
 
Considere que a tabela doacoes possui um schema conforme o seguinte comando:
 
CREATE TABLE doacoes (
1 em 1 pontos
http://dados.gov.br/dataset/prestacao-de-contas-das-campanhas-eleitorais
 UF,
 SiglaPartido,
 DataReceita,
 Valor REAL,
 TipoReceita,
 FonteRecurso,
 EspecieRecurso,
 DescricaoReceita,
 DocumentoDoador,
 NomeDoador );
 
Considere agora a seguinte consulta SQL:
 
SELECT SiglaPartido, sum(Valor) as total_recebido FROM doacoes GROUP BY SiglaPartido ORDER BY total_recebido DESC LIMIT 5;
 
Assinale a alterna�va que indica qual saída o comando acima pode produzir.
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 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
Considere os seguintes tipos de bancos de dados:
 (I) Relacionais com propriedades ACID
(II) Em memória
(III) Orientados a documentos
1 em 1 pontos
(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 �nanceiros que exigem alta consistência.
( ) Análise logística de rotas de caminhões.
 
Assinale a alterna�va que traça a correspondência mais adequada entre os �pos 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 �exí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 �car
com um SGBD relacional. Por �m, 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 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
Considere as seguintes tabelas: 
CREATE TABLE paciente (id intprimary key, nome text);
 
CREATE TABLE medico (id int primary key, nome text);
 
CREATE TABLE consulta (data date, id_paciente int, id_medico int);
 
Considere agora as seguintes consultas realizadas sobre as tabelas acima de�nidas:
 
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.
1 em 1 pontos
 
Assinale a opção que iden�fica corretamente os resultados ob�dos para essas consultas.
Resposta
Selecionada:
e. As consultas I, II, III e IV terão o mesmo resultado, independentemente do conteúdo das tabelas.
Respostas: a. As consultas I e II terão o mesmo resultado. As consultas III e IV possuem erros de sintaxe.
b.
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.
c.
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.
d.
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.
e. As consultas I, II, III e IV terão o mesmo resultado, independentemente do conteúdo das tabelas.
Comentário da
resposta:
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 �ltrado 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 6
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);
1 em 1 pontos
Assinale a alternativa que indica uma consulta válida para identi�carmos os médicos que não possuem consulta marcada na data de
hoje.
Resposta
Selecionada:
a.
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;
Respostas: a.
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;
b.
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;
c.
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;
d.
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;
e. Dada a modelagem apresentada, não é possível realizar a consulta desejada com um único SELECT.
Comentário
da resposta:
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 7
Considere a seguinte tabela:
Tabela de municípios:
1 em 1 pontos
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
or
iz
o
nt
e
M
G
2
5
1
2
0
7
0
3
3
1
S
or
o
c
a
b
a
S
P
6
7
9
3
7
8
4
5
0
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 a�rmar 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. U�liza todos os �pos 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 8
Considere a seguinte sequência de comandos:
 
> SELECT id, saldo FROM conta_corrente WHERE id in (1324, 7634);
id saldo 
----- --------
1324 5000.0 
7634 40000.0 
> BEGIN;
> UPDATE conta_corrente SET saldo = saldo - 100 WHERE id = 1324;
> UPDATE conta_corrente SET saldo = saldo + 200 WEHRE id = 7634;
> COMMIT;
> SELECT id, saldo FROM conta_corrente WHERE id in (1324, 7634);
Qual é a saída produzida pelo último comando?
1 em 1 pontos
Resposta Selecionada:
b. 
id saldo 
----- --------
1324 5000.0 
7634 40000.0
Respostas:
a. 
id saldo 
----- --------
1324 5100.0 
7634 40200.0
b. 
id saldo 
----- --------
1324 5000.0 
7634 40000.0
c. 
id saldo 
----- --------
1324 5100.0 
7634 40000.0
d. … You have an error in your SQL syntax ...
e. 
----- --------
1324 7634 
5000.0 40000.0
Comentário da
resposta:
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á efe�vo. Por isso a saída final será igual a saída do primeiro SELECT.
Pergunta 9
6.1.2.1 Orientações do usuário �nal para a segurança de senha
1 em 1 pontos
 
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 �ca 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 é ine�caz 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 con�gurado 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 par�r 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 par�r 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
u�lizado.
c.
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.
d. Logar como o discu�do, passando a senha na linha de comando, mas usando um contêiner Docker.
e.
O manual do MySQL está defasado. Na úl�ma versão disponível do MySQL, o método discu�do é 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 10
Considere um banco de dados para um sistema de controle de estacionamentos. Os requisitos básicos são: o sistema precisa
armazenar o horário de início e de �m da estadia de cada veículo. Para cada estadia é preciso registrar qual o veículo que foi
estacionado, assim como o dono desse veículo.
Assinale a alternativa que corresponda a uma modelagem para esse problema que esteja na BCFN.
1 em 1 pontos
Resposta
Selecionada:
e.
Descrição acessível: tabela estadia com campos inicio, �m e placa_veiculo; tabela veiculo com campos placa, marca,
modelo, cor e cpf_dono; tabela dono com campos cpf e nome; estadia.placa_veiculo é chave estrangeira para
veiculo.placa; veiculo.cpf_dono é chave estrangeira para dono.cpf.
Respostas: a.
Descrição acessível: tabela estadia com campos inicio, �m e placa_veiculo; tabela veiculo com campos placa, marca-
modelo-cor e cpf_dono; estadia.placa_veiculo é chave estrangeira para veiculo.placa.
b.
Descrição acessível: tabela veiculo com campos placa, marca, modelo, cor, cpf_dono, inicios_estadias e
�ns_estadias; tabela dono com campos cpf e nome_completo; estadia.cpf_dono é chave estrangeira para dono.cpf.
c.
Descrição acessível: tabela estadia com campos inicio, �m, duracao e placa_veiculo; tabela veiculo com campos
placa, marca, modelo, cor e cpf_dono; tabela dono com campos cpf e nome; estadia.placa_veiculo é chave
estrangeira para veiculo.placa; veiculo.cpf_dono é chave estrangeira para dono.cpf.
d.
Descrição acessível: tabela estadia com campos inicio, �m e placa_veiculo; tabela veiculo com campos placa, marca,
modelo, cor e cpf_dono; tabela dono com campos cpf, nome_completo, primeiro_nome e sobre_nome;
estadia.placa_veiculo é chave estrangeira para veiculo.placa; veiculo.cpf_dono é chave estrangeira para dono.cpf.
e.
Descrição acessível: tabela estadia com campos inicio, �m e placa_veiculo; tabela veiculo com campos placa, marca,
modelo, cor e cpf_dono; tabela dono com campos cpf e nome; estadia.placa_veiculo é chave estrangeira para
veiculo.placa; veiculo.cpf_dono é chave estrangeira para dono.cpf.
Comentário da
resposta:
e. Opção A viola a 1FN – campo multivalor (marca-modelo-cor). Opção B viola a 1FN – campos com listas de valores
(inicios_estadias e �ns_estadias). Opção C viola a 2FN – atributo (duracao) é função de parte da chave (inicio, �m,
placa). Opção D viola a 3FN – atributos não chave (primeiro_nome e sobre_nome) dependem de outro atributo não
chave (nome_completo). Opção E está na BCFN (não apresenta nenhuma violação à BCFN).
Sexta-feira, 10 de Maio de 2024 15h59min12s BRT
← OK

Continue navegando

Outros materiais