Buscar

Engenharia de Dados e Banco de Dados Aplicado AOL4 - Tentativa 1

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

Conteúdo do exercício
Ocultar opções de resposta 
Pergunta 1 -- /0
Leia o excerto a seguir:
“A sigla SQL (Structured Query Language) representa a linguagem de programação mais utilizada no mundo 
para manipular dados. Sua facilidade de entendimento, versatilidade e recursos permitem que um 
desenvolvedor utilize comandos sem a necessidade de muitas linhas de código para lidar com dados 
tradicionalmente armazenados em bancos de dados.”Fonte: DevMedia. Utilizando a linguagem SQL em 
diferentes contextos.
Disponível em: <https://www.devmedia.com.br/utilizando-a-linguagem-sql-em-diferentes-
contextos/37696>. Acesso em: 16/06/2019.
Apesar de ser a mais utilizada para tratamento de dados, a linguagem SQL apresenta algumas limitações que 
fizeram com que outras linguagens de acesso a dados crescessem mais do que ela, como as linguagens para 
bancos NoSQL ou aquelas que permitem consulta de banco de dados textuais, por exemplo.
Considerando a citação apresentada e os conteúdos abordados na unidade, analise as asserções a seguir e a 
relação proposta entre elas.
I. A linguagem SQL é muito popular em função dos produtos que a utilizam. Logo, pode-se afirmar com 
segurança que se trata do recurso computacional mais utilizado pelos profissionais da área de banco de dados.
Porque:
II. Existem poucos produtos comerciais no mercado que implementam outras linguagens para acesso a dados.
A seguir, assinale a alternativa correta:
A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
As asserções I e II são proposições falsas.
Resposta correta
As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da 
I.
As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I.
Ocultar opções de resposta 
As asserções I e II são proposições verdadeiras, mas a II não é uma justificativa correta da I.
Pergunta 2 -- /0
Em um banco de dados, uma View é uma consulta pré-compilada, em linguagem SQL, que é gerada a partir do 
resultado de uma pesquisa, geralmente de acesso frequente, na forma de tabela virtual (consulta baseada uma 
tabela real).
Veja o comando SQL para criação da seguinte tabela:
CREATE TABLE OBJETO (idobjeto INTEGER NOT NULL PRIMARY KEY,nomeobjeto VARCHAR(100) NOT 
NULL);
Considerando o que você aprendeu sobre View, é possível afirmar que o comando correto para a criação de 
uma VIEW, chamada ViewObjeto, que selecione todas as linhas e colunas da tabela OBJETO criada, é:
Resposta corretaCREATE VIEW ViewObjeto AS (SELECT * FROM OBJETO);
(SELECT * FROM OBJETO) CREATE VIEW AS ViewObjeto;
CREATE VIEW (SELECT * FROM OBJETO) AS ViewObjeto;
(SELECT * FROM OBJETO) AS CREATE VIEW ViewObjeto;
CREATE (SELECT * FROM OBJETO) ViewObjeto AS VIEW;
Pergunta 3 -- /0
Considere os comandos de criação das seguintes tabelas:
CREATE TABLE DEPARTAMENTO (iddepto INTEGER NOT NULL PRIMARY KEY,nomedepto VARCHAR(50) 
NOT NULL);
CREATE TABLE FUNCIONARIO(matricula INTEGER NOT NULL PRIMARY KEY, nomefunc VARCHAR(100) 
NOT NULL,iddepto INTEGER NOT NULL,CONSTRAINT FKDF FOREIGN KEY(iddepto) REFERENCES 
DEPARTAMENTO(iddepto));
Ocultar opções de resposta 
Ocultar opções de resposta 
Considerando o que você aprendeu sobre linguagem SQL-DML e o comando SELECT com JOIN, é possível 
afirmar que o comando correto para a seleção de todas as linhas e colunas das tabelas DEPARTAMENTO e 
FUNCIONARIO criadas é:
SELECT iddepto, nomedepto, matricula, nomefunc FROM DEPARTAMENTO D INNER JOIN 
FUNCIONARIO F ON D.iddepto = F.iddepto;
SELECT D.iddepto, D.nomedepto, F.matricula, F.nomefunc FROM DEPARTAMENTO D RIGHT JOIN 
FUNCIONARIO F ON D.iddepto = F.iddepto;
SELECT D.iddepto, D.nomedepto, F.matricula, F.nomefunc FROM DEPARTAMENTO D LEFT JOIN 
FUNCIONARIO F ON D.iddepto = F.iddepto;
SELECT iddepto, nomedepto, matricula, nomefunc FROM DEPARTAMENTO INNER JOIN 
FUNCIONARIO ON iddepto = iddepto;
Resposta correta
SELECT D.iddepto, D.nomedepto, F.matricula, F.nomefunc FROM DEPARTAMENTO 
D INNER JOIN FUNCIONARIO F ON D.iddepto = F.iddepto;
Pergunta 4 -- /0
Em um banco de dados, uma Função (ou Function), assim como as Procedures, também é um programa escrito 
em linguagem Pl/SQL que executa uma ação (geralmente algum tipo de cálculo mais complexo) e 
necessariamente retorno um resultado na forma de valor ou tabela.
Considerando o que você aprendeu sobre Função, é possível afirmar que o comando correto para a criação de 
uma FUNÇÃO, chamada Quadrado, que retorna o quadrado de um número passado como parâmetro, é:
Resposta correta
CREATE OR REPLACE FUNCTION Quadrado (
 n INTEGER) RETURNS INTEGER AS $$
