Couchbase and SQLite cry UnQL for unstructured queries

NoSQL has never really been about SQL. As we pointed out in our NoSQL, NewSQL and Beyond report, “[one] of the NoSQL idiosyncrasies is that in most cases SQL itself is not the ‘problem’ being avoided. Indeed, a better term might be ‘NoSchema,’ given that a more common quality is a rejection of fixed table schema and join operations”.

Nevertheless the NoSQL term has stuck, and also inspired NewSQL (which, as critics have pointed out, is not really about SQL either), while a number of NoSQL providers started to look at how they could actually add support for SQL queries to their respective databases.

The recently-released version 0.8 of Apache Cassandra features the first implementation of Cassandra Query Language (CQL), an SQL-like query language, for Cassandra.

Meanwhile Couchbase and SQLite have teamed up to create UnQL (Unstructured Query Language), a new data query language for unstructured data. Pronounced ‘uncle’, UnQL is designed to remove the burden of query planning, optimization and execution from NoSQL developers by providing an adaptation of the SQL structured query language for unstructured data models.

As can be seen by an example of the draft syntax, UnQL is designed to be familiar to SQL developers, while also enabling querying over complex and unstructured storage models, such as document models.

UnQL was created by Couchbase CTO and CouchDB creator Damien Katz, alongwith SQLite creator and founder Richard Hipp and both Couchbase and SQLite have committed to implementing UnQL in future versions of their database products.

UnQL is not designed to be specific to select database products, however, and the specification is being released to the public domain at www.unqlspec.org. There is also the potential that open source parsers and query planning implementations will be created to foster adoption.

One of the principle drivers behind UnQL’s development is that a common query language is necessary to drive NoSQL adoption in the same way SQL drove adoption in the relational database market.

It remains to be seen whether UnQL will be picked up by other projects, although the release to the public domain should give confidence that this is not an attempt to force the industry to adopt a ‘standard’ from a single vendor.