You are on page 1of 11

Impresso por Mary Leal, E-mail mellealti@gmail.com para uso pessoal e privado.

Este material pode ser protegido por direitos autorais


e não pode ser reproduzido ou repassado para terceiros. 10/06/2023, 16:10:15

Questão 1 :

Considere que você é um analista de sistemas que está desenvolvendo uma consulta
SQL utilizando o SGBD PostgreSQL, onde precisará realizar a operação de produto
cartesiano em duas tabelas criadas com os nomes “TesteA” e “TesteB”.

Você informa algumas colunas de interesse para retornar os dados da tabela


“TesteA” e outras colunas para “TesteB”, e nenhuma condição específica para
seleção é informada. Contudo, ao executar a consulta criada utilizando o software
gráfico pgAdmin do PostgreSQL, nenhum dado é retornado, mas sim uma mensagem
de erro em referência à existência de ambiguidade nas colunas informadas para sua
consulta.

Indique a alternativa com uma explicação do porquê isso acontece e uma


possibilidade adequada para resolução, conforme discutido em nosso material de
estudo.

Resposta Errada! A resposta correta é a opção B


Justificativa: Conforme a descrição no enunciado, esse erro de ambiguidade pode estar
relacionado ao fato de existirem colunas com o mesmo nome definidas para as tabelas
sendo utilizadas como entrada para operação de produto cartesiano. A maneira mais
simples para resolver é adicionando o nome das tabelas antes de cada coluna sendo
projetada na cláusula SELECT, por exemplo “SELECT TabelaA.Coluna...”. Uma alternativa
seria a de criar uma variável de intervalo e, nesse caso, essa identificação precisaria ser
informada para as respectivas colunas na cláusula SELECT e para cada tabela na cláusula
FROM. Não foi indicada a necessidade da operação de seleção, portanto, não haveria
necessidade para ajustes na cláusula WHERE.
A Pode ocorrer quando há tabelas com o mesmo nome. Para resolver, é preciso
alterar a estrutura das colunas dessas tabelas e garantir que tenham nomes
únicos.
B Pode ocorrer quando há colunas com o mesmo nome em diferentes tabelas.
Para resolver, é preciso identificar na cláusula SELECT a qual tabela cada
coluna corresponde.

C Pode ocorrer quando há colunas com o mesmo nome em diferentes tabelas.


Para resolver, é preciso identificar na cláusula FROM a qual tabela cada coluna
corresponde.

D Pode ocorrer por descuido durante o desenvolvimento da consulta. Para


resolver, é preciso identificar na cláusula WHERE a qual tabela cada coluna
corresponde.

E Pode ocorrer por descuido durante o desenvolvimento da consulta. Para


resolver, é preciso renomear cada uma das tabelas conflitantes nas cláusulas
SELECT e FROM.
Questão 2 : A intersecção é um dos operadores relacionados à álgebra relacional. Diante
disso, pode-se afirmar que o conceito de intersecção tem o objetivo de:

Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas condições. Ok
Impresso por Mary Leal, E-mail mellealti@gmail.com para uso pessoal e privado. Este material pode ser protegido por direitos autorais
e não pode ser reproduzido ou repassado para terceiros. 10/06/2023, 16:10:15

Acertou! A resposta correta é a opção C


Justificativa: Dentro da álgebra relacional, o operador de intersecção necessita de, no
mínimo, dois conjuntos de dados para identificar os valores que existem simultaneamente
nos dois conjuntos e, a partir disso, gerar um terceiro conjunto de dados com esses valores
presentes nos dois conjuntos.
A a partir de um conjunto de dados, gerar um segundo conjunto de dados a partir
de todos os valores existentes nos conjuntos de dados.

B a partir de dois conjuntos de dados, gerar um segundo conjunto de dados a


partir dos valores existentes em ambos os conjuntos.

C a partir de dois conjuntos de dados, gerar um terceiro conjunto de dados a partir


dos valores existentes em ambos os conjuntos.

D a partir de dois conjuntos de dados, gerar um terceiro conjunto de dados a partir


