Talk:Navigational database
I think this topic should be in lower-case, but I don't know how to change it without starting over.
thoughts
A few criticisms and thoughts.
Firstly, the title. I don't think it's the database that's navigational, I think it's the DML (database manipulation language). The same database can have more than one style of interface.
Secondly, the suggestion that SQL doesn't scale down seems both wrong and irrelevant.
The term is indeed due to Bachman, and it would be useful to quote some of the things he said. IIRC correctly it was a powerfully-argued paper and some retrospective analysis would be quite interesting.
Bringing the idea into the present with the reference to DOM is good, but the relevance needs to be stated.
Mhkay 22:04, 16 September 2005 (UTC)
A request for those DB experts out there: give us an example, in a pseudo code perhaps, of the difference between a navigational language, and a relational one.
Posit a database containing retail transactions, so the information one would expect to have is the items that could be purchased and their prices, and the items actually purhased, and the quantity purchased.
Thanks
Hacksaw 21:03:05, 2005Oct30 (UTC)
The article seems to be describing the scaling issue rather poorly. All relational databases have problems scaling up, not down. This is due to the search-based nature of their operation. Anytime you want to find something, even with a primary-key, the database engine has to search for it. This is because relational queries are based on the contents of a record, and the database has no foreknowledge of where any given content is. A navigational database, on the other hand, accesses things by unique address. Each record has such an address, and the database engine knows exactly where each address can be found. It only has to go to it -- no searching.
A simple analogy may help to explain this difference. Suppose you have a file somewhere on your computer containing your favorite dinner recipe. You could run a search of all files to locate the one in question, but that'll take longer and longer as time goes on and your hard drive usage grows. Alternatively, assuming you know the file's location, you could just open it directly by double-clicking the icon. The time involved for that will most likely never change regardless of how full your drive gets.
Mathematically speaking, relational systems exhibit a complexity of O(n)
for sequential scans and O(log n)
for indexes. Their search performance drops off as things get bigger. Navigational databases have a complexity of O(1)
. Their performance remains fairly constant as sizes increase.
Siggimoo 19:06, 28 September 2006 (UTC)
Deconstruction
Would I be incorrect in thinking that a Wiki, and, indeed, the entire WWW is a navigational database? It has dynamic content, and you can get from point A to point F by following links and navigating through points B, C, D and E.
Answer
This is actually a very good analogy. The relational approach is using Google to find pages. This is what differentiates the two models. Relational is about matching content to find relationships (e.g. find all orders whose customer ID equals x). Navigational is about jumping directly to specific records (e.g. get these specific orders).