Prof. Josenildo Silva

Tamanho: px
Começar a partir da página:

Download "Prof. Josenildo Silva"

Transcrição

1 BD II (SI 587) Gatilhos (Triggers) Prof. Josenildo Silva

2 Motivação Algumas rotinas precisam ser executadas antes ou depois de um determinado evento no banco de dados

3 Motivação Regras de negócios complexas precisam ser verificadas a cada operação do banco de dados

4 Motivação Somente com visões, funções e procedimentos não é possível realizar nenhuma das duas situações

5 TRIGGERS

6 O que são triggers? É um conjunto de operações executadas automaticamente quando uma alteração é feita em uma tabela

7 Execução É disparada (pelo SGBD) antes ou depois de um INSERT, UPDATE ou DELETE Pode haver até seis triggers por tabela

8 Utilização de Triggers Atender regras de negócios Verificar a integridade dos dados, pois é possível fazer uma verificação antes da inserção do registro Contornar erros na regra de negócio do sistema no banco de dados; Auditar as mudanças nas tabelas.

9 Exemplos Aprovar financiamento maiores que um determinado valor Atualizar uma tabela de auditoria após alteração de um registro em outra tabela. 9

10 Triggers em SQL Comando CREATE TRIGGER Um trigger típico tem três componentes: Evento(s) Condição Ação

11 Triggers em SQL Comando CREATE TRIGGER Um trigger típico tem três componentes: Evento(s) Condição Ação

12 Triggers em SQL Comando CREATE TRIGGER Um trigger típico tem três componentes: Evento(s) Condição Ação

13 Acesso a outras tabelas Uma TRIGGER é sempre associada a uma tabela, porém os seus comandos podem acessar dados de outras tabelas 13

14 Exemplo de acesso a outras tabelas Dadas as tabelas Nota_Fiscal(Num_nota, valor_total) Produto(Cod_Prod, nome, preço, estoque) Nota_Prod(Num_nota, Cod_Prod, quantidade) Pode-se criar uma trigger para a operação de INSERT na tabela Nota_Prod que atualiza o nível de estoque do produto vendido *

15 Eventos em cascata Pode-se usar TRIGGERS para exclusão e atualização em cascata Se um comando executado violar uma CONSTRAINT, a TRIGGER não irá disparar. *

16 Restrições Não são permitidos os seguintes comandos: ALTER DATABASE, CREATE DATABASE, DROP DATABASE, LOAD DATABASE, LOAD LOG, RESTORE DATABASE, RESTORE LOG, RECONFIGURE

17 Palavras chave OLD e NEW As triggers tem acesso a duas tabelas em memória referenciadas pelas palavra chave OLD e NEW

18 Palavras chave OLD e NEW :OLD e :NEW (No mysql se omite os dois pontos) Quando a operação for de insert temos acesso apenas a tabela :new Quando a operação for de update temos acesso as tabela :old, :new Quando a operação for de delete temos acesso apenas a tabela :old

19 TRIGGERS NO MYSQL

20 Triggers no MySQL Será criado uma trigger para cada evento das tabelas ENTRADA_PRODUTO e SAIDA_PRODUTO Nota: o MySQL não suporta múltiplos eventos em uma mesma trigger

21 Triggers no MySQL Padrão de nomeclatura trg + nome da tabela + id do evento AI : After Insert (Após Inserção) AU: After Update (Após Atualização) AD: After Delete (Após Exclusão)

22 Triggers no MySQL Serão criadas as seguintes triggers: trg_entradaproduto_ai; trg_entradaproduto_au; trg_entradaproduto_ad; trg_saidaproduto_ai; trg_saidaproduto_au; trg_saidaproduto_ad.

23 Triggers no MySQL TRIGGER trg_entradaproduto_ai DELIMITER $$ CREATE TRIGGER trg_entradaproduto_ai AFTER INSERT ON entrada_produto FOR EACH ROW BEGIN CALL sp_atualizaestoque (new.id_produto, new.qtde, new.valor_unitario); END $$ DELIMITER ;

24 Triggers no MySQL TRIGGER trg_entradaproduto_au DELIMITER $$ CREATE TRIGGER trg_entradaproduto_au AFTER UPDATE ON entrada_produto FOR EACH ROW BEGIN CALL sp_atualizaestoque (new.id_produto, new.qtde - old.qtde, new.valor_unitario ); END $$ DELIMITER;

