Fog Creek Software
Discussion Board




OODB: Are they viable?

Are Object Oriented Databases (OODB) viable?
What do they do for you?
How do they compare to relational datbases?
How have you used them?

Glade Warner
Friday, September 05, 2003


Why would an OODB be any less "viable" than an RDBMS? It wasn't all that long ago that Oracle was an upstart company with some new technology, was it?

anon
Friday, September 05, 2003

Yes and no.  They are not going to replace rdbms any time soon.  They are slower, generally.  If you are so excited about OOP that you wet yourself, then the OODB is a natural storage environment.  If you have traditional data storage needs go with a traditional method.

Mike
Friday, September 05, 2003

anon: There's no a-priori reason they should be less viable. But it's not like they're new; They've been around for nearly 20 years, and for most projects, most of the time, they are still not viable.

The only OODB I can say I really have experience with is ZODB; as far as I know, it _is_ characteristic. My conclusion is that you're better off with an RDBMS.

Not because it's perfect, but rather, because (with the existing selection), it is much easier to get what you want out of an RDBMS than an ODBMS.

And more often than not, the relational model just fits a problem better.

Ori Berger
Friday, September 05, 2003

Fabian Pascal and CJ Date have addressed OODB's (and XML DB's) a number of times in the last several years over at http://www.dbdebunk.com . I don't have a direct link to any particular article, but you can browse the content.

But be warned: Pascal comes off as so arrogant that he's painful to read.

Nick
Friday, September 05, 2003

ZODB isn't really an OODB.  It's a persistent object store.  There's a *big* difference.

OODB's these days tend to be either expensive commercial products, or undocumented academic projects, without much of a middle ground.  Instead of middle-of-the-road OODB's, you tend to find O->R mapping toolkits and libraries.

Phillip J. Eby
Friday, September 05, 2003

ZODB is indexed and ACID transactional, which is what I consider the defining properties of a "DBMS". An RDBMS also has to be relational (well, duh), and an ODBMS also has to store objects well, respecting their is-a and has-a relationships - which ZODB also does well.

Phillip, is there a standardized definition of OODB? What makes ZODB not an OODB?

Can you point to something which you do consider an OODB?

