Re: OO and RDBMS

From: "Merlin Moncure" <merlin(dot)moncure(at)rcsonline(dot)com>
To: "Shridhar Daithankar" <shridhar_daithankar(at)persistent(dot)co(dot)in>
Cc: "PostgreSQL Advocacy" <pgsql-advocacy(at)postgresql(dot)org>
Subject: Re: OO and RDBMS
Date: 2003-09-24 14:24:55
Message-ID: 303E00EBDD07B943924382E153890E5434A9DD@cuthbert.rcsinc.local
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-advocacy

Shridhar Daithankar wrote:
Hi,

>http://developers.slashdot.org/developers/03/09/23/2016224.shtml?tid=12
6&tid=156
>I am sure people must have seen this story. Just posting for archives..

As a follower of the advocacy list, I feel compelled to make a few
observations about the above post. Perhaps I'm speaking to the choir,
but I am passionate about this subject, and I always astounded about the
sheer volumn of misinformation that abounds!

Every once in a while, a post of this nature appears on Slashdot. I
haven't like at the Prevayler project recently, but as I understand it,
it is more of a supped up object streamer than a database. These
projects and the ideas that drive them are fueled by college students
who overdosed on OO theory in college and try to fit information into
their carefully defined view. XML has similar issues. OO streaming
and XML have real applications, but IMO are absolutely no threat to
'Relational' Databases in the business world. While OO is a useful and
interesting branch of programming, its application is orthogonal to
database principles and information storage. True and correct
information storage is based on logic, not on efficient language
bindings. Since stored data is really just information, or more
technically, a sum of all constraints, it can describe anything,
including 'objects'.

This is nothing new. In Microsoft's .net platform, I can use the built
in serializers to stream objects to XML with very little programming.
With some XSLT and some more programming, a general approach could be
used with some features (i.e. querying) of a crude DBMS. While the
performance can be stellar for writing and reading (Microsoft's XML
serializer can a achieve 10 mb/sec output on cheap hardware),
concurrency is a nightmare and scalability is worse. While this seems
attractive to OO programmers who are put off by brokering objects in and
out of a non OO storage, any type of useful data mining with this
approach is realistically impossible. Even with infinite computer
resources, the weakly defined logical model of serialized objects
contrasts unfavorably to the SQL model (and SQL contrasts unfavorably to
the relational model, but I'm nitpicking!).

Imagine database objects serialized to XML and stored in Postgres as
blob objects (but without mvcc and atomicity) and you have something
similar to Prevayler. Obviously, since you cant make a useful index out
of a blob object, ad hoc queries are impossible unless you introduce a
'meta parsing' stage for indexing, relating (such as it is) and
performance optimization -- now destroying the 'generalness' of the
storage. In SQL, all you have to do is type in 'create index', what
sane db administrator wants to give that up?

Generally, Postgres is more suitable in business environment in almost
every way, but the common misunderstandings about databases (urban
myths?) in the IT industry are so widespread that newcomers to the field
must have terrible trouble getting correct information.

Regards,
Merlin

Responses

Browse pgsql-advocacy by date

  From Date Subject
Next Message Jan Wieck 2003-09-24 17:50:12 Re: About GPL and proprietary software
Previous Message Richard Schilling 2003-09-24 13:42:54 Re: Announcement: planned open source billing system demonstration now available