CouchDB and SQLite creators introduce UnQL, a NoSQL query language
The developers of the free database systems CouchDB and SQLite have jointly submitted the specification for a new query language, UnQL (pronounced "Uncle"), which is similar to SQL in many ways but is designed for working with NoSQL document databases.
CouchDB creator Damien Katz and SQLite creator Richard Hipp have been working on UnQL to create a higher level query language for NoSQL document databases. Katz says the specification "stems from our belief that a common query language is necessary to drive NoSQL adoption in the same way SQL drove adoption in the relational database market". Hipp notes that "Unql builds upon our experience with SQL, supplementing that language with syntax and concepts appropriate for the unstructured, self-describing data formats of post-modern applications".
The language includes SELECT
, INSERT
, UPDATE
and DELETE
commands, but unlike SQL, they do not work on tables but on "collections" of unordered sets of documents. In UnQL, a document is an object that can be described in JSON (JavaScript Object Notation). Single integer numbers, floating point numbers and strings can also be documents.
Unlike traditional relational databases, a collection may contain differently structured documents. The SQL commands CREATE
and DROP TABLE
become CREATE
and DROP COLLECTION
in UnQL. The WHERE
clause of queries now refers to a document's properties which map to the fields of the stored object. Documentation for the specification is currently sparse though. The web site currently lacks example queries though there are syntax trees; Katz promises an update to the site with more details and examples "soon". The specification will be placed in the public domain when complete.
(djwm)