Re: Surrogate Keys: an Implementation Issue

From: paul c <toledobythesea_at_oohay.ac>
Date: Sun, 30 Jul 2006 18:17:54 GMT
Message-ID: <mJ6zg.277632$Mn5.224019_at_pd7tw3no>


Brian Selzer wrote:

> "paul c" <toledobythesea_at_oohay.ac> wrote in message 
> news:qt4zg.281144$IK3.267521_at_pd7tw1no...

>> Brian Selzer wrote:
>>> "paul c" <toledobythesea_at_oohay.ac> wrote in message 
>>> news:zTOyg.269253$IK3.233927_at_pd7tw1no...
>>>> Brian Selzer wrote:
>>>>> "paul c" <toledobythesea_at_oohay.ac> wrote in message 
>>>>> news:g9Nyg.263082$iF6.250988_at_pd7tw2no...
>>>>>> Brian Selzer wrote:
>>>>>>> What's the point of a database if it doesn't reflect some aspect of 
>>>>>>> reality. ...
>>>>>> To talk precisely about whatever we want to talk about.  Nothing more. 
>>>>>> Doesn't need to be real.
>>>>>>
>>>>> Agreed.  But even a conceived universe subsumes certain absolutes, such 
>>>>> as time.
>>>>>
>>>> In that case, the statements in the database should talk about time, 
>>>> ie., aspects of time.  These are different from statements about the 
>>>> time it takes the database to say something.
>>>>
>>> There can be no discussion without time.  Relational assignment cannot 
>>> exist without the concepts of before and after. ...

>> For some people, unfortunately, that is a matter of belief. In the
>> context of RT, I'd say it is mere willfullness. To see why, try to avoid
>> the words 'before' and 'after', using say, x and y instead to stand for
>> two relations (which might be the same). To ask which one (or two) does
>> the db state at this moment in time is the same as asking does it state x
>> or does it state y. But to ask which one(s) was stated yesterday requires
>> that we deliberately add time information. This is a choice that allows
>> us to ask the second question. The point is that we may not be interested
>> in the second question and choose not to state information about time
>> which makes the use of a time concept arbitrary.
>>
> 
> But the assignment operation by its nature determines the order of the 
> states x and y: one must always precede the other because the operation 
> itself produces that other.
> ...

I think you are pre-supposing a particular imperative implementation.

>> Maybe the confusion arises from Codd mentioning 'time-varying relations'.
>> In the interest of making his main points in an efficient way, I suspect
>> he didn't want to dot every last 'i'. As soon as you talk about
>> relational assignment you are talking about variable replacement, aka
>> pointer replacement. Logical replacement doesn't require any notion of
>> time. Nor does algebraic difference.

>>
> 
> Could you please elaborate on that?  Replacement, as I understand it, 
> subsumes that something exists and will be superceded by something else. 
> Algebraic difference isn't even related to assignment.  Difference is an 
> operator, assignment is an operation.  I don't understand why you included 
> it.  Perhaps you're conflating the concepts of operator and operation.
> 

Sorry, I don't see what words like subsuming or conflating have to do with this unless they are what you are trying to embody for mystical reasons. If you want to see a more complicated mental construction just because you think "it's really there in actuality", I can't stop you but it hardly seems necessary.

If you want to say that your preferred implementation of variables means that a variable v can't be assigned the value of y until after it has been assigned the value of x, go ahead, but God knows why I would want to. Personally, I don't see why I should want to change a theory because of an arbitrary implementation that has its own ideas.

You might as well say that time is inherent in the price of bananas. At the risk of contributing further to the confusion, I'll play with some more notation - I would be content with one that didn't bother with variable assignment, eg., v' = y, or v''' = y where the equals symbol means equals in the usual sense of identity (just like the algebra you learned in elementary school) and v is immutable and the apostrophe simply stands for a set difference or a set union, eg. a 'delta' that could be either, as in "v' = x UNION delta". AFAIAC, the environment can take care of preserving the left-hand-side that's got the most apostrophes. What do most apostrophes or deltas have to do with "before" or "after"? That kind of interpretation comes from implementations, not RT.

p Received on Sun Jul 30 2006 - 20:17:54 CEST

Original text of this message