Buscar

Banco de Dados 1 ESAB


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

Continue navegando


Prévia do material em texto

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:
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 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.
	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 combinadascom 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 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: 
 
 
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.
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;
	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
	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).
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 considerado uma abstração da lista de atributos como “”, uma vez que todos os atributos foram explicitamente definidos no enunciado por meio da relação “Alunos”. Depois, para a expressão convertida para o SQL, somente esses dois atributos deveriam ser indicados, ou seja, utilizar “*” para indicar a necessidade de trazer todas as colunas da tabela não atende ao indicado no enunciado, nem informa a coluna “NOME” como parte da cláusula “SELECT”.
	A
	
	π Matrícula, Conceito Final (Alunos) e SELECT * FROM ALUNOS;
	B
	
	π Matrícula, Conceito Final (Alunos) e SELECT MATRICULA, CONCEITO_FINAL FROM ALUNOS;
	C
	
	π Matrícula, Conceito Final (Alunos) e SELECT MATRICULA, NOME, CONCEITO FROM ALUNOS;
	D
	
	π (Alunos) e SELECT * FROM ALUNOS;
	E
	
	π Nome, Conceito Final (Alunos) e SELECT NOME, CONCEITO_FINAL FROM ALUNOS;
Questão 10 : O conceito do operador de diferença da álgebra relacional apresenta o mesmo funcionamento quando aplicado em banco de dados. Diante disso, para fazer uso desse operador em uma consulta SQL, deve-se usar no PostgreSQL o comando:
Resposta Errada! A resposta correta é a opção E
Justificativa: A linguagem SQL, embora seja comum a todos os SGBD, apresenta variações de cláusulas e nomenclatura de comandos. Esse é justamente o cenário do operador de diferença no PostgreSQL.
	A
	
	Minus
	B
	
	Intersect
	C
	
	Não existe um operador de diferença.
	D
	
	Difference
	E
	
	Except
Questão 1 : 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?
Resposta Errada! 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 2 :
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: 
 
 
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 3 :
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 4 :
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 considerado uma abstração da lista de atributos como “”, uma vez que todos os atributos foram explicitamente definidos no enunciado por meio da relação “Alunos”. Depois, para a expressão convertida para o SQL, somente esses dois atributos deveriam ser indicados, ou seja, utilizar “*” para indicar a necessidade de trazer todas as colunas da tabela não atende ao indicado no enunciado, nem informa a coluna “NOME” como parte da cláusula “SELECT”.
	A
	
	π Matrícula, Conceito Final (Alunos) e SELECT * FROM ALUNOS;
	B
	
	π Matrícula, Conceito Final (Alunos) e SELECT MATRICULA, CONCEITO_FINAL FROM ALUNOS;
	C
	
	π Matrícula, Conceito Final (Alunos) e SELECT MATRICULA, NOME, CONCEITO FROM ALUNOS;
	D
	
	π (Alunos) e SELECT * FROM ALUNOS;
	E
	
	π Nome, Conceito Final (Alunos) e SELECT NOME, CONCEITO_FINAL FROM ALUNOS;
Questão 5 : 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 6 : Bancos de dados colunares armazenam os registros em disco de forma sequencial para cada coluna, ao contrário do que bancos de dados relacionais fazem.
 
Qual é a principal vantagem de se armazenar os dados dessa forma?
Resposta Errada! A resposta correta é a opção C
Justificativa: Bancos de dados colunares, por armazenarem dados de registros de forma sequencial por coluna, são mais rápidos em consultas que realizam agregações por coluna, por permitirem uma leitura em disco sequencial, que é extremamente rápida. De fato, bancos de dados colunares reduzem o espaço de armazenamento, por não precisarem armazenar dados nulos, ao contrário de bancos de dados relacionais, mas essa não é sua principal vantagem. Da mesma forma, bancos de dados colunares permitem níveis maiores de compactação de dados, por armazenarem dados similares, mas essa não é sua principal vantagem. Com bancos de dados colunares, é possível carregar com facilidade apenas determinadas colunas em memória, mas essa também não é sua principal vantagem e geralmente camadas de cache são mais eficientes. Por fim, bancos de dados colunares não deixam consultas que escaneiam todas as colunas mais rápidas, muito pelo contrário: esse tipo de consulta tende a ser muito mais lento em bancos de dados colunares.
	A
	
	Reduzir o consumo de espaço em disco.
	B
	
	Permitir carregar em memória apenas colunas específicas.
	C
	
	Deixar mais rápidas consultas de agregação por colunas específicas.
	D
	
	Permitir uma maior compactação dos dados.
	E
	
	Deixar mais rápidas consultas que escaneiam todas as colunas.
Questão 7 : O modelo de segurança de acesso de autorização baseado em papéis auxilia a conceder os privilégios de acesso relacionados com o trabalho dos usuários, ou o seu papel na organização.
 
