NoSQL: it’s a notational problem!

There are those things that look complex and modern at first sight that when we look a little closer are actually pretty simple, like NoSQL for example. You know, I read a lot of articles and blog posts about this topic and always get amazed with the capacity of some authors to hide the basic fact about it:  we are actually dealing with a notational problem.

Greeks, romans and indians

When I think about the old Greek historical figures like Arquimedes, Thales of Miletus or Euclid. Those were the guys which basically made the foundation of what today we call mathematics (at least for the occidental culture).

What really amazes me is the fact that in this period of time we see a huge development of geometry but very little in algebra. This is the moment that I ask myself why. There are two reasons for this. The first is a pragmatical one: agriculture was one of the main economical forces of that time, and landing disputes was a very common issue, so geometry was a great tool to solve these problems.

The other reason is what really interest us on this post: they didn’t have a good notation to represent numbers and quantities, only shapes. When we look at the roman empire which succeeds the greeks we can see that advances so huge like those of the greeks didn’t show up. Actually, there’s one: the roman numerals, which were just a little more efficient than the greek ones, but not enough to start a mathematical revolution.

But in the India of the VI-VII century something happened that changed forever the mathematical landscape: the arabic number system, which maybe for the first time allowed us to represent bigger amounts based on the position of each number. It’s amazing how a “simple” new notation can fire things up: we can say that algebra really started from that point in time.

Well: enough about indians, greeks and romans. Back to NoSQL.

Database notations

Give a hammer to a kid and suddenly the whole world will look like a nail

Does all information really need to be represented as a set of rows and columns? Initially things were not like that: CODASYL for example had a navigational database system much like graph databases we see today.  Curiously, with the success of the relational model it was like if all database systems started to be based on tables.

We can’t deny the huge gains that the relational model brought to us, but I think that maybe the price of this success came with an intellectual loss to. The impression that I have is that since 1976 when Oracle launched the first successfully commercial relational database system all data got flattened to only two dimensions.

When we “tablelize” the world we must represent we get with solutions that are way more exapensive than necessary. It’s easy to see how, you just have to remember that table you created some time ago with few fields that today have a couple dozens or that magic you had to do just to represent more complex relationships between the entities of your system. Maybe a graph or even a key-value representation could be a better fit for the problem.

What I mean with all this is that the NoSQL movement actually was a wake up call for all of us that for some time saw data structures as only a bunch of tables on a relational database. Now it’s easier for us to see another options like graphs, documents, key-values, etc. With those “new” data structures we have now new notations to represent our world, the same way our indian friends revolutionized algebra with their notational system.

Concluding…

NoSQL (I actually don’t like this name) is more than database systems that don’t follow the relational model: they bring to the table new notations that we can use to represent the world in which our software will work. What NoSQL brought to us was way more than a solution for scalability problems: it’s a wake up call for all those data structures that we simply forget about because of our marriage with the relational model.

This “notational discovery” I believe will bring a huge jump to all of us developers: now it’s easier to bring better solutions based on better notations. If your reality can’t be well represented on a relational model just look for another one: now there are affordable solutions that may fit your needs.

Yeah: I can see a huge win for all of us coming real soon.
By the way: we ARE already winning with all of this.

 

2 thoughts on “NoSQL: it’s a notational problem!

  1. The things I hate hate about the NoSQL movement is that it really isn’t defined, but a super set of types of databases that are only related on the fact that their relational status is “complicated”. You have MongoDB that want to say it’s super high performance and can cook you waffles while giving you mom a *****************. If you take a look a look, yes it can give you some relational stuff, it completely fails if you try to provide redundancy and scale.

    Currently, the only NoSQL system (that I know of) that aims to give you this is OrientDB. It’s still not 100%, but they are trying to give the best all of all the worlds.

    [Reply]

    admin Reply:

    I agree with you.

    And I can say one more thing: the term NoSQL is terrible, because it actually doesn’t define anything.
    I’m about to translate a post of my portuguese blog (http://www.itexto.net/devkico/?p=1523) in which I show just how terrible this term is.

    [Reply]

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>