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

From: Jon Heggland <>
Date: Thu, 16 Jun 2005 09:09:22 +0200
Message-ID: <>

In article <42afee04$>, says...
> The first point is that once a column is defined for some table in the
> schema then it *formally* can be considered a completely legal column
> for all other tables. In other words, for any row in this very database
> in any table we can ask what value it has in this column.

You should consider using different terminology---rows, columns and tables does not match what you are saying here. Any row obviously has just the columns of the table it's contained in. "Objects" and "properties" would be more suitable, imo.

> In particular,
> for a product we can ask (formally) what is its age. Why do we need such
> an approach? Because it makes our life and the life of the database much
> easier and data manipulation much simpler and more natural.

So you say. I haven't seen any convincing arguments yet.

> As I
> mentioned, we define very naturally a model dimensionality, model "more
> specific" relation, model consequence just because we are able to
> produce canonical semantics. As a consequence we can define grouping and
> aggregation, inference and other mechanisms.

And otherwise, you can't? I feel we are getting nowhere. This is just talk.

> For example, we have 1000 tables. Then we impose constraints on one or
> more of them. Then we want to ask what is the value of some property of
> some object. The tables can be related indirectly and the database must
> be able to correctly interpet these relationships and to uderstand the
> data semantics in order to answer such questions. And here we cannot
> avoid the necessity of having the above mechanism.

In your model, the features of your model are necessary for your model to work? I apologise for being snarky, but I'm getting nothing but vagueness.

> I understand your question: So what is the problem, we simply write
> queries and database engine executes them. Correct. But what if I do not
> want to write numerous queries? I want my database do it for me. I
> define only my data and then ask questions and that is all.

You have to specify unambiguously what you want in any case. What is the difference between writing a query and asking a question?

> See above. Because we need to build a database that would know our data
> semantics for carrying out inference, aggregation, constraints
> propagation etc. Otherwise I need to write complex queries myself.

How can it be otherwise? The computer is not a mind-reader.

> >>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?
> Microsoft follows (approximately) this way in its WinFS file system.
> Although their approach is based on Object-Role Modeling the general
> direction is clear - we need to relate our data items in such a way that
> the underying storage is able to do some tasks for us automatically.

What tasks? What need is served? Again, how is it useful?  

> >>- How many dimensions (degrees of freedom) does it have?
> >
> > How do you determine this in your model? What inhibits this in the RM?
> RM is too low level mnodel and in this sense we are able to implement
> almost everything. The main problem is that the database itself (the
> model itself) is unaware of what we are doing, what we are implementing,
> what our data means, what is the purpose of some query.

Constraints are the mechanism for specifying semantics in the RM. They are of course just an approximation---but do you claim that with your model, a computer can actually understand the real-world meaning of the information you enter into it? How?

> In paritucular, in RM nothing prevents you to introduce all the
> necessary additional features (line dimensionality, hierarchy etc.) but
> it simply will know nothing about that.

It will know what you tell it, and the inferences it is able to draw from that.

> >>- 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.
> I do not think it is technically difficult. The main problem is that it
> contradicts to the spirit of the RM, i.e., this question is not
> considered actual, meaningful and even legal.

How so? In its simplest form, the question is just "is this relation a subset of that?"---unless I mistake your meaning. Please explain.

> >>- 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.
> This is why OLAP was developed. We need different levels of details.
> This in turn requires other mechanisms like constraint propagation.

We need aggregate functions, you mean?

Received on Thu Jun 16 2005 - 09:09:22 CEST

Original text of this message