NOSQL DATABASES NoSQL Databases – A Primer
In this blog, Vivek Karnataki discusses NoSQL databases, how different NoSQL Databases are compared with Relational databases, as well as different types of NoSQL Databases including Neo4j!
Contrary to their name, NoSQL databases are not databases without SQL (Structured Query Language) capabilities nor are they a single product or technology. NoSQL databases are a group of data storage and manipulation technologies that do not have relational capabilities. Some of the NoSQL databases, in fact, do permit querying in SQL or SQL-like languages but they do not have fixed schemas. So, a more appropriate name for these set of products could be NoREL (No Relational) or the acronym NoSQL can be thought of as a short hand for ‘Not Only SQL’.
Traditionally, Relational Databases (RDBMS) have been used to store data required for processing in applications. However, over the past couple of decades, as data started exceeding the processing capacity of traditional databases, there became a need to have alternative storage and retrieval mechanisms. Coupled with the advent of Big Data, the problem of having to process large amount (Volume) of unstructured data (Variety) in real-time (Velocity) became even more acute. Since Relational Databases could not address this need, it led to the popularity and prevalence of NoSQL databases. NoSQL databases provide us with mechanisms to store and retrieve data for Big Data Analytics along with capabilities for schema-less data structures, horizontal scaling, high availability and alternative query methods.
Graph databases, as their name suggests, are based on the Graph Theory and provide means of dealing with highly interconnected data. In these databases, data is represented as nodes and then relationships are defined between these nodes. Using these relationships, traversing through the nodes becomes easy and efficient. Neo4J, Polyglot and infiniteGraph are some examples of graph databases.