Banco de Dados

18 mai, 2019

DBA Developers Summit 2019: O que você precisa saber para modelar bancos de dados NoSQL

Publicidade

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.