Bibliografia NoSQL comentada
Tags: braziliandevs, ptbr, db, nosql
Published: 2021-06-21 13:11:46

---
title: Bibliografia NoSQL comentada
published: true
description: Bibliografia NoSQL comentada 
tags: braziliandevs, ptbr, db, nosql
cover_image: https://www.blazeclan.com/wp-content/uploads/2013/09/A-detailed-Outlook-to-No-SQL-Know-Hows.png
---
_Texto escrito em 2013_

<a href="https://devkico.itexto.com.br/wp-content/uploads/2012/11/nosql_logos.png"><img class="size-full wp-image-1200" title="nosql_logos" src="https://devkico.itexto.com.br/wp-content/uploads/2012/11/nosql_logos.png" alt="" width="202" height="296"></a>

Recentemente tenho escrito bastante sobre bases de dados NoSQL. Neste processo gerei uma bibliografia cujo conteúdo mais interessante listo abaixo:

<a href="http://www.aosabook.org/en/nosql.html">"The Architecture of Open Source Applications: The NoSQL Ecosystem" </a>- Adam Marcus - Artigo fenomenal do livro "The Architecture of Open Source Applications" em que são expostos os princípios arquiteturais básicos por trás de todas as bases de dados NoSQL. A discussão sobre escalabilidade contida no artigo é fundamental pra que fique claro como este tipo de banco de dados ajuda a resolver o problema.

"<a href="http://static.googleusercontent.com/external_content/untrusted_dlcp/research.google.com/pt-BR//archive/bigtable-osdi06.pdf">BigTable: a Distributed Storage System for Structured Data</a>" - Equipe do Google - Neste artigo é exposto o BigTable, o sistema de armazenamento desenvolvido pela Google que serviu de inspiração para práticamente toda esta nova geração de bases de dados NoSQL. É uma leitura fascinante, tanto pela descrição do modelo de dados quanto pelas soluções aplicadas aos problemas de escalabilidade.

"<a href="http://www.read.seas.harvard.edu/~kohler/class/cs239-w08/decandia07dynamo.pdf">Dynamo: Amazon's Higly Available Key-Value Store</a>" - Equipe da Amazon - Assim como o artigo "BigTable", é outro clássico da área. Aqui é descrito o banco de dados chave/valor Dynamo desenvolvido pela Amazon. O que acho mais interessante neste texto é a descrição do modo como foi feito o particionamento das instâncias através das chaves identificadores. Excelente leitura.

"<a href="http://pauladamsmith.com/articles/redis-under-the-hood.html">Redis: Under the Hood</a>" - Paul Smith - Já quis saber como é <strong>implementado</strong> um banco de dados? Este post expõe uma descrição do código fonte por trás do Redis e, com isto, a gente consegue entender de forma bem clara como alguns dos aspectos do ACID (atomicidade pra ser mais exato) são obtidas como efeito colateral da implementação do código. Leitura fascinante.

"<a href="http://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf">A Relational Model of Data for Large Shared Data Banks</a>" - E. F. Codd - A origem oficial do modelo relacional está neste artigo. Leitura obrigatória na minha opinião para qualquer um que no futuro queira criticá-lo. :)

"<a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.86.4262&amp;rep=rep1&amp;type=pdf">Limitations of Record-Based Information Models</a>" - William Kent - Uma crítica muito bem feita aos sistemas baseados em registros (nossas tabelas). Neste <strong>excelente</strong> artigo de 1979 podemos observar duas coisas: a mais óbvia são as limitações que a modelagem baseada em tabela nos trás. E a outra é que o tal "movimento NoSQL" não tem <strong>nada de recente</strong>. Leitura <strong>obrigatória</strong> pra qualquer um que queira entender as limitações das estruturas de dados baseadas em registro e, em grande parte, do próprio modelo relacional.

