Navigational database
|
Navigational databases incorporate both the network model and hierarchical model of database interfaces. Navigational techniques use "pointers" and "paths" to navigate among data records. This is in contrast to the relational model (implemented in relational databases), which strives to use "declarative" or logic programming techniques in which you ask the system for what you want instead of how to navigate to it.
For example, to give directions to a house, the navigational approach would resemble something like, "Get on highway 25 for 8 miles, turn onto Horse Road, left at the red barn, then stop at the 3rd house down the road". Whereas, the declarative approach would resemble, "Visit the green house(s) within the following coordinates...."
Hierarchical models are also considered navigational because one "goes" up (to parent), down (to leaves), and there are "paths", such as the familiar file/folder paths in hierarchical file systems. In general, navigational systems will use combinations of paths and prepositions such as "next", "previous", "first", "last", "up", "down", etc.
The term allegedly is derived from a speech by Charles Bachman in which he describes the "programmer as navigator" while accessing his favored type of database.
Although navigational techniques fell out of favor by the 1980s, object oriented programming and XML have kindled a renewed, but controversial interest in navigational techniques.
Critics of navigational techniques view them as "unstructured spaghetti messes", and liken them to the "Go to" of pre-structured programming. In other words, they are allegedly to data organization what go-to's were to behavior flow. In this view, relational techniques provide improved discipline and consistency to data organization and usage. But, in practice relational has yet to successfully scale down to smaller-use data. Whether this is an in-born fault of relational, or just lack of implementation improvement research is difficult to say at this point. Some fault the SQL language rather than relational theory in general. Whatever the reason, navigational techniques are still the preferred way to handle smaller-scale structures.