{"id":1806,"date":"2014-12-16T18:03:44","date_gmt":"2014-12-16T18:03:44","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=1806"},"modified":"2018-12-26T01:33:23","modified_gmt":"2018-12-26T09:33:23","slug":"three-things-know-about-document-database-modelling-part-1","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/three-things-know-about-document-database-modelling-part-1\/","title":{"rendered":"Tr\u00eas coisas que voc\u00ea deve saber sobre modelagem de banco de dados de documentos: parte 1"},"content":{"rendered":"<p><span style=\"font-family: arial,helvetica,sans-serif;\">A maioria de n\u00f3s poderia fazer uma primeira tentativa de criar um modelo de banco de dados relacional enquanto dormia.<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">No entanto, depois de optar por trabalhar com um banco de dados de documentos, voc\u00ea precisar\u00e1 pensar um pouco diferente.<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">N\u00e3o \u00e9 mais dif\u00edcil, \u00e9 s\u00f3 que voc\u00ea est\u00e1 otimizando para coisas diferentes.<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Ent\u00e3o, quais s\u00e3o os princ\u00edpios b\u00e1sicos para fazer isso corretamente?<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Bem, h\u00e1 tr\u00eas princ\u00edpios que podem ajudar a orientar seu pensamento:<\/span><\/p>\n<ul class=\"rteindent1\">\n<li><span style=\"font-family: arial,helvetica,sans-serif;\">Responda \u00e0s perguntas que voc\u00ea sabe que far\u00e1.<\/span><\/li>\n<li><span style=\"font-family: arial,helvetica,sans-serif;\">Incorporar dados por conveni\u00eancia, consultar por integridade.<\/span><\/li>\n<li><span style=\"font-family: arial,helvetica,sans-serif;\">Nomeie suas chaves de forma previs\u00edvel e sem\u00e2ntica.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Hoje, vamos examinar a primeira delas em detalhes.<\/span><\/p>\n<h2><span style=\"font-family: arial,helvetica,sans-serif;\">Perguntas, n\u00e3o respostas<\/span><\/h2>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Quando dividimos nossos dados em tabelas, colunas e linhas do modelo relacional, estamos otimizando a capacidade de consulta. Estamos criando uma fonte de respostas quase ilimitadas e adiando nossas decis\u00f5es sobre quais perguntas fazer.<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Vejamos um exemplo simples: um sistema de gerenciamento de estoque que nos permite rastrear brindes com a marca Couchbase.\u00a0<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Nesse sistema, temos camisetas, pen drives, canetas e esse tipo de coisa. De tempos em tempos, recebemos pedidos para envi\u00e1-los a grupos de encontro, confer\u00eancias e indiv\u00edduos.<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Muito provavelmente, isso nos daria as seguintes tabelas relacionais:<\/span><\/p>\n<ul class=\"rteindent1\">\n<li><span style=\"font-family: arial,helvetica,sans-serif;\">produtos<\/span><\/li>\n<li><span style=\"font-family: arial,helvetica,sans-serif;\">clientes<\/span><\/li>\n<li><span style=\"font-family: arial,helvetica,sans-serif;\">pedidos<\/span><\/li>\n<li><span style=\"font-family: arial,helvetica,sans-serif;\">detalhes do pedido<\/span><\/li>\n<\/ul>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">\u00c0 primeira vista, <em>Detalhes do pedido<\/em>\u00a0pode n\u00e3o parecer \u00f3bvio. No entanto, isso nos permite armazenar refer\u00eancias a todos os itens em cada pedido sem quebrar a primeira forma normal. Caso contr\u00e1rio, ter\u00edamos que serializar os itens de linha de cada pedido em uma cadeia de caracteres e armazen\u00e1-la em uma coluna TEXT.<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">A menos que cometamos um erro, cada produto, cliente e pedido aparecer\u00e1 apenas uma vez em nosso banco de dados. Isso nos d\u00e1 a garantia de que as atualiza\u00e7\u00f5es dos registros s\u00e3o universais e torna extremamente f\u00e1cil consultar os dados da maneira que quisermos.\u00a0<\/span><\/p>\n<h2><span style=\"font-family: arial,helvetica,sans-serif;\">H\u00e1 sempre compensa\u00e7\u00f5es, sempre h\u00e1 compensa\u00e7\u00f5es<\/span><\/h2>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Dessa forma, podemos armazenar os dados do nosso sistema de gerenciamento de brindes em sua forma mais pura e consult\u00e1-los posteriormente da maneira que nos for mais conveniente.<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Ent\u00e3o, qual \u00e9 o problema?<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Bem, h\u00e1 algumas vantagens e desvantagens:<\/span><\/p>\n<ul class=\"rteindent1\">\n<li><span style=\"font-family: arial,helvetica,sans-serif;\">As consultas SQL s\u00e3o caras: para cada jun\u00e7\u00e3o, h\u00e1 uma busca em disco, h\u00e1 uma sobrecarga de CPU, h\u00e1 um usu\u00e1rio aguardando a renderiza\u00e7\u00e3o da p\u00e1gina.<\/span><\/li>\n<li><span style=\"font-family: arial,helvetica,sans-serif;\">Os bancos de dados relacionais s\u00e3o dif\u00edceis de escalonar em um cluster.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Vamos nos concentrar no primeiro trade-off por enquanto: se voc\u00ea estiver sendo indelicado, poder\u00e1 dizer que a modelagem de dados relacionais \u00e9 um exerc\u00edcio de roubo de ciclos de CPU do seu futuro eu.\u00a0<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Conhecemos a maioria dos nossos padr\u00f5es de consulta desde o in\u00edcio e, ainda assim, muitas vezes gastamos tempo retirando cuidadosamente esse contexto dos nossos dados. Dividimos os dados uma vez e, depois, passamos o resto da vida \u00fatil de nossos aplicativos solicitando ao servidor de banco de dados que junte tudo novamente.<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">\u00c9 claro que isso tem seu lugar, mas \u00e9 quase o oposto do caminho mais eficiente com um banco de dados de documentos.<\/span><\/p>\n<h2><span style=\"font-family: arial,helvetica,sans-serif;\">N\u00e3o fa\u00e7a com que as pessoas esperem por respostas<\/span><\/h2>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">A primeira coisa que fazemos ao modelar um banco de dados de documentos \u00e9 perguntar: \"Que perguntas quero fazer aos meus dados?\"<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Ent\u00e3o, quando o estado do nosso sistema muda, calculamos as respostas a essas perguntas e as armazenamos de forma pr\u00e9-planejada no banco de dados.<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Em vez de refazer as respostas cada vez que fazemos uma consulta, extra\u00edmos a resposta totalmente formada do banco de dados em uma \u00fanica pesquisa.<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">O que isso significa na pr\u00e1tica?<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Vamos voltar ao nosso exemplo de gerenciamento de brindes. Uma de nossas perguntas seria:<\/span><\/p>\n<blockquote><p><span style=\"font-family: arial,helvetica,sans-serif;\">O que preciso fazer para atender a um pedido espec\u00edfico?<\/span><\/p><\/blockquote>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Com um banco de dados relacional, escrever\u00edamos uma consulta SQL que encontraria o pedido, usaria uma uni\u00e3o para encontrar os itens no pedido, depois outra uni\u00e3o para encontrar os detalhes de cada item e outra uni\u00e3o para encontrar os detalhes do cliente.<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Com o Couchbase, seria mais ou menos assim:<\/span><\/p>\n<ol class=\"rteindent1\">\n<li><span style=\"font-family: arial,helvetica,sans-serif;\">O usu\u00e1rio seleciona seus itens e faz seu pedido.<\/span><\/li>\n<li><span style=\"font-family: arial,helvetica,sans-serif;\">Nosso sistema grava o pedido no banco de dados como um \u00fanico documento.<\/span><\/li>\n<li><span style=\"font-family: arial,helvetica,sans-serif;\">Quando precisamos obter detalhes do pedido, \u00e9 s\u00f3 ler para pegar o lote.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">O documento de pedido resultante pode ter a seguinte apar\u00eancia:<\/span><\/p>\n<div class=\"geshifilter\">\n<div class=\"text geshifilter-text\" style=\"font-family: monospace;\">{<br \/>\n\"orderID\": 200,<br \/>\n\"cliente\":<br \/>\n{<br \/>\n\"nome\": \"Matthew Revell\",<br \/>\n\"endere\u00e7o\": \"11-21 Paul Street\",<br \/>\n\"city\": \"London\"<br \/>\n},<br \/>\n\"produtos\":<br \/>\n[<br \/>\n{<br \/>\n\"itemCode\": \"RedTShirt\",<br \/>\n\"itemName\": \"Camiseta vermelha do Couchbase\",<br \/>\n\"quantityOrdered\": 3<br \/>\n},<br \/>\n{<br \/>\n\"itemCode\": \"USB\",<br \/>\n\"itemName\": \"Pendrive USB preto de 8 GB com o logotipo vermelho do Couchbase\",<br \/>\n\"quantityOrder\": 51<br \/>\n}<br \/>\n],<br \/>\n\"status\": \"paid\"<br \/>\n}<\/div>\n<\/div>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\"><span style=\"font-size: 1em; line-height: 1.4375em;\">Este exemplo \u00e9 bastante desnormalizado. Nosso sistema de gerenciamento de brindes j\u00e1 teria detalhes de cada cliente e produto em documentos separados, mas estamos repetindo o que sabemos sobre eles ao incorporar seus detalhes aqui.<\/span><\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Analisaremos as vantagens e desvantagens envolvidas na incorpora\u00e7\u00e3o de dados em compara\u00e7\u00e3o com a refer\u00eancia a dados em uma publica\u00e7\u00e3o futura.<span style=\"font-size: 1em; line-height: 1.4375em;\">\u00a0<\/span><\/span><\/p>\n<h2><span style=\"font-family: arial,helvetica,sans-serif;\">A produ\u00e7\u00e3o \u00e9 mais complexa<\/span><\/h2>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Em um sistema de produ\u00e7\u00e3o, provavelmente gerar\u00edamos v\u00e1rias dessas respostas prontas. Sem pensar muito sobre isso, provavelmente podemos pensar em algumas delas para o nosso sistema de gerenciamento de brindes:<\/span><\/p>\n<ul class=\"rteindent1\">\n<li><span style=\"font-family: arial,helvetica,sans-serif;\">Hist\u00f3rico de pedidos do cliente: os clientes querem ver tudo o que pediram, portanto, registrar\u00edamos esse pedido em rela\u00e7\u00e3o a essa pessoa.<\/span><\/li>\n<li><span style=\"font-family: arial,helvetica,sans-serif;\">Status do pedido em tempo real: da mesma forma, nossos clientes desejar\u00e3o ver o status de seus pedidos, portanto, podemos gerar essas informa\u00e7\u00f5es agora e atualiz\u00e1-las sempre que houver alguma altera\u00e7\u00e3o.<\/span><\/li>\n<li><span style=\"font-family: arial,helvetica,sans-serif;\">Instru\u00e7\u00f5es de envio: precisaremos informar \u00e0s pessoas em nosso dep\u00f3sito o que elas precisam enviar para onde.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">O importante \u00e9 que n\u00e3o precisamos gerar tudo isso enquanto um ser humano est\u00e1 esperando uma resposta.\u00a0<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Embora possamos querer atualizar o status do pedido em tempo real do cliente imediatamente, para que ele possa verificar se o pedido foi registrado, n\u00e3o h\u00e1 problema em processar a instru\u00e7\u00e3o de envio de forma ass\u00edncrona.<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Dessa forma, quando um humano visualiza algo em nosso sistema, os dados j\u00e1 est\u00e3o l\u00e1 esperando.\u00a0<\/span><\/p>\n<h2><span style=\"font-family: arial,helvetica,sans-serif;\">Em resumo: calcule previamente suas respostas<\/span><\/h2>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">A primeira etapa para a modelagem eficiente do banco de dados de documentos \u00e9 pensar em termos de pr\u00e9-computa\u00e7\u00e3o de suas respostas.<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Sabemos de antem\u00e3o quais perguntas queremos fazer e, portanto, podemos atender a essas perguntas na forma como escrevemos nossos dados.<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Embora haja muito apelo intelectual na ideia de uma representa\u00e7\u00e3o pura, normalizada e matematicamente s\u00f3lida de nossos dados, na pr\u00e1tica isso pode dificultar o atendimento a v\u00e1rios usu\u00e1rios simult\u00e2neos e o dimensionamento de nossa opera\u00e7\u00e3o \u00e0 medida que a demanda muda.<\/span><\/p>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Ao computar nossas v\u00e1rias respostas no momento da grava\u00e7\u00e3o, n\u00f3s:<\/span><\/p>\n<ul class=\"rteindent1\">\n<li><span style=\"font-family: arial,helvetica,sans-serif;\">remover o atraso de nossa experi\u00eancia de usu\u00e1rio<\/span><\/li>\n<li><span style=\"font-family: arial,helvetica,sans-serif;\">pode distribuir mais facilmente os dados em um cluster<\/span><\/li>\n<li><span style=\"font-family: arial,helvetica,sans-serif;\">obt\u00e9m o b\u00f4nus adicional de menos incompatibilidade entre o estado do objeto e o que est\u00e1 no banco de dados.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-family: arial,helvetica,sans-serif;\">Na pr\u00f3xima vez, examinarei quando incorporar dados e quando fazer refer\u00eancia a dados.<\/span><\/p>","protected":false},"excerpt":{"rendered":"<p>Most of us could churn out a first stab at a relational database model while sleeping. Once you&#8217;ve chosen to work with a document database, though, you&#8217;ll need to think a little differently. It&#8217;s no more difficult, it&#8217;s just that [&hellip;]<\/p>","protected":false},"author":18,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[],"ppma_author":[8982],"class_list":["post-1806","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Three things to know about document database modelling<\/title>\n<meta name=\"description\" content=\"The first step to efficient document database modelling is to think in terms of pre-computing your answers and know the three things to know about the same.\" \/>\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\/three-things-know-about-document-database-modelling-part-1\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Three things to know about document database modelling: part 1\" \/>\n<meta property=\"og:description\" content=\"The first step to efficient document database modelling is to think in terms of pre-computing your answers and know the three things to know about the same.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/three-things-know-about-document-database-modelling-part-1\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-16T18:03:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-12-26T09:33:23+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/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=\"Matthew Revell, Lead Developer Advocate, EMEA, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matthew Revell, Lead Developer Advocate, EMEA, Couchbase\" \/>\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\/three-things-know-about-document-database-modelling-part-1\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/\"},\"author\":{\"name\":\"Matthew Revell, Lead Developer Advocate, EMEA, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/6c3060a94353df62a71d4672b3454555\"},\"headline\":\"Three things to know about document database modelling: part 1\",\"datePublished\":\"2014-12-16T18:03:44+00:00\",\"dateModified\":\"2018-12-26T09:33:23+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/\"},\"wordCount\":1103,\"commentCount\":5,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Uncategorized\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/\",\"name\":\"Three things to know about document database modelling\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2014-12-16T18:03:44+00:00\",\"dateModified\":\"2018-12-26T09:33:23+00:00\",\"description\":\"The first step to efficient document database modelling is to think in terms of pre-computing your answers and know the three things to know about the same.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Three things to know about document database modelling: part 1\"}]},{\"@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\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/6c3060a94353df62a71d4672b3454555\",\"name\":\"Matthew Revell, Lead Developer Advocate, EMEA, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/b1bc555cd9166b46d6063003c3b92317\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3b38ea45b78371f0008a765ea828bfed91aa97c25981ebf214226402a510b39b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3b38ea45b78371f0008a765ea828bfed91aa97c25981ebf214226402a510b39b?s=96&d=mm&r=g\",\"caption\":\"Matthew Revell, Lead Developer Advocate, EMEA, Couchbase\"},\"description\":\"Matthew Revell is a Lead Dev Advocate, EMEA Couchbase. He developed a global strategy for putting Couchbase front in the minds of the product's developers.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/matthew-revell\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Three things to know about document database modelling","description":"A primeira etapa para uma modelagem eficiente do banco de dados de documentos \u00e9 pensar em termos de pr\u00e9-computa\u00e7\u00e3o de suas respostas e conhecer os tr\u00eas aspectos a saber sobre isso.","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\/three-things-know-about-document-database-modelling-part-1\/","og_locale":"pt_BR","og_type":"article","og_title":"Three things to know about document database modelling: part 1","og_description":"The first step to efficient document database modelling is to think in terms of pre-computing your answers and know the three things to know about the same.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/three-things-know-about-document-database-modelling-part-1\/","og_site_name":"The Couchbase Blog","article_published_time":"2014-12-16T18:03:44+00:00","article_modified_time":"2018-12-26T09:33:23+00:00","og_image":[{"width":1800,"height":630,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2022\/11\/couchbase-nosql-dbaas.png","type":"image\/png"}],"author":"Matthew Revell, Lead Developer Advocate, EMEA, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Matthew Revell, Lead Developer Advocate, EMEA, Couchbase","Est. reading time":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/"},"author":{"name":"Matthew Revell, Lead Developer Advocate, EMEA, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/6c3060a94353df62a71d4672b3454555"},"headline":"Three things to know about document database modelling: part 1","datePublished":"2014-12-16T18:03:44+00:00","dateModified":"2018-12-26T09:33:23+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/"},"wordCount":1103,"commentCount":5,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","articleSection":["Uncategorized"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/","url":"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/","name":"Three things to know about document database modelling","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2014-12-16T18:03:44+00:00","dateModified":"2018-12-26T09:33:23+00:00","description":"A primeira etapa para uma modelagem eficiente do banco de dados de documentos \u00e9 pensar em termos de pr\u00e9-computa\u00e7\u00e3o de suas respostas e conhecer os tr\u00eas aspectos a saber sobre isso.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/three-things-know-about-document-database-modelling-part-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Three things to know about document database modelling: part 1"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do 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":"Blog do 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\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/6c3060a94353df62a71d4672b3454555","name":"Matthew Revell, l\u00edder de suporte ao desenvolvedor, EMEA, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/b1bc555cd9166b46d6063003c3b92317","url":"https:\/\/secure.gravatar.com\/avatar\/3b38ea45b78371f0008a765ea828bfed91aa97c25981ebf214226402a510b39b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3b38ea45b78371f0008a765ea828bfed91aa97c25981ebf214226402a510b39b?s=96&d=mm&r=g","caption":"Matthew Revell, Lead Developer Advocate, EMEA, Couchbase"},"description":"Matthew Revell \u00e9 um dos principais defensores do desenvolvimento do Couchbase na regi\u00e3o EMEA. Ele desenvolveu uma estrat\u00e9gia global para colocar o Couchbase na mente dos desenvolvedores do produto.","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/matthew-revell\/"}]}},"authors":[{"term_id":8982,"user_id":18,"is_guest":0,"slug":"matthew-revell","display_name":"Matthew Revell, Lead Developer Advocate, EMEA, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/3b38ea45b78371f0008a765ea828bfed91aa97c25981ebf214226402a510b39b?s=96&d=mm&r=g","author_category":"","last_name":"Revell","first_name":"Matthew","job_title":"","user_url":"","description":"Matthew Revell \u00e9 um dos principais defensores do desenvolvimento do Couchbase na regi\u00e3o EMEA. Ele desenvolveu uma estrat\u00e9gia global para colocar o Couchbase na mente dos desenvolvedores do produto."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1806","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\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=1806"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/1806\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=1806"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=1806"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=1806"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=1806"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}