Sendo assim, assinale a alternativa que descreve corretamente uma das características da autorização baseada em papéis.
Resposta Errada! A resposta correta é a opçãoB
Justificativa: O controle de acesso baseado em papéis pode ser usado tanto com os controles de acesso discricionário quanto obrigatório. Ele possibilita que os usuários criem sessões durante as quais possam ativar um subconjunto de papéis aos quais pertencem, onde cada sessão pode ter mais de um papel atribuído, sendo mapeada para apenas um usuário. Separar as tarefas é outra função importante para impedir que um usuário realize o trabalho que requer o envolvimento de mais pessoas, o que é feito pela exclusão mútua. Os papéis podem ser criados com o comando CREATE ROLE e destruídos com o comando DROP ROLE.
	A
	
	Os papéis podem ser criados por meio do uso do comando DROP ROLE.
	B
	
	Pode ser utilizado tanto com os controles de acesso discricionário quanto obrigatório.
	C
	
	O controle da inclusão múltipla de papéis pode ser feito por meio da exclusão mútua.
	D
	
	Cada sessão de usuário pode ter mais que um papel atribuído e mais que um usuário.
	E
	
	A exclusão múltipla de papéis agrupa tarefas, de modo que um usuário faça o trabalho sozinho.
Questão 8 : As transações podem ser consideradas, além de unidades de trabalho do banco de dados, unidades de recuperação. Nesse sentido, observe a expressão abaixo:
​​​​​​​
BEGIN TRANSACTION
 
SELECT * FROM Produto;
 
INSERT INTO Produto (id-produto, nome, quantidade),
 
VALUES (12345, ‘Caneta’, 150);
 
COMMIT;
 
SELECT * FROM Produto;
 
END TRANSACTION;
 
Na instrução acima, o operador de transação COMMIT foi utilizado para:
Acertou! A resposta correta é a opção E
Justificativa:
Na instrução oferecida, o operador de transação COMMIT foi utilizado para
 confirmar as inserções na tabela ‘Produto’. O operador de transação COMMIT_TRANSACTION sinaliza um final bem-sucedido da transação, e as mudanças ou atualizações em banco de dados resultantes da transação podem ser confirmadas (committed). Nessa questão, portanto, confirma a inserção realizada por meio do INSERT. Assim, o operador de transação COMMIT não foi utilizado para desfazer o INSERT, nem para selecionar todos os atributos, inserir valor para os atributos ‘id-produto’, ‘nome’ e ‘quantidade’, ou iniciar a transação de inserção da tabela 'Produto', pois é empregado para confirmar as inserções na referida tabela.
	A
	
	Desfazer o INSERT realizado na tabela ‘Produto’.
	B
	
	Selecionar todos os atributos da tabela ‘Produto’.
	C
	
	Inserir valor para os atributos ‘id-produto’, ‘nome’ e ‘quantidade’.
	D
	
	Iniciar a transação de inserção na tabela ‘Produto’.
	E
	
	Confirmar as inserções na tabela ‘Produto’.
Questão 9 : 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 dessa estratégia.
Acertou! 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 10 :
Carla precisa ligar para todos os seus fornecedores de painéis MDF para negociar novos pedidos. Considera-se o seguinte esquema de banco de dados:
 
FORNECEDORES (ID, CNPJ, RAZAO_SOCIAL, NOME_COMERCIAL, ENDERECO, ESTADO, TELEFONE, FAX, EMAIL, MATERIAL).
 
Assinale a alternativa que contém a consulta SQL para ser interpretada pelo SGBD e atender à necessidade de Carla:
Resposta Errada! A resposta correta é a opção E
Justificativa: A alternativa correta é a que indica a projeção das colunas “NOME_COMERCIAL” e “TELEFONE”, que correspondem às informações necessárias para Carla realizar esse contato telefônico. Além disso, deveria utilizar a operação de seleção para filtrar por fornecedores do material “MDF”, e não ter erro na sintaxe SQL.
 
​​​​​​​Algumas alternativas apresentam erro na sintaxe para a cláusula “SELECT”, lembrando que é preciso informar o nome de cada atributo a ser projetado de maneira exatamente igual à forma como foi definido na criação da tabela. Portanto, “NOME”, “FONE”, “” não são nomes para atributos válidos nessa tabela “FORNECEDORES” de acordo com o esquema de banco de dados especificado na questão. Além disso, caso a intenção fosse de trazer todos os atributos dessa tabela, poderia ser usado “*”.
	A
	
	SELECT NOME, FONE FROM FORNECEDORES WHERE MATERIAL=’MDF’;
	B
	
	SELECT FROM FORNECEDORES WHERE MATERIAL=’MDF’;
	C
	
	SELECT CNPJ, RAZAO_SOCIAL, NOME_COMERCIAL, ENDERECO, ESTADO, MATERIAL FROM FORNECEDORES;
	D
	
	SELECT ID, EMAIL, FAX, TELEFONE, ENDERECO, MATERIAL FROM FORNECEDORES;
	E
	
	SELECT NOME_COMERCIAL, TELEFONE FROM FORNECEDORES WHERE MATERIAL=’MDF’;
Questão 1 : Transações são todas as operações executadas entre o início e o fim de uma operação e, para gerenciar as transações, é necessário conhecer as propriedades comumente chamadas de ACID, que devem ser usadas pelos métodos de controle de concorrência e recuperação do SGBD. Aponte qual das opções a seguir apresenta corretamente as propriedades chamadas de ACID.
Resposta Errada! A resposta correta é a opção D
Justificativa: Esta opção apresenta exatamente as quatro propriedades chamadas de ACID.
	A
	
	Atômica Consistente Interna Durável
	B
	
	Atômica Controlada Isolada Durável
	C
	
	Atômica Consistente Isolada Distribuída
	D
	
	Atômica Consistente Isolada Durável
	E
	
	Aberta Consistente Isolada Durável
