O NeoDatis ODB é um SGBD (sistema de gerenciamento de banco de dados) bastante funcional, open source e orientado a objetos. Atualmente o DBMS (database management system) roda de maneira bastante direta e transparente com aplicações em JAVA, mas está sendo portado também para a plataforma .NET e MONO. Na prática já é possível se fazer o download de versões homologadas para estas duas últimas plataformas de desenvolvimento.
Embora não seja exatamente um banco de dados conhecido e com muitos cases no mercado, existem muitos projetos, vários no Brasil inclusive, que estão em produção utilizando o SGBD. De acordo com Oliver, poderíamos elencar como principais vantagens e desvantagens de bancos de dados orientados a objetos as seguintes:
Algumas Vantagens:
– Simplicidade, simplicidade, simplicidade
– não há necessidade de mapear seus objetos para o paradigma relacional. Assim, vc tb não tem limitações no seu modelo de objetos de negócio. Simples cria seus objetos de negócio e manda persistir. Isto traz muita produtividade pois vc se concentra na sua lógica de negócio.
– Os relacionamentos são automáticos pois são definidos nos seus objetos
– Refactoring : Alguns bancos OO possuem Refactoring automático. Ou seja, vc alterou uma classe persistente, o BD se ajusta sozinho. Obviamente, algumas situações não poderam ser tratadas automaticamente e haverá necessidade de refactoring manual
– Apesar de não ser uma vantagem dos BD OO, mas muitos dos BDs OO funcionam em Modo embarcado(embedded) e/ou Client/Server. O modo local permite usar o BD junto com a sua aplicação sem a necessidade de instalação de servidor. Isso pode ser uma vantagem interessante quando é necessário distribuir uma aplicação Desktop ou até para uma aplicação Web onde vc não controla o ambiente de execução.
– Em modo embedded, vc consegue uma performance superior e em geral um tamanho de biblioteca inferior a 500Kb. Se vc usa Hibernate para acessar um banco relacional no minimo vc tem 3Mo de jars. Com esses BD OO (como NeoDatis) o runtime é menor que 400K. As vezes faz a diferença.
Algumas desvantagens:
– Fica dificil ter uma equipe que cuida do banco e outra do desenvolvimento pois o modelo do banco de dados acaba sendo o modelo de negócio.
– Bancos relacionais que estão há mais tempo no mercado devem ser mais robustos e confiáveis.
O mais importante ao meu ver é Simplicidade e Produtividade. Qdo começa a trabalhar com um BD OO como NeoDatis ODB ou DB4O e que tem que voltar a usar Hibernate para acessar um banco relacional, vc fica triste.
Para saber mais sobre o NeoDatis ODB, visite seu wiki oficial ou, se você é programador JAVA, consulte o tutorial relâmpago disponbilizado pelo projeto, que demonstra como “linkar” seus objetos de negócio com os objetos do banco de dados.