Path: dp-news.maxwell.syr.edu!spool.maxwell.syr.edu!drn.maxwell.syr.edu!news.maxwell.syr.edu!border1.nntp.dca.giganews.com!nntp.giganews.com!local1.nntp.dca.giganews.com!nntp.comcast.com!news.comcast.com.POSTED!not-for-mail
NNTP-Posting-Date: Thu, 09 Sep 2004 01:45:49 -0500
Reply-To: "Laconic2" <laconic2@comcast.net>
From: "Laconic2" <laconic2@comcast.net>
Newsgroups: comp.databases.theory
References: <3lmnj0tdqs6n98so05hslbs6b0rjqkkdk7@4ax.com> <fo-dnaxhxYtECabcRVn-uA@comcast.com> <7dhqj057v2nb3jvgig151psbhl1mg9hrsm@4ax.com> <PP-dnUj6cu9gX6HcRVn-oQ@comcast.com> <3fsrj0lpe76pfvfjfe1ur2ubpb3hqu69fg@4ax.com> <20040907154957.697949a1.felix.klee@inka.de> <h98tj0p6bo8e15h4dmsbn68cul78u2ldjr@4ax.com> <20040907235658.3ae1b57a.felix.klee@inka.de> <46auj05c5ia04turqujjjm7rq97jn3d30c@4ax.com> <ap-dndW9qNif0qLcRVn-uQ@comcast.com> <42P%c.150624$Fg5.121300@attbi_s53>
Subject: Re: How to ensure data consistency?
Date: Thu, 9 Sep 2004 02:45:11 -0400
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1437
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441
Message-ID: <a7-dndEn-KCAYaLcRVn-rQ@comcast.com>
Lines: 39
NNTP-Posting-Host: 24.60.68.134
X-Trace: sv3-2E3O+lbQGBQ3qMrnQmUg8WVv/lcrYS9BIbCAHRsrVOglrra1spg3BXGGpc0tinFU/OLUHreujSMlYAB!K+W2rttc4teihBQt4Z19UjAYHvgAFLslvRuiw6crplA+m8zOlhTVh5ydx6I+
X-Complaints-To: abuse@comcast.net
X-DMCA-Complaints-To: dmca@comcast.net
X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers
X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly
X-Postfilter: 1.3.13
Xref: dp-news.maxwell.syr.edu comp.databases.theory:25880


"Marshall Spight" <mspight@dnai.com> wrote in message
news:42P%c.150624$Fg5.121300@attbi_s53...
> "Laconic2" <laconic2@comcast.net> wrote in message
news:ap-dndW9qNif0qLcRVn-uQ@comcast.com...

> Is the ability to defer constraint checking until commit time
> essential? Should it be controlled by the constraint or by
> the transaction? (That is, should it be the case that one
> specifies to defer checking when one is creating the transaction,
> or does one rather specify of a constraint that it should be
> checked at commit time instead of statement time?)

A DBMS that lacks deferrable constraint checking is lacking a very important
feature.
There are certain things that CANNOT be done without it.  Mutually
prerequisite table entries is one of them.

A constraint should specify whether it is checked at action time, or
deferred, or deferrable (the default).
Deferrable constraints should be specified as deferred at transaction start
time, by constraint name,  or in general.

Transaction start should be an explicit step in a program, just like commit
or rollback.  If the language permits
implicit transaction start, this should be avoided in programs as a matter
of programming style.

Implicit transaction start in interactive SQL is ok,  as long as you keep
interactive SQL out of the wrong hands.

IMO, of course.







