A MultiValue database is a type of
NoSQL
NoSQL (originally meaning "Not only SQL" or "non-relational") refers to a type of database design that stores and retrieves data differently from the traditional table-based structure of relational databases. Unlike relational databases, which ...
and
multidimensional database
In computing, online analytical processing (OLAP) (), is an approach to quickly answer multi-dimensional analytical (MDA) queries. The term ''OLAP'' was created as a slight modification of the traditional database term online transaction proces ...
. It is typically considered synonymous with PICK, a database originally developed as the
Pick operating system
The Pick Operating System, also known as the Pick System or simply 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 processin ...
.
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, develops AI and machine learning capabilities, and ...
, 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 includInter ...
,
Northgate Information Solutions
Software Solutions, formerly Northgate Public Services, is a provider of specialist software and outsourcing services for the public sector based in the United Kingdom. It was acquired by NEC Corporation in January 2018.
History
Early years
T ...
, ONgroup, and other companies. These databases differ from a
relational database
A relational database (RDB) is a database based on the relational model of data, as proposed by E. F. Codd in 1970.
A Relational Database Management System (RDBMS) is a type of database management system that stores data in a structured for ...
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 Gen ...
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 and language consistent with first-order predicate logic, first described in 1969 by English computer scientist Edgar F. Codd, where all data are represented in terms of t ...
. Unlike SQL-DBMS tools, most MultiValue databases can be accessed both with or without
SQL
Structured Query Language (SQL) (pronounced ''S-Q-L''; or alternatively as "sequel")
is a domain-specific language used to manage data, especially in a relational database management system (RDBMS). It is particularly useful in handling s ...
.
History
Don Nelson designed the MultiValue data model in the early to mid-1960s.
Dick Pick, 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 interac ...
, 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 Star Trek: The Original Series, series of the same name and became a worldwide Popular culture, pop-culture Cultural influence of ...
'' (a text-based early computer game originally written in Dartmouth BASIC) while developing the language, to ensure that DataBASIC functioned 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 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).
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.
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
[email protected], [email protected], [email protected]can 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 software, free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. PostgreSQL features transaction processing, transactions ...
, a column can be an array of any base type.
MultiValue Basic Language
Multivalue Basic (now commonly styled as ''mvBasic'') is a family of programming languages more or less common (and portable) to all the multivalue databases derived from the original Pick Operating System. The variations between implementations are known as ''flavours''.
The language originates from
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 interac ...
and the earliest implementation of PickBASIC (now D3 FlashBasic). Over time various customisations and extensions have been added to take advantage of capabilities added to the different flavours while staying mainly in sync.
mvBasic statements and functions are designed to access and take advantage of the multivalue database model and providing the usual capabilities of most modern languages. For example, cryptography and communications. mvBasic is typeless and lends itself to
structured programming Structured programming is a programming paradigm aimed at improving the clarity, quality, and development time of a computer program by making specific disciplined use of the structured control flow constructs of selection ( if/then/else) and repet ...
techniques.
Example code is available but limited. Whilst there are commercial applications and tools available, the multivalue database community has not embraced the open source
library
A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
/
package model to the degree seen with other languages.
The typical mvBasic compiler compiles program source to a
P-code
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 (normal ...
executable object and runs in an interpreter, with D3 FlashBasic
and
jBASE being notable exceptions.
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
Structured Query Language (SQL) (pronounced ''S-Q-L''; or alternatively as "sequel")
is a domain-specific language used to manage data, especially in a relational database management system (RDBMS). It is particularly useful in handling s ...
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''.[Reality
Reality is the sum or aggregate of everything in existence; everything that is not imagination, imaginary. Different Culture, cultures and Academic discipline, academic disciplines conceptualize it in various ways.
Philosophical questions abo ...]
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