← Back to context

Comment by Animats

2 years ago

> MUMPS is a procedural language with a built-in NoSQL database.

Right. MUMPS has a key/value store where values can contain more key/value pairs. You can thus construct arbitrary trees. It's possible to hang new data items onto arbitrary places in the tree. Like JSON and XML. This is useful for medical work, which doesn't fit well into the SQL model. MUMPS eventually got transactions and ACID properties, so that multiple updates to the database interlocked properly.

If you needed that kind of data storage today, what would you use?

MUMPS appeared in 1966, predating Edgar Codd's 1970 paper that would later give rise to relational databases. Additions to SQL introduced by the 1992 ANSI standard have become essential to its modern form.

So, although NoSQL is a familiar framing, pre-SQL is a more appropriate designation for MUMPS, since NoSQL was a response to SQL.

The tree data structure used by MUMPS is specifically a B-tree. This is a standard data structure and doesn't on its own give MUMPS much to brag about over other DBMSs which offer B-trees. MySQL offers B-trees as an indexing option, for instance.

  • Can you directly store data into a MySQL B-tree or is it only available for indexes?