SlideShare uma empresa Scribd logo
Utilizando Views, Stored 
Procedures e Triggers 
Daniel Cosme Mendonça Maia 
(daniel_maiabr@yahoo.com.br)
Views (Visões) 
 As views também são chamadas de 
tabelas virtuais ou derivadas; 
 Os dados nessas tabelas virtuais são 
derivados de tabelas da base de dados 
ou views previamente definidas; 
 Há possíveis limitações nas operações 
de atualização que podem ser aplicadas 
à views, mas não existe quaisquer 
limitações sobre a consulta de uma view. 
2
Views (Visões) 
 A criação de uma view é útil quando: 
◦ Precisamos referenciar determinada(s) 
tabela(s) com frequência; ou 
◦ Quando precisamos realizar consultas 
complexas. 
3
Views (Visões): Vantagens 
 Algumas vantagens do uso das views: 
◦ Controle sobre o que o usuário pode ver. (É possível 
selecionar os campos que o usuário terá acesso) 
◦ Simplifica a consulta. (Criando uma view não é 
necessário fornecer parâmetros para consulta toda 
vez que a mesma será executada) 
◦ Segurança. (Uma view é um objeto do banco de 
dados, portanto, é possível atribuir permissões de 
usuário) 
◦ Exportação de dados. (Os dados em uma view 
podem ser exportados utilizando utilitários 
específicos dos SGBDs). 
4
Views (Visões): Sintaxe 
 Sintaxe de criação/alteração de uma 
view: 
CREATE VIEW nome_visao AS 
declararacao_select; 
ALTER VIEW nome_visao AS 
declararacao_select; 
5
Views (Visões): Exemplo 
 Exemplo de criação de uma view: 
6
Views (Visões): Sintaxe 
 Sintaxe de remoção de uma view: 
DROP VIEW nome_visao; 
7
Stored Procedures 
 Stored Procedures ou Procedimentos 
Armazenados, são um conjunto de 
declarações SQL armazenadas no 
servidor. 
8
Stored Procedures 
 Procedimentos Armazenados são 
utilizados principalmente quando: 
◦ Aplicações clientes são escritas em 
diferentes linguagens ou trabalham em 
diferentes plataformas, mas precisam 
executar as mesmas operações de banco de 
dados; 
◦ A segurança é primordial. Bancos, por 
exemplo, utilizam funções e procedimentos 
armazenados para todas operações comuns. 
Isto provê consistência e segurança, pois 
cada operação é devidamente registrada. 
9
Stored Procedures 
 Rotinas armazenadas podem fornecer 
melhor desempenho pois menos 
informação precisa ser enviada entre 
o cliente e o servidor; 
 A desvantagem é que aumenta-se a 
carga no servidor de banco de dados; 
 Permitem a criação de uma biblioteca 
de funções no servidor de banco de 
dados. 
10
Stored Procedures: Sintaxe 
 Sintaxe de criação de um procedure: 
CREATE PROCEDURE 
nome_procedimento (parâmetros) 
BEGIN 
declarações_de_rotina_sql; 
END 
11
Stored Procedures: Sintaxe 
 Sintaxe de criação de um procedure: 
CREATE PROCEDURE 
nome_procedimento (parâmetros) 
BEGIN 
declarações_de_rotina_sql; 
END 
Observação: Os parâmetros de um procedimento podem ser de IN 
(entrada), OUT (saída), ou INOUT (entrada/saída). O tipo dos 
parâmetros podem ser de algum tipo de dado válido, por exemplo, INT, 
CHAR, DATE, etc. 
12
Stored Procedures: Exemplo 
 Exemplo criação de um procedure: 
13
Functions: Sintaxe 
 Sintaxe de criação de uma function: 
CREATE FUNCTION nome_função 
(parâmetros) RETURNS 
tipo_retorno 
BEGIN 
declarações_de_rotina_sql; 
RETURN retorno_funcao; 
END 
14
Functions: Sintaxe 
 Sintaxe de criação de uma function: 
