sexta-feira, 12 de fevereiro de 2010

O que é Trigger?


Bom aqui este tópico vou falar sobre as
Triggers é um (Gatilho) as melhores coisas que existem em um banco de dados para o programador elas dão uma dorzinha de cabeça mas que... facilitam muito a vida do desenvolvedor do software, mais vamos para entendimento melhor, temos que saber para que serve uma Trigger e qual a sua função dentro do banco. Então Let's GO!!!.

Uma descrição básica e rápida ela é o comando no banco CREATE TRIGGER introduz um novo gatilho no banco de dados atual. O gatilho fica associado com a relação tabela e executa a função especificada função. 

O
gatilho pode ser especificado para disparar antes (BEFORE) da operação ser realizada na tupla (antes das restrições serem verificadas e o INSERT, UPDATE ou DELETE serem efetuados) ou após (AFTER) a operação ser realizada (ou seja, após as restrições serem verificadas e o INSERT, UPDATE ou DELETE ter completado). Se o gatilho disparar antes do evento, o gatilho pode evitar a operação para a tupla atual, ou modificar a tupla sendo inserida (para as operações de INSERT e UPDATE somente). Se o gatilho disparar após o evento todas as modificações, incluindo a última inserção, atualização ou exclusão, são "visíveis" para o gatilho

O
SELECT não modifica nenhuma linha, portanto não é possível criar gatilhos para SELECT. Regras e visões são mais apropriadas para este caso. 

Sintaxe ficariam assim:

Name (CREATE TRIGGER -- define um novo gatilho);
Synopsis (BEFORE | AFTER);
Entradas (nome, tabela, evento, função);
Saídas (Mensagem retornada se o gatilho for criado com sucesso);

Bom  mais para frente irei postar várias Tiggers para vários tipos de Linguagens de Banco de Dados como exemplo Postgre, Firebird, Oracle entre outros...

1º O que são Triggers?

Triggers são códigos de
PL/SQL armazenados dentro do banco de dados, onde podemos definir um "bloco" PL/SQL para que seja executado automaticamente pelo banco, assim toda vez que uma instrução SQL ( evento DML ) for aplicada para uma tabela específica ele irá executar um determinado evento automaticamente.

2º Para que serve uma Trigger?

Bom volto a falar ela esta dentro do
Banco de Dados e tem uma função muito boa a Trigger dentro do seu banco será de uma utilidade enorme, imaginem que temos um banco de dados com 1.500,000 de registros, onde os funcionários da empresa ganham por hora, e você tem que atualizar o banco de horas de cada funcionário por dia, alguns comandos poderia fazer isso por nós, mas seria um pouco complicado e desgastante, então, por este motivo, criamos nossas Triggers, onde definimos o que deve ser mudado na tabela num único arquivo e depois acionamos um único comando DML (Update) para ele, assim, ele irá atualizar os 1.500,000 de registros de uma única só vez.

3º Implementação da Trigger dentro do banco?

Devemos tomar algumas precauções sobre a implementação das
Triggers dentro do banco, fique atento para estes tópicos :
  • Use triggers para garantir a execução de comandos para uma tabela específica;
  • Não fique criando triggers que duplique regras já definidas em CONSTRAINTS do banco;
  • O Oracle recomenda que limitamos os nossos códigos no máximo em 60 linhas,
  • Caso você tenha que criar algo mais complexo crie stored procedure, será mais utíl;
  • ATENÇÃO cuidado ao criar as Triggers que disparem sob uma instrução UPDATE na sua Tabela, não pode alterar a tabela porque isso iria disparar a Triggers mais de N vezes no sistema, e a memória do equipamento não iria agüentar ocasionandos bugs de memória e resultados errôneos.

4º Pontos fundamentais das Triggers?

Segurança e Integridade

Podemos utilizar as Triggers para garantir uma segurança maior no nosso banco, ela tem como tarefa restringir o acesso as tabelas e controlar as atualizações.

Auditoria

Como disse anteriormente, as Triggers são executadas automaticamente, assim, podemos utilizá-las para fazer auditoria sobre acesso ao banco de dados.

Replicação de Dados

São excelentes para criar uma política de replicação síncrona de uma tabela para outra.

Integridade

Apartir das Triggers podemos criar controles mais complexos para os relacionamento das tabelas.

Controle de dados

Caso uma tabela tenha dados, cujo valor depende de outras tabelas, as Triggers pode atualizar automaticamente a coluna com os valores derivados.

Próximos posts vou comentar sobre a Preparação das Triggers passo-a-passo e um resumo sobre os comandos, assim vocês poderam na ultima coluna, estar dominando a criação e a utilização deste mecanismo.

Nenhum comentário:

Postar um comentário

 Copyright © 2008-2010 All Right Reserved - Todos os Direitos Reservados Elder Stroparo