Começando a Entender os Bancos de Dados NoSQL: o MongoDB – Academia UOL HOST
Começando a Entender os Bancos de Dados NoSQL: o M...
Começando a Entender os Bancos de Dados NoSQL: o MongoDB
Faz tanto tempo que os bancos de dados relacionais dominam o mercado que em certo momento a expressão banco de dados virou sinônimo de bancos de dados relacionais (veja mais informações neste artigo).
Esse tipo de tecnologia ainda domina o mercado, mas vem crescendo rapidamente o uso de diversas novas tecnologias de armazenamento de dados. Estes novos bancos de dados são chamados, genericamente, de bancos NoSQL, abreviatura da expressão "Not Only SQL", ou seja, não apenas SQL (sendo SQL a linguagem padrão usada por quase todos os bancos relacionais).
Os bancos NoSQL não são necessariamente parecidos entre si, apenas são classificados dessa maneira para se diferenciarem dos bancos relacionais. O produto que lidera este mercado é o MongoDB (clique aqui para ver o ranking dos bancos de dados mais usados no mundo). A seguir, apresento algumas características deste sistema gerenciador de banco de dados.
O MongoDB é um banco de dados que armazena documentos no estilo JSON (fala-se "Jeison"). Isso quer dizer que o desenvolvedor pode carregar para o banco de dados qualquer documento que tenha a sintaxe exigida pelo JSON, sem se preocupar com a estrutura de dados em si.
Para ficar mais claro: digamos que você não saiba exatamente quais dados sua aplicação vai precisar usar e, por causa disso, seja necessário alterar frequentemente o seu código. Para o MongoDB, não importa se sua aplicação parou de gravar dados sobre o nome do fornecedor do produto ou se começou a registrar a cor do produto vendido. Ou seja, não faz diferença que você tenha mudado a estrutura dos dados gravados. Basta que seu código mande documentos no formato adequado, respeitando a sintaxe do documento JSON.
Se você já viu o conteúdo de um arquivo XML, vai perceber que os documentos JSON são muito parecidos. A sintaxe do JSON é bastante simples, suporta diversas estruturas de dados e permite validação por tipo de dados.
Como em qualquer banco de dados, no MongoDB é importante definir o modelo de dados adequado para sua aplicação. No entanto, as técnicas usadas são muito diferentes daquelas consideradas nos bancos de dados relacionais. A ideia principal é preocupar-se com quais dados serão extraídos do banco e não como os dados são gravados, como é tradicional no mundo relacional.
No MongoDB, os dados não são tratados como "registros", mas sim como documentos (no formato JSON, como eu já comentei anteriormente). E também não usa o conceito de "tabelas", mas sim coleções.
Aqui entra uma ressalva de importância fundamental: uma vez definido o modelo de dados, não importa que você precise fazer alterações no layout dos documentos gravados no MongoDB. Você pode incluir novos atributos, excluir outros que não são mais usados, sem se preocupar em mexer no banco de dados. Basta corrigir a sua aplicação e enviar os novos documentos JSON.
Essa característica ajuda muito na produtividade da programação, porque alterações na estrutura de dados não precisam ser aplicadas e testadas no banco de dados. Apenas a aplicação precisa mudar.
Outra característica essencial do MongoDB é a escalabilidade. Não importa que você inicie seu projeto para atender algumas centenas de pedidos por dia, mas que no futuro sua aplicação passe a atender bilhões de pedidos por dia. O MongoDB foi concebido para atender demandas gigantescas (aliás, seu nome vem da palavra inglesa "huMONGOus", que significa gigantesco).