29

Stored Procedures com PostgreSQL: porque usar

Embed Size (px)

Citation preview

Page 1: Stored Procedures com PostgreSQL:  porque usar
Page 2: Stored Procedures com PostgreSQL:  porque usar

Atmos Maciel

● Ciência da Computação;● Delphi / SQLServer;● Programação Web;● Mundo Ágil;

Page 3: Stored Procedures com PostgreSQL:  porque usar

O que é uma Stored Procedure?

Page 4: Stored Procedures com PostgreSQL:  porque usar

Notação SQLServercreate procedure “procedurename“(

< parâmetro1 TIPO >, < parâmetro2 TIPO > ...)ASBEGIN

< declare @variavelRetorno; >< procedure_body >< RETORNO OPCIONAL(return @variavelRetorno) >

END;

GOexecute[exec] procedurename (param1, param2);

Page 5: Stored Procedures com PostgreSQL:  porque usar

FUNCTIONS

Page 6: Stored Procedures com PostgreSQL:  porque usar

Functions PostgreSQL● Funções escritas em SQL;● Funções em linguagens de procedimento(PL/pgSQL, PL/php,

PL/Java);● Funções internas( round(), count(), max(), avg() );● Funções na Linguagem C;

Page 7: Stored Procedures com PostgreSQL:  porque usar

NotaçõesEm PHP:CREATE FUNCTION plphp_max(integer, integer) RETURNS integer AS $$

if ($args[0] > $args[1]) {return $args[0];

} else {return $args[1];

}$$ STRICT LANGUAGE 'plphp'

SELECT plphp_max(parameter0, parameter1);

Suporte a arrays PHP:

CREATE FUNCTION php_array() RETURNS text[ ][ ] AS $$

$return = array(array("Steven", "Klassen"),

array("Jonathan", "Daugherty"));

return $return;$$ LANGUAGE 'plphp';

SELECT php_array();

Page 8: Stored Procedures com PostgreSQL:  porque usar

NotaçãoCREATE FUNCTION func_escopo() RETURNS integer AS $$DECLARE

quantidade integer := 30;BEGIN

quantidade := 50;< body_function >

DECLARE quantidade integer := 80;

BEGIN< body_function >

END;RETURN quantidade;END; $$ LANGUAGE plpgsql;SELECT func_escopo();

Page 9: Stored Procedures com PostgreSQL:  porque usar

NotaçãoCREATE FUNCTION instr(varchar, integer) RETURNS integer AS $$DECLARE

v_string ALIAS FOR $1;index ALIAS FOR $2;

BEGIN< body_function>

END;

$$ LANGUAGE plpgsql;

Page 10: Stored Procedures com PostgreSQL:  porque usar

Ambiente: Banco de Dados bem feito

Page 11: Stored Procedures com PostgreSQL:  porque usar

Pesquisa

Page 12: Stored Procedures com PostgreSQL:  porque usar

Treta que ainda existe….

Page 13: Stored Procedures com PostgreSQL:  porque usar

Quando é interessante usar Functions no BD?

Page 14: Stored Procedures com PostgreSQL:  porque usar

Linguagens diferentes

Page 15: Stored Procedures com PostgreSQL:  porque usar

Reduz o código da aplicação

Page 16: Stored Procedures com PostgreSQL:  porque usar

Reduz o código da aplicação

Page 17: Stored Procedures com PostgreSQL:  porque usar

Ganho em processamento

Page 18: Stored Procedures com PostgreSQL:  porque usar

Segurança

Page 19: Stored Procedures com PostgreSQL:  porque usar

Performance?

Page 20: Stored Procedures com PostgreSQL:  porque usar

O lado negro da Força...

Page 21: Stored Procedures com PostgreSQL:  porque usar

Escalabilidade da Equipe

Page 22: Stored Procedures com PostgreSQL:  porque usar

Dependência do SGBD

Page 23: Stored Procedures com PostgreSQL:  porque usar

Sem suporte a OOP

Page 24: Stored Procedures com PostgreSQL:  porque usar

Testes automatizados

Page 25: Stored Procedures com PostgreSQL:  porque usar

Testes automatizados

Page 26: Stored Procedures com PostgreSQL:  porque usar

O que se faz hoje?

Page 27: Stored Procedures com PostgreSQL:  porque usar

Banco de Dados Aplicação

Page 28: Stored Procedures com PostgreSQL:  porque usar

Equilibrar no Banco de Dados

Page 29: Stored Procedures com PostgreSQL:  porque usar

Fim...