Banco De Dados NoSQL
Tipos de Bancos de Dados não relacional abordados: Cassandra, MongoDB, CouchDB
Cassandra
O Cassandra é um sistema de banco de dados baseado na abordagem NoSQL. Existem alguns tipos diferentes de NoSQL, sendo que o Cassandra é baseado no tipo chave/valor. Nesse tipo de banco de dados, os dados são identificados através de uma chave. A principal promessa do Cassandra é de prover um sistema de armazenamento distribuído, altamente escalável e eventualmente consistente. Para garantir essas promessas, foram unidas características de dois sistemas NoSQL, o BigTable do Google e o Dynamo da Amazon. Esse sistema foi criado no Facebook em 2008, por Avinash Lakshman e Prashant Malik. Foi bastante usado no próprio Facebook para tornar a busca de mensagens mais robusta. No final de 2010 seu uso no Facebook foi descontinuado. Hoje em dia é utilizada uma outra solução NoSQL no lugar do Cassandra. No Cassandra, os dados são indexados por uma chave do tipo String. Essa chave referencia uma linha, onde os dados se encontram, sendo que em cada linha os dados são divididos em colunas e famílias de colunas. Cada coluna no Cassandra tem um nome, que a identifica, um valor e um timestamp, sendo que tanto o valor quanto o timestamp são fornecidos pela aplicação cliente quando um dado é inserido. Além disso, uma aplicação pode criar uma coluna em tempo de execução, sem precisar declarar ou alterar nada, ou seja, basta informar um valor para essa nova coluna para uma dada chave.
Para garantir que um grande volume de dados seja tratado de forma rápida e eficiente, o Cassandra possui por trás uma arquitetura bastante robusta e complexa. Essa arquitetura é composta por diversos sistemas distribuídos que garantem que cada parte do sistema funcione corretamente. Quando uma requisição de leitura ou escrita é feita, qualquer nó do cluster pode tratá-la. Através da chave, o nó que atendeu a requisição consegue saber quais nós possuem