{"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\/pt\/data-modeling-for-couchbase-with-erwin-dm-nosql\/","title":{"rendered":"Modelagem de dados para Couchbase com erwin DM NoSQL"},"content":{"rendered":"<p class=\"wp-block-paragraph\"><span>Dada a arquitetura e o design dos sistemas NoSQL, especialmente os bancos de dados da fam\u00edlia de documentos como o Couchbase, que n\u00e3o imp\u00f5em esquema na grava\u00e7\u00e3o, a modelagem de dados para NoSQL pode frequentemente ser desafiadora ao migrar de sistemas relacionais para NoSQL ou ao construir aplicativos do zero usando NoSQL. De fato, a modelagem de dados costuma ser um fator cr\u00edtico de sucesso para implementa\u00e7\u00f5es do Couchbase, e otimizar progressivamente os modelos de dados pode ser um enorme impulsionador de desempenho de aplicativos, dada a natureza em r\u00e1pida evolu\u00e7\u00e3o dos aplicativos de big data.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Tradicionalmente, a modelagem de dados para sistemas relacionais era a ci\u00eancia de identificar os objetos de dados, seus relacionamentos entre si e sua representa\u00e7\u00e3o precisa, o que fundamentava um bom design de banco de dados. A modelagem para NoSQL, por outro lado, explora padr\u00f5es de acesso espec\u00edficos da aplica\u00e7\u00e3o, por exemplo: \u201cquais s\u00e3o os tipos de perguntas que os usu\u00e1rios gostariam de responder com esses dados?\u201d. Isso, por sua vez, dita o tipo de consultas que precisam ser suportadas e foca em como estruturar melhor os dados para a otimiza\u00e7\u00e3o de desempenho. Essas considera\u00e7\u00f5es nos fazem mudar nossa abordagem de modelagem de dados das restri\u00e7\u00f5es tradicionais de RDBMS (esquema na grava\u00e7\u00e3o) para a modelagem de dados voltada para a aplica\u00e7\u00e3o espec\u00edfica (esquema na leitura). <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Outro diferencial entre sistemas RDBMS e NoSQL que impacta os paradigmas de modelagem \u00e9 o conceito de normaliza\u00e7\u00e3o e desnormaliza\u00e7\u00e3o de dados. Enquanto os sistemas RDBMS enfatizavam a normaliza\u00e7\u00e3o de dados para entender relacionamentos estritos e atender a limita\u00e7\u00f5es r\u00edgidas de armazenamento antigamente, os sistemas NoSQL flex\u00edveis tendem \u00e0 desnormaliza\u00e7\u00e3o de dados, uma vez que os dados s\u00e3o distribu\u00eddos em clusters e a redund\u00e2ncia pode facilitar o dimensionamento de leituras de dados. Muitas vezes, o modelo de dados ideal \u00e9 uma combina\u00e7\u00e3o de ambas as abordagens, dependendo do caso de uso.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Portanto, a modelagem de dados precisa continua sendo uma disciplina fundamental para o sucesso com bancos de dados NoSQL.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Agora, vamos mergulhar na modelagem usando o erwin DM NoSQL. O erwin DM NoSQL oferece tr\u00eas principais funcionalidades:<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Engenharia direta<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>O processo de convers\u00e3o de seus modelos relacionais em modelos JSON compat\u00edveis com o Couchbase.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Transforma\u00e7\u00e3o <\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Capacidade de escolher a forma de transforma\u00e7\u00e3o desejada (normalizada, desnormalizada, personalizada) para seus modelos. <\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Engenharia reversa<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Capacidade de importar o esquema de dados de produ\u00e7\u00e3o do Couchbase para o ambiente erwin.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Este \u00e9 o guia passo a passo para modelar dados para a Plataforma de Dados Couchbase usando o erwin DM NoSQL:<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Configura\u00e7\u00e3o:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Passo 1:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Solicita\u00e7\u00e3o de conta <\/span><a href=\"https:\/\/erwin.com\/products\/data-modeler-nosql\/\"><span>aqui<\/span><\/a><span> e fa\u00e7a login no erwin DM NoSQL usando suas credenciais.<\/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>Passo 2:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Importe um modelo de Entidade-Relacionamento gerado no erwin DM ou em qualquer outra ferramenta de modelagem relacional no formato \u201cXML\u201d usando a op\u00e7\u00e3o de importa\u00e7\u00e3o para o 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>Passo 3:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Visualize seus diagramas ER no ambiente erwin.<\/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>Transforma\u00e7\u00e3o <\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Passo 1: <\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Escolha transformar os modelos usando transforma\u00e7\u00e3o normalizada, desnormalizada ou personalizada.<\/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>Passo 2: <\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Transforma\u00e7\u00e3o normalizada:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Normaliza\u00e7\u00e3o \u00e9 tipicamente o processo de organiza\u00e7\u00e3o de dados no banco de dados, criando tabelas separadas e estabelecendo relacionamentos para remover a duplica\u00e7\u00e3o. Os objetos ou entidades neste processo geralmente s\u00e3o referenciados. Ao criar modelos JSON, as tabelas referenciadas normalmente seriam documentos separados.<\/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. Transforma\u00e7\u00e3o desnormalizada:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Nesse processo, os objetos de dados geralmente s\u00e3o embutidos. Como objetos semelhantes s\u00e3o embutidos em muitos documentos, essa organiza\u00e7\u00e3o apresenta redund\u00e2ncia. A desnormaliza\u00e7\u00e3o \u00e9 frequentemente encontrada para melhorar significativamente o desempenho, j\u00e1 que n\u00e3o precisamos de jun\u00e7\u00f5es para buscar os dados necess\u00e1rios. Isso \u00e9 frequentemente adotado em sistemas NoSQL. Nesta ferramenta, o modelo transformado gerado usando a desnormaliza\u00e7\u00e3o \u00e9 uma combina\u00e7\u00e3o de objetos embutidos e referenciados.<\/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>Na fig. acima, pedido de compra e item do pedido s\u00e3o objetos embutidos, enquanto Editora, Nome da loja e Devolu\u00e7\u00e3o de livro s\u00e3o objetos referenciados.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Transforma\u00e7\u00e3o personalizada:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>O erwin DM NoSQL normalmente analisa a organiza\u00e7\u00e3o dos dados usando o seu diagrama E-R e transforma seus modelos em modelos JSON compat\u00edveis com o Couchbase com base em certas regras. No entanto, como voc\u00ea, sendo um desenvolvedor ou propriet\u00e1rio de aplicativo, \u00e9 quem melhor conhece sua aplica\u00e7\u00e3o, oferecemos a capacidade de personalizar seus modelos. Voc\u00ea tem a op\u00e7\u00e3o de referenciar determinados objetos embutidos e fornecemos algumas diretrizes dentro da ferramenta para ajudar voc\u00ea a fazer a escolha certa.<\/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>Nota:<\/b><span> Voc\u00ea pode clonar qualquer um desses modelos e ajust\u00e1-los adicionando ou removendo atributos, propriedades, etc.,<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Engenharia direta<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Passo 1:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Baixe o modelo criado no seu sistema local.<\/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>Passo 2:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Configure clusters do Couchbase na AWS e acesse o console web usando a porta 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>Passo 3:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Use o secure copy e copie o arquivo baixado da sua m\u00e1quina local para a sua inst\u00e2ncia EC2 do Couchbase.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Sintaxe (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>Passo 4: <\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Fa\u00e7a login na sua inst\u00e2ncia da AWS usando ssh<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Sintaxe (OSX):<\/b><b>ssh -i caminho\/para\/chave.pair ec2-user@ip-remoto<\/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>Passo 5:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Verifique se os arquivos foram copiados listando-os com \u201cls\u201d<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Passo 6: <\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Navegue para o arquivo bulkInsert.sh<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Ex:Cd \/De_movies..\/scripts\/5.x para localizar o bulkInsert.sh<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Passo 7: <\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Tornar o arquivo bulkInsert execut\u00e1vel e definir o caminho<\/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>Passo 8:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Execute o script bulkInsert com a seguinte sintaxe<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>.\/bulkInsert.sh \u00a0  \u00a0<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Ex : .\/bulkInsert.sh localhost 8091 Administrator senha sample<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Voc\u00ea pode ver os dados de exemplo modelados carregados no Couchbase com o nome do bucket especificado por voc\u00ea.<\/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>O script normalmente cria modelos com dados in\u00fateis, podendo ser modificado pelos desenvolvedores de aplicativos para criar modelos para amostras de dados reais e us\u00e1-los para implantar no Couchbase usando os scripts de implanta\u00e7\u00e3o fornecidos. <\/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>Voc\u00ea tamb\u00e9m pode consultar os dados ap\u00f3s carregados no Couchbase usando N1QL (SQL para JSON) e testar a precis\u00e3o e efici\u00eancia de seus modelos usando o Query Workbench e o planejador de consultas.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Engenharia reversa:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><b>Passo 1: <\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Configure a conex\u00e3o com o Couchbase usando o gerenciador de conex\u00f5es conforme mostrado abaixo:<\/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>Passo 2: <\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Fazer engenharia reversa do 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>Passo 3:<\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Importa\u00e7\u00e3o de Esquema de dados de produ\u00e7\u00e3o do Couchbase<\/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>Passo 4: <\/b><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Visualizar os modelos do Couchbase obtidos por engenharia reversa no ambiente erwin \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 a ajustar seus modelos periodicamente para garantir que eles estejam otimizados para fornecer o melhor desempenho.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>A modelagem de dados usando o erwin ajudar\u00e1 voc\u00ea a acelerar o seu tempo de lan\u00e7amento no mercado, fornecer\u00e1 a interface para visualizar seu processo de modelagem e melhorar\u00e1 enormemente a precis\u00e3o dos seus modelos. Modelos de dados melhores garantem melhor desempenho e maior sucesso com o Couchbase.<\/span><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span>Compartilhe seus coment\u00e1rios aqui ou entre em contato conosco em 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 v28.3 (Yoast SEO v28.3) - 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\/pt\/data-modeling-for-couchbase-with-erwin-dm-nosql\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\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\/pt\/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\":\"pt-BR\",\"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\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/data-modeling-for-couchbase-with-erwin-dm-nosql\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@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\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@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\":\"pt-BR\",\"@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\\\/pt\\\/author\\\/chaitra\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Modelagem de dados para Couchbase com 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\/pt\/data-modeling-for-couchbase-with-erwin-dm-nosql\/","og_locale":"pt_BR","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\/pt\/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":"pt-BR","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":"Modelagem de dados para Couchbase com 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":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/es\/data-modeling-for-couchbase-with-erwin-dm-nosql\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@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":"O Blog da Couchbase","description":"Couchbase, o Banco de Dados NoSQL","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":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"O Blog da Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@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, Gerente S\u00eanior de Produtos, Couchbase Inc.","image":{"@type":"ImageObject","inLanguage":"pt-BR","@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 \u00e9 Gerente S\u00eanior de Produtos na Couchbase, empresa de banco de dados NoSQL, liderando ferramentas de banco de dados, replica\u00e7\u00e3o entre datacenters e integra\u00e7\u00f5es de parceiros. Seus trabalhos anteriores incluem gerenciamento de produtos de an\u00e1lise de dados na Kaiser Permanente e desenvolvimento de software na Hewlett Packard. Ela \u00e9 bacharel em ECE e possui mestrado pela Carnegie Mellon em Engenharia e Gest\u00e3o de Inova\u00e7\u00e3o Tecnol\u00f3gica.","url":"https:\/\/www.couchbase.com\/blog\/pt\/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 \u00e9 Gerente S\u00eanior de Produtos na Couchbase, empresa de banco de dados NoSQL, liderando ferramentas de banco de dados, replica\u00e7\u00e3o entre datacenters e integra\u00e7\u00f5es de parceiros. Seus trabalhos anteriores incluem gerenciamento de produtos de an\u00e1lise de dados na Kaiser Permanente e desenvolvimento de software na Hewlett Packard. Ela \u00e9 bacharel em ECE e possui mestrado pela Carnegie Mellon em Engenharia e Gest\u00e3o de Inova\u00e7\u00e3o Tecnol\u00f3gica."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1353","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/6588"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=1353"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1353\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/18"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=1353"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=1353"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=1353"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=1353"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}