1. "Transactions are bad, real bad" - discuss
In an article under the thread "Do Data Models Need to [be] built on a
Mathematical Concept?", Paul Vernon commented:
>>transactions
>
> Dead wrong. Transactions are bad, real bad. In short they are not
> compatible with the 'arrow of time'. They let you freeze time and
> that is not a good model of reality. Start a new thread if you want
> to discuss the details, I've a draft paper on the subject and a
> could do with some intelligent challenges to sharpen up my
> argument.
Herewith, a new thread - unless someone else got there first.
I'm sympathetic to the Date/Darwen view (espoused in The Third
Manifesto and in Temporal Data) that a single statement should be the
scope of a transaction, once you allow what would currently be a
sequence of statements to be treated as a unit -- using the SQL notation:
UPDATE Table1 SET ... ,
UPDATE Table2 SET ... ,
INSERT INTO Table3 ... ,
DELETE FROM Table4 ...;
All four operations are part of a single compound statement and
collectively form a single transaction.
Is that anything remotely resembling what you're thinking, Paul?
I assume that you're not arguing that it is unnecessary to have
something akin to a transaction, (or a saga, or a set of compensating
actions), in the sequence:
BEGIN WORK;
UPDATE Accounts
SET Balance = Balance - 1000000
WHERE AcountOwner = 'Paul Vernon';
UPDATE Accounts
SET Balance = Balance + 1000000
WHERE AccountOwner = 'Jonathan Leffler';
COMMIT WORK;
If the two UPDATE operations are not treated somewhat atomically - if
the first can succeed and yet the second can fail (boo, hoo) without
somehow undoing the first - then Paul is 1000000 currency units (GBP)
out of pocket (and so am I, but I didn't have them in the first place,
whereas maybe Paul did, and more significantly, maybe he now owes the
bank those currency units he didn't already have in his posession).
--
Jonathan Leffler #include <disclaimer.h>
Guardian of DBD::Informix v2003.04 -- http://dbi.perl.org/
2. Help files in P5
3. max of ("...","...","..")
4. Distinct - OrderBy - what is it?
5. Meaning of "Reads" column in Profiler
6. pgsql/. configure
7. Meaning of "GO" in Transact SQL
8. BDE lock-error information on Borland BDE-support TI-pages.
9. meaning of "declarative"
10. Meaning of message "First Chance Exception"
11. Meaning of "number of worker processes"
12. What does it mean "Fuzzy Checkpoint"?
13. meaning of "unexpected error: link range"