CREATE FUNCTION nome_função 
(parâmetros) RETURNS 
tipo_retorno 
BEGIN 
declarações_de_rotina_sql; 
RETURN retorno_funcao; 
END 
Observação: Os parâmetros de uma função podem ser apenas IN 
(entrada). A exemplo dos procedimentos, o tipo dos parâmetros podem 
ser de algum tipo de dado válido, por exemplo, INT, CHAR, DATE, etc. 
15
Functions: Exemplo 
 Exemplo criação de uma function: 
16
Triggers (Gatilhos) 
 Trigger é um objeto do banco de 
dados que está associado a uma 
tabela, e é ativado quando um evento 
particular ocorre na tabela; 
 Principais usos são: 
◦ Executar verificações de valores; ou 
◦ Fazer cálculos sobre os valores 
informados em uma atualização. 
17
Triggers (Gatilhos) 
 O Trigger é ativado quando uma 
declaração de INSERT, UPDATE ou 
DELETE ocorre na tabela associada; 
 O disparo do "gatilho" pode ser 
configurado para ocorrer antes ou 
depois do evento de disparo. 
18
Triggers (Gatilhos) 
19
Triggers (Gatilhos): Exemplo 
01 
 Exemplo de criação de um trigger: 
20
Triggers (Gatilhos): Exemplo 
01 
 Disparo de um trigger: 
21
Triggers (Gatilhos): Exemplo 
02 
 Trigger de verificação de valores: 
22
Referências 
 Documentação oficial do MySQL: 
◦ http://dev.mysql.com/doc/refman/5.5/en/create-view.html 
◦ http://dev.mysql.com/doc/refman/5.5/en/create-procedure. 
html 
◦ http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions. 
html 
◦ http://dev.mysql.com/doc/refman/5.5/en/set-statement.html 
◦ http://dev.mysql.com/doc/refman/5.5/en/trigger-syntax.html 
 Elmasri, Ramez. Sistemas de Banco de Dados. 6ª ed. 
São Paulo: Pearson Addison Wesley, 2011. 
 Silberschatz, Abraham; Korth, Henry F.; Sudarshan, S. 
Sistema de Banco de Dados. São Paulo: Makron 
Books, 1999. 
23

Mais conteúdo relacionado

Mais procurados

Stored Procedures and Triggers
Stored Procedures and TriggersStored Procedures and Triggers
Stored Procedures and Triggersflaviognm
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScriptBruno Catão
 
Introdução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareIntrodução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareClaudia Melo
 
Linguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesLinguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesOziel Moreira Neto
 
Apresentação HTML e CSS
Apresentação HTML e CSSApresentação HTML e CSS
Apresentação HTML e CSSledsifes
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento webRodrigo Rodrigues
 
Comandos DDL para o MySQL
Comandos DDL para o MySQLComandos DDL para o MySQL
Comandos DDL para o MySQLArley Rodrigues
 
PHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosPHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosDaniel Brandão
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Marcos Castro
 
Introdução ao GitHub e Git
Introdução ao GitHub  e GitIntrodução ao GitHub  e Git
Introdução ao GitHub e GitIgor Steinmacher
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoRangel Javier
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Leinylson Fontinele
 

Mais procurados (20)

Stored Procedures and Triggers
Stored Procedures and TriggersStored Procedures and Triggers
Stored Procedures and Triggers
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Introdução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareIntrodução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de Software
 
Linguagem de Programação Java para Iniciantes
Linguagem de Programação Java para IniciantesLinguagem de Programação Java para Iniciantes
Linguagem de Programação Java para Iniciantes
 
Apresentação HTML e CSS
Apresentação HTML e CSSApresentação HTML e CSS
Apresentação HTML e CSS
 
Aula 4 banco de dados
Aula 4   banco de dados Aula 4   banco de dados
Aula 4 banco de dados
 
Introdução sobre desenvolvimento web
Introdução sobre desenvolvimento webIntrodução sobre desenvolvimento web
Introdução sobre desenvolvimento web
 
Comandos DDL para o MySQL
Comandos DDL para o MySQLComandos DDL para o MySQL
Comandos DDL para o MySQL
 
PHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosPHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de Dados
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
 
Introdução ao GitHub e Git
Introdução ao GitHub  e GitIntrodução ao GitHub  e Git
Introdução ao GitHub e Git
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
Introdução CSS
Introdução CSSIntrodução CSS
Introdução CSS
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
Aula01-JavaScript
Aula01-JavaScriptAula01-JavaScript
Aula01-JavaScript
 
Aula02 - JavaScript
Aula02 - JavaScriptAula02 - JavaScript
Aula02 - JavaScript
 
Aula03 - JavaScript
Aula03 - JavaScriptAula03 - JavaScript
Aula03 - JavaScript
 
Banco de Dados - MySQL Basico
Banco de Dados - MySQL BasicoBanco de Dados - MySQL Basico
Banco de Dados - MySQL Basico
 
Aula 2 - Comandos DDL DML DQL E DCL
Aula 2 - Comandos DDL DML DQL E DCLAula 2 - Comandos DDL DML DQL E DCL
Aula 2 - Comandos DDL DML DQL E DCL
 
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
Banco de Dados I - Aula 06 - Banco de Dados Relacional (Modelo Lógico)
 

Destaque

Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...
Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...
Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...MySQL Brasil
 
Introdução a banco de dados
Introdução a banco de dadosIntrodução a banco de dados
Introdução a banco de dadosOdwald Schreder
 
Banco de Dados - Tipos de Dados
Banco de Dados - Tipos de DadosBanco de Dados - Tipos de Dados
Banco de Dados - Tipos de DadosNatanael Simões
 
Mysql para aplicações Web escaláveis
Mysql para aplicações Web escaláveisMysql para aplicações Web escaláveis
Mysql para aplicações Web escaláveisElton Minetto
 
Arquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dadosArquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dadosdiogocbj
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLFábio Delboni
 
Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)
Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)
Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)Gustavo Zimmermann
 
Open Source - Código Aberto
Open Source - Código AbertoOpen Source - Código Aberto
Open Source - Código AbertoCarlos J. Costa
 
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)Gleyciana Garrido
 
Segurança em banco de dados
Segurança em banco de dadosSegurança em banco de dados
Segurança em banco de dadosArthur Azevedo
 

Destaque (14)

Mysql for IBMers
Mysql for IBMersMysql for IBMers
Mysql for IBMers
 
Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...
Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...
Otimizando a segurança, o desempenho e a disponibilidade com o MySQL Enterpri...
 
Introdução a banco de dados
Introdução a banco de dadosIntrodução a banco de dados
Introdução a banco de dados
 
Banco de Dados - Tipos de Dados
Banco de Dados - Tipos de DadosBanco de Dados - Tipos de Dados
Banco de Dados - Tipos de Dados
 
Slide index treinar
Slide index treinarSlide index treinar
Slide index treinar
 
Advanced SQL
Advanced SQLAdvanced SQL
Advanced SQL
 
Mysql para aplicações Web escaláveis
Mysql para aplicações Web escaláveisMysql para aplicações Web escaláveis
Mysql para aplicações Web escaláveis
 
Arquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dadosArquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dados
 
TOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQLTOTVS LINHA RM TREINAMENTO SQL
TOTVS LINHA RM TREINAMENTO SQL
 
Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)
Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)
Banco de Dados II: Dinâmica de Perguntas e Respostas (aula 4)
 
Apostila banco de dados
Apostila banco de dadosApostila banco de dados
Apostila banco de dados
 
Open Source - Código Aberto
Open Source - Código AbertoOpen Source - Código Aberto
Open Source - Código Aberto
 
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
Projeto de Banco de Dados: Gerenciamento de Locadora de Vídeo (parte escrita)
 
Segurança em banco de dados
Segurança em banco de dadosSegurança em banco de dados
Segurança em banco de dados
 

Semelhante a Utilizando views, stored procedures e triggers

Semelhante a Utilizando views, stored procedures e triggers (20)

Stored procedure
Stored procedureStored procedure
Stored procedure
 
