Banco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas



Documentos relacionados
Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

SQL Gatilhos (Triggers)

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Neste artigo, serão apresentados os principais conceitos sobre os TRIGGERS e sua aplicabilidade.

trigger insert, delete, update

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve

Triggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Banco de Dados II Apresentação da Disciplina


BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

Bancos de Dados I. Integridade semântica

Banco de Dados I. Modelagem Conceitual Parte 2. Cardinalidades, atributos em relacionamentos, identificadores, generalização. Prof.

Gatilhos (Triggers) Prof. Márcio Bueno Elaborado por Maria Lígia B. Perkusich

Sistemas de Informação

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

Centro Universitário Franciscano

Integridade dos Dados

Oracle 10g: SQL e PL/SQL

RECUPERAÇÃO DE CONTEÚDO BANCO DE DADOS

Triggers no PostgreSQL

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos

estiver abaixo ou igual ao mínimo, um novo pedido é acrescentado a uma relação pedidos.

PL/pgSQL por Diversão e Lucro

Stored Procedures e Triggers

PostgreSQL. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br

Banco de Dados. Profª. Ana Leda

Laboratório de Banco de Dados Prof. Luiz Vivacqua. PL/pgSQL A Linguagem de programação do PostgreSQL

Projeto de Banco de Dados

SQL Procedural. Josino Rodrigues Neto

Laboratório de Banco de Dados II Aula 1. Stored Procedures

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi

Tarefa Orientada 19 Triggers

Bases de Dados 2007/2008. Aula 9

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

Prova de Fundamentos de Bancos de Dados 2 a Prova

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

Prof. Josenildo Silva

Administração de Usuários e Privilégios no Banco de Dados

Banco de Dados Avançados Banco de Dados Ativo

Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada

Banco de dados. Linguagens de Banco de Dados II. Wedson Quintanilha da Silva -

Exercícios com o intuito de cobrar todos os assuntos vistos em sala, relativos à Modelagem Conceitual, SQL, PL e XML. 1ª ETAPA

MANIPULANDO BANCO DE DADOS NO POSTGRESQL SEM FAZER USO DE COMANDOS SQL

Linguagem SQL (Parte II)

Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você

Bases de Dados 2012/2013 Funções/procedimentos e triggers. Helena Galhardas 2012 IST. Bibliografia. Manual referência PostgreSQL

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Formação em Banco de Dados

Dados. Qualquer elemento (aspecto, fato, medida etc.) representativo, disponível e coletável na realidade. fatos no estado bruto, conforme Platão;

GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

PL/pgSQL. Introdução. Introdução. Introdução

Linguagem de Programação III Herança

SQL: Definição de tabelas, Modificações à Base de Dados

Operação de União JOIN

Chaves. Chaves. O modelo relacional implementa dois conhecidos conceitos de chaves, como veremos a seguir:

Plano de Ensino IDENTIFICAÇÃO EMENTA

Relatório. Projecto de Base de Dados Parte 2. Turno: quinta-feira, 11:30 Grupo 25: André Gonçalves Rui Barradas Hélton Miranda 68477

Structured Query Language (SQL) Aula Prática

DESENVOLVIMENTO DE SOFTWARE


Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Logado no OracleXE vamos acessar a opção:

Introdução. Por que um SBD? inconsistência e redundância de dados;

A linguagem SQL

PHP INTEGRAÇÃO COM MYSQL PARTE 2

Monitoria GDI Aula Prática. DML + PL/SQL parte 1

Banco de Dados Oracle 10g: Introdução à Linguagem SQL

PROGRAMA. Aquisição dos conceitos teóricos mais importantes sobre bases de dados contextualizados à luz de exemplos da sua aplicação no mundo real.

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

FUNDAMENTOS DA ORIENTAÇÃO A OBJETOS- REVISÃO

TECNOLOGIA WEG II PHP com SGBD MYSQL

Prova de Fundamentos de Bancos de Dados 2 a Prova

BD Oracle. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

Abordagem relacional Capítulo 4

Criação de Log de Ações Através do Banco de Dados. Marcos Thomaz da Silva

(1,n) venda. (1,1) realizacao. cliente. (0,n) (1,1) contem. produto. Laboratório de Banco de Dados Exercicios

SQL DDL ALTERAÇÃO DA ESTRUTURA DE TABELAS - ALTER TABLE - ALTER TABLE NOME_TABELA ADD [COLUMN] NOME_COLUNA TIPO_COLUNA RESTRIÇÕES

Transações Seguras em Bancos de Dados (MySQL)

Prova de pré-requisito

Bases de Dados 2012/2013 Restrições de Integridade em SQL. Helena Galhardas 2012 IST. Bibliografia

Banco de Dados / 2. Banco de Dados / 4. Tipo de dados padrão. versão. Banco de Dados / 6. Nome físico da tabela. versão

ACCESS BÁSICO. Exercício 1 NCE/UFRJ. 1. O que são bancos de dados?...

Hugo Pedro Proença, 2007

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS. Profº Erinaldo Sanches Nascimento

SQL Server Triggers Aprenda a utilizar triggers em views e auditar as colunas atualizadas em uma tabela

Projeto de Banco de Dados. Disciplina: Banco de Dados I José Antônio da Cunha

Aula 3 SBD Modelo Entidade Relacionamento Parte 1. Profa. Elaine Faria UFU

Aula 1 Acesso a Banco de Dados

Transcrição:

Banco de Dados II Triggers e Functions Prof. Moser Fagundes Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas

