On 11/25/06, Fabio Telles Rodriguez <[EMAIL PROTECTED]> wrote:

A idéia e debater sobre a concentração de inteligência da aplicação
dentro do banco de dados. Gostaria de saber a opinião das pessoas da
lista sobre o assunto, uma vez que acredito ser um assunto polêmico.


Muito bom artigo Fábio. Parabéns!
Comentando....
Você comentou bem sobre o desenvolvimento em camadas. Posso falar da minha
experiência nisto. Nós desenvolvemos o sistema de informação que concentra
os serviços disponibilizados pelo núcleo, em Perl usando um módulo de
interface com o PgSQL chamado DBIx::Class e um módulo ORM chamado
DBIx::Class::Schema::Loader, usamos tbm o framework MVC Catalyst. Realmente
a preocupação com qual banco utilizar fazendo uso deste módulos é quase
zero. O módulo Schema::Loader msm, traduz as tabelas do banco em classes e
já define métodos de acesso para os campos das tabelas. E o DBIx::Class
provê métodos descritivos que já montam o SQL referentes às instruções de
SELECT, INSERT, DELETE e UPDATE, desde as mais complexas a outras mais
simples. Porém, ainda assim, temos algumas funções em PL: Perl, PgSQL. Como
por exemplo para criar números de acessão alfanuméricos seqüênciais. Mas
nada impediria que isto fosse feito na aplicação. Como vc mesmo disse, não
existe uma regra sobre em qual camada colocar as regras de negócio.
Em relação as brechas que vc disse existir nas camadas de abstração, eu
particularmente ainda não encontrei nenhuma. As funcionalidades que vc citou
(prover auditabilidade, gerar logs e realizar a carga de dados complexos),
acredito que estas não sejam operações requisitadas no desenvolvimento do
código de uma aplicação. São feitas geralmente em scripts batch. E mais, o
DBIx::Class tem uma váriavel de ambiente que pode ser setada para prover o
log das operações realizadas no SGBD.
Quanto ao processamento de longas transações, isto varia de sistema para
sistema. Pode, por exemplo, haver necessidade de que seja executado um fluxo
de trabalho que possa conter processos externos à aplicação que estão
localizados em um servidor diferente do SGBD, como é nosso caso aqui, e
mais, possuem uma lista individual imensa de parâmetros que precisam ser
customizados e validados para cada usuário. É um caso especifico que não
permite a criação de uma função em PL para executar este fluxo de trabalho
dados seus requisitos.

Bom, é isto. Enfim, parabéns pelo artigo.
--
wallace reis
Núcleo de Biologia Computacional e
Gestão de Informações Biotecnológicas/LABBI
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a