Home
David and Caroline Morris
david | caroline | daniel | chapeltown | webcam

Multivalue databases

'Multivalue' is the term coined for the family of databases derived from the systems developed by Dick Pick in the 1970's. The PICK (or mv as I'll use from now on) model is a multi-dimensional data structure with variable length records and is generally light on system resources whilst being extremely flexible and great for representing multi-dimensional real world data.

For instance, using the mv data model, you can take a real example like a stock record where material can be split over several locations and contain the whole lot in one record.

The structure may look something like:

key: stockcode
a: description
a: location
n: quantity

The trick here is that the location and quantity fields are multivalued.

Who does an mv database achieve this? Well, it all comes down to field delimiters. Essentially, a mv file is like a big CSV file (but doens't use commas!).

Typically, a mv system uses Ascii character 254 to delimit fields and 253 to delimit multiple values within a field.

If you think of an mv record as being a bit like an object (using an OOP paradigm), you start to see how things can be made more efficient...

In a new manufacturing system I'm working on at the moment, the bit of the system that describes the movement of material across the shop floor has three or four levels of nested data. Using the mv model, I can put the whole lot into a single record in one place in the database. That brings significant performance advantages... one file lookup and I've got the whole lot.

One of the things I've always threatened to get around to is a mv-programming tutorial. Pleaes keep checking back to see whether I've got around it!