What is NoSQL?
A NoSQL database is aimed at supporting large sets of distributed data. The development of NoSQL began as a response to big data, which calls for highly scalable, distributed architecture and flexible data requirements. The name “NoSQL” is intended to showcase that NoSQL database solutions do not only operate in SQL languages or interfaces.
4 Main types of NoSQL databases
- Key-value stores: Data is stored with attribute names known as keys paired with a value. An Example of a key-value store is Amazon’s DynamoDB.
- Graph stores: A database designed to store networks of data such as social links or public transportation networks. Examples of graph-based database solutions include Neo4J and ArangoDB.
- Column Stores: This approach stores columns of data together instead of row. This allows for high performing, scalable solution but is considered to have minimal functionality. Examples of column store solutions include HBase and Cassandra.
- Document-Based: This approach aims at storing and managing semi-structured data known as document-oriented information. Document-oriented databases are similar to a key-value store except a document, which may contain its own tuple such as a key-value pair, is assigned a key. An example of a document-based database solution is MongoDB.
- Multi-model: This is an approach that combines one of the four types above as well as other data models. One popular example is Cassandra, which is both a key-value and column based storage.
4 Advantages of NoSQL
Relational databases once fit all of our needs, but as our ability to capture and analyze data grows, NoSQL provides many advantages for modern business use. Below illustrates several design elements that make NoSQL a powerful competitor to traditional databases.
- Flexible storage models for any of your needs. NoSQL databases are referred to as dynamic schemas or schema-less because they do not require you to define a specific type of stored data, which allows you to store many data types such as those seen in the above section.
- Scalable architecture to fit any data size. NoSQL databases are horizontally scaling allowing you to add any amount of commodity servers or cloud space to fit your needs. Auto-sharding allows for automatic spreading of data across many servers.
- Fault tolerance for maximal data availability. Many NoSQL solutions offer replication that allows servers to quickly be replaced in the event of outages or failures. This works in tandem with other commodity servers and auto-sharding enabled databases. Several database solutions offer automated failover and recovery as well as abilities to withstand regional failures.
- Development models are open source. This allows for many organizations to offer unique solutions that may fit your business requirements.
- There are 4 main approaches to NoSQL databases: key-value stores, graph stores, column stores, document-based. There are hybrid database types known as multi-model approaches.
- NoSQL offers a modern architecture to support our abilities capture big data. Many design elements make NoSQL a powerful competitor to traditional databases.