Re: Relational symmetric difference is well defined

From: Jan Hidders <hidders_at_gmail.com>
Date: Mon, 18 Jun 2007 02:39:02 -0700
Message-ID: <1182159542.073157.146030_at_g4g2000hsf.googlegroups.com>


On 18 jun, 03:11, "V.J. Kumar" <vjkm..._at_gmail.com> wrote:
> Jan Hidders <hidd..._at_gmail.com> wrote innews:1182119546.370762.75420_at_n2g2000hse.googlegroups.com:
>
>
>
> > On 16 jun, 15:13, "V.J. Kumar" <vjkm..._at_gmail.com> wrote:
> >> Jan Hidders <hidd..._at_gmail.com> wrote
> >> innews:1181948397.949921.43300_at_n2g2000hse.googlegroups.com:
>
> >> > On 15 jun, 23:17, "V.J. Kumar" <vjkm..._at_gmail.com> wrote:
> >> >> Jan Hidders <hidd..._at_gmail.com> wrote
> >> >> innews:1181919464.037821.176760_at_p77g2000hsh.googlegroups.com:
>
> >> >> > On 15 jun, 16:00, "V.J. Kumar" <vjkm..._at_gmail.com> wrote:
> >> >> >> Jan Hidders <hidd..._at_gmail.com> wrote
> >> >> >> innews:1181910061.495472.280190_at_c77g2000hse.googlegroups.com:
>
> >> >> >> > On 1 jun, 03:40, "V.J. Kumar" <vjkm..._at_gmail.com> wrote:
> >> >> >> >> Vadim Tropashko <vadimtro_inva..._at_yahoo.com> wrote
> >> >> >> >> innews:1180628927.976321.267880_at_a26g2000pre.googlegroups.com:
>
> >> >> >> >> > On May 30, 8:52 pm, Marshall <marshall.spi..._at_gmail.com>
> >> >> >> >> > wrote:
> >> >> >> >> >> Can you clarify the difference between set containment
> >> >> >> >> >> join and set equality join? The inverse of join is much
> >> >> >> >> >> on my mind these days.
>
> >> >> >> >> > Set equality join
>
> >> >> >> >> > A(x,y)/=B(y,z) is {(x,z)| {y|A(x,y)}={y|A(y,z)} }
>
> >> >> >> >> > Set containment join
>
> >> >> >> >> > A(x,y)/=B(y,z) is {(x,z)| {y|A(x,y)}>{y|A(y,z)} }
>
> >> >> >> >> > where the ">" is "subset of".
>
> >> >> >> >> The above formulas obviously are no longer first-order
> >> >> >> >> expressions. Along with the increased expressive power
> >> >> >> >> (e.g. it's trivial to define a powerset), you will reap the
> >> >> >> >> usual drawbacks of the higher order logic.
>
> >> >> >> > This was perhaps already clear, but it is the *formulation*
> >> >> >> > of the semantics which is not first-order. The semantics
> >> >> >> > themselves are clearly first order since they can be defined
> >> >> >> > in first order logic or the flat relational algebra.
>
> >> >> >> This is very intriguing !
>
> >> >> > Not really. It is pretty obvious that in the above formulation
> >> >> > of the semantics of the joins you can replace the higher order
> >> >> > expression with a first order formula.
>
> >> >> How ?
>
> >> > For example, the formula
>
> >> > {y|A(x,y)}={y|A(y,z)}
>
> >> > is equivalent with
>
> >> > (Forall y : A(x,y) -> A(y,z)) and (Forall y : A(y,z) -> A(x,y))
>
> >> That's fine, but even with substituting a predicate expression for
> >> the set expression in the original expression you'd still quantify
> >> over predicates which is another way of saying 'over sets':
>
> >> {x| (setA = setB)} is no different from {x| (A <=>B)} because forall
> >> (setA=setB) is the same like forall(A<=B), so you are still dealing
> >> with the second order quantification.
>
> > Where in the formula that I gave did you see second order quantifiers
> > or quantification over predicates?
>
> [...snip..]
>
> Yes, your simple formulas expressing set equality are first order
> allright, but they don't help to make the formula describing a set
> valued join a first oder expression !

It makes the query that corresponds to the operator of the form { (x,z) | \phi(x,z) } with \phi a formula in first order logic and hence this query is expressible in the relational algebra. That makes it a first order expression by the usual definition of the term. What other definition did you have in mind?

  • Jan Hidders
Received on Mon Jun 18 2007 - 11:39:02 CEST

Original text of this message