Re: OO and RDBMS - Mailing list pgsql-advocacy
From | Merlin Moncure |
---|---|
Subject | Re: OO and RDBMS |
Date | |
Msg-id | 303E00EBDD07B943924382E153890E5434A9DD@cuthbert.rcsinc.local Whole thread Raw |
In response to | OO and RDBMS (Shridhar Daithankar <shridhar_daithankar@persistent.co.in>) |
List | 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
pgsql-advocacy by date: