Re: Is a RDBMS needed?

From: <Laimutis.Nedzinskas_at_seb.lt>
Date: Mon, 18 Jul 2011 10:27:13 +0300
Message-ID: <OFB7DBCAA6.B8F43709-ONC22578D1.002505E2-C22578D1.0028F209_at_seb.lt>


>Stephane Faroul
>When Codd designed the relational model, it was partly to get rid of the
pointer-based navigation that was plaguing the so called "Codasyl" (network)
model. There was a legendary debate back in 1974 between Codd and Bachman (the
Codasyl champion) - you may be interested by this (long) interview of Bachman,
he refers to the OO "model" page 105/106: http://portal.acm.org/citation.cfm?id=1141882 - which he still seems to favor

First, many thanks Stephan for providing a link to Bachman's interview. A very enlightening reading really. When he talks 1974 - 1974 I was just born :)

Secondly, he does provide (in a few short paragraphs actually !) in which areas network database wins.

Funny enough, the best database modellers I met favoured what I see now as a network database model but implemented in RDBMS. Every entity had a surrogate key. Every foreign key pointed to surrogate primary key. Why? Because of:

  1. performance - compound indexes are quite slow ( but not fat or covering indexes - only that space was too expensive for us at that time )
  2. clarity - joins are simple. If foreign keys are in place (and in those Oracle CASE Designer days they were in place) - the database model is readable any time. Even with data model documentation lost or ill maintained.
  3. You said "Pointers are fine as long as you don't need to change things and maintain the application." I agree as far as physical storage is concerned. If a pointer points to disk track A, sector B, offset C then yes, that's an issue. But when nowdays we have several virtualizations until we get into disk ... I am not that sure. But pointers (i.e. surrogate keys) are just fine and save the day when primary key changes.

What I want to say is that it is possible to achieve in RDBMS most of good things a network model has. But (there is a but) - given a proper data model. How many good database modellers do you have theese days, see Bachman - "Essentially the average skill of people doing programming system design in 1964 I would characterize as being higher than the average skills in 1974, simply because there’s a much bigger population going into the field."

Finally, after I discussed this thing with my wife she said (and she used to program with Oracle Reports) - "yes, that's a good thing to have pointers in DDL just like network model has. It would save so many hours trying to figure out how to write the SQL joins for a particular report given only a vague database documentation" In such things I listen to my wife :) She objectively has more experience than I in trying to fetch data from rdbms.

Brgds, Laimis N


Please consider the environment before printing this e-mail

--
http://www.freelists.org/webpage/oracle-l
Received on Mon Jul 18 2011 - 02:27:13 CDT

Original text of this message