Questão 2 :
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 3 : A proteção dos bancos de dados contra ameaças é garantida por quatro tipos de medidas de controle específicas.
 
Assinale a alternativa na qual uma dessas medidas é descrita de forma correta.
Resposta Errada! A resposta correta é a opção C
Justificativa: O controle de fluxo impede que informações fluam de modo descontrolado a usuários não autorizados, enquanto a criptográfica é empregada para proteger dados confidenciais, que precisam ser transmitidos por alguma rede de comunicação. Já o controle de acesso é realizado ao criar contas de usuários e senhas para moderar o processo de login pelo SGBD. O controle de ingerência se refere ao controle de acesso a bancos de dados estatísticos, que possibilitam interpretar informações estatísticas, ou seja, ler resumos de dados sobre uma população ou sobre clientes de uma empresa, por exemplo.
	A
	
	Controle de acesso: proteção de dados ao transmiti-los por rede de comunicação.
	B
	
	Controle de ingerência: criação de contas de usuários para moderar a entrada no SGBD.
	C
	
	Controle de fluxo: controle do deslocamentode informações a usuários não autorizados.
	D
	
	Criptografia: interpretação de resumos de dados sobre um grupo de atributos de uma tabela.
	E
	
	Controle de gerência: controle do acesso a informações de indicadores estatísticos.
Questão 4 :
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: 
 
 
Se as tabelas A e B são relacionadas por um operador relacional, e o resultado está na tabela C, qual operador foi utilizado?
Acertou! 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 5 : Bancos de dados colunares são muito usados atualmente, com vários cases de grandes empresas que os utilizam para grandes volumes de dados.
 
Dos casos a seguir, qual pode ser resolvido melhor com o uso de um banco de dados colunar?
Acertou! A resposta correta é a opção D
Justificativa: Bancos de dados colunares são ideais para ingestão de grandes volumes de dados e em tempo real. Dados de cestas de compras de um e-commerce e cache de dados são melhores para bancos de dados de chave/valor. O armazenamento de conteúdos de blogs se encaixa melhor em bancos de dados de documentos. Dados de pessoas e suas amizades de uma rede social são mais adequados para um banco de dados de grafos.
	A
	
	Cache de dados de uma aplicação Web.
	B
	
	Armazenamento de dados de pessoas e amizades de uma rede social.
	C
	
	Armazenamento de dados de conteúdos de um blog.
	D
	
	Aplicação com grande volume de logs de dispositivos gerados em tempo real.
	E
	
	Armazenamento de cesta de compras em um e-commerce.
Questão 6 : Com o uso do SAVEPOINT, é possível criar pontos de recuperação dentro de transações, geralmente ligados a condições ou correções de erros.
 
Nesse sentido, entre as opções a seguir, assinale a instrução na qual o nome do cliente ‘Fausto Gomes’ seria salvo após a execução e finalização da transação.​​​​​​​
Acertou! A resposta correta é a opção B
Justificativa: O SAVEPOINT é útil para casos em que seja necessário retornar a um ponto anterior por alguma falha, mas sem cancelar a transação desde o seu início. Os exemplos dessa questão apresentaram expressões sem condições de erro, para deixar claro que, ao utilizar o ROLLBACK para um determinado SAVEPOINT, as alterações posteriores no banco de dados serão desfeitas. A resposta correta se refere à instrução onde o nome do cliente ‘Fausto Gomes’ é salvo, pois sua inserção não foi desfeita pelo ROLLBACK nem pelo SAVEPOINT B que foi executado.
	A
	
	Confira: BEGIN TRANSACTION INSERT INTO Clientes (CPF, nome, telefone), VALUES (11111111121, ‘Paula Silveira’, 47999999997); SAVEPOINT A; INSERT INTO Clientes (CPF, nome, telefone), VALUES (22222222232, ‘Fausto Gomes’, 61999999991); SAVEPOINT B; INSERT INTO Clientes (CPF, nome, telefone), VALUES (33333333343, ‘Sara Lagos’, 47999999998); SAVEPOINT C; ROOLBACK TO SAVEPOINT A; COMMIT;
	B
	
	Confira: BEGIN TRANSACTION INSERT INTO Clientes (CPF, nome, telefone), VALUES (11111111121, ‘Paula Silveira’, 47999999997); SAVEPOINT A; INSERT INTO Clientes (CPF, nome, telefone), VALUES (22222222232, ‘Fausto Gomes’, 61999999991); SAVEPOINT B; INSERT INTO Clientes (CPF, nome, telefone), VALUES (33333333343, ‘Sara Lagos’, 47999999998); SAVEPOINT C; ROOLBACK TO SAVEPOINT B; COMMIT;
	C
	
	Confira: BEGIN TRANSACTION INSERT INTO Clientes (CPF, nome, telefone), VALUES (11111111121, ‘Paula Silveira’, 47999999997); SAVEPOINT A; INSERT INTO Clientes (CPF, nome, telefone), VALUES (22222222232, ‘Fausto Gomes’, 61999999991); SAVEPOINT B; INSERT INTO Clientes (CPF, nome, telefone), VALUES (33333333343, ‘Sara Lagos’, 47999999998); SAVEPOINT C; ROOLBACK TO SAVEPOINT C; COMMIT;
	D
	
	Confira: BEGIN TRANSACTION INSERT INTO Clientes (CPF, nome, telefone), VALUES (11111111121, ‘Paula Silveira’, 47999999997); SAVEPOINT A; INSERT INTO Clientes (CPF, nome, telefone), VALUES (22222222232, ‘Fausto Gomes’, 61999999991); SAVEPOINT D; INSERT INTO Clientes (CPF, nome, telefone), VALUES (33333333343, ‘Sara Lagos’, 47999999998); SAVEPOINT C; ROOLBACK TO SAVEPOINT A; COMMIT;
	E
	
	Confira: BEGIN TRANSACTION INSERT INTO Clientes (CPF, nome, telefone), VALUES (11111111121, ‘Paula Silveira’, 47999999997); SAVEPOINT E; INSERT INTO Clientes (CPF, nome, telefone), VALUES (22222222232, ‘Fausto Gomes’, 61999999991); SAVEPOINT F; INSERT INTO Clientes (CPF, nome, telefone), VALUES (33333333343, ‘Sara Lagos’, 47999999998); SAVEPOINT G; ROOLBACK TO SAVEPOINT E; COMMIT;
