Azure Cosmos DB Live TV Episode 43 – Data Modeling for the Relational Mind

Jay Gordon

Mark Brown

Azure Cosmos DB Live TV returns with episode 43, where Principal Program Manager, Mark Brown and Microsoft MVP Sarah Dutkiewicz showcase how the relational mind can into the nonrelational side by looking at the differences in data modeling. They will walk through a common scenario and how relational modeling differs from modeling for document storage and graph databases.

Data Modeling

Microsoft defines data modeling as the process of analyzing and defining all the different data your business collects and produces, as well as the relationships between those bits of data. The process of modeling your data creates a visual representation of data as it’s used at your business, and the process itself is a critical exercise in understanding and clarifying your data requirements.

There are typically three different types of data models used: Conceptual, Logical, and Physical. Conceptual Data Modeling is used for organizing business concepts and defining the overall structure of your business and data. Logical Data Modeling builds on the conceptual model with specific attributes of data within each entity and particular relationships between those attributes. Lastly, the Physical Data Model is the implementation of the Logical model and is developed for a specific database tool, data storage technology, and data connectors to serve the data throughout your business systems to users as needed.

While schemaless databases, like Azure Cosmos DB, make it super easy to store and query unstructured and semi-structured data, you should spend some time thinking about which data model to get most of the service in terms of performance and scalability, and lowest cost. Some critical questions to ask yourself when devising a NoSQL data model include:

  • How is data going to be stored?
  • How is your application going to retrieve and query data?
  • Is your application read-heavy, or write-heavy?

You’ll need to consider these factors when determining the best way to make your data available to your applications. Let’s get some answers to these questions. In this video, Sarah spends time with Mark looking at different data modeling scenarios. You’ll learn more about how developers who’ve focused on relational models can adjust their mindset when designing NoSQL databases for applications.

Watch the Show!

00:01:53 – Opening

00:04:41 – Sarah introduces us to data modeling for Azure Cosmos DB for the relational mind

00:07:18 – A look at a pizza store’s relational database.

00:08:55 – How are you using this data?

00:09:32 – Modeling for a document database

00:10:22 – Data modeling for document stores

00:11:48 – Denormalize / Embed

00:13:00 – Normalize / Reference

00:17:34 – Demo: Document Store for Order History using Azure Cosmos DB SQL API

00:26:23 – Modeling for a graph database

00:28:04 – Understanding the characteristics of a graph database

00:29:30 – Graph database modeling considerations

00:31:42 – Graph strategies

00:33:08 – Demo – Recommendation Engine

00:45:44 – Azure Cosmos DB Resources for Data Modeling

00:53:37 – Contact Info for Sarah!

References

Get Started with Azure Cosmos DB

Azure Cosmos DB is a fully managed NoSQL database for modern app development with SLA-backed speed and availability, automatic and instant scalability, and open-source APIs for MongoDB, Cassandra, and other NoSQL engines. Discover features or capabilities at www.AzureCosmosDB.com or get started for free. For up-to-date news on all things, Azure Cosmos DB be sure to follow us on Twitter, YouTube, and our blog.