Re: Base Normal Form

From: Jan Hidders <jan.hidders_at_REMOVETHIS.pandora.be>
Date: Wed, 13 Jul 2005 21:24:35 GMT
Message-ID: <nEfBe.144113$Ws5.7593191_at_phobos.telenet-ops.be>


dawn wrote:
> Jan Hidders wrote:
> <snip>
>

>>>I'll accept that.  When applying a mathematical model within a field
>>>that has taken mathematical terms and given them new definitions is
>>>problematic.
>>
>>Oh, come on, Dawn. Really! It is quite clear that there is a close
>>relationship between a relation as defined in the relational model and
>>the usual mathematical notion of relation. Just take a look in the
>>"Foundations of databases" book by Abiteboul, Hull and Vianu. (That's a
>>graduate text I usually recommend to PhD students.) They happily switch
>>between the two definitions and use whichever one is most practical for
>>the thing they want to present in the full knowledge they could use
>>either of them. 

>
> Maybe the problem here is that I was accepting Date's def from his
> latest edition of an intro text. It really seems to be quite far
> removed from a clean, clear def of "relation" and I was guessing that
> there are many undergrads learning that or similar definitions.

They probably do, yes, although AFAIK the sales of his intro books are dropping. I think I already discussed in the past that his definitions can be somewhat simplified, so I won't comment on that here.

>>>A candidate key of a relation could be modeled as the
>>>domain of a function -- gotta love language, eh?
>>
>>That's still way too sloppy and I think you can do better than that. 

>
> That was purposely sloppy -- many words with multiple meanings in
> multiple contexts.

Ah, my apologies, I think I misunderstood what you wanted to say with that sentence.

> [...] I suspect I'm working in a much simpler context
> than you are, however. For example, I might be explaining to a web
> page developer who has never had a database behind their pages before,
> how to model data. I would not bring in the term "relation" very
> quickly, where I would use the term "function" right away.

Hmm. I think I understand where you are coming from, but this has probably more to do with you and the way you think about data modelling than with some inherent difficulty in understanding of the relational model. I have taught at university level and sub-university level, also to business students and chemistry students and I would *never* explain things in terms of functions. The first time the term would show up would probably at the point where I would discuss normalization.

One of the dangers with viewing relations as functions is that it also tends to promote a view of the database where its only purpose is to retrieve data given a certain key. That much too narrow view is exactly the reason why so many web-applications have incredible crappy database-programming behind it, where they forget you can also have other indexes and use the table "backwards" or where joins are not done in SQL but in PHP. If I would teach web-developers I would see it as one of my biggest tasks to prevent such misuse of the DBMS.

So I'm afraid I'm still very very wary of your terminology.

  • Jan Hidders
Received on Wed Jul 13 2005 - 23:24:35 CEST

Original text of this message