Questão 7 : O fluxo de execução de uma transação passa por diversas etapas até ser efetivamente confirmada e a alteração ser feita permanentemente no banco de dados.
 
Considerando as etapas de uma transação, qual transação segue o fluxo correto até ser confirmada?
Resposta Errada! A resposta correta é a opção D
Justificativa: As etapas de uma transação envolvem o início pelo comando BEGIN, seguido por uma execução de uma ou mais operações, como uma consulta (select) ou uma escrita (insert, update ou delete), após isso, tem-se o fim da execução da operação e, depois, a confirmação da transação. Demais operações estão incorretas.
	A
	
	BEGIN_TRANSACTION --> WRITE --> END_TRANSACTION --> ROLLBACK_TRANSACTION
	B
	
	WRITE --> END_TRANSACTION --> COMMIT_TRANSACTION
	C
	
	BEGIN_TRANSACTION --> WRITE --> COMMIT_TRANSACTION
	D
	
	BEGIN_TRANSACTION --> WRITE --> END_TRANSACTION --> COMMIT_TRANSACTION
	E
	
	BEGIN_TRANSACTION --> WRITE --> END_TRANSACTION --> COMMIT_TRANSACTION --> ROLLBACK_TRANSACTION
Questão 8 : As transações podem ser consideradas, além de unidades de trabalho do banco de dados, unidades de recuperação. Nesse sentido, observe a expressão abaixo:
​​​​​​​
BEGIN TRANSACTION
 
SELECT * FROM Produto;
 
INSERT INTO Produto (id-produto, nome, quantidade),
 
VALUES (12345, ‘Caneta’, 150);
 
COMMIT;
 
SELECT * FROM Produto;
 
END TRANSACTION;
 
Na instrução acima, o operador de transação COMMIT foi utilizado para:
Resposta Errada! A resposta correta é a opção E
Justificativa:
Na instrução oferecida, o operador de transação COMMIT foi utilizado para
 confirmar as inserções na tabela ‘Produto’. O operador de transação COMMIT_TRANSACTION sinaliza um final bem-sucedido da transação, e as mudanças ou atualizações em banco de dados resultantes da transação podem ser confirmadas (committed). Nessa questão, portanto, confirma a inserção realizada por meio do INSERT. Assim, o operador de transação COMMIT não foi utilizado para desfazer o INSERT, nem para selecionar todos os atributos, inserir valor para os atributos ‘id-produto’, ‘nome’ e ‘quantidade’, ou iniciar a transação de inserção da tabela 'Produto', pois é empregado para confirmar as inserções na referida tabela.
	A
	
	Desfazer o INSERT realizado na tabela ‘Produto’.
	B
	
	Selecionar todos os atributos da tabela ‘Produto’.
	C
	
	Inserir valor para os atributos ‘id-produto’, ‘nome’ e ‘quantidade’.
	D
	
	Iniciar a transação de inserção na tabela ‘Produto’.
	E
	
	Confirmar as inserções na tabela ‘Produto’.
Questão 9 : Considerando as transações explícitas, onde o usuário determina o início e o fim da transação, qual dos comandosinicia, encerra e executa uma operação corretamente dentro de uma transação?
Resposta Errada! 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;
	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 10 : 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 dessa estratégia.
Acertou! 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 1 : As propriedades BASE são uma alternativa ao ACID utilizadas por bancos de dados NoSQL que buscam flexibilizar a consistência em favor da disponibilidade.
 
Com relação às propriedades BASE, qual é a afirmativa correta?
Resposta Errada! A resposta correta é a opção B
Justificativa: O BASE tem consistência eventual, ou seja, fraca, e é equivalente aos sistemas AP do Teorema de CAP, já os sistemas CA do Teorema de CAP têm consistência forte e são representados pelas propriedades ACID. Com o BASE, como a consistência é fraca, réplicas não precisam estar em sincronia o tempo todo. O BASE também foca na disponibilidade das aplicações.
	A
	
	O BASE garante consistência forte.
	B
	
	O BASE dá foco na disponibilidade das aplicações.
	C
	
	O BASE corresponde aos sistemas CA pelo Teorema de CAP.
	D
	
	Com o BASE, réplicas precisam estar consistentes o tempo todo.
	E
	
	O BASE tem consistência mais forte do que sistemas CA do Teorema de CAP.