DECLARE
 q INTEGER;
BEGIN 
 q = n * n;
 RETURN q;
END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION Quadrado (
 $1 INTEGER) RETURNS INTEGER AS $$
DECLARE
 q INTEGER;
BEGIN 
 q = $1 * $1;
 RETURN q;
END;
$$ LANGUAGE plpgsql;
 
CREATE OR REPLACE FUNCTION Quadrado (
 n INTEGER) RETURNS INTEGER AS q
DECLARE
 q INTEGER;
BEGIN 
 q = n * n;
 RETURN q;
END;
$$ LANGUAGE plpgsql;
CREATE OR REPLACE FUNCTION Quadrado (
 n INTEGER) RETURNS INTEGER AS n * n
DECLARE
 q INTEGER;
BEGIN 
 q = n * n;
 RETURN q;
END;
$$ LANGUAGE plpgsql;
 
CREATE OR REPLACE FUNCTION Quadrado (
 INTEGER) RETURNS INTEGER AS $$
DECLARE
 q INTEGER;
BEGIN 
 q = $1 * $1;
 RETURN q;
END;
$$ LANGUAGE plpgsql;
Ocultar opções de resposta 
Pergunta 5 -- /0
O comando SELECT é considerado um comando em linguagem do tipo DQL (Linguagem de Consulta de 
Dados). Esse comando permite selecionar um ou mais dados (registros) em uma tabela. Uma das partes desse 
comando é a cláusula WHERE, que permite aplicar filtros sobre os registros selecionados utilizando operadores 
e conectivos lógicos.
Assim, considerando o que você aprendeu sobre a cláusula WHERE, analise os operadores e conectivos lógicos 
a seguir e associe-os com seus respectivos conceitos.
1)IN
2)LIKE
3)AND
4)OR
( ) Operador lógico que permite verificar se um determinado valor de uma coluna está presente em uma lista de 
elementos.
( ) Conectivo lógico que representa uma disjunção, ou seja, será V quando uma das proposições for V.
( ) Operador lógico que permite a verificação de coincidências de partes de um trecho de texto menor em um 
campo texto.
( ) Conectivo lógico que representa uma conjunção, ou seja, será V quando ambas proposições também forem 
V.
Agora, assinale a alternativa que apresenta a sequência correta:
Resposta correta1, 4, 2, 3.
3, 1, 2, 4.
2, 4, 3, 1.
4, 1, 2, 3.
1, 2, 4, 3.
Pergunta 6 -- /0
Ocultar opções de resposta 
Em Banco de Dados, quando criamos um cursor, definimos uma espécie de ponteiro para uma porção de dados 
que queremos analisar. Antes de acessar os dados de fato é necessário iniciar uma espécie de transação, 
através do comando BEGIN WORK, depois confirmar essa transação através de um COMANDO COMMIT, 
conforme se pode ver no seguinte exemplo:
BEGIN WORK;
DECLARE liCIDADE SCROLL CURSOR FOR SELECT * FROM CIDADE;
FETCH FORWARD 60 FROM liCIDADE;
CLOSE liCIDADE;
COMMIT WORK;
Considerando o curso criado acima e os conteúdos trabalhados na unidade, analise as afirmativas a seguir e 
assinale V para a(s) verdadeira(s) e F para a(s) falsa(s). 
I. ( ) Esse cursor fará a carga dos 60 primeiros registros contidos na tabela CIDADE.
II. ( ) O nome do cursor criado é liCIDADE, e a tabela acessada fisicamente é a tabela CIDADE.
III. ( ) Esse cursor fará a carga de todos os registros da tabela CIDADE, que poderão ser acessados em 
blocos de 60 linhas.
IV. ( ) A utilização de *, no comando SELECT, melhora a performance do cursor, uma vez que busca todas as 
colunas da tabela CIDADE.
Agora, assinale a alternativa que apresenta a sequência correta:
V, V, F, V.
F, F, V, V.
F, F, V, F.
V, F, F, V.
Resposta corretaV, V, F,F.
Pergunta 7 -- /0
Em Banco de Dados, um trigger (ou Gatilho) é um procedimento executado sempre que um evento de inserção, 
alteração ou deleção de registros em uma tabela ocorre. Esse tipo de recurso é muito utilizado para ajudar a 
manter a consistência dos dados ou para propagar alterações em um determinado dado de uma tabela para 
outras, por exemplo.
Considere o seguinte exemplo de criação de Trigger. 
CREATE OR REPLACE FUNCTION CriaLogPessoa () 
RETURNS trigger AS $trigger_nomeUF$
Ocultar opções de resposta 
BEGIN 
 INSERT INTO LOGPESSOA (log_id, data_criacao)
 VALUES (new.id_pessoa, CURRENT_TIMESTAMP);
 RETURN NEW;
