Re: teaching relational basics to people, questions

From: Mr. Scott <do_not_reply_at_noone.com>
Date: Thu, 10 Dec 2009 21:12:26 -0500
Message-ID: <POGdnfPXSqMWN7zWnZ2dnUVZ_qudnZ2d_at_giganews.com>


<compdb_at_hotmail.com> wrote in message news:35bb0b6c-af79-4c41-beb1-34fe00e81643_at_y32g2000prd.googlegroups.com...
> On Nov 29, 12:31 am, "Mr. Scott" <do_not_re..._at_noone.com> wrote:
>> I am going to revisit the example I posted for paul.
>
> Thank you for giving an example. Especially when my stated intent is
> to show you misunderstand something.
>
> Your explanation is still unclear.
>
> The user looks at the world and the relation variable's predicate(s)
> and combines them to determine what rows to put in and what rows to
> leave out. Similarly, they look at the rows present and absent in a
> relation variable and combine them with the predicate(s) to produce
> statements about the world. Please tell me what the designer gives
> with a relation variable (a predicate, or set of predicates?) and the
> correspondence between an overall proposition about the world and the
> rows in and the rows not in that variable (now and/or previously).
>
>> CTRS {COURSE, TEACHER, ROOM, STUDENT},
>
>> each row states that a particular COURSE is taught by a particular
>> TEACHER
>> in a particular ROOM to a particular STUDENT.
>
>> one effectively asserts
>> that 'there is a course <COURSE>,'
>> that 'there is a teacher <TEACHER>,'
>> [...]
>
> The designer gives a relation variable. It's not clear what else you
> claim they give. A single predicate per variable? A set of predicates
> per variable? Do you mean that (some function of) this list is a
> clarification of the preceding (parameterized) statement? If so,
> exactly what predicate does the user form from the list that is
> supposed to be equivalent to the statement? Or do you mean that the
> designer specifies the statement and you think the list is derivable
> from the statement by the system?
>
> I can't tell when you write "when one inserts a row" or "inserting a
> single row", whether you just mean mean "when a given row is in a
> relation". Or whether by "inserting a single row" or "deletes that
> only row" you specifically mean the old value of a relation variable
> is also involved in mapping to instantiated predicates.
>
>> Either all of the atomic formulas
>> represented by the row are true, or none of them are. That is consistent
>> with the logical connective between those formulas being IFF rather than
>> AND.
>
> First you write "one effectively asserts" the things in the list
> (whatever "effectively" means); asserting a number of things is the
> same as asserting their conjunction. But then you write "the logical
> connective between those formulas being IFF", so I guess you mean the
> IFF of the things in the list is asserted. So you're not being clear.
>
> And no, it's not consistent with the logical connective between those
> formulas being IFF. For example, although
> a1 IFF a2 IFF a3
> is true when all ai are true and it is false when all ai are false, it
> is also true when a1 and a2 are false and a3 is true. So the above
> expression does not assert that they're all true or all false.

Thank you for pointing that out. I really wasn't very clear. By interdependent I mean that the connective between any two atomic formulas (atoms) is a biconditional, not that the only connectives are biconditionals, so for three atoms, it's not

a1 iff a2 iff a3,

but rather,

(a1 iff a2) and (a1 iff a3) and (a2 iff a3)

which is true whenever all ai are true or all ai are false and false otherwise.

For four atoms, it's not

a1 iff a2 iff a3 iff a4,

but rather,

(a1 iff a2) and (a1 iff a3) and (a1 iff a4) and (a2 iff a3) and (a2 iff a4) and (a3 iff a4)

which is true whenever all ai are true or all ai are false and false otherwise.

> For
> that you would want something like
> (a1 AND a2 AND a3) OR ((NOT A1) AND (NOT a2) AND (NOT a3))
> ie (NOT (a1 OR a2 OR a3)) OR (a1 AND a2 AND a3)
> ie (a1 OR a2 OR a3) IMPLIES (a1 AND a2 AND a3)
> ie the whole thing is true when all are false or all are true but it's
> false when there's a mix. (Not that I think you ever want the ai all
> individually false.)
>
> On the other hand I can imagine that you are thinking that for each
> syntactically valid row it is in the relation iff all the
> corresponding instantiated assertions in the list are true. But that's
> not what you have said. (In fact you've said "all of the atomic
> formulas represented by the row are true, or none of them are".) And
> anyway that's not a relation's statement about the world; it is a
> statement about how the value of a relation variable maps to its
> statement about the world.

Constraints specify what can be represented in a table. They don't say anything about what actually is the case other than that it can be the case. What actually is the case is a matter of interpretation.

>
>> If
>> The information content of a table
>> is the logical sum (disjunction) of the information represented by each
>> row.
>
> This is clearer, but as I said I can't figure out what you think is
> asserted by a row in the table (or by a row not in 'the table) to be
> ORed together. (Note that it makes sense to OR together equalities
> like COURSE='Math' as the characteristic predicate of a set, but to
> AND together things like "there is a course 'Math'" as a statement or
> assertion about the world.) But I also don't know whether you mean
> this applies to all relation variable values, or only the values of
> ones that that are empty, or just became empty or nonempty, or didn't,
> or what.
>
Consider a typical row for CTRS,

{COURSE:Physics, TEACHER:Brown, ROOM:145, STUDENT:Jones}

This row doesn't "state" anything. That it is in the table is evidence that someone with authority asserted as fact that Brown teaches Jones Physics in room 145, and that it is still in the table is evidence that noone with authority has since denied it. It is reasonable, therefore, to treat as fact that Brown teaches Jones Physics in room 145. From this fact a number (14 to be exact) of other facts can be inferred. That's 15 distinct facts in total represented by a single row. Each row of CTRS isn't just a single fact, but a family of interdependent facts. Brown can't teach Jones Physics in room 145 if he doesn't teach Physics or if there is no room 145, and under the assumptions that CTRS is the only table in the database and that there is only a single row that mentions Physics, Brown, 145 or Jones, there can't be a student called Jones unless he is being taught Physics by Brown in room 145. The addition of a second row, for example,

{COURSE:Calculus, TEACHER:Green, ROOM:154, STUDENT:Jones},

weakens that condition so that there can't be a student called Jones unless he is being taught Physics by Brown in room 145 or he is being taught Calculus by Green in room 154. The addition of a separate table, S {STUDENT}, for example, also weakens the condition because then there could be a student called Jones even if he isn't taking any courses from any teachers in any rooms. It doesn't change the form of the assertion represented by each row, though, where the logical connective between any two atoms is IFF, yielding a non-atomic formula, but the logical connective between any two of those formulas is AND.

The logical connective that separates the facts represented by one row from the facts represented by another is OR (unless there is a self-referencing inclusion dependency), as is the logical connective that separates the facts represented in one table from the facts represented in another (unless there is an inclusion dependency).

> So please start out with what the designer gives, then tell me clearly
> how to form the proposition is that is "the information represented by
> each row" that is syntactically valid, then what the proposition is
> that is "the information content of a table". And whether it depends
> on the old state as well as the new. And tell me whether I am using
> that predicate as a statement about the world or as the characteristic
> predicate of some set. In other words, be clear. Then I can discuss
> your approach (ie show it doesn't do what you think it does).
>
> It's also pointless for me to address your justifications for
> individual steps if I don't understand the overall process.
>
> philip
Received on Fri Dec 11 2009 - 03:12:26 CET

Original text of this message