25 Triggers no MySQL TRIGGER trg_entradaproduto_ad DELIMITER $$ CREATE TRIGGER trg_entradaproduto_au AFTER DELETE ON entrada_produto FOR EACH ROW BEGIN CALL sp_atualizaestoque (old.id_produto, old.qtd * -1, old.valor_unitario ); END $$ DELIMITER;

26 Triggers no MySQL TRIGGER trg_saidaproduto_ai DELIMITER $$ CREATE TRIGGER trg_saidaproduto_ai AFTER INSERT ON saida_produto FOR EACH ROW BEGIN CALL sp_atualizaestoque (new.id_produto, new.qtde * -1, new.valor_unitário); END $$ DELIMITER;

27 Triggers no MySQL TRIGGER trg_saidaproduto_au DELIMITER $$ CREATE TRIGGER trg_saidaproduto_au AFTER UPDATE ON saida_produto FOR EACH ROW BEGIN CALL sp_atualizaestoque (new.id_produto, old.qtde - new.qtde, new.valor_unitario); END $$ DELIMITER;

28 Triggers no MySQL TRIGGER trg_saidaproduto_ad DELIMITER $$ CREATE TRIGGER trg_saidaproduto_ad AFTER DELETE ON saida_produto FOR EACH ROW BEGIN CALL sp_atualizaestoque (old.id_produto, old.qtde, old.valor_unitário); END $$ DELIMITER;

29 Habilitando e Desabilitando Trigger Para desabilitar temporariamente uma trigger: ALTER TABLE Nome_da_Tabela DISABLE TRIGGER Nome_da_Trigger Para habilitar novamente uma trigger: ALTER TABLE Nome_da_Tabela ENABLE TRIGGER Nome_da_Trigger 29

30 TRIGGERS NO ORACLE

31 Triggers no Oracle Trigger são blocos PL/SQL associados com tabelas, views, esquemas

32 Triggers no Oracle Triggers de DML (INSERT, UPDATE e DELETE) Também: triggers INSTEAD OF para visões Triggers de DDL (CREATE, ALTER e DROP) Triggers de sistema

33 Triggers de DML - Sintaxe CREATE [OR REPLACE] TRIGGER <nome> {timing} event1 event2... ON {tabela} [FOR EACH ROW WHEN (predicado)] {corpo_trigger}

34 Exemplo 1: Trigger before-statement CREATE OR REPLACE TRIGGER BEF_STA BEFORE INSERT ON TB_AUX BEGIN DBMS_OUTPUT.PUT_LINE('Inside a BEFORE STMT TRIGGER!'); -- USE THE FOLLOWING LINE TO CANCEL THE ACTION -- RAISE_APPLICATION_ERROR(-20200,'TEST'); END; -- TESTING INSERT INTO TB_AUX VALUES(1,'A') INSERT INTO TB_AUX VALUES(2,'B') INSERT INTO TB_AUX VALUES(3,'C') SELECT * FROM TB_AUX;

35 Exemplo 2: Trigger before-row CREATE OR REPLACE TRIGGER BEF_ROW BEFORE UPDATE OF NAME ON TB_AUX FOR EACH ROW BEGIN DBMS_OUTPUT.PUT_LINE('Inside a BEFORE ROW TRIGGER!'); END; -- TESTING UPDATE TB_AUX SET NAME = '' WHERE ID = 100; UPDATE TB_AUX SET ID = 0; UPDATE TB_AUX SET NAME = ''; SELECT * FROM TB_AUX;

36 Predicados, e tabelas :old e :new Predicados indicam o tipo do trigger DELETING, INSERTING e UPDATING Tabelas :old e :new Em memória, com dados relacionados à instrução que disparou o trigger

37 Exemplo 3: Trigger com predicados CREATE OR REPLACE TRIGGER AFT_STA AFTER INSERT OR UPDATE OR DELETE ON TB_AUX BEGIN IF DELETING THEN RAISE_APPLICATION_ERROR(-20200,'DELETE CANCELED!'); ELSEIF INSERTING THEN RAISE_APPLICATION_ERROR(-20200,'INSERT CANCELED!'); ELSEIF UPDATING('NAME') THEN RAISE_APPLICATION_ERROR(-20200,'UPDATE CANCELED!'); END IF; END; -- TESTING SELECT * FROM TB_AUX; DELETE TB_AUX WHERE ID = 0 -- TESTING INSERT INTO TB_AUX VALUES(4,'D') UPDATE TB_AUX SET NAME = 'Z'

