Especificação declarativa de uma expressão booleana que deve Especificação declarativa de uma expressão booleana que deve
ser verdadeira para todas linhas de uma tabela (valores de uma ser verdadeira para toda a base de dados (pode envolver várias
coluna) tabelas)
Mesma sintaxe da cláusula WHERE do SELECT CREATE ASSERTION ValidaSalario
Exemplo: (NOT EXISTS
ALTER TABLE Cliente
SELECT * FROM emp
ADD CONSTRAINT ValidaCampos
WHERE
CHECK
emp.sal<
(TipoCli=“Pessoa Física” AND
CIC IS NOT NUL AND (SELECT sal
CGC IS NULL) OR FROM emp AS ger
(TipoCli=“Pessoa Jurídica” AND WHERE ger.cod_emp=emp.cod_emp_ger)
CIC IS NULL AND Implementação em SGBD é restrita (problema de performance)
CGC IS NOT NULL)
“Stored procedure” que é executada automaticamente quando da Um trigger contém três partes:
atualização de uma tabela
evento (p.ex., atualizar um campo)
Pode ser usado para: condição (p.ex.., uma consulta que faz um teste)
ação (p.ex., exclusão, inclusão,…, RAISEERROR)
Atualizações em cascata
Quanto o evento ocorre,
Verificação de restrições de integridade que não podem ser
1. Sistema testa condição e
verificadas pelas restrições implícitas nem pela cláusula 2. Executa ação
CHECK
Observação: triggers podem ter efeitos em cascata
A base de dados deve ser protegida contra acesso, intencional ou não, SQL possui uma instrução na forma:
por usuários não autorizados. GRANT <lista de privilégios>
DELETE REFERENCES
Especifica que o usuário pode excluir linhas das tabelas Permite que um usuário crie tabelas que contém uma chave
ou visões listadas estrangeira de uma chave especificada.
INSERT Também é atribuído a colunas específicas:
Especifica que o usuário pode incluir linhas das tabelas ou GRANT REFERENCES(código) ON depto TO u1,u2
visões listadas especifica que os usuários podem criar tabelas que referencia
UPDATE a chave primária da tabela de departamentos
Especifica que o usuário pode alterar linhas das tabelas Por exclusão, um usuário não pode conceder os privilégios recebidos a
ou visões listadas outros usuários, a menos que possua autorização explícita para tal
Este privilégio é atribuído a colunas específicas: GRANT SELECT ON DEPT TO u1,u2 WITH GRANT OPTION
GRANT UPDATE(saldo) ON depósito TO u1,u2 A cláusula WITH GRANT OPTION especifica que o usuário
pode também conceder seus privilégios a outros usuários
Restrições de integridade/23