Re: Navigation question

From: mAsterdam <>
Date: Sat, 24 Feb 2007 14:49:17 +0100
Message-ID: <45e041fe$0$326$>

dawn wrote:
> mAsterdam wrote:

>> dawn wrote:
>>> mAsterdam wrote:

>> ... in which space is the navigation taking place
>> you /do/ want to talk about? See below.

> Application software (which includes DBMS and database), layer 7

That canīt be correct.
The DBMS does a lot of navigating memory space and disk space. Here they are included in your area of interest, but earlier you explicitly excluded them.
Maybe it is just not specific enough.

What is your area of interest?

>>> I accept that whatever the user is doing need not be coupled to what
>>> the application software is doing.  I was looking at different places
>>> for "navigation" and trying to figure out what, precisely, is the
>>> navigation that is frowned upon and why, precisely, is it frowned
>>> upon.

If you want precision in the answers, you should ask precisely.

>> ISTM it is highly context sensitive why something is frowned upon.

> Yes.


So, in order for the question to be meaningful, specific context has to be provided.

>> What navigation was frowned upon?

> That's one of my questions here.

It is part of the context without which the question is meaningless. You agree that the question by itself is meaningless, but you are asking in which context it becomes meaningful. ?! Strange.

>> Why was it frowned upon?

> That's the other.
>> Was that navigation itself or the inappropriate use of the term?

> I don't know, but wherever there are RM advocates there seem to be
> people looking down on "navigation." So, what is this bad navigation
> and why is it bad? I'm trying to zero in on this.

This good/bad stuff doesn't help to get things clear either. Is navigation a cost or a benefit?

>> Who frowned?

> Codd, Date, JOG (the big three ;-) for starters.

And they did not tell why they frowned? That is out of character for the three of them. You can't ask Codd, but you can provide quotes to stop the guessing game.

>> Taken in isolation it doesn't mean much if anything.
>> Why should I care?

> That's a question for you.

No, that was a rhetorical shortcut. I'll rephrase. The question doesn't mean anything taken in isolation. You agreed. Taken in isolation I do not care.

Do you? Why?

>> Maybe you are hinting at this:
>> Using a CODASYL or hierarchical DBMS it is inevitable
>> that programmers think of navigating the network or the tree:
>> next, prior, up. The network and the tree or dag
>> are the spaces they have to navigate. When there
>> is no such space there is no need to navigate.
>> Navigating where there is no space may be frowned upon.

> Are you suggesting ...

No. I took a guess as to what you area of interest is, because the clues you give escape me. Is this it?

> ... is there and argument
> something like this: It is OK to navigate within a database as long as
> we are not using the RM, but we must use the RM, therefore we are
> opposed to database navigation.

Not that I know of. Maybe close to this:

When using a network or a tree, your need to navigate from node to node to get your data instead of just asking for them is expensive.
Even network dbms (where the interface by default is navigational) have interfaces where the navigation is hidden (e.g. IDMS: LRF[*] and OLQ) so that the programmer can focus on what instead of where.

Stating just what I want to get data is easier than first having to find out where it is. Companies pay for the elimination of the need to navigate.

[*] LRF here stands for Logical Record Facility, logical as opposed to navigational.
'logical' has been abused to mean just about anything, but 'logical navigation' sounds empty.

> Additionally, the RM is superior
> because it does not rely on or "do" database navigation. Why does
> that make it superior? Because it is better not to navigate? What is
> it better not to navigate? Because navigation is not part of the RM.

> I'm not finding a way out of this circle.

See [**] below.

> So far I have not heard
> anything that would cause me to think that database navigation should
> be considered an anti-pattern rather than a pattern for use in
> developing application software. Have you?

Are you sure you are talking patterns/anti-patterns and not costs/benefits? Anyway, patterns and anti-patterns also have context requirements as to when they are applicable. Provide context.

Don't ask yourself: "Is it good or bad?" but "When is it applicable?" and with the answer to that rephrase with a specific context.

>> Again, without context it doesn't really matter, does it?


>>> Which terms am I mixing?

>> Foreign keys and links, for example.
>> Documents and data - how many time have you called the web a database?

> None in this thread. Sometimes I'm sensitive to my audience ;-)

So you do mix them, but hide that mixing for political correctness. [**] I think it is this mixing which is keeping you in the circle.

> I fully expect that at some point
> you will perceive the web as a
> database too (highly distributed as it is).

Looking at it as if it were a database, can you see what you need to discard?

> I'm not thinking of it as "semi-structured" data,
> but as structured data, where "pages" are
> values in this database, just like comments are values in databases
> and URLs are key values.

... in some meaning of 'key', not defined in terms of data. Mixing terms from different realms again. Twisting words again. [**] This is another example of the mixing, keeping you in the circle you want to get out of - do you really?

>>>>>> earlier:
>>>>>>  > The question is whether the logical navigation described above has
>>>>>>  > something inherently "bad" about it ...


>> Have you considered the possibility that that might be
>> due to the question?

> Yes, it has occured to me that this is a question that either a) I am
> not framing well or getting across for some reason or b) some are not
> able to step outside of the RM to answer them or c) I am asking and
> others are understanding but do not wish to answer, perhaps due to
> having a "belief" they think has been proven, but where the proof
> isn't coming to them anymore than it is to me.

Your a) b) c) explanations wander away from the question as a cause.


  1. may be due to your hiding relevant thoughts that you do not wish to share.
  2. is rude to the people in this thread who /did/ put effort into answering you.
  3. forget them

Try (wandering back):

d) you are repeating mistakes that have been pointed out to you.
e) you say you understand when you don't.
f) you are using inapplicable terms.
g) the question is loaded with wrong assumptions.
h) the question lacks context.

>>> I really would like to get to the point where I fully comprehend just
>>> what navigation is to be avoided and why.  In particular, is either of
>>> the following an anti-pattern?

>>> 1. DBMS includes metadata specifications for "links" so that it is >>> able to "navigate" when questions are asked that require such.
>> To much roman numerals.
>> Is this a correct arabic rephrase?
>> 1. The catalog can be queried in order to generate
>> relevant queries on the fly.

> Not really.

What is wrong with it (except that it doesn't imply navigation)?

> How about this -- The database can be queried, via the
> DBMS, and the combination of the query statement and the catalog
> provides the information for the DBMS to logically navigate to
> retrieve the data.

This is loaded again: "logically navigate" - what logic are you navigating?

>> No navigation going on at the interface between
>> program and dbms, but the user may experience
>> using this feature as navigating the database.

> Ugh! What about my Anna Nicole example? The query asked for the
> mothersName, which is a virtual field defined (user-defined function,
> stored-procedure-ish) that includes a specification to use the
> motherId as the key to Person and then retrieve the mother's name from
> that tuple. Jump outside of the RM.

I am not in it. See [*] above.

> Software does this. Many DBMS's
> do this. Developers do this. It works. Is it a pattern or an anti-
> pattern?

If I need to navigate to get data, I'll navigate to get data. What else is there to it? What good/bad pattern/anti-pattern is there?

>> The user interface may even be designed to emphasize
>> this.

> Let's stick to layer 7, brother.

Not the whole of it, because you eliminated a part /with/ navigation (see "That canīt be correct." above). Now you also eliminate '8' - navigation as a UI metaphor. Which part /are/ you talking about?

> Is there any chance that I am going
> to be able to ask this question in a way that you will be able to
> answer it in a way that I will be able to understand your answer?

Start by repairing f), g) and h) above. Received on Sat Feb 24 2007 - 14:49:17 CET

Original text of this message