38 Exemplo 4: Trigger com :new e :old CREATE OR REPLACE TRIGGER AFT_ROW AFTER INSERT OR UPDATE OR DELETE ON TB_AUX FOR EACH ROW BEGIN IF DELETING THEN DBMS_OUTPUT.PUT_LINE('OLD ID:' TO_CHAR(:OLD.ID) ); DBMS_OUTPUT.PUT_LINE('OLD NAME:' TO_CHAR(:OLD.NAME) ); ELSIF INSERTING THEN DBMS_OUTPUT.PUT_LINE('NEW ID:' TO_CHAR(:NEW.ID)); DBMS_OUTPUT.PUT_LINE('NEW NAME:' TO_CHAR(:NEW.NAME)); ELSIF UPDATING('NAME') THEN DBMS_OUTPUT.PUT_LINE('NEW ID:' TO_CHAR(:NEW.ID) ); DBMS_OUTPUT.PUT_LINE('OLD ID:' TO_CHAR(:OLD.ID) ); DBMS_OUTPUT.PUT_LINE('NEW NAME:' TO_CHAR(:NEW.NAME) ); DBMS_OUTPUT.PUT_LINE('OLD NAME:' TO_CHAR(:OLD.NAME) ); END IF; END;

39 Exemplo 4: cont. -- TESTING SELECT * FROM TB_AUX; DELETE TB_AUX WHERE ID = 0 INSERT INTO TB_AUX VALUES(4,'D') UPDATE TB_AUX SET NAME = 'Z'

40 Exemplo 5: cláusula WHEN CREATE OR REPLACE TRIGGER AFT_WHEN AFTER INSERT ON TB_AUX FOR EACH ROW WHEN (NEW.ID = 10) BEGIN DBMS_OUTPUT.PUT_LINE('Novo ID igual a 10'); END; -- TESTE SELECT * FROM TB_AUX; INSERT INTO TB_AUX VALUES(9,'M'); INSERT INTO TB_AUX VALUES(10,'N'); INSERT INTO TB_AUX VALUES(11,'O'); DROP TRIGGER AFT_WHEN;

41 Exemplo 6: cláusula WHEN CREATE OR REPLACE TRIGGER Print_salary_changes BEFORE DELETE OR INSERT OR UPDATE ON emp FOR EACH ROW WHEN (NEW.EMPNO > 0) DECLARE sal_diff number; BEGIN sal_diff := :NEW.SAL - :OLD.SAL; dbms_output.put('old salary: ' :OLD.sal); dbms_output.put('new salary: ' :NEW.sal); dbms_output.put_line('diff: ' sal_diff ); END;

42 Trigger instead of para Visões CREATE VIEW VW_AUX AS SELECT * FROM TB_AUX; CREATE OR REPLACE TRIGGER TR_IO INSTEAD OF INSERT ON VW_AUX FOR EACH ROW BEGIN INSERT INTO TB_AUX VALUES(:NEW.ID, :NEW.NAME); END; -- TESTES SELECT * FROM VW_AUX; SELECT * FROM TB_AUX; INSERT INTO VW_AUX VALUES(99,'W');

43 SEQUÊNCIA DE DISPARO para triggers no Oracle BEFORE STATEMENT BEFORE ROW AFTER ROW CONSTRAINTS CHECK AFTER STATEMENT

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

Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi Programando em SQL Triggers, Stored Procedures e funções Objetivo Descrever as funcionalidades de triggers, store procedures e funções; Apresentar vantagens e benefícios; Criação e Gerenciamento de Store

Leia mais

SQL Gatilhos (Triggers)

SQL Gatilhos (Triggers) SQL Gatilhos (Triggers) Laboratório de Bases de Dados Gatilho (trigger) Bloco PL/SQL que é disparado de forma automática e implícita sempre que ocorrer um evento associado a uma tabela INSERT UPDATE DELETE

Leia mais

Triggers(Gatilhos) Tiago Alves de Oliveira

Triggers(Gatilhos) Tiago Alves de Oliveira Triggers(Gatilhos) Tiago Alves de Oliveira [email protected] Triggers (Gatilhos) Um TRIGGER ou gatilho associado a uma tabela, definido para ser disparado, respondendo a um evento em particular; Comandos

Leia mais

Linguagem SQL Restrições, Triggers e Views

