Você está na página 1de 21

Lista de exercícios - Aula 2 - Tipos de dados

Considere que estamos usando a documentação do PostgreSQL 15 para


responder às perguntas abaixo.

Questão 1.
Considere que você está modelando uma tabela que representa as
transações de cartão de crédito processadas por um sistema de meios de
pagamento. Para o campo de "horário da transação”, qual tipo de dado
você deve utilizar?

a) datetime
b) date
c) time
d) interval

Questão 2.
Considere que você está modelando uma tabela que representa as transações de cartão de
crédito processadas por um sistema de meios de pagamento. Para o campo de "id”, que será
chave primária da transação, qual tipo de dado é o mais adequado?

a) smallint
b) integer
c) bigint
d) double

Questão 3.
Considere que você está modelando uma tabela que colhe feedbacks dos usuários de um serviço
de streaming. Para o campo de "feedback”, qual tipo de dado é o mais adequado?

a) char
b) varchar(100)
c) text
d) varchar(5000)

Questão 4.
Considere que você está modelando uma tabela que colhe feedbacks dos usuários de um serviço
de streaming. Em vez de utilizar um campo do tipo text para o feedback, você optou por usar um
varchar com limite alto. Sobre essa decisão, assinale a alternativa correta?

a) Se utilizasse o text, o banco ficaria protegido de excesso de armazenamento por input


errôneo
b) Ao utilizar o varchar, o banco fica protegido de excesso de armazenamento por inputs
errôneos ou maliciosos
c) Se utilizasse o text, o banco ficaria utilizaria menos armazenamento se o texto fosse menor
que o limite do varchar
d) Ao utilizar o varchar, o banco consome sempre o número de bytes
correspondente ao limite máximo de caracteres, ou seja, se o
limite for 500 caracteres, sempre se consumirá 500 * peso do
carácter

Questão 5.
Em um banco de dados, o estado de aprovação de um pedido de
reembolso é armazenado com um campo Booleano. Sobre esse tipo de
dado, assinale a alternativa correta?

a) Ocupa apenas 1 bit por registro


b) Ocupa 2 bytes por registro
c) Ocupa 1 byte por registro
d) Ocupa 4 bits por registro

GABARITO
1. a
2. c
3. d
4. b
5. c
Lista de exercícios - Aula 3 - Modelagem de
entidades

Considere que estamos usando a documentação do PostgreSQL 15 para


responder às perguntas abaixo.

Questão 1.
Imagine que você está modelando a base de dados de uma biblioteca.
Faça uma possível modelagem para a entidade Livro, lembre-se de
considerar possibilidades de relacionamentos com outras entidades.

Questão 2.
Considere que você está modelando a base de dados de um supermercado. Faça uma possível
modelagem para a entidade Produto, lembre-se de considerar possibilidades de relacionamentos
com outras entidades.

Questão 3.
Considere que você está modelando a base de dados de um app de receitas. Faça uma possível
modelagem para a entidade Receita, lembre-se de considerar possibilidades de relacionamentos
com outras entidades.

Questão 4.
Você está construindo o banco de dados de um hospital. Faça uma possível modelagem para a
entidade Paciente, lembre-se de considerar possibilidades de relacionamentos com outras
entidades.

Questão 5.
Em uma locadora, resolveu-se migrar as fichas para um sistema e você está modelando o banco
de dados. Faça uma possível modelagem para a entidade Emprestimo, lembre-se de considerar
possibilidades de relacionamentos com outras entidades.
GABARITO

1. Possível solução:

2. Possível solução

3. Possível solução:
4. Possível solução:

5. Possível solução:
Lista de exercícios - Aula 4 -
Relacionamentos

Considere que estamos usando a documentação do PostgreSQL 15 para


responder às perguntas abaixo.

Questão 1.
Em um supermercado, uma tabela de marcas contém registros como
Nestlé e Lacta, enquanto uma lista de produtos contém entradas como
Nescau e Diamante negro. O relacionamento entre essas duas tabelas
deve ser (considere o relacionamento de marca com produto, nesta
ordem)

