NoSQL databases are interchangeably referred to as “nonrelational,” “NoSQL DBs,” or “non-SQL” to highlight the fact that they can handle huge volumes of rapidly changing, unstructured data in different ways than a relational (SQL) database with rows and tables. NoSQL technologies have been around since the 1960s, under various names, but are enjoying a surge in popularity as the data landscape shifts and developers need to adapt to handle the sheer volume and vast array of data generated from the cloud, mobile, social media, and big data. From viral celebrity tweets to life-saving information in electronic medical records, new data and data types are being generated at a dizzying pace. NoSQL databases have evolved to help developers quickly create database systems to store the new information and make it readily available for search, consolidation, and analysis.
The following types of NoSQL databases are available.
- Key-value. Key-value stores pair keys and values using a hash table. Key-value types are best when a key is known and the associated value for the key is unknown.
- Document. Document databases extend the concept of the key-value database by organizing entire documents into groups called collections. They support nested key-value pairs and allow queries on any attribute within a document.
- Columnar. Columnar, wide-column, or column-family databases efficiently store data and query across rows of sparse data and are advantageous when querying across specific columns in the database.
- Graph. Graph databases use a model based on nodes and edges to represent interconnected data—such as relationships between people in a social network—and offer simplified storage and navigation through complex relationships.
Examples of NoSQL databases are the following:
- Azure Cosmos DB (various type coverage)
- Azure Table storage and API (key-value)
- MongoDB (document)
- Apache Cassandra (columnar)
- Apache Tinkerpop and Gremlin query language (graph)