Linguagem SQL Restrições, Triggers e Views FACULDADE INGÁ Unidade de Ensino Superior Ingá Ltda Ciência da Computação Linguagem SQL Restrições, Triggers e Views Prof. Erinaldo Sanches Nascimento Objetivos Especificar restrições mais gerais sobre

Leia mais

Oracle PL/SQL Triggers

Oracle PL/SQL Triggers BDDAD Bases de Dados Oracle PL/SQL Triggers Nelson Freire (ISEP LEI-BDDAD 2017/18) 1/39 Triggers Sumário Introdução Conceito de Trigger Tipos de Triggers Designações de um Trigger Triggers DML Características

Leia mais

BANCO DE DADOS TRIGGERS (GATILHOS) Prof. Fabiano Papaiz IFRN

BANCO DE DADOS TRIGGERS (GATILHOS) Prof. Fabiano Papaiz IFRN BANCO DE DADOS TRIGGERS (GATILHOS) Prof. Fabiano Papaiz IFRN Uma Trigger (ou gatilho) é uma estrutura presente na maioria dos SGBD s que permite que um determinado evento (código SQL) seja executado automaticamente

Leia mais

Avisos. Sumário. Atividade em lab Aula 29. Atividade em lab Aula 29. Programando com SQL Triggers EXERCÍCIO LAB SP. Vista da segunda prova

Avisos. Sumário. Atividade em lab Aula 29. Atividade em lab Aula 29. Programando com SQL Triggers EXERCÍCIO LAB SP. Vista da segunda prova Ciência da Computação GBC043 Sistemas de Banco de Dados Programando com SQL s Avisos Vista da segunda prova Data: 03/06 das 13:40 às 15:00h Local: sala 1B137 Profa. Maria Camila Nardini Barioni [email protected]

Leia mais

Material Teórico. Procedures, Functions, Exceptions e Triggers. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque

Material Teórico. Procedures, Functions, Exceptions e Triggers. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque Banco de Dados Material Teórico Procedures, Functions, Exceptions e Triggers Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque Revisão Textual: Prof. Ms. Claudio Brites Procedures, Functions,

Leia mais

Restrições de Integridade Semântica

Restrições de Integridade Semântica Restrições de Integridade Semântica Controle de valores válidos para os dados estados dos dados condizentes com os requisitos da aplicação transições de estados corretas O SGBD deve controlar esta integridade

Leia mais

Stored Procedures e Triggers

Stored Procedures e Triggers e Triggers Professor: Ricardo Luis dos Santos IFSUL 2015 Agenda Rotinas Armazenadas Stored Procedures Exemplos Triggers Exemplos Exercícios 2 Rotinas Armazendas Rotinas Armazenadas são um conjunto de comandos

Leia mais

IMPLEMENTAÇÃO DE BANCO DE DADOS

IMPLEMENTAÇÃO DE BANCO DE DADOS IMPLEMENTAÇÃO DE BANCO DE DADOS MODULO 2 LINGUAGEM SQL CONTEÚDO 2. LINGUAGEM SQL 2.1 Linguagens de Definição de Dados (DDL) 2.1.1 Criação de tabela: CREATE 2.1.2 Alteração de Tabela: ALTER 2.1.3 Exclusão

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando

Leia mais

Funções Definidas pelo Usuário

Funções Definidas pelo Usuário BD II (SI 587) Funções Definidas pelo Usuário Prof. Josenildo Silva [email protected] Funções definidas pelo usuário Funções precisam obrigatoriamente retornar um valor Somente aceitam parâmetros do

Leia mais

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

Banco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas 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

Leia mais

FAPLAN - Faculdade Anhanguera Passo Fundo Gestão da Tecnologia da Informação Banco de Dados II Prof. Eder Pazinatto Stored Procedures Procedimento armazenados dentro do banco de dados Um Stored Procedure

Leia mais

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva. Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva. Seja então o conjunto de entidades pessoa, com os atributos bi_pessoa, nome_pessoa e morada_pessoa,

Leia mais

BD II (SI 587) Procedimentos Armazenados

BD II (SI 587) Procedimentos Armazenados BD II (SI 587) Procedimentos Armazenados Josenildo Silva [email protected] MOTIVAÇÃO Contexto: Sistemas em 2 camadas Contexto: Sistemas em 3 camadas Problema 1: Alto volume de dados na rede Como reduzir

Leia mais

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger A tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco

Leia mais

