Re: Very simple question to relational theorists.

From: <compdb_at_hotmail.com>
Date: Fri, 17 Aug 2012 12:34:50 -0700 (PDT)
Message-ID: <7ab00dbf-b970-49ce-9ca1-b7a42d7f32c1_at_googlegroups.com>


On Friday, August 17, 2012 8:37:23 AM UTC-7, Evgeniy Grigoriev wrote:
> On 5/4/2012 2:01 AM, Roy Hann wrote:

>> Be careful: "some special rules" is handwavy enough that it could mean
>> anything--including exposing physical details. 

> Is such system relational?
> I'm asking about this because it seems that I use reference constructions and all these dots seem to be the "physical details" you are speaking about. But in fact it's just play with names which is performed by RENAME operation.

When you started this thread I looked at some papers of yours in the arxiv and if that's the technique you're using, you are not being relational. You are just using multiple relation variables as a data structure and you are including values that act as pointers into the data structure by encoding locations in it.

To be relational a DBA must associate with every relation variable a predicate about the world that each of its present tuples makes true and each of its absent tuples makes false. It must map a tuple and a world situation to a truth value. With those pointers being there, if you tried to write predicates you would find that you have to mention relation variable names as further parameters. So you would not be giving predicates. You would be giving simultaneous equations whose unknowns were relation variable names, to be solved for valid relation variable values.

These equations would happen to form constraints for valid data structure values. But you can't use(update or query) the data structure relationally because you don't have predicates to tell you what the relation variable names in queries mean, and thus what the queries mean. Of course you can use relation operators to manipulate relation variables of your data structure just like you can use any operators to manipulate variables of any types. But that's not querying about the world.

Indeed you won't have told the user how to use (update and query) your data structure to describe a world.

And you need special operators to manipulate your data structure reasonably. These will be partly describable/implementable in terms of relation operators but also pointer encoding/decoding operators. Yes occasionally a special operator on some arguments can be implemented exactly as a relation operator on the same arguments but this is rare and incidental. When you are using relation operators in expressions that should be special operator calls that is the implementation/representation/"physical" leaking out. (Ironically this lower level is itself relations. Though not relational.)

As to your particular messages in this thread, you are not describing what you are doing clearly enough for us to give you an answer. You can't just write something that is consistent with your system. You have to write something that defines it to us.

philip Received on Fri Aug 17 2012 - 21:34:50 CEST

Original text of this message