Livro sistemas de banco de dados-navathe resenha 8.2 e 5.2
Cap. 5 e 8
Livro:
Elsmari, R.;Navathe, B. Sistemas de Banco de Dados. Editora Pearson - 2005
5.2 Especificando restrições como asserções e ações como triggers.
Serão apresentados dois recursos SQL, o comando CREATE ASSERTION e o comando CREATE TRIGGER.
CREATE ASSERTION pode ser usado para tipos diferentes de restrições que estão fora do escopo como chaves primárias e unic, integridade de entidade e integridade referencial.
CREATE TRIGGER pode ser usaco domo uma ação automatica quando algum evento específico ocorrer.
5.2.1 Especificando restrições gerais como asserções em SQL.
Em SQL é possível especificar restrições por meio de asserções declatarivas, usando o CREATE ASSERTION da DDL. Cada asserção recebe um nome e o modelo de escrita é parecido com a clausula WHERE da consulta SQL.
Por exemplo, se ao criar um banco ele necessita de uma restrição onde o salário do funcionário não pode ser maior que o do seu gerente em SQL podemos escrever a seguinte asserção:
CREATE ASSERTION RESTRICAO_SALARIAL CHECK(NOT EXISTS (SELECT * FROM FUNCIONARIO F, FUNCIONARIO G, DEPARTAMENTO D WHERE F.SALARIO > G SALARIO AND F.Dnr = D.Dnumero AND D.CPF.Gerente = G.CPF));
O nome RESTRICAO_SALARIAL é seguido pelo CHECK que possui uma condição que deve ser verdadeira para cara asserção do banco. O nome a restrição pode ser usado mais tarde para referir a restrição, para modificá-la ou excluí-la.
Sempre que alguma tupla no banco fizer a condição do comando de asserção der false como resposta a restrição é violada. A clausula CHECK e a condição de restrição também podem ser utilizadas para especificar restrições sobre atributos e domínios indivíduais.
A principal diferença entre CREATE ASSERTION e as restrições de domínio e de tuplas individuais é que as cláusulas CHECK sobre atributos, domínios e tuplas são verificadas na SQL somente quando as tuplas são inseridas ou atualizadas.
5.2.2 Introdução às trigger