NoSQL Como armazenar os dados de uma aplicação moderna
David PanizSobre o livro
Este livro se destina a pessoas de desenvolvimento e arquitetura de software que já tenham experiência com algum tipo de banco de dados relacional ou NoSQL, e querem aprender mais sobre os tipos de bancos de dados e entender os impactos que a escolha deles pode trazer para sua arquitetura e seus clientes.
Pré-requisitos
No decorrer do livro, quando um novo conceito ou funcionalidade é apresentado, normalmente existe a comparação com os bancos relacionais e o SQL. Então, ter um conhecimento prévio sobre conceitos básicos de bancos de dados, como tabelas, joins, forma normal (normalização de dados) e um pouco de SQL, ajudará muito o entendimento.
Apesar de o livro abordar exercícios práticos de programação, ele foca totalmente na camada de persistência, com alguns exemplos de código em JavaScript, bash, e algumas query languages. Por isso, não existe a necessidade de conhecer bem alguma linguagem de programação específica, nem mesmo as utilizadas, mas é importante ter noções de programação para compreender e reproduzir os códigos apresentados.
A maior parte das tecnologias apresentadas pode ser instalada em Windows, Mac ou Linux, e todas elas possuem imagens prontas para rodar em docker containers. Apesar da preferência por ambientes baseados em Unix, é possível reproduzir quase todos os exercícios em qualquer sistema operacional. Se você usa Windows, é recomendado usar o WSL2, e então instalar os bancos direto na distribuição instalada ou rodar usando o Docker. Desde o lançamento oficial do WSL2, o Docker também funciona no Windows 10 Home edition, então esta passa a ser a forma mais fácil e prática de testar novas tecnologias em ambiente de desenvolvimento, mesmo no Windows, assim não há necessidade de ficar instalando novos serviços e poluindo nosso sistema operacional.
Sumário
- 1 Introdução
- 1.1 O problema do relacional
- 1.2 Tipos de bancos de dados não relacionais
- 1.3 O problema na vida real
- 2 Começando com NoSQL
- 2.1 Conhecendo o MongoDB
- 2.2 Instalando o MongoDB
- 2.3 Criando nosso primeiro documento
- 2.4 Inserindo documentos no MongoDB
- 2.5 Buscando documentos no MongoDB
- 2.6 Removendo documentos no MongoDB
- 2.7 Alterando documentos no MongoDB
- 3 Mais sobre bancos orientados a documentos
- 3.1 Criando relacionamentos
- 3.2 Listando álbuns e o problema "n+1 query"
- 3.3 Trabalhando com documentos embutidos
- 3.4 Desnormalizando os dados
- 4 Consistência versus disponibilidade e os bancos chave valor
- 4.1 CAP Theorem
- 4.2 O modelo chave/valor e o Riak
- 4.3 Instalando o Riak
- 4.4 Manipulando objetos
- 4.5 O problema das escritas concorrentes
- 4.6 Outros tipos de dados do Riak
- 5 Mais sobre bancos chave valor e persistência poliglota
- 5.1 Consistência x consistência eventual
- 5.2 MongoDB, Riak ou outro banco?
- 5.3 Armazenando playlists
- 6 Implementando playlists em um banco Colunar
- 6.1 Instalando o Cassandra
- 6.2 Criando tabelas no Cassandra
- 6.3 Manipulando registros no Cassandra
- 6.4 Buscando dados no Casandra
- 6.5 Armazenando as playlists
- 6.6 Migrando o modelo de versionamento para um banco colunar
- 7 Mais sobre bancos Colunares
- 7.1 Como o Cassandra armazena os dados internamente
- 7.2 Adicionando tags às listas
- 7.3 Usando tipos especiais do Cassandra
- 7.4 Relacionando artistas
- 8 Relacionamentos complexos com bancos orientados a grafos
- 8.1 Instalando o Neo4j
- 8.2 Criando nosso primeiro nó no Neo4j
- 8.3 Criando relacionamentos
- 8.4 Fazendo buscas no Neo4j
- 8.5 Explorando mais opções com o MATCH
- 8.6 Apagando e editando nós e relacionamentos
- 9 Mais sobre bancos orientados a grafos
- 9.1 Importando dados para o Neo4j
- 9.2 Mais sobre o MATCH
- 9.3 Queries complexas
- 10 Tudo junto e um pouco mais
- 10.1 O conselho final
- 10.2 Outras ferramentas relacionadas
- 11 Referências bibliográficas
Dados do produto
- Número de páginas:
- 195
- ISBN:
- 978-85-5519-192-3
- Data publicação:
- 07/2016. Atualizado em 10/2020