# 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.*

*> ...*

Yes, it's true that NOT (Pabc AND Rabd) by itself doesn't imply NOT Pabc AND NOT Rabd. However, "Pab = Rab AND NOT (Pab AND Rab)" does imply the conjunction NOT Pab AND NOT Rab. In other words, we can retract equal projections of subsets of Pabc and Rabd if we can interpret a delete statement in terms of Pab and Rab.

*> 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 - 12:03:12 CDT