dos valores que não estão em ambos os conjuntos.

E a partir de dois conjuntos de dados, gerar um terceiro conjunto de dados a partir


de todos os valores existentes nos dois conjuntos.
Questão 3 :

Os níveis de isolamento de transações em banco de dados servem, principalmente, para o


usuário poder controlar a concorrência e resolver problemas relacionados a isso.

Com isso, qual transação está corretamente declarada para ser feita no nível de isolamento
READ UNCOMMITED?

Resposta Errada! A resposta correta é a opção C


Justificativa: Para trocar o nível de isolamento da transação, é necessário colocar o
comando SET TRANSACTION ISOLATION LEVEL seguido do nível de isolamento que
você quer colocar. Demais operações estão incorretas.
A BEGIN SET TRANSACTION ISOLATION LEVEL UNCOMMITED INSERT INTO
estoque(id_estoque, id_produto, estoque_produto) VALUES(1, 5, 3);COMMIT;

B BEGIN SET TRANSACTION ISOLATION LEVEL COMMITED INSERT INTO


estoque(id_produto, estoque_produto) VALUES(1, 5, 3);COMMIT;

C BEGIN SET TRANSACTION ISOLATION LEVEL READ UNCOMMITED INSERT


INTO estoque(id_estoque, id_produto, estoque_produto) VALUES(1, 5,
3);COMMIT;
D BEGIN SET TRANSACTION ISOLATION LEVEL SERIALIZABLE INSERT INTO
estoque(id_estoque, id_produto, estoque_produto) VALUES(1, 5, 3);COMMIT;

E BEGIN INSERT INTO estoque(id_estoque, id_produto, estoque_produto)


VALUES(1, 5, 3);COMMIT;
Questão 4 : Planejar e executar backups são atividades imprescindíveis para preservar as
informações dos bancos de dados. Considerando o uso de backups por log de arquivos
binários para replicação de dados, indique a alternativa que representa uma aplicação

Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas condições.
Impresso por Mary Leal, E-mail mellealti@gmail.com para uso pessoal e privado. Este material pode ser protegido por direitos autorais
e não pode ser reproduzido ou repassado para terceiros. 10/06/2023, 16:10:15

dessa estratégia.
Resposta Errada! A resposta correta é a opção E
Justificativa: O espelhamento entre servidores de banco de dados é realizado por meio de
backups dos logs binários (backups incrementais) em determinados intervalos de tempo. Os
backups lógicos e a cópia completa não fazem uso dos logs de arquivos binários.
A Backup lógico apenas da estrutura do banco de
dados.

B Backup lógico apenas dos dados do banco de dados.

C Backup lógico da estrutura e dados do banco de


dados.

D Cópia completa do banco de dados.

E Espelhamento entre servidores de banco de dados.


Questão 5 : Bancos de dados relacionais implementam o protocolo Two phase commit
(Commit de duas fases) para garantir a consistência das transações.

Por qual motivo bancos de dados NoSQL, geralmente, evitam utilizar esse protocolo?

Acertou! A resposta correta é a opção A


Justificativa: Bancos de dados NoSQL não utilizam, geralmente, esse protocolo, porque ele
é bloqueante, requer uma resposta de cada nó participante da transação e isso não permite
que o cluster escale para mais nós e não tenha bom desempenho (aumenta latência para
processar transações). O protocolo consegue garantir consistência dos dados, e não
apenas uma consistência eventual. O protocolo também consegue garantir a durabilidade
das transações, sendo utilizado pela maioria dos bancos de dados relacionais. Esse
protocolo não interfere no uso de bancos de dados com replicação de dados. O mesmo vale
para o sharding de dados: o protocolo pode sim ser utilizado em bancos de dados que
fazem sharding.
A Porque o protocolo é bloqueante e não escala.

B Porque o protocolo só consegue garantir consistência


eventual.
C Porque ele não consegue garantir a durabilidade das
transações.

D Porque o protocolo não suporta réplicas de leitura.

E Porque o protocolo não suporta sharding de dados.