a) 1 para 1
b) 1 para N
c) N para 1
d) M para N

Questão 2.
Considere a relação entre pessoa e CPF. O relacionamento entre essas duas tabelas deve ser
(considere o relacionamento de pessoa com CPF, nessa ordem)

a) 1 para 1
b) 1 para N
c) N para 1
d) M para N

Questão 3.
Em uma escola cada professor dá aula em várias turmas, e cada turma tem pelo menos um
professor por área de conhecimento. Pensando na relação entre turmas e professores, qual deve
ser o relacionamento entre essas duas tabelas (considere o relacionamento de pessoa com CPF,
nessa ordem)

a) 1 para 1
b) 1 para N
c) N para 1
d) M para N

Questão 4.
Em um pronto socorro, cada paciente tem um médico responsável, e cada médico atende pelo
menos dez pacientes num dia. Assim sendo, assinale a alternativa correta

a) A tabela de médicos se relaciona com a tabela de pacientes usando a chave estrangeira


id_medico, contida na tabela de pacientes
b) A tabela de médicos se relaciona com a tabela de pacientes
usando a chave estrangeira id_medico, contida na tabela de
médicos
c) A tabela de médicos se relaciona com a tabela de pacientes
usando a chave primária id_medico, contida na tabela de
pacientes
d) A tabela de médicos se relaciona com a tabela de pacientes
usando a chave estrangeira id_paciente, contida na tabela de
médicos

Questão 5.
Em uma mecânica cada marca de carro possui vários modelos associados.
Pensando no relacionamento entre essas duas tabelas, qual deve ser o tipo de relacionamento?
(considere o relacionamento de marca com modelo, nessa ordem)

a) 1 para 1
b) 1 para N
c) N para 1
d) M para N

GABARITO
1. b
2. a
3. d
4. a
5. c
Lista de exercícios - Aula 6 - Criação de
tabelas

Considere que estamos usando a documentação do PostgreSQL 15 para


responder as perguntas abaixo

Questão 1.
O comando que se utiliza para criar tabelas no postgreSQL é?

a) CREATE TABLE
b) INSERT TABLE
c) CREATE SHEET
d) INSERT SHEET

Questão 2.
Ao criar uma tabela para um colégio, você especifica que o id_matricula é a chave primária de uma
tabela. Definir que um campo é chave primária, significa que:

a) Este campo será único ou nulo, o que garante que seja a única informação necessária para
encontrar um registro na tabela
b) Este campo será não nulo e único, o que garante que seja a única informação necessária
para encontrar um registro na tabela
c) Este campo é o primeiro a aparecer na exibição da tabela
d) Este campo é não nulo, o que garante consistência dos dados nessa coluna.

Questão 3.
Ao criar uma tabela para um supermercado, você especifica que o id_fabricante é a chave
secundária da tabela referenciada fabricante. Definir que um campo é chave secundária, significa
que:

a) Este campo será não nulo e único, o que garante que seja a única informação necessária
para encontrar um registro na tabela em que estamos
b) Este campo será não nulo e único, o que garante que seja a única informação necessária
para encontrar um registro na tabela referenciada
c) Este campo é o segundo a aparecer na exibição da tabela
d) Se tentarem inserir um valor para esse campo que não exista na tabela referenciada, a
inserção resultará num erro
Questão 4.
Considere a seguinte modelagem de tabela para pacientes em um
hospital

Escreva uma query que implementa essa tabela em PostgreSQL.

Questão 5.
Considere a modelagem para uma tabela de Professores a seguir

Escreva uma query que implementa essa tabela em PostgreSQL.


GABARITO

1. a
2. b
3. d
4. Solução:

CREATE TABLE pacientes(


CPF char(40),
Nome varchar(50),
PlanoDeSaude varchar(50),
DataDeNascimento date,
DataDeEntrada date,
primary key(CPF)
)
5. Solução:

CREATE TABLE professores(


id_professor integer,
nome varchar(40),
especialidade varchar(30),
avaliação real,
primary key(id_professor)
)
Lista de exercícios - Aula 7 - Inserindo
registros

