Re: database design method

From: Jan Hidders <hidders_at_REMOVE.THIS.uia.ua.ac.be>
Date: 16 Nov 2002 01:51:13 +0100
Message-ID: <3dd59681$1_at_news.uia.ac.be>


Lauri Pietarinen wrote:
>Jan Hidders wrote:
>
>[...]
>
>> Sorry that this is so abstract, but it takes a lot of time to explain this
>> properly. If you want to know more:
>>
>> Jan Van den Bussche, Dirk Van Gucht, Marc Andries, and Marc Gyssens. On
>> the completeness of object-creating query languages (extended
>> abstract). In 33rd Annual Symposium on Foundations of Computer Science,
>> pages 372-379, Pittsburgh, Pennsylvania, 24-27 October 1992. IEEE.
>>
>> http://citeseer.nj.nec.com/420972.html
>
>OK, thanks. I plodded through the paper, but it was a bit too heavy for me
>(my algebra is kinda rusty). Is this bound to be a serious problem for
>normal database users, if such indentifiers are not provided for?

No. If you have also something like nested relations then there is actually no problem. But it would be more a problem if you insist on flat relations, but even then you can solve these problems with moving the identifier manipulation outside the DBMS into the application.

>A note on object identifiers: The "Other Orthogonal" Proscription nr.2
>in Manifesto (www.thethirdmanifesto.com) proscribes the use of object id's.
>Frankly, I don't know how the term is usually used, say in the context of the
>previous article (it was mentioned only once), but while we are on the
>subject I would like to point out a presentation by Darwen where
>he describes the subtyping scheme of the Manifesto and also makes
>(in my opinion) a convincing case against object id's (in the sense
>that they are used in the Object Oriented world).
>
>Presentation: http://www.TheThirdManifesto.com/taamoti.slides.pdf

I don't think he argues here against object identifers per se, but rather against the confusion between types for pointers and types for the things that pointers point to in many OO typing systems, which causes all these subtyping headaches that makes you see circles as ellipses. :-)

>Also Date's keynote address in this year's VLDB touches on the subject:
>
> http://www.cs.ust.hk/vldb2002/VLDB2002-proceedings/slides/S01P02slides.pdf

Yes, but the object identifier as pointer is not the type of object identifer I (and the article I mentioned) was talking about. What I meant could also be called "abstract value" and is in some sense the theoretical clean version of surrogate identifiers. The big difference with surrogate identifiers is that the user can never get to see their value and the only operation that is defined for them is equality. Such a restricted type may seem a bit strange and not very useful at first sight but it makes the life of the DBMS easier (for example the DBMS can reuse identifiers that are no longer used) and allows the user to define views and queries in which new identifiers are generated without using some clever arithmetic to generate new surrogate identifiers. In fact, if such object identifiers are possible (including special operators to generate them) IMO the good old flat relational model would be all we need. Received on Sat Nov 16 2002 - 01:51:13 CET

Original text of this message