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
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
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
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
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