No contexto de tecnologias, é importante sempre ter em mente duas características fundamentais da área:
Primeiramente, quando uma tecnologia é bem aplicada e obtém sucesso, há uma tendência de expansão do seu uso, com isso, mais explorada e desenvolvida, naturalmente as aplicações exigem cada vez mais dessa tecnologia.
Em segundo lugar, embora vivamos em uma realidade onde uma mesma aplicação pode se utilizar de diferentes tecnologias e, ainda, uma mesma tecnologia (p.ex. uma linguagem de programação) possa ser utilizada com propósitos em diferentes; cada tecnologia tem seus objetivos e características próprias de maneira que, havendo formas diferentes de obter um resultado, é importante um planejamento que leve em conta quais os prós e os contras de cada ferramenta disponível.
Nesse cenário, embora o SQL seja uma ferramenta de suma importância para trabalharmos com dados, e que geralmente é nos apresentada primeiro, há ainda outras maneiras de tratarmos os dados, cada uma delas com suas características e apresentando vantagens em pontos específicos.
Além do SQL, que tem por principal característica o uso de registros em tabelas e o relacionamento entre as mesmas, existem ainda outras abordagens como frameworks para “Big Data”, “Data Warehousing”, “Data Lakes” entre muitas outras.
Nesse artigo, trago uma introdução às ferramentas NoSQL.
Uma ferramenta muito utilizada no ambiente NoSQL é o MongoDB, um banco de dados orientado documentos, de código aberto, licenciado sob a GNU Affero General Public License (AGPL) e criado com o objetivo de ser muito flexível e escalável.
Diferente do armazenamento em tabelas, essa abordagem armazena os dados em documentos BSON(uma representação binária de documentos JSON). Essa maneira de organização traz consigo possibilidades de armazenamento mais complexas e sem a necessidade de uma padronização tão rígida como nos bancos SQL, o que facilita a modelagem e o gerenciamento de grandes volumes de dados que não são tão homogêneos.
As ferramentas NoSQL, como o MongoDB, têm sua própria linguagem de consulta que, naturalmente, é voltada pra dados organizados em documentos. Essa linguagem, portanto, permite que seja feita, com certa facilidade, nesse cenário, algumas consultas que seriam mais custosas e trabalhosas se realizadas em um banco SQL.
Estrutura básico dos documentos do MongoDB:
Algumas das características encontradas no MongoDB:
- Modelo flexível de dados
- Escalabilidade Horizontal
- Alta disponibilidade
- Consultas avançadas
- Indexação
- Implantação flexível
Algumas das possíveis aplicações do MongoDB
- Aplicações com grande volume de dados
- Big Data
- IoT
- Análise de dados
Como visto, a tecnologia é voltada pra objetivos específicos, sendo nesses pontos vantajosa, como no caso do MongoDB, tem-se:
- Flexibilidade
- Escalabilidade
- Desempenho
- Replicação
- Comunidade forte e ativa
E também há algumas desvantagens como apontado, podemos citar:
- Suporte limitado à transações
- Consumo de recursos de hardware e armazenamento
- Complexidade em sua configuração
- Lentidão em determinados cenários
- Curva de aprendizado da tecnologia
Listo aqui, ainda, motivos pelos quais o MongoDB vale a pena:
- Aplicações criadas de maneira rápida
- Capacidade de manipulação de praticamente qualquer tipo de dado
- Escalabilidade no uso dos dados
- Adaptação facilitada a linguagens orientadas a objetos
Finalmente, o MongoDB, tal como apresentado, é uma ferramenta que, com uma utilização adequada em cenários bem definidos e favoráveis, pode trazer muitas vantagens à aplicação.
Essa é apenas uma introdução à ferramenta e ao conceito de NoSQL que tem todo um mundo de possibilidades a serem exploradas, podendo ser uteis quando utilizada no contexto ideal.
Para saber mais:
https://www.mongodb.com/
https://www.mongodb.com/blog
MongoDB (O Banco de Dados NoSQL mais Legal)