Re: a union is always a join!
Date: Sat, 07 Mar 2009 14:26:29 GMT
"paul c" <toledobythesea_at_oohay.ac> wrote in message
> Brian Selzer wrote:
>> "Walter Mitty" <wamitty_at_verizon.net> wrote in message
>> I suppose that by now you're asking, why does this matter? Because <OR>
>> is just an operator of a relational algebra. The application of <OR>
>> that Paul referred to is a gross oversimplification of what actually has
>> to occur during a database update. While disjunction is a necessary part
>> of the calculation of what is the case, the remaining step of eliminating
>> expressions that are true in all interpretations cannot be ignored. It
>> should be easy to see that whenever there is a "DELETE,"
>> there will be expressions like (p \/ ~p) in the logical sum of the two
>> assertions. These are redundant because they are a consequence of just
>> the logic, and as a result they do not convey information.
> Walter, this is to you, I'm not going to argue with Brian S about <OR>,
> which I consider to be a convenient trick to allow an implementation to be
> defined on an algebra, one that parallels boolean algebra, which is
> helpful for comprehension. All Brian S is talking about is how the
> artifices of an implementation should be interpreted (which I think is an
> application question).
I'm going to suggest that there are multiple layers of representation/interpretation, and not just the two layers many of us are accustomed to using in our discussions. I'm also going to suggest that what Brain S. calls "oversimplification" is almost exactly what others call "abstraction". I'm also going to suggest that without abstraction you don't get any independence, and without independence, you don't get much of any bang for the buck. That may be of zero theoretical importance, but it's of interest to me.
> Long before digital machines were invented, some mathematicians decided
> that ordinary arithmetic would not be closed under division. Whereas I'd
> say that closure of operations is very desireable for auttomation, ie. for
> a machine, no matter whether it's a real or virtual machine. While Codd
> talked a lot about exceptions and so may not have agreed, and while
> McGoveran puts his argument in terms of data independence, for me the
> controversy about updating views comes down to whether one desires a
> logical machine to have closure under union (and under negation).
I'm afraid this is over my head. I appreciate the fact that you don't talk down to me, and I'm not asking you to change that. But I need some intermediate steps in the above chain of reasoning, simply due to my own ignorance. I got the part about non closure under division. I didn't get the connection between updating views and closure under union.
Closure under negation is problematic. For finite data sets, we can define closure in a finite way. But our definition loses clarity when we try to extrapolate from finite sets to infinite sets. Now most of us, when we think about the data in a database, are content to think of this data as being "a finite subset of an infinite reality". We usually call this subset the "universe of discourse". There may be logical contradictions here, but I don't detect them at my low level of thinking. But when you do negation, the question of whether the universe of discourse is finite or infinite becomes consequential. Received on Sat Mar 07 2009 - 15:26:29 CET