Come MongoDB, Cassandra e altre soluzioni non relazionali attualmente disponibili, anche il progetto Couchbase è riuscito ad affermarsi tra i Database Manager orientati ai documenti oggi più diffusi; ma il recente rilascio di Couchbase 4.0 costituisce probabilmente un punto di svolta per quanto riguarda l'approccio NoSQL alla gestione dei dati, sottolineando come quest'ultimo potrebbe non rappresentare un'alternativa completa a SQL.
Nello specifico, l'ultima versione dell'applicazione presenta il supporto per l'utilizzo di N1QL, un linguaggio dichiarativo per le query che in pratica ha il compito di estendere la sintassi SQL tramite comandi con i quali sfruttare il formato d'interscambio JSON; la sintassi di quest'ultimo permette l'annidamento dei dati all'interno di altri dati, caratteristica che consentirà agli sviluppatori di prelevare documenti da manipolare come dati in tabella.
E' comunque bene chiarire che N1QL non potrebbe essere considerato una semplice variante di SQL, i data model di riferimento sono infatti differenti; se in un database SQL le informazioni sono comunque vincolate ad una struttura tabellare uniforme, in N1QL i dati sono invece liberi dal punto di vista strutturale e vengono raccolti sotto forma di collections (keyspaces). Esiste però un buon livello di interoperabilità tra SQL e N1QL che dovrebbe permettere di superare le incompatibilità tra il primo e l'impostazione NoSQL.
Il fatto che N1QL permetta di formulare interrogazioni non significa quindi che possa essere interpretato come una riproposizione di SQL, tra l'altro si tratterebbe di un linguaggio per alcuni versi ancora immaturo, come dimostrato dal mancato supporto per le transactions. Detto questo N1QL permette però di effettuare JOIN, fattore che potrebbe rendere Couchbase 4.0 una soluzione preferibile a MongoDB, Cassandra e le loro limitate interfacce per SQL.
Seguendo un approccio che potrebbe ricordare quello già adottato per Spark SQL, la nuova release di Couchbase vorrebbe quindi fornire una nuova metodologia nativa per l'accesso ai dati, questo non per rifiutare i presupposti di NoSQL ma per via della constatazione che, molto spesso, durante il lavoro di sviluppo una query SQL si dimostrerebbe più che sufficiente per ottenere il risultato desiderato.
Via Couchbase