{"id":4245,"date":"2022-05-18T11:32:49","date_gmt":"2022-05-18T18:32:49","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cosmosdb\/?p=4245"},"modified":"2022-05-18T14:22:14","modified_gmt":"2022-05-18T21:22:14","slug":"cosmos-db-live-tv-episode-43-data-modeling-for-azure-cosmos-db-for-relational-mind","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cosmosdb\/cosmos-db-live-tv-episode-43-data-modeling-for-azure-cosmos-db-for-relational-mind\/","title":{"rendered":"Azure Cosmos DB Live TV Episode 43 &#8211; Data Modeling for the Relational Mind"},"content":{"rendered":"<p>Azure Cosmos DB Live TV returns with episode 43, where Principal Program Manager, <a href=\"https:\/\/twitter.com\/markjbrown\">Mark Brown<\/a> and Microsoft MVP <a href=\"https:\/\/twitter.com\/sadukie\">Sarah Dutkiewicz<\/a> 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.<\/p>\n<h3>Data Modeling<\/h3>\n<p>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\u2019s used at your business, and the process itself is a critical exercise in understanding and clarifying your data requirements.<\/p>\n<p>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.<\/p>\n<p>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:<\/p>\n<ul>\n<li>How is data going to be stored?<\/li>\n<li>How is your application going to retrieve and query data?<\/li>\n<li>Is your application read-heavy, or write-heavy?<\/li>\n<\/ul>\n<p>You\u2019ll need to consider these factors when determining the best way to make your data available to your applications. Let\u2019s get some answers to these questions. In this video, Sarah spends time with Mark looking at different data modeling scenarios. You\u2019ll learn more about how developers who\u2019ve focused on relational models can adjust their mindset when designing NoSQL databases for applications.<\/p>\n<h3>Watch the Show!<\/h3>\n<p><iframe title=\"Data Modeling for Azure Cosmos DB for the Relational Mind - Episode 43\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/q1noAIlzwXA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe><\/p>\n<p>\u200b<a class=\"yt-simple-endpoint style-scope yt-formatted-string\" dir=\"auto\" spellcheck=\"false\" href=\"https:\/\/www.youtube.com\/watch?v=q1noAIlzwXA&amp;t=113s\">00:01:53<\/a><span class=\"style-scope yt-formatted-string\" dir=\"auto\"> &#8211; Opening<\/span><\/p>\n<p><a class=\"yt-simple-endpoint style-scope yt-formatted-string\" dir=\"auto\" spellcheck=\"false\" href=\"https:\/\/www.youtube.com\/watch?v=q1noAIlzwXA&amp;t=281s\">00:04:41<\/a><span class=\"style-scope yt-formatted-string\" dir=\"auto\"> &#8211; Sarah introduces us to data modeling for Azure Cosmos DB for the relational mind <\/span><\/p>\n<p><a class=\"yt-simple-endpoint style-scope yt-formatted-string\" dir=\"auto\" spellcheck=\"false\" href=\"https:\/\/www.youtube.com\/watch?v=q1noAIlzwXA&amp;t=438s\">00:07:18<\/a><span class=\"style-scope yt-formatted-string\" dir=\"auto\"> &#8211; A look at a pizza store&#8217;s relational database.\n<\/span><\/p>\n<p><a class=\"yt-simple-endpoint style-scope yt-formatted-string\" dir=\"auto\" spellcheck=\"false\" href=\"https:\/\/www.youtube.com\/watch?v=q1noAIlzwXA&amp;t=535s\">00:08:55<\/a><span class=\"style-scope yt-formatted-string\" dir=\"auto\"> &#8211; How are you using this data?\n<\/span><\/p>\n<p><a class=\"yt-simple-endpoint style-scope yt-formatted-string\" dir=\"auto\" spellcheck=\"false\" href=\"https:\/\/www.youtube.com\/watch?v=q1noAIlzwXA&amp;t=572s\">00:09:32<\/a><span class=\"style-scope yt-formatted-string\" dir=\"auto\"> &#8211; Modeling for a document database\n<\/span><\/p>\n<p><a class=\"yt-simple-endpoint style-scope yt-formatted-string\" dir=\"auto\" spellcheck=\"false\" href=\"https:\/\/www.youtube.com\/watch?v=q1noAIlzwXA&amp;t=622s\">00:10:22<\/a><span class=\"style-scope yt-formatted-string\" dir=\"auto\"> &#8211; Data modeling for document stores <\/span><\/p>\n<p><a class=\"yt-simple-endpoint style-scope yt-formatted-string\" dir=\"auto\" spellcheck=\"false\" href=\"https:\/\/www.youtube.com\/watch?v=q1noAIlzwXA&amp;t=708s\">00:11:48<\/a><span class=\"style-scope yt-formatted-string\" dir=\"auto\"> &#8211; Denormalize \/ Embed\n<\/span><\/p>\n<p><a class=\"yt-simple-endpoint style-scope yt-formatted-string\" dir=\"auto\" spellcheck=\"false\" href=\"https:\/\/www.youtube.com\/watch?v=q1noAIlzwXA&amp;t=780s\">00:13:00<\/a><span class=\"style-scope yt-formatted-string\" dir=\"auto\"> &#8211; Normalize \/ Reference <\/span><\/p>\n<p><a class=\"yt-simple-endpoint style-scope yt-formatted-string\" dir=\"auto\" spellcheck=\"false\" href=\"https:\/\/www.youtube.com\/watch?v=q1noAIlzwXA&amp;t=1054s\">00:17:34<\/a><span class=\"style-scope yt-formatted-string\" dir=\"auto\"> &#8211; Demo: Document Store for Order History using Azure Cosmos DB SQL API\n<\/span><\/p>\n<p><a class=\"yt-simple-endpoint style-scope yt-formatted-string\" dir=\"auto\" spellcheck=\"false\" href=\"https:\/\/www.youtube.com\/watch?v=q1noAIlzwXA&amp;t=1583s\">00:26:23<\/a><span class=\"style-scope yt-formatted-string\" dir=\"auto\"> &#8211; Modeling for a graph database\n<\/span><\/p>\n<p><a class=\"yt-simple-endpoint style-scope yt-formatted-string\" dir=\"auto\" spellcheck=\"false\" href=\"https:\/\/www.youtube.com\/watch?v=q1noAIlzwXA&amp;t=1684s\">00:28:04<\/a><span class=\"style-scope yt-formatted-string\" dir=\"auto\"> &#8211; Understanding the characteristics of a graph database <\/span><\/p>\n<p><a class=\"yt-simple-endpoint style-scope yt-formatted-string\" dir=\"auto\" spellcheck=\"false\" href=\"https:\/\/www.youtube.com\/watch?v=q1noAIlzwXA&amp;t=1770s\">00:29:30<\/a><span class=\"style-scope yt-formatted-string\" dir=\"auto\"> &#8211; Graph database modeling considerations <\/span><\/p>\n<p><a class=\"yt-simple-endpoint style-scope yt-formatted-string\" dir=\"auto\" spellcheck=\"false\" href=\"https:\/\/www.youtube.com\/watch?v=q1noAIlzwXA&amp;t=1902s\">00:31:42<\/a><span class=\"style-scope yt-formatted-string\" dir=\"auto\"> &#8211; Graph strategies\n<\/span><\/p>\n<p><a class=\"yt-simple-endpoint style-scope yt-formatted-string\" dir=\"auto\" spellcheck=\"false\" href=\"https:\/\/www.youtube.com\/watch?v=q1noAIlzwXA&amp;t=1988s\">00:33:08<\/a><span class=\"style-scope yt-formatted-string\" dir=\"auto\"> &#8211; Demo &#8211; Recommendation Engine<\/span><\/p>\n<p><a class=\"yt-simple-endpoint style-scope yt-formatted-string\" dir=\"auto\" spellcheck=\"false\" href=\"https:\/\/www.youtube.com\/watch?v=q1noAIlzwXA&amp;t=2744s\">00:45:44<\/a><span class=\"style-scope yt-formatted-string\" dir=\"auto\"> &#8211; Azure Cosmos DB Resources for Data Modeling<\/span><\/p>\n<p><a class=\"yt-simple-endpoint style-scope yt-formatted-string\" dir=\"auto\" spellcheck=\"false\" href=\"https:\/\/www.youtube.com\/watch?v=q1noAIlzwXA&amp;t=3217s\">00:53:37<\/a><span class=\"style-scope yt-formatted-string\" dir=\"auto\"> &#8211; Contact Info for Sarah!<\/span><\/p>\n<h3>References<\/h3>\n<ul>\n<li><strong>Microsoft Docs:<\/strong>\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/cosmos-db\/sql\/modeling-data\">Data modeling in Azure Cosmos DB<\/a><\/li>\n<li><strong>Microsoft Docs:<\/strong>\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/cosmos-db\/sql\/how-to-model-partition-example\">How to model and partition data on Azure Cosmos DB using a real-world example<\/a><\/li>\n<li><strong>Microsoft Docs:<\/strong>\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/azure\/cosmos-db\/relational-nosql\">Understanding the differences between NoSQL and relational databases<\/a><\/li>\n<li><strong>Microsoft Learn:<\/strong>\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/learn\/modules\/model-partition-data-azure-cosmos-db\/\">Model and partition your data in Azure Cosmos DB<\/a><\/li>\n<li><a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/data-modeling-and-partitioning-for-relational-workloads\/\">Data Modeling and Partitioning for Relational Workloads<\/a><\/li>\n<li><a href=\"https:\/\/powerbi.microsoft.com\/en-my\/what-is-data-modeling\/\">What is data modeling?<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube.com\/playlist?list=PLmamF3YkHLoKMzT3gP4oqHiJbjMaiiLEh\">Playlist for all episodes of Azure Cosmos DB TV Live<\/a><\/li>\n<\/ul>\n<h3>Get Started with Azure Cosmos DB<\/h3>\n<p><span class=\"md-plain md-expand\">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 <\/span><span class=\"md-meta-i-c md-link\"><a href=\"http:\/\/www.azurecosmosdb.com\/\"><span class=\"md-plain\">www.AzureCosmosDB.com<\/span><\/a><\/span><span class=\"md-plain\"> or <\/span><span class=\"md-meta-i-c md-link\"><a href=\"https:\/\/docs.microsoft.com\/azure\/cosmos-db\/optimize-dev-test#azure-cosmos-db-free-tier\"><span class=\"md-plain\">get started for free<\/span><\/a><\/span><span class=\"md-plain\">. For up-to-date news on all things, Azure Cosmos DB be sure to follow us on <\/span><span class=\"md-meta-i-c md-link\"><a href=\"https:\/\/twitter.com\/AzureCosmosDB\"><span class=\"md-plain\">Twitter<\/span><\/a><\/span><span class=\"md-plain\">, <\/span><span class=\"md-meta-i-c md-link\"><a href=\"https:\/\/www.youtube.com\/AzureCosmosDB\"><span class=\"md-plain\">YouTube<\/span><\/a><\/span><span class=\"md-plain\">, and our <\/span><span class=\"md-meta-i-c md-link\"><a href=\"https:\/\/devblogs.microsoft.com\/cosmosdb\/\"><span class=\"md-plain\">blog.<\/span><\/a><\/span><span class=\"md-plain md-expand\">\u202f <\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 [&hellip;]<\/p>\n","protected":false},"author":39313,"featured_media":4246,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1809,1611],"tags":[],"class_list":["post-4245","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-customers","category-data-architecture"],"acf":[],"blog_post_summary":"<p>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 [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/posts\/4245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/users\/39313"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/comments?post=4245"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/posts\/4245\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/media\/4246"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/media?parent=4245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/categories?post=4245"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cosmosdb\/wp-json\/wp\/v2\/tags?post=4245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}