Oracle 10g: SQL e PL/SQL

Oracle 10g: SQL e PL/SQL Oracle 10g: SQL e PL/SQL PL/SQL: Visão Geral Enzo Seraphim Visão Geral Vantagens de PL/SQL Suporte total à linguagem SQL Total integração com o Oracle Performance Redução da comunicação entre a aplicação

Leia mais

Sistemas de Informação

Sistemas de Informação Sistemas de Informação Rules and Triggers André Restivo Sistemas de Informação 2006/07 Rules e Triggers Nem todas as restrições podem ser definidas usando os mecanismos que estudamos anteriormente: - CHECK

Leia mais

TRIGGER e SEGURANÇA. Prof. Edson Thizon

TRIGGER e SEGURANÇA. Prof. Edson Thizon TRIGGER e SEGURANÇA Prof. Edson Thizon 1 Restrição de Integridade Restrição de integridade Uma regra que deve ser obedecida por todos estados da base de dados que são considerados consistentes. Especificação

Leia mais

Administração de Banco de Dados

Administração de Banco de Dados Administração de Banco de Dados Aula 9 Prof. Marcos Alexandruk Aula 9 Visões (Views) Visões regulares Visões materializadas Visões de objeto Uma visão (view) é uma representação lógica de uma ou mais tabelas.

Leia mais

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho [email protected] www.diemesleno.com.br

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho diemesleno@iftm.edu.br www.diemesleno.com.br BANCO DE DADOS info 3º ano Prof. Diemesleno Souza Carvalho [email protected] www.diemesleno.com.br Na última aula estudamos Unidade 4 - Projeto Lógico Normalização; Dicionário de Dados. Arquitetura

Leia mais

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

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL Prof. Ms. Luiz Alberto Contato: [email protected] Linguagem de Programação de Banco de Dados Triggers em PostgreSQL Todos os bancos de dados comerciais possuem uma linguagem procedural auxiliar para a

Leia mais

SQL Procedural. Josino Rodrigues Neto [email protected]

SQL Procedural. Josino Rodrigues Neto josinon@gmail.com SQL Procedural Josino Rodrigues Neto [email protected] SQL Procedural Agregada em SQL-92 As ferramentas têm nomes para suas linguagens SQL procedurais/embutidas Oracle : PL/SQL Postgres PL/Pgsql SQL Server

Leia mais

trigger insert, delete, update

trigger insert, delete, update 1 Um trigger é um conjunto de instruções SQL armazenadas no catalogo da BD Pertence a um grupo de stored programs do MySQL Executado quando um evento associado com uma tabela acontece: insert, delete,

Leia mais

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

Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I Considere o diagrama relacional da Figura 1 e escreva os comandos SQL para executar os exercícios abaixo. Figure 1 Diagrama relacional.

Leia mais

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger a tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco

Leia mais

ESTUDO DE CASO EM PL/SQL

ESTUDO DE CASO EM PL/SQL ESTUDO DE CASO EM PL/SQL O sistema de pedidos da XDK Esportes. Vamos criar um pequeno sistema de pedidos para uma loja de esportes, vamos implementar as regras de um negócio utilizando a linguagem PL/SQL

Leia mais

Tabelas. Banco de Dados I MySQL

Tabelas. Banco de Dados I MySQL FACULDADE ANGLO AMERICANO FOZ DO IGUAÇU Curso de Ciência da Computação 5º Período Disciplina: Banco de Dados I Prof. Erinaldo Sanches Nascimento Tabelas Banco de Dados I MySQL Linguagem de Definição de

Leia mais

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

Triggers. um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre. Triggers um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre. o evento pode ser INSERT, UPDATE, ou DELETE. o trigger pode ser accionado imediatamente

Leia mais

Triggers no PostgreSQL

Triggers no PostgreSQL Triggers no PostgreSQL Traduzido do manual do PostgreSQL Pode-se utilizar PL/pqSQL para a definição de triggers (gatilhos). Um procedimento do tipo trigger é criado com o comando CREATE FUNCTION, declarando

Leia mais

Bancos de Dados I. Integridade semântica

Bancos de Dados I. Integridade semântica Bancos de Dados I PUC-Rio Departamento de Informática (DI) Eng./Ciência da Computação e Sist. Informação Contrôle de Integridade em SGBDs: procedimentos armazenados, gatilhos e funções Prof. [email protected]

Leia mais

