Buscar

Banco de Dados - SAGAH

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 115 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 115 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 115 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Questão 1 : 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 2 : 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 3 : Qual é considerada a regra de ouro para os bancos de dados?​​​​​​​
Resposta Errada! A resposta correta é a opção A 
Justificativa: Para que o banco de dados possa ser usado com segurança e eficiência, é preciso que os quatro pilares sejam respeitados em cada uma das transações internas.
	A
	
	É a garantia de que todos os quatro pilares das transações sejam respeitados em cada uma de suas transações internas.
	B
	
	É a garantia de que todos os três pilares das transações sejam garantidos e respeitados em cada uma de suas transações internas.
	C
	
	É a garantia de que todos os pilares das transações sejam garantidos e respeitados em alguma de suas transações internas.
	D
	
	É a garantia de que todas os quatro pilares das transações não sejam garantidos e respeitados em cada uma de suas transações internas.
	E
	
	É a garantia de que nenhum dos pilares das transações seja garantido e respeitado em cada uma de suas transações internas.
Questão 4 : 
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 5 : 
Considere que você é um analista de sistemas que recebeu a demanda para desenvolver uma consulta em um banco de dados relacional de uma biblioteca. Antes de criar a consulta SQL, você deve pensar na formalização da expressão em álgebra relacional para operação de produto cartesiano que recebe como entrada duas relações nomeadas Estantes e Livros. Cada relação tem a seguinte estrutura:
 
Estantes = {Número, Nome, Andar, Área}. Livros = {Código, Título, Ano, Autor, Estante}.
 
Considere ainda que essa consulta deve retornar somente os livros do ano de 2020. Além disso, você precisa apresentar a informação do andar e o título do livro.
 
Baseado nesse enunciado e no conteúdo visto nessa UA, indique a alternativa que apresenta a expressão da álgebra relacional formalizada corretamente para o problema apresentado.
Resposta Errada! A resposta correta é a opção D 
Justificativa: A ordem da informação das relações não faria diferença para o problema, mas mantendo a ordem do enunciado, vamos considerar que essa expressão precisa conter a operação produto cartesiano “Estantes × Livros”. Depois, foi solicitado fazer um filtro por ano de publicação dos livros, logo a operação de seleção deveria ser informada “σ Ano = 2020 (...)”. Por fim, foi mencionado que apenas duas colunas eram relevantes, portanto a operação de projeção também precisava ser indicada por “π Andar, Título (...)”.
	A
	
	π Estante, Livro (Ano = 2020 (Livros × Estantes)).
	B
	
	π (σ (Estantes × Livros)).
	C
	
	π Estante, Título (σ Ano=2020 (Livros × Estantes)).
	D
	
	π Andar, Título (σ Ano=2020 (Estantes × Livros)).
	E
	
	π Andar, Título (σ Ano (Estantes × Livros)).
Questão 6 : 
O operador de PROJEÇÃO (π) é empregado para projetar colunas. Veja a seguinte expressão:
 
π Idade, DataNascimento (ALUNO)
 
Agora, assinale a alternativa que representa corretamente essa consulta em SQL:
Resposta Errada! A resposta correta é a opção D 
Justificativa: Nesse caso, são especificadas duas colunas, Idade e DataNascimento, da tabela ALUNO, e o resultado não pode ter duplicatas. Para isso, utiliza-se da palavra-chave DISTINCT na consulta SQL. Caso não fosse empregada, duplicadas poderiam não ser eliminadas, o que não é permitido nesse caso da álgebra relacional formal. Para indicar a tabela, deve ser empregado o FROM e não o WHERE, visto que ele seria útil somente se fosse necessária alguma especificação de dados na consulta.
	A
	
	SELECT Anos, DataNascimento FROM ESTUDANTE.
	B
	
	SELECT DISTINCT Idade, DataNascimento FROM ALUNO.
	C
	
	SELECT Idade, DataNascimento FROM ALUNO.
	D
	
	SELECT DISTINCT Idade, DataNascimento FROM ALUNO.
	E
	
	SELECT DISTINCT Idade, DataNascimento WHERE ALUNO.
