Re: Does Codd's view of a relational database differ from that ofDate&Darwin?[M.Gittens]

From: Jon Heggland <>
Date: Wed, 15 Jun 2005 08:36:31 +0200
Message-ID: <>

In article <42ad57c3$>, says...
> Jon Heggland schrieb:
> >>database. So why rows from table Products are positioned only along 2
> >>dimensions Price and Size?
> >
> > Because those are the only ones that are relevant in your problem
> > domain. Occam's razor?
> What does it mean to be relevant? It is too informal.

Relevant to the needs of the users of the database. Are there any kinds of facts about products in the real world other than price and size? If so, include them in the model. If not, don't---it is irrelevant or flat out wrong. In the end it might be said to be an informal value judgement, but you have to make that decision somewhere. The point is to model some aspect of reality. Specifying what dimensions or properties are relevant for for the different parts of it is an important part of that, in my opinion.

> My inference
> engine needs to know precisely how to interpret such a situation.

Then perhaps we are arguing at cross purposes yet again. I'm thinking about the convenience of the users, not the inference engine.

> I define all data items as having some position along all dimensions. If
> the position has NULL value then I can write it explicitly. If some
> dimension is known in advance to have always NULL value for some set of
> items then this dimensions is said to be inapplicable, meaningless etc.
> Such dimensions are not included into the definition of this set of
> items (into a set of table columns).

Then what are we arguing about? Are you saying that Age is not always NULL for products / some products have an age? In that case, the twotable  relational model in your example does not match reality, and it is a straw man. Or are you talking about efficient implementation of your conceptual concept-oriented model?

> That is actually a mechanism of
> imposing syntactic constraints. So the principle of Occam's razor is
> very relevant here: in this way we indeed decrease the number of basic
> elements of the model (the primary goal of the concept-oriented model).

I don't understand. What are you reducing/decreasing? Are you not including the Age dimension for products in some manner? If so, why still make queries about it?

> >>What if I want to get their position along other 998 dimensions?

Why would you (or rather, the user) want to, anyway?

> > They have none. But anyway, aren't you the one that argues that "their
> > position is NULL" and "they have no position" is equivalent? Isn't it
> > then mainly a matter of syntax/presentation? I just don't like to use
> > the NULL word; it has too many meanings.
> Ok, NULL is too ambiguous. I mean that we need something that will
> denote an absence of coordinate value for a data item (is not positioned
> along some dimension, is absent from that point of view, imapplicability
> of this variable and other informal interpretations).

Why do we need that? Why not denote absence by absence? If something is present, everything else is absent---it saves you the trouble of explicitly denoting the universal compliment of you problem domain.

> A little mit more definitions and we get the concept-oriented data model
> with which we can play. In particular, such questions as "What is power
> in kW of some house or what is area of some car" are absolutely legal.

Legal, perhaps, but useful?

> Moreover, it is very important to have such questions and answers legal
> because it is necessary for aggregation, inference and other mechanisms.

Please show and tell.

> But when I see a model or a system I am always interested in answering
> the following questions:
> - How many dimensions (degrees of freedom) does it have?

How do you determine this in your model? What inhibits this in the RM?

> - If I have two states of this model or system then can I say that one
> of them is more general than the other (and equivalence as a particular
> case)?

How do you define more general? As representing a superset of the information? This sounds trivial in the RM, though I haven't thought about it all that much.

> - How can look at it at different levels of details? In other words, how
> can I produce something that is qualified as an abstract/general
> representation of this very initial model or system?

I don't understand this one.

> - If I impose some constraints then what consequences I can derive?

Isn't first-order predicate logic useful for this? Relational databases do this all the time.

Received on Wed Jun 15 2005 - 08:36:31 CEST

Original text of this message