Questões de Concurso
Sobre gatilhos (triggers) em banco de dados
Foram encontradas 207 questões
A respeito de banco de dados, julgue o seguinte item.
Um trigger de banco de dados pode ser disparado antes ou
depois de um comando e pode, até mesmo, substituir esse
comando.
Sobre os diversos tipos de triggers no PL/SQL do SGBD Oracle, analise as afirmativas a seguir e assinale (V) para a verdadeira e (F) para a falsa.
( ) Se o trigger for criado em uma tabela ou visão, o evento de gatilho será composto de instruções SQL do tipo DDL e será chamado de trigger de transição cruzada.
( ) Um trigger condicional pode ser um trigger do tipo DML ou de sistema que possui uma cláusula WHEN que especifica uma condição SQL que avalia para cada linha afetada pelas instruções presentes no trigger.
( ) Quando um trigger é acionado, as tabelas às quais ele faz referência podem estar passando por alterações feitas por instruções SQL nas transações iniciadas por outros usuários. As instruções SQL executadas com prioridade em relação as instruções SQL independentes.
As afirmativas são, respectivamente,
1. AFTER STATEMENT.
2. AFTER ROW.
3. BEFORE STATEMENT.
4. BEFORE ROW.
( ) Antes da conclusão da operação de evento sobre um único registro da tabela haverá um disparo do gatilho para cada registro afetado pelo comando.
( ) Após a conclusão da operação de evento sobre um ou mais registros, ou seja, um conjunto de tuplas, de acordo com o comando.
( ) Antes da conclusão da operação de evento, o gatilho será disparado e a operação do evento poderá afetar um ou mais registros, ou seja, um conjunto de tuplas, de acordo com o comando.
( ) Após a conclusão da operação de evento sobre somente um registro da tabela haverá um disparo do gatilho para cada registro afetado pelo comando.
A sequência está correta em
( ) Compostos de três componentes: o evento; a condição; e, a ação.
( ) Acionados com a intervenção do usuário, ou seja, o usuário vê o gatilho sendo disparado.
( ) Executados ou acionados apenas se ocorrer um evento, ou seja, uma operação de manipulação de dados.
A sequência está correta em
Na descrição de uma Trigger podem-se encontrar três partes: (i) evento que é a alteração no banco de dado que ativa a trigger; (ii) condição, consulta ou teste que é executado quando a trigger é ativada; e (iii) ação que diz respeito ao procedimento que é executado quando a trigger é ativada e quando a condição é verdadeira.
Sobre triggers no SGBD Microsoft SQL Server, assinale V para a afirmativa verdadeira e F para afirmativa falsa.
( ) Não é permitido criar trigger de DELETE/UPDATE em colunas de tabelas que sejam chaves estrangeiras e tenham configurado DELETE/UPDATE de forma CASCADE. ( ) Uma das maneira de auditar tabelas de bancos de dados é usando trigges. No SQL Server é permitido construir triggers em eventos do TRUNCATE TABLE uma vez que esse comando não deixa de ser de fato um comando de DELETE. ( ) É permitido criar triggers para eventos de CREATE, DROP, ALTER, RESTORE DATABASE assim como para LOGON com intuito de aumentar a segurança do banco de dados.
As afirmativas são, respectivamente,
Correntista (cid: integer, cnome: string, sexo: string, cpf: string, profissao: string, salario: numeric)
Depositante (did: integer, dnome: string, sexo: string, cpf: string, profissao: string, salario: numeric)
Beneficiario (beid: integer, benome: string, sexo: string, cpf: string, profissao: string)
Banco (bid: integer, bnome: string)
Agencia (bid: integer, aid: integer, anome: string, cidade: string)
Conta (bid: integer, aid: integer, numero: string, saldo: numeric, tipo: string, cid: integer)
Deposito (bid: integer, aid: integer, numero: string, instante: datetime, valor: numeric, cpf_depositante: string)
Saque (bid: integer, aid: integer, numero: string, instante: datetime, valor: numeric)
Cheque (bid: integer, aid: integer, numero: string, numero_cheque: string, valor: numeric, data: date, cpf_beneficiario, instante_processamento: datetime)
Alerta (bid: integer, aid: integer, numero: string)
OBS: Os campos sublinhados constituem a chave primária das relações. Um correntista pode ter diversas contas.
Seja a função a seguir:
CREATE OR REPLACE FUNCTION inserirAlerta()
RETURNS TRIGGER AS
$$
BEGIN
IF( new.valor > 50000 OR new.valor = 50000) then
INSERT INTO Alerta(bid, aid, numero) VALUES(NEW.bid, NEW.aid,
NEW.numero); RETURN NEW;
ELSE
RETURN NULL;
END IF;
END;
$$
Language 'plpgsql';
Pode-se afirmar, em relação à função dada, que:
CREATE TRIGGER XXXXX AFTER INSERT ON VENDA FOR EACH ROW BEGIN UPDATE ESTOQUE SET Quantidade = Quantidade - NEW.Quantidade WHERE CodProduto = NEW.CodProduto; END
Esse comando cria um trigger (gatilho) que
I. Um gatilho é similar a uma função, inclusive pelo fato de retornar um valor.
II. A execução de um procedimento armazenado é feita por meio de chamada ao seu nome, podendo ser dentro de outro procedimento.
III. Um gatilho é um procedimento armazenado que é ativado por evento e executa uma ou mais ações se a condição for atendida.
IV. Transações de commit e rollback não podem ser executadas por um procedimento armazenado.
V. O uso de procedimento armazenado diminui o tráfego na rede em um ambiente cliente/servidor, pois um grupo de comandos SQL ficam armazenados no próprio banco de dados.
É CORRETO afirmar que:
SQL é uma linguagem de consulta estruturada, um padrão de gerenciamento de dados que interage com os principais bancos de dados baseados no modelo relacional. Em bancos de dados Cliente/Servidor, o recurso trigger permite executar tarefas relacionadas com validações, consistência de dados, restrições de acesso e rotinas de segurança, e que utiliza um bloco de códigos SQL.
Nesse caso, os comandos que disparam um trigger podem ser:
Em relação a projeto, modelagem e administração de banco de dados, julgue o item subsequente.
Quando acionado, um trigger pode ser executado em
substituição ao comando que o disparou.
No contexto do mecanismo de triggers do PostgreSQL, analise as afirmativas a seguir.
I. Na especificação das ações de um trigger, os valores das colunas sendo afetadas são referenciados pelos prefixos “.NEW” e “.OLD”.
II. Triggers podem acionados para cada uma das linhas afetadas numa operação. Não há acionamento em bloco para o conjunto de linhas afetadas por um comando.
III. BEFORE, AFTER e INSTEAD OF são termos que determinam quando as ações de um trigger serão executadas.
Estão corretas somente as afirmativas
Com relação ao código no SGBD MySQL apresentado acima, julgue o item.
Como foram especificados os delimitadores (DELIMITER) no corpo do trigger, todo o processamento será executado na
aplicação, ou seja, na máquina do cliente, o que poupará recursos do servidor MySQL.
Com relação ao código no SGBD MySQL apresentado acima, julgue o item.
Esse gatilho será disparado somente quando um registro da tabela profissional for removido.
Com relação ao código no SGBD MySQL apresentado acima, julgue o item.
O trigger registro_conselho tem como objetivo inserir um texto na tabela avisos se o crcpr do profissional for nulo.
Com relação ao código no SGBD MySQL apresentado acima, julgue o item.
Caso esse trigger seja implementado, o MySQL impedirá a inserção de registros na tabela profissional, uma vez que, no
código, há a presença de diversos erros de sintaxe.
Com relação ao código no SGBD MySQL apresentado acima, julgue o item.
No MySQL, esse tipo de trigger (AFTER INSERT) é o único que não é disparado automaticamente após a ocorrência do
evento para o qual ele foi definido.
I. A cláusula “OF nome_da_coluna” é usada para disparar o trigger somente quando a coluna específica tiver seu conteúdo alterado (updated).
II. A cláusula “WHEN” pode ser aplicada somente para trigger no nível de linha (row level).
III. A cláusula “REFERENCING OLD AS …” é aplicada somente para operações de inserção na tabela associada ao trigger.
Está correto o que se afirma em
