O Banco de Dados
Por: Marciel_DS • 14/9/2017 • Resenha • 1.293 Palavras (6 Páginas) • 221 Visualizações
TRIGGERS
- O que é uma Trigger?
Uma trigger é um conjunto de instruções SQL armazenado no banco de dados. Uma trigger SQL é executada toda vez que um evento associado a uma tabela ocorre, isto é, INSERT, UPDATE, DELETE.
Quais as Vantagens?
- Meio alternativo de checar integridade dos dados
- Podem validar regras de negócio na camada de dados
- Meio alternativo ao scheduling / agendamento de tarefas. Com triggers, não é necessário executar as tarefas agendadas porque as triggers são executadas automaticamente ANTES ou DEPOIS que uma mudança é feita aos dados em uma tabela.
- Muito útil para auditoria de mudanças de dados em tabelas.
Quais as Desvantagens?
- Não é interessante implementar todas as validações possíveis através de uma trigger. Algumas validações simples têm que ser feitas na camada de apresentação. Por exemplo, pode-se validar formatos de dados digitados pelo usuário na camada front end (browser) usando Javascript ou na camada do servidor usando JSP, PHP, ASP.NET, etc. Outras validações mais complexas podem ser melhor resolvidas na camada de negócio.
- Triggers são executadas de modo invisível para as aplicações cliente, portanto é difícil perceber o que acontece na camada de dados, trazendo riscos para o gerenciamento dos dados.
- Triggers podem aumentar a carga de processamento e I/O no servidor de banco de dados. De maneira geral, se for possível obter o mesmo resultado com uma stored procedure ou um programa com menos impacto em I/O e processamento, prefira isso ao uso de uma trigger. - Se não forem analisadas com cuidado, triggers podem causar erros de recursividade (loop infinito) ou de concorrência.
O que é Erros de recursividade?
Quando a mesma Trigger é executada duas vezes, causando erro.
Por exemplo: Quando um funcionário é excluído e depois alterado.
Trigger X no evento UPDATE da tabela A atualiza a tabela B, o que acaba disparando a trigger Y que atualiza a tabela A. e isso dispara novamente a trigger X e assim sucessivamente.
Criação Básica da Trigger:
SINTAXE BÁSICA
CREATE TRIGGER
[BEFORE / AFTER] [INSERT / UPDATE / DELETE]
ON
BEGIN (opcional)
END (opcional)
[ BEFORE / AFTER ] - especifica se a trigger vai ser executada imediatamente antes (BEFORE) ou imediatamente após (AFTER) o evento
[ INSERT / UPDATE / DELETE] especifica qual evento que será monitorado
BEGIN / END – Delimitadores necessários quando se deseja executar mais de uma instrução SQL no escopo da trigger. Para melhor estruturação do código, é recomendado sempre colocá-los
Para apagar Trigger:
SINTAXE
DROP TRIGGER
STORED PROCEDURES
- O que são?
É um conjunto de instruções SQL pré-compiladas e armazenadas no banco de dados, podendo retornar ou não algum valor. Uma stored procedure pode ser chamada por triggers, por outras stored procedures ou por aplicações.
Stored procedures são praticamente programas dentro do banco de dados
- Vantagens?
Aumenta a performance das aplicações
Ajudam a reduzir o trafego de rede entre a aplicação e o servidor de banco de dados
Centralização e reusabilidade – são reutilizáveis e transparentes para quaisquer aplicações.
Segurança – É possível restringir a interação dos desenvolvedores com o banco de dados por meio de stored procedures.
- Desvantagens?
Desenvolvimento – desenvolver, testar e manter stored procedures não é muito trivial, devido ao ambiente.
Memória e processamento – Muito processamento lógico em uma stored procedure pode aumentar desproporcionalmente a carga de CPU, pois um servidor de banco de dados não é especialmente desenhado para operações lógicas.
COMO CRIAR SINTAXE BÁSICA
CREATE PROCEDURE
BEGIN
END
IN – parâmetro de entrada. O programa que estiver chamando a stored procedure tem que passar um valor como argumento neste parâmetro.
OUT – parâmetro de saída. A stored procedure pode alterar o valor do parâmetro de saída, que é retornado para o programa que a chamou.
INOUT – combinação entre IN e OUT. O programa passa o valor do parâmetro como argumento, e recebe o novo valor, gerado pela stored procedure
TRANSAÇÕES
- O que são?
Transação é a unidade de trabalho de um banco de dados. Transações são comandos individuais ou sequências de comandos ordenados logicamente, sejam eles comandados manualmente por um usuário ou automaticamente por um programa.
Em um banco de dados relacional, as transações são concretizadas através dos comandos da DML (INSERT, UPDATE, DELETE). Uma transação é a propagação de uma ou mais mudanças no banco de dados.
Por exemplo, se você fez um UPDATE em uma tabela para alterar o cadastro de um produto, você fez uma transação.
Uma transação pode ser uma única ou um grupo de instruções DML. Ao gerenciar transações, a transação (grupo de instruções DML) precisa ter sucesso como um todo, ou todas as instruções do grupo falharão.
- Todas as transações têm um começo e um fim;
- Uma transação pode ser desfeita;
- Se ocorrer um erro no meio de uma transação, nenhuma parte da transação pode ser salva no banco de dados.
Há quatro importantes propriedades das transações de banco de dados, que são representadas pelo acrônimo ACID:
ACID – Atomicidade, Consistência, Isolamento e Durabilidade
Atomicidade – o trabalho é atômico, ou seja, indivisível. Ou todo o trabalho é feito, ou nada é feito.
Consistência – Uma transação deve levar o banco de dados de um estado consistente a um outro estado consistente, não importa se uma transação tenha sucesso ou falha.
...