Re: Codd and many-valued logics

From: Roy Hann <specially_at_processed.almost.meat>
Date: Tue, 7 Jun 2016 09:31:36 +0000 (UTC)
Message-ID: <nj649o$1pnk$1_at_gioia.aioe.org>


James K. Lowden wrote:

[snip]

> I argue that Missing should have direct representation in the database,
> but not in the logic. An attempt to use a missing value where an
> actual one is needed is a domain error.

[snip]

I am intrigued by this suggestion but how are we to square it with the concept a transaction?

A transaction moves the database from one consistent state to a (possibly different) consistent state. If data are missing then how can one say the database is consistent and therefore a transaction is complete? In SQL terms: how could one ever properly COMMIT such a "transaction"?

The obvious answer is that you cannot, therefore the partially asserted fact (and all other updates done by the transaction) should remain invisible to other users until the missing information is supplied. That is, in SQL terms, you would just allow piecemeal INSERTs rather than giving a domain error.

The cascade of practical problems that sets off overwhelms my willingness to enumerate them here! :-)

PS: I remain unconvinced this a problem that needs solving. It has the whiff of a trick for sweeping design errors under the carpet. And even if that isn't the intention, that is certainly how it would get used in the wild.

Roy Received on Tue Jun 07 2016 - 11:31:36 CEST

Original text of this message