Quem trabalha com programação ou lida com banco de dados já deve ter se perguntado, do que se trata esse tal de NoSQL? A 1ª ideia é que o mesmo seria um movimento contra a utilização da linguagem SQL, porém não é bem isso que o termo significa. Esse termo cuja denominação é “Not only SQL” é utilizado para definir uma nova classe de banco de dados, a de modelo relacional não normalizado. Esta nova classe, também denominada de NF², N1NF (non first normal form), nested relational, dimensional, multivalue, free-form, schemaless, document database e MRNN (Modelo Relacional Não Normalizado) se opõe as características dos banco de dados relacionais. Sua principal característica é não exigir tabelas fixas e não suportar instruções e operações de junções SQL. Como exemplo vou mostrar como ficaria a representação de tabelas nos dois modelos a fim de esclarecimento:
Modelo Relacional
Tabela Aluno Tabelas Notas
Codigo Nome CodAluno Notas
1 Rubens 1 9
2 Pedro 1 5
3 João 2 10
2 9
2 7
3 6
Modelo NoSQL
Tabela Aluno
1 Rubens 1,5
2 Pedro 10,9,7
3 João 6
Como visto no exemplo sua vantagem seria a velocidade visto que o armazenamento do “relacionamento” se dá em campos de vetores, e sua principal desvantagem seria sua integridade baixa, esta que contribui para o aumento da velocidade. Esse modelo está sendo adotado em ambientes de alta disponibilidade e já possuem diversos softwares, sejam de código fechado como o Google‘sBigTable e Amazon‘s Dynamo ou em código aberto tais como o Apache Cassandra (originalmente desenvolvido para o Facebook), Apache HBase, LinkedIn‘s Project Voldemort, MongoDB e vários outros.
Vou começar a estudar algumas alternativas open-source de banco de dados NoSQL e quando descobrir recursos interessantes volto a postar no blog. Obrigado pela leitura e até o próximo post!
Fonte: Wikipedia