Saltar para o conteúdo

NoSQL

Origem: Wikipédia, a enciclopédia livre.

NoSQL (às vezes interpretado como Not Only SQL - Não Somente SQL) é um termo genérico para uma classe definida de banco de dados não-relacionais que rompe uma longa história de banco de dados relacionais com propriedades ACID. Outros termos equivalentes para esta categoria de bancos é NF², N1NF (non first normal form), nested relational, dimensional, multivalue, free-form, schemaless, document database e MRNN (Modelo Relacional Não Normalizado).

Os bancos de dados que estão sob estes rótulos não podem exigir esquemas de tabela fixa e, geralmente, não suportam instruções e operações de junção SQL.

Tendências em arquiteturas de computadores, como a computação na nuvem e a necessidade crescente de prover serviços escaláveis, estão pressionando bancos de dados numa direção onde eles necessitam oferecer escalabilidade horizontal. Bancos de dados NoSQL armazenam os dados com técnicas que visam atender a esse requisito. Há alguns exemplos proeminentes de softwares de código fechado que atendem estes requisitos, sendo alguns deles o BigTable, do Google, IBM Cloudant e o DynamoDB, da Amazon. E alguns exemplos de software open-source como Apache Cassandra (originalmente desenvolvido para o Facebook), Apache HBase, LinkedIn's e vários outros.

É importante entender que o intuito não é eliminar bancos de dados relacionais, mas oferecer uma alternativa. Pois, durante muito tempo o modelo relacional foi usado como "bala de prata" para todos os problemas de persistência[parcial?].

História do termo

O termo NoSQL foi primeiramente utilizado em 1998 como o nome de um banco de dados relacional de código aberto que não possuía uma interface SQL. Seu autor, Carlo Strozzi, alega que o movimento NoSQL "é completamente distinto do modelo relacional e portanto deveria ser mais apropriadamente chamado "NoREL" ou algo que produzisse o mesmo efeito".[1]

O termo NoSQL foi re-introduzido no início de 2009 por um funcionário do Rackspace, Eric Evans, quando Johan Oskarsson da Last.fm queria organizar um evento para discutir bancos de dados open source distribuídos.[2] O nome — uma tentativa de descrever o surgimento de um número crescente de banco de dados não relacionais, que não tinham a preocupação de fornecer garantias ACID — faz referência ao esquema de atribuição de nomes dos bancos de dados relacionais mais populares do mercado: MySQL, MS SQL, PostgreSQL etc.

Arquitetura

Modernas bases de dados relacionais parecem ter uma limitação a transações com grandes volumes de dados e cargas de trabalhos típicas de operações modernas de grande carga, incluindo o dimensionamento de conjuntos de dados. Sistemas NoSQL frequentemente fornecem garantias de consistência fraca, como consistência eventual e operações restritas a itens individuais de dados, apesar de que uma faixa possa impor garantias ACID, adicionando uma camada de middleware complementares.[3].

Alguns defensores[quem?] do NoSQL promovem interfaces muito simples, como arrays associativos ou pares chave-valor (Key-Value pairs). Outros sistemas como bancos de dados XML nativos provem o apoio ao padrão XQuery.[4]

Referências

  1. «NoSQL Relational Database Management System: Home Page». Strozzi.it. 2 de outubro de 2007. Consultado em 29 de março de 2010 
  2. «NOSQL 2009». Blog.sym-link.com. 12 de maio de 2009. Consultado em 29 de março de 2010 
  3. Zhou Wei, Guillaume Pierre and Chi-Hung Chi. Scalable Transactions for Web Applications in the Cloud. In proc. of the Euro-Par Conference, January 2009.
  4. «Open Source NoSQL Databases - DZone Java». dzone.com. Consultado em 8 de junho de 2016