sábado, 15 de novembro de 2008

Experiência com um banco de dados Orientado a Objeto

No início da minha graduação, consegui um projeto para desenvolver durante as férias, foi o meu primeiro software comercial. Era uma aplicação desktop de gerenciamento de vendas para uma pequena empresa, auxiliava no controle de estoque e no ajuste dos valores dos produtos para que a empresa conseguisse atingir suas metas.

Comecei utilizando o HSQLDB como banco de dados, é um banco de dados simples, pode ser utilizado no modo embarcado e possuía todos os recursos que eu necessitava para este projeto.

Devido a minha inexperiência, durante o desenvolvimento eram constantes as alterações na modelagem do sistema. Isso tornava o trabalho extremamente desgastante, o desenvolvimento não progredia, sempre voltando ao mesmo ponto, pois por menor que fosse a mudança na modelagem, era necessário modificar diversas classes já construídas e o SQL do banco de dados. O código tornou-se ilegível, métodos e objetos que não se sabia mais se eram utilizados ou não. Seria minha primeira contribuição para as estatísticas de engenharia de software, a dos softwares mal sucedidos.

Comecei então a procurar na internet por dicas de desenvolvimento, na época o único padrão de projeto que conhecia era o Singleton, na verdade nem sabia o que era padrão de projeto, pensava que engenharia de software era projeto e análise de algoritmo.

Deparei-me então com o DB4O, um banco de dados orientado a objetos, com promessa de poder trabalhar com objetos transientes e persistentes sem nenhum tratamento especial.

Fiquei surpreso com a simplicidade de se trabalhar com o DB4O, no mesmo dia em que o descobri, já consegui migrar todo o projeto para este novo banco. Alterações na modelagem que antes acarretavam um enorme trabalho e complicações no código passaram a ser simples, pois o DB4O se reestrutura de forma transparente e sem nenhuma intervenção. O ganho em tempo de desenvolvimento é incomparável. Desta forma foi possível me concentrar melhor na lógica de negócio e não me preocupar mais com a parte de persistência.

O DB4O é um framework para manipulação de objetos como base de dados, open-source nativo das plataformas Java e .Net, com ele não é preciso mapear ou transformar o objeto para torná-lo persistente. É ideal para aplicações embarcadas, dispositivos móveis, também pode ser implantado como servidor. Suporta esquemas evolutivos, indexação, transações, concorrência, criptografia, todos os serviços que um SGBD relacional convencional oferece.

Hoje já desenvolvi muitas aplicações com sucesso utilizando o DB4O, é o banco de dados ideal para a maioria das situações. A maior dificuldade de se trabalhar com um banco de dados orientado a objeto é a mudança de paradigma, apesar de ser natural trabalhar com objetos na memória principal, é sempre tendencioso o modelo relacional no momento de pensar na persistência, como por exemplo, inserir IDs nos objetos ou persistir uma String que referencia outro objeto.

No final de 2007, fiz uma apresentação para alunos da disciplina de Banco de Dados, nela são apresentadas algumas informações sobre o DB4O e alguns exemplos de código.

Introdução ao DB4O

Get your own at Scribd or explore others: db4o