Para encerrar este grande dia de DBA Developers Summit, o palco Developer Stage recebeu ninguém menos do que a nossa querida Danielle Monteiro, mestra em Engenharia da Computação, Microsoft MVP, MongoDB Female Innovator, TEDx speaker, colunista no iMasters, uma das 50 hackers to follow, segundo a Gama Academy, e autora do blog DB4BEGINNERS.com.
Se você acredita que banco de dados sem schema não precisa de modelo de dados, seu projeto começou a falhar antes de começar! Mas não se preocupe, nesta apresentação, Danielle mostrou como modelar um banco de dados NoSQL sem perder a flexibilidade e o controle os dados, desmistificando esse tipo de raciocínio.
Para começar sua apresentação, a palestrante começou sua apresentação afirmando que gosta de trabalhar com modelagem, porque modelagem não tem verdades absolutas.
Ela também comentou sobre o crescimento meteórico do volume de dados existentes no mundo ao longo dos anos e trouxe o seguinte questionamento:
- Como lidar com esses dados? Como extrair valor desses dados?
O que é modelagem?
Segundo ela, se não há um entendimento claro dos dados, vai dar errado – é como construir um castelo de areia. É preciso entender os seus dados e a sua necessidade.
Danielle trouxe uma lista, categorizando alguns bancos de dados e estilos diferentes.
1. Key Value
Redis
Entre as caraterísticas principais do Redis, podemos observar que ele é muito rápido e armazena os dados em memória. Vale lembrar que ele é o Key Value mais usado.
Existem diferentes tipos de dados
- String
- List (acesso nas pontas mais rápido)
- Set (coleção de strings)
- Sorted set (coleção de strings ordenadas)
- Hash (chaves e conteúdos string)
2. Orientado a documentos
MongoDB
O próximo da lista foi o MongoDB, bastante elogiado pela palestrante. Entre as principais características do MongoDB, as que mais se destacam, são:
- Muitos recursos
- Consolidado
- Multi-model
- Documentos tem o formato JSON
- Dados podem ser normalizados
- Dados podem ser desnormalizados
O MongoDB não passou ileso da apresentação de Dani – ela apresentou um problema recorrente. Segundo ela, o problema dele é ser muito fácil, e isso acaba fazendo com que as pessoas não saibam usá-lo corretamente.
Quando usar documentos embedded?
Quem chegou no auditório com essa dúvida, estava no lugar certo. Danielle recomendou o uso de documentos embedded nos seguintes casos:
- Relacionamentos 1:1
- Relacionamentos 1:n
Entre uma entidade fraca e uma entidade forte
- Coleções que contém um número grande de documentos pequenos
- Dados que são lidos sempre juntos
- Mais leituras
Quando usar documentos Referencing?
No caso dos documentos Referencing, a especialista em banco de dados recomenda o uso nos seguintes casos:
- Quando uma parte do documento é frequentemente lida/atualizada e a outra parte não
- O tamanho do documento excede 16MB
- Quando os dados não devem ser duplicados
- Quando um objeto é referenciado em muitos outros
- Mais escritas
Encaminhando a sua apresentação para a parte final, ela apresentou o Cassandra e destacou suas principais características e conceitos.
Cassandra
O Cassandra tem uma linguagem muito parecida com o SQL e possui muitos data types. Ela recomendou que não usemos índices no Cassandra.
Entre os principais atributos do Cassandra, podemos observar que ele é:
- Desnormalizado
- Distribuído
- Tolerante à falhas
- Possui abordagem orientada a consultas
- Schema é muito importante
- Design anel
- mater/master
- Escalabilidade linear
Segundo Danielle, a questão de modelagem com o Cassandra é: “Qual é a minha query?”.
4. Orientado a Grafos
Neo4J
O Neo4J encerrou a apresentação dos bancos de dados desta apresentação. Ela explicou que ele foi projetado para tratar as relações entre os dados, pesquisas em grandes quantidades de dados e é ideal para consultas complexas.
Seu desempenho é muito bom (bastante elogiado durante a palestra), e ele é compatível com ACID.
Alguns índices foram exibidos nos slides da apresentação:
- Melhores em tabelas grandes
- Índices secundários
– Podem destruir o desempenho da sua query
– Complexos
- Criados em background (default), sem bloquear leituras ou gravações
É recomendado usar este banco em sistemas de recomendação, detecção de fraudes, operações de redes, mecanismos de busca e machine learning.
Danielle encerrou sua apresentação dizendo que modelagem é uma obra de arte. Em seguida, uma rodada de perguntas foi aberta e, ao encerrar, Danielle foi bastante aplaudida.