Re: So let me get this right: (Was: NFNF vs 1NF ...)

From: Paul <paul_at_test.com>
Date: Sun, 13 Feb 2005 11:48:33 +0000
Message-ID: <420f3e92$0$47780$ed2619ec_at_ptn-nntp-reader01.plus.net>


Jan Hidders wrote:
> Paul wrote:

>> What would an untyped RVA be, and how could they lead to Russell's 
>> paradox?

>
> An untyped RVA is an RVA that can contain any finite or infinite relation.

OK so for a typed RVA you are specifying the exact predicate i.e. all the RVA's internal column names and types, and every RVA in that column has to have the same internal columns?

But for an untyped RVA, you could have one row with an RVA that has only one integer column, and an RVA in a different row but same column that has two char columns, etc?

>> I thought that you could only get Russell's paradox if you allowed 
>> RVAs to be relation variables rather than relation values?

>
> In the original naive set theory in which the paradox was formulated
> there is no notion of variable, just values.

But to get Russell's paradox you essentially need to be able to refer to a set that can contain itself. In other words, we need to be able to express the idea of a relation containing a copy of itself as an attribute in one of its rows.

I don't see how this is possible using relation-values, and given that relations are finite and explicitly enumerated row-by-row. You can only start to concieve of the idea of a relation containing itself if it's infinite, surely?

Maybe this is the part that says "there may not be practical problems" i.e. the problem only appears in some non-SQL DBMS that allows relations to be defined by expressions (and be infinte) rather than having to constructively defined.

The classic example is the book in the library that lists all directories (books that have lists of other books) held by the library, that don't include a reference to themselves. Should it list itself or not? But here it's about it containing a *reference* to itself (analogous to a relation-variable?) and not an actual copy of itself (analogous to a relation-value?).

I can see maybe there is a problem if you say something like:

   UPDATE foo SET rva = foo WHERE id = 123

But would the RVA column "rva" be set to the value of "foo" before the UPDATE? And as it's foo's *value* you're inserting, if (the outer) foo changes, the inner foo won't change as well.

It seems to me that to get Russell's paradox you need to be able to have a column that refers to relations by name, not by value. Isn't this the case in naive set theory also? That you can refer to sets both by name or by explicitly listing (or providing an expression for) their elements?

To understand it, I think I need to be able to see an explicit construction of a relational expression involving RVAs that shows Russell's paradox.

Paul. Received on Sun Feb 13 2005 - 12:48:33 CET

Original text of this message