Re: Guidelines to a decent support of surrogate key implementation
From: paul c <toledobythesea_at_oohay.ac>
Date: Fri, 25 May 2007 01:04:20 GMT
Message-ID: <oCq5i.218339$aG1.100279_at_pd7urf3no>
>
> cascade
>
>
> cascade
>
>
>
> Not necessarily. If User 1 has a snapshot transaction going, the users 2
> and 3 can proceed
> without wiping out the data the DBMS needs to provide User 1 with a
> consistent view of the data.
>
>
Date: Fri, 25 May 2007 01:04:20 GMT
Message-ID: <oCq5i.218339$aG1.100279_at_pd7urf3no>
David Cressey wrote:
> "DBMS_Plumber" <paul_geoffrey_brown_at_yahoo.com> wrote in message
> news:1180030480.560699.111200_at_o5g2000hsb.googlegroups.com...
>
>>On May 24, 9:27 am, "Brian Selzer" <b..._at_selzer-software.com> wrote: >> >> >>>CON >>>Keys can change over time. Consider the following: >>> >>>R{A, B, C} | AB --> C, and several other relations referencing R[AB]. R: >>>{A:1, B:2, C:3} >>>{A:2, B:2, C:2} >>> >>>T1: User 1 reads row {A:1, B:2, C:3}, starts a long-running calculation. >>> >>>T2: User 2 updates row {A:1, B:2, C:3} to {A:3, B:2, C:3} updates
>
> cascade
>
>>>throughout the database. R: >>>{A:3, B:2, C:3} >>>{A:2, B:2, C:2} >>> >>>T3: User 3 updates row {A:2, B:2, C:2} to {A:1, B:2, C:3} updates
>
> cascade
>
>>>throughout the database. R: >>>{A:3, B:2, C:3} >>>{A:1, B:2, C:3} >>> >>>T4: User 1 updates row {A:1, B:2, C:3} to {A:1, B:2, C:4} -- BUG!!!! >> >> All your example does is show that users who don't understand >>isolation levels will create bugs. >> >> If User 1 was planning to update the tuple they had read, then they >>damn well better ensure that their read is repeatable. This would >>block User 2 and User 3.
>
>
> Not necessarily. If User 1 has a snapshot transaction going, the users 2
> and 3 can proceed
> without wiping out the data the DBMS needs to provide User 1 with a
> consistent view of the data.
>
>