Path: dp-news.maxwell.syr.edu!spool.maxwell.syr.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.media.kyoto-u.ac.jp!newshub.sdsu.edu!newscon04.news.prodigy.net!prodigy.net!newsdst01.news.prodigy.net!prodigy.com!postmaster.news.prodigy.com!newssvr12.news.prodigy.com.POSTED!88885bfe!not-for-mail
From: "Brian Selzer" <brian@selzer-software.com>
Newsgroups: comp.databases.theory
References: <1153323860.787392.82180@75g2000cwc.googlegroups.com> <c8WdnTMOuPpnxSPZRVnyhA@pipex.net> <1153327060.322495.41590@h48g2000cwc.googlegroups.com> <xn0ep1e3sn11oo000@news.individual.net> <7c5xg.137534$H71.28175@newssvr13.news.prodigy.com> <XQ5xg.14298$pu3.333248@ursa-nb00s0.nbnet.nb.ca> <Rs8xg.72439$Lm5.35322@newssvr12.news.prodigy.com> <X1gxg.15744$pu3.340040@ursa-nb00s0.nbnet.nb.ca> <BHnxg.137716$H71.1837@newssvr13.news.prodigy.com> <PPMxg.21411$pu3.353655@ursa-nb00s0.nbnet.nb.ca> <cvXxg.73290$fb2.9506@newssvr27.news.prodigy.net> <6f0yg.40617$u11.11553@tornado.ohiordc.rr.com>
Subject: Re: Surrogate Keys: an Implementation Issue
Lines: 46
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.3790.1830
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.1830
X-RFC2646: Format=Flowed; Response
Message-ID: <l12yg.75876$Lm5.10491@newssvr12.news.prodigy.com>
NNTP-Posting-Host: 68.73.73.118
X-Complaints-To: abuse@prodigy.net
X-Trace: newssvr12.news.prodigy.com 1154002129 ST000 68.73.73.118 (Thu, 27 Jul 2006 08:08:49 EDT)
NNTP-Posting-Date: Thu, 27 Jul 2006 08:08:49 EDT
Organization: SBC http://yahoo.sbc.com
X-UserInfo1: OXYUS\WDOJWWCFD[LZKJOPHAWB\^PBQLGPQRZ\YIJYWZUYICD^RAQBKZQTZTX\_I[^G_KGFNON[ZOE_AZNVO^\XGGNTCIRPIJH[@RQKBXLRZ@CD^HKANYVW@RLGEZEJN@\_WZJBNZYYKVIOR]T]MNMG_Z[YVWSCH_Q[GPC_A@CARQVXDSDA^M]@DRVUM@RBM
Date: Thu, 27 Jul 2006 12:08:49 GMT
Xref: dp-news.maxwell.syr.edu comp.databases.theory:43639


"J M Davitt" <jdavitt@aeneas.net> wrote in message 
news:6f0yg.40617$u11.11553@tornado.ohiordc.rr.com...
> [big snip]
>
>> What does that have to do with the fact that Bob just updated the wrong 
>> row?
>
> The wrong row?  What was wrong about it?  The database was
> told, for example, "Make Suzie's record look like this."
>
> The confusion arising because "Suzie is George and William
> is Suzie but Bob thought George was still Suzie" isn't
> going away just because you slap another value on all your
> records; you're just moving the confusion around.
>
> Surrogates aren't going to solve the problems stemming
> from the fact that Bob is working on a stale and partly
> wrong representation of the data.
>
Sure they are, because with surrogates you can determine with certainty 
whether or not the row you're working on still exists in the database and 
has the same values for all columns prior to committing the changes.  It is 
not possible to update the wrong row if it is addressed with a surrogate 
key.
>
>> How could you prevent that in application code, or in the middle-tier? 
>> You can't, unless you either (1) lock the row until Bob gets back from 
>> Tahiti, or (2) use a surrogate to guarantee that the row that's about to 
>> be updated is the same as the one that was read out.
>
> Your list is too short; there are more alternatives.  We
> don't have to wait for Bob and a surrogate isn't going to
> solve the problem without creating another problem.
>

Yes?  What are they?  And what other problems are created by using 
surrogates?

>>
>>>You are a vociferous ignoramus. It suffices to observe that fact.
>>>
>>>[remaining nonsense snipped without further effort]
>>
>> 

