Introduction to NoSQL Concept

This article introduces the NoSQL concept. There are many NoSQL databases available like MongoDB, Elastic Search and Hadoop and so on.

We are all familiar with the social media sites like Facebook. Do we ever consider how much data is uploaded by it by countless users? Studies show that 500+ terabytes of new data is uploaded every day. This includes all types of data including photos and videos, comments, messages and so on. This is a really huge amount of data, isn't it? More interestingly, it is growing at a faster pace. Data is currently very important in many aspects. A saying about the importance of data is “if your data isn't growing then neither is your business”.

"Big Data" is a term used to describe a type of collection of data. All of our traditional databases, like Oracle, Microsoft SQL and DB2, are not able to manage this huge amount of data efficiently. To manage this kind of data No SQL is introduced. Carlo Strozzi introduced NoSQL in 1998 to name his lightweight, open-source relational database that did not expose the standard SQL interface.

Again, let's use the definition from Wikipedia, “A NoSQL or Not Only SQL database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases.” There are many NoSQL databases available like MongoDB, Elastic Search and Hadoop and so on. The common features are:

  • Very flexible.
  • Non-relational and schema-less data model.
  • Low latency and high performance.
  • Horizontal scalable.
  • Distributed architectures.

Types of NoSQL Databases

We can categories NoSQL databases as in the following:

  1. Key-Value store: a Key-Value store is the simplest data model. Each data is associated with a key. It is the fastest data model.
  2. Column/wide-column store: These databases are designed to store data tables as sections of columns of data, rather than as rows of data.
  3. Document database: a document store is a data model for storing semi-structured data and metadata. Normally we use JSON.
  4. Graph database: These databases are designed to store graph type data where objects are or an object is linked or interconnected by several other objects like in a graph structure.
Datamodel Scalability Flexibility Complexity Examples
Key-value store High High None DyanmoDB, Azure Table Storage (ATS)
Column Store High Moderate Low HBase, BigTable and HyperTable
Document Store High High Low MongoDB and CouchDB
Graph Database Variable High High Neo4J and Polyglot.

You can refer to a NoSQL introduction presentation at YouTube.

Please refer to my articles ElasticSearch in Java and Simple CRUD With MongoDB.