Questão 2 :
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: 
 
 
Se as tabelas A e B são relacionadas por um operador relacional, e o resultado está na tabela C, qual operador foi utilizado?
Acertou! 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 3 : 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).
Questão 4 :
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 p;
	E
	
	SELECT f.nome, f.email, p.nome FROM fornecedores CROSS JOIN produtos;
Questão 5 : A instrução SQL SELECT pertence a qual categoria de linguagem?
Resposta Errada! A resposta correta é a opção B
Justificativa: A instrução SELECT é uma instrução de manipulação; assim, pertence à categoria DML.
	A
	
	DDL.
	B
	
	DML.
	C
	
	DCL.
	D
	
	DLL.
	E
	
	TCP.
Questão 6 : 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?
Resposta Errada! 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;
	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 7 : Os XXXXXXXXXXX são também usados por alguns SGBDs corporativospara resolver situações de Deadlock. Em vez de reverter a transação inteira, o SGBD reverte a transação para o seu ultimo estado consistente. O SGBD pode usar pontos implícitos após cada instrução SQL para reduzir a quantidade de trabalho perdido. Aponte qual das opções a seguir apresenta corretamente que nome se dá para XXXXXXXXXXX.
Resposta Errada! A resposta correta é a opção C
Justificativa: Esta opção apresenta exatamente o nome da funcionalidade para a situação exposta no enunciado da questão. Os Savepoints são os pontos de salvamento.
	A
	
	Start Transaction
	B
	
	Objetos Distribuídos
	C
	
	Savepoint
	D
	
	Hot Spots
	E
	
	Fluxo de Trabalho
Questão 8 : A compreensão dos operadores de álgebra relacional auxilia na elaboração de uma grande variedade de consultas. Diante disso, selecione a alternativa que descreve a operação de diferença aplicada a dois conjuntos de dados:
Resposta Errada! A resposta correta é a opção C
Justificativa: A aplicação do operador de diferença fará com que valores existentes apenas no primeiro conjunto de dados, e que não tenham correspondência no segundo conjunto de dados, sejam usados para gerar um conjunto de dados de saída.
	A
	
	O operador de "diferença" fará com que os valores existentes em ambos os conjuntos de dados gerem um novo conjunto de dados de saída.
	B
	
	O operador de "diferença" fará com que os valores que não existam simultaneamente em ambos os conjuntos de dados gerem um novo conjunto de dados.
	C
	
	O operador de "diferença" fará com que apenas os valores existentes no primeiro conjunto de dados gerem um novo conjunto de dados.
	D
	
	O operador de "diferença" fará uso dos valores existentes apenas no segundo conjunto de dados para gerar um conjunto de saída de dados.
	E
	
	O operador de "diferença" tem por objetivo gerar um novo conjunto de dados a partir dos valores existentes em ambos os conjuntos de dados de entrada.
Questão 9 : Qual a função da instrução SQL ALTER?
Acertou! A resposta correta é a opção B
Justificativa: É um comando muito utilizado por administradores de banco de dados.
	A
	
	Criar a instância do banco de dados.
	B
	
	Alterar a estrutura do banco de dados.
	C
	
	Descartar instâncias do banco de dados.
	D
	
	Excluir tabelas em uma instância de banco de dados.
	E
	
	Renomear instâncias do banco de dados.
Questão 10 : As consultas em álgebra relacional utilizam-se de operadores para descrever, passo a passo, um procedimento para se obter um resultado.
 
Assinale a alternativa na qual são elencadas as operações da teoria de conjuntos que são utilizadas para mesclar os elementos de dois conjuntos:
Acertou! A resposta correta é a opção B
Justificativa: Diferentes operações da teoria de conjunto são utilizadas para mesclar os elementos de dois conjuntos, como UNIÃO, INTERSECÇÃO e DIFERENÇA DE CONJUNTO (ou SUBTRAÇÃO). Estas são operações onde cada uma é aplicada a dois conjuntos de linhas. Enquanto o operador de SELEÇÃO é utilizado para selecionar as linhas de uma relação, o de PROJEÇÃO é empregado para projetar colunas. Já a operação DIVISÃO é utilizada para dividir o resultado de duas consultas e, assim, obter um resultado final; a operação JUNÇÃO, para combinar tuplas relacionadas de duas relações em uma única tupla; e RENOMEAÇÃO, para alterar nomes de atributos ou de relações.
	A
	
	Intersecção, projeção e subtração.
	B
	
	União, intersecção e subtração.
	C
	
	Seleção, projeção e junção.
	D
	
	Divisão, união e renomeação.​​​​​​​
	E
	
	Seleção, alteração e junção.
Questão 1 : Bancos de dados colunares são muito usados atualmente, com vários cases de grandes empresas que os utilizam para grandes volumes de dados.
 
