Antes do modelo relacional, os bancos de dados funcionavam como grandes listas vinculadas; seja hierárquico ou ponto a ponto, a recuperação de dados era uma questão de percorrer os links até que o registro certo aparecesse.
O SQL e o modelo relacional mudaram isso. Com o advento deles, foi possível descrever os dados necessários e fazer com que o DBMS fizesse o trabalho de encontrá-los. É importante ressaltar que tanto o modelo de dados quanto a natureza declarativa do SQL significavam que a consulta era aberta, e não algo que tinha a ser definido em pedra no momento do projeto.
Com o movimento NoSQL, os criadores de sistemas de banco de dados tomaram decisões deliberadas de design que, em geral, favoreceram a escala, o tempo de atividade e a redundância em detrimento da capacidade de consulta. Durante algum tempo, parecia que havia uma escolha clara entre capacidade de consulta e escalabilidade.
O lançamento de hoje do Couchbase 4.0, com N1QLsignifica que podemos ter os dois. Não só continuamos a ter a escala e a velocidade de um banco de dados de documentos em cluster com cache embutido, como também, pela primeira vez, temos uma linguagem de consulta declarativa de aplicação geral para esses documentos JSON.
É verdade que existem outras linguagens de consulta JSON, mas elas se limitam a um sistema de banco de dados específico ou não foram implementadas em um banco de dados pronto para produção.
A beleza do N1QL é que todos nós já o conhecemos: ele'é apenas SQL com alguns acréscimos para lidar com dados semiestruturados e aninhados. Ele também é apoiado por pesquisa acadêmica e já em uso na produção. Portanto, há muito pouco a aprender e você mantém toda a capacidade de consulta ad-hoc do SQL, inclusive JOINs!
Faça o download do Couchbase Server 4.0 e experimente você mesmo.