Por que eu devo ler este artigo:Esse artigo aborda as principais características e benefícios do RavenDB, que é mais conhecido como um banco de dados orientado a documentos. Sendo assim, cada documento criado é uma série de objetos relacionados e que agem sobre um contexto, ou seja, eles são tratados como uma unidade, possibilitando o armazenamento e a recuperação dos conjuntos de documentos que são disponibilizados em formatos XML, JSON, etc. Além de ser construído em .NET e open source (o código está aberto no GitHub), o RavenDB é um banco de dados extremamente performático e facilmente escalável.

Hoje, uns dos maiores desafios das empresas de tecnologia são a manipulação e processamento de uma vasta coleção e quantidade de dados gerados todos os dias, sejam eles em redes sociais, dados de sensoriamento, entre outros. Além disso, como poderíamos organizar todos esses dados de uma forma prática, sendo que é muito difícil ou quase impossível se fazer operações simples (inserção, ordenação) de forma eficiente apenas utilizando os SGBDs (Sistemas Gerenciadores de Base de Dados) que todos já conhecem e estão familiarizados? Uma das principais ideias para esse contexto de desafios impulsionados pelo Big Data pode ser denominada como NoSQL (Not only SQL). Este, por sua vez, veio para promover e solucionar problemas relacionados com a grande quantidade de armazenamento e processamento de dados, pois sua arquitetura lida muito bem com a escalabilidade horizontal, permitindo assim um mecanismo incremental e diferenciado quando se trata de novas inserções de dados, além de atender a uma grande necessidade de se ter uma persistência de dados dentro de aplicações em nuvens (cloud computing).

No que remete ao conceito de Big Data, que hoje é interpretado de diversas formas, suas características principais podem ser vistas basicamente em quatro propriedades:

  1. os dados estão arranjados na ordem de dezenas ou milhares de terabytes;
  2. Podem ter crescimento elástico na horizontal;
  3. Facilidade na distribuição dos dados e no seu processamento;
  4. Podem conter uma grande variedade de tipos de dados, em sua maioria complexos e semiestruturados.

Uma das características da manipulação dos dados na ordenação de terabytes (ou maior), pode possuir vários aspectos como o alto poder de processamento, armazenamento e manuseamento dos dados. Esse crescimento elástico dos dados está relacionado às inúmeras informações que são geradas todos os dias em uma quantidade de tempo comparativamente curto, fazendo com que os megabytes, ou terabytes, tenham que exigir cada vez mais da estrutura de hardware/software para que possam atender o mais rápido possível a aplicação em processo.

Com isso, as distribuições dos dados devem ser feitas de uma forma clara e divididas em vários nós de processamento, o que requer processamento e armazenamento distribuídos. A quarta e última característica está relacionada à filiação de modelos mais flexíveis e eficientes para o armazenamento de determinados tipos de dados mais complexos. Além disso, não podemos esquecer que o modelo relacional tradicional não é o mais indicado para tais propriedades citadas, pois nem sempre ele possui a flexibilidade necessária para o armazenamento dos dados.

Os bancos de dados NoSQL possuem um determinado apanhado de conceitos que liberam o processamento de dados de uma maneira rápida e eficiente, com um foco principal na performance. É um modelo bastante alternativo que foi pensado e planejado para que se possa moldar os dados sem abraçar os padrões rígidos do modelo relacional. Uma medida para lidar com esse problema é trazer a ideia de eliminar ou minimizar essa estruturação rígida. Para prevenir o dano de informações, o NoSQL traz uma arquitetura distribuída e flexível a falhas que se baseiam na utilização dos dados em vários servidores, fazendo com que, dessa forma, o sistema possa ser escalado facilmente agregando mais servidores, possibilitando que o eventual defeito de um deles possa ser absorvido pelos demais.

Esse conceito tem a intenção de denominar essa nova classe de bancos para que ela tenha um comportamento relacional, fazendo que seja totalmente ignorada a forma tradicional de como os dados são acondicionados nos bancos relacionais, e também para que seja possível realizar a recuperação dos dados de uma forma eficiente e rápida, possibilitando que independentemente do tipo de aplicação, esta possa impreterivelmente ter acesso aos dados do banco.

O NoSQL tem como principal objetivo ser basicamente disponível (Basically Available), o que significa que o sistema “lembra” de estar funcionando basicamente o tempo todo. Em estado leve (Soft State), o sistema não necessita ser estável o tempo todo, e em consistência eventual (Eventual Consistency), o sistema tona-se consistente no momento que é necessário.

Dentre as principais vantagens do banco de dados não-relacional, temos o seu uso horizontal, ou seja, a distribuição dos dados através de bancos espalhados em diferentes servidores, diferente do padrão dos bancos mais utilizados os hoje (MySQL, MS SQL Server, PostgreSQL, etc.), onde se faz necessário realizar o seu crescimento verticalizado.

A abreviação do NoSQL significa “Não Apenas SQL”, ou seja, que não utilizam o modelo relacional convencional (daí o nome Bancos de Dados Não-Relacionais) e são muito mais flexíveis comparados aos seus antigos adversários.

Para gerenciar grandes quantidades de dados sem a perda do desempenho, o NoSQL resolve o problema da centralização e a dificuldade encontrada em se escalar um banco de dados, aplicando escalonamento horizontal, escalabilidade vertical e se caracterizando por sua simplicidade, tendo sido altamente mais indicado para as camadas de banco de dados.

A escalabilidade horizontal possibilita a distribuição dos dados divididos em vários servidores, os quais são divididos em nós de alto desempenho ou não, possibilitando com que o volume dos dados seja minimizado, pois, conjuntos de dados menores são mais fáceis de serem armazenados, processados e gerenciados. Com isso, é possível aprimorar e baratear o armazenamento dos dados.

Antes de iniciarmos as classificações dos bancos, é importante saber como funcionam algumas características do universo NoSQL.

Características do NoSQL

Entre os vários cenários existentes em que o tempo de resposta é ...

Quer ler esse conteúdo completo? Tenha acesso completo