Considere que estamos usando a documentação do PostgreSQL 15 para


responder as perguntas abaixo

Questão 1.
Considere a tabela modelada abaixo:

Assinale a alternativa que representa uma inserção de registro válida.

a) INSERT INTO pacientes VALUES (695.084.800-50, ‘João das Neves’, ‘Saude


Plus’,’2070-01-06’, ‘2018-10-12’)
b) INSERT INTO pacientes VALUES (69508480050, ‘João das Neves’, ‘Saude Plus’,’2007-01-06’,
‘2018-10-12’)
c) INSERT INTO pacientes VALUES (695.084.800-50, ‘João das Neves’, ‘Saude
Plus’,’2007-01-06’, ‘2018-10-12’)
d) INSERT INTO pacientes VALUES (695.084.800-50, ‘João das Neves’, ‘Saude
Plus’,’2007-01-06’, ‘2081-10-12’)

Questão 2.
Você vai cadastrar 5 produtos no catálogo de jogos em uma loja de games, para isso, pretende usar
uma única query. Como você pode fazer isso?

a) Utilizando o comando COPY para copiar de um XLSX


b) Utilizar o comando INSERT INTO, separando por vírgulas os valores subsequentes
c) Utilizar o comando INSERT FROM para copiar de um CSV
d) Utilizar o comando INSERT INTO, separando por ponto e vírgula os valores subsequentes
Questão 3.
Seu chefe pediu para que você carregasse os dados de vendas deste
mês em uma tabela, para isso você decidiu usar a função COPY. Acerca
do uso dessa função assinale a alternativa correta

a) O parâmetro CSV HEADER indica que a primeira linha será


ignorada pois contém os nomes das colunas
b) O campo FROM especifica a tabela para a qual os dados vão
c) O DELIMITER indica até que linha iremos do csv
d) A ordem dos campos dentro do parênteses é a ordem das colunas
na tabela, não no CSV

Questão 4.
Considere a inserção de um registro que armazenará o nome de uma pessoa, sua idade e a data
do cadastro. Neste caso, quais tipos de dados devem ser inseridos entre aspas?

a) nome e idade
b) idade e data de nascimento
c) somente a data de nascimento
d) nome e data de nascimento

Questão 5.
Considere a tabela modelada abaixo:

Assinale a alternativa que representa uma inserção de registro válida.

a) INSERT INTO professor VALUES (1,’Jenifer’,Jornalismo,7.4)


b) INSERT INTO professor VALUES (2,’Ana Clara’,’Gramatica’,9,9)
c) INSERT INTO professor VALUES (3,’Larissa’,’Desenvolvimento de Software com ênfase em
Backend’,9.8)
d) INSERT INTO professor VALUES (4,’Gislene’,’Administração’,9.75)
GABARITO

1. c
2. b
3. a
4. d
5. d
Lista de exercícios - Aula 8 - Edição e
remoção de registros

Considere que estamos usando a documentação do PostgreSQL 15 para


responder às perguntas abaixo.

Questão 1.
Ao editar uma linha com erro em uma tabela para alunos, você utilizou o
comando abaixo para mudar o nome digitado errado de “Carlo” para
“Carlos”.

UPDATE alunos set nome = ‘Carlos’

Após executar a query, você percebe que algo de errado aconteceu, o que houve?

a) O aluno editado foi o aluno errado.


b) Todos os alunos agora se chamam Carlos, pois faltou filtrar antes de editar
c) O comando não executou pois a edição é feita com o comando edit
d) O comando não executou pois o comando set não existe

Questão 2.
Você deseja excluir o funcionário com chamado André da sua tabela de funcionários, pois ele
mudou de emprego, assinale a alternativa com o código adequado para isso

a) DELETE funcionario = ‘André’


b) DELETE from funcionarios = ‘André’
c) DELETE from funcionarios WHERE nome= ’André’
d) DELETE from funcionarios

Questão 3.
Na tabela de livros de uma livraria deseja-se alterar a categoria “autoajuda” para “evolução
pessoal”, assinale a query que cumpre esse propósito

a) UPDATE livros SET categoria = ‘evolução pessoal’ WHERE categoria = ‘autoajuda’’


b) UPDATE livros SET categoria = ‘evolução pessoal’
c) UPDATE livros categoria = ‘evolução pessoal’ WHERE categoria = ‘autoajuda’’
d) UPDATE livros categoria = ‘evolução pessoal’

Questão 4.
Um erro no sistema de cadastros gerou diversos cadastros errôneos que precisam ser excluídos.
Todos os cadastros errados foram feitos no dia 2023-01-10 e pode-se considerar que todos os dados
deste dia apresentam erros. Assinale a alternativa que representa uma query para remover esses
registros.

a) DELETE FROM cadastro WHERE data = ‘2023-01-10’


b) DELETE FROM cadastro WHERE data == ‘2023-01-10’
c) DELETE FROM cadastro IF data = ‘2023-01-10’
d) DELETE FROM cadastro data == ‘2023-01-10’

Questão 5.
Enquanto se registrava numa rede social, o gato de Lucas passou no
teclado e os campos nome e e-mail foram enviados como
“aaaaaaaaaaaaa”. Ao editar, o banco de dados utiliza uma query de update
no Postgres. Assinale uma alternativa que representa uma query que
resolve o problema. (Considere que o seu id é o 1905)

a) UPDATE usuario SET nome = ‘Lucas’ email = ‘lucas.silva@gmail.com’ WHERE id = 1905


b) UPDATE usuario nome = ‘Lucas’ email = ‘lucas.silva@gmail.com’ WHERE id = 1905
c) UPDATE usuario SET nome = ‘Lucas’ email = ‘lucas.silva@gmail.com’ IF id = 1905
d) UPDATE usuario SET nome = ‘Lucas’, email = ‘lucas.silva@gmail.com’ WHERE id = 1905

GABARITO
1. b
2. c
3. a
4. b
5. d
Lista de exercícios - Aula 9 - Visualizações e
permissionamento

Considere que estamos usando a documentação do PostgreSQL 15 para


responder às perguntas abaixo.

Questão 1.
Você se juntou à equipe de desenvolvimento de um aplicativo de receitas.
Ao se integrar na equipe, você repara que no banco de dados as senhas
dos clientes estão salvas na tabela clientes de forma aberta, e podem ser
acessadas por desenvolvedores. Sobre isso, uma afirmação adequada a
fazer é:

a) A LGPD pode multar a empresa por não tratar com os devidos cuidados dados sensíveis
b) A senha aberta não deveria ser disponível a todos os desenvolvedores, apenas os da área
de segurança
c) Os dados do cliente estão perfeitamente seguros, pois a equipe de segurança é
competente
d) Se a senha fosse hasheada seria perfeitamente tolerável ter ela exposta para
desenvolvedores

Questão 2.
Ao abrir conta em um banco, usuários são obrigados a deixar seus telefones, documento de
identidade e outros documentos armazenados no banco da instituição. Os dados de telefones não
são abertos e só devem poder ser acessados pelos consultores de investimentos. Para resolver esse
problema uma possível solução é:

a) A limitação de acesso de todos os dados dos clientes, exceto os consultores de


investimentos
b) Uma consulta fazendo a remoção dessa coluna enviada via copia e cola para os usuários
gerais
c) Uma visualização que limite o acesso aos dados dos demais usuários do banco, enquanto
os consultores tem acesso a uma visualização que mostra o telefone
d) Uma visualização que traga esses dados para os consultores, enquanto os demais usuários
usam a tabela geral

Questão 3.
Você vai criar uma visualização de dados para que os professores de uma escola consigam ver
apenas os alunos da sua turma. Para implementar esse tipo de solução, o comando que você
precisa utilizar é

a) CREATE TABLE
b) INSERT VIEW
c) INSERT TABLE
d) CREATE VIEW
Questão 4.
Considere a tabela de uma entidade que representa pacientes em um
Hospital

Assinale a alternativa que exibe o efeito do uso da query abaixo:

