Le 14 janvier 2016 18:25:05 GMT-02:00, Saraiva Silva 
<[email protected]> a écrit :
>Isso é um assunto recorrente no meio da comunidade de desenvolvimento,
>e é
>quase unanimidade entre desenvolvedores a contrariedade em deixar as
>regras
>de negocio no banco. Mas eu nunca vi a opinião de DBAs a respeito.

Infelizmente, unanimidade entre desenvolvedores não quer dizer praticamente 
nada, a não ser popularidade, dadas as deficiências culturais e de formação na 
Informática.

Temos de olhar os fundamentos.  O único livro que já vi abordar isso do ponto 
de vista conceitual foi _What, not how_, do Chris(topher) J Date.

Resumindo: todos os argumentos para manter as regras de negócio são 
circunstanciais, decorrentes ou da cultura de determinadas pessoas ou 
organizações (tipicamente a síndrome do não-foi-inventado-aqui) ou do estado de 
determinado ferramental: deficiências em SGBDs ou preferências por determinado 
ambiente de programação.

Por outro lado, só no SGBD as regras podem ser implementadas (1) obrigatória e 
coerentemente, independente de eventuais defeitos ou mudanças em programas 
aplicativos; (2) eficientemente, com mínima latência e com o planejador 
escolhendo o melhor caminho de execução de acordo com o estado do sistema e dos 
dados; (3) sem duplicação de esforços; (3) declarativamente, de acordo com o 
modelo de dados.

Isso dito, ainda há as tais circunstâncias, que podem forçar uma escolha 
não-ideal por manter as regras fora da base de dados.  Mas muitas dessas 
circunstâncias não passam do uso de um SGBD ruim, que não tenha a riqueza de 
linguagens e ferramentas de desenvolvimento do PostgreSQL, ou ignorância desses 
recursos que o PostgreSQL oferece.

Neste sentido, faz falta concorrência.  Nenhum SGBD tem o ferramental de 
linguagens de programação e riqueza lógica do SQL que o PostgreSQL tem, e isso 
até mesmo faz com que muitos decidam não usar esses recursos em nome de certa 
portabilidade, que eu creio ilusória.  E muitos sistemas tornam-se muito piores 
do que poderiam por isso, usando apenas uma espécie de mínimo denominador 
comum, que nem sequer é realmente comum, do SQL e PLs.



-- 
skype:leandro.gfc.dutra?chat      Yahoo!: ymsgr:sendIM?lgcdutra
+55 (61) 3546 7191 (Net)        gTalk: xmpp:[email protected]
+55 (61) 9302 2691 (Vivo) ICQ/AIM: aim:GoIM?screenname=61287803
BRAZIL GMT−3  MSN: msnim:[email protected]
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a