Restrições ao Domínio Integridade Referencial Asserções Triggers Segurança e Autorizações

Restrições ao Domínio Integridade Referencial Asserções Triggers Segurança e Autorizações Capítulo 5: Integridade e Segurança Restrições ao Domínio Integridade Referencial Asserções Triggers Segurança e Autorizações 1 Triggers Um trigger é um comando que é executado automaticamente pelo sistema,

Leia mais

Triggers e mais... Instituto Militar de Engenharia IME 1o. Semestre/2005 Triggers Propósito mais amplo que restrições Restrições onde se explicita o evento Regras event-condition-action (ECA) Eventos:

Leia mais

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

Triggers e Regras. Fernando Lobo. Base de Dados, Universidade do Algarve Triggers e Regras Fernando Lobo Base de Dados, Universidade do Algarve 1 / 14 Triggers Um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Leia mais

Sistemas de Informação e Bases de Dados 2012/2013. Stored Procedures e Triggers

Sistemas de Informação e Bases de Dados 2012/2013. Stored Procedures e Triggers Sistemas de Informação e Bases de Dados 2012/2013 Stored Procedures e Triggers Alberto Sardinha Bibliografia MSDN http://msdn.microsoft.com 1 Funções e Procedimentos SQL suporta funções e procedimentos

Leia mais

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

BD Oracle. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04 BD Oracle SGBD Oracle Licenciatura em Engenharia Informática e Computação Bases de Dados 2003/04 BD Oracle Introdução aos SGBD Base de Dados Colecção de dados que descrevem alguma realidade Sistema de

Leia mais

Banco de Dados I Introdução SQL

Banco de Dados I Introdução SQL Banco de Dados I Introdução SQL Frederico Queiroga [email protected] https://sites.google.com/site/fredericoqueiroga/ Linguagem SQL Aspectos Gerais: Independência do fabricante: Está incorporada

Leia mais

Marcos Alexandruk Marcos Alexandruk

Marcos Alexandruk Marcos Alexandruk Marcos Alexandruk [email protected] Apresentação disponível em: www.dba.net.br/mysql.pdf Parte I: Download e Instalação MySQL - Download www.mysql.com/downloads MySQL - Download MySQL - Download MySQL

Leia mais

Banco de Dados Avançados Banco de Dados Ativo

Banco de Dados Avançados Banco de Dados Ativo Universidade Federal de Pernambuco Centro de Informática Banco de Dados Avançados Banco de Dados Ativo Equipe: Felipe Cavalcante Fernando Kakimoto Marcos Corrêa Sumário 1. Mini-Mundo... 3 1.1 Entidades...

Leia mais

Tratamento de Exceções

Tratamento de Exceções Tratamento de Exceções Laboratório de Bases de Dados Tratamento de Exceções Exceções erros e imprevistos que podem ocorrer durante a execução de um bloco PL/SQL SGBD ao encontrar um erro ou um imprevisto,

Leia mais

26/04/2017 Triggers no SQL Server: teoria e prática aplicada em uma situação real

26/04/2017 Triggers no SQL Server: teoria e prática aplicada em uma situação real www.devmedia.com.br [versão para impressão] Link original: http://www.devmedia.com.br/articles/viewcomp.asp?comp=28194 Triggers no SQL Server: teoria e prática aplicada em uma situaçã o real Veja neste

Leia mais

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas

Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas Banco de dados Conteúdo: DDL Prof. Patrícia Lucas O mysql MySQL Workbench é uma ferramenta de design de banco de dados visual que integra o desenvolvimento SQL, administração, design de banco de dados,

Leia mais

Create Sequence Cria uma sequence. Uma sequence é um objeto que permite vários usuários gerarem valores inteiros sem repetição.