END;
$trigger_nomeUF$ LANGUAGE plpgsql;
CREATE TRIGGER CriaLogPessoa
AFTER INSERT ON PESSOA
FOR EACH ROW
EXECUTE PROCEDURE CriaLogPessoa();
Considerando o texto-base e os conteúdos estudados na unidade, pode-se afirmar, a respeito do comando para 
criação da Trigger CriaLogPessoa, que:
Resposta correta
a Trigger CriaLogPessoa é acionada toda vez que há uma inserção de dados na 
tabela pessoa na qual um arquivo de log é gerado com a informação do id da 
pessoa inserida e a data/hora do evento.
a Trigger CriaLogPessoa é acionada toda vez que há uma deleção de dados na tabela pessoa na qual 
um arquivo de log é gerado com a informação do id da pessoa inserida e a data/hora do evento.
a Trigger CriaLogPessoa é acionada toda vez que tabela pessoa sofre alguma transação na qual um 
arquivo de log é gerado com a informação do id da pessoa inserida e a data/hora do evento.
a Trigger CriaLogPessoa é acionada toda vez que há uma alteração de dados na tabela pessoa na 
qual um arquivo de log é gerado com a informação do id da pessoa inserida e a data/hora do evento.
a Trigger CriaLogPessoa é acionada toda vez que há uma inserção, alteração ou deleção de dados na 
tabela pessoa, na qual um arquivo de log é gerado com a informação do id da pessoa inserida e a 
data/hora do evento.
Pergunta 8 -- /0
Considere os comandos de criação das seguintes tabelas:
CREATE TABLE LOJA (idloja INTEGER NOT NULL PRIMARY KEY,nomeloja VARCHAR(50) NOT NULL);
CREATE TABLE PRODUTO (idproduto INTEGER NOT NULL PRIMARY KEY, nomeproduto VARCHAR(100) 
NOT NULL,idloja INTEGER,CONSTRAINT FKLP FOREIGN KEY(idloja) REFERENCES LOJA(idloja));
Ocultar opções de resposta 
Considerando o que você aprendeu sobre linguagem SQL-DML e o comando SELECT com JOIN, é possível 
afirmar que o comando correto para a seleção de todas as linhas e colunas das tabelas LOJA e PRODUTO, 
incluindo para aquelas lojas que não tenham produtos nela cadastrados, é:
SELECT L.idloja, L.nomeloja, P.idproduto, P.nomeproduto FROM LOJA L INNER JOIN PRODUTO P ON 
idloja = idloja;
SELECT L.idloja, L.nomeloja, P.idproduto, P.nomeproduto FROM LOJA L JOIN PRODUTO P ON 
L.idloja = P.idloja;
SELECT L.idloja, L.nomeloja, P.idproduto, P.nomeproduto FROM LOJA L INNER JOIN PRODUTO P ON 
L.idloja = P.idloja;
SELECT L.idloja, L.nomeloja, P.idproduto, P.nomeproduto FROM LOJA L RIGHT JOIN PRODUTO P ON 
L.idloja = P.idloja;
Resposta correta
SELECT L.idloja, L.nomeloja, P.idproduto, P.nomeproduto FROM LOJA L LEFT JOIN 
PRODUTO P ON L.idloja = P.idloja;
Pergunta 9 -- /0
Apesar de oferecer a opção para criação de function, todo Sistema de Gerenciamento de Banco de Dados 
oferece um conjunto de Funções que já vêm implementadas, e que podem ser usadas para auxiliar na 
realização de diversas tarefas. Essas funções são conhecidas como funções internas, e podem realizar cálculos 
complexos, cálculos com datas, conversão de valores ou trabalhar com campos do tipo texto, por 
exemplo.Assim, considerando as informações apresentadas e os conteúdos estudados a respeito das funções, 
analise as funções citadas a seguir e associe-as com seus respectivos valores de retorno.
1) current_timestamp
2) length
3) trim
4) upper
( ) Retorna a data e hora atual no formato aaaa-mm-dd hh:mm:ss.ss.
( ) Retorna o maiúsculo de um valor passado string como parâmetro.
( ) Retorna a quantidade de caracteres de um valor passado string como parâmetro.
( ) Retorna o um valor passado string como parâmetro sem espaços em branco na esquerda e na direita.
Agora, assinale a alternativa que apresenta a sequência correta:
Ocultar opções de resposta 
4, 1, 2, 3.
1, 2, 4, 3.
Resposta correta1, 4, 2, 3.
3, 1, 2, 4.
 2, 4, 3, 1.
