Is NoSQL Really Non-Relational?

by Abayomi Oloko

NoSQL databases are gaining quite a chunk of attention in technology circles today. From Google to Amazon, Facebook to Twitter,  there has been a lot of talk about the major shift in the way we traditionally perceive and understand databases. More important is an understanding of the architecture of these databases.

NoSQL databases basically stores data in key-value stores. The equivalent of this in traditional RDBMS being tables. For instance, in RDBMS a table may contain a primary key column alongside other columns of important information. Relating information in such a table from another table may require that you include that primary key as a foreign key in the second table. The scenario is not so different with a NoSQL database. Data in a NoSQL database is in key-value stores where a key file is created and a value file relational to the key file is also created. This value file contains all information relating to the key. To the traditional RDBMS pro, it is like creating a text file to hold only primary keys and then creating another file to hold all other information(values) relating to the primary keys stored in the first table. A field in the key file will definately point to the location of the its values.

I have read a lot about the portrayal of NoSQL as a database that is non-Relational and I believe this statement needs a revisit. I have worked with relational databases for more than half the time that I have been alive and it seems to me quite unimaginable, that a database architecture exists, that does not relate in the true sense, NoSQL databases inclusive.

Related Posts Plugin for WordPress, Blogger...

Abayomi Oloko

Abayomi Oloko is Head MIS at Nigerite Limited, Ikeja Lagos Nigeria, a global manufacturing, one-stop building solution company and a subsidiary of ETEX Group Belgium. He has a background in Applied Information Technology and also in Electrical/Electronics Engineering and Telecoms. He has almost 2 decades of experience in areas like Project Management, IT Governance, Telecoms, Business Analysis, Business Intelligence, Databases, Software Development, Change Management, Network Administration, Business Process Improvement, Information Security and Object Oriented Design among others. 

  5 comments for “Is NoSQL Really Non-Relational?

  1. Ben
    April 6, 2012 at 9:14 am

    Using your logic that anything mapped through the notion of a key is therefore relational, then all data storage for all time could be considered relational.

    A mainframe storage of data using ISAM, IDMS, CMS, etc. would be considered relational because key aspects of data are available through locating data based on some sort of key identifier.

    This does not make a data store relational, as we all know.

    However, there are relational databases that are not SQL. That being the case, I have a problem with the thought that No-SQL excludes relational databases.

    The typical No-SQL database engines popular today are not relational; they are key value pair. These are two completely different kinds of storage techniques.

    • Abayomi Oloko
      July 6, 2012 at 2:45 am

      Data storage methodologies employ the traditional row-column formats either logically or in graphical reality which still gives credence to the thinking of relativity of data as the smallest indivisible part of data storage in any format.

      On the other hand, if we are to drill down on your comment below, then we may be re-writing my article above:

      “However, there are relational databases that are not SQL. That being the case, I have a problem with the thought that No-SQL excludes relational databases”.

  2. Alex
    April 11, 2012 at 3:30 am

    Abayomi,

    No offence but you’re making a common error here with regards to the meaning of “relational” in this context. If you read anything by EF Codd or Chris Date, you’ll pick up on the fact that it does not refer to the “relationships” between tables, but rather the mathematical concept of a “relation” of tuples (multiple sets of the same sequence of attributes), implemented as what we commonly call a database table.

    Because NOSQL solutions are typically much more loosely structured and in fact schema free, I would contend that they are absolutely not relational in any meaningful sense. While not in any way barring the use of (e.g.) MongoDB for many purposes, this does have an significant impact in terms of the strictness and mathematical/ logical validity of data integrity constraints.

  3. Abayomi Oloko
    July 6, 2012 at 3:09 am

    Alex,

    The SQL engine is actually a baseline tool for communicating with data stored in certain database application software as we know today. These SQL database software applications themselves use “NoSQL” algorithm for database operations on these data stores on their own end while we “talk” to them via ANSI-SQL languages. In essence, what NoSQL databases do is to remove the SQL translator layer and access the data directly thereby introducing considerable cost-savings.

    In my experience over the years, I have used Visual Basic to access data directly in NoSQL format a number of times, the storage being relational as it was organised in row-column format just like the datasources of modern NoSQL databases. The argument along the line of entity relationship being another layer which I emphasized because it looked like most reports I have read on NoSQL debunked this idea.

    For me, relativity is key in any organized data storage methodology, be it logical or graghical, SQL or NoSQL.

  4. April 12, 2013 at 8:11 pm

    After study a few of the blog posts in your web site now, and I truly like your approach of blogging. I bookmarked it to my bookmark web site list and will probably be checking again soon. Pls take a look at my website as well and let me know what you think.

Leave a Reply

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

Add video comment