| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> comp.databases.theory -> Re: Navigation question
Walt wrote:
> "dawn" <dawnwolthuis_at_gmail.com> wrote in message > news:1172027698.109823.138620_at_a75g2000cwd.googlegroups.com... >
> > Feb, >>>>
>>>19:47, "Marshall" <marshall.spi..._at_gmail.com> wrote:
>>>
>>>
>>>>>>>select * from orders where date > '2006-01-01' and status =
>>>>>>>'fulfilled' and customerid = 1234
>>>
>>>>>>>You say what you want and you get just that. No sifting
>>>>>>>through stuff you don't want; no navigating.
> > it >>>>
>>>>>>avoids round-tripping?
>>>>>>IMHO it's avoiding the second thhat is the advantage here, not the
>>>>>>first
> > inquirer >>>>
>>>to
>>>
>>>>>know about anything other than the data.
>>>
>>>>Good, that is a common way I have heard it expressed. However, I do
>>>>not see how the developer needs to know less about the logical data
>>>>model when using JOIN statements than if using "navigation" in the
>>>>form of link information. It is the same information, formulated
>>>>differently.
>>>
>>>>If you put everything in a single view, then the inquirer is shielded
>>>>from having to know the base table for each attribute, but use of such
>>>>views in application code does not seem all that common, especially
>>>>not for read/write.
>>>
>>>>>"Navigation" as commonly used around here, means following "paths"
>>>
>>>between
> > know >>>>
>>>about
>>>
>>>>>the available paths. Not having to know that stuff is an advantage.
>>>
>>>It's
>>>
>>>>>an advantage for several reasons. One of them is, possibly,
>>>
>>>performance.
>>>
>>>>>But this isn't the big reason. The big reason is independence.
>>>
>>>>If there were no join statements in SQL statements in application
>>>>code, then I could agree that this independence is accomplished. But
>>>>there are, so it isn't. In that case, is a join statement "just as
>>>>bad as" navigation from your perspective?
>>>
>>>No.
> > than >
> > query's >>>>
>>>>>results dependent on the avilability of certain navigational paths,
>>>
>>>then a
>>>
>>>>>modification to the data structure can render that query invalid.
>>>
>>>>Yes.
>>>
>>>>>That's
>>>>>not good.
>>>
>>>>Not good in the same way that any change to software is "not good" or
>>>>not good in a way that we could have avoided making a change to our
>>>>software altogether when the requirement changed? Some DBMS's permit
>>>>synonyms so that in my example we need not code in Order.orderid, but
>>>>could have named it simply orderid in the context of Customer (a
>>>>virtual field in the Customer table) so that if the data did change
>>>>locations, the query (which navigates the database) would be
>>>
>>>>select customerid, ... orderid from Customer where tin='xyz';
>>>
>>>>In this case we can see that if we change where the data are located,
>>>>we simply need to change the definition of orderid, the virtual field
>>>>in Customer. This is not an updatable view, however (within any tools
>>>>I have worked).
>>>
>>>>So, I'm still not viewing this from a perspective where navigation
>>>>looks more problematic than joins, for example. Your take on that?
>>>>Thanks. --dawn
> > The best way to fully understand the argument is to find a database & > application suite that used the concepts well, designed properly, and > acheived success. If you can't find any such application, I suggest you > look harder.
She has neither the interest in nor the intellectual capacity to understand. Please stop feeding the troll. Received on Wed Feb 21 2007 - 09:25:05 CST
![]() |
![]() |