Logo Passei Direto
Buscar

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

Ferramentas de estudo

Questões resolvidas

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: . 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.
II. Existem poucos produtos comerciais no mercado que implementam outras linguagens para acesso a dados.
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.
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.

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));
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;

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, é:
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;

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.

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.
V, V, F, V.
F, F, V, V.
F, F, V, F.
V, F, F, V.

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.
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:
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.

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));
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;

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.

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() é:
16.
8.
64.
4.

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Questões resolvidas

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: . 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.
II. Existem poucos produtos comerciais no mercado que implementam outras linguagens para acesso a dados.
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.
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.

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));
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;

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, é:
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;

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.

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.
V, V, F, V.
F, F, V, V.
F, F, V, F.
V, F, F, V.

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.
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:
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.

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));
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;

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.

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() é:
16.
8.
64.
4.

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.

Mais conteúdos dessa disciplina