Questão 7 : A álgebra relacional possibilita realizar seleções em um banco de dados. Veja a seguinte expressão:​​​​​​​ 
 
σ CodigoTurma=401 AND Media>06 (ALUNO)​​​​​​​
​​​​​​​
A instrução acima utilizada pelo operador de seleção (σ) foi criada para:
Resposta Errada! A resposta correta é a opção D 
Justificativa: O operador de SELEÇÃO, representado por σ (letra grega sigma), é utilizado para selecionar as linhas de uma relação. Ele especifica as linhas a serem mantidas utilizando uma condição de seleção, que geralmente é uma expressão booleana (comparação entre dois valores) de termos. Nessa questão, primeiro se procura se o código da turma é igual a 401 e se a média do aluno é maior que 6, da tabela aluno.O operador de SELEÇÃO, representado por σ (letra grega sigma), é utilizado para selecionar as linhas de uma relação.Ele especifica as linhas a serem mantidas utilizando uma condição de seleção, que geralmente é uma expressão booleana (comparação entre dois valores) de termos. Nessa questão, primeiro se procura se o código da turma é igual a 401 e se a média do aluno é maior que 6, da tabela aluno.
	A
	
	selecionar as turmas com média maior que 6 que tenham alunos com código 401.
	B
	
	Selecionar os alunos da turma com o código 401 com média igual ou superior a 6.
	C
	
	selecionar os alunos com média maior ou igual a 6 que pertencem à turma com código 401.
	D
	
	selecionar os alunos com média maior que 6 que pertencem à turma com código 401.
	E
	
	selecionar a média e o nome dos alunos que pertencem à turma com código 401.
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:
Acertou! 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 principal característica de um banco de dados hierárquico?
Resposta Errada! A resposta correta é a opção C 
Justificativa: Isso os torna incrivelmente úteis para coletar informações que seguem uma ordem específica.
	A
	
	O banco de dados é representado como uma coleção de relações.
	B
	
	O banco de dados permite que vários registros sejam vinculados ao mesmo arquivo de proprietário.
	C
	
	O banco de dados usa diferentes níveis de dados que seguem um padrão semelhante a uma hierarquia.
	D
	
	O banco de dados deve ter apenas cinco campos de atributos.
	E
	
	O banco de dados não pode ser utilizado em sistemas de informação.
Questão 10 : 
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 1 : Qual a principal característica de um banco de dados hierárquico?
Acertou! A resposta correta é a opção C 
Justificativa: Isso os torna incrivelmente úteis para coletar informações que seguem uma ordem específica.
	A
	
	O banco de dados é representado como uma coleção de relações.
	B
	
	O banco de dados permite que vários registros sejam vinculados ao mesmo arquivo de proprietário.
	C
	
	O banco de dados usa diferentes níveis de dados que seguem um padrão semelhante a uma hierarquia.
	D
	
	O banco de dados deve ter apenas cinco campos de atributos.
	E
	
	O banco de dados não pode ser utilizado em sistemas de informação.
Questão 2 : 
As consultas a banco de dados apresentam papel destacável diante da variedade de motivos que levam à necessidade de uma informação. Dito isso, ao elaborar uma consulta SQL para combinar o resultado de duas tabelas a partir do comando Intersect, podem-se combinar alguns outros comandos ao Select. Avalie as alternativas a seguir e selecione a correta.
Resposta Errada! A resposta correta é a opção D 
Justificativa: 
O comando Select é um dos mais largamente usados nas operações em BD. Isso se deve à sua amplitude e capacidade de combinar diferentes operadores e funções para alcançar os resultados esperados. Por isso, dentro de uma consulta de intersecção, podem-se aplicar funções condicionais com os seus respectivos operadores lógicos; por exemplo, adicionar filtros a partir do Where usando os operadores And, Or e Not, bem como ordenar resultados e ainda adicionar os demais comandos do Select.
	A
	
	Não é possível adicionar outros comandos nessa consulta.
	B
	
	A adição se limita apenas à condição Where.
	C
	
	É possível adicionar a condição Where, mas não se pode adicionar ordenação nessa consulta.
	D
	
	Podem-se adicionar filtros a partir do Where usando os operadores And, Or e Not.
	E
	
	É possível adicionar a condição Where, mas não é possível utilizar os operadores And, Or e Not.
