Triggers e StoreProcedures

Slides:



Advertisements
Apresentações semelhantes
Ana Paula B. Barboza Ivana Xavier Rodrigues
Advertisements

O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Gerenciamento de Dados e Informação Estudo de caso – PL/SQL
Triggers Renata Viegas.
SQL Avançado Continuação
BANCO DE DADOS EM APLICATIVOS WEB Aula 13
Banco de Dados Prof.: Bruno Rafael de Oliveira Rodrigues.
Banco de Dados SQL TRIGGERS (Gatilhos)
Banco de Dados SQL Stored Procedures
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados II 1º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
Projeto e Organização de BD
Maurício Edgar Stivanello
Sistema Gerenciador de Banco de Dados SGBD
Restrições de Integridade
Oficina sobre banco de dados
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
Material III-Bimestre Wagner Santos C. de Jesus
Operação de União “JOIN”
Linguagem de Banco de Dados - SQL
Disciplina de Programação Visual 2 – QI – Aula8 Prof. Luciano Monteiro
MySQL Gerdson de Araújo Silva Universidade Federal de Alagoas Maceió-AL, 21 de maio de 2009.
Banco de dados Profª Kelly Medeiros.
XIV Jornada de Cursos .NET com C# Antônio Carlos Bruno Inojosa.
PL/SQL, Procedures e Funções
Tópicos de Sistemas de Informação A Carlos Oberdan Rolim Ciência da Computação.
Monitoria GDI Aula Prática
Capítulo 6: Integridade e Segurança
Design Patterns / Acesso ao banco de dados (java.sql)
Tipos de Linguagens do Banco de Dados
(Linguagem de Consulta Estruturada)
Equipe de monitoria Aula prática 3.  Caso de estudo  Igualando situações  Cursor  Function  Procedure  Trigger  Package  Surpresa...
Primeira aula de PL/SQL Parte II
Especialização em Tecnologia da Informação
Oracle 9i: SQL e PL/SQL Bruno Celso Cunha de Freitas
SEQUENCE, PROCEDURE, FUNÇÃO, TRIGGER
Desenvolvendo um script SQL
Rafael Lucio, Desenvolvedor Jr Padrão Informática e Assessor de TI Secretaria Municipal da Saúde;
VIEW - VISÕES Professor Esp. Diego André Sant’Ana
BANCOS DE DADOS ATIVOS Weyler M Lopes © Especialização em Banco de Dados.
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Revisão ER /SQL / PL.
Linguagem de Definição de Dados
Microsoft SQL Server 2008 SPARSE. Para que serve? –Otimiza o espaço de armazenamento de colunas com valores NULL.
1 Projeto do Sistema de Monitoramento das Águas da Amazônia 2 (MONITORAMA II) Instituto Tecnológico de Aeronáutica CE240 - Projeto de Sistema de Banco.
1 15/4/ :36 FMU – 1. Semestre – Tecnologia – Analise e Desenvolvimento de Sistemas Professor: Eduardo Silvestri Aluno:Clóvis de Oliveira- RA
SQL- Structured Query Language  SQL é uma linguagem de comandos para interagir com uma BD relacional (não é case-sensitive).  A linguagem Java permite.
Triggers (Gatilhos) Professor Esp. Diego André Sant’Ana
Banco de Dados I I Comandos SQL
7P/SI – 2010/01 Prof. Carlos Alberto Seixas. Agenda Visão Geral sobre os Conceitos e Implementação sobre SGBs MySQL Revisão das Práticas Práticas 1 e.
Conceitos básicos Professor Esp. Diego André Sant’Ana
Programação em Bancos de Dados Relacionais
Daniel Paulo SQL Módulo I Daniel Paulo
Daniel Paulo SQL Server 2014 Módulo II Daniel Paulo
Linguagem de definição de dados - SQL
BD SQL (Insert, Update, Delete) e Select Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 –
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
Aula 13 - Triggers. Triggers no SGBD Postgres  Os Triggers (Gatilhos) são funções preparadas para serem disparadas no caso de alguma alteração ocorrer.
Banco de Dados II Prof: Márcio Soussa Curso de Sistemas de Informação Faculdades Jorge Amado.
2/6/2016 José Antônio da Cunha - CEFET - RN1 Programação de Banco de Dados Funções.
Banco de Dados Prof. MSc Wagner Siqueira Cavalcante.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 5 Mais SQL: Consultas Complexas, Triggers e Views.
BANCO DE DADOS Araújo Lima Outubro / 2017 Araújo.
PL/SQL Triggers e Procedures
Transcrição da apresentação:

