Re: teaching relational basics to people, questions

From: Kevin Kirkpatrick <>
Date: Tue, 15 Dec 2009 09:02:09 -0800 (PST)
Message-ID: <>

On Dec 15, 4:34 am, Roy Hann <specia..._at_processed.almost.meat> wrote:
> 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.
> --
> Roy- Hide quoted text -
> - Show quoted text -

In the real world, I qualify the results of all queries as, "According to the database [inference from the query]". I'll recast my point in this light. My question on this thread was: given a database with only one relvar BIG_US_CITIES {CITY, STATE} and associated predicate "<CITY> is a big city in the state of <STATE>", if I run a query with selection "STATE='Rhode Island'" and get no rows back, should I interpret this result as:

  1. "According to the database, Rhode Island is not a state" or
  2. "According to the database, there are no large cities in Rhode Island"

Mr. Scott is [I believe] claiming that both of these are valid interpretations of the query result. I'd argue that only the latter interpretation valid, and feel the example itself shows mine to be the more sensible approach. Received on Tue Dec 15 2009 - 18:02:09 CET

Original text of this message