Questão 3 : 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 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?
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 dedois 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 : 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?
Acertou! 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 6 : A álgebra relacional possibilita realizar seleções em um banco de dados. Veja a seguinte expressão:​​​​​​​ 
 
σ CodigoTurma=401 AND Media>06 (ALUNO)​​​​​​​
​​​​​​​
A instrução acima utilizada pelo operador de seleção (σ) foi criada para:
Resposta Errada! A resposta correta é a opção D 
Justificativa: O operador de SELEÇÃO, representado por σ (letra grega sigma), é utilizado para selecionar as linhas de uma relação. Ele especifica as linhas a serem mantidas utilizando uma condição de seleção, que geralmente é uma expressão booleana (comparação entre dois valores) de termos. Nessa questão, primeiro se procura se o código da turma é igual a 401 e se a média do aluno é maior que 6, da tabela aluno.O operador de SELEÇÃO, representado por σ (letra grega sigma), é utilizado para selecionar as linhas de uma relação. Ele especifica as linhas a serem mantidas utilizando uma condição de seleção, que geralmente é uma expressão booleana (comparação entre dois valores) de termos. Nessa questão, primeiro se procura se o código da turma é igual a 401 e se a média do aluno é maior que 6, da tabela aluno.
	A
	
	selecionar as turmas com média maior que 6 que tenham alunos com código 401.
	B
	
	Selecionar os alunos da turma com o código 401 com média igual ou superior a 6.
	C
	
	selecionar os alunos com média maior ou igual a 6 que pertencem à turma com código 401.
	D
	
	selecionar os alunos com média maior que 6 que pertencem à turma com código 401.
	E
	
	selecionar a média e o nome dos alunos que pertencem à turma com código 401.
Questão 7 : 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 8 : 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 9 : 
Samuel está fazendo um levantamento de clientes frequentes em sua loja e deseja projetar uma relação dos clientes contendo informações na seguinte ordem: (1) Total de Compras, (2) Nome do cliente, (3) seu Email, (4) Endereço físico e (5) Número do CPF do cliente.
 
Ao desenvolver a consulta, ele também utilizou o comando SQL “ORDER BY” para ordenar a apresentação do resultado da sua projeção pelo valor dos elementos contidos na coluna correspondente ao total de compras do cliente. Sua intenção era que os clientes aparecessem do maior para o menor número total de compras.
 
Para tanto, considera-se que a tabela no banco de dados do sistema da loja de Samuel que armazena essa informação foi criada da seguinte maneira:
 
CREATE TABLE clientes (
 
cpf numeric,
 
nome varchar(40),
 
email varchar(20),
 
endereco varchar(40),
 
total_compras numeric)
 
)
 
Assinale a alternativa que apresenta a consulta SQL desenvolvida pelo Samuel para gerar a relação de clientes planejada:
Resposta Errada! A resposta correta é a opção D 
Justificativa: A alternativa correta é a que respeita duas condições indicadas no enunciado dessaquestão: (1) a ordem de apresentação das 5 colunas: total_compras, nome, e-mail, endereco e CPF. (2) identificação da necessidade de ordenação da lista resultante pelos elementos da coluna “total_compras” em ordem decrescente (“ORDER BY total_compras DESC”). ​​​​​​​Ao montar a cláusula “SELECT” indicando que todas as colunas precisam ser projetadas (“*”), a ordem de apresentação para as colunas será a mesma da criação da tabela e, portanto, difere da ordem planejada por Samuel. Por fim, apesar de todas as variações para a indicação de ordenação iniciadas com o “ORDER BY” estarem escritas com a sintaxe SQL correta, algumas produziriam um resultado diferente do planejado, seja por ter se baseado na ordenação da coluna errada ou pela falta da indicação de ordem decrescente, e, portanto, não atendendo ao enunciado da questão.
	A
	
	SELECT * FROM clientes ORDER BY 1 DESC;
	B
	
	SELECT * FROM clientes ORDER BY total_compras DESC;
	C
	
	SELECT total_compras, * FROM clientes ORDER BY total_compras;
	D
	
	SELECT total_compras, nome, email, endereco, cpf FROM clientes ORDER BY total_compras DESC;
	E
	
	SELECT total_compras, cpf, nome, email, endereco FROM clientes ORDER BY total_compras DESC;
