Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> comp.databases.theory -> Re: Navigation question

Re: Navigation question

From: dawn <dawnwolthuis_at_gmail.com>
Date: 28 Feb 2007 16:50:55 -0800
Message-ID: <1172710255.594583.190610@m58g2000cwm.googlegroups.com>


On Feb 28, 6:46 am, "JOG" <j..._at_cs.nott.ac.uk> wrote:
> On 27 Feb, 20:14, "dawn" <dawnwolth..._at_gmail.com> wrote:
<snip>
Since I wasn't able to reply to everything in the last one, I thought I'd return to the remainder of your reply.

> > and just what "logical" database navigation is wrong and why.
>
> Navigation is not 'wrong' or 'evil' - its just that declaration is
> preferable in a logical model.

I think that I use "declaration" to navigate. For example, I "declare" a link to the DBMS so that it knows it can navigate from one value to a row in a Relation in order to retrieve attribute values that are (logically) in that row. Then I can declare a query that causes the DBMS to perform this logical navigation.

> And the arguments seem pretty clear to
> me:
>
> 1) Nothing can be done via Navigation that cannot be done with a
> Declarative approach.

I do not think that "navigation" vs "declaration" is a correct assessment, as indicated above.

> Navigation however requires an extra mechanism
> that is superfluous and brittle. (The Einstein, keep a mechanism as
> simple as possible but no simpler argument)

I see no additional parts in this. Instead of having a query with a JOIN statement working with a DBMS and the related schema, the information similar to that which is in the join statement is specified once (rather than repeatedly in each SQL statement) to the DBMS. There is no additional mechanism from what I can see (at least not at the "logical level").

> 2) Navigation in a network, and the locations or objects that it
> requires, leads to query bias due to the arbitrary nesting that it
> mandates you do.

Yes. Query bias has pros and cons. There is something good about treating, conceptually, a Person as an "entity" and the person's hair as something subordinate to the person. That benefit translates to the logical level.

Additionally, the ability to use a navigation pattern does not imply query bias. Those favoring navigation as a viable design pattern rarely, if ever, require that it be the only approach. You can use the same queries you would like to use on relational data and also navigate it. While the relational model does not include "navigation" relational data is often navigated by developers who read data, save a value, and use it to see the next query. The queries themselves are relational, but the design pattern in the software is navigational. Query bias enters when you (conceptually) permit multi-valued properties to be specified for entities.

> (This is the shared data, or changing requirements
> argument). Modelling using propositions instead of objects is more
> flexible.

I like modeling using propositions as well. I don't need that to be the only model, however.

> 3) As object composition increases navigational queries to extract
> them get ever more complex and convoluted

agreed

> (Codds argument to IBM, a
> lumbering company with a enormous inertia and mass entrenched in
> network database technology. Yet even they were convinced.)

They were convinced after Oracle came on strong and started pulling away some IMS customers.

> Navigation has its place (hypertext and the web for example). Its just
> that a logical data model is probably not that place.

Navigation is done extensively, which is also not an argument for it. If I could figure out just what is wrong with it, I would speak against it too, but the arguments I have read to date, including those in this thread, are simply not compelling.

> > Thanks for your help and patience with me. --dawn
>
> I find myself more and more just posting to balance opinion for
> neutral readers. I have given up trying to convince you of anything -

Oddly enough, I have learned a lot from you and you have, in fact, convinced me of a number of things, propositions among them.

> you appear too entrenched in your anti-RM crusade

I can see why it comes off that way, since at this point it is moving in that direction. But my initial interest is still my interest here -- I would like database theory and database best practices to be in better alignment. I have no crusade here except to try to understand responses when I ask questions and refine my opinions so they are as logical as possible (or as possible for me). That requires some argument when I do not understand or agree with a response.

For what it is worth, I am encouraged by the fact that relational theorists now seem to hold that 1NF as previously defined is not necessary and that 3VL is a bad idea. Pulling those two changes into practice would go some distance in helping us get back to better practices in data modeling and software development, I think. There are several other points that likely need to get back into practices that the products stemming from the RM have trashed, and navigation mght be among those (I'm trying to figure that out by asking questions and arguing for navigation).

> to be pragmatic and

I'm pretty much coming from a pragmatic standpoint, trying to understand why the theory has steered us away from what seems to be pragmatic (2VL is an example of a pragmatic approach).

> recognize the good points that the evolution to RM has to offer,

Hey, JOG, I've taught the good points that the RM has to offer and believed every word I said. There is no reason for me to come and ask about those aspects where I have no questions. I'm not here to tell everyone else how to think or claim that I know everything. I don't. I have questions. I don't understand some things, so I ask questions. When I still don't understand after reading the answers, I question further.

> or to
> see why it has been so successful despite its flaws :(

I can see at least some of the reasons it has been so successful despite its flaws. There are even projects where I would select an SQL-DBMS for the implementation. Most of the products have added features so they are as useful as they can be in spite of a less-than- ideal (from my perspective) data model.

I'm pretty open-minded and when I read a good, clear statement on why "logical navigation" is a bad thing or if I am able to derive that myself, then I will change my opinion (rather than redefining the terms to obscure the fact that my opinion has changed as has been done with 1NF).

In spite of your disappointment in me, I still appreciate your participation in the discussion. It is helpful, sometimes. cheers! --dawn Received on Wed Feb 28 2007 - 18:50:55 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US