Create Sequence Cria uma sequence. Uma sequence é um objeto que permite vários usuários gerarem valores inteiros sem repetição. Conceitos PL/Sql Create Sequence Cria uma sequence. Uma sequence é um objeto que permite vários usuários gerarem valores inteiros sem repetição. Sintaxe CREATE SEQUENCE [schema.]sequence [INCREMENT BY

Leia mais

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix Ingress SQL

Leia mais

Banco de Dados II. PL/SQL - Procedures -Cursor - Funções. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.

Banco de Dados II. PL/SQL - Procedures -Cursor - Funções. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL. Banco de Dados II PL/SQL - Procedures -Cursor - Funções Prof. Rodrigo Rocha [email protected] http://www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha [email protected] Ementa

Leia mais

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka Aula de SQL Comandos DDL André Luiz de Oliveira Eduardo Raul Hruschka E-mail: [email protected] [email protected] Agenda Instalação do MySQL e Workbench Comandos DDL Data Definition Language Criação

Leia mais

Triggers em SQLite. Fernando Lobo. Base de Dados, Universidade do Algarve

Triggers em SQLite. Fernando Lobo. Base de Dados, Universidade do Algarve Triggers em SQLite Fernando Lobo Base de Dados, Universidade do Algarve 1 / 15 Triggers Um trigger permite que uma determinada sequência de comandos SQL seja accionada quando um determinado evento ocorre.

Leia mais

f. Exemplo: verificar condição de aprovação de alunos

f. Exemplo: verificar condição de aprovação de alunos Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: B1SGB - Sistemas Gerenciadores de Banco de Dados Memória de aula Semana 17 1) Expressões CASE a. Tem a mesma finalidade que nas linguagens

Leia mais

SQL Linguagem de Definição de Dados

SQL Linguagem de Definição de Dados SQL Linguagem de Definição de Dados Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais

Leia mais

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

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos Bases de Dados Stored procedures e triggers Introdução às funções e procedimentos SQL suporta funções e procedimentos úteis com tipos de dados específicos p.ex. objectos geométricos, imagens intersecção

Leia mais

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

PL/pgSQL. Introdução. Introdução. Introdução Introdução PL/pgSQL Banco de Dados II Prof. Guilherme Tavares de Assis PL/pgSQL (Procedural Language for the PostgreSQL) é uma linguagem procedural carregável desenvolvida para o SGBD PostgreSQL, que possui

Leia mais

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

PROCEDIMENTOS ARMAZENADOS (Stored Procedures) PROCEDIMENTOS ARMAZENADOS (Stored Procedures) 1. Introdução Stored Procedure é um conjunto de comandos, ao qual é atribuído um nome. Este conjunto fica armazenado no Banco de Dados e pode ser chamado a

Leia mais

Fundamentos de Programação ORACLE: SQL. Prof. Walter Gima

Fundamentos de Programação ORACLE: SQL. Prof. Walter Gima Fundamentos de Programação ORACLE: SQL. 1 Prof. Walter Gima [email protected] ALIAS RELACIONAMENTOS TO_CHAR SYSDATE ROWNUM CONCATENAÇÃO PROCEDURES FUNCTIONS 2 ALIAS Utilizado para facilitar o uso

Leia mais

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS Exemplos de Scripts SQL (PostgreSQL) Pizzaria 1 2 Criação de BANCO DE DADOS CREATE DATABASE nome_do_banco; CREATE DATABASE pizzaria; Criação de TABELAS SOMENTE COM CHAVE PRIMÁRIA CREATE TABLE nome_da_tabela

Leia mais

Disciplina: Banco de Dados Tema: SQL Parte 2

Disciplina: Banco de Dados Tema: SQL Parte 2 Disciplina: Banco de Dados Tema: SQL Parte 2 PROFESSOR: DANILO MONTEIRO EMAIL: [email protected] O que foi visto na aula passada? create database Drop database Create table Drop table [email protected]

Leia mais

Logado no OracleXE vamos acessar a opção:

Logado no OracleXE vamos acessar a opção: Tutorial PL/SQL O PL/SQL é uma linguagem procedural que roda diretamente no núcleo do SGBD Oracle. O objetivo deste tutorial é mostrar a criação de funções e procedimentos em PL/SQL, interagindo com comandos

Leia mais

#nao fazer #Só pode fazer para testar... drop database if exists modelo4; create database modelo4; use modelo4; #Auto_relacionamento #Pessoa = Conjuge = filho #Observar para Criticar #O que achou? # Deixando

Leia mais

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

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre BANCO DE DADOS BANCO DE DADOS Prof. Patrícia Lucas 3º Trimestre ROTEIRO PARA O 3º TRIMESTRE 1. O MySQL DDL SQL 1. Como funciona o MySQL 2. Como criar um banco de dados no MySQL 3. Como criar tabelas: comandos

Leia mais

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

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira [email protected] Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

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

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011 Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de

Leia mais

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA total e disjuntiva.

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA total e disjuntiva. Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA total e disjuntiva. A possible solution to ensure, in APEX environment, the consistency of a total and disjunctive

