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
