NoSQL significa "Not only SQL" (Não apenas SQL). A ideia de nomear um princípio com uma possibilidade negativa parece curiosa, como se demonstrasse que uma limitação foi ultrapassada. Siga o guia...
SQL (Structured Query Language) : Linguagem informática normalizada utilizada para operar bases de dados relacionais.
Base de dados relacional: conjunto de informações discriminadas e organizadas em matrizes denominadas relações ou tabelas. O conteúdo da base de dados pode ser processado através de operações de álgebra relacional, como a intersecção, a junção e o produto cartesiano.
Os sistemas de gestão de bases de dados relacionais (SGBDR) devem respeitar os princípios ACID
A C I D
- Atomicidade: uma "transação" não pode ser dividida.
- Consistência: uma transação preserva sempre a integridade da base de dados e respeita todas as regras da base de dados. Ou é concluída ou nunca teve lugar.
- Isolamento: mesmo que várias transacções sejam concluídas simultaneamente, o seu efeito final deve ser o mesmo que se tivessem sido concluídas uma após a outra. Se uma transação der origem a um erro, este não terá qualquer efeito em qualquer outra transação.
- Durabilidade: se uma transação tiver sido concluída, deve permanecer concluída, mesmo que o sistema caia imediatamente a seguir. A base de dados deve ser armazenada numa memória não volátil.
No entanto, devido à explosão da quantidade de dados a processar e, sobretudo, à sua ligação em rede na nuvem, as condições do ACID eram demasiado rígidas. Eric Brewer demonstrou que é impossível que um sistema distribuído possa garantir mais de duas das três condições de Coerência, Disponibilidade e Tolerância de Partição em qualquer altura. O Teorema CAP serviu de base para o desenvolvimento do NoSQL.
Quando duas bases de dados são emparelhadas, vários elementos têm de ser duplicados para cumprir as condições ACID, mas se 20 ou 200 elementos tiverem de ser emparelhados, rapidamente se torna uma impossibilidade de hardware.
O NoSQL garante que pelo menos duas das três condições seguintes serão satisfeitas:
- que todos os nós do sistema vejam exatamente os mesmos dados, exatamente ao mesmo tempo;
- que todas as consultas recebam uma resposta
- que nenhuma falha menos significativa do que uma interrupção total da rede impedirá o sistema de responder corretamente. Se a rede estiver dividida em sub-redes, cada uma pode funcionar de forma independente.
Desta forma, a disponibilidade é geralmente prioritária, a velocidade de processamento é prodigiosa e as respostas são fornecidas com os dados mais actualizados possíveis.
Para o mundo da educação
Inicialmente concebidas para atingir a velocidade de processamento de grandes volumes de dados ou para tratar dados não estruturados, estas possibilidades estão a tornar-se cada vez mais comuns nos estabelecimentos de ensino.
Quando se trata de processar dados em tempo real a partir de plataformas de gestão de cursos, ou de fazer com que dezenas de bases de dados de diferentes departamentos e em diferentes sistemas falem entre si, para novas utilizações, para utilizar dados não estruturados, como fotografias ou vídeos, o NoSQL oferece uma solução flexível e facilmente exequível para os programadores que compreenderam os seus princípios. Existem vários cursos de introdução e tutoriais disponíveis.
O MongoDB é um software noSQL de código aberto.
Por último, oexemplo da companhia de seguros MetLife é edificante. Em apenas três meses, conseguiram com o NoSQL o que andavam a tentar fazer há anos, sem sucesso. Várias universidades e campus universitários estão na mesma situação. Há uma solução.
Ilustração: pisotskii - ShutterStock
Referências
NoSQL: 5 minutos para entender - Amine Chaghal - Neoxia
http://blog.neoxia.com/nosql-5-minutes-pour-comprendre/
10 minutos para entender...NoSQL - Masclet
http://davidmasclet.gisgraphy.com/post/2010/06/09/10-minutes-pour-comprendre...NoSQL
ACID - Wikipedia
http://en.wikipedia.org/wiki/ACID
Base de dados relacional - Wikipedia
http://fr.wikipedia.org/wiki/Base_de_donn%C3%A9es_relationnelle
CAP - Wikipédia
http://fr.wikipedia.org/wiki/Th%C3%A9or%C3%A8me_CAP
Tutoriais NoSQL
http://nosql.developpez.com/cours/
Mongo DB - Base de dados NoSQL
http://www.mongodb.org/
MetLife usa NoSQL para inovar no atendimento ao cliente - Doug Henschen - InformationWeek
http://www.informationweek.com/software/information-management/metlife-uses-nosql-for-customer-service-breakthrough/d/d-id/1109919?