NoSQL Databases Overview
What is a NoSQL Database?
NoSQL databases are databases designed to be used across large distrusted systems. They are notably much more scalable and much faster at handling very large data loads than traditional relational databases. Unlike other databases, NoSQL databases do not use the standard tabular relationships the relational databases employ. Instead, NoSQL databases allow for the querying and storage of data by a variety of other means, depending on the specific software.
NoSQL Features & Capabilities
Data Model Flexibility
Deployment Model Flexibility
Advantages of NoSQL over Relational Databases?
Traditional relational databases store data in highly structured tabular form, with multiple rows and columns. While these data stores are highly flexible, easy to maintain, and effective for data stored on a single server, they do not scale very well in a distributed system compared to NoSQL database alternatives.
Distributed systems using inexpensive storage and processing power are becoming much more common and are often used in environments where there is a need for high availability and speed. NoSQL databases work significantly better across this kind of distributed system.
The other main advantages are:
NoSQL databases are Non-Relational meaning they are table-less and easier to manage. They provide a higher level of flexibility with newer data models.
They are often open source and therefore lower cost. NoSQL databases can be an appealing solution for smaller organizations with limited budgets.
NoSQL databases are optimized for specific data models that enable higher performance than trying to accomplish similar functionality with relational databases.
NoSQL Data Models
Not all NoSQL databases use the same data model. Although the primary distinction between a relational data store and a NoSQL database is the data model, there are several different types of NoSQL data model. Below are descriptions of three of the most popular data models used in NoSQL databases:
Graph model: NoSQL databases using the graph model usually require all the data to reside on one machine which negates one of the key advantages of NoSQL databases. This class of databases uses structures like data modes, edges and properties, making it easier to model relationships between entities in an application.
Key-value model: In this NoSQL database model, a key is required to retrieve and update data. The key-value data model is very simple and therefore scales well. However, this simplicity and scalability come at the cost of query complexity.
NoSQL database costs can be a complex issue. Although the database itself can be free or much less expensive than a traditional relational database, the cost of maintaining a NoSQL product can be higher. Part of the reason for this is that expertise in the various types of NoSQL database is harder to find than traditional SQL expertise.