Questão 10 : Qual a função de um SGBD?
Resposta Errada! A resposta correta é a opção B 
Justificativa: A sigla SGBD significa Sistema Gerenciador de Banco de Dados
	A
	
	Reunir informações computacionais em arquivos.
	B
	
	Fornecer aos usuários a capacidade de controlar o acesso de leitura / gravação, definir a geração de relatórios e realizar procedimentos de análise dos dados.
	C
	
	Criar arquivos de texto que permitem o armazenamento de dados.
	D
	
	Fornecer espaço em disco para manutenção de banco de dados.
	E
	
	Fornecer as condições para o usuário criar arquivos de dados.
Questão 1 : 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 2 : 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?
Acertou! 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 3 : 
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 4 : 
As consultas a banco de dados apresentam papel destacável diante da variedade de motivos que levam à necessidade de uma informação. Dito isso, ao elaborar uma consulta SQL para combinar o resultado de duas tabelas a partir do comando Intersect, podem-se combinar alguns outros comandos ao Select. Avalie as alternativas a seguir e selecione a correta.
Acertou! A resposta correta é a opção D 
Justificativa: 
O comando Select é um dos mais largamente usados nas operações em BD. Isso se deve à sua amplitude e capacidade de combinar diferentes operadores e funções para alcançar os resultados esperados. Por isso, dentro de uma consulta de intersecção, podem-se aplicar funções condicionais com os seus respectivos operadores lógicos; por exemplo, adicionar filtros a partir do Where usando os operadores And, Or e Not, bem como ordenar resultados e ainda adicionar os demais comandos do Select.
	A
	
	Não é possível adicionar outros comandos nessa consulta.
	B
	
	A adição se limita apenas à condição Where.
	C
	
	É possível adicionar a condição Where, mas não se pode adicionar ordenação nessa consulta.
	D
	
	Podem-se adicionar filtros a partir do Where usando os operadores And, Or e Not.
	E
	
	É possível adicionar a condição Where, mas não é possível utilizar os operadores And, Or e Not.
Questão 5 : 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 6 : 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 deslocamento de 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 7 : 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 8 : 
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 9 : 
Existem muitos recursos que os SGBDs têm para dar flexibilidade nas transações e melhorar o desempenho das aplicações que consomem os dados do banco.
 
Com isso, por que os SGBDs trabalham com intercalação de processos e paralelismo?
Resposta Errada! A resposta correta é a opção B 
Justificativa: A intercalação de processos e o paralelismo servem para executar as transações de forma intercalada ou paralela e, assim, lidar com a concorrência no banco de dados.
	A
	
	Para não ter concorrência nas transações do SGBD.
	B
	
	Para trabalhar com concorrência nas transações do SGBD.
	C
	
	Para ter mais usuários no banco de dados.
	D
	
	Para não ter erros nas transações do SGBD.
	E
	
	Para executar procedures no banco de dados.
Questão 10 : 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 1 : A álgebra relacional possibilita realizar seleções em um banco de dados. Veja a seguinte expressão:​​​​​​​ 
 
σ CodigoTurma=401 AND Media>06 (ALUNO)​​​​​​​
​​​​​​​
A instrução acima utilizada pelo operador de seleção (σ) foi criada para:
Resposta Errada! A resposta correta é a opção D 
Justificativa: O operador de SELEÇÃO, representado por σ (letra grega sigma), é utilizado para selecionar as linhas de uma relação. Ele especifica as linhas aserem mantidas utilizando uma condição de seleção, que geralmente é uma expressão booleana (comparação entre dois valores) de termos. Nessa questão, primeiro se procura se o código da turma é igual a 401 e se a média do aluno é maior que 6, da tabela aluno.O operador de SELEÇÃO, representado por σ (letra grega sigma), é utilizado para selecionar as linhas de uma relação. Ele especifica as linhas a serem mantidas utilizando uma condição de seleção, que geralmente é uma expressão booleana (comparação entre dois valores) de termos. Nessa questão, primeiro se procura se o código da turma é igual a 401 e se a média do aluno é maior que 6, da tabela aluno.
	A
	
	selecionar as turmas com média maior que 6 que tenham alunos com código 401.
	B
	
	Selecionar os alunos da turma com o código 401 com média igual ou superior a 6.
	C
	
	selecionar os alunos com média maior ou igual a 6 que pertencem à turma com código 401.
	D
	
	selecionar os alunos com média maior que 6 que pertencem à turma com código 401.
	E
	
	selecionar a média e o nome dos alunos que pertencem à turma com código 401.
