Re: Reminder, blatant ad
Date: Thu, 26 Jan 2006 20:43:15 GMT
Message-ID: <DvaCf.212115$7f1.7126132_at_phobos.telenet-ops.be>
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
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
> 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.
> And, by the way, if you are thinking that the RM need not be obvious
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.
PS. Apologies in advance if I don't reply this week, I'll be mostly
> 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.