Leia mais

Rápida revisão do Modelo Relacional

Rápida revisão do Modelo Relacional Rápida revisão do Modelo Relacional Conceito de relação Tuplas e atributos Rápida revisão do Modelo Relacional Regras de integridade Entidade: Deve existir uma chave primária com valor único e não-nulo.

Leia mais

Oracle Comandos para Processamento de Transações

Oracle Comandos para Processamento de Transações Oracle Comandos para Processamento de Transações Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Transação Unidade lógica de trabalho contém um ou mais comandos SQL para manipulação

Leia mais

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

GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL GBC043 - Sistemas de Banco de Dados Funções e Gatilhos no PostgreSQL Ilmério Reis da Silva [email protected] www.facom.ufu.br/~ilmerio/sbd UFU/FACOM/BCC Página 2 Prgrama Teórico/Prático - SQL Linguagem

Leia mais

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

Bases de Dados 2012/2013 Funções/procedimentos e triggers. Helena Galhardas 2012 IST. Bibliografia. Manual referência PostgreSQL Bases de Dados 2012/2013 Funções/procedimentos e triggers em PostgreSQL Helena Galhardas Bibliografia Manual referência PostgreSQL http://www.postgresql.org/docs/9.2/static/ plpgsql.html http://www.postgresql.org/docs/9.2/static/

Leia mais

Aula 06 Sistemas Embarcados LT38C

Aula 06 Sistemas Embarcados LT38C Aula 06 Sistemas Embarcados LT38C Prof. Lucas Ricken Garcia 2017/1 Introdução a Banco de Dados Coleção de dados relacionados. Fatos conhecidos que podem ser registrados e possuem significado implícito.

Leia mais

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Structured Query Language (SQL) Ambiente Simplificado de um SGBD Structured Query Language (SQL) Ambiente Simplificado de um SGBD 2 1 Características dos SGBDs Natureza auto-contida de um sistema de banco de dados: metadados armazenados num catálogo ou dicionário de

Leia mais

S Q L Asserções, Visões e Técnicas de Programação. Daniel Bordignon Cassanelli Fernando Luiz Grando Pedro Patitucci Finamore

S Q L Asserções, Visões e Técnicas de Programação. Daniel Bordignon Cassanelli Fernando Luiz Grando Pedro Patitucci Finamore S Q L Asserções, Visões e Técnicas de Programação Daniel Bordignon Cassanelli Fernando Luiz Grando Pedro Patitucci Finamore Resumo Apresentaremos os seguintes tópicos: - Especificação de restrições genéricas

Leia mais

Introdução à linguagem SQL

Introdução à linguagem SQL Introdução à linguagem SQL 1 Histórico A linguagem de consulta estruturada (SQL - Structured Query Language) foi desenvolvida pela empresa IBM, no final dos anos 70. O primeiro banco de dados comercial

Leia mais

BCD29008 Banco de dados

BCD29008 Banco de dados BCD29008 Banco de dados Linguagem SQL Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José [email protected] http://docente.ifsc.edu.br/mello/bcd 21 de agosto de 2017

Leia mais

PL/pgSQL por Diversão e Lucro

PL/pgSQL por Diversão e Lucro PL/pgSQL por Diversão e Lucro Roberto Mello 3a. Conferência Brasileira de PostgreSQL - PGCon-BR Campinas - 2009 1 Objetivos Apresentar as partes principais do PL/pgSQL Apresentar casos de uso comum do

Leia mais

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

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS. Profº Erinaldo Sanches Nascimento UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO CURSORS Profº Erinaldo Sanches Nascimento Introdução Cursor é usado para percorrer um conjunto de linhas retornadas por uma consulta

Leia mais

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

TRIGGERS Temas abordados

TRIGGERS Temas abordados MYSQL TRIGGERS TRIGGERS Temas abordados 1 - Introdução ao SQL Triggers SQL Trigger é uma instrução SQL ou um conjunto de instruções SQL,que fica armazenado, é será activado ou disparado quando um evento

Leia mais

BDII SQL TRANSAÇÃO Revisão 2

BDII SQL TRANSAÇÃO Revisão 2 exatasfepi.com.br BDII SQL TRANSAÇÃO Revisão 2 André Luís Duarte Honra a teu pai e a tua mãe (que é o primeiro mandamento com promessa), para que te vá bem, e sejas de longa vida sobre a terra.(ef 6:2,3)

Leia mais