Olá a todos, sou o Vinicius Vale e hoje vou falar um pouco SQLNoSQL e NewSQL, sendo uma continuação do artigo NoSQL e o mundo Big Data na Era da Informação.

Primeiro, vamos entender as principais diferenças entre SQL e NoSQL.

Quando se inicia um projeto, começa-se entendendo as análises de requisitos, dessa forma, seguindo o modelo tradicional é construído o MER (Modelo Entidade Relacionamento). Todo DBA, em algum momento da vida, já usou as famosas formas normais, técnicas que normalizam a forma com que os dados são armazenados. Basicamente, diminuindo ao máximo a redundância entre os dados. Essas “amarrações” tornam-se custosas quando entramos no mundo Big Data e estes dados precisam ser analisados com velocidadeseguindo um dos preceitos dos 5V’s.

 Percebemos claramente, que em um mundo Big Data, as “regras” precisam ser menos rígidas e mais flexíveis acompanhando as regras de negócio da empresa, que nos dias atuais, mudam o tempo todo. Imagine, por um momento, uma startup revendo a cada mudança de negócio, o seu MER. Seria impossível acompanhar todas as mudanças do dia a dia, principalmente para um empresa que ainda não tem o modelo concretizado.

Quando entramos no mundo Big Data, devemos ser mais abertos ao capturar os dados, coletando qualquer tipo de informação sem preconceito. A ideia aqui, é coletar o máximo de dados possíveis, afim de que a quantidade supra a falta de “qualidade” dos dados, veja que a qualidade aqui, refere-se a reduzir validações, a diminuir preciosismo, ou seja, afrouxar a qualidade dos dados. Algo incomum em ambientes relacionais tradicionais, visto que as amarrações o impede de permitir tais ações.

Com essas informações em mente, podemos seguir para entender a ACID e sua a importância em ambientes transacionais.

  • Atomicidade – Representa a necessidade de forçar que uma série de comandos, ou finalizem com sucesso, ou falhem se um deles falhar.
  • Consistência – Representa a garantia de que os dados e as alterações sempre seguem as regras e normas criadas no MER.
  • Isolamento – Em sistemas multi usuários, várias transações podem acessar simultaneamente o mesmo registro (ou parte do registro) no banco de dados. O isolamento é uma forma de evitar que um mesmo registro seja alterado por vários usuários.
  • Durabilidade – É a garantia do que foi comitado (commit) realmente foi feito, mesmo em caso de falha do servidor.

ACID é necessária quando a regra de negócio assim o diz, ou seja, se o que você pretende fazer não precisa seguir algumas das regras citadas acima, você pode pensar em usar um NoSQL.

Agora que entendemos um pouco da ACID, vamos entrar no conceito BASE que rege a ideia por trás do NoSQL.

  • (BABasically Available – Caracteriza-se por ser basicamente disponível, ou seja, o sistema parece estar funcionando o tempo todo.
  • (S) Soft State – Em estado leve, o sistema não precisa ser consistente o tempo todo.
  • (E) Eventual Consistency – Eventualmente consistente, o sistema torna-se consistente no momento devido.

Por ser distribuído, precisa adaptar-se a diversas situações que podem ocorrer com qualquer um dos servidores. Imagine que uma ação ocorrida em um servidor precisa ser replicada ou avisada para todas as máquinas daquele cluster. Por este e outros motivos, é preciso flexibilizar algumas regras.

Porém isso não é tudo, também em um projeto precisamos entender nossa regra de negócio para que encaixemos na teoria CAP, só assim podemos finalmente decidir qual seria a melhor ferramenta para usarmos.

Ou seja, o segredo na hora de escolher a ferramenta está no entendimento do negócio e suas regras. Porém nada o impede de utilizar uma ou mais ferramentas para atender as necessidade do negócio.

É possível em uma mesma aplicação utilizar praticamente todos os tipos de bancos de dados. Sendo eles SQL ou NoSQL. A ideia é aproveitar o melhor de cada um para atender necessidades específicas do negócio, e facilitando a escalabilidade horizontal.

E sobre o newSQL? Este fica para o próximo artigo.

Lembrando que a linguagem SQL continua em pleno vapor, inclusive sendo usada em várias ferramentas NoSQL, exatamente para facilitar o aprendizado. Se você ainda não sabe SQL, chegou o momento de aprender de maneira rápida e simples, conheça o curso de SQL online da Sudoers e torne-se ROOT em sua carreira.