NoSQL Databases

What is NoSQL Database?


The NoSQL database movement came about to address the shortcomings of relational databases and the demands of modern software development, mostly addressing some of the key points: being non-relational, distributed, open-sourceand horizontally scalable. The original intention has been modern web-scale databases. The movement began early 2009 and is growing rapidly. Often more characteristics apply such as: schema-free, easy replication support, simple API, eventually consistent / BASE (not ACID), a huge amount of data and more.The primary way, in which NoSQL databases differ from relational databases is the data model, they primarily fall into one of the following three models:

Document Model: Whereas relational databases store data in rows and columns, document databases store data in documents. These documents typically use a structure that is like JSON (JavaScript Object Notation), a format popular among developers.

Key-Value and Wide Column Models: From a data model perspective, key-value stores are the most basic type of NoSQL database. Tables may be created, dropped, and altered at runtime without blocking updates and queries.Every item in the database is stored as an attribute name, or key, together with its value. The value, however, is entirely opaque to the system; Data is retrieved by primary key per column family.

Graph Model: Graph databases use graph structures with nodes.The simplest possible graph is a single Node, a record that has named values referred to as Properties. A Node could start with a single Property and grow to a few million, though that can get a little awkward. At some point, it makes sense to distribute the data into multiple nodes, organized with explicit Relationships.

Why NoSQL Database?

Interactive applications have changed dramatically over the last 15 years, and so have the data management needs of those apps. Following are few of the reasons on why NoSQL is increasingly considered a viable alternative to relational databases:

Big Users: To dynamically support rapidly growing (or shrinking) number of concurrent users.

Big Data: Data volumes were once smaller, constrained and predictable. Today organizations must be prepared to support millions of users, thousands of queries per second and hundreds of terabytes of data.

Scalable: NoSQL systems are more scalable and provide superior performance, robust support for clusters spanning multiple datacenters, with asynchronous masterless replication allowing low latency operations for all clients.

Popular NoSQL Databases

Currently (while writing this blog)there are around 150 NoSQL databases and to name a few:

Apache Cassandra: Apache Cassandra is an open source distributed database management system, developed by Facebook in 2008, is the right choice when you need scalability and high availability without compromising performance.

Apache Lucene: Lucene uses large block of texts to index, which makes it a unique NoSQL database. Lucene or Solr mainly works on queries that aren’t limited to exact matches but looks for words or parts of words that appear in blocks. Lucene or Solr mainly works on queries that aren’t limited to exact matches but looks for words or parts of words that appear in blocks.

Mongo DB: MongoDB is the leading NoSQL database, empowering businesses to be more agile and scalable. It stores data in the form of JSON like documents that are coalesced with dynamic schemas. This database has all the key features for a NoSQL database like key-value storage, JavaScript formatting, and flexible replication for sharding across nodes.

Amazon DynamoDB: DynamoDB is a fast, fully managed NoSQL database service that makes it simple and cost-effective to store and retrieve any amount of data, and serve any level of request traffic.

Big Table: Big Table is a compressed, high performance, and proprietary data storage system, developed under the guidance of Google. It is not distributed outside Google, although Google offers access to it as part of its Google App Engine.

Hadoop: Hadoop, one of the biggest tools in database, has its own data store called HBase. This database primarily runs in an open source technology which supports NoSQL data stores. In 2010, Facebook acquired HBase to provide fault-tolerance storage to their databases.

Oracle NoSQL: The Oracle NoSQL Database is a distributed key-value database.Making the most of big data means quickly acquiring and analyzing a high volume of data generated in many different formats.

Conclusion:

NoSQL databases are gaining mindshare as an alternative model for database management, and when used appropriately, can offer real benefits. However, enterprises should proceed with caution with full awareness of the legitimate limitations and issues that are associated with these databases.