Re: Surrogate Keys: an Implementation Issue

From: Brian Selzer <>
Date: Sun, 30 Jul 2006 21:56:36 GMT
Message-ID: <oW9zg.183829$>

"paul c" <> wrote in message news:mJ6zg.277632$Mn5.224019_at_pd7tw3no...
> Brian Selzer wrote:

>> "paul c" <> wrote in message 
>> news:qt4zg.281144$IK3.267521_at_pd7tw1no...
>>> Brian Selzer wrote:
>>>> "paul c" <> wrote in message 
>>>> news:zTOyg.269253$IK3.233927_at_pd7tw1no...
>>>>> Brian Selzer wrote:
>>>>>> "paul c" <> 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.

You're probably right. I generally visualize a discussion as an interplay between participants in a definite sequence, rather than applying a set of rules to the superset of all possible database states and coalescing around the one that meets that criteria.

>>> 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.

I apologize for the confusion here. I don't know what I was thinking. Maybe I shouldn't post after pulling an all-nighter.

> 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 - 23:56:36 CEST

Original text of this message