Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> comp.databases.theory -> Re: The Theoretical Foundations of the Relational Model

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@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.

Received on Mon Jun 24 2002 - 08:30:41 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US