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

Próximas questões
Com base no mesmo assunto
Q2762004 Arquitetura de Software

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




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.

Alternativas