De que se trata o artigo:

Neste artigo conheceremos o movimento NoSQL, realizaremos uma comparação entre seu formato de armazenamento e o padrão de um banco de dados relacional, e para finalizar, apresentaremos um exemplo prático adotando a ferramenta Cassandra.


Para que serve:

Conhecer o NoSQL, novidade que vem ganhando destaque nos últimos meses e que promete alcançar, com qualidade, um alto número de aplicações, propondo soluções mais adequadas que os bancos de dados relacionais, ou até mesmo as complementando.


Em que situação o tema é útil:

O movimento NoSQL oferece opções para as diferentes necessidades de persistência de dados. Nesta matéria conheceremos o Apache Cassandra, ferramenta utilizada pelo Twitter para armazenamento de todo o sistema da rede social. Baseado neste exemplo, podemos notar que os bancos de dados relacionais não podem ser vistos como “balas de prata”, como a única solução correta ou válida.

Este artigo apresentará uma das novidades mais comentadas nos últimos meses: o NoSQL. Neste contexto, comentaremos sobre as principais diferenças na estrutura de armazenamento de dados dos Bancos de Dados relacionais e das opções que seguem este movimento. Para finalizar, veremos um pequeno exemplo prático através de uma implementação NoSQL chamada Cassandra.

O que é NoSQL?

NoSQL chamou atenção recentemente quando o Twitter, uma já conhecida rede social e servidor para microblogging, anunciou que estaria migrando do MySQL para o NoSQL Cassandra. Antes do Twitter, outros websites muito conhecidos também passaram a usar alguma implementação de NoSQL, como por exemplo o Facebook, Digg e Rackspace.

Para começar, um pouco de história: O termo NoSQL surgiu em 1998 como uma abreviação de “Not Only SQL”, ou “Não somente SQL”. Uma tradução direta para o português pode gerar um mal-entendido, pois dá a entender que o NoSQL seja de alguma forma contra a já difundida linguagem SQL. Na verdade o NoSQL veio como uma alternativa ou um complemento aos tradicionais BDs relacionais.

Como muitos podem lembrar, esta não é a primeira vez que o SQL usado em BDs tradicionais é desafiado. Nos anos 90, os Bancos de Dados Orientados a Objeto tiveram seu momento. Eles prometiam acabar com o trabalho dos desenvolvedores em converter seus objetos em linhas e colunas. Na prática o que aconteceu foi uma evolução de Gerenciadores para Mapeamento Objeto-Relacional, mantendo os bancos relacionais em funcionamento.

Hoje em dia, as opções NoSQL são aplicadas em armazenamento distribuído de dados e projetados para suportar requisitos de acesso a dados em grande escala. Tratar da escrita e da leitura de grandes quantidades de dados, como por exemplo os 7TB por dia do Twitter, pode ser um desafio para bancos de dados relacionais. Assim, a implementação em modo distribuído do NoSQL permite escalar de forma horizontal, distribuindo os dados entre múltiplos nós (servidores).

É importante lembrar que apesar de serem projetados para suportar performance e escalabilidade, os bancos de dados NoSQL não suportam as propriedades Atomicidade, Consistência, Isolamento e Durabilidade (ACID) que são um padrão nos bancos de dados relacionais. Os desenvolvedores acostumados com o padrão SQL utilizado na grande maioria dos bancos de dados relacionais (apesar de existirem pequenas diferenças entre as implementações SQL dos diferentes fornecedores, pode-se dizer que é possível migrar de um produto a outro, com pouca ou nenhuma modificação no SQL), não irão encontrar o mesmo padrão se usarem implementações NoSQL, pois cada implementação usa seu próprio mecanismo de acesso.

Entre os bancos de dados NoSQL, o mais conhecido faz parte do projeto Apache Cassandra. O Cassandra iniciou como um software de propriedade do Facebook, mas foi liberado com licença open source em 2008. Outros exemplos de implementações NoSQL incluem: Google BigTable, Apache Hadoop, Voldemort, entre outros.

O projeto Apache Cassandra

Cassandra é um sistema de armazenamento distribuído baseado em Java. É um projeto mantido pela Fundação Apache e por colaboradores, e foi projetado para tratar grandes quantidades de dados distribuídos entre vários servidores, proporcionando alta disponibilidade. O Cassandra é uma solução NoSQL que foi inicialmente desenvolvida pela equipe do Facebook para dar suporte às pesquisas executadas dentro da caixa de entrada de seus usuários.

...

Quer ler esse conteúdo completo? Tenha acesso completo