Re: Relational lattice completeness

From: Vadim Tropashko <vadimtro_invalid_at_yahoo.com>
Date: 7 Apr 2006 10:05:06 -0700
Message-ID: <1144429506.320944.265390_at_i40g2000cwc.googlegroups.com>


Mikito Harakiri wrote:
> Next, consider the step #13 in push-cross-through-project rewritings on
> page 8. Informally, it is obvious that
>
> `x` /\ B(z) = `xz`
>
> (cross product of the empty relation `x` with the other relation is
> empty)
> but what axiom identity were appied on this step exactly?

This step may indeed require some formal clarification, which might be helpful in identifying additional axiom identities. There is no complexity here from the RDBMS implementation perspective however. This is supposed to be a step in query optimization phase. Let me put query optimization into the bigger perspective of query evaluation, which consists of the two phases: static analysis (aka query compilation, aka query optimization) and dynamic execution. On step #13 the optimizer notices that there is a special identity that one of the relations in the expression `x` /\ B(z) meet

`x` /\ 00 = `x`

In this situation the optimizer is allowed to perform full evaluation of the expression `x` /\ B(z). (The general principle is that we can do full evaluation of static compilation phase if we guarantee that the dynamic execution of the query is fast). The query evaluation results in the empty relation `xz`. Received on Fri Apr 07 2006 - 19:05:06 CEST

Original text of this message