Pergunta 10 -- /0
Nas linguagens de programação temos basicamente três tipos de estruturas: sequencial, condicional e 
repetição. A estrutura sequencial indica que os comandos devem ser executados em sequência; a condicional 
considera uma condição para que uma instrução seja executada; já a estrutura de repetição permite executar 
mais de uma vez um determinado trecho de código. Em Banco de Dados, podemos implementar essas 
estruturas através das Funções.
Veja o comando SQL para criação da seguinte tabela:
CREATE TABLE usuario (
login VARCHAR(50) NOT NULL PRIMARY KEY,
senha VARCHAR(20) NOT NULL);
Considere a seguinte função:
CREATE OR REPLACE FUNCTION MostraQtdadeUsuario() RETURNS INTEGER AS $$
DECLARE
 viewUF RECORD;
 qtdadeUsuario INTEGER;
BEGIN 
 qtdadeUsuario = 1;
 FOR viewUF IN SELECT * FROM usuario LIMIT 4 LOOP
 qtdadeUsuario = qtdadeUsuario + 1;
 END LOOP;
 RETURN qtdadeUsuario*qtdadeUsuario;
END;
$$ LANGUAGE plpgsql;
Assim, supondo que você tenha inserido 8 registros na tabela usuário criada, é possível afirmar que o valor de 
retorno da função MostraQtdadeUsuario() é:
Ocultar opções de resposta 
16.
8.
64.
4.
Resposta correta25.

Continue navegando