Sumário da aula Functions (funções) Triggers (gatilhos) Atividades

Functions (funções) As functions tem uma estrutura muito semelhante aos procedures, porém há duas diferenças: As funções sempre retornam um valor, enquanto os procedimentos apenas retornam valores através de parâmetros OUT explicitamente declarados. As funções podem ser usadas de forma direta dentro de comandos SQL, enquanto os procedimentos somente podem ser usados através do comando CALL.

Objetivo das functions O objetivo das functions não é realizar transações de negócio completas como os procedures, mas sim realizar pequenas operações auxiliares como: Formatações de texto e variáveis Operações repetitivas e rotineiras que possam ser compartilhadas por diversos procedimentos

Criando uma function DELIMITER <caractere delimitador> CREATE FUNCTION <nome-da-funcao>[(params)] RETURNS <tipo-de-retorno> BEGIN <instruções> RETURN <valor>; END <caracter delimitador> DELIMITER ;

Criando uma function DELIMITER <caractere delimitador> CREATE FUNCTION <nome-da-funcao>[(params)] RETURNS <tipo-de-retorno> BEGIN <instruções> RETURN <valor>; END <caracter delimitador> DELIMITER ; Em funções, os parâmetros são sempre do tipo IN

Excluindo uma function Para excluir uma function, devemos primeiro tornar o Banco de Dados ativo com o comando: USE <nome-do-bd>; Logo, devemos usar o seguinte comando: DROP FUNCTION <nome-da-funcao>;

Exemplos de functions Ver arquivo SQL na página da disciplina [bd2-aula-6-functions.sql]

Triggers (gatilhos) Triggers, também conhecidos como gatilhos, são um recurso muito interessante quanto ao aspecto de o Banco de Dados ter um pouco mais de vida própria, sem a dependência constante de um usuário ou aplicação estar o acompanhando.

Triggers (gatilhos) Bloco SQL armazenado no servidor que é disparado de forma automática e implicita sempre que ocorrer um determinado evento associado a uma tabela: INSERT DELETE UPDATE Não pode ser chamado explicitamente através do comando CALL como os procedimentos.

Utilidades dos triggers Automatização de certas operações no BD: Manutenção de tabelas de auditoria Manutenção de tabelas duplicatas Geração de valores de colunas referentes a atributos derivados Validação de restrições de integridade mais complexas que aquelas suportadas diretamente pelo SGBD

Tipos de trigger Conceitualmente, o MySQL oferece dois tipos de triggers básicos: Os que disparam a execução de um código antes (BEFORE) de um evento, e Os que disparam a execução de um código depois (AFTER) de um evento.

Tipos de trigger Podemos ter 6 combinações BEFORE INSERT BEFORE UPDATE BEFORE DELETE AFTER INSERT AFTER UPDATE AFTER DELETE

Criando um trigger DELIMITER <caractere delimitador> CREATE TRIGGER <nome-do-trigger> <tipo-do-trigger> ON <nome-tabela> FOR EACH ROW BEGIN <instruções> END <caracter delimitador> DELIMITER ;

Criando um trigger DELIMITER <caractere delimitador> CREATE TRIGGER <nome-do-trigger> <tipo-do-trigger> ON <nome-tabela> FOR EACH ROW BEGIN Nome do trigger que <instruções> está sendo criado END <caracter delimitador> DELIMITER ;

Criando um trigger DELIMITER <caractere delimitador> CREATE TRIGGER <nome-do-trigger> <tipo-do-trigger> ON <nome-tabela> FOR EACH ROW BEGIN BEFORE INSERT <instruções> BEFORE UPDATE BEFORE DELETE END <caracter delimitador> AFTER INSERT AFTER UPDATE DELIMITER ; AFTER DELETE

Criando um trigger DELIMITER <caractere delimitador> CREATE TRIGGER <nome-do-trigger> <tipo-do-trigger> ON <nome-tabela> FOR EACH ROW BEGIN <instruções> END <caracter delimitador> DELIMITER ; Nome da tabela onde está sendo feita a inserção, remoção ou atualização

Criando um trigger DELIMITER <caractere delimitador> CREATE TRIGGER <nome-do-trigger> <tipo-do-trigger> ON <nome-tabela> FOR EACH ROW BEGIN <instruções> END <caracter delimitador> DELIMITER ; Podemos usar a variável OLD para fazer referência à tabela antes do evento, e NEW para referenciar tabela após o evento. OLD.nome_da_coluna NEW.nome_da_coluna

Excluindo um trigger Para excluir um trigger, devemos primeiro tornar o Banco de Dados ativo com o comando: USE <nome-do-bd>; Logo, devemos usar o seguinte comando: DROP TRIGGER <nome-do-trigger>;

Observações Atualizações a partir de ações para manutenção de integridade em chaves estrangeiras, como por exemplo ON DELETE CASCADE e ON UPDATE CASCADE, não disparam triggers!

Observações No MySQL você só pode associar um trigger de cada tipo a uma tabela. Por exemplo, você só pode associar um trigger BEFORE UPDATE, um trigger AFTER INSERT, etc... a uma tabela. Você não pode associar triggers com tabelas temporárias ou views.

Exemplos de triggers Ver arquivo SQL na página da disciplina [bd2-aula-6-triggers.sql]

Atividades Lista de Exercicios 4 disponível no site.

Contato Página da disciplina: www.fagundes.pro.br/aulas/tsi-bd2/ Contato por e-mail: moserfagundes@charqueadas.ifsul.edu.br