Hoping to unify the growing but disparate market of NoSQL databases, the creators behind CouchDB and SQLite have introduced a new query language for the format, called UnQL (Unstructured Data Query Language).
"The impetus for UnQL is to create some form of commonality among non-SQL databases," said James Phillips, a co-founder and vice president of products for Couchbase, which oversees the document-oriented CouchDB database.
[ Managing backup infrastructure right is not so simple. InfoWorld's expert contributors show you how to get it right in this "Backup Infrastructure Deep Dive" PDF guide. ]
UnQL, pronounced "Uncle," could be considered a "superset" of the SQL syntax, Phillips said. It can parse all statements formulated in the SQL language and supports a number of new operators and expressions as well.
If adopted by other vendors, UnQL could do for the NoSQL market what SQL did for the relational database market 40 years ago, namely provide a portable common interface to unify an otherwise fragmented market of database offerings, Phillips said.
"UnQL was built to be a very portable, multi-vendor implementable language standard," Phillips said. "So certainly MongoDB, Cassandra, and any other vendors supporting unstructured data in distributed databases will find a clear path of implementation."
The use of NoSQL databases has grown dramatically in the past few years as consumer-focused Web service providers and other purveyors of large datasets sought to distribute their data across multiple servers, a task that requires considerable effort to manage using traditional SQL-based databases.
While NoSQL databases like Cassandra and CouchDB offer an alternative way to rapidly store and access data across multiple servers, each database offers its own unique interface, which limits the ability for organizations to use multiple databases interchangeably or to switch among databases while maintaining the same skillsets and query code.
All SQL-based relational databases more or less follow a standard format, one that allows for both portability and ensures predictable query results. Data is organized into columns and rows, which were themselves organized into tables defined by a SQL schema.
In contrast, NoSQL databases typically do not have pre-defined schemas. In order to be queried, all the values in a NoSQL deployment must be self-describing, meaning each data value must be accompanied by a name that categorizes that data. "The schema rides along with the data itself," Phillips said.
UnQL was designed to offer a single interface for a wide range of underlying database architectures, both SQL and NoSQL in nature.
"The syntax diagram to UnQL will look very, very familiar to SQL developers," Phillips said. "There are additional statements and operators, and the expression statements one can create can be extended to dig into complex documents." The developers have promised to post the complete syntax on the UnQL site.