Questão 2 : 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 3 : 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?
Resposta Errada! 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 4 : 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 5 : A intersecção é um dos operadores relacionados à álgebra relacional. Diante disso, pode-se afirmar que o conceito de intersecção tem o objetivo de:
Resposta Errada! 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 6 : 
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 diferentestabelas. 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 7 : 
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 8 : Qual a função de um SGBD?
Resposta Errada! A resposta correta é a opção B 
Justificativa: A sigla SGBD significa Sistema Gerenciador de Banco de Dados
	A
	
	Reunir informações computacionais em arquivos.
	B
	
	Fornecer aos usuários a capacidade de controlar o acesso de leitura / gravação, definir a geração de relatórios e realizar procedimentos de análise dos dados.
	C
	
	Criar arquivos de texto que permitem o armazenamento de dados.
	D
	
	Fornecer espaço em disco para manutenção de banco de dados.
	E
	
	Fornecer as condições para o usuário criar arquivos de dados.
Questão 9 : Em determinadas transações, existem situações em que uma transação (1) fica na espera de que outra transação ( seja finalizada para prosseguir com sua execução; isto é negativo, visto que a transação (1) pode ficar em estado de espera por longo tempo ou tempo infinito. A maioria dos SGBDs tem dispositivos e/ou funcionalidades para tratar ou evitar estas situações. Aponte qual das opções a seguir apresenta corretamente que nome se dá a estas situações.
Acertou! A resposta correta é a opção A 
Justificativa: Esta opção apresenta exatamente o nome para a situação exposta no enunciado da questão. Os Deadlock também podem ser chamados de Bloqueio Perpétuo ou Impasse.
	A
	
	Deadlock
	B
	
	Savepoint
	C
	
	Log
	D
	
	Erro
	E
	
	Checkpoint
Questão 10 : 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 deslocamento de 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 1 : 
O operador de PROJEÇÃO (π) é empregado para projetar colunas. Veja a seguinte expressão:
 
π Idade, DataNascimento (ALUNO)
 
Agora, assinale a alternativa que representa corretamente essa consulta em SQL:
Resposta Errada! A resposta correta é a opção D 
Justificativa: Nesse caso, são especificadas duas colunas, Idade e DataNascimento, da tabela ALUNO, e o resultado não pode ter duplicatas. Para isso, utiliza-se da palavra-chave DISTINCT na consulta SQL. Caso não fosse empregada, duplicadas poderiam não ser eliminadas, o que não é permitido nesse caso da álgebra relacional formal. Para indicar a tabela, deve ser empregado o FROM e não o WHERE, visto que ele seria útil somente se fosse necessária alguma especificação de dados na consulta.
	A
	
	SELECT Anos, DataNascimento FROM ESTUDANTE.
	B
	
	SELECT DISTINCT Idade, DataNascimento FROM ALUNO.
	C
	
	SELECT Idade, DataNascimento FROM ALUNO.
	D
	
	SELECT DISTINCT Idade, DataNascimento FROM ALUNO.
	E
	
	SELECT DISTINCT Idade, DataNascimento WHERE ALUNO.
Questão 2 : 
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 3 : 
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 armazenadasem 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 4 : 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 5 : Para manter a integridade dos dados mesmo com possíveis falhas do sistema, o SGBD precisa garantir quatro propriedades específicas das transações, chamadas de propriedades ACID. 
 
Assinale a alternativa em que uma das propriedades ACID é descrita corretamente:
Resposta Errada! A resposta correta é a opção A 
Justificativa: 
Quando o SGBD informar ao usuário que uma transação foi concluída com sucesso, seus efeitos devem persistir, mesmo que o sistema passe por falhas. Essa propriedade chama-se durabilidade. Cada transação deve ser vista pelo usuário como atômica, o que quer dizer que todas serão executadas ou nenhuma será executada. Assim, não há preocupação com transações incompletas, que podem ser interrompidas por falhas do sistema. As transações, sem nenhuma execução concorrente, devem preservar a consistência do banco de dados. Os usuários precisam entender uma transação sem ter que considerar o efeito de outras transações em execução concorrente. Essa propriedade é chamada de isolamento, pois as transações são protegidas (isoladas) dos efeitos do plano de execução concorrente.
	A
	
	Durabilidade: os efeitos da transação devem persistir, mesmo que existam falhas.
	B
	
	Consistência: garantia de que todas as transações serão executadas ou nenhuma.
	C
	
	Isolamento: as transações são efetuadas sem execuções que possam ser concorrentes.
	D
	
	Atomicidade: as transações são protegidas dos efeitos da execução concorrente.
	E
	
	Isolamento: garantia de que todas as transações serão executadas ou nenhuma.
Questão 6 : É 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 7 : 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 8 : 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 9 : 
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 10 : 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 1 : Em determinadas transações, existem situações em que uma transação (1) fica na espera de que outra transação ( seja finalizada para prosseguir com sua execução; isto é negativo, visto que a transação (1) pode ficar em estado de espera por longo tempo ou tempo infinito. A maioria dos SGBDs tem dispositivos e/ou funcionalidades para tratar ou evitar estas situações. Aponte qual das opções a seguir apresenta corretamente que nome se dá a estas situações.
Resposta Errada! A resposta correta é a opção A 
Justificativa: Esta opção apresenta exatamente o nome para a situação exposta no enunciado da questão. Os Deadlock também podem ser chamados de Bloqueio Perpétuo ou Impasse.
	A
	
	Deadlock
	B
	
	Savepoint
	C
	
	Log
	D
	
	Erro
	E
	
	Checkpoint
Questão 2 : 
Samuel está fazendo um levantamento de clientes frequentes em sua loja e deseja projetar uma relação dos clientes contendo informações na seguinte ordem: (1) Total de Compras, (2) Nome do cliente, (3) seu Email, (4) Endereço físico e (5) Número do CPF do cliente.
 
Ao desenvolver a consulta, ele também utilizou o comando SQL “ORDER BY” para ordenar a apresentação do resultado da sua projeção pelo valor dos elementos contidos na coluna correspondente ao total de compras do cliente. Sua intenção era que os clientes aparecessem do maior para o menor número total de compras.
 
Para tanto, considera-se que a tabela no banco de dados do sistema da loja de Samuel que armazena essa informação foi criada da seguinte maneira:
 
CREATE TABLE clientes (
 
cpf numeric,
 
nome varchar(40),
 
email varchar(20),
 
endereco varchar(40),
 
total_compras numeric)
 
)
 
Assinale a alternativa que apresenta a consulta SQL desenvolvida pelo Samuel para gerar a relação de clientes planejada:
Resposta Errada! A resposta correta é a opção D 
Justificativa: A alternativa correta é a que respeita duas condições indicadas no enunciado dessa questão: (1) a ordem de apresentação das 5 colunas: total_compras, nome, e-mail, endereco e CPF. (2) identificação da necessidade de ordenação da lista resultante pelos elementos da coluna “total_compras” em ordem decrescente (“ORDER BY total_compras DESC”). ​​​​​​​Ao montar a cláusula “SELECT” indicando que todas as colunas precisam ser projetadas (“*”), a ordem de apresentação para as colunas será a mesma da criação da tabela e, portanto, difere da ordem planejada por Samuel. Por fim, apesar de todas as variações para a indicação de ordenação iniciadas com o “ORDER BY” estarem escritas com a sintaxe SQL correta, algumas produziriam um resultado diferente do planejado, seja por ter se baseado na ordenação da coluna errada ou pela falta da indicação de ordem decrescente, e, portanto, não atendendo ao enunciado da questão.
	A
	
	SELECT * FROM clientes ORDER BY 1 DESC;
	B
	
	SELECT * FROM clientes ORDER BY total_compras DESC;
	C
	
	SELECT total_compras, * FROM clientes ORDER BY total_compras;
	D
	
	SELECT total_compras, nome, email, endereco, cpf FROM clientes ORDER BY total_compras DESC;
	E
	
	SELECT total_compras, cpf, nome, email, endereco FROM clientes ORDER BY total_compras DESC;
Questão 3 : 
Considere que você é um analista de sistemas que recebeu a demanda para desenvolver uma consulta em um banco de dados relacional de uma biblioteca. Antes de criar a consulta SQL, você deve pensar na formalização da expressão em álgebra relacional para operação de produto cartesiano que recebe como entrada duas relações nomeadas Estantes e Livros. Cada relação tem a seguinte estrutura:
 
Estantes = {Número, Nome, Andar, Área}. Livros = {Código, Título, Ano, Autor, Estante}.
 
Considere ainda que essa consulta deve retornar somente os livros do ano de 2020. Além disso, você precisa apresentar a informação do andar e o título do livro.
 
Baseado nesse enunciado e no conteúdo visto nessa UA, indique a alternativa que apresenta a expressão da álgebra relacional formalizada corretamente para o problema apresentado.
Resposta Errada! A resposta correta é a opção D 
Justificativa: A ordem da informação das relações não faria diferença para o problema, mas mantendo a ordem do enunciado, vamos considerar que essa expressão precisa conter a operação produto cartesiano “Estantes × Livros”. Depois, foi solicitado fazer um filtro por ano de publicação dos livros, logo a operação de seleção deveria ser informada “σ Ano = 2020 (...)”. Por fim, foi mencionado que apenas duas colunas eram relevantes, portanto a operação de projeção também precisava ser indicada por “π Andar, Título (...)”.
	A
	
	π Estante, Livro (Ano = 2020 (Livros × Estantes)).
	B
	
	π (σ (Estantes × Livros)).
	C
	
	π Estante, Título (σ Ano=2020 (Livros × Estantes)).
	D
	
	π Andar, Título (σ Ano=2020 (Estantes × Livros)).
	E
	
	π Andar, Título (σ Ano (Estantes × Livros)).
Questão 4 : 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 5 : A álgebra relacional possibilita realizar seleções em um banco de dados. Veja a seguinte expressão:​​​​​​​ 
 
σ CodigoTurma=401 AND Media>06 (ALUNO)​​​​​​​
​​​​​​​
A instrução acima utilizada pelo operador de seleção (σ) foi criada para:
Resposta Errada! A resposta correta é a opção D 
Justificativa: O operador de SELEÇÃO, representado por σ (letra grega sigma), é utilizado para selecionar as linhas de uma relação. Ele especifica as linhas a serem mantidas utilizando uma condição de seleção, que geralmente é uma expressão booleana (comparação entre dois valores) de termos. Nessa questão, primeiro se procura se o código da turma é igual a 401 e se a média do aluno é maior que 6, da tabela aluno.O operador de SELEÇÃO, representado por σ (letra grega sigma), é utilizado para selecionar as linhas de uma relação. Ele especifica as linhas a serem mantidas utilizando uma condição de seleção, que geralmente é uma expressão booleana (comparação entre dois valores) de termos. Nessa questão, primeiro se procura se o código da turma é igual a 401 e se a média do aluno é maior que 6, da tabela aluno.
	A
	
	selecionar as turmas com média maior que 6 que tenham alunos com código 401.
	B
	
	Selecionar os alunos da turma com o código 401 com média igual ou superior a 6.
	C
	
	selecionar os alunos com média maior ou igual a 6 que pertencem à turma com código 401.
	D
	
	selecionar os alunos com média maior que 6 que pertencem à turma com código 401.
	E
	
	selecionar a média e o nome dos alunos que pertencem à turma com código 401.
Questão 6 : 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:
Acertou! 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 7 : 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 8 : 
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 9 : 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.
Acertou! 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 deslocamento de 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 10 : 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

Continue navegando