

Seu próximo nível começa aqui
Com a Assinatura Ilimitada, você tem tudo que precisa para sua aprovação.
Com a Assinatura Ilimitada, você combina prática, teoria e método em uma única assinatura com tudo que você precisa para sua aprovação.
Um Analista de Sistemas trabalha em uma agência de fomento e precisa automatizar tarefas rotineiras, como gerar relatórios financeiros e registrar logs de auditoria. Para isso, ele cria um bloco de código que realiza essas tarefas específicas, mas que não retorna nenhum valor ao programa principal, apenas executa as ações necessárias. Com base nessa descrição, qual é a estrutura de programação utilizada nesse caso?
Procedimento.
Função.
Vetor.
Matriz.
Tabela Hash.
Um desenvolvedor precisa criar uma rotina para calcular o imposto de uma transação e outra rotina para registrar o fechamento do caixa diário, que deve inserir dados em uma tabela e, se necessário, realizar um COMMIT ou ROLLBACK.
Assinale a opção que apresenta o recurso programático mais apropriado para a rotina de fechamento de caixa diário e sua característica fundamental.
Uma Função, pois ela pode conter lógica de DML e DDL com controle transacional.
Uma View, pois ela é ideal para encapsular lógica de negócios complexa.
Um Trigger, pois é ativado por comandos DML em uma tabela e não pode ser chamado diretamente.
Uma Stored Procedure, pois ela pode executar comandos DML, DDL e lógica transacional completa, sendo chamada explicitamente.
Uma Cláusula HAVING, pois é usada para encapsular regras de agregação de dados.
Em uma linguagem procedural como Pascal ou C, o Analista precisa estruturar um bloco de código que realize uma tarefa específica e que não retorne explicitamente um valor para o ponto de chamada, mas pode alterar variáveis globais ou realizar operações de E/S.
O termo usado para designar esse bloco de código que executa uma sequência de comandos, mas que não retorna um valor, é
Função (Function).
Módulo (Module).
Classe (Class).
Procedimento (Procedure).
Subroutine (Sub-rotina).
Um Analista de Sistemas está configurando permissões em um banco de dados do SQL Server. Ele precisa garantir que determinados usuários não possam executar certas stored procedures, mesmo que pertençam a roles que tenham permissões concedidas. Para isso, ele decide usar a instrução DENY, que bloqueia explicitamente a permissão, sobrepondo qualquer GRANT existente. Considerando esse contexto, qual é a sintaxe CORRETA para negar a execução de uma stored procedure chamada sp_DeleteOrders ao usuário user_Intern?
DENY EXECUTE AS dbo.sp_DeleteOrders TO user_Intern;
DENY EXECUTE TO user_Intern IS sp_DeleteOrders;
DENY EXECUTE AS sp_DeleteOrders TO user_Intern;
DENY EXECUTE ON dbo.sp_DeleteOrders TO user_Intern;
DENY EXECUTE TO dbo.user_Intern ON dbo.sp_DeleteOrders;
Em bancos de dados relacionais, stored procedures
I podem ter parâmetros de entrada (IN), saída (OUT) e de entrada/saída (INOUT).
Il permitem agrupar múltiplas instruções DML (INSERT, UPDATE, DELETE) e controle de fluxo (IF, LOOB, EXCEPTION).
III apresentam diretamente conjuntos de resultados (tabelas) sempre que são executados.
IV podem ser chamados dentro de uma cláusula SELECT como se fossem funções escalares.
Estão certos apenas os itens
I e II.
I e III.
II e IV.
I, Il e lV.
II lII e lV.
No Oracle, gatilhos podem invocar procedimentos armazenados.
Certo
Errado
Stored Procedures encapsulam lógica de negócio no banco de dados, melhorando o desempenho e a segurança ao evitar múltiplas consultas do cliente.
Certo
Errado
O MS SQL Server 2022 admite o uso de diversos procedimentos armazenados.
Com relação aos tipos de procedimentos armazenados e os benefícios da sua utilização, analise os itens a seguir.
I. Os comandos de um procedimento armazenado são executados como um único bloco de código, reduzindo significativamente o tráfego de dados da rede entre a máquina cliente e o servidor pois ocorre uma única chamada para executar o procedimento sem esse encapsulamento de código, cada linha individual de código teria de trafegar a rede.
II. Quando um aplicativo chama um procedimento armazenado através da rede, a chamada e outras informações para executar o procedimento ficarão visíveis na rede. Portanto, usuários mal-intencionados podem consultar nomes de tabelas e objetos de banco de dados, inserir instruções Transact-SQL próprias e pesquisar para obter dados críticos.
III. Por padrão, um procedimento armazenado será compilado todas as vezes que for executado, mas criam-se planos de execução que podem ser reutilizados em execuções subsequentes. Como o processador de consulta não precisa criar um plano a cada execução, o tempo de processar um procedimento é reduzido. Se houver alterações significantes nas tabelas ou dados referenciados pelo procedimento armazenado, o plano de execução poderá fazer com que o procedimento execute mais lentamente. Neste caso, recompilará o procedimento e forçará um novo plano de execução para melhorar o desempenho.
IV. Os tipos de procedimentos armazenados suportados pelo SGBD são: os definidos pelo usuário, os procedimentos de sistema, os temporários e as extensões definidas pelo usuário. Esse último tipo permite criar rotinas externas em uma linguagem de programação. Além disso, eles são DLLs que uma instância do MS SQL Server pode carregar e executar dinamicamente.
Está correto, o que se afirma em:
II e IV, apenas.
II e III, apenas.
I e IV, apenas.
I e III, apenas.
III e IV, apenas.
As Stored Procedures devem sempre retornar um valor escalar e não podem conter comandos de manipulação de dados.
Certo
Errado
Stored procedures em PL/SQL são estruturas armazenadas diretamente no banco de dados que permitem a execução de instruções SQL pré-compiladas, o que reduz o tráfego de rede e melhora o desempenho das aplicações.
Certo
Errado
Um Analista de Sistemas precisa criar uma stored procedure que automatize o processo de um novo funcionário na tabela Funcionario. O procedimento deve receber os parâmetros @nome, @cpf, @data_nascimento e @salario. Se o salário fornecido for menos que R$ 2000,00, a transação deve ser abortada e uma mensagem de erro deve ser retornada. Assinale a alternativa que apresenta a estrutura de programação procedimental mais adequada para essa validação.
Uma função definida pelo usuário que retorna um boolean para a validação.
Um trigger BEFORE INSERT na tabela Funcionario.
Um assertion que checa o valor do salário antes da inserção.
Um bloco IF/ELSE dentro de uma stored procedure com um ROLLBACK explícito.
Um comando CHECK na definição da tabela Funcionario.
Leia e analise o trecho:
I) Os Store Procedures empregam a programação modular.
PORQUE:
II) Store Procedures possibilitam que as aplicações acessem o SGBD de forma consistente.
Analisando as sentenças acima, conclui-se que:
Apenas a primeira afirmativa está correta.
Ambas estão corretas e a segunda justifica a primeira.
Apenas a segunda afirmativa está correta.
Nenhuma afirmativa está correta.
Ambas estão corretas, mas a segunda não justifica a primeira.
Stored Procedures (Procedimentos Armazenados) são blocos de código SQL armazenados e executados diretamente no servidor de banco de dados. Sobre as características de Stored Procedures, assinale a afirmativa INCORRETA.
Só podem ser usados para operações de leitura no banco de dados.
Podem conter controle de fluxo, como loops e condições, para manipular a lógica de negócios.
Uma das vantagens é melhorar a segurança, pois o código SQL pode ser encapsulado e controlado.
Podem aceitar parâmetros de entrada, saída ou ambos, o que permite personalizar a execução do código SQL com base nos valores fornecidos.
Seja a stored procedure definida pelo código abaixo.
CREATE PROCEDURE STO @PAR INT
AS BEGIN SELECT @PAR * @PAR AS QUAD END |
O comando no SQLServer que permite executar a referida stored procedure é:
RUN STO 20
EXECUTE STO 20
EXECUTE STO @PAR 20
RUN @PAR 20
Um desenvolvedor está trabalhando em um banco de dados Oracle e precisa criar um procedimento armazenado em PL/SQL que insira um novo registro na tabela EMPREGADOS. O procedimento deve aceitar os parâmetros emp_id, emp_nome e emp_salario e realizar a inserção. Qual das alternativas abaixo mostra CORRETAMENTE como esse procedimento pode ser escrito?
CREATE PROCEDURE add_empregados(emp_id NUMBER, emp_nome VARCHAR2, emp_salario NUMBER) AS BEGIN INSERT INTO EMPREGADOS (emp_id, emp_nome, emp_salario); END; |
CREATE PROCEDURE add_empregados(emp_id NUMBER, emp_nome VARCHAR2, emp_salario NUMBER) IS BEGIN INSERT INTO EMPREGADOS (ID, NOME, SALARIO) VALUES (emp_id, emp_nome, emp_salario); END; |
CREATE PROCEDURE add_empregados(emp_id NUMBER, emp_nome VARCHAR2, emp_salario NUMBER) BEGIN INSERT INTO EMPREGADOS (ID, NOME, SALARIO) VALUES (emp_id, emp_nome, emp_salario); END add_empregados; |
CREATE PROCEDURE add_empregados(emp_id IN NUMBER, emp_nome IN VARCHAR2, emp_salario IN NUMBER) IN BEGIN INSERT INTO EMPREGADOS (ID, NOME, SALARIO) VALUES (emp_id, emp_nome, emp_salario); END; |
CREATE PROCEDURE add_empregados(emp_id IN NUMBER, emp_nome IN VARCHAR2, emp_salario IN NUMBER) AS BEGIN INSERT INTO EMPREGADOS (ID, NOME, SALARIO) VALUES (emp_id, emp_nome, emp_salario); END; |
Em bancos de dados relacionais há um tipo de estrutura denominada procedimentos armazenados (stored procedures), que se constituem
no conjunto de parâmetros necessários à criação do banco de dados.
na definição das cardinalidades existentes entre as diversas tabelas existentes no banco de dados.
em programas compilados e armazenados, normalmente, no servidor de banco de dados.
no conjunto de definições das formas normais a serem seguidas pelo banco de dados.
na definição de qual o tipo de sintaxe do SQL deverá ser utilizado no sistema gerenciador de banco de dados.
Nos bancos de dados, tanto as Stored Procedures quanto os Triggers são recursos poderosos que podem ser utilizados para automatizar tarefas, melhorar a performance e a segurança das operações de banco de dados. No que diz respeito às suas diferenças, está é verdadeira a seguinte afirmação:
As Stored Procedures são altamente flexíveis e personalizáveis, pois elas podem ser escritas em diversas linguagens de programação.
As Stored Procedures são executados automaticamente pelo sistema de banco de dados em resposta a um evento específico.
As Stored Procedures são usados em situações onde é necessário garantir a integridade dos dados ou aplicar regras de negócio.
As Stored Procedures são criadas apenas usando SQL e não aceitam parâmetros de entrada ou saída.
As Stored Procedures são usadas para executar uma ação específica em resposta a um evento no banco de dados.
Uma procedure nada mais é do que um bloco PL/SQL nomeado sem retorno definido. Considerando a sintaxe básica de uma procedure descrita abaixo, assinale a alternativa que indica qual elemento da procedure, indica que o parâmetro é de entrada (IN), saída (OUT) ou ambos (IN OUT):

