"I have a mind like a steel... uh... thingy." Patrick Logan's weblog.

Search This Blog

Thursday, December 02, 2004

True Data Ways

Ian Bicking writes in a comment to an earlier post about "issues" with certain anachronistic databases (e.g. ZODB and Berkeley DB)...

RDBMSs and flat files are the two true ways, because they are somewhat less broken than other things!
A Smalltalk image works well as a simple object database because it is fairly simple: in-memory, simple process model (e.g. no complicated conflict resolution). Prevayler could become a simple extension of this, and the capability/complexity trade-off grows from there.

I agree with Ian's sentiment. The relational model is better than credit is given from the object-oriented programming community. The main problem is not the relational model per se, but the language implementation (i.e. SQL) is not so compatible with the more modern languages we use (even Smalltalk and Lisp, which pre-date SQL by a fair number of years. I agree with other voices that the Object-Relational Mapping problem is not worth spending too much time worrying about.

Even with SQL's shortcomings, the range of reliable implementations is nothing to shake a stick at. And flat files in basic file systems are tried and true, not a lot of moving parts to worry about for a good many scenarios.

Newer implementations of relational databases do address some of the language issues. (e.g. Derby nee Cloudscape and the even simpler Hypersonic SQL on the language issue, Postgres on the some of the O-R mapping issues). But some down to the roots rethinking of the implementation of relational databases could fuel them up for the years ahead.

2 comments:

Ian Bicking said...

Georg Bauer has just started making an OO DB based on PostgreSQL:

http://pyds.muensterland.org/weblog/2004/11/27.html#P240

PostgreSQL is just a backend, a convenient storage location with transaction support; it shares few of an ORM's typical motivations. I imagine he will be able to create something very robust and functional very quickly, because the hardest work is already done.

OTOH, database backends for the ZODB exist (APE), but no one seems super excited about them. At least that I've noticed, I may have missed something; theoretically CA was supposed to get behind it (with Informix), but for a large company they seem to be awfully easily distracted.

Anonymous said...

Keep your eye out for two Python projects that will have major releases in the next couple of weeks:

Pypersyst is a prevayler-style persistence mechanism for Python.

Schevo is a full-blown ODBMS and Application Framework written in Python that can store Python objects in Pypersyst, ZODB, or Durus (including the ability to switch between storage backends, and the ability to use different backends for replicas). And it has many other goodies (like incredible support for schema evolution and object migration) that you'll simply have to wait to hear about. :-)

Patrick K. O'Brien
Orbtech

Blog Archive

About Me

Portland, Oregon, United States
I'm usually writing from my favorite location on the planet, the pacific northwest of the u.s. I write for myself only and unless otherwise specified my posts here should not be taken as representing an official position of my employer. Contact me at my gee mail account, username patrickdlogan.