Prévia do material em texto
Stored procedures e functions
1.
Considere a seguinte tabela:
O administrador do banco de dados que trabalha em um supermercado criou um
stored procedure para facilitar a inserção dos registros dos produtos no banco de
dados.
Qual é o código correto para a criação do stored procedure nesse caso? Assinale a
alternativa correta:
2.
Os stored procedures são blocos de código armazenados no servidor de banco de
dados e podem ser chamados a qualquer momento, com o objetivo de realizar
algum processamento em informações. Eles oferecem alguns benefícios ao banco
de dados e às aplicações que o utilizam. Quais são esses benefícios? Assinale a
alternativa correta:
Você acertou!
C.
Centralização, velocidade, performance, segurança e suporte a transações.
Os benefícios oferecidos às aplicações e aos bancos de dados que utilizam stored
procedure incluem: centralização dos códigos de interação com o banco de dados sendo
armazenados dentro do servidor; velocidade ao executar o stored procedure, pois ele é
nativo e está dentro do banco de dados; performance ao minimizar a quantidade de
dados transferidos entre o servidor e o cliente; segurança dos dados, na qual toda
informação requerida ao banco será realizada pelo stored procedure; e suporte
à execução de transações dentro do stored procedure. Descentralização significa
dispersão e é o contrário de centralização. Os stored procedures não oferecem suporte a
transferências. O termo correto é transações.
3.
Considere a seguinte tabela:
4.
Considere a seguinte função escrita em SQL. Esta função recebe como parâmetro
dois valores inteiros e retorna a subtração deles. Note que, em SQL, a palavra
reservada SELECT vai funcionar como o RETURN na linguagem PL/pgSQL.
quais das funções a seguir executam a mesma operação dessa função, mas escrita na
linguagem PL/pgSQL?
5.
Considere a seguinte tabela:
Foi criada uma function para retornar a maior média obtida entre os alunos, conforme o
seguinte trecho de código:
Você acertou!
D.
SELECT maiorMedia();
Para invocar a função criada, deve-se utilizar o comando "SELECT maiorMedia();". O
comando CALL deve ser utilizado para stored procedures. Além disso, variáveis não
devem ser passadas como parâmetro na invocação, pois a function maiorMedia foi
declarada sem nenhum argumento como parâmetro.
Desafio
Functions e stored procedures não se diferem apenas no comando utilizado para a
criação, mas também no objetivo para o qual são utilizados. Além disso, as functions
retornam valores ou parâmetros, ao contrário dos stored procedures. Portanto, é útil que
você os utilize mescladamente.
Sabendo disso, veja a seguinte situação:
Considerando esses dados:
a) Escreva o código de iteração com o banco de dados, de forma que ele seja
escrito apenas uma vez e seja armazenado no próprio banco de dados.
b) Após verificar que no código SQL existe uma coluna chamada mediaFinal, o
professor da disciplina não disponibilizou essa média. Você deve calcular a média e
inseri-la juntamente com as outras informações no banco de dados. Não se esqueça que,
para isso, você pode utilizar functions e stored procedures em conjunto.
Desafio
Functions e stored procedures não se diferem apenas no comando utilizado para a
criação, mas também no objetivo para o qual são utilizados. Além disso, as functions
retornam valores ou parâmetros, ao contrário dos stored procedures. Portanto, é útil que
você os utilize mescladamente.
Sabendo disso, veja a seguinte situação:
Considerando esses dados:
a) Escreva o código de iteração com o banco de dados, de forma que ele seja
escrito apenas uma vez e seja armazenado no próprio banco de dados.
b) Após verificar que no código SQL existe uma coluna chamada mediaFinal, o
professor da disciplina não disponibilizou essa média. Você deve calcular a média e
inseri-la juntamente com as outras informações no banco de dados. Não se esqueça que,
para isso, você pode utilizar functions e stored procedures em conjunto.
Sua resposta Me esqueci Do CAL
a) CREATE PROCEDURE insercao(matricula integer, nome varchar(60), prova1 float,
prova2 float, mediaFinal float) LANGUAGE SQL AS
; b) CREATE FUNCTION media (nota1 float, nota2 float) RETURNS float AS
LANGUAGE plpgsql insercao('Ana Maria de Oliveira', 20200001, 8.0, 9.5, media (8.0,
9.5) ) insercao('Fernando Soares dos Santos', 20200002, 9,0, 10.0, media (9.0, 10.0) )
insercao('José Fernandes Amaral', 20200003, 6.7, 8.0, media (6.7, 8.0) )
insercao('Luciana dos Santos da Silva', 20200004, 8.9, 6.8, media (8.9, 6.8) )
insercao('Maria Alice Fagundes', 20200005, 7.9, 7.6, media (7.9, 7.6) )
insercao('Mariana Lopes Aquino', 20200006, 6.5, 8.4, media (6.5, 8.4) ) insercao('Paulo
dos Santos Pontes', 20200007, 8.3, 8.2, media (8.3, 8.2) ) insercao('Renata Lopez
Pereira', 20200008, 10.0, 9.3, media (10.0, 9.3) ) insercao('Sandro de Oliveira Zacarias',
20200009, 5.3, 6.7, media (5.3, 6.7) ) insercao('Tatiana Rodrigues de Freitas',
20200010, 8.0, 6.2, media (8.0, 6.2) )
Enviado em: 17/11/2021 08:07
Padrão de resposta esperado
a) Deve ser criado um stored procedure para realizar a interação com o servidor
do banco de dados. O stored procedure vai ter como objetivo inserir os dados dos
alunos na tabela do banco de dados. Porém, como não foi disponibilizada a média das
notas dos alunos pelo professor, é necessário, inicialmente, calcular essa média. Para
isso, foi criada uma função para realizar esse cálculo. O código a seguir é responsável
por criar uma função que calcula a média das notas das duas provas:
Depois de criada a função, é criado o stored procedure para inserir os valores na tabela
do banco de dados. O código a seguir apresenta esse stored procedure, no qual chama-
se a function media utilizando o comando SELECT:
b) Para inserir os registros dos alunos na tabela, basta utilizar o comando CALL. Deve-
se inserir um valor inicial para a média, pois a ela será calculada dentro do
procedimento:
Agora basta executar o comando SELECT * FROM alunos para exibir as médias
calculadas.