Re: Do Transactions guard against corruption?
- From: "Michel Walsh" <vanderghast@VirusAreFunnierThanSpam>
- Date: Wed, 6 Aug 2008 09:58:28 -0400
It seems you put in the same bag very different concepts such as data
integrity and database corruption, mainly when you speak of 'user error'.
If the user enter 23 when what should be entered is 32, that is a mistake.
That is a user error and indeed, no transaction could help. A cup of coffee,
having a validation number (CRC or otherwise) to be entered, having two
people entering the same data are all techniques that may help, but
transaction, no.
If the user fails to enter required data, or enter a not existing reference,
that should be covered and trapped by table design (not null) or by data
integrity rule, etc.
Transactions have NEVER been designed as safeguard for those previous kind
of 'user errors' in mind.
Sure, go immediately to the absurd, if its hard disk fails, then you are
likely to have to relay on having a RAID system, NOT on transaction, to be
able to recover from these errors.
You can come with cases were transactions are useless, indeed.
BUT
the table structures are protected by lock, when you modify them, and
internally by a transaction (never got the error message that the
modification(s) could not be written because some data won't match a new
constraint you just added ?). But you won't use transaction "to protect
table structure" when no-one is modifying them, you use a back-up (or
scripts, ... or RAID).
Vanderghast, Access MVP
"david" <david@xxxxxxxxx> wrote in message
news:uUVqlk69IHA.4956@xxxxxxxxxxxxxxxxxxxxxxx
Most corruption is caused by user errors. For example,
deleting the wrong record. Or updating the wrong record.
Or Adding the wrong record.
That happens, and your data is wrong: it is no longer
true. It is corrupt.
Access no longer guards against your computer failing
or being turned off while you are using it (as it did in Access
2.0), so the only kind of corruption transactions now
prevent is the kind of corruption that occurs when you
have a programming or data error that halts a complex
sequence of actions, leaving some of your tables updated
and some of your tables not updated. This is database
corruption: your data is corrupt.
A transactional file system like Novell Netware could do
the same thing at the file system level, and it could be
used (not with Access) to prevent your data becoming
corrupted when the network went down or your computer
turned off.
Access also sometimes has problems with the structure
of the database becoming corrupted. Transactions are
not used by Access to protect the structure of the database.
If transactions were used to protect the structure of the
database, they would protect the structure of the database
during complex sequences of actions, just like you can
use them to protect your data during complex sequences
of actions.
Access still does not use transactions to protect the
database structure even if you use transactions to
protect your data during complex sequences of actions.
When you said 'corruption' you probably meant damage
to the database structure. No, transactions do not
prevent that, because transactions are not used by
Access at that level.
If you only have simple database actions, then transactions
do not do anything.
It is good to keep in mind that corruption of your
data by a network error is much less likely than
corruption of your data by user error. Transactions
do not prevent user error.
(david)
.
- Follow-Ups:
- Re: Do Transactions guard against corruption?
- From: JString
- Re: Do Transactions guard against corruption?
- References:
- Do Transactions guard against corruption?
- From: JString
- Re: Do Transactions guard against corruption?
- From: david
- Do Transactions guard against corruption?
- Prev by Date: Re: Rate Customers by Invoiced this Year Field
- Next by Date: Re: Rate Customers by Invoiced this Year Field
- Previous by thread: Re: Do Transactions guard against corruption?
- Next by thread: Re: Do Transactions guard against corruption?
- Index(es):
Relevant Pages
|
Loading