Path: dp-news.maxwell.syr.edu!spool.maxwell.syr.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!news-han1.dfn.de!news-lei1.dfn.de!newsfeed.freenet.de!border2.nntp.ams.giganews.com!nntp.giganews.com!feeder.xsnews.nl!news.astraweb.com!newsrouter-eu.astraweb.com!hwmnpeer01.ams!hwmedia!news.highwinds-media.com!nntp.telenet.be!kwabbernoot.telenet-ops.be!phobos.telenet-ops.be.POSTED!not-for-mail
From: Jan Hidders <jan.hidders@REMOVETHIS.pandora.be>
User-Agent: Mozilla Thunderbird 1.0.6-7.2.20060mdk (X11/20050322)
X-Accept-Language: en-us, en
MIME-Version: 1.0
Newsgroups: comp.databases.theory
Subject: Re: Reminder, blatant ad
References: <1138248036.028061.24710@o13g2000cwo.googlegroups.com>
In-Reply-To: <1138248036.028061.24710@o13g2000cwo.googlegroups.com>
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Lines: 71
Message-ID: <DvaCf.212115$7f1.7126132@phobos.telenet-ops.be>
Date: Thu, 26 Jan 2006 20:43:15 GMT
NNTP-Posting-Host: 81.83.45.79
X-Complaints-To: abuse@telenet.be
X-Trace: phobos.telenet-ops.be 1138308195 81.83.45.79 (Thu, 26 Jan 2006 21:43:15 MET)
NNTP-Posting-Date: Thu, 26 Jan 2006 21:43:15 MET
Organization: Telenet Internet
Xref: dp-news.maxwell.syr.edu comp.databases.theory:35636

Hi Dawn,

Since I don't like discussing by means of blog comments I'll post my
reaction here. As you probably know I'm in the pro-RM and anti-dbdebunk
camp, so although I'm probably mostly crticial, it is certainly not
meant as an attack.

Dawn Wolthuis wrote in her blog on
http://www.tincat-group.com/mewsings/2006/01/naked-model.html
the following:
> 
> [...] If we were to implement a data model what would we have? Let's
> take a look at a recent definition of data model from Date.
> 
> A data model is an abstract, self-contained, logical definition of 
> the objects, operators, and so forth, that together constitute the 
> abstract machine with which users interact. The objects allow us to 
> model the structure of data. The operators allow us to model its 
> behavior. (C. J. Date, An Introduction to Database Systems, Addison 
> Wesley, 8e, 2003, p 15-16)
> 
> I conclude from this that the implementation of a data model is a 
> programming language, whether a general purpose programming language 
> or not.

While I don't think that what you say here is strictly speaking
incorrect, I do believe that it is misleading. In programming languages
one is often rather more concrete about how the data is stored and how
the operators do their work, in fact that is often the whole purpose fo
the programming language, whereas Date stresses rightly here that it has
to be an *abstract* definition. Another important aspect is the extent
to which the definition is *logical*, which implies that the definition
of constraints and manipulations should be more declarative, whereas in
programming languages this is often more done in an operational way. Of
course there are no black and whites here because these things vary in
different programming languages, but simply equating the concept of
"data model" as Date and Codd define it and "programming language" is
cutting a few corners too many.

> My beef with the RM is related both to normalization theory as taught
> in colleges and universities, discussed in the Is Codd Dead? blog
> and to the way the RM, or parts thereof, are used in the practice of 
> software development and maintenance today. It shapes the thinking of
> software developers in ways that are often not the most effective.

I have really no idea where this comes from. When I teach normalization
I do that in the context of the relational model. It is part of the
theory that you should know if you have to deal with an RDBMS.
Obviously, if you have to deal with another type of DBMS you should not
apply it, or at least not in exactly the same way. Are you now telling
me that most computer science students in the United States massively
fail to get this when they take their database courses? And those people
are allowed to build critical information systems? :-)

> And, by the way, if you are thinking that the RM need not be obvious 
> in a developer's programming language but could be hidden behind the 
> scenes, then my work is done. That would mean that no computer 
> language would need to use the Information Principle, and neither you
> nor I would need to use the RM as a data model. We can use any 
> programming language that does not represent itself as an 
> implementation of the RM to employ an alternative data model.

Again, I have no idea what you are talking about here. Who on earth has
ever claimed that the RM would be the best data model for programming
languages? The claim of the RM is that it is a good data model for a
DBMS, and even that claim is usually qualified.

-- Jan Hidders

PS. Apologies in advance if I don't reply this week, I'll be mostly
off-line then.
