Retrieve via URL
   HOME

TheInfoList



OR:

RETRIEVE is a
database management system In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases span ...
(DBMS) offered on
Tymshare Tymshare, Inc (Matthew Heyer-Baker) was a time-sharing service and third-party hardware maintenance company competing with companies such as CompuServe, Service Bureau Corporation and National CSS. Tymshare developed or acquired various technolog ...
's systems starting in August 1971. It was written in Tymshare's own SUPER FORTRAN on the SDS 940. It offered basic single-file, non- relational database functionality using an interactive
programming language A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
. It is one of the earliest examples of
software as a service Software as a service (SaaS ) is a software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted. SaaS is also known as "on-demand software" and Web-based/Web-hosted software. SaaS is con ...
(SaaS). RETRIEVE was highly influential and spawned a number of relatively direct clones.
Wang Laboratories Wang Laboratories was a US computer company founded in 1951 by An Wang and G. Y. Chu. The company was successively headquartered in Cambridge, Massachusetts (1954–1963), Tewksbury, Massachusetts (1963–1976), and finally in Lowell, Massachusett ...
's RECALL on the
Wang 2200 The Wang 2200 was an all-in-one minicomputer released by Wang Laboratories in May 1973. Unlike some other desktop computers, such as the HP 9830, it had a cathode-ray tube (CRT) in a cabinet that also included an integrated computer-controlled c ...
minicomputer A minicomputer, or colloquially mini, is a class of smaller general purpose computers that developed in the mid-1960s and sold at a much lower price than mainframe and mid-size computers from IBM and its direct competitors. In a 1970 survey, ...
was almost identical to RETRIEVE, to the point the differences were detailed in a single page.
JPL The Jet Propulsion Laboratory (JPL) is a federally funded research and development center and NASA field center in the City of La Cañada Flintridge, California, United States. Founded in the 1930s by Caltech researchers, JPL is owned by NASA an ...
made a version known as
JPLDIS The Jet Propulsion Laboratory Display Information System (or JPLDIS) is a file management program written in FORTRAN. JPLDIS is important because it was the inspiration and precursor to dBASE, arguably one of the most influential DBMS programs fo ...
for the
UNIVAC 1108 The UNIVAC 1100/2200 series is a series of compatible 36-bit computer systems, beginning with the UNIVAC 1107 in 1962, initially made by Sperry Rand. The series continues to be supported today by Unisys Corporation as the ClearPath Dorado Series. ...
in 1973 that was also very similar.
Wayne Ratliff Cecil Wayne Ratliff (born 1946) wrote the database program Vulcan. Raised in Germany and the US, he now resides in the Los Angeles area. Biography Ratliff was born in 1946 in Trenton, Ohio, USA. From 1969 to 1982 he worked for the Martin Mariett ...
, a contractor at JPL for many years, was inspired by JPLDIS to port it to the
IMSAI 8080 The IMSAI 8080 was an early microcomputer released in late 1975, based on the Intel 8080 and later 8085 and S-100 bus. It was a clone of its main competitor, the earlier MITS Altair 8800. The IMSAI is largely regarded as the first "clone" micr ...
to manage his
football pool In the United Kingdom, the football pools, often referred to as "the pools", is a betting pool based on predicting the outcome of association football matches taking place in the coming week. The pools are typically cheap to enter, and may encou ...
, later releasing it commercially as Vulcan for
CP/M CP/M, originally standing for Control Program/Monitor and later Control Program for Microcomputers, is a mass-market operating system created in 1974 for Intel 8080/ 85-based microcomputers by Gary Kildall of Digital Research, Inc. Initial ...
in 1979. Ashton-Tate licensed Vulcan and re-released it as
dBASE II dBase (also stylized dBASE) was one of the first database management systems for microcomputers and the most successful in its day. The dBase system includes the core database engine, a query system, a forms engine, and a programming language ...
in 1980, which sparked the
microcomputer A microcomputer is a small, relatively inexpensive computer having a central processing unit (CPU) made out of a microprocessor. The computer also includes memory and input/output (I/O) circuitry together mounted on a printed circuit board (PC ...
database market. Most of RETRIEVE's original syntax remains unchanged in dBASE and the many
xBASE xBase is the generic term for all programming languages that derive from the original dBASE ( Ashton-Tate) programming language and database formats. These are sometimes informally known as dBASE "clones". While there was a non-commercial predec ...
clones that survive into the 21st century.


History

In 1969, Jim Ryan of Tymshare designed an expanded version of
IBM System/360 The IBM System/360 (S/360) is a family of mainframe computer systems that was announced by IBM on April 7, 1964, and delivered between 1965 and 1978. It was the first family of computers designed to cover both commercial and scientific applica ...
H-level (258 kB) FORTRAN, adding
strings String or strings may refer to: *String (structure), a long flexible structure made from threads twisted together, which is used to tie, bind, or hang other objects Arts, entertainment, and media Films * ''Strings'' (1991 film), a Canadian anim ...
and other features that took advantage of their SDS 940 systems. Ryan hired Richard Moore and Franck Bracher to develop it as SUPER FORTRAN, and it went live on their systems in 1970. Soon after SUPER FORTRAN was released, Arden Scott asked Moore to use SUPER FORTRAN to develop his vision of a
database management system In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases span ...
(DBMS). The first version was ready in a few weeks, and immediately proved very popular with Tymshare customers. During the 1970s, Tymshare began moving their systems from SDS to the
PDP-10 Digital Equipment Corporation (DEC)'s PDP-10, later marketed as the DECsystem-10, is a mainframe computer family manufactured beginning in 1966 and discontinued in 1983. 1970s models and beyond were marketed under the DECsystem-10 name, especi ...
platform, eventually running
TOPS-10 TOPS-10 System (''Timesharing / Total Operating System-10'') is a discontinued operating system from Digital Equipment Corporation (DEC) for the PDP-10 (or DECsystem-10) mainframe computer family. Launched in 1967, TOPS-10 evolved from the earlier ...
. This led to an effort to build an entirely new database engine for this platform, known as MAGNUM. MAGNUM was a complete
relational database A relational database is a (most commonly digital) database based on the relational model of data, as proposed by E. F. Codd in 1970. A system used to maintain relational databases is a relational database management system (RDBMS). Many relatio ...
engine, and in many references it is claimed to be the first such system offered commercially when it went live in October 1975. Although most Tymshare customers, and internal users, switched to MAGNUM, by this time RETRIEVE had been ported to a number of platforms and these versions remained very popular outside the company. In 1970, the
Jet Propulsion Laboratory The Jet Propulsion Laboratory (JPL) is a federally funded research and development center and NASA field center in the City of La Cañada Flintridge, California, United States. Founded in the 1930s by Caltech researchers, JPL is owned by NASA an ...
(JPL) installed three
UNIVAC 1108 The UNIVAC 1100/2200 series is a series of compatible 36-bit computer systems, beginning with the UNIVAC 1107 in 1962, initially made by Sperry Rand. The series continues to be supported today by Unisys Corporation as the ClearPath Dorado Series. ...
machines. Fred Thompson had been using RETRIEVE to manage a database of
mechanical calculator A mechanical calculator, or calculating machine, is a mechanical device used to perform the basic operations of arithmetic automatically, or (historically) a simulation such as an analog computer or a slide rule. Most mechanical calculators wer ...
s at JPL, and decided to bring the system in-house when the 1108's arrived. In 1971, he collaborated with JPL programmer Jack Hatfield to produce JPLDIS. Hatfield left JPL in 1974, and the project was assigned to another JPL programmer, Jeb Long, who added a number of features. In 1973 the
Wang 2200 The Wang 2200 was an all-in-one minicomputer released by Wang Laboratories in May 1973. Unlike some other desktop computers, such as the HP 9830, it had a cathode-ray tube (CRT) in a cabinet that also included an integrated computer-controlled c ...
was released, a desktop
minicomputer A minicomputer, or colloquially mini, is a class of smaller general purpose computers that developed in the mid-1960s and sold at a much lower price than mainframe and mid-size computers from IBM and its direct competitors. In a 1970 survey, ...
with
cassette tape The Compact Cassette or Musicassette (MC), also commonly called the tape cassette, cassette tape, audio cassette, or simply tape or cassette, is an analog magnetic tape recording format for audio recording and playback. Invented by Lou Ottens ...
storage. RETRIEVE was ported to this platform under the name RECALL. A report for the
US Army The United States Army (USA) is the land service branch of the United States Armed Forces. It is one of the eight U.S. uniformed services, and is designated as the Army of the United States in the U.S. Constitution.Article II, section 2, cla ...
detailed the differences in a single page and concluded "Differences between the two implementations are very minor." While working at JPL as a contractor,
Wayne Ratliff Cecil Wayne Ratliff (born 1946) wrote the database program Vulcan. Raised in Germany and the US, he now resides in the Los Angeles area. Biography Ratliff was born in 1946 in Trenton, Ohio, USA. From 1969 to 1982 he worked for the Martin Mariett ...
entered the office football pool. He had no interest in the game, but felt he could win the pool by processing the post-game statistics found in newspapers. In order to do this, he started looking for a database system and, by chance, came across the documentation for JPLDIS. He used this as the basis for a port to
PTDOS PTDOS or Processor Technology Disk Operating System is an operating system created in the late 1970s for computers using the Intel 8080 microprocessor and the Processor Technology Helios II Disk Memory System. Commands The following list of co ...
on his kit-built
IMSAI 8080 The IMSAI 8080 was an early microcomputer released in late 1975, based on the Intel 8080 and later 8085 and S-100 bus. It was a clone of its main competitor, the earlier MITS Altair 8800. The IMSAI is largely regarded as the first "clone" micr ...
microcomputer, and called the resulting system Vulcan (after
Mr. Spock Spock is a fictional character in the ''Star Trek'' media franchise. He first appeared in the original ''Star Trek'' series serving aboard the starship USS ''Enterprise'' as science officer and first officer (and Kirk's Second-in-command) and ...
on ''
Star Trek ''Star Trek'' is an American science fiction media franchise created by Gene Roddenberry, which began with the eponymous 1960s television series and quickly became a worldwide pop-culture phenomenon. The franchise has expanded into vari ...
''). It was later ported to
CP/M CP/M, originally standing for Control Program/Monitor and later Control Program for Microcomputers, is a mass-market operating system created in 1974 for Intel 8080/ 85-based microcomputers by Gary Kildall of Digital Research, Inc. Initial ...
when that system became almost universal in the
S-100 bus The S-100 bus or Altair bus, IEEE 696-1983 ''(withdrawn)'', is an early computer bus designed in 1974 as a part of the Altair 8800. The bus was the first industry standard expansion bus for the microcomputer industry. computers, consisting of ...
market. In 1980, George Tate saw an advertisement for Vulcan being sold for $49. He arranged a licensing deal with Ratliff, renamed it to
dBASE II dBase (also stylized dBASE) was one of the first database management systems for microcomputers and the most successful in its day. The dBase system includes the core database engine, a query system, a forms engine, and a programming language ...
to make it sound like the second version, and put it on the market for $695. The system was a success, and in 1981, IBM commissioned a port to the still-unreleased
PC DOS PC or pc may refer to: Arts and entertainment * Player character or playable character, a fictional character controlled by a human player, usually in role-playing games or computer games * ''Port Charles'', an American daytime TV soap opera * ...
. This was a runaway success, one of the big three packages, along with Word Perfect and
Lotus 1-2-3 Lotus 1-2-3 is a discontinued spreadsheet program from Lotus Software (later part of IBM). It was the first killer application of the IBM PC, was hugely popular in the 1980s, and significantly contributed to the success of IBM PC-compatibles i ...
that made up the equivalent of an
office suite Productivity software (also called personal productivity software or office productivity software) is application software used for producing information (such as documents, presentations, worksheets, databases, charts, graphs, digital paintings, ...
in the early DOS market.


Description


Basic operations

RETRIEVE was a non-relational database, that concept not being introduced until 1970. RETRIEVE databases contained a single table stored in a single file, which typically used a short-form of the database name as the filename. The table structure is defined when the database is created, allowing fields of character, integer or free-form numeric inputs. A database could have a maximum of 98 fields, with a maximum of 72 characters per field, and the total for any one row was 768 characters, or 256 words. Field names had to begin with a letter and could include additional letters, digits, a period and the @ character, with a maximum of 31 characters in total. The system was interactive, using a
command prompt Command Prompt, also known as cmd.exe or cmd, is the default command-line interpreter for the OS/2, eComStation, ArcaOS, Microsoft Windows (Windows NT family and Windows CE family), and ReactOS operating systems. On Windows CE .NET 4.2, Wind ...
within the system for user interaction. For instance, to start a new database the user would type at the command prompt, which would then respond by asking the user to type in the name for the database and then prompt for the field definitions. An empty line stops this process and sends it into data-entry mode, allowing rows to be entered. Any step of this operation could be removed by providing the data in the original command, for instance, if one typed instead of , the system no longer asked for the file name. There were three database file formats, which could be specified during , the normal character-format , which saved numbers in their 24-bit-based internal formats, and which encrypted the file with a user-supplied password. Existing databases were loaded using or (they were equivalent). Data was saved as it was changed, but there was also a command to write out data (or selections of it) to flat files. exited the system and returned to the underlying operating system.


Retrieving data

Once the database was defined and populated, or an existing one was loaded, data could be displayed using . Without any parameters, it printed out all the records in the order they were entered, their "RECNO", which was printed at the front of the line. One could also provide a field list to select and reorder the fields in the printout, like . The statement worked almost identically, differing only in that it did not print out the RECNO at the start of the lines. was similar to , but suppressed the field headers as well. Individual records could be selected using the "record number addressing system", which was prepended to or . This was a flexible format allowing both single RECNOs separated by commas or ranges with colons to be specified, for instance, would print out the records 1, everything from 7 to 20, and then 50. It also included the pseudo-record to represent the last record, so printed out all records from 100 on. Records could also be selected by fields meeting certain criteria based on their contents, using the syntax. To list all the employees with a salary greater than $40,000, one would . The same syntax could be used to select single records based on their contents, not the RECNO, for instance . RETRIEVE supported all basic comparisons, , , , , and for not-equals, which was found in some contemporary
BASICs Basics or BASICS may refer to: Arts and entertainment * The Basics (band), an Australian band * The Basics (TV show), a 2021 American web series * ''Basics'' (Houston Person album), a 1989 album by saxophonist Houston Person * ''Basics'' (Paul B ...
. Unusually, RETRIEVE also included English expansions of traditional comparisons, so one could use either or . Such expressions could also include basic math, including , , for multiplication, for division, and for exponentiation. These could be further combined with boolean expressions using , and . Additionally, the , and worked similar to or , including the same record selection concepts. As the name implies, these output a single value with their associated values. For instance, would likely return 1, while might return 42500. In addition to the //, a further output statement is . This works in a similar fashion, but has a number of options to
pretty-print Pretty-printing (or prettyprinting) is the application of any of various stylistic text formatting, formatting conventions to text files, such as source code, markup language, markup, and similar kinds of content. These formatting conventions may ...
the output. It can be invoked alone or with qualifiers as above, but when it is used it enters an interactive mode that asks a number of questions about where to send the output (with T being the terminal), whether it should be single or double spaced, include headers and totals, etc.


Modifying data

Records could be deleted using the statement, using the same record selectors or field expressions as above. New records were inserted using . entered an interactive mode allowing the user to type in additional records field-by-field rather than entering comma-separated values a row at a time. read data from a comma-delimited text file into the current database already in memory. was used to update existing records; it worked similar to , loading into the current database from another file, but in this case included an additional qualifier . For instance, would read data from the file ADDRESSES and look in that file for a column where the first entry was "NAME". It would then process the file row-by-row, looking for entries in the database with that NAME and then updating the rest of the fields with the data from that row in ADDRESS. RETRIEVE supported two interactive methods to update existing records, and . worked similarly to the modern SQL equivalent, , taking a selector expression of some sort, one or more fields, and the new values. For instance, one might . While ultimately did the same thing, it did so using an interactive mode. One invoked without the new value, for instance, . The system printed out that row and then allowed the user to edit the record. If there is more than one unique value, for instance, , each value was printed on a separate line and changes were sent to all matching records. was essentially identical to but did not print out the existing values first. Sorting was not performed at retrieval time, but was implemented by modifying the database and re-writing its contents in sorted order. This was accomplished with , followed by up to twenty field names. The original unsorted data is written to a backup file. The modifier could be used with any of the data modification statements to redirect the results to a new database. For instance, would append the data in the file FEBSALES to the current database and then save the results to CURSALES without updating the already-opened database. Or one might .


Other commands

Utility commands included which printed out the
database schema The database schema is the structure of a database described in a formal language supported by the database management system (DBMS). The term "schema" refers to the organization of data as a blueprint of how the database is constructed (divide ...
, and which returned the number of records.


Programming RETRIEVE

Although RETRIEVE was often used interactively, the system also included the ability to save lists of commands to files and then play them back. Command files could also include a number of other "helper" statements, including to output any string, to suppress the command prompt (a period), to turn the prompt back on, and and to stop the playback from appearing on the terminal. These command files were run using the statement from the internal command line or from outside RETRIEVE, in EXECUTIVE. If the script intended to leave the user in RETRIEVE at the end, one could put a at the end, "running" the Terminal, which specified what should happen next. Scripts could be strung together with to form more complex workflows. When run, the commands inside the files operated just as they would if the user typed them in. This means that if a statement is provided that would normally require additional user input, for instance, a with no parameters, the interactive mode would be invoked as normal. This allowed the command files to invoke user-based input and then perform additional instructions. One could, for instance, use to catch any recent changes in salary, call to have the system present each employee record and ask for their weekly hours, then to calculate the weekly paycheck for all users, and finally it send it all to a printer.


Comparison with dBASE

Although separated by almost a decade, and having moved across four platforms in the process,
dBASE dBase (also stylized dBASE) was one of the first database management systems for microcomputers and the most successful in its day. The dBase system includes the core database engine, a query system, a forms engine, and a programming language ...
on
DOS DOS is shorthand for the MS-DOS and IBM PC DOS family of operating systems. DOS may also refer to: Computing * Data over signalling (DoS), multiplexing data onto a signalling channel * Denial-of-service attack (DoS), an attack on a communicatio ...
remained very similar to RETRIEVE. Ratliff stated there was a "sort of progression from Retrieve to JPLDIS to my program, which I called Vulcan." John Walker, better known for
AutoCAD AutoCAD is a commercial computer-aided design (CAD) and drafting software application. Developed and marketed by Autodesk, AutoCAD was first released in December 1982 as a desktop app running on microcomputers with internal graphics controllers. ...
, also used JPLDIS and stated flatly that "DBase II, the Ashton-Tate database system, was a copy, a reimplementation of a package developed at the Jet Propulsion Laboratory called JPLDIS." / became and periods in field names were replaced by colons, but most other commands and features remained unchanged other than to support differences in the underlying platforms, like numeric formats. For instance, the original dBASE User Manual uses this example: use people list Which is identical to the instructions in RETRIEVE: LOAD people LIST The overall operation of the statements is largely identical between the two systems. dBASE's primary differences are related to the programmability; dBASE added variables, could columns made of formulas like , and added a much wider variety of functions to manipulate data, including functions for returning the length of a string or the data type of a given field.


Notes


References


Citations


Bibliography

*
extract available
on the FoxPro History site. * * * * * * {{cite book , last1=Wiederhold , first1=Gio , author-link=Gio Wiederhold , title=Database Design , year=2001 , publisher=McGraw-Hill , isbn=9780070701328 , pages=405–448 , edition=2nd , url=http://infolab.stanford.edu/pub/gio/dbd/acm/toc.html , language=en , chapter=Chapter 8: Schemas , chapter-url=http://infolab.stanford.edu/pub/gio/dbd/acm/chap08.pdf Tymshare software Database management systems