# Re: Modeling question...

Date: Fri, 14 Nov 2008 13:49:18 -0400
Message-ID: <491dba23\$0\$5458\$9a566e8b_at_news.aliant.net>

```>> ...
>> 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"!

Original text of this message