Imagem de fundo

Considere que, em um departamento, todos os funcionários...

Considere as tabelas e as TRIGGERS escritas na notação do Oracle a seguir e responda às questões de 24 a 27.


Imagem associada para resolução da questão



R1:


CREATE TRIGGER Sal_total1

AFTER INSERT ON FUNCIONARIO

FOR EACH ROW

WHEN (NEW.Dnr IS NOT NULL)

UPDATE DEPARTAMENTO

SET Sal_total = Sal_total + NEW.Salario

WHERE Dnr = NEW.Dnr;

R2:


CREATE TRIGGER Sal_total2

AFTER UPDATE OF Salario ON FUNCIONARIO

FOR EACH ROW

WHEN (NEW.Dnr IS NOT NULL)

UPDATE DEPARTAMENTO

SET Sal_total = Sal_total + NEW.Salario - OLD.Salario

WHERE Dnr = NEW.Dnr;

R3:


CREATE TRIGGER Sal_total3

AFTER UPDATE OF Dnr ON FUNCIONARIO

FOR EACH ROW

BEGIN

UPDATE DEPARTAMENTO

SET Sal_total = Sal_total + NEW.Salario

WHERE Dnr = New.Dnr;

UPDATE DEPARTAMENTO

SET Sal_total = Sal_total - OLD.Salario

WHERE Dnr = OLD.Dnr;

END;

R4:


CREATE TRIGGER Sal_total4

AFTER DELETE ON FUNCIONARIO

FOR EACH ROW

WHEN (OLD.Dnr IS NOT NULL)

UPDATE DEPARTAMENTO

SET Sal_total = Sal_total - OLD.Salario

WHERE Dnr = OLD.Dnr;

R5:

CREATE TRIGGER Informar_supervisor1

BEFORE INSERT OR UPDATE OF Salario,Cpf_supervisor

ON FUNCIONARIO

FOR EACH ROW

WHEN (NEW.Salario> (SELECT Salario FROM FUNCIONARIO)

WHERE Cpf = NEW.Cpf_supervisor))

informar_supervisor(NEW.Cpf_supervisor,NEW.Cpf);

Considere que, em um departamento, todos os funcionários receberam 10% de aumento.


Assinale a alternativa que apresenta, corretamente, a regra que será ativada e quantas vezes ela será ativada.


A

R1, uma única vez.


B

R2, uma vez para cada funcionário.


C

R3, uma vez para cada funcionário.


D

R4, uma única vez.


E

R5, uma vez para cada funcionário.