CREATE VIEW pacientes_privacidade AS (


SELECT Nome, PlanoDeSaude, DataDeEntrada
FROM pacientes
)

a) Cria uma tabela onde se recorta os dados de CPF e DataDeNascimento, considerados


sensíveis
b) Cria uma visualização, que aponta para a tabela pacientes, e que não exibe os dados CPF e
DataDeNascimento, considerados sensíveis
c) Altera a tabela pacientes, mudando o nome dela e removendo o CPF e a DataDeEntrada
d) Cria uma visualização, que copia da tabela pacientes os dados que não sejam CPF e
DataDeNascimento.

Questão 5.
Você está dando consultoria para uma marca de academias e te perguntaram quais dados são
protegidos pela LGPD. Assinale a Alternativa que contém apenas dados sensíveis do usuário

a) Número da conta bancária, data do registro,nome


b) E-mail, data do registro, documento de identidade
c) E-mail, documento de identidade, número da conta bancária
d) Nome,documento de identidade,e-mail
GABARITO
1. a
2. c
3. d
4. b
5. c
Lista de exercícios - Aula 10 - Índices

Considere que estamos usando a documentação do PostgreSQL 15 para


responder as perguntas abaixo

Questão 1.
Você está definindo um índice para uma tabela e seu chefe questiona qual
tipo de índice foi utilizado. Você responde que utilizou o índice padrão, que
no caso do PostgreSQL 15 é.

a) Hash
b) Árvore Binária (B-Tree)
c) GiST
d) GIN

Questão 2.
Você está implementando uma tabela para armazenar transações de cartão de crédito. A tabela
será consultada uma vez por dia, mas receberá dados com frequência de pelo menos uma
transação por segundo. Seus colegas sugerem que você implemente índices para otimizar as
buscas. Sobre sua resposta assinale a alternativa correta

a) Vou utilizar um índice HASH, pois é o mais adequado nesse caso


b) Não tenho informações suficientes para definir o tipo de índice adequado
c) Vou utilizar um índice árvore binária, pois é o mais adequado nesses casos
d) Não vou utilizar índices pois a tabela escreve muito mais do que é lida, o que ocasionará
em overhead para o banco

Questão 3.
Um colega de equipe seu está com um problema, ele construiu alguns índices do tipo árvore
binária em uma tabela com 100 registros, mas a diferença do tempo de consulta variou muito
pouco. Ele está convencido de que cometeu algum erro na implementação. Você o tranquiliza,
dizendo que

a) Índices desse tipo reduzem consideravelmente o tempo de consulta, mas a melhora só é


realmente significativa em tabelas com muitos registros
b) Ele escolheu o tipo de índice errado, deveria ter usado HASH
c) Ele escolheu o tipo de índice errado, deveria ter usado GiST
d) Índices desse tipo não reduzem consideravelmente o tempo de consulta e seria necessário
trocar o sistema de banco de dados para suprir o problema

Questão 4.
Em uma tabela com respostas de prova, um professor resolveu implementar um índice para
avaliar o campo “esta_correta” e otimizar o filtro para o valor True.

Sobre o resultado da implementação, avalie a alternativa correta.


a) Otimiza o tempo para inserir novas respostas no banco, mas
prejudica a leitura
b) Otimiza o tempo para inserir novas respostas caso elas estejam
certas
c) Otimiza o tempo de busca, fazendo com que ele encontre fácil os
alunos que acertaram a questão
d) Prejudica o tempo de busca das respostas e o de inserção
também, pois o índice não trabalha bem com Booleanos.

Questão 5.

Você está fazendo onboarding de um júnior na sua equipe e foi


perguntado sobre o que são os índices do banco de dados. Você responde
que índices são:

a) Estratégias de organização de dados que otimizam a leitura, em troca de um


pré-processamento após a escrita
b) Estratégias de otimização da escrita, em troca de uma leitura mais lenta
c) Um conjunto de softwares que aumentam a velocidade do banco de dados
d) Uma de definir tabelas que seguem um padrão de qualidade

GABARITO
1. b
2. d
3. a
4. c
5. a

Você também pode gostar