Ola Pessoal;Hoje, escrevo este post para falar de uma tecnologia um tanto quanto polemica ainda, porem que vem tendo crescimento na sua utilizacao em aplicativos WEB, principalmente com alta escabilidade, estou falando de NoSQL Databases.NoSQL e uma alternativa aos bancos RDBMS para tentar resolver problemas de escabilidade (para RDBMS pode ser caro ou bastante complexo) e desempenho entre outras caracteristicas. A ideia principal e armazenar dados de uma forma denormalizada, utilizando um padrao chamado key-value, ou seja um valor esta sempre associado a uma chave.Um outro conceito e que cada linha armazenada pode possuir seu proprio esquema, isso facilita a replicacao dos dados em varios outros servidores NoSQL.Empresas como: Facebook, Google, Twitter, Digg, Yahoo utilizam em suas aplicacoes e sao entusiastas de solucoes NoSQL.Eu quero falar especificamente sobre um banco de dados NoSQL que vem crescendo bastante, e o Apache Cassandra que foi desenvolvido primeiramente pelo Facebook que depois entregou o codigo fonte para a Apache dar continuidade. Escrito em Java e bastante leve, ganhou bastante espaco porque uniu a arquitetura de um banco da Amazon, chamado de Dynamo com o modelo de dados baseado no BigTable do Google e o resultado final ficou bem interessante.A Estrutura de dados do Apache Cassandra trabalha da seguinte forma:Keyspaces: Comparando com um banco RDBMS e como se fosse um schema, ou seja, em um keyspace, guardamos todas a estrutura de ColumnFamily da nossa aplicacao.ColumnFamily: Comparado com um banco RDBMS, seria como uma tabela, ou seja ira guardar varias linhas de dados. Cada linha ira possuir uma chave, essa chave serve de identificador da linha e podera ter colunas ou sub-colunas para guardar suas informacoes.Column: Uma coluna e a menor informacao possivel, e um valor baseado em uma chave. Pode estar associado a um ColumnFamily ou um SuperColumn.SuperColumn: E um conjunto de colunas, ou seja, para cada linha da ColumnFamily, podemos ter SuperColumns que possuam varias colunas.Para exemplificar, vou demonstrar a estrutura de uma Livraria usando Apache Cassandra, fica assim:Nessa estrutura, temos:Keyspace Livraria: que ira guardar as informacoes sobre livros e autores.ColumnFamily Autores: Guarda os dados dos autores, aonde a chave de cada linha e o nome do autor.Column Email: Coluna que armazena o email para cada autor.Column Biografia: Coluna que armazena a biografia para cada autor.ColumnFamily Livros: Guarda os dados dos livros, aonde a chave de cada linha e o nome do livro.Column ISQN: Coluna que armazena um codigo qualquer do livro chamado de ISQN.Column Autor: Coluna que identifica o autor do livro.E nossa introducao a respeito de bancos NoSQL e Apache Cassandra fica por aqui, o intuito foi dar de fato apenas uma breve introducao, porque existem materiais muito bons na internet falando a respeito disso.O motivo dessa introducao e que no proximo post, irei demonstrar a criacao de um CRUD em Java com NoSQL e o banco escolhido foi o Apache Cassandra. No CRUD darei continuidade a esta introducao para realizar um cadastro de uma livraria.Ate a proxima.Fontes:pt.wikipedia.org/wiki/Apache_Cassandrablog.caelum.com.br/bancos-de-dados-nao-relacionais-e-o-movimento-nosql/http://imasters.com.br/artigo/17043/bancodedados/nosql_voce_realmente_sabe_do_que_estamos_falando/ Ola Pessoal;Essa e uma dica que recebi de um amigo meu do trabalho, o Josivan (cara faz mestrado na UTFPR e tambem faz a revisao