Questão 6 : Em um banco de dados relacional, o que representam as colunas da tabela?
Resposta Errada! A resposta correta é a opção E
Justificativa: As colunas representam os atributos da tabela.
A A estrutura do banco de dados.

Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas condições.
Impresso por Mary Leal, E-mail mellealti@gmail.com para uso pessoal e privado. Este material pode ser protegido por direitos autorais
e não pode ser reproduzido ou repassado para terceiros. 10/06/2023, 16:10:15

B Cada coluna representa um registro de informação.

C Cada coluna representa a chave primária de uma


tabela.

D As colunas representam os usuários do banco de


dados.
E As colunas representam os atributos da tabela.
Questão 7 :

Uma loja de produtos eletrônicos conta com um banco de dados onde há duas
tabelas criadas para armazenar as informações dos fornecedores e produtos. Elas
têm a seguinte estrutura:

CREATE TABLE fornecedores (id_fornecedor numeric, cnpj numeric, nome


varchar(40), email varchar(20), endereco varchar(40));

CREATE TABLE produtos (id_produto numeric, id_fornecedor numeric, id_categoria


numeric, nome varchar(40));

Considere que você é um analista de sistemas que precisa desenvolver uma consulta
em SQL para essa loja, de maneira a apresentar as informações de nome e e-mail dos
fornecedores combinadas com o nome do produto.

Indique a alternativa que apresenta uma sintaxe válida para operação de produto
cartesiano em SQL que atenda as expectativas descritas no enunciado.

Resposta Errada! A resposta correta é a opção D


Justificativa: A consulta SQL esperada deveria indicar a projeção das 3 colunas
(Fornecedores: nome e email; Produtos: nome) de interesse na cláusula SELECT. Dessa
maneira, respostas que apresentam todas as colunas, ou menos do que as especificadas,
não estão corretas. Como há colunas com descrições em conflito, para não gerar erro de
ambiguidade durante a execução da consulta, é preciso adicionar às colunas o prefixo de
identificação da tabela correspondente (na cláusula SELECT). Também era preciso fazer a
identificação da variável criada (e usada como prefixo das colunas) para cada tabela dentro
da cláusula FROM.
A SELECT * FROM fornecedores CROSS JOIN produtos;

B SELECT f.nome, p.nome FROM CROSS JOIN fornecedores AND produtos;

C SELECT nome, email, nome FROM fornecedores f CROSS JOIN produtos p;

D SELECT f.nome, f.email, p.nome FROM fornecedores f CROSS JOIN produtos

Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas condições.
Impresso por Mary Leal, E-mail mellealti@gmail.com para uso pessoal e privado. Este material pode ser protegido por direitos autorais
e não pode ser reproduzido ou repassado para terceiros. 10/06/2023, 16:10:15

p;

E SELECT f.nome, f.email, p.nome FROM fornecedores CROSS JOIN produtos;


Questão 8 : Eventos adversos são situações que podem fazer com que os dados de um
banco de dados fiquem indisponíveis aos usuários. Entre os diversos eventos que requerem
a realização de um backup como garantia de salvaguarda dos dados, indique aquele que
representa instruções ilegais que podem ser executadas em um banco de dados.
Resposta Errada! A resposta correta é a opção C
Justificativa: A exclusão acidental de dados representa a necessidade de restauração de
um backup pela execução de alguma instrução ilegal executada por usuários ou
desenvolvedores de sistemas. Atualização de sistemas, desastres naturais e sinistros,
falhas em servidores e troca de equipamentos são eventos adversos que podem tornar os
dados inacessíveis, mas não executam instruções diretamente nos bancos de dados.
A Atualização de sistemas.

B Desastres naturais e
sinistros.

C Exclusão acidental de
dados.

D Falhas em servidores.

E Troca de equipamentos.
Questão 9 :

A álgebra relacional oferece uma base formal para as operações do modelo


relacional, utilizando operadores relacionais que podem ser operações da teoria de
conjuntos da matemática ou operações desenvolvidas para bancos de dados
relacionais. Nesse sentido, observe as tabelas a seguir:

Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas condições.
Impresso por Mary Leal, E-mail mellealti@gmail.com para uso pessoal e privado. Este material pode ser protegido por direitos autorais
e não pode ser reproduzido ou repassado para terceiros. 10/06/2023, 16:10:15

