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

Joe Armstrong <>
Thu Nov 4 23:01:30 CET 2010


On Tue, Nov 2, 2010 at 9:14 PM, Silas Silva <> wrote:
> This is a message I sent to the 
> discussion group.  I thought it might be interesting to send it
> erlang-questions, so here we go...
>
>
> Hi all!
>
> I have used SQL RDBMSs for some time.  I've never used any very advanced
> feature, but I know enough of it to make database applications.
>
> Nowadays, I decided it would be interesting to learn some NoSQL
> databases concepts.  So I decided to pick up some Erlang and Mnesia, its
> native key-value database.  More than scalability itself, the most
> valuable feature for me is the possibility of replication and
> synchronization between nodes.
>
> But all pros have cons as companion.  The lack of a relationship model
> is difficult for who is used to RDBMSs.  So, my question is:
>
> * Is there any guide, tutorial, book, whatever, that tries to introduce
>  NoSQL databases to SQL users?
>
> * Key-value databases are surprising simple.  I know you solve
>  relationship by denormalizing data.  What data should be normalized?
>  What shouldn't?  How do you update denormalized data?

I'm no database expert so don't quote me here ...

As far as I am concerned traditional databases like SQL suffer
from the fact that the data stored in an individual column is incredible
simple - I can store an integer/string/... in a column but these are
incredibly simple data structures. I want to store and retrieve incredibly
complicated things - how do I store an XML parse tree in a single cell
of a database? - How do I store a database in a database ...

In a decent K-V database the value of the key can be *anything* - an
entire database for example, a compiler, ... no worries

Then when I analyse my problem I start thinking "I can store and retrieve any
complex object that keys do I need to solve my problem?"

I'm not thinking in terms of joins and normalizing things - the thought process
is different - so far I haven't met any problems that don't map onto key-values
queries.

It seems to my that SQL provides you with the ability do to complex
queries on simple things. K-V dbs can do simple queries on complex
things.

/Joe



>
> Sorry for such simple and general questions.  Things were simple up to
> the moment that I realized that it would be easily solved with a JOIN
> SQL statement.  :-)
>
> Thank you very much!
>
> --
> Silas Silva
>
> ________________________________________________________________
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:
>
>


More information about the erlang-questions mailing list