Dos casos a seguir, qual pode ser resolvido melhor com o uso de um banco de dados colunar?
Resposta Errada! A resposta correta é a opção D
Justificativa: Bancos de dados colunares são ideais para ingestão de grandes volumes de dados e em tempo real. Dados de cestas de compras de um e-commerce e cache de dados são melhores para bancos de dados de chave/valor. O armazenamento de conteúdos de blogs se encaixa melhor em bancos de dados de documentos. Dados de pessoas e suas amizades de uma rede social são mais adequados para um banco de dados de grafos.
	A
	
	Cache de dados de uma aplicação Web.
	B
	
	Armazenamento de dados de pessoas e amizades de uma rede social.
	C
	
	Armazenamento de dados de conteúdos de um blog.
	D
	
	Aplicação com grande volume de logs de dispositivos gerados em tempo real.
	E
	
	Armazenamento de cesta de compras em um e-commerce.
Questão 2 : Assim como a concessão, a revogação de privilégios para usuários em um banco de dados é importante para garantir a segurança das informações armazenadas.
 
Sendo assim, assinale a afirmação em que são revogados corretamente os seguintes privilégios da relação CLIENTE da conta usu_teste: o que permite alteração de tabelas, colunas e índices; e o que permite excluir tabelas, visões, triggers ou banco de dados.
Acertou! A resposta correta é a opção A
Justificativa: O comando REVOKE é utilizado nas instruções que revogam privilégios a usuários de um banco de dados. A sintaxe básica do uso desse comando é:
 
REVOKE {lista de privilégios}
 
ON {relação ou visão}
 
TO {usuário ou lista de usuários}
 
Agora, os privilégios corretos na questão são ALTER e DROP, pois ALTER permite alterar tabelas, colunas e índices; e DROP permite excluir tabelas, visões, triggers ou banco de dados. Já UPDATE permite atualizar dados das tabelas; DELETE, excluir dados da tabela; USAGE, conectar ao servidor; INDEX, adicionar ou excluir índices; e CREATE, criar tabelas, visões, triggers ou banco de dados.
	A
	
	REVOKE ALTER, DROP ON CLIENTE TO USU_TESTE;
	B
	
	REVOKE UPDATE, DELETE ON CLIENTE TO USU_TESTE;
	C
	
	REVOKE USAGE, INDEX ON CLIENTE TO USU_TESTE;
	D
	
	REVOKE ALTER, DELETE ON CLIENTE TO USU_TESTE;
	E
	
	REVOKE CREATE, DROP ON CLIENTE TO USU_TESTE;
Questão 3 : 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?
Resposta Errada! 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 4 : As operações de transação são responsáveis por descrever, dentro de um código SQL, uma transação.
 
Assinale a alternativa que descreve corretamente uma das operações de transação.
Resposta Errada! A resposta correta é a opção D
Justificativa:
Entre os operadores de transação estão: o comando SAVEPOINT, que é uma forma de salvar etapas de uma transação, por meio da definição de pontos intermediários de salvamento temporário; BEGIN_TRANSACTION, que marca o momento do início da execução da transação; READ, que especifica a ação de leitura em itens do banco de dados durante uma transação; COMMIT_TRANSACTION, que sinaliza um final bem-sucedido da transação e que as mudanças ou atualizações em banco de dados resultantes da transação podem ser confirmadas; e ROLLBACK, que aponta que a transação foi encerrada, porém sem sucesso,e por isso mudanças ou atualizações em banco de dados resultantes da transação devem ser desfeitas.
	A
	
	COMMIT: transação encerrada sem sucesso.
	B
	
	ROLLBACK: transação encerrada com sucesso.
	C
	
	READ: ação de gravação de dados durante a transação.
	D
	
	SAVEPOINT: definição de ponto de recuperação temporário.
	E
	
	BEGIN TRANSACTION: ação de leitura de dados na transação.
Questão 5 :
Uma loja de produtos eletrônicos conta com um banco de dados onde há três tabelas. Uma delas armazena as informações dos fornecedores (total de 100 registros), outra as dos produtos (total de 2500 registros) e a terceira armazena as categorias (total de 32 registros). Elas foram criadas com a seguinte estrutura:
 
CREATE TABLE fornecedores (id_fornecedor numeric, cnpj numeric, nome varchar(40), email varchar(20), telefone varchar(20), endereco varchar(40));
 
CREATE TABLE produtos (id_produto numeric, id_fornecedor numeric, id_categoria numeric, nome varchar(40));
 
CREATE TABLE categorias (id_categoria, setor numeric, nome varchar(40));
 
Considere que você precisa implementar a operação de produto cartesiano: categorias × produtos × fornecedores.
 
Indique a alternativa que apresenta (respectivamente) a quantidade de linhas e colunas esperadas na nova relação produzida.
Acertou! A resposta correta é a opção D
Justificativa: A relação resultante da operação de produto cartesiano, quando informadas as três tabelas de entrada, deverá ter 8.000.000 linhas (32 * 2500 * 100) e 13 colunas (3 + 4 + 6).
	A
	
	250.000 e 13.
	B
	
	250.000 e 14.
	C
	
	250.000 e 72.
	D
	
	8.000.000 e 13.
	E
	
	8.000.000 e 72.
Questão 6 : As propriedades BASE são uma alternativa ao ACID utilizadas por bancos de dados NoSQL que buscam flexibilizar a consistência em favor da disponibilidade.
 
