views:

338

answers:

6

Object-databases are used very seldomly, albeit they offer a way to live without SQL, which is, I think, a benefit of its own.

Yet, I have seen them about never in production systems. Is there something fundamentally wrong with object-databases? Can I use a object-database in a production system?

Edit: So, maybe I should confess that I love object-databases. I cannot really get my head around why they are not used a lot more often.

+3  A: 

Sure you could, as long as it was stable. The problem is the relative lack of high quality Object Oriented DB systems, as well as the fact that most people don't even know what one is.

Alex Fort
The suggestion that OODBs are not stable is silly. Gemstone is an old product, and sees significant use in company-critical systems
Stephan Eggermont
Did I suggest that they weren't stable? I was just trying to point out that a lot of OODBs aren't very old, and some of the implementations may not be ready for production use yet.
Alex Fort
+1  A: 

The problem I believe, is that SQL isn't inherently a bad thing. It is very good at performing set based operations. From what I've seen, object databases work well when working with individual objects, yet fail when trying to do set based operations. Also, people are very good at working with SQL databases. It's easy to find people to work with them. Object databases are another story.

Kibbee
-1 The ones I know (gemstone, magma) are much better at set based operations than SQL is.
Stephan Eggermont
+3  A: 

db4o is being used a lot by many Fortune 500 companies (especially for embedded applications), so I wouldn't say that OODBs are not used for real-world production systems

Mauricio Scheffer
In fact, I worked on db4o for a few days. db4o made me love object-databases in the beginning, and now it has extended to sandstoneDb, gemstone and GOODS.
nes1983
+2  A: 

Heard of Cache? Used by EpicSystems for their Enterprise Health Record(EHR) product. Plenty of production shops using it.

Scott Hoffman
+3  A: 

There are production systems written using the GemStone OODB. It's a distributed, persistent Smalltalk system.

John M
+2  A: 

The real question here is whether you require tooling to support your database or not. By tooling I mean reporting, data migration, data mining, etc. Do you need to provide self service reports? Heck, even reports with a fast turnaround time that doesn't require deploying new code? (Providing report functionality in the application is a real drag.)

There are countless tools available to perform these operations against traditional RDBMs. Against OODBs? I'm not familiar with any major products. Though, admittedly, I'm not an OODB kinda guy.

If you don't need those tools, they go for it. Otherwise, stick to traditional RDBMs. With current ORM technology, the pain of mapping objects to records is much less than it used to be.

Mike
Reporting and data mining is much easier in an OODB than with external tools to a RDBMS. So much so, that there is no real market for external tools for doing that.
Stephan Eggermont