# Re: Mixing OO and DB

Date: Thu, 13 Mar 2008 08:33:54 -0700 (PDT)

Message-ID: <ddc9129c-1de0-450c-b6bd-8a8501b7bbfd_at_s8g2000prg.googlegroups.com>

On Mar 12, 9:14 am, S Perryman <q..._at_q.com> wrote:

> Bob Badour wrote:

*> >> Robert Martin wrote:
**> >>> That's fine. Consider, for example, an algorithm that finds the
**> >>> minimum spanning distance of a graph. (e.g. cheapest network route, or
**> >>> cheapest travel itinerary, etc). The node and edges of the graph are
**> >>> stored in database tables.
**> >>> Shall we execute that algorithm by doing thousands of tiny queries as
**> >>> we walk from node to node through the edges? Or shall we query all the
**> >>> nodes and edges in one gulp, arrange them into a graph of objects, and
**> >>> walk through them that way?
**> > If one studies the algorithms for minimum spanning trees, one quickly
**> > sees the task involves no traversals whatsoever. In fact, one generally
**> > creates the MST as a precursor to some sort of traversal, and the
**> > algorithms themselves are specified in terms of sets, which makes them
**> > ideal for implementing relationally.
**>
**> What about the canonical graph algorithms (breadth/depth first, transitive
**> closure etc) ??
**>
**> Traversal (accessing adjacent node sets) for these happens on a per-node
**> basis, does it not.
*

An implementation probably will, but that does not mean that graph searching cannot be *defined* declaratively. In other words, a language may have a declarative "request" but the implementation may decide to use a node-per-node processing algorithm.

*>
**> Regards,
**> Steven Perryman
*

-T- Received on Thu Mar 13 2008 - 16:33:54 CET