MultiValue

From Wikipedia, the free encyclopedia

MultiValue is a type of multidimensional database, typically considered synonymous with PICK, a database originally developed as the Pick operating system.

MultiValue databases include commercial products from IBM, Raining Data, jBASE, Revelation, Ladybridge, Intersystems, Reality, and other companies. These databases differ from a traditional relational database in that they have features that support and encourage the use of attributes having a list of values, rather than all attributes having a single value. They are often categorized with MUMPS within the category of post-relational databases, although the data model actually pre-dates the relational model.

Contents

[edit] History

The MultiValue data model was designed by Don Nelson in the early to mid 1960's. Dick Pick was a developer at TRW who worked on the first implementation of this model for the US Army in the late 1960's. Dick 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.

Dick Pick was known for his eccentricity, which included a fondness for "beer, babes, and boats," as well as his technology innovations.

Ken Simms wrote DataBASIC, sometimes known as S-BASIC, in the mid-70's. It was based on Dartmouth BASIC, but had enhanced features for data management.


[edit] Data Model Example

With a MultiValue database schema, also known as an account, a dictionary for a file named Person might have an attribute named EmailAddresses with values that can be represented as the list [joe@abc132.info, jdb@gbmail.net, joe_bacde@thisorthat.edu].

Person could have another attribute LastName, with a value of "bacde".

A relational database schema for this same information would have two tables. There would be one row for Joe in the Person table and three rows in a PersonEmail table, one for each of Joe's e-mail addresses.

[edit] MultiValue DataBASIC

Like the Java programming language, the typical DataBASIC compiler compiles to P-code and runs in a P-machine. It has as many different implementations (compilers) as there are MultiValue databases.


[edit] 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).