Re: The Theoretical Foundations of the Relational Model

From: Jan.Hidders <hidders_at_hcoss.uia.ac.be>
Date: 24 Jun 2002 15:30:41 +0200
Message-ID: <3d171f01_at_news.uia.ac.be>


In article <3d1666c3.35718780_at_news.verizon.net>, JRStern <JXSternChangeX2R_at_gte.net> wrote:
>On 23 Jun 2002 16:24:07 +0200, hidders_at_hcoss.uia.ac.be (Jan.Hidders)
>wrote:
>>
>> However, for other things than modelling universes of discourse such as
>> programming the (there's only one?) object model might be fine, Paul's
>> article didn't claim anything about that.
>
> Well, his language suggested that relational theory captures rationality
> entire, leaving no need and no place for other theories.

That was not my impression, but I certainly agree with you that the relational model is not the only rational model.

>>>> When we point to a group of propositions with an identical structure
>>>> (refering to the same kinds of things in the same relationship to one
>>>> another) we label that group a 'relation'. It doesn't really matter
>>>> what order they appear in, or what order the elements appear in.
>>>
>>> An oversimplification popular amongst relational theorists. Doesn't
>>> matter to whom?
>>
>> Yes, it doesn't matter to whom.
>
> Find me the first person who lives on Elm Street, deterministically, in a
> relational system. It matters to me. Yes, sure, you can add some
> additional ordering field if that is a requirement, but if the requirement
> is very common (and it is), then the statement that order does not matter,
> was at best misleading.

Nobody said that order isn't important. What was said was that the order of propositions in the extension of a predicate doesn't matter. So if the order is important for you then you have to encode this somehow in your predicates by adding extra roles/columns. That keeps your reasoning within conventional logic (even in higher order logics the extension of predicates is unordered) and prevents a bias towards a certain way of storing the information. Why not keep things simple if there is an easy way to do so?

>>> And that's the big, black hole in relational theory: identity.
>>
>> It's dealt with by the requirement that relations need a primary key and
>> that domain values are identified by their representation.
>
> There's a big debate these days on just what a primary key is for. In
> olden days, it was supposed to be the unique specifier for the real-world
> object, which again assumes there is such a thing, say "Smith, Jane".
> Disregarding the problems of there being lots of "Smith, Jane" there is
> the question of what happens when she gets married and (in cases where it
> still occurs) changes her name. Cascading updates, to be sure, but there
> are places that does not do the trick.
>
> Hence, these days, a lot of practitioners, whatever the merit of the
> thing, use a synthetic primary key for every table. This is sort of a
> half-assed attempt to introduce identity into the relational model, where
> you would say it does not need to be, or was already present. The
> situation is entirely muddled.
>
> IMHO, this is an issue on which the relational school has been too
> dogmatic for too long, irrespective of OOP issues.

Ah, if that is what you mean then I agree that object identity is still a problem in the relational model. It boils down to the requirement that values in the domain must have a representation, i.e., we do not allow abstract object identifiers. In logic such restrictions are usually not made so the relational model has to justify this by itself. The biggest problems I see with this are

I don't see an easy solution to this right now, but I also don't think that OOP data models are going to help us much here. Note that to some extent the object identity problem is already solved in Entity-Relationship data models and Object-Role data models, which are better data models anyway. However, these don't really solve the problem of how to represent and manipulate data as elegantly as the relational model.

  • Jan Hidders
Received on Mon Jun 24 2002 - 15:30:41 CEST

Original text of this message