"<a href="http://dbpedias.com/wiki/NoSQL:Consistency_Models_in_Non-Relational_Databases">Consistence Models in non-relational databases</a>" - Guy Harrisson - Estamos tão acostumados com o modo como a consistência é obtida no modelo relacional (através de transações) que muitas vezes nos esquecemos de pensar no assunto. Este artigo do Guy Harrisson mostra alguns dos modelos adotados por bases não relacionais. É uma boa introdução aos conceitos de consistência forte e fraca. &nbsp;Isto me leva para uma seção só sobre isto logo abaixo. :)

"<a href="http://en.wikipedia.org/wiki/CODASYL">Descrição do CODASYL na Wikipédia</a>" - Wikipédia - Sempre em minha pesquisa topava com o tal do "CODASYL" e confesso que boiava. Esta foi a "Conference of Data Systems Languages" que deu origem ao COBOL e também ao modelo baseado em rede. É interessante saber mais a respeito por razões históricas mesmo com a diminuição do interesse sobre o assunto.
<h2>O teorema CAP</h2>
Infelizmente não vejo muita coisa sendo publicada aqui no Brasil (vou ajudar a mudar isto em breve :) ) a respeito deste teorema que é a base por trás da escalabilidade dos bancos de dados não relacionais, mas vamos lá: o teorema CAP nos diz que, no que tange à consistência dos dados, todo sistema distribuído só é capaz de garantir duas das três propriedades abaixo ao custo de uma terceira:
<ul>
 	<li>Consistência: todos os nós possuem acesso à mesma informação ao mesmo tempo.</li>
 	<li>Availability (disponibilidade): garantia de que toda requisição ao sistema sempre obterá uma resposta.</li>
 	<li>Partition tolerance: o sistema continua a operar mesmo que parte dos seus nós não esteja disponível.</li>
</ul>
É um assunto fascinante, e em dois parágrafos não vou conseguir descrevê-lo por completo a vocês. Sendo assim, seguem algumas sugestões de leitura:

"<a href="http://lpd.epfl.ch/sgilbert/pubs/BrewersConjecture-SigAct.pdf">Brewer Conjecture and the Feasibility of Consistent, Available, Partition-Tolerant Web Services</a>" - Seth Gilbert e Nancy Lynch - O teorema é descrito de uma forma bem fácil de entender e também é provado através da descrição de um modelo de rede assíncrono.

"<a href="http://www.julianbrowne.com/article/viewer/brewers-cap-theorem">Brewer's CAP Theorem: The Cool Aid Amazon and eBay have been drinking"</a> - Julian Browne - Uma descrição bem "cool" do teorema. De leitura muito fácil.
<h2>Mais material legal</h2>
"<a href="http://openmymind.net/mongodb.pdf">The Little MongoDB book</a>" - Karl Seguin - Um tutorial de MongoDB pequeno, fácil de entender e que é uma porta de entrada excelente pra quem quiser brincar com ele.

"<a href="http://openmymind.net/2012/1/23/The-Little-Redis-Book/">The Little Redis Book</a>" - Karl Seguin - Na mesma linha que o "The Little MongoDB book". Mais uma introdução bacana pra vocês a este banco de dados chave-valor.

"<a href="http://www.devmedia.com.br/introducao-curso-de-nosql-redis-com-java-1/26444">Curso NoSQL: Redis com Java - Introdução - Primeira aula</a>" - Henrique Lobo - Nesta primeira aula aberta do meu curso sobre Redis para a DevMedia eu exponho o modelo chave-valor, que é usado por práticamente todo banco de dados não relacional.

"<a href="http://dist.neo4j.org/neo-technology-introduction.pdf">The Neo Database - Technology Introduction</a>" - Equipe do Neo4J - Apesar de ser básicamente um panfleto de venda do Neo4J, trata-se de uma introdução muito interessante ao modelo baseado em grafos.

E sabe, em muito breve vão ter mais artigos meus justamente sobre este assunto por aqui e em algumas revistas e publicações. :)

Espero que tenham gostado desta lista e que esta lhes seja útil.
Até a próxima!