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.