Se as tabelas A e B são relacionadas por um operador relacional, e o resultado está na


tabela C, qual operador foi utilizado?

Resposta Errada! A resposta correta é a opção C


Justificativa: Entre as operações da teoria de conjuntos utilizadas na álgebra relacional para
mesclar os elementos de dois conjuntos estão a UNIÃO, a INTERSECÇÃO e a
SUBTRAÇÃO. Essas são operações onde cada uma é aplicada a dois conjuntos de linhas.
Na UNIÃO, todos as tuplas das duas tabelas são incluídas no resultado; na
INTERSECÇÃO, apenas as tuplas que estão nas duas tabelas relacionadas são
apresentadas no resultado, que é o caso do exemplo da questão; já na SUBTRAÇÃO, o
resultado são as tuplas presentes somente na segunda tabela da relação. A DIVISÃO é
utilizada para dividir o resultado de duas consultas e, assim, obter um resultado final, e a
operação JUNÇÃO, para combinar tuplas relacionadas de duas relações em uma única
tupla.
A União.

B Subtração

C Intersecçã
o

D Junção

E Divisão
Questão 10 : Em alguns casos, além de se aplicar o operador de diferença, faz-se
necessário também aplicar filtros (condições) sobre os conjuntos de dados para se
obter o resultado desejado. Para isso, é verdadeiro dizer que o filtro (where):
Resposta Errada! A resposta correta é a opção A
Justificativa: Ao se construir uma consulta em SQL com o operador de diferença (EXCEPT),
é possível aplicar comandos condicionais por meio do comando WHERE tanto para filtrar os
valores dos conjuntos de dados de entrada quanto no conjunto de dados de saída.
A pode ser aplicado tanto nos selects como no resultado da operação de
diferença.
B não se pode aplicar filtros (condições).

C é aplicável somente no primeiro select.

D não é compatível com as consultas que aplicam o operador de diferença.

E só pode ser aplicado no segundo select.

Questão 1 : É sabido que backups completos podem ser muito demorados porque contêm
todos os dados a serem copiados de um banco de dados. Como parte de uma estratégia de
agilização de backups, é possível criar backups menores com dados que representam
pequenos intervalos que podem ser adicionados a um backup completo. Com base na
técnica que utiliza arquivos de log binário, indique a alternativa correta em relação ao
MySQL.

Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas condições.
Impresso por Mary Leal, E-mail mellealti@gmail.com para uso pessoal e privado. Este material pode ser protegido por direitos autorais
e não pode ser reproduzido ou repassado para terceiros. 10/06/2023, 16:10:15

Resposta Errada! A resposta correta é a opção E


Justificativa: Os arquivos de log binário permitem restaurar um banco de dados pelo método
de recuperação incremental. Os métodos de recuperação física, lógica e completa não são
considerados backups incrementais porque não utilizam os arquivos de log binário, e a
recuperação virtual não é uma opção válida de restauração de backup no MySQL.
A Recuperação virtual.

B Recuperação física.

C Recuperação lógica.

D Recuperação completa.

E Recuperação
incremental.
Questão 2 :

O objetivo do XXXXXXXXXXX é reduzir o tempo de recuperação de falhas em


determinadas situações de banco de dados. O registro dos XXXXXXXXXXX é gravado no
Log em intervalos específicos para, desse modo, registrar todas as transações ativas.
Também neste cenário, o registro do XXXXXXXXXXX pode provocar muitas interrupções no
processamento das transações, pois todas as atividades subjacentes dependem deste
processo. Aponte qual das opções a seguir apresenta corretamente que nome se dá para
XXXXXXXXXXX.

Acertou! A resposta correta é a opção B


Justificativa: Esta opção trata exatamente o nome da funcionalidade para a situação
exposta no enunciado da questão. Os Checkpoints são os pontos de checagem ou
verificação.
A Commit

B Checkpoint

C Buffer

D Backup

