MultiValue

MultiValue

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 Rocket Software, Raining Data, jBASE, Revelation, Ladybridge, InterSystems, Northgate Information Solutions and other companies. These databases differ from a 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

History

Don Nelson designed the MultiValue data model in the early to mid 1960s.[1] 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.[citation needed]

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. Simms played a lot of Star Trek while developing the language, in order to have the language function to his satisfaction.[2]

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 [3], 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 Information.[4]. 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 PRDB [5]

Marketing groups and others in the industry over the years have classified MultiValue databases as pre-relational, post-relational, relational, and embedded, with detractors classifying it as legacy. It could now be classified as NoSQL. With a data model that aligns well with XML and that permits access with or without the use of SQL, MultiValue is still not hip and has not been hip for many decades. Many of the applications employing MultiValue and even many of the developers working with MultiValue are hip, of course, but the databases are workhorses, tools for getting the job done.

One reasonable hypothesis for this data model lasting more than 40 years, with new database implementations of the model even in the 21st century is that it provides database solutions in a big bang for the buck fashion. 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 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 frameworks, and because no one needs to use SQL (but some sure can) they fit under the NoSQL 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, but with so many vendors competing in this space, it has been constantly enhanced over the years.

Data model example

In a MultiValue database system:

  • a Database is called an "Account"
  • a Table is called a "file"
  • a Column is an "Attribute" or "Dictionary": attributes generally point at raw data, while dictionaries apply some transformation to the raw data

For example, assume there's a file (table) called "PERSON". And in this file there is a Dictionary (column) called "eMailAddress". The eMailAddress field can store a variable number of email address values in the single record.

So the list [joe@abc132.info, jdb@gbmail.net, joe_bacde@thisorthat.edu] can be stored and accessed via a single query / disk read when accessing the associated record.

To achieve the same (1-to-many) relationship within a Relational Database system one would be required to create an additional table to store the variable number of email Addresses associated to a single "PERSON" record.

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. Like PHP programming language, the DataBASIC 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

  • jBASE by jBASE International
  • Rocket U2 (UniVerse and UniData)
  • OpenInsight by Revelation
  • OpenQM by Ladybridge Systems
  • Reality by Northgate-IS
  • Caché by InterSystems

References


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Look at other dictionaries:

  • multivalue — adjective Of or pertaining to more than one value …   Wiktionary

  • Pick operating system — Company / developer Don Nelson, Dick Pick, TRW Programmed in Assembly language Initial release 1965 (GIRLS), 1973 (Reality Operating System) Marketing target Business data processing Available …   Wikipedia

  • NoSQL — This article is about the class of database management systems. For the specific relational database management software, see NoSQL (RDBMS). Structured storage redirects here. It is not to be confused with COM Structured Storage. In computing,… …   Wikipedia

  • JBASE — is a multivalue database system.Description Copied from Pick operating system. jBASE was released in 1991 by a small company in the UK, then named James Anthony Consultants,(JAC), later to become jBASE Software Limited. Formed March 6th 1989 by… …   Wikipedia

  • Microsoft Access — Microsoft Office Access 2010 running on Windows 7 Developer(s) Microsoft Corporation …   Wikipedia

  • IEEE 1076 — The IEEE Standard 1076 defines the VHSIC Hardware Description Language or VHDL. It was originally developed by CLSI under contract F33615 83 C 1003 from the United States Airforce in 1983. The language has undergone numerous revisions and has a… …   Wikipedia

  • Caché (software) — Infobox Software name = Caché developer = InterSystems Corporation latest release version = 2008.2 RC (build 506) latest release date = operating system = multiple genre = database management and application development website =… …   Wikipedia

  • Microsoft Jet Database Engine — This article is about JET Red used in Microsoft Access. For the JET Blue ISAM implementation, see Extensible Storage Engine. The Microsoft Jet Database Engine is a database engine on which several Microsoft products have been built. A database… …   Wikipedia

  • IBM UniData — UniData is a multivalue database management system and operating environment that runs on the major Unix servers and Windows NT/2000. Designed for embedding in vertical software applications, UniData was originally developed by the UniData… …   Wikipedia

  • OpenQM — is a Multi Value (MV) database run time developed by Ladybridge Systems in the United Kingdom. The product architect is Martin Phillips. Contents 1 OpenQM history 1.1 Unique Multi Value features 2 Bibliography …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”