Com relação às propriedades BASE, qual é a afirmativa correta?
Resposta Errada! A resposta correta é a opção B
Justificativa: O BASE tem consistência eventual, ou seja, fraca, e é equivalente aos sistemas AP do Teorema de CAP, já os sistemas CA do Teorema de CAP têm consistência forte e são representados pelas propriedades ACID. Com o BASE, como a consistência é fraca, réplicas não precisam estar em sincronia o tempo todo. O BASE também foca na disponibilidade das aplicações.
	A
	
	O BASE garante consistência forte.
	B
	
	O BASE dá foco na disponibilidade das aplicações.
	C
	
	O BASE corresponde aos sistemas CA pelo Teorema de CAP.
	D
	
	Com o BASE, réplicas precisam estar consistentes o tempo todo.
	E
	
	O BASE tem consistência mais forte do que sistemas CA do Teorema de CAP.
Questão 7 : As operações da álgebra relacional estão presentes nos fundamentos das soluções para Sistemas de Gerenciamento de Banco de Dados (SGBD) no que se refere à realização de consultas em bancos de dados relacionais. Segundo o conteúdo apresentado no capítulo Produto cartesiano em SQL, introduzido nessa unidade de aprendizagem, a definição da operação de produto cartesiano da álgebra relacional pode ser resumida da seguinte maneira:
Resposta Errada! A resposta correta é a opção C
Justificativa: A operação da álgebra relacional irá gerar uma nova relação (e não unificar relações). Seus elementos serão compostos pela combinação de todas as tuplas contidas nas relações de entrada. Poderão ser informadas múltiplas relações de entrada, ou seja, a operação não estará limitada a duas ou três.
	A
	
	É uma operação relacional que irá unir relações. Seus elementos serão compostos pela multiplicação das tuplas contidas nas duas relações de entrada.
	B
	
	É uma operação relacional que irá unir relações. Seus elementos serão compostos pela combinação de todas as tuplas contidas nas relações de entrada.
	C
	
	É uma operação relacional que irá produzir uma nova relação. Seus elementos serão compostos pela combinação de todas as tuplas contidas nas relações de entrada.
	D
	
	É uma operação relacional que irá produzir uma nova relação. Seus elementos serão compostos pela combinação de todas as tuplas contidas em duas relações de entrada.
	E
	
	É uma operação relacional que irá produzir uma nova relação. Seus elementos serão compostos pela combinação de todas as tuplas contidas em até três relações de entrada.
Questão 8 :
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.
Resposta Errada! 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 9 :
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 10 : Bancos de dados colunares armazenam os registros em disco de forma sequencial para cada coluna, ao contrário do que bancos de dados relacionais fazem.
 
Qual é a principal vantagem de se armazenar os dados dessa forma?
Resposta Errada! A resposta correta é a opção C
Justificativa: Bancos de dados colunares, por armazenarem dados de registros de forma sequencial por coluna, são mais rápidos em consultas que realizam agregações por coluna, por permitirem uma leitura em disco sequencial, que é extremamente rápida. De fato, bancos de dados colunares reduzem o espaço de armazenamento,por não precisarem armazenar dados nulos, ao contrário de bancos de dados relacionais, mas essa não é sua principal vantagem. Da mesma forma, bancos de dados colunares permitem níveis maiores de compactação de dados, por armazenarem dados similares, mas essa não é sua principal vantagem. Com bancos de dados colunares, é possível carregar com facilidade apenas determinadas colunas em memória, mas essa também não é sua principal vantagem e geralmente camadas de cache são mais eficientes. Por fim, bancos de dados colunares não deixam consultas que escaneiam todas as colunas mais rápidas, muito pelo contrário: esse tipo de consulta tende a ser muito mais lento em bancos de dados colunares.
	A
	
	Reduzir o consumo de espaço em disco.
	B
	
	Permitir carregar em memória apenas colunas específicas.
	C
	
	Deixar mais rápidas consultas de agregação por colunas específicas.
	D
	
	Permitir uma maior compactação dos dados.
	E
	
	Deixar mais rápidas consultas que escaneiam todas as colunas.
Questão 1 : 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 2 :
Marcos é um analista de sistemas que foi solicitado para auxiliar na estratégia de vendas de uma loja de bazar com artigos variados. Todas as operações da loja, inclusive o registro das vendas, são armazenadas em um banco de dados relacional. Entre as inúmeras consultas que Marcos deverá realizar, uma delas deve apresentar as categorias dos itens vendidos durante o final de semana (que somam mais de 10 mil itens na tabela para o recorte de tempo selecionado para análise).
 
A consulta implementada por Marcos resultou na seguinte relação de categorias para os itens vendidos:
 
CATEGORIA Infantil Ferragem Cozinha Decoração Casa
 
Considera-se o seguinte esquema de banco de dados para a tabela sob consulta:
 
