Re: parent/child relationship in the same table.

From: James <jraustin1_at_hotmail.com>
Date: 17 Nov 2001 21:57:24 -0800
Message-ID: <a6e74506.0111172157.3fce3c6e_at_posting.google.com>


> >Here is the psuedo code:
> >Call A(0)
> >Function A(par)
> > rs = db.execute("Select * from T_ParChild Where ParId = " & par)
> > While (!rs.EOF)
> > child = rs("Child")
> > Print par, child, rs("Data")
> > Call A(child)
> > Loop
> >End
> >
> >An oodb can perform the above much faster than relational dbs. In a
> >relational db, the time to resolve the relationships increases with
> >the number of records. In an oodb, the resolution time is not only
> >quicker but constant regardless of number of "records".

> Object folks thinking is frozen in terms of nested loops
> that user has to write.
If you pulled a marble out of a bag and it was black, you would say that the remaining marbles in the bag are black. What are your chances of being correct?

> Object folks thinking is frozen in terms of nested loops
> that user has to write.
The solution was presented using standard SQL and programming techniques, which I believe will require nested loops? Can you provide an alternate practical solution using standard SQL and programming techniques?

> Not quite.

Note quite what?

1. oodb is faster at resolving parent/child relationships?
2. resolution time in rdb increases with # of records?
3. resolution time in oodb is constant regardless of # of "recs"?

> A relational database has a concept of "pipelining":
> it could answer the query above in a single pass through the table.
What exactly is "pipelining"?
Which databases is "pipelining" available in? Does "pipelining" internally not use any nested loops? Does "pipelining" disproves any of the 3 points above? How do I use "pipelining" to create the desired solution?

Would you like to benchmark "pipelining" with XDb which resolves parent/child relationships at a rate of 100 mil/sec on a 800Mhz PC? Received on Sun Nov 18 2001 - 06:57:24 CET

Original text of this message