Trace Id is missing
Skip to main content

NoSQL Database - What is NoSQL?

An overview for getting started

What are NoSQL databases?

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 benefits of NoSQL databases (NoSQL DBs)

NoSQL databases help IT pros and developers manage the new challenges of ever-expanding diversity of data types and models and are highly effective at handling unpredictable data, often with blazing-fast query speeds. They also provide a smooth database migration to the cloud for existing NoSQL workloads.

Develop with agility

With the ability to respond to unplanned situations, NoSQL DBs cater to frequent software release cycles and are suitable for faster and more agile app development.

Handle data with flexibility

NoSQL gives developers more freedom, speed, and flexibility to change both schema and queries to adapt to data requirements. Information stored as an aggregate makes it easier for quick iterative improvements— without having to do up-front schema design.

Operate at any scale

NoSQL DBs can provide compelling operational advantages and savings with the ability to scale "out" horizontally—or add less expensive servers without having to upgrade. They can scale to handle more data or hold a single, large database within a highly distributable clusters of servers.

Types of data models with NoSQL databases

Most nonrelational, high-performance databases, sometimes called “not only SQL,” can also handle highly structured data—they just aren’t limited to fixed data models like relational (SQL) databases.

 

The four most common types of NoSQL databases are:

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.

How to choose between relational (SQL) and nonrelational (NoSQL) databases

NoSQL or nonrelational SQL or relational

BEST FOR:

  • Handling large, unrelated, indeterminate, or rapidly changing data.
  • Schema-agnostic data or schema dictated by the app.
  • Apps where performance and availability are more important than strong consistency.
  • Always-on apps that serve users around the world.
  • Handling data that is relational and has logical and discrete requirements that can be identified in advance.
  • Schema that must be maintained and kept in sync between the app and database.
  • Legacy systems built for relational structures.
  • Apps requiring complex querying or multi-row transactions.

SCENARIOS:

  • Mobile apps.
  • Real-time analytics.
  • Content management.
  • Personalization.
  • IoT apps.
  • Database migration.
  • Accounting, finance, and banking systems.
  • Inventory management systems.
  • Transaction management systems.

SCALE:

  • Scales data horizontally by sharding across servers.
  • Scales data vertically by increasing server load.

DATA MODEL:

  • Database types: key-value, document, columnar, and graph databases.
  • Stores data depending on database type.
  • Database type: tables of rows, grouped into relations.
  • Uses Structured Query Language (SQL).
  • Stores data as rows in tables; related data stored separately and joined for complex queries.

How do I evaluate a NoSQL DB?

Choose a data model

Many NoSQL databases are oriented toward aggregates—a collection of data that you interact with as a unit. This makes them a much more natural fit for modern, object-oriented programming languages. When choosing a NoSQL DB, you’ll probably want to start by choosing a data model—and then evaluate the NoSQL databases that support it, along with the programming languages and SDKs that each database supports.

Weigh the tradeoffs of consistency

Most NoSQL DBs let you choose from either end of a consistency spectrum, from strong consistency—where you’ll get the latest data, but you may need to wait—to eventual consistency where you’ll get a fast response, but the data may be stale. There are many NoSQL databases that support other consistency levels that typically fall more in the middle of these extremes, as well. Choose the NoSQL DB that gives you the most flexibility and control in consistency models for your needs.

Consider the cloud and database migration

With their distributed nature and horizontal scalability, NoSQL DBs are an ideal fit for cloud computing, although you can also find many NoSQL database systems designed to run on-premises or in hybrid scenarios.

In evaluating your cloud options, consider the following:

  • Supported data models. Does the cloud provider support all the data models you might want to use?
  • Deployment and operations. How easily can you deploy your database and replicate it to other regions, if needed?
  • Geographic presence. Where are the cloud provider’s data centers? Can you put your data where you want it? How will you keep compliant with global data privacy regulations, such as the European Union’s GDPR?
  • Ease of replication. What’s the process for replicating your database to a different geographic region?
  • Scalability. Do the NoSQL database resources let you ensure adequate performance, as well as scale for growth? Will you be able to scale up, down, or horizontally?
  • High availability. What will happen in the event of an unexpected failure? Does the service offer built-in high availability and disaster recovery?
  • Service levels. What levels of availability or latency guarantees are offered?
  • Ecosystem. Is the database tightly integrated with the rest of the cloud platform and can it be stitched quickly to make new solutions?

Ways to use NoSQL database systems

Using data models based on NoSQL are a great fit for companies that want to build mobile, web, Internet of Things (IoT), and gaming apps that require flexible, scalable, high-performance, and highly functional databases to provide great user experiences—whether it’s gaming, e-commerce, big data analytics, or real-time web apps and beyond.

Globally distribute your apps

Gain more users, wherever they are in the world, with the improved app performance from high availability and disaster recovery.

Offer real-time customer experiences

Deliver personalization, real-time recommendations, and improved user experience with the NoSQL DBs.

Accommodate diverse IoT workloads

Scale instantly and elastically to handle sustained, write-heavy data ingestion with improved query performance for IoT apps.

Enhance your e-commerce apps

With flexible schemas and hierarchical data, NoSQL is well-suited for storing product catalog data where diverse products have different attributes.

Engage gamers with new content

Deliver personalized experiences with content like in-game stats, social media integration, and leaderboards. Low latency and elastic scalability support traffic spikes during game launches and tournaments.

Build serverless apps

Seamlessly scale data ingestion, throughput, and data volumes with immediate availability, automatic indexing, stable ingestion rates, and query performance.

Get better insights from big data

Implement machine learning at scale across rapidly changing, high-volume data and get more from your analytics.

Migrate existing NoSQL workloads to the cloud

Spend less time managing an on-premises database with a migration to the cloud, while still using your existing tools, drivers, libraries, and SDKs.

Get started with NoSQL and database migration to the cloud

Learn how to develop your apps with new agility, flexibility and scalability in managing your database systems and diverse data types, as well as a cloud database migration for existing NoSQL workloads. Get a technical overview of Azure Cosmos DB for developers and find out more about native support for NoSQL in a globally distributed, massively scalable, and multi-model database service.

Learn more about Azure Cosmos DB for NoSQL data   
Learn more