[P.S: There isn't a concensus on what OO means]

Ori Berger
Friday, September 05, 2003

ZODB is *not* indexed.  You can store indexes *in* it, but ZODB itself is not indexed.  That in itself is one of the characteristics that make me view it as more akin to GDBM or BerkelyDB, than an OODB.  It also doesn't have a query language, or schema mechanism.

I'm not aware of a specific formal definition of an OODB, but have a look at:

http://www-2.cs.cmu.edu/People/clamen/OODBMS/Manifesto/htManifesto/Manifesto.html

ZODB would fail on many of the "Essential Characteristics" listed here.

Phillip J. Eby
Friday, September 05, 2003

I used ObjectStore for a few years. I don't know if it's still around because I know the company was bought out a while back. The worst thing about OS was the performance and some of its quirks. It wasn't very fast (for things like heavy transactions) and it tended to commit a heck of a lot of memory for relative simple transactions. However, the database was a simple file that could easily be moved around and copied, backed-up, etc. This made it 10x easier to work with than SQL although not having a backup agent meant you had to schedule downtime. To be fair, I never had one crash, fault, or integrity with the product. All in all, not bad.

StickyWicket
Friday, September 05, 2003

ROFL! This may be better than "nobody needs more than 640k":

"Gates: There never have been, and there never will be in the next decade, any relational databases."
(from the dbdebunk site)

You know, I'm thinking Gates isn't such a visionary - what he *does* do well is react quickly and doesn't get oversold on his own investments. He's made some colossal missteps in trying to guess the future - he doesn't choose a course and drive down it (like Ellison), rather he seems to stay light on his feet, testing a dozen waters at once and being incredibly willing to kill business directions without a second thought.

Philo

Philo
Friday, September 05, 2003


http://www.versant.com/

anon
Friday, September 05, 2003


[anon: There's no a-priori reason they should be less viable. But it's not like they're new; They've been around for nearly 20 years, and for most projects, most of the time, they are still not viable.]

You don't understand my point. My first question is "why are they not viable"?

It's likely many of the responses would include some comment on performance (basically, a database system can never be fast enough). But that's a technical question, not one of viability. There's a reason we started with VisiCalc and not Oracle v8.0.

So, if you assumed that we could get similar performance from an RDBMS and an OODB, which would you pick? The one where you got to retrieve business objects by name or the one where you had to retrieve data from several locations and "join" them to create the sets you needed? The answer might still depend on the business problem you're trying to solve, but there wouldn't be any silliness about "viability".

It's just a matter of time.

anon
Friday, September 05, 2003

Both OODBs and POSs (Persistent Object Stores) are viable, for the right kinds of problems.

The reason people rely on RDBMSs so much is that, in part, they've been trained to think of data relationally. It's not that a relational model is necessarily better or worse than some other model, but it's almost certainly the thing most people are the most comfortable with. It's habit, as much as anything else.

Brad Wilson (dotnetguy.techieswithcats.com)
Friday, September 05, 2003

Behind the Relational Model there are some very strong math.  The relational model started with as a solid set of proven theory and worked its way towards implementation.

I don't think that Object Orientation has that kind math behind it.  I think OO started off as implementation and has been searching for a solid theory since.

You may say that math is nothing more than pie in the sky theory that doesn't mean a thing in the real world.

Well, I think that "logical differences are big differences."

This thread has already pointed out how wrong the predictions of industry leaders have turned out, and how short lived their fads.

If you read Turing or Van-Neuman then its all still relevant.  Go furhter back to Bool, further still to Newton, keep going to Pythagoras ...

Ged Byrne
Friday, September 05, 2003

"Gates: There never have been, and there never will be in the next decade, any relational databases."

Philo, I don't know if he's wrong on that one. IIRC no vendor has fully met the point by point requirements for a RDBMS specified by Codd. Part of Rule 12 is probably theoretically impossible:

12. Nonsubversion rule
There should be no backdoor to bypass the security imposed by the DBMS.

[Maybe this is the rule that Gate's objected to. :-p]

There were some funny comments in that article, though.

Nick
Friday, September 05, 2003

In regards to this question, I have heard from "others" that relational has been and will continue to be the popular data store because the storage mechanism is much more distinct from how you choose to use the data (i.e. objects and their logic). The theory is the data is more valuable than the logic over time, thus you keep a data store built for the data and not the logic.

m
Friday, September 05, 2003

Nick - yeah, Bill could spin it that way, but coming from the father of "nobody needs more than 640k", Microsoft Bob, and the guy who almost let the internet pass him by, I'm inclined to think he's not that great a visionary.

Philo

Philo
Friday, September 05, 2003

He's worth how many billions?  What's being a visionary worth to you? ;-)  Besides, what does it mean to be a visionary? It's all about the $, because it's just business folks...

GiorgioG
Friday, September 05, 2003

Giorgio - read my previous comment. Visionaries are people like Larry Ellison or Michael Dell, who see a course (RDBMS or commodity computers) and drive down it, pushing for public acceptance.

Gates (IMHO) doesn't do that, with perhaps the notable exception of providing for developers before anyone else. But his list of "vision" failures is long and distinguished. I think Gates' modus operandi isn't "see the future and seize it" - it's "keep as many avenues open as possible, and be willing to admit your mistakes and change direction instantly"

That's why we see so many dead techs out of Redmond (ActiveDocuments, Chrome, various API paradigms, etc, etc)- they didn't take off flying, so they were shot in the head.

Philo

Philo
Saturday, September 06, 2003

Getting back to the original topic, what does an API for an OODB look like?  Are you bound to a particular language?  Certainly the fact that you can access every mainstream RDBMS from every mainstream language is a factor in their mind share.

Brian
Saturday, September 06, 2003

OQL is the equivalent to SQL in the OODB world.  Products such as Poet FastObjects and Versant claim to act as object persistence and full databases.  What I have seen of them they tend to have a issue as they grow to have access times increase geometrically. 
Mentioned resources:
Poet FastObjects: http://www.fastobjects.com/eu/
Versant: http://www.versant.com/index.php?module=ContentExpress&func=display&bid=21&btitle=Products&mid=10&ceid=48
and an OQL reference: http://www.cis.upenn.edu/~cis550/oql.pdf

Software Build Guy
Saturday, September 06, 2003

I read an article a while back that made a good case against OODB's. I can't remember where it came from, but the main point was this:

Data outlives paradigms.

In other words, with a flat set of data to work with, you can always get it to work with whatever the programming flavor of the day is. But when you stuff that same data into an object-oriented model, you're stuck with that model, even when OOP has been replaced by the next big thing.

Chris

Chris
Sunday, September 07, 2003

Take a look at a product called Caché from Intersystems ( http://www.intersystems.com/ ). They call it an "object database", and while I don't know whether that title is accurate based on the theoretical criteria described in this thread, it sure is cool  :)  They presented to our user group a couple of months ago.

For those who favor SQL as a data access tool, Caché exposes a SQL interface as well as the object one. It also has a cool "gateway" feature to integrate with other DBMS' (basically, allowing you to query across DBMS' transparently).

Zahid
Sunday, September 07, 2003

Postgresql has some Object-esque feature I believe.

Matthew Lock
Sunday, September 07, 2003


[In other words, with a flat set of data to work with, you can always get it to work with whatever the programming flavor of the day is. But when you stuff that same data into an object-oriented model, you're stuck with that model, even when OOP has been replaced by the next big thing.
]

So, what if you really need to access data as objects, but you jumped on the RDBMS "bandwagon"?

This is exactly the sort of thing XP tends to discourage: shooting yourself in the head now, so you MIGHT be better off in the future.

If you need an OODB, you need one. If you need an RDBMS, then you need that. If you need to keep your data on stacks of punch cards held together with rubber bands, then that's cool too.

I suppose that no one out there normalizes their data since they might need that "flat set of data" at some later date?

Did we really go through all this hand wringing when RDBMS were first introduced?

anon
Sunday, September 07, 2003

"That's why we see so many dead techs out of Redmond (ActiveDocuments, Chrome, various API paradigms, etc, etc)"

Damn, I forgot about ActiveDocs already.  Weren't they the "next" big thing about a year ago.?

Mike
Monday, September 08, 2003

Oops - I meant ActiveXDocuments, which were the next big thing in 1998. Last year's next big thing that I think you're thinking of were SmartTags, which got bludgeoned to death in the press.

Philo

Philo
Monday, September 08, 2003


Anon "what if you really need to access data as objects, but you jumped on the RDBMS 'bandwagon'?"

You create a layer of data access objects that wrap around the tables.

You can use a code generator if you like:
http://www.manning.com/herrington/index.html

Ged Byrne
Monday, September 08, 2003

*  Recent Topics

*  Fog Creek Home