VENDAS(ID_VENDAS, ID_VENDEDOR, ID_PRODUTO, CATEGORIA, VALOR, DT_VENDA, FINAL_SEMANA).
Assinale a alternativa que corresponde ao comando SQL executado por Marcos para produzir esse resultado:
Resposta Errada! A resposta correta é a opção D
Justificativa: Lembrando que erros de sintaxe SQL não seriam aceitos, a alternativa correta é a que atende às três premissas para essa consulta formuladas com base no enunciado da questão. Premissa 1: o retorno da projeção deveria considerar somente os valores correspondentes às categorias (portanto, uma única coluna, e não todas as possíveis colunas da tabela que armazena os registros de vendas). Logo, chega-se a uma coluna com nome “CATEGORIA” e tabela “VENDAS” como opções válidas para projeção. Além disso (premissa 2), o comando “DISTINCT” precisaria ser adicionado na cláusula “SELECT” para garantir que só aparecessem descrições únicas para as categorias, pois, conforme descrito no enunciado da questão, mais de 10 mil linhas seriam retornadas, uma por item vendido, o que geraria descrições de categorias duplicadas. ​​​​​​​Por fim (premissa 3), a condição para a operação de seleção com a cláusula “WHERE” precisa ser adicionada para considerar somente os elementos referentes às vendas durante o final de semana.
	A
	
	SELECT * FROM VENDAS;
	B
	
	SELECT * FROM VENDAS WHERE FINAL_SEMANA=‘SIM’;
	C
	
	SELECT CATEGORIA FROM VENDAS WHERE FINAL_SEMANA=‘SIM’;
	D
	
	SELECT DISTINCT CATEGORIA FROM VENDAS WHERE FINAL_SEMANA=‘SIM’;
	E
	
	SELECT *, DISTINCT CATEGORIA FROM VENDAS WHERE FINAL_SEMANA=‘SIM’;
Questão 3 : A instrução SQL SELECT pertence a qual categoria de linguagem?
Resposta Errada! A resposta correta é a opção B
Justificativa: A instrução SELECT é uma instrução de manipulação; assim, pertence à categoria DML.
	A
	
	DDL.
	B
	
	DML.
	C
	
	DCL.
	D
	
	DLL.
	E
	
	TCP.
Questão 4 : 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 5 : Com o uso do SAVEPOINT, é possível criar pontos de recuperação dentro de transações, geralmente ligados a condições ou correções de erros.
 
Nesse sentido, entre as opções a seguir, assinale a instrução na qual o nome do cliente ‘Fausto Gomes’ seria salvo após a execução e finalização da transação.​​​​​​​
Resposta Errada! A resposta correta é a opção B
Justificativa: O SAVEPOINT é útil para casos em que seja necessário retornar a um ponto anterior por alguma falha, mas sem cancelar a transação desde o seu início. Os exemplos dessa questão apresentaram expressões sem condições de erro, para deixar claro que, ao utilizar o ROLLBACK para um determinado SAVEPOINT, as alterações posteriores no banco de dados serão desfeitas. A resposta correta se refere à instrução onde o nome do cliente ‘Fausto Gomes’ é salvo, pois sua inserção não foi desfeita pelo ROLLBACK nem pelo SAVEPOINT B que foi executado.
	A
	
	Confira: BEGIN TRANSACTION INSERT INTO Clientes (CPF, nome, telefone), VALUES (11111111121, ‘Paula Silveira’, 47999999997); SAVEPOINT A; INSERT INTO Clientes (CPF, nome, telefone), VALUES (22222222232, ‘Fausto Gomes’, 61999999991); SAVEPOINT B; INSERT INTO Clientes (CPF, nome, telefone), VALUES (33333333343, ‘Sara Lagos’, 47999999998); SAVEPOINT C; ROOLBACK TO SAVEPOINT A; COMMIT;
	B
	
	Confira: BEGIN TRANSACTION INSERT INTO Clientes (CPF, nome, telefone), VALUES (11111111121, ‘Paula Silveira’, 47999999997); SAVEPOINT A; INSERT INTO Clientes (CPF, nome, telefone), VALUES (22222222232, ‘Fausto Gomes’, 61999999991); SAVEPOINT B; INSERT INTO Clientes (CPF, nome, telefone), VALUES (33333333343, ‘Sara Lagos’, 47999999998); SAVEPOINT C; ROOLBACK TO SAVEPOINT B; COMMIT;
	C
	
	Confira: BEGIN TRANSACTION INSERT INTO Clientes (CPF, nome, telefone), VALUES (11111111121, ‘Paula Silveira’, 47999999997); SAVEPOINT A; INSERT INTO Clientes (CPF, nome, telefone), VALUES (22222222232, ‘Fausto Gomes’, 61999999991); SAVEPOINT B; INSERT INTO Clientes (CPF, nome, telefone), VALUES (33333333343, ‘Sara Lagos’, 47999999998); SAVEPOINT C; ROOLBACK TO SAVEPOINT C; COMMIT;
	D
	
	Confira: BEGIN TRANSACTION INSERT INTO Clientes (CPF, nome, telefone), VALUES (11111111121, ‘Paula Silveira’, 47999999997); SAVEPOINT A; INSERT INTO Clientes (CPF, nome, telefone), VALUES (22222222232, ‘Fausto Gomes’, 61999999991); SAVEPOINT D; INSERT INTO Clientes (CPF, nome, telefone), VALUES (33333333343, ‘Sara Lagos’, 47999999998); SAVEPOINT C; ROOLBACK TO SAVEPOINT A; COMMIT;
	E
	
	Confira: BEGIN TRANSACTION INSERT INTO Clientes (CPF, nome, telefone), VALUES (11111111121, ‘Paula Silveira’, 47999999997); SAVEPOINT E; INSERT INTO Clientes (CPF, nome, telefone), VALUES (22222222232, ‘Fausto Gomes’, 61999999991); SAVEPOINT F; INSERT INTO Clientes (CPF, nome, telefone), VALUES (33333333343, ‘Sara Lagos’, 47999999998); SAVEPOINT G; ROOLBACK TO SAVEPOINT E; COMMIT;
Questão 6 :
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