Book Image

Guide to NoSQL with Azure Cosmos DB

By : Gaston C. Hillar, Daron Yöndem
Book Image

Guide to NoSQL with Azure Cosmos DB

By: Gaston C. Hillar, Daron Yöndem

Overview of this book

Cosmos DB is a NoSQL database service included in Azure that is continuously adding new features and has quickly become one of the most innovative services found in Azure, targeting mission-critical applications at a global scale. This book starts off by showing you the main features of Cosmos DB, their supported NoSQL data models and the foundations of its scalable and distributed architecture. You will learn to work with the latest available tools that simplify your tasks with Cosmos DB and reduce development costs, such as the Data Explorer in the Azure portal, Microsoft Azure Storage Explorer, and the Cosmos DB Emulator. Next, move on to working with databases and document collections. We will use the tools to run schema agnostic queries against collections with the Cosmos DB SQL dialect and understand their results. Then, we will create a first version of an application that uses the latest .NET Core SDK to interact with Cosmos DB. Next, we will create a second version of the application that will take advantage of important features that the combination of C# and the .NET Core SDK provides, such as POCOs and LINQ queries. By the end of the book, you will be able to build an application that works with a Cosmos DB NoSQL document database with C#, the .NET Core SDK, LINQ, and JSON.
Table of Contents (13 chapters)
Title Page
Packt Upsell

Understanding the supported NoSQL data models

There are many flavors of NoSQL database. The following are the four most common types of NoSQL database:

  • Key/value: This is a persistent dictionary. It is best for when we know the key and we need to retrieve the associated value for the key.
  • Column, wide-column, or column-family: This organizes related data into columns instead of the typical organization in rows. It is best for when we need to query across specific columns in the database.
  • Document: This allows persisting JSON objects (documents), which can include nested objects or arrays of other objects.
  • Graph: This allows you to persist edges and nodes with their properties. It is best for when we need to store and navigate through complex relationships.

The following diagram outlines each of the four explained flavors of NoSQL database to make it easy to understand the typical data they persist:

Cosmos DB uses a schema-agnostic data store on top of the previously explained main features that provide a core platform. Cosmos DB can efficiently project this data store to the four previously listed NoSQL data models. Thus, the database service allows us to select the most appropriate NoSQL data model based on our needs, and we can take full advantage of partitioning, replication, and resource governance with any of them.