Triggers e StoreProcedures Eros Stein Fabricio Bellesa Luiz Borges Mayko Calazans

Visão geral

Visão geral Um dos bancos de dados mais populares do mundo. Quem usa? NASA, Bradesco, HP, Nokia, Sony, U.S. Army, Google, etc... Em 16/01/2008 a MySQL AB foi comprada pela Sun por 1 bilhão de dólares.

Características

Características Altíssima portabilidade... Para quase todas as plataformas atuais. Compatibilidade com varias linguagens de programação tão alta quanto a portabilidade. Muito estável e de fácil manuseio. Livre com base na GPL(General Public License) Suporta triggers, stored procedures e functions. http://www.mysql.com/

Tabelas

Modelo anterior

Modelo atual

Razões das mudanças Mudanca 1: Motivação: Saídas: Manter histórico do gasto em cada compra, mesmo com alteração do valor do produto Saídas: Adicionamos valorPedido na tabela pedido Consequencias positivas Permite descobrir o valor dos produtos vendidos em qualquer época. Depois Antes

Razões das mudanças Mudança 2 Motivação: Saídas: Ter controle sobre os produtos gastos durante as sessões de tatuagem ou aplicação de bodypiercing. Saídas: Criação da tabela produtosUtilizados.

Razões das mudanças Mudança 3 Motivação: Saídas: Manter registradas as datas de admissão e demissão dos funcionários, e resolver problemas com a re-contratação. Saídas: Criação da tabela historicoFuncionario

Triggers O que é? Objeto associado a uma tabela; É sempre disparado para responder algum evento previsto: Comandos DML (INSERT, REPLACE, DELETE ou UPDATE) Vários triggers podem ser associados a um mesmo BD. Os triggers podem ser disparados antes ou depois dos eventos. Obs.: É importante definir um finalizador diferente de ; em uma trigger.

Triggers CREATE TRIGGER `atualizaProdutosVendidos` AFTER INSERT ON `pedido` FOR EACH ROW BEGIN CALL updateProduto(new.quantidade,new.codProduto); END; CREATE TRIGGER `atualizaProdutosUtilizados` AFTER INSERT ON `produtosutilizados`

Triggers CREATE TRIGGER `atualizaHistorico` AFTER UPDATE ON `funcionario` FOR EACH ROW BEGIN if(old.statuss = 'd')then if(new.statuss = 'a') then INSERT INTO historicoFuncionario SET codHistoricoFuncionario = NULL, codFuncionario = OLD.codFuncionario, dataAdmissao = NOW(), dataDemissao = null; end if; if(old.statuss = 'a') then if(new.statuss = 'd') then call demiteFuncionario(OLD.codFuncionario); END;

Triggers CREATE TRIGGER `adimiteFuncioanario` AFTER INSERT ON `funcionario` FOR EACH ROW BEGIN INSERT INTO historicoFuncionario SET codHistoricoFuncionario = NULL, codFuncionario = new.codFuncionario, dataAdmissao = NOW(), dataDemissao = null; END

Triggers CREATE TRIGGER `atualizaProdutosVendidos` BEFORE INSERT ON `pedido` FOR EACH ROW BEGIN call updateProduto(new.quantidade,new.codProduto); set new.valorPedido = (select p.preco from produto as p where p.codProduto = new.codProduto) * new.quantidade; END

Stored Procedure O que é? É um conjunto de comandos SQL que pode ser armazenados no servidor. Os clientes não precisam reenviar os comandos individuais mas podem fazer referência às stored procedure(SP). Usando um Trigger... Podem fornecer um aumento de desempenho: Já que menos informação é enviada ao servidor, visto que, os SPs ficam no próprio servidor. Em contra partida, pode gerar lentidão se existirem muitos acessos, já que, SPs favorecem o uso de processos Servidor bound.

Stored Procedure CREATE PROCEDURE `demiteFuncionario`(IN `codFuncioarioEntrada` INT) LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT '' BEGIN update historicoFuncionario set dataDemissao = now() where codFuncionario = codFuncioarioEntrada; END

Stored Procedure CREATE PROCEDURE `updateProduto`(IN `var` INT, IN `codP` INT) LANGUAGE SQL NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER COMMENT '' BEGIN UPDATE produto SET quantidadeEstoque = quantidadeEstoque - var WHERE codProduto = codP; END;