Re: teaching relational basics to people, questions

From: Roy Hann <specially_at_processed.almost.meat>
Date: Tue, 15 Dec 2009 04:34:07 -0600
Message-ID: <>

Mr. Scott wrote:

> <> wrote in message
>> On Dec 11, 1:29 pm, Kevin Kirkpatrick <> wrote:
>>> Hello Mr. Scott,
>>> If I'm understanding your explanation properly, in a database with
>>> only table:
>>> (that is, lacking table STATES {STATE_CODE}) one must logically infer,
>>> from the CWA, that states with no big cities, e.g. 'RI', do not exist?
>> On Dec 11, 1:36 pm, Gene Wirchenko <> wrote:
>>> Effectively yes.
>> On Dec 11, 8:15 pm, "Mr. Scott" <> wrote:
>>> There isn't anywhere to record the assertion that there is a
>>> state with no big cities, so there can't be any.
>> It is more reasonable to say that the database is silent about the
>> existence of states and cities. But even if it did, the inference that
>> some state doesn't exist is wrong.
> No, it isn't wrong. An assertion that there is a state with no big cities
> is inconsistent with the definition of the database: it cannot be true.

I really do hesitate to comment on this ever more imbecilic thread, but this is a kind of discussion that always gets my goat.

Relational databases (and being generous, I will include SQL databases) use logic and set theory to manage human testimony about the world. We are not required to deny our own certain knowledge to satisfy the machinations of the DBMS. It is the DBMS that is constrained to use the closed world hypothesis, not us. But knowing that it is constrained in that way, we are obliged to design databases to accomodate what we know is true, and to never tell us anything we know is untrue.

But we have to accept that a DBMS can't tell us all that we know is true. We human users are never obliged to use a closed world when we interpret the result of a query.

Received on Tue Dec 15 2009 - 11:34:07 CET

Original text of this message