Questões de Concurso
Sobre gatilhos (triggers) em banco de dados
Foram encontradas 205 questões
Situação hipotética: O gestor de um sistema solicitou a realização de auditoria nas atualizações dos registros, prevenção de transações inválidas e imposição de autorização de segurança. Assertiva: Nessa situação, se a base de dados for implementada em um banco de dados Oracle, nenhuma das demandas do gestor poderá ser atendida com o uso de trigger.
Caso seja acessada uma base de dados Oracle, devido aos requisitos de segurança, o uso de trigger permitirá o registro das conexões e desconexões, bem como da última atividade da sessão.
I - É invocado na ocorrência de algum evento especificado ou de uma condição de gatilho.
II - Está sempre condicionado a uma atualização do banco de dados.
III - As ações referenciais CASCADE são um exemplo de um procedimento trigger.
Das afirmativas acima, apenas:

Considere que:
- A tabela empregados contém os campos citados no trigger;
- O banco de dados está aberto e funcionando em condições ideais;
- O funcionário cujo sobrenome é Souza possui como id_emp o valor 'VEND'.
Ao se executar a instrução UPDATE empregados SET salario = 5500 WHERE sobrenome='Souza'; é correto afirmar que
1. Triggers INSTEAD OF são válidas para eventos DML somente sobre views.
2. Podem-se criar triggers passíveis de disparo através de determinados eventos DDL ou DML.
3. Triggers do tipo AFTER não podem referenciar eventos DML do tipo DELETE.
Assinale a alternativa que indica todas as afirmativas corretas.
Com relação à otimização em banco de dados, analise as assertivas abaixo.
I. Triggers dificultam a otimização do banco de dados.
II. Na otimização de banco de dados, transformar uma sequência de operações em uma única expressão algébrica será sempre mais eficiente.
III. Na otimização de banco de dados, explorar índices e evitar a localização de referências de páginas otimiza a busca em banco de dados.
É correto o que se afirma em
A execução apresentada do script deflagrará a execução da trigger trg_01,construída em PL/SQL, que é demonstrada a seguir.
update tabela_a
set coluna_a = ‘X’
where coluna_b = ‘Y’;
create trigger trg_01
before delete on tabela_a
begin
insert into tabela_b values (‘W’, ‘K’);
end;
CREATE TABLE orders (order_id NUMBER PRIMARY KEY, line_items_count NUMBER DEFAULT 0 ); CREATE TABLE lineitems (order_id REFERENCES orders, seq_no NUMBER, CONSTRAINT lineitems PRIMARY KEY(order_id,seq_no) );
Foi criada, relacionada às tabelas, a seguinte trigger, colocada em execução:
CREATE OR REPLACE TRIGGER lineitems_trigger AFTER INSERT OR UPDATE OR DELETE ON lineitems FOR EACH ROW BEGIN IF (INSERTING OR UPDATING) THEN UPDATE orders SET line_items_count = NVL(line_items_count,0)+1 WHERE order_id = :new.order_id; END IF; IF (DELETING OR UPDATING) THEN
UPDATE orders SET line_items_count = NVL(line_items_count,0)-1 WHERE order_id = :old.order_id; END IF; END; /
Em seguida, foram executadas as instruções abaixo, nesta ordem:
INSERT INTO orders (order_id) VALUES (78); INSERT INTO orders(order_id) VALUES (92); INSERT INTO lineitems (order_id, seq_no) VALUES (78,1); INSERT INTO lineitems (order_id, seq_no) VALUES (78,2); SELECT * FROM orders;
Considere:
I. Ao executar a instrução INSERT INTO orders (order_id) VALUES (78); a trigger incrementou o valor contido no campo line_items_count passando de 0 para 1.
II. Ao executar a instrução INSERT INTO lineitems (order_id, seq_no) VALUES (78,1); a trigger incrementou o valor contido no campo line_items_count da tabela orders passando de 0 para 1.
III. Ao executar a instrução INSERT INTO lineitems (order_id, seq_no) VALUES (78,2); a trigger incrementou o valor contido no campo line_items_count da tabela orders passando de 1 para 2.
IV. A instrução SELECT * FROM orders; mostrará no campo line_items_count da linha cujo order_id é 78 o valor 3.
Está correto o que consta APENAS em
Os gatilhos DDL são executados em resposta a diversos eventos que correspondem, basicamente, às seguintes instruções Transact-SQL:
Para desabilitar uma trigger DDL (data definition language) definida com escopo de servidor (on all server), é necessária a permissão control server no servidor
Os triggers otimizam o desempenho de sentenças SQL
Em bancos de dados relacionais que utilizam SQL, a restrição de integridade semântica “o salário de um funcionário não deve ser superior ao salário de seu supervisor” pode ser especificada e imposta em programas de aplicação que atualizem o banco de dados ou por meio do uso de triggers e assertions.

Os objetivos dos gatilhos tg1 e tg2 são sinalizar a ocorrência de erro na inserção de novos empregados e na atualização de empregados existentes quando, respectivamente, o valor do salário
CREATE TRIGGER < nome do trigger>
< tempo de ação do trigger>
< evento para acionar o trigger>
ON < nome da tabela>
< ação>
O parâmetro < tempo de ação do trigger > possui as seguintes opções válidas: