[erlang-questions] Re: Conceptual questions on key-value databases for RDBMs users

Richard O'Keefe <>
Wed Nov 10 00:23:50 CET 2010


On 10/11/2010, at 5:01 AM, Edmond Begumisa wrote:

> Another observation...
> 
> I think a lot of it has to do with conceptual difference between SQL-RDBMS and NoSQL/kv-db/free-structure in terms of how both camps view the *role* of the database.

This is precisely how Date and Darwen characterise the difference
between the relational and OO data base camps:

Relational:	Applications come, applications go.  But if anything
		goes wrong with the data, we're out of business.

Object:		Applications are the centre of the universe.
		Databases are just for persistent storage, with
		maybe some indexing.

I'd point out that OO databases have been around for much longer than
the modern set of NoSQL or K-V systems.   Gemstone is still around,
and Magma is pretty cool.  Magma is really easy to use: objects in
the data base materialise in your workspace when you look at them,
modified objects get written back when you commit, and objects become
known to the data base by being reachable from the root object.

If what you need is persistent storage for a single application,
and you don't expect the data to outlive the application, a relational
database probably is not for you.

I've known a student write thousands of lines of Java code talking to
an SQL system in order to deal with data that could have been a simple
flat file or two with far better efficiency (all the data would have
fitted comfortably into memory).  I've known another group of students
insist on using SQL for an assignment where the explict point of the
assignment was to develop an in-memory data structure (which for this
application outperformed SQL a thousand-fold).




More information about the erlang-questions mailing list