来自 h-online 的消息:CouchDB 创始人 Damien Katz 和 SQLite 的创始人 Richard Hipp 联合发布了一个名为 UnQL (UNstructured Query Language,发音 Uncle) 的非结构化查询语言,主要用于NoSQL的文档数据库。UnQL 是一个通用的查询语言,其目的是为目前各种各样的 NoSQL 服务器提供一个统一的数据查询语言。
Katz表示,他们坚信为了推广NoSQL,需要一种通用的查询语言,类似当年推广关系型数据库应运而生的SQL语言。Hipp称,UnQL是建立在他们使用SQL的经验之上,增加了新语法和概念,切合后现代应用中的非结构化和自我描述数据格式。
在很多方面都很像SQL,也有SELECT, INSERT, UPDATE和DELETE等命令,但是与SQL主要用来处理关系数据库中的表不同,UnQL处理的对象是文档数据库中的无序非结构化文档的集合(称为Collection)。在UnQL中,文档就是可以用JSON描述的数据单位,但无需是JSON对象,也可以是整数、浮点数、字符串。与传统关系型数据库不同,Collection可以保护多个结构不同的文档。UnQL中与CREATE TABLE和DROP TABLE命令对应的是CREATE COLLECTION和DROP COLLECTION。查询的WHERE子句指向的是与所存对象的字段对应的文档属性。
历史上,SQL语言的出现为关系型数据库得到广泛应用立下了汗马功劳。Katz相信统一的NoSQL查询语言也会产生类似的作用。而Hipp则表示,UnQL将基于他们丰富的SQL经验,在SQL之外补充适于后现代应用软件中非结构化、自描述数据格式的语法和概念。
目前语言标准的草稿已经可以在网站unqlspec.org上看到,但很不完整,只有语法树和简单的语法说明,实例和代码都没有。
【编辑推荐】