A MultiValue database is a type of
NoSQL
A NoSQL (originally referring to "non- SQL" or "non-relational") database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Such databases have existed ...
and
multidimensional database
Online analytical processing, or OLAP (), is an approach to answer multi-dimensional analytical (MDA) queries swiftly in computing. OLAP is part of the broader category of business intelligence, which also encompasses relational databases, repor ...
, typically considered synonymous with PICK, a database originally developed as the
Pick operating system
The Pick Operating System (Pick System or Pick) is a demand-paged, multi-user, virtual memory, time-sharing computer operating system based around a MultiValue database. Pick is used primarily for business data processing. It is named after one o ...
.
MultiValue databases include commercial products from
Rocket Software
Rocket Software is a privately held software development firm founded in 1990. Using the IBM Z, IBM Power, and embedded database platforms, Rocket provides predictive analytics with deep data, develop AI and machine learning capabilities, and de ...
, Revelation,
InterSystems
InterSystems Corporation is a privately held vendor of software systems and technology for high-performance database management, rapid application development, integration, and healthcare information systems. The vendor's products includInterSy ...
,
Northgate Information Solutions
NEC Software Solutions, formerly Northgate Public Services, is a provider of specialist software and outsourcing services for the public sector and is based in the United Kingdom. This followed its acquisition by NEC Corporation in January 201 ...
, ONgroup, and other companies. These databases differ from a
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 ...
in that they have features that support and encourage the use of attributes which can take a list of values, rather than all attributes being single-valued. They are often categorized with
MUMPS
MUMPS ("Massachusetts General Hospital Utility Multi-Programming System"), or M, is an imperative, high-level programming language with an integrated transaction processing key–value database. It was originally developed at Massachusetts Gener ...
within the category of
post-relational databases, although the data model actually pre-dates the
relational model
The relational model (RM) is an approach to managing data using a Structure (mathematical logic), structure and language consistent with first-order logic, first-order predicate logic, first described in 1969 by English computer scientist Edgar F. ...
. Unlike SQL-DBMS tools, most MultiValue databases can be accessed both with or without
SQL.
History
Don Nelson designed the MultiValue data model in the early to mid-1960s.
Dick Pick
Dick, Dicks, or Dick's may refer to:
Media
* Dicks (album), ''Dicks'' (album), a 2004 album by Fila Brazillia
* Dicks (band), a musical group
* Dick (film), ''Dick'' (film), a 1999 American comedy film
* Dick (song), "Dick" (song), a 2019 song ...
, a developer at
TRW, worked on the first implementation of this model for the US Army in 1965. Pick considered the software to be in the public domain because it was written for the military. This was but the first dispute regarding MultiValue databases that was addressed by the courts.
Ken Simms wrote DataBASIC, sometimes known as S-BASIC, in the mid-1970s. It was based on
Dartmouth BASIC
Dartmouth BASIC is the original version of the BASIC programming language. It was designed by two professors at Dartmouth College, John G. Kemeny and Thomas E. Kurtz. With the underlying Dartmouth Time Sharing System (DTSS), it offered an inter ...
, but had enhanced features for data management. Simms played a lot of ''
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 ...
'' while developing the language, in order to have the language function to his satisfaction.
Three of the implementations of MultiValue - PICK version R77, Microdata Reality 3.x, and Prime Information 1.0 - were very similar. In spite of attempts to standardize, particularly by International Spectrum and the Spectrum Manufacturers Association, who designed a logo for all to use, there are no standards across MultiValue implementations. Subsequently, these flavors diverged, although with some cross-over. These streams of MultiValue database development could be classified as one stemming from
PICK R83, one from
Microdata Microdata can mean:
* Microdata (statistics), a statistical term for individual response data in surveys and censuses
* Microdata (HTML), a specification for semantic markup in HTML
* Microdata Corporation
Microdata Corporation was an American ...
Reality, and one from
Prime
A prime number (or a prime) is a natural number greater than 1 that is not a product of two smaller natural numbers. A natural number greater than 1 that is not prime is called a composite number. For example, 5 is prime because the only ways ...
Information. Because of the differences, some implementations have provisions for supporting several flavors of the languages. An attempt to document the similarities and differences can be found at the Post-Relational Database Reference (PRDB).
Marketing groups and others in the industry over the years have classified MultiValue databases as pre-relational, post-relational, relational, and embedded, with detractors often classifying it as legacy. It could now be classified as
NoSQL
A NoSQL (originally referring to "non- SQL" or "non-relational") database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Such databases have existed ...
. With a data model that aligns well with
JSON
JSON (JavaScript Object Notation, pronounced ; also ) is an open standard file format and data interchange format that uses human-readable text to store and transmit data objects consisting of attribute–value pairs and arrays (or other ser ...
and
XML
Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing arbitrary data. It defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. T ...
and that permits access with or without the use of SQL.
One reasonable hypothesis for this data model lasting 50 years,
with new database implementations of the model even in the 21st century is that it provides inexpensive database solutions. Historically, with industry benchmarks tied to SQL transactions, this has been a difficult hypothesis to test, although there are considerable anecdotes of failed attempts to get the functionality of a MultiValue application into a
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 ...
framework.
In spite of a history of more than 40 years of implementations, starting with
TRW, many in the MultiValue industry have remained current so that various MultiValue implementations now employ object-oriented versions of Data/BASIC, support
AJAX
Ajax may refer to:
Greek mythology and tragedy
* Ajax the Great, a Greek mythological hero, son of King Telamon and Periboea
* Ajax the Lesser, a Greek mythological hero, son of Oileus, the king of Locris
* ''Ajax'' (play), by the ancient Greek ...
frameworks, and because no one needs to use SQL (but some can) with these databases, they fit under the
NoSQL
A NoSQL (originally referring to "non- SQL" or "non-relational") database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Such databases have existed ...
umbrella. In fact, MultiValue developers were the first to acquire nosql domain names, likely prior to other database products classifying their offerings as NoSQL as well. MultiValue is a seasoned data model with several vendors competing in the MultiValue space. It has been continuously enhanced over the years.
Data model example
In a MultiValue database system:
* a database or schema is called an "account"
* a table or collection is called a "file"
* a column or field is called a field or an "attribute", which is composed of "multi-value attributes" and "sub-value attributes" to store multiple values in the same attribute.
* a row or document is called a "record" or "item"
Data is stored using two separate files: a "file" to store raw data and a "dictionary" to store the format for displaying the raw data.
For example, assume there's a file (table) called "PERSON". In this file, there is an attribute called "eMailAddress". The eMailAddress field can store a variable number of email address values in a single record.
The list
oe@example.com, jdb@example.net, joe_bacde@example.orgcan be stored and accessed via a single query when accessing the associated record.
Achieving the same (one-to-many) relationship within a traditional relational database system would include creating an additional table to store the variable number of email addresses associated with a single "PERSON" record. However, modern relational database systems support this multi-value data model too. For example, in
PostgreSQL
PostgreSQL (, ), also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. It was originally named POSTGRES, referring to its origins as a successor to the In ...
, a column can be an array of any base type.
MultiValue DataBASIC
Like the
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
programming language, the typical Data/BASIC compiler compiles to P-code, or
bytecode
Bytecode (also called portable code or p-code) is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references (norma ...
, and runs in a P-machine, with jBASE being a notable exception. It has as many different implementations (compilers) as there are MultiValue databases.
Like
PHP
PHP is a general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementation is now produced by The PHP Group ...
programming language, the Data/BASIC language does all the typecasting for the programmer.
MultiValue Query Language
Known as ENGLISH, ACCESS, AQL, UniQuery, Retrieve, CMQL, and by many other names over the years, corresponding to the different MultiValue implementations, the MultiValue query language differs from
SQL in several respects. Each query is issued against a single dictionary within the schema, which could be understood as a virtual file or a portal to the database through which to view the data.
:LIST PEOPLE LAST_NAME FIRST_NAME EMAIL_ADDRESSES WITH LAST_NAME LIKE "Van..."
The above statement would list all e-mail addresses for each person whose last name starts with "Van". A single entry would be output for each person, with multiple lines showing the multiple e-mail addresses (without repeating other data about the person).
See also
*
Rocket U2
Rocket U2 is a suite of database management (DBMS) and supporting software now owned by Rocket Software. It includes two MultiValue database platforms: ''UniData'' and ''UniVerse''. (UniVerse and UniData)
*
OpenQM
OpenQM is a MultiValue database originally developed by Ladybridge Systems in the United Kingdom and subsequently acquired by Zumasys. The primary product architect is Martin Phillips.
OpenQM history
OpenQM was first developed in 1993 as an in-ho ...
by Ladybridge Systems
*
Reality
Reality is the sum or aggregate of all that is real or existent within a system, as opposed to that which is only imaginary. The term is also used to refer to the ontological status of things, indicating their existence. In physical terms, r ...
by Northgate-IS
*
Caché by InterSystems
References
{{reflist
External links
DB-Engines Ranking of Multivalue DBMSby popularity, updated monthly
Zeobase: A free multivalue database
Databases
Database management systems
NoSQL
Online analytical processing