Re: Modeling question...

From: Bob Badour <>
Date: Fri, 14 Nov 2008 13:49:18 -0400
Message-ID: <491dba23$0$5458$>

paul c wrote:

> David BL wrote:

>> ...
>> I'm not sure what you mean when you say that pointers imply
>> alternatives.  For example, given
>>     age(bill,n).
>>     value(n,10).
>> we can deduce that bill is 10. Assuming N is a key in value(N,V), we
>> know that a variable named n only holds one value at a given time (as
>> it should, by definition of a variable).
>> ...

> Here, 'n' is a value, not a pointer (as far as the RM is concerned), so
> I'd call this example a straw-man. I could choose to think of n as a
> programming variable that stands for one value at a time but as a logic
> variable it is a stand-in for some of all the possible values.
>>> The fundamental
>>> algebra doesn't have a resolution (nor indirection) operator that allows
>>> a variable to point to another variable (I presume the same goes for the
>>> calculus given that it has been shown to logically equivalent).
>> Yes the RA has no indirection operator.  However an indirection can be
>> expressed with a join.
>> ...

> I would say indirection is under-exploited in practice (even though
> Fabian Pascal once told me I was wrong to think of it as an option in
> logical dbms design). One could invent an "abstract identifer" for each
> department and assign employees to that instead of to the actual
> department names. To find out the actual department name for an
> employee would take more logical and physical work but the re-assignment
> of all employees in a department to a different department would need
> only the replacement of a single tuple in a table akin to your "value"
> table above and no change to the employees "table". I had the
> impression that Fabian P felt that the indirection was logically
> unnecessary whereas I felt that "unnecessary" doesn't imply "illogical"!

All you have done is introduce a physical artifact into the logical domain where it must now be maintained and manipulated by users instead of maintained and manipulated automatically by the dbms. A physical pointer unseen at the logical level would accomplish the very same physical performance characteristics (perhaps even better performance) without polluting the logical design. Received on Fri Nov 14 2008 - 18:49:18 CET

Original text of this message