E Rollback
Questão 3 : Considerando as transações explícitas, onde o usuário determina o início e o
fim da transação, qual dos comandos inicia, encerra e executa uma operação corretamente
dentro de uma transação?
Acertou! A resposta correta é a opção A
Justificativa: O comando BEGIN inicia uma transação. Logo após ele, deve vir o comando
de execução de uma ou mais operações e, por fim, deve vir o comando COMMIT, que
sinaliza a confirmação da operação para o SGBD.
A BEGIN INSERT INTO venda(id_venda, id_produto, valor) VALUES(1, 5,
34.20);COMMIT;

B INSERT INTO venda(id_venda, id_produto, valor) VALUES(1, 5,


34.20);COMMIT;

Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas condições.
Impresso por Mary Leal, E-mail mellealti@gmail.com para uso pessoal e privado. Este material pode ser protegido por direitos autorais
e não pode ser reproduzido ou repassado para terceiros. 10/06/2023, 16:10:15

C BEGIN INSERT INTO venda(id_venda, id_produto, valor) VALUES(1, 5, 34.20);

D BEGINCOMMIT;

E INSERT INTO venda(id_venda, id_produto, valor) VALUES(1, 5, 34.20);


Questão 4 : As ameaças de segurança a banco de dados são relacionadas a três objetivos
de segurança mais gerais.

Assinale a alternativa em que um desses objetivos de segurança é descrito de forma


correta.

Resposta Errada! A resposta correta é a opção D


Justificativa: A disponibilidade trata da permissão de acesso aos dados, deixando-os
disponíveis aos seus usuários devidamente registrados. Já a integridade trata da proteção
da informação, para que ela não seja modificada sem a autorização necessária ou de forma
incorreta. E a confidencialidade (ou sigilo) tem relação com a proteção da exposição de
informações a usuários não autorizados.
A Acessibilidade: controlar o acesso a bancos de dados específicos.

B Sigilo: possibilitar a atualização dos dados por usuários externos.

C Confidencialidade: proteger a informação de modificações


indevidas.

D Disponibilidade: permitir acesso aos dados a usuários autorizados.

E Integridade: permitir acesso aos dados a usuários autorizados.


Questão 5 : Existem aplicações cujos dados estão extremamente interligados, com diversos
tipos diferentes de entidades se relacionando. As consultas que precisam ser realizadas
sobre esses dados envolvem a verificação de ligações em vários níveis entre as entidades.

Nesses casos, qual é o tipo de banco de dados mais adequado?

Acertou! A resposta correta é a opção C


Justificativa: Quando há entidades com muitos relacionamentos e existe a necessidade de
realizar consultas profundas neles (vários níveis de profundidade), os bancos de dados de
grafos são os mais adequados, por terem sido construídos especificamente para isso.
Bancos de dados relacionais podem vir a ser utilizados nesses casos, mas eles são difíceis
de lidar nessas situações e podem gerar consultas SQL enormes e recursivas. Bancos de
dados colunares seriam limitados nesses casos, por serem mais restritivos nas consultas do
que os bancos de dados relacionais. Bancos de dados de documentos também teriam os
mesmos problemas de bancos de dados relacionais, com consultas complexas e recursivas.
Já os bancos de dados de chave/valor, por permitirem apenas consultas por chave, seriam
os mais limitados de todos.
A Relacional

Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas condições.
Impresso por Mary Leal, E-mail mellealti@gmail.com para uso pessoal e privado. Este material pode ser protegido por direitos autorais
e não pode ser reproduzido ou repassado para terceiros. 10/06/2023, 16:10:15

B De
documentos.

C De grafos.

D Colunar.

E De chave/valor.
Questão 6 : Em um banco de dados relacional, o que representam as colunas da tabela?
Resposta Errada! A resposta correta é a opção E
Justificativa: As colunas representam os atributos da tabela.
A A estrutura do banco de dados.

B Cada coluna representa um registro de informação.

C Cada coluna representa a chave primária de uma


tabela.

D As colunas representam os usuários do banco de


dados.

E As colunas representam os atributos da tabela.


