# Re: more on delete from join

Date: Tue, 01 Sep 2009 17:03:12 GMT

Message-ID: <ktcnm.43362$PH1.627_at_edtnps82>

Mr. Scott wrote:

...

> An appeal to logic. Affirming the disjunction of two ground atoms,

*>
**> Pabc OR Qabc
**>
**> implies that either Pabc is true or Qabc is true or both are true.
**> Similarly, denying the conjunction of two ground atoms,
**>
**> NOT (Pabc AND Rabd),
**>
**> is equivalent to affirming the disjunction
**>
**> NOT Pabc OR NOT Rabd
**>
**> which implies that either Pabc is false or Qabd is false or both are false.
**> Either case involves affirming a disjunction, not a conjunction.
**> ...
*

> Now let's apply this logic to relational theory. Let there be tables with

*> predicates P, Q and R, a view that is the union of the table with predicate
**> P and the table with predicate Q, and a view that is the join of the table
**> with predicate P and the table with predicate R. Inserting a row (a,b,c)
**> into the union view affirms the disjunction Pabc OR Qabc; deleting a row
**> (a,b,c,d) from the join view affirms the disjunction NOT Pabc OR NOT Rabd.
**> Both inserts into the union view and deletes from the join view affirm
**> disjunctions, and as a consequence, neither inserts into the union view nor
**> deletes from the join view have unique results.
**>
**> I can see the benefit of recording disjunctive information. If it is known
**> that A OR B is true, then it should be possible to assert A OR B, even if it
**> is not known which is true. I just don't think that an insert into a union
**> view is the correct way to do it. A better way would be to use three
**> tables, one for facts like 'It is known that A.' one for facts like 'It is
**> known that B.' and one for facts like 'It is known that A OR B, but not
**> which.'
**> ...
*

That's a clear, logical and very direct position. Mine is more complicated, maybe I should try to be more formal about it. Received on Tue Sep 01 2009 - 19:03:12 CEST