{"id":1353,"date":"2018-05-14T13:05:45","date_gmt":"2018-05-14T20:05:45","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/data-modeling-for-couchbase-with-erwin-dm-nosql\/"},"modified":"2018-05-14T13:05:45","modified_gmt":"2018-05-14T20:05:45","slug":"data-modeling-for-couchbase-with-erwin-dm-nosql","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/data-modeling-for-couchbase-with-erwin-dm-nosql\/","title":{"rendered":"Data Modeling for Couchbase with erwin DM NoSQL"},"content":{"rendered":"<p class=\"wp-block-paragraph\"><span>Given the architecture and design of NoSQL systems, especially the document family databases like Couchbase that do not enforce schema on write, data modeling for NoSQL can often be challenging when migrating from relational systems to NoSQL or when building applications ground up using NoSQL. Infact, data modeling is often a critical success factor to Couchbase deployments, and progressively optimizing data models can be a huge application performance booster given the rapidly evolving nature of big data applications.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Traditionally, data modeling for relational systems was the science of identifying the data objects, their relationships with one another, and their accurate representation, that laid the foundation for a good database design. Modeling for NoSQL on the other hand, explores application specific access patterns e.g., \u201cwhat are the types of questions users would like to answer with this data?\u201d \u00a0This in turn dictates the kind of queries that need to be supported and focuses on how best to lay out the data for performance optimization. These considerations cause us to change our data modeling approach from the traditional constraints of RDBMS(schema on write) to modeling data for the specific application (schema on read). <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Another differentiator between RDBMS and NoSQL systems which impact modeling paradigms is the concept of normalization and denormalization of data. While the RDBMS systems emphasized data normalization to understand strict relationships and meet rigid storage limitations back in the day, flexible NoSQL systems lean towards denormalization of data since data is distributed across clusters and redundancy can facilitate the scaling of data reads. Often, the ideal data model is a combination of both approaches, depending on the use case.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Hence, accurate data modeling continues to remain a core discipline for success with NoSQL databases.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Now, let\u2019s dive into modeling using erwin DM NoSQL. erwin DM NoSQL offers three major functionalities:<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Forward engineering<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>The process of converting your relational models to Couchbase compatible JSON models.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Transformation <\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Ability to choose your desired form of transformation (normalized, denormalized, custom) for your models. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Reverse engineering<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Ability to import the schema from production data in Couchbase to the erwin environment.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>The following is the step-by-step guide to modeling data for the Couchbase Data Platform using erwin DM NoSQL:<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Set-up:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Step 1:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Request for an account <\/span><a href=\"https:\/\/erwin.com\/products\/data-modeler-nosql\/\"><span>here<\/span><\/a><span> and login to erwin DM NoSQL using your credentials.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5136\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Screen-Shot-2018-05-06-at-3.54.40-PM-300x263-1.png\" alt=\"\" width=\"300\" height=\"263\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Step 2:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Push an Entity-Relationship model generated from erwin DM or any other relational modeling tool in \u201cXML\u201d format using the import option to erwin DM NoSQL.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5137\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Screen-Shot-2018-05-04-at-3.45.14-PM-300x279-1.png\" alt=\"\" width=\"300\" height=\"279\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Step 3:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Visualize your ER diagrams in erwin environment.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5138\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Screen-Shot-2018-05-03-at-1.07.16-AM-300x138-1.png\" alt=\"\" width=\"530\" height=\"244\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Transformation <\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Step 1: <\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Choose to transform the models using normalized, denormalized or custom transformation.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5139\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Screen-Shot-2018-05-03-at-1.07.52-AM-300x220-1.png\" alt=\"\" width=\"300\" height=\"220\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Step 2: <\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>a.Normalized transformation:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Normalization is typically the process of organizing data in the database by creating separate tables and establishing relationships to remove duplication. The objects or entities in this process are usually referenced. When creating JSON models, referenced tables would typically be separate documents.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5140\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Screen-Shot-2018-05-04-at-4.21.23-PM-300x114-1.png\" alt=\"\" width=\"300\" height=\"114\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5140\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Screen-Shot-2018-05-04-at-4.21.23-PM-300x114-1.png\" alt=\"\" width=\"300\" height=\"114\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>b.Denormalized transformation:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>In this process, the data objects are usually embedded. Since, similar objects are embedded in many documents this organization exhibits redundancy. Denormalization is often found to improve performance significantly as we don\u2019t need joins to fetch the data needed. This is often adopted in NoSQL systems. In this tool, the transformed model generated using denormalization is a combination of embedded and referenced objects.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5141\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Screen-Shot-2018-05-06-at-3.59.01-PM-300x202-1.png\" alt=\"\" width=\"300\" height=\"202\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>In the fig above, purchase order, order item are embedded objects whereas Publisher, Store name and BookReturn are referenced objects.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>c.Custom transformation:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>The erwin DM NoSQL typically analyses the data organization using your E-R diagram and transforms your models to Couchbase compatible JSON models based on certain rules. However, since you as an app developer or an application owner know your application the best, we provide you the ability to customize your models. You have the option to reference certain embedded objects and we provide you some guidelines within the tool to help you make a right choice.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5142\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Screen-Shot-2018-05-03-at-1.14.12-AM-300x136-1.png\" alt=\"\" width=\"417\" height=\"189\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Note:<\/b><span> You can clone any of these models and tweak them by adding or removing attributes, properties etc.,<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Forward engineering:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Step 1:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Download the model created on your local system.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5143\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Screen-Shot-2018-05-14-at-12.13.09-PM-300x223-1.png\" alt=\"\" width=\"300\" height=\"223\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Step 2:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Set up Couchbase clusters on AWS and access web console using port 8091<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5144\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Screen-Shot-2018-05-04-at-1.58.19-PM-300x158-1.png\" alt=\"\" width=\"510\" height=\"269\"><br>\n<b><\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Step 3:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Use secure copy and copy the downloaded file from your local machine to your Couchbase EC2 instance.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Syntax (OSX): <\/b><b>scp -i path to key -r path to directory ec2-user@hostname:~<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Ex: \u00a0scp -i \/Users\/chaitra.ramarao\/Downloads\/US_East.pem -r \/Users\/chaitra.ramarao\/Downloads\/Cl_De_EMOVIES r9.64_20180329185059 \u00a0ec2-user@ec2-54-152-108-80.compute-1.amazonaws.com:~<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5145\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Screen-Shot-2018-05-04-at-3.03.02-PM-300x182-1.png\" alt=\"\" width=\"300\" height=\"182\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Step 4: <\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Login to your AWS instance using ssh<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Syntax(OSX):<\/b><b>ssh -i path to key.pair ec2-user@remote ip<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Ex: ssh -i \/Users\/chaitra.ramarao\/Downloads\/US_East.pem ec2-user@ec2-34-203-230-73.compute-1.amazonaws.com<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Step 5:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Verify if the files are copied by listing them using \u201cls\u201d<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Step 6: <\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Navigate to the file bulkInsert.sh<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Ex:Cd \/De_movies..\/scripts\/5.x to locate bulkInsert.sh<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Step 7: <\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Make bulkInsert file an executable and set the path<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Chmod +x bulkInsert.sh<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>PATH=\/opt\/couchbase\/bin:$PATH<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Step 8:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Execute bulkInsert script with following syntax<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>.\/bulkInsert.sh \u00a0&lt;hostname&gt; &lt;portnum&gt; \u00a0&lt;couchbase instance username&gt; &lt;password&gt; &lt;bucket name to load the data&gt;<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Ex : .\/bulkInsert.sh localhost 8091 Administrator password sample<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>You can see the modeled sample data loaded into Couchbase with bucket name specified by you.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5147\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Screen-Shot-2018-05-03-at-1.09.08-PM-300x142-1.png\" alt=\"\" width=\"444\" height=\"210\"><\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>The script typically creates models on junk data, it can be modified by the application developers to create models for actual data samples and use them to deploy to Couchbase using the deployment scripts provided. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5146\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Screen-Shot-2018-05-14-at-12.26.38-PM-300x118-1.png\" alt=\"\" width=\"437\" height=\"172\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>You can also query the data once loaded into Couchbase using N1QL (SQL for JSON) and test the accuracy and efficiency of your models using Query workbench and query planner.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Reverse engineering:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Step 1: <\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Set up connection to Couchbase using connection manager as shown below:<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5148\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Screen-Shot-2018-05-04-at-3.44.00-PM-290x300-1.png\" alt=\"\" width=\"290\" height=\"300\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Step 2: <\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Choose reverse engineer Couchbase<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5137\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Screen-Shot-2018-05-04-at-3.45.14-PM-300x279-1.png\" alt=\"\" width=\"300\" height=\"279\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Step 3:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Schema Import of Couchbase production data<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-5149\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Screen-Shot-2018-05-04-at-3.48.53-PM-240x300-1.png\" alt=\"\" width=\"240\" height=\"300\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Step 4: <\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Visualize the reverse engineered Couchbase models in erwin environment \u00a0<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-5150\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/Screen-Shot-2018-04-24-at-12.13.34-PM-300x136-1.png\" alt=\"\" width=\"492\" height=\"223\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Continue to tweak your models periodically to ensure your models are optimized to provide the best performance.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Data modeling using erwin will help you to accelerate your time to market, provide you the interface for visualizing your modeling process and tremendously improve the accuracy of your models. Better data models ensure better performance and stronger success with Couchbase.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Do share your comments here or reach out to us at forums.couchbase.com<\/span><\/p>","protected":false},"excerpt":{"rendered":"<p>Given the architecture and design of NoSQL systems, especially the document family databases like Couchbase that do not enforce schema on write, data modeling for NoSQL can often be challenging when migrating from relational systems to NoSQL or when building applications ground up using NoSQL. Infact, data modeling is often a critical success factor to [&hellip;]<\/p>\n","protected":false},"author":6588,"featured_media":18,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"_acf":"","footnotes":""},"categories":[127,136,179,189],"tags":[],"ppma_author":[319],"class_list":["post-1353","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-design","category-best-practices-and-tutorials","category-couchbase-architecture","category-data-modeling"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.6 (Yoast SEO v27.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Data Modeling for Couchbase with erwin DM NoSQL<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/data-modeling-for-couchbase-with-erwin-dm-nosql\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Data Modeling for Couchbase with erwin DM NoSQL\" \/>\n<meta property=\"og:description\" content=\"Given the architecture and design of NoSQL systems, especially the document family databases like Couchbase that do not enforce schema on write, data modeling for NoSQL can often be challenging when migrating from relational systems to NoSQL or when building applications ground up using NoSQL. Infact, data modeling is often a critical success factor to [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/data-modeling-for-couchbase-with-erwin-dm-nosql\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-05-14T20:05:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-nosql-dbaas.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1800\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc.\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc.\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/data-modeling-for-couchbase-with-erwin-dm-nosql\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/data-modeling-for-couchbase-with-erwin-dm-nosql\\\/\"},\"author\":{\"name\":\"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc.\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/852cd95d6c8aa5ea6d4128643cc3c2b6\"},\"headline\":\"Data Modeling for Couchbase with erwin DM NoSQL\",\"datePublished\":\"2018-05-14T20:05:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/data-modeling-for-couchbase-with-erwin-dm-nosql\\\/\"},\"wordCount\":1069,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/data-modeling-for-couchbase-with-erwin-dm-nosql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Application Design\",\"Best Practices and Tutorials\",\"Couchbase Architecture\",\"Data Modeling\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/data-modeling-for-couchbase-with-erwin-dm-nosql\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/data-modeling-for-couchbase-with-erwin-dm-nosql\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/data-modeling-for-couchbase-with-erwin-dm-nosql\\\/\",\"name\":\"Data Modeling for Couchbase with erwin DM NoSQL\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/data-modeling-for-couchbase-with-erwin-dm-nosql\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/data-modeling-for-couchbase-with-erwin-dm-nosql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2018-05-14T20:05:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/data-modeling-for-couchbase-with-erwin-dm-nosql\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/data-modeling-for-couchbase-with-erwin-dm-nosql\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/data-modeling-for-couchbase-with-erwin-dm-nosql\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/data-modeling-for-couchbase-with-erwin-dm-nosql\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Data Modeling for Couchbase with erwin DM NoSQL\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/06\\\/logo.svg\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/06\\\/logo.svg\",\"width\":\"1024\",\"height\":\"1024\",\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/852cd95d6c8aa5ea6d4128643cc3c2b6\",\"name\":\"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc.\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ce5e2ac49271390c080a82e055d92096b80f63a8f2ca4db5a52af1ace0b06f5?s=96&d=mm&r=g459272ec41e39279e1f7784a97a6b106\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ce5e2ac49271390c080a82e055d92096b80f63a8f2ca4db5a52af1ace0b06f5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3ce5e2ac49271390c080a82e055d92096b80f63a8f2ca4db5a52af1ace0b06f5?s=96&d=mm&r=g\",\"caption\":\"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc.\"},\"description\":\"Chaitra Ramarao is a Senior Product Manager at Couchbase, NoSQL database company, leading databases tooling, cross datacenter replication and partner integrations. Her prior gigs include data analytics product management for Kaiser Permanente and software development for Hewlett Packard. She has a Bachelors degree in ECE and a Masters from Carnegie Mellon in Engineering &amp; Technology Innovation Management.\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/author\\\/chaitra\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Data Modeling for Couchbase with erwin DM NoSQL","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/es\/data-modeling-for-couchbase-with-erwin-dm-nosql\/","og_locale":"es_MX","og_type":"article","og_title":"Data Modeling for Couchbase with erwin DM NoSQL","og_description":"Given the architecture and design of NoSQL systems, especially the document family databases like Couchbase that do not enforce schema on write, data modeling for NoSQL can often be challenging when migrating from relational systems to NoSQL or when building applications ground up using NoSQL. Infact, data modeling is often a critical success factor to [&hellip;]","og_url":"https:\/\/www.couchbase.com\/blog\/es\/data-modeling-for-couchbase-with-erwin-dm-nosql\/","og_site_name":"The Couchbase Blog","article_published_time":"2018-05-14T20:05:45+00:00","og_image":[{"width":1800,"height":630,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-nosql-dbaas.png","type":"image\/png"}],"author":"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc.","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc.","Est. reading time":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/es\/data-modeling-for-couchbase-with-erwin-dm-nosql\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/es\/data-modeling-for-couchbase-with-erwin-dm-nosql\/"},"author":{"name":"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc.","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/852cd95d6c8aa5ea6d4128643cc3c2b6"},"headline":"Data Modeling for Couchbase with erwin DM NoSQL","datePublished":"2018-05-14T20:05:45+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/es\/data-modeling-for-couchbase-with-erwin-dm-nosql\/"},"wordCount":1069,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/es\/data-modeling-for-couchbase-with-erwin-dm-nosql\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-nosql-dbaas.png","articleSection":["Application Design","Best Practices and Tutorials","Couchbase Architecture","Data Modeling"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/es\/data-modeling-for-couchbase-with-erwin-dm-nosql\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/es\/data-modeling-for-couchbase-with-erwin-dm-nosql\/","url":"https:\/\/www.couchbase.com\/blog\/es\/data-modeling-for-couchbase-with-erwin-dm-nosql\/","name":"Data Modeling for Couchbase with erwin DM NoSQL","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/es\/data-modeling-for-couchbase-with-erwin-dm-nosql\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/es\/data-modeling-for-couchbase-with-erwin-dm-nosql\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-nosql-dbaas.png","datePublished":"2018-05-14T20:05:45+00:00","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/es\/data-modeling-for-couchbase-with-erwin-dm-nosql\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/es\/data-modeling-for-couchbase-with-erwin-dm-nosql\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/es\/data-modeling-for-couchbase-with-erwin-dm-nosql\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/es\/data-modeling-for-couchbase-with-erwin-dm-nosql\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Data Modeling for Couchbase with erwin DM NoSQL"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/06\/logo.svg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/06\/logo.svg","width":"1024","height":"1024","caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/852cd95d6c8aa5ea6d4128643cc3c2b6","name":"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc.","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/3ce5e2ac49271390c080a82e055d92096b80f63a8f2ca4db5a52af1ace0b06f5?s=96&d=mm&r=g459272ec41e39279e1f7784a97a6b106","url":"https:\/\/secure.gravatar.com\/avatar\/3ce5e2ac49271390c080a82e055d92096b80f63a8f2ca4db5a52af1ace0b06f5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3ce5e2ac49271390c080a82e055d92096b80f63a8f2ca4db5a52af1ace0b06f5?s=96&d=mm&r=g","caption":"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc."},"description":"Chaitra Ramarao is a Senior Product Manager at Couchbase, NoSQL database company, leading databases tooling, cross datacenter replication and partner integrations. Her prior gigs include data analytics product management for Kaiser Permanente and software development for Hewlett Packard. She has a Bachelors degree in ECE and a Masters from Carnegie Mellon in Engineering &amp; Technology Innovation Management.","url":"https:\/\/www.couchbase.com\/blog\/es\/author\/chaitra\/"}]}},"acf":[],"authors":[{"term_id":319,"user_id":6588,"is_guest":0,"slug":"chaitra","display_name":"Chaitra Ramarao, Sr. Product Manager, Couchbase Inc.","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/?s=96&d=mm&r=g","author_category":"","first_name":"Chaitra","last_name":"Ramarao, Sr. Product Manager, Couchbase Inc.","user_url":"","job_title":"","description":"Chaitra Ramarao is a Senior Product Manager at Couchbase, NoSQL database company, leading databases tooling, cross datacenter replication and partner integrations. Her prior gigs include data analytics product management for Kaiser Permanente and software development for Hewlett Packard. She has a Bachelors degree in ECE and a Masters from Carnegie Mellon in Engineering &amp; Technology Innovation Management."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/1353","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/6588"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=1353"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/1353\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/18"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=1353"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=1353"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=1353"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=1353"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}