Apresentação interbase (atualização 2)
Apresentação interbase (atualização 2)Apresentação interbase (atualização 2)
Apresentação interbase (atualização 2)
 
Banco de Dados - Transações e Controle de Concorrência
Banco de Dados - Transações e Controle de ConcorrênciaBanco de Dados - Transações e Controle de Concorrência
Banco de Dados - Transações e Controle de Concorrência
 
Oracleplsql
OracleplsqlOracleplsql
Oracleplsql
 
Banco de Dados - conceitos, usuários, características
Banco de Dados - conceitos, usuários, característicasBanco de Dados - conceitos, usuários, características
Banco de Dados - conceitos, usuários, características
 
Triggers
TriggersTriggers
Triggers
 
Java13
Java13Java13
Java13
 
DB2 Express-C
DB2 Express-CDB2 Express-C
DB2 Express-C
 
Net Coders Ladies SQL
Net Coders Ladies SQL Net Coders Ladies SQL
Net Coders Ladies SQL
 
ASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre TarifaASP.NET MVC - Alexandre Tarifa
ASP.NET MVC - Alexandre Tarifa
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Stored procedure
Stored procedureStored procedure
Stored procedure
 
Fazendo Um Elefante Passar Debaixo da Porta - FISL
Fazendo Um Elefante Passar Debaixo da Porta - FISLFazendo Um Elefante Passar Debaixo da Porta - FISL
Fazendo Um Elefante Passar Debaixo da Porta - FISL
 
Treinamento Data Guard
Treinamento Data GuardTreinamento Data Guard
Treinamento Data Guard
 
Tutorial struts
Tutorial strutsTutorial struts
Tutorial struts
 
Views Oracle Database
Views Oracle DatabaseViews Oracle Database
Views Oracle Database
 
Aula09 - PL SQL - Subprogramas.pptx
Aula09 - PL SQL - Subprogramas.pptxAula09 - PL SQL - Subprogramas.pptx
Aula09 - PL SQL - Subprogramas.pptx
 
Apostila oracle
Apostila oracleApostila oracle
Apostila oracle
 
CDI Extensions e DeltaSpike
CDI Extensions e DeltaSpikeCDI Extensions e DeltaSpike
CDI Extensions e DeltaSpike
 
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGI
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGIFazendo Um Elefante Passar Debaixo da Porta - CONSEGI
Fazendo Um Elefante Passar Debaixo da Porta - CONSEGI
 

