Depois de ter participado das palestras que aconteceram durante a Dev Commerce, promovida pelo iMasters, nosso colaborador Conrado aproveitou para escrever um pouco sobre o NoSQL e o Parse. Abaixo, um conteúdo rico sobre suas impressões e informações valiosas sobre os funcionamentos e aplicações possíveis.
Com a crescente necessidade de integração de um sistema entre diversas plataformas, com alta disponibilidade e grandes volumes de dados, nos deparamos com uma situação complicada: definir qual é o banco de dados ideal para utilizarmos. Uma boa solução nestes casos, pode ser a utilização de um banco de dados NoSQL.
NoSQL são diferentes sistemas de armazenamento, que ao contrário dos bancos de dados SQL, não são relacionais, não possuem um esquema (schemaless). Bancos NoSQL armazenam os dados com técnicas que visam atender serviços com as necessidades levantadas anteriormente, nos trazendo um aumento de performance e uma alta escalabilidade. Enquanto os bancos de dados relacionais necessitam de uma distribuição vertical de servidores, quanto mais dados, mais memória e mais disco um servidor precisa, o NoSQL traz uma facilidade na distribuição horizontal, mais dados, mais servidores, não necessariamente de alta performance. É uma forma de utilização muito mais eficiente e econômica, utilizada inclusive pelo Google, que usa computadores de médio e pequeno porte para a distribuição dos dados.
O NoSQL possui diferentes categorias, definidas pelo modo que ele trabalha com os dados e para cada uma destas categorias, existem diversas ferramentas disponíveis no mercado.
Key/Value Store:
É o tipo de banco de dados NoSQL mais simples, possui como conceito uma chave e um valor para essa chave. Sendo ele o que aguenta mais carga de dados. Esses tipos de bancos de dados são o que tem a maior escalabilidade.
Wide Columns Store:
Fortemente inspirados pelo BigTable, do Google, eles suportam várias linhas e colunas, além de permitir subcolunas.
Document Store:
Baseado em documentos XML ou JSON, podem ser localizados pelo seu id único ou por qualquer registro que tenha no documento.
Graph Store:
Com uma complexibilidade maior, esses bancos de dados guardam objetos, e não registros como os outros tipos de NoSQL. A busca desses itens é feita pela navegação desses objetos.
Column Oriented Store:
Esses são bancos de dados relacionais, porém apresentam características do NoSQL. A principal diferença deles é que os dados são armazenados em colunas, ajudando na escalabilidade.
Ferramentas NoSQL:
Existem diversas ferramentas NoSQL que se enquadram nas categorias informadas anteriormente, neste artigo iremos abordar sobre uma em específico, visto que possui um robusto plano free, é de fácil utilização e não é necessário a configuração de um servidor para o mesmo, o Parse.
O que é o Parse?
O Parse é uma plataforma que permite que você sincronize dados na nuvem sem a necessidade de uma linguagem servidor.
Com o Parse, é possível utilizar uma mesma base para diversas plataformas diferentes, aplicações Web, Mobile e Desktop, necessitando apenas fazer a inclusão do mesmo no projeto e se conectar com a API Key disponibilizada pelo Parse, sem a necessidade de nenhuma configuração mais complexa.
Como utilizar?
O Parse é orientado a objetos, sendo bem simples a sua utilização, por exemplo, para criar uma tabela, você instancia um ParseObject, e após, seta seus atributos e valores. Abaixo, exemplo em PHP da documentação do próprio parse:
$gameScore = new ParseObject(“GameScore”);
$gameScore->set(“score”, 1337);
$gameScore->set(“playerName”, “Sean Plott”);
$gameScore->set(“cheatMode”, false);
try {
$gameScore->save();
echo ‘New object created with objectId: ‘ . $gameScore->getObjectId();
} catch (ParseException $ex) {
// Execute any logic that should take place if the save fails. // error is a ParseException object with an error code and message.
echo ‘Failed to create new object, with error message: ‘ . $ex->getMessage();
}
Depois de executado este código, você verá em seu projeto no Parse, que foi gerado algo como isto:
objectId: “xWMyZ4YEGZ”, score: 1337, playerName: “Sean Plott”, cheatMode: false,
createdAt:”2011-06-10T18:33:42Z”, updatedAt:”2011-06-10T18:33:42Z”
Ele automaticamente atribuiu um ID para seu objeto, e grava a data e hora de criação, e de alteração do mesmo.
Vantages do Parse:
A partir do modo de funcionamento do Parse, você manipula seu banco de dados com a própria linguagem de seu sistema. Caso esteja criando um aplicativo para Android, fará a manipulação em Java, por exemplo, e assim nas diversas plataformas que o Parse dá suporte, tornando-o uma ótima opção para aplicações que possuem integração entre plataformas, como uma Loja Virtual, que além de uma plataforma web, pode ter um aplicativo mobile, para Android, IOS e Windows Phone, e possuindo uma alta disponibilidade, visto que a base estará disponível na nuvem do Parse.
O Parse também disponibiliza classes prontas para controle de usuário, com métodos de validação e integração com redes sociais, como Facebook e Twitter.
O Parse possui um plano free que disponibiliza até 30 requisições por segundo e um espaço de 20GB e 2TB de transferência.
Maiores informações estão disponíveis no site oficial do Parse, que possui uma documentação bem completa e clara mostrando passo a passo como utilizar os diversos métodos e ferramentas disponibilizadas pelo mesmo, em todas as plataformas ao qual da suporte.
Fontes:
http://www.itexto.net/devkico/?p=1199
http://imasters.com.br/artigo/17043/banco-de-dados/nosql-voce-realmente-sabe-do-que-estamos-falando/
O que você achou deste conteúdo?