The Pick operating system
(often called just "the Pick system" or simply "Pick") is a demand-paged
, multiuser, virtual memory
, time-sharing operating system
based around a unique "multivalued" database
. It is used primarily for business data processing
. Although it started on a variety of minicomputers
, the system and various implementations eventually spread to a large variety of microcomputers
and mainframe computers
, and is still in use today.
The Pick database is a 'hash-file' data management system. A hash-file system is a collection of dynamic associative arrays
which are organized altogether and linked and controlled using associative files as a database management system. Being hash-file oriented, Pick provides efficiency in data access time in many cases. All data structures in Pick are hash-files (at the lowest level) meaning records are stored as associated couplets of a primary key to a set of values.
A Pick database is divided into one or more accounts, so-called master dictionaries, dictionaries, files and sub-files, each of which is a hash-table oriented file. These files contain records made up of fields, sub-fields and sub-sub-fields. In Pick, records are called items, fields are called attributes, and sub-fields are called values or sub-values (hence the present-day label "multivalued database"). All records are variable-length, and field and values are marked off by special delimiters, so that any file, record, or field may contain any number of entries of the lower level of entity. As a result, a Pick item is like a file on most conventional systems. Entities that are stored as 'files' in other common-place systems (i.e. source programs and text documents) must be stored as records within files on Pick.
The file hierarchy is roughly equivalent to the common Unix-like hierarchy of directories, sub-directories, and files. Dictionaries are similar to directories in that they store pointers to other dictionaries, files and executable programs. Dictionaries also contain the command-line language. The command-line language is extensible and hierarchically inherited, meaning that a dictionary at one level will use all of the lexical definitions from its higher level 'parent' dictionaries.
All files (accounts, dictionaries, files, sub-files) are organized identically as are all records. This uniformity is exploited throughout the system, both by system functions, and by the system administration commands. For example, the 'find' command will find and report the occurrence of a word or phrase in a file, and can operate on any account, dictionary, file or sub-file.
Each record must have a unique, primary key which determines where in a file that record is stored. To retrieve a record, its key is hashed and the resultant value specifies which of a set of discrete "buckets" to look in for the record. (Within a bucket, records are scanned sequentially.) This same method is used to write the record back to its correct "bucket".
In its initial implementation, Pick records were limited to 32K bytes in total (when a 10MB hard disk cost US$5000), although this limit was removed in the 1980s. Files can retain an unlimited number of records, but retrieval efficiency is determined by the number of records relative to the number of buckets allocated to the file. Each file may be initially allocated as many buckets as required, although changing this extent later may (in some versions) require the database to be quiescent. All files start as a contiguous group of disk pages, and grow by linking additional "overflow" pages from unused disk space.
Initial Pick implementations had no index structures as they were not deemed necessary. Around 1990, a B-tree indexing feature was added. This feature makes secondary key look-ups operate much like keyed inquiries of any other database system: requiring at least two disk reads (a key read then a data-record read).
Files include a "dictionary" fork, and the items in the dictionary fork serve as definitions for the names and structure of the items in the data fork. The dictionary is optional, the system does not use the contents of the dictionary to ensure the integrity of the file as some other file-systems do; rather it is used only for the reporting tool. A Pick database has no data typing since all data is stored as characters, including numbers (which are stored as character decimal digits). Integrity, rather than being controlled by the system, is controlled by the applications and the discipline of the programmers.
In contrast to many SQL database systems, Pick allows for multiple, pre-computed field aliases. For example, a date field may have an alias definition for the format 12 Oct 1999, and another alias formatting that same date field like 10/12/99. File cross-connects or joins are handled as a synonym definition of the foreign key. A customer's data, such as name and address, are 'joined' from the customer file into the invoice file via a synonym definition of customer number in the invoice dictionary.
Pick record structure favors a "denormalized" decomposition, where all of the data for an entity is stored in a single record, obviating the need to perform joins. When managing large, sparse data sets in this way can result in efficient use of storage space.
Pick was originally implemented as the Generalized Information Retrieval Language System (GIRLS) on an IBM System/360 in 1965 by Don Nelson and Dick Pick at TRW for use by the U.S. Army to control the inventory of Cheyenne helicopter parts. Pick was subsequently commercially released in 1973 by Microdata (and their British distributor CMC) as the Reality Operating System now supplied by Northgate Information Solutions.
Originally on the Microdata implementation, and subsequently implemented on all Pick systems, a BASIC-like language called Data/BASIC with numerous syntax extensions for database operations was the primary programming language for applications. A PROC procedure language was provided for executing scripts. An SQL-style language called ENGLISH allowed database retrieval and reporting, but not updates. ENGLISH did not fully allow manipulation of the 3-dimensional multivalued structure of data records, nor did it directly provide common relational capabilities such as joins because powerful data dictionary redefinitions for a field allowed joins via the execution of a calculated lookup in another file. The system included a spooler. A simple text editor for file-system records was provided, but the editor was only suitable for system maintenance, and could not lock records, so most applications were written with the other tools such as Batch, RPL, or the BASIC language so as to ensure data validation and allow record locking.
Dick Pick had founded Pick & Associates, later renamed Pick Systems and currently called Raining Data, and licensed what was now called "Pick" to a large variety of manufacturers and vendors who have produced different "flavors" of Pick. The database flavor sold by Raining Data is now known as D3, and those sold by IBM under the "U2" umbrella are known as UniData and Universe. Dick Pick died of stroke complications in October 1994.
Pick Systems was often tangled in licensing litigation, and relatively little effort was devoted to marketing and improving the software. Subsequent ports of Pick to other platforms generally offered the same tools and capabilities for many years, usually with relatively minor improvements and simply renamed (for example, Data/BASIC became Pick/BASIC and ENGLISH became ACCESS). Licensees often developed proprietary variations and enhancements (for example, Microdata created their own input processor called ScreenPro). The resulting fragmented plethora of non-standard implementations caused the various Pick systems to wander ineffectively while the rest of the industry moved forward. As a result, Pick is no longer as popular or successful or discussed as it once was. Yet Pick still commands an enthusiastic user following of dedicated professionals who recognize that its robust data model, ease of use, scalability and language/operating system integration provide a productive environment found nowhere else.
Derivative and related products
What most characterizes Pick is the design and features of the database and the associated retrieval language. The Pick database was licensed to roughly three dozen licensees between 1978 and 1984, some of which are included in this list. Application-compatible implementations evolved into derivatives and also inspired similar systems, of which a few examples are: Reality
: The first implementation of the Pick database was on a Microdata platform and called Reality
. The first commercial release was in 1973. The Microdata implementations ran in firmware
, so each upgrade had to be accompanied by a new chip. Microdata itself was eventually bought by McDonnell-Douglas Information Systems. Pick and Microdata sued each other for the right to market the database, the final judgment being that they both had the right. In addition to the Reality
series of computers, Microdata sold the Sequel series which was a much larger class able to handle up to 200 simultaneous users. The modern version of the original Pick implementation is owned and distributed by Northgate Information Solutions Reality
Ultimate : The second implementation of the Pick database was developed in about 1978 by a New Jersey
company called The Ultimate Corp, run by Ted Sabarese. Like the earlier Microdata port, this was a firmware implementation, with the Pick monitor in firmware and the OS in software, on a Honeywell Level 6 machine. Later versions of the Ultimate systems used separate processors installed in the cabinet. Processor boards were built from bit slice processors and microcoded with the Pick assembler instruction set. One version of this was installed in a Honeywell Level 6 machine and was known as a "7X" system as it was seven times faster than the firmware system. The Honeywell processor acted as in input/output processor to the 7X board. Two 7X boards installed in a chassis formed the "15X" machine. Another version used a DEC LSI-11 for the IOP and a 7X board. Ultimate enjoyed moderate success during the 1980s, and even included an implementation running as a layer on top of DEC VAX systems, the 750, 780, 785 and later the MicroVAX
. Ultimate also had versions of the Ultimate Operating System running on IBM 370 series systems (under VM and native) and also the 9370 series computers. ADDS : (Applied Digital Data Systems
) This was the first implementation to be done in software only, so upgrades were accomplished by a tape load, rather than a new chip. The "Mentor" line was initially based on the Zilog Z-8000 chipset and this port set off a flurry of other "software implementations
" across a wide array of processors with a large emphasis on the Motorola 68000. Prime INFORMATION : Devcom, a Microdata reseller, wrote a Pick-style database system in FORTRAN
in 1979 called Prime INFORMATION, which was eventually sold to Prime Computer
, which later sold the technology to Vmark Software. INFO-BASIC, a variant of Dartmouth BASIC
, was used for database applications. UniVerse
: Another implementation of the system was by VMark Software. This was the first one to incorporate the ability to emulate other implementations of the system, such as Microdata's Reality
Operating System, and Prime Information. Originally running on UNIX
, it was later also made available for Windows
. It now is owned and distributed by IBM. (The systems developed by Prime and VMark are now owned by IBM
and referred to as "U2".) UniData
: Very similar to UniVerse. UniData is a multi-valued Pick-style database. It is also owned and distributed by IBM. Revelation : In 1984, Cosmos released a Pick-style database called Revelation, later Advanced Revelation, for DOS
on the IBM PC
was released in 1991 by a small company of the same name located in Hemel Hempstead. Written by former Microdata engineers, jBASE
emulates all implementations of the system to some degree. jBASE
is unique in that it compiles applications to native machine code form, rather than to an intermediate byte code. UniVision : A Pick-style database released in 1992 by EDP
located in Sheffield. OpenQM
: OpenQM is the only multi-value database product available both as a fully supported non-open source commercial product and in open source form under the General Public Licence. It is available from OpenQM
and for OpenQM in french
Caché : In 2005 InterSystems
, the maker of Caché
database, announced support for a broad set of multi-value extensions in Caché. Caché for MultiValue
Onware : ONware ends isolation of MultiValue applications. ONware equips these applications with the ability to use the common databases, such as Oracle and SQL Server. Using ONware you can integrate MultiValue applications with Relational, Object and Object-Relational applications.
Through the implementations above, and others, Pick-like systems became available as database/programming/emulation environments running under many variants of UNIX and Windows.
Over the years, many important and widely used applications have been written using Pick or one of the derivative implementations. In general, the end users of these applications are unaware of the underlying Pick implementation.
The Pick OS invites comparison with MUMPS. Similarities include:
- Both systems are built on the efficient implementation of large, sparse, string-indexed arrays;
- Both comingle the language and the OS;
- Both have a similar domain of applicability.
- MUMPS - another language of the 60s with an integrated database.
- The REALITY Pocket Guide ; Jonathan E. Sisk ; Irvine, CA ; JES & Associates, Inc. ; 1981
- Exploring The Pick Operating System ; Jonathan E. Sisk ; Steve VanArsdale ; Hasbrouck Heights, N.J. ; Hayden Book Co. 1985.
- The Pick Pocket Guide ; Jonathan E. Sisk ; Desk reference ed ; Hasbrouck Heights, N.J. ; Hayden Book Co. 1985.
- The Pick Perspective ; Ian Jeffrey Sandler ; Blue Ridge Summit, PA ; TAB Professional and Reference Books; 1989.
- Pick for professionals : advanced methods and techniques ; Harvey Rodstein ; Blue Ridge Summit, PA ; TAB Professional and Reference Books; 1990.
- Encyclopedia PICK (EPICK) ; Jonathan E. Sisk ; Irvine, CA ; Pick Systems ; 1992
- Le Système d'exploitation PICK ; Malcolm Bull ; Paris: Masson, 1989.
- The Pick operating system ; Joseph St John Bate; Mike Wyatt; New York : Van Nostrand Reinhold, 1986.
- The Pick operating system ; Malcolm Bull ; London ; New York : Chapman and Hall, 1987.
- Systeme pick ; Patrick Roussel, Pierre Redoin, Michel Martin ; Paris: CEdi Test, 1988.
- Advanced PICK et UNIX : la nouvelle norme informatique ; Bruno Beninca; Aulnay-sous-Bois, Seine-Saint-Denis ; Relais Informatique International, 1990.
- Le systeme PICK : mode d'emploi d'un nouveau standard informatique ; Michel Lallement, Jeanne-Françoise Beltzer; Aulnay-sous-Bois, Seine-Saint-Denis ; Relais Informatique International, 1987.
- The Pick operating system : a practical guide ; Roger J Bourdon; Wokingham, England ; Reading, Mass. : Addison-Wesley, 1987.
- Le Système d'éxploitation : réalités et perspectives ; Bernard de Coux; Paris : Afnor, 1988.
- Pick BASIC : a programmer's guide ; Jonathan E Sisk;Blue Ridge Summit, PA : TAB Professional and Reference Books, 1987.
- Pick BASIC : a reference guide ; Linda Mui; Sebastopol, CA : O'Reilly & Associates, 1990.
- Programming with IBM PC Basic and the Pick database system ; Blue Ridge Summit, PA : TAB Books, 1990.
- An overview of PICK system ;Shailesh Kamat; 1993.
Content relating to dates prior to 1987 being verified against paper