Questão 7 : Há diferentes operações da álgebra relacional que são utilizadas em
banco de dados relacionais. Entre as operações fundamentais, está a projeção, que,
de maneira intuitiva, pode ser entendida como a operação que irá retornar uma
relação baseada nas colunas de interesse de uma tabela.

Assinale a alternativa que apresenta o conceito da operação de projeção da álgebra


relacional:

Resposta Errada! A resposta correta é a opção D


Justificativa: A alternativa correta é a que inicia utilizando a letra π, que é o símbolo
correspondente à operação de projeção em álgebra relacional, e, logo após, indica uma
possível lista de atributos/colunas a serem considerados de uma relação/tabela/conjunto
existente. As demais alternativas não satisfazem a definição da operação de projeção, pois
não deixam claro (em uma expressão única) a necessidade de identificar os
atributos/colunas de interesse em uma relação/tabela/conjunto. Além disso, nessa questão,
não havia a intenção de explorar o comando SQL, mas, caso ele fosse utilizado, a sintaxe
equivalente seria “Select A1, A2, An from Conjunto”.
A Select * Conjunto.

B Select A1, A2, An (*).

C π (Conjunto).

D π A1, A2, An (Conjunto).

E Projetar (A1, A2, An).

Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas condições.
Impresso por Mary Leal, E-mail mellealti@gmail.com para uso pessoal e privado. Este material pode ser protegido por direitos autorais
e não pode ser reproduzido ou repassado para terceiros. 10/06/2023, 16:10:15

Questão 8 : Considerando as transações explícitas, onde o usuário determina o início e fim


da transação, qual dos comandos inicia, executa uma operação e aborta a operação
executada?
Resposta Errada! A resposta correta é a opção B
Justificativa: O comando BEGIN inicia uma transação. Logo após ele, deve vir o comando
de execução de uma ou mais operações e, no caso de você querer desfazer a operação,
deve vir o comando ROLLBACK. Demais operações estão incorretas.
A BEGIN INSERT INTO funcionario(id_funcionario, nome, idade, salario)
VALUES(1, 'João Paulo', 43, 3450.20);COMMIT;

B BEGIN INSERT INTO funcionario(id_funcionario, nome, idade, salario)


VALUES(1, 'João Paulo', 43, 3450.20);ROLLBACK;

C BEGIN INSERT INTO funcionario(id_funcionario, nome, idade, salario)


VALUES(1, 'João Paulo', 43, 3450.20);END;

D INSERT INTO funcionario(id_funcionario, nome, idade, salario) VALUES(1, 'João


Paulo', 43, 3450.20);

E INSERT INTO funcionario(id_funcionario, nome, idade, salario) VALUES(1, 'João


Paulo', 43, 3450.20);COMMIT;
Questão 9 :

Você é professor e precisa listar a situação final de cada aluno (aprovado ou


reprovado) em uma disciplina X. Para isso, criou uma expressão em álgebra
relacional que projetou a seguinte relação:

Alunos1 = { <10002, Aprovado>, <10003, Reprovado>, <10004, Aprovado>, <10005,


Aprovado>, <10006, Aprovado>, <10007, Reprovado>, <10008, Aprovado> }.

Considerando a seguinte estrutura de atributos para a relação original de Alunos:

Alunos (Matrícula, Nome, Idade, Nota Prova, Nota Trabalho, Conceito Final).

Qual expressão da operação de projeção produz a relação Alunos1 e qual a


expressão correspondente para uma consulta SQL válida para ser executada no
SGBD?

Escolha a alternativa que contém as duas expressões:

Resposta Errada! A resposta correta é a opção B


Justificativa: Na expressão da álgebra relacional, era preciso identificar apenas dois
atributos da relação de “Alunos”: “Matrícula” e “Conceito Final”. Isso fica claro ao observar
os elementos resultantes na relação “Alunos1”. Portanto, o atributo “Nome” não poderia ser

Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas condições.
Utilizamos cookies essenciais e tecnologias semelhantes de acordo com a nossa Política de Privacidade e, ao continuar você concorda com essas condições.

You might also like