Utilizando views, stored procedures e triggers

  • 1. Utilizando Views, Stored Procedures e Triggers Daniel Cosme Mendonça Maia (daniel_maiabr@yahoo.com.br)
  • 2. Views (Visões)  As views também são chamadas de tabelas virtuais ou derivadas;  Os dados nessas tabelas virtuais são derivados de tabelas da base de dados ou views previamente definidas;  Há possíveis limitações nas operações de atualização que podem ser aplicadas à views, mas não existe quaisquer limitações sobre a consulta de uma view. 2
  • 3. Views (Visões)  A criação de uma view é útil quando: ◦ Precisamos referenciar determinada(s) tabela(s) com frequência; ou ◦ Quando precisamos realizar consultas complexas. 3
  • 4. Views (Visões): Vantagens  Algumas vantagens do uso das views: ◦ Controle sobre o que o usuário pode ver. (É possível selecionar os campos que o usuário terá acesso) ◦ Simplifica a consulta. (Criando uma view não é necessário fornecer parâmetros para consulta toda vez que a mesma será executada) ◦ Segurança. (Uma view é um objeto do banco de dados, portanto, é possível atribuir permissões de usuário) ◦ Exportação de dados. (Os dados em uma view podem ser exportados utilizando utilitários específicos dos SGBDs). 4
  • 5. Views (Visões): Sintaxe  Sintaxe de criação/alteração de uma view: CREATE VIEW nome_visao AS declararacao_select; ALTER VIEW nome_visao AS declararacao_select; 5
  • 6. Views (Visões): Exemplo  Exemplo de criação de uma view: 6
  • 7. Views (Visões): Sintaxe  Sintaxe de remoção de uma view: DROP VIEW nome_visao; 7
  • 8. Stored Procedures  Stored Procedures ou Procedimentos Armazenados, são um conjunto de declarações SQL armazenadas no servidor. 8
  • 9. Stored Procedures  Procedimentos Armazenados são utilizados principalmente quando: ◦ Aplicações clientes são escritas em diferentes linguagens ou trabalham em diferentes plataformas, mas precisam executar as mesmas operações de banco de dados; ◦ A segurança é primordial. Bancos, por exemplo, utilizam funções e procedimentos armazenados para todas operações comuns. Isto provê consistência e segurança, pois cada operação é devidamente registrada. 9
  • 10. Stored Procedures  Rotinas armazenadas podem fornecer melhor desempenho pois menos informação precisa ser enviada entre o cliente e o servidor;  A desvantagem é que aumenta-se a carga no servidor de banco de dados;  Permitem a criação de uma biblioteca de funções no servidor de banco de dados. 10
  • 11. Stored Procedures: Sintaxe  Sintaxe de criação de um procedure: CREATE PROCEDURE nome_procedimento (parâmetros) BEGIN declarações_de_rotina_sql; END 11
  • 12. Stored Procedures: Sintaxe  Sintaxe de criação de um procedure: CREATE PROCEDURE nome_procedimento (parâmetros) BEGIN declarações_de_rotina_sql; END Observação: Os parâmetros de um procedimento podem ser de IN (entrada), OUT (saída), ou INOUT (entrada/saída). O tipo dos parâmetros podem ser de algum tipo de dado válido, por exemplo, INT, CHAR, DATE, etc. 12
  • 13. Stored Procedures: Exemplo  Exemplo criação de um procedure: 13
  • 14. Functions: Sintaxe  Sintaxe de criação de uma function: CREATE FUNCTION nome_função (parâmetros) RETURNS tipo_retorno BEGIN declarações_de_rotina_sql; RETURN retorno_funcao; END 14
  • 15. Functions: Sintaxe  Sintaxe de criação de uma function: CREATE FUNCTION nome_função (parâmetros) RETURNS tipo_retorno BEGIN declarações_de_rotina_sql; RETURN retorno_funcao; END Observação: Os parâmetros de uma função podem ser apenas IN (entrada). A exemplo dos procedimentos, o tipo dos parâmetros podem ser de algum tipo de dado válido, por exemplo, INT, CHAR, DATE, etc. 15
  • 16. Functions: Exemplo  Exemplo criação de uma function: 16
  • 17. Triggers (Gatilhos)  Trigger é um objeto do banco de dados que está associado a uma tabela, e é ativado quando um evento particular ocorre na tabela;  Principais usos são: ◦ Executar verificações de valores; ou ◦ Fazer cálculos sobre os valores informados em uma atualização. 17
  • 18. Triggers (Gatilhos)  O Trigger é ativado quando uma declaração de INSERT, UPDATE ou DELETE ocorre na tabela associada;  O disparo do "gatilho" pode ser configurado para ocorrer antes ou depois do evento de disparo. 18
  • 20. Triggers (Gatilhos): Exemplo 01  Exemplo de criação de um trigger: 20
  • 21. Triggers (Gatilhos): Exemplo 01  Disparo de um trigger: 21
  • 22. Triggers (Gatilhos): Exemplo 02  Trigger de verificação de valores: 22
  • 23. Referências  Documentação oficial do MySQL: ◦ http://dev.mysql.com/doc/refman/5.5/en/create-view.html ◦ http://dev.mysql.com/doc/refman/5.5/en/create-procedure. html ◦ http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions. html ◦ http://dev.mysql.com/doc/refman/5.5/en/set-statement.html ◦ http://dev.mysql.com/doc/refman/5.5/en/trigger-syntax.html  Elmasri, Ramez. Sistemas de Banco de Dados. 6ª ed. São Paulo: Pearson Addison Wesley, 2011.  Silberschatz, Abraham; Korth, Henry F.; Sudarshan, S. Sistema de Banco de Dados. São Paulo: Makron Books, 1999. 23