«Развитие UnQL позволит создать условия для унификации СУБД NoSQL», — отметил вице-президент компании Couchbase Джеймс Филлипс, курирующий разработку документо-ориентированной СУБД CouchDB.
Язык UnQL (произносится «анкл») можно рассматривать в качестве «надмножества» синтаксиса SQL. В этом случае будет реализован анализ всех операторов языка SQL и обеспечена поддержка ряда новых операторов и выражений.
Если язык UnQL получит признание других разработчиков, он может сыграть для рынка NoSQL примерно ту же роль, какую четыре десятилетия назад сыграл для рынка реляционных баз данных язык SQL, то есть стать общим интерфейсом, который объединит фрагментированный рынок СУБД нового поколения.
«UnQL создавался как переносимый стандарт языка, поддерживаемого множеством разработчиков, — подчеркнул Филлипс. — MongoDB, Cassandra и все остальные поставщики, поддерживающие неструктурированные данные в распределенных базах данных, безусловно, найдут способ реализации этого стандарта в своих программных продуктах».
В последние несколько лет популярность СУБД категории NoSQL заметно выросла. Разработчики веб-сервисов, ориентированных на конечного потребителя, и поставщики больших наборов данных заняты поиском возможностей распределения своих данных между множеством серверов. Управление базами данных на основе традиционных механизмов SQL в этом случае требует очень серьезных усилий.
СУБД категории NoSQL (например, Cassandra и CouchDB) предлагают альтернативный способ быстрого распределения данных между множеством серверов и организации доступа к ним. Но при этом каждая СУБД имеет свой собственный уникальный интерфейс, что ограничивает возможности совместного использования нескольких СУБД или переключения между ними.
Разработчики всех систем управления реляционными базами данных в большей или меньшей степени придерживаются стандартного формата, который обеспечивает совместимость и гарантирует получение предсказуемых результатов при выполнении запросов. Данные упорядочены по строкам и колонкам и объединены в таблицы, определенные в соответствии со схемой SQL.
В отличие от них базы данных NoSQL не имеют строго определенных схем построения. Чтобы сформировать запрос, все значения в базе данных NoSQL необходимо предварительно описать. Каждое значение должно сопровождаться именем, которое относит данные к определенной категории. «Таким образом, схема определяется самими данными», — пояснил Филлипс.
Язык UnQL создавался, для того чтобы обеспечить единый интерфейс для широкого диапазона архитектур баз данных, имеющих природу как SQL, так и NoSQL.
«Синтаксическая диаграмма UnQL во многих отношениях знакома разработчикам SQL, — подчеркнул Филлипс. — Здесь поддерживаются дополнительные утверждения, операторы и выражения для описания сложных документов». Разработчики пообещали опубликовать полное описание синтаксиса на сайте UnQL.
У истоков создания UnQL стояли главный идеолог CouchDB Дамьен Катц и изобретатель SQLite Ричард Хипп. Затем их инициативу подхватили исследователи из Microsoft, опубликовавшие результаты своих работ в журнале Communications of the ACM. В Microsoft последовательно поддерживают разработку UnQL.
Язык UnQL, как и SQL, построен на основе реляционной алгебры. Это гарантирует получение предсказуемых и повторяемых результатов. «Исследователи из Microsoft доказали возможность построения ковариантных связей между отношениями SQL и языком типа UnQL», — отметил Филлипс.
Придерживаясь модели, используемой в SQLite, спецификации UnQL были перенесены в публичную область без каких-либо связанных с этим лицензий. «Проект открыт для всех, кто хотел бы принять в нем участие», — подчеркнул Филлипс.
Пока сопровождением проекта занимаются CouchDB, SQLite и Microsoft, но к участию в нем приглашаются все заинтересованные стороны. «Мы не пытаемся выстраивать нечто тяжеловесное», — заявил Филлипс. Создатели CouchDB и SQLite обещают, что в перспективе их продукты будут поддерживать запросы UnQL.
Следует отметить, что нынешняя версия UnQL не имеет отношения к языку запросов для обработки неструктурированных данных, который был предложен исследователями из Пенсильванского университета более десяти лет тому назад.