O que é NoSQL? Aparentemente, é uma pergunta simples. Mas sua resposta provoca um debate riquíssimo sobre o futuro dos bancos de dados. Para começar a responder, é preciso entender que NoSQL significa Not only SQL. E isto faz toda a diferença.
A necessidade de lidarmos com grandes volumes de dados é um forte motivador para pensarmos em soluções que vão além do modelo relacional de dados. Neste caso, sistemas NoSQL tendem a apresentar melhor desempenho, escalabilidade e também são mais fáceis de programar.Um banco de dados NoSQL fornece um mecanismo para armazenamento e recuperação de dados que utiliza modelos mais flexíveis do que os bancos de dados relacionais tradicionais. Isto nos faz concluir que o NoSQL, pelo menos não nos próximos anos, não veio para substituir os bancos SQL. Ele se popularizou para uso em aplicações onde enfrentamos dificuldade de escalabilidade com os bancos relacionais. Insistindo neste ponto, concluímos que existem aplicações que se adaptam melhor em soluções relacionais e outras em que o universo não relacional faz toda a diferença.
Alguns exemplos de bancos NoSQL:
Alguns exemplos de bancos NoSQL:
Um banco NoSQL não é baseado em tabelas e não emprega a linguagem SQL para manipular os dados. Ele também não pode fornecer operações ACID (acrônimo de atomicidade, consistência, isolamento, durabilidade), mas é voltado para soluções onde temos uma arquitetura distribuída e tolerante a falhas. O MongoDB, por exemplo, utiliza um modelo de dados baseado em documentos, que podem ser pensados como as linhas em um banco relacional. Os documentos, um conjunto de campos (pares chave-valor) se adaptam bem com a programação em diversos tipos linguagens. Um banco de dados MongoDB possui collections, que são equivalentes às tabelas e são compostas de um conjunto de documentos. Estes podem ainda conter outros documentos aninhados, baseados em um universo sem schema (veja nosso post MongoDB é schemaless. Mas o que isso realmente significa?).
Bases de dados NoSQL são construídas para permitir a inserção de dados sem um esquema predefinido. Isso faz com que seja fácil realizar mudanças significativas em aplicações em tempo real, sem se preocupar com interrupções de serviço - o que significa que o desenvolvimento é mais rápido, a integração de código é mais confiável e é necessário menos tempo do administrador de banco de dados.
Para entendermos ainda mais para que serve o NoSQL, vamos fazer outra pergunta: Quem está usando, por exemplo, MongoDB? Podemos citar alguns exemplos:
- The New York Times: utiliza o MongoDB para sua aplicação de submissão de fotos.
- Forbes: armazena seus artigos e os dados das empresas em bancos NoSQL
- Eletronic Arts: armazenas os feeds dos jogos, recebendo os dados pelos portal ea.com
- Foursquare: usa MongoDB para armazenar os locais, dados dos usuários e os "check-ins", dividindo os dados em cerca de 25 máquinas na Amazon EC2.
Existem diversos outros exemplos de aplicações e empresas que já utilizam algum tipo de solução baseada em NoSQL, e até mesmo usando um mix de banco relacional com não relacional.
Esperamos que este post tenha ajudado um pouco mais no entendimento do que é o NoSQL e suas aplicações. Um abraço e até o próximo post!
0 comentários:
Postar um comentário