base dados nosql

Descubra tudo o que necessita de saber sobre as bases de dados NoSQL

As metodologias de desenvolvimento ágil e as aplicações Web 2.0 aceleraram a utilização de bases de dados NoSQL, mais adequadas aos seus requisitos de volume, variedade e velocidade. 

Introdução 

A forma com as aplicações web devem tratar os dados mudou muito na última década. Há cada vez mais dados novos e em constante evolução que têm de ser armazenados e acedidos por mais utilizadores ao mesmo tempo. A escalabilidade e o desempenho tornaram-se num desafio para os sistemas de bases de dados. 

As metodologias de desenvolvimento também evoluíram. Longe vão os dias dos ciclos de desenvolvimento em cascata que duravam 12 ou 18 meses. Agora, trabalhamos em pequenas equipas, com metodologias ágeis, com iterações rápidas com o objetivo de gerar funcionalidades a cada uma ou duas semanas. Isto leva a uma evolução constante do código e a uma extensão ou redefinição permanente dos esquemas de dados. 

Os sistemas de armazenamento relacionais tradicionais requerem a definição do seu esquema antes da adição dos dados. Qualquer desenvolvimento de uma nova funcionalidade numa aplicação que os utilize implica frequentemente uma alteração desse esquema, uma interrupção do serviço e uma migração dos dados existentes para o novo esquema. 

Bases de dados NoSQL 

A utilização de sistemas de bases de dados NoSQL acelerou com o aparecimento da nova geração de websites em que as pessoas colaboram e partilham informações online. Nessa altura, surgiram os primeiros problemas na gestão da informação armazenada em bases de dados relacionais. 

As bases de dados NoSQL são sistemas de armazenamento de informações que não cumprem o esquema entidade-relacionamento. Não utilizam tabelas, registos ou campos para armazenar os dados, mas sim outros formatos, como key-value, mapeamento de colunas, documentos ou gráficos. 

As bases de dados NoSQL são sistemas de armazenamento de informações que não cumprem o esquema entidade-relacionamento

Tipos de bases de dados NoSQL 

Dependendo da forma em que a informação é armazenada, podemos encontrar diferentes bases de dados NoSQL. Estas são as mais utilizadas: 

  • Armazenamento key-value. Este é o caso mais simples de bases de dados NoSQL, cada elemento é armazenado como um nome de atributo ou chave e o seu valor. 
  • Bases de dados de documentos. Nelas armazena-se informação como um documento, normalmente em formato JSON ou XML, e utiliza-se uma chave única para cada registo. Os documentos podem conter muitos pares key-value diferentes, pares key-array ou mesmo nested documents. 
  • Armazenamentos em rede. A informação é representada como nós de um grafo e as suas relações são as arestas do grafo. São utilizados para guardar informação de redes de dados, tais como ligações sociais. 
  • Bases de dados orientadas por colunas. Neste tipo de base de dados, cada entrada é uma coluna, pelo que os dados de cada entrada são organizados uns sob os outros. Utiliza-se principalmente quando é necessário analisar grandes quantidades de dados. 

Vantagens e inconvenientes do NoSQL 

As principais vantagens das bases de dados não relacionais são as seguintes: 

  • São bases de dados mais flexíveis que permitem agregar informação ou efetuar alterações ao sistema sem necessidade de acrescentar configurações adicionais, adaptando-se melhor às exigências de entrega rápida e contínua de serviços. 
  • Requerem pouca computação, pelo que podem ser instaladas em máquinas com poucos recursos e, por conseguinte, a um custo inferior. 
  • Suportam o crescimento horizontal, ou seja, toleram arquiteturas distribuídas, permitindo a instalação de novos nós operacionais que equilibram a carga de trabalho. Isto significa que é necessário muito pouco tempo para expandir a capacidade de uma base de dados. 
  • Permitem trabalhar com uma grande quantidade de dados e armazenar dados de qualquer tipo, em qualquer momento, sem necessidade de uma validação. 

No entanto, apresentam os seguintes inconvenientes ao comparar-se com bases de dados de tipo relacional: 

  • Não cumprem as propriedades de atomicidade, consistência, integridade e durabilidade (ACID). 
  • Uma vez que a tecnologia NoSQL é relativamente recente, as operações podem ser limitadas, exigindo um maior investimento de tempo em desenvolvimentos. 
  • Não existe um padrão definido entre os diferentes motores que oferecem este serviço e, com isso, a linguagem a ser utilizada muda dependendo da solução NoSQL escolhida. 
  • A maioria das bases de dados NoSQL não contém uma interface gráfica para a sua administração, tendo normalmente acesso a uma consola, o que requer um conhecimento aprofundado das instruções necessárias para a sua manutenção. 

Conclusões 

As bases de dados NoSQL não são um substituto das bases de dados relacionais. Para cada aplicação, deve ser avaliada qual a solução de base de dados mais adequada. Assim, uma base de dados NoSQL pode ser escolhida quando: 

  • O volume de dados a armazenar cresce muito rapidamente em momentos específicos. 
  • A escalabilidade exigida por uma solução de base de dados relacional não é técnica ou economicamente viável para o projeto. 
  • Quando em cada inserção de dados a informação armazenada pode ter campos diferentes, ou seja, o esquema de informação não é homogéneo. 

No entanto, a solução de base de dados relacional continua a ser a mais adequada quando a integridade, a validade e a coerência dos dados são fundamentais para a organização.