Re: Character string relation and functional dependencies

From: Tegiri Nenashi <TegiriNenashi_at_gmail.com>
Date: Tue, 11 Dec 2007 13:47:32 -0800 (PST)
Message-ID: <7787577b-0476-4ab1-929c-62173efac5c4_at_s19g2000prg.googlegroups.com>


On Dec 11, 1:27 pm, "V.J. Kumar" <vjkm..._at_gmail.com> wrote:
> Tegiri Nenashi <TegiriNena..._at_gmail.com> wrote in news:38860a21-e69a-
> 46a4-a798-cc16dde1c..._at_e10g2000prf.googlegroups.com:
>
>
>
> > On Dec 11, 12:37 pm, Tegiri Nenashi <TegiriNena..._at_gmail.com> wrote:
> >> Well, in traditional databases index structures are auxiliary.
> >> Likewise, I would like to keep functions hidden. After all there is
> >> one relation
>
> >> x + y = z
>
> >> but there are three functions that can index it.
>
> > Let me elaborate a little more. Suppose we are asked to evaluate the
> > query
>
> > x + y = z /\ x=1 /\ z=4
>
> > there is no functions there. As usual optimizer engine starts
> > enumerating and costing every join permutation. It would find out that
> > the execution below has a finite cost:
>
> > 1. Evaluate x=1
> > 2. Evaluate z=4
> > 3. Build a Cartesian product result
> > 4. Join with the relation x + y = z using the index (x,z)->z-x
>
> What would your optimizer do in the following case:
>
> x^2 + y^2 + z^2 =u^2 /\ u=25

Well how indexes are created in the off-the-shelf databases? DB administrator creates them, even though the task is rather trivial. (Remember, that long time ago DBMS were conceived to do it automatically:-). The case of infinite relations is much more challenging, therefore I expect a database programmer (or should I better call him "relational programmer") to code the index function *manually* and register each index with the corresponding relation. Received on Tue Dec 11 2007 - 22:47:32 CET

Original text of this message