6 Reasons for Not Using db4o


Written on Monday, January 21, 2008 by Edwin Sanchez

Don’t misinterpret the title. Db4o is such a good product. I admit that I was skeptical to use it at first. But once you tried using it, you don’t want to stop. You may know other reasons from people you know why they are still not using db4o. Are you one of these? Read on. You will not use db4o unless:

  • You want to take it slow. If you want to spend time mapping your objects to relational counterparts, that’s it for you. Even if there are ORM tools, you still need some time that a native ODBMS will not require.
  • Your faith is in RDBMS. Some developers I know have been “doctrinated” that RDBMS is better and ODBMS is not good. We can not blame people thinking that after what happened to history. Added to this, there is this tendency of sticking to “What’s In? In is cool” and sticking to the majority. They think the vast majority is way cooler. And this vast majority is the RDBMS crowd. But it’s high time to look at the products today, especially db4o. The product is promising and there are thousands and thousands of members in the community trusting the product and the company behind it.
  • You want more work and less implementations. Coding for queries, inserts, updates and deletes are very simple in db4o. This will mean more time for features to be implemented than spending time mapping objects to relational counterparts. More implemented features means good for us developers and it equates to good employee performance and satisfied customers.
  • You want more time in your work and less with love ones. I remember the days when my colleagues and friends used to say “No time for love”. I was single back then and I’m spending less time with my girlfriend (now my wife) because of lots and lots of things to code. Now I have a 3-year old daughter and I need even more time for love ones. If your development tools can cut development time and your database does not require more coding, then you’ll have more quality time for your family. Db4o made my database tasks simpler.
  • “But you can do away with ORM and map your table fields straight to your user interface, right?” Before I answer that, I can see that there is a group who prefers RDBMS and ORM Tools. On the other side is a crowd who prefers to use ODBMS like db4o. The main goal of both groups is to adhere with object-oriented design and principles. This is not bad. Object-oriented principles have been proven to be advantageous many times. However, there is a third crowd who will neither do ORM nor objects. They say that the overhead of doing ORM will be reduced by deviating object-oriented rules. That is, do your SQL homework, call it in C# or any language and map it to your visual controls. Actually, you can do this in Visual Studio without too much coding effort. Just drag the data controls and visual controls to your form or web page, set the properties and that’s it. You have a running application! Just to answer the question, yes, you can escape from ORM and its overhead and map it straight to visual controls. But why not solve the ORM issues by using a native object-oriented database like db4o? You adhered to object-oriented principles without hurting performance and you got rid of the impedance mismatch at the same time.
  • You just don’t know db4o. When I started working with db4o, I told my team about it. Then I told my boss. I talked about it with other developers I know. I even tried a demo from one of my projects. And they think it’s cool. I was allowed by my boss to look into it. But you know what? When I talked to people about it the first time, they never heard of it. Knowing these reasons now, I think there is some lack of promotions in certain areas like mine. I don’t know with others. Starters can always download and try it out and read (thoroughly) the documentation. You won’t regret you had. Then, we can help by telling friends about it. Write something about it and tell the world. Contribute codes and help newcomers cope up.

As usual, this is just to share my thoughts on my favorite database. I’ve been using it in a Client-Server environment so you may have a different experience than mine. But generally speaking, you can think of the thoughts presented here.

If you enjoyed this post Subscribe to our feed


  1. ngredk |

    I wonder, how big is you database?

  2. Anonymous |

    Oh, come on now....
    This kind of post is useless to someone who doesn't know the product already. Hooray, you're excited about it to the level of a paid evangelist.

    But *no* tool is the solution to every development need -- no one experienced in the RDBMS world would even say that any single mature RDBMS is the solution over all others for all projects. Everything has a sweet spot.

    Obviously, the sweet spot for this tool would *not* be anything requiring migration from a large established relational system.

    And... well, that's all I know. I didn't get any clue about what it's strengths might actually be from your post. Yes, ORM is simplified, but you skip past all the blazingly obvious questions, like "how about data mining" and "generating complex reports" and "all our pre-existing SQL expertise" and "performance" and "scalability" and "statistics on some actually deployed, high-profile instances".

  3. Edwin Sanchez |


    Thank you for your comments. They are very much welcome. My database in my case is not something for a high-traffic internet site. I managed to divide the database into separate files because db4o's limit is up to 2gb only.

    Anonymous, your point is clear and I have no disagreements with that. I think the post made it sound like relational Dbs are no good anymore. That is not my intention and I am very sorry for that. Even db4objects will not agree if that is the point. It is the best of both worlds, they say.

    Again, thank you

  4. el perucho |

    Hello friend greetings.

    Actually I am new to the community db4o, but share many ideas with Edwin's, I think the idea is not to disparage the RDBMS, but where encourage focus batteries databases.
    Everything asked by the friend Anonimo, it is possible to do so in db4o, "how about the Data Mining", "complex report generation", "performance", "scalability" and "In some statistics actually deployed The high-profile cases. " Say the truth db4o, does not handle any of this. This is handled by our objects through the EVENTS, METHODS, PROPERTIES, COLECCIONE, GENERICOS, ETC ... The real work of db4o or any ODBMS is to keep our objects.

    Currently, the framework 3.5, came with a namespace called LINQ, which adds native SQL queries programming languages, in order to obtain data from the RDBMS. For db4o this is a fairly mature, long before version 4.0 and majeba this concept. Well actually born with them, as any ODBMS.

    I hope I have clarified certain points friend anonimo.
    Greetings and Luck

  5. Anonymous |

    One more cause for not using Db4o:

    "Problem finding all instances: Uncaught Exception. db4o engine closed."

    That's after a simple TCP connection drop between client and server, which could be due to a firewall between two servers acting, or a simple connection timeout. After that the client side became unusable.

    A database solution that exhibits such lack of basic resilience (even in a case of misconfiguration) cannot be considered ready for enterprise use.

  6. Kaveh Shahbazian |

    People do not use db4o just because of it's licensing. You say how? You say I still use MySQL? Or even SQL Server? A big reason is you can not just want the industry to rehab! Yet developers love db4o because we see it in action and we see how the development process can be more productive and fun especially at initiating a new project!

    Just choose a business model like MySQL and the world will be changed forever!

    Just do that! You will have money! Lots! Many companies will come to you for customized solutions and solving normal problems like scaling and the rest.

    But till then I will not use db4o because we have better integration - in .NET - with SQL Server and Oracle (And both have a FREE expression edition). db4o is open source; that's best. I want it to be free and yet the money...as long as you are looking at db4o as SQL Server and not the beginning of a new age (like what LAMP does!) db4o is JUST A COMMERCIAL OPTION and in this manner no one likes the rehab! :)

  7. PinoyDeal |

    you're really knowledgeable with this one. good job. thanks for following my blog - http://pinoydeal11.blogspot.com

  8. Anonymous |

    I don't know what it is exactly can you explain it to a techy div like me lol? I am pretty crap technically.

  9. PinoyDeal |

    yes i have tried PGX already. trustworthy 100%. ive been using them ever since i started online jobs.


  10. PinoyDeal |

    thank you for this review..

    thank you for following my blog! keep it up and lets make more money online!

  11. PinoyDeal |

    thanks for visiting my site. i think i really dont know what db4o is. hehee..

    thank you for following my blog! keep it up and lets make more money online!


Post a Comment