Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Navigational database
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Database in which records or objects are found by following references from other objects}} A '''navigational database''' is a type of [[database]] in which [[Record (computer science)|records]] or [[Object (computer science)|objects]] are found primarily by following references from other objects. The term was popularized by the title of [[Charles Bachman]]'s 1973 [[Turing Award]] paper, ''The Programmer as Navigator''.<ref>{{cite journal|title=The programmer as navigator |year=1973 |doi=10.1145/355611.362534 |publisher=Portal.acm.org |last1=Bachman |first1=Charles W. |journal=Communications of the ACM |volume=16 |issue=11 |pages=653β658 |s2cid=18635540 |doi-access=free }}</ref> This paper emphasized the fact that the new disk-based database systems allowed the programmer to choose arbitrary navigational routes following relationships from record to record, contrasting this with the constraints of earlier magnetic-tape and punched card systems where data access was strictly sequential. One of the earliest navigational databases was [[Integrated Data Store]] (IDS), which was developed by Bachman for [[General Electric]] in the 1960s. IDS became the basis for the [[CODASYL]] database model in 1969. Although Bachman described the concept of navigation in abstract terms, the idea of navigational access came to be associated strongly with the procedural design of the CODASYL [[Data manipulation language|Data Manipulation Language]]. Writing in 1982, for example, Tsichritzis and Lochovsky<ref>{{cite book|title=Data Models|url=https://archive.org/details/datamodels00tsic|url-access=registration|author=Dionysios C. Tsichritzis and Frederick H. Lochovsky|date=1982|publisher=Prentice-Hall|isbn=0-13-196428-3|page=[https://archive.org/details/datamodels00tsic/page/67 67]}}</ref> state that "The notion of currency is central to the concept of navigation." By the notion of currency, they refer to the idea that a program maintains (explicitly or implicitly) a current position in any sequence of records that it is processing, and that operations such as <code>GET NEXT</code> and <code>GET PRIOR</code> retrieve records relative to this current position, while also changing the current position to the record that is retrieved. Navigational database programming thus came to be seen as intrinsically [[procedural programming|procedural]]; and moreover to depend on the maintenance of an implicit set of global variables (''currency indicators'') holding the current state. As such, the approach was seen as diametrically opposed to the [[declarative programming]] style used by the [[relational model]]. The declarative nature of relational languages such as [[SQL]] offered better programmer productivity and a higher level of data independence (that is, the ability of programs to continue working as the database structure evolves.) Navigational interfaces, as a result, were gradually eclipsed during the 1980s by declarative query languages. During the 1990s it started becoming clear that for certain applications handling complex data (for example, spatial databases and engineering databases), the relational calculus had limitations. At that time, a reappraisal of the entire database market began, with several companies describing the new systems using the marketing term [[NoSQL]]. Many of these systems introduced data manipulation languages which, while far removed from the CODASYL DML with its currency indicators, could be understood as implementing Bachman's "navigational" vision. Some of these languages are procedural; others (such as [[XPath]]) are entirely declarative. Offshoots of the navigational concept, such as the [[graph database]], found new uses in modern [[transaction processing]] workloads.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)