parâmetro1.
modo.
Parâmetro2.
tipodedado.
replace.
A stored procedure na linguagem SQL traz como benefício:
exibir tabelas virtuais para tratar dados específicos;
criar restrições para colunas em banco de dados;
selecionar dados a partir de uma tabela definida;
reduzir o tráfego e otimizar a performance do banco;
gerar um gatilho para uma ação específica acontecer.
Para automatizar a geração de relatórios mensais de vendas, um banco de dados Oracle precisa de uma Stored Procedure que receba o mês e o ano como parâmetros e retorne o total de vendas. A tabela Vendas inclui as colunas VendaID, DataVenda e Valor. Qual seria a assinatura correta para esta Stored Procedure?
CREATE OR REPLACE PROCEDURE
GerarRelatorioVendas(mes IN NUMBER, ano IN
NUMBER, totalVendas OUT NUMBER) AS
BEGIN
SELECT SUM(Valor) INTO totalVendas
FROM Vendas
WHERE EXTRACT(MONTH FROM DataVenda) = mês
AND EXTRACT(YEAR FROM DataVenda) = ano;
END;
CREATE OR REPLACE FUNCTION
GerarRelatorioVendas(mes NUMBER, ano NUMBER)
RETURN NUMBER IS totalVendas NUMBER;
BEGIN
SELECT SUM(Valor) INTO totalVendas
FROM Vendas
WHERE MONTH(DataVenda) = mes AND
YEAR(DataVenda) = ano; RETURN totalVendas;
END;
CREATE OR REPLACE PROCEDURE
GerarRelatorioVendas(mes INT, ano INT) IS
totalVendas NUMBER;
BEGIN
totalVendas := (SELECT SUM(Valor)
FROM Vendas
WHERE TO_DATE(DataVenda, 'MM/YYYY') = mes || '/' || ano);
END;
CREATE OR REPLACE PROCEDURE GerarRelatorioVendas IS
BEGIN
SELECT mes, ano, SUM(Valor)
FROM Vendas
GROUP BY mes, ano;
END;