CouchDB和SQLite聯(lián)合推出NoSQL查詢語言
來自 h-online 的消息:CouchDB 創(chuàng)始人 Damien Katz 和 SQLite 的創(chuàng)始人 Richard Hipp 聯(lián)合發(fā)布了一個名為 UnQL (UNstructured Query Language,發(fā)音 Uncle) 的非結構化查詢語言,主要用于NoSQL的文檔數(shù)據(jù)庫。UnQL 是一個通用的查詢語言,其目的是為目前各種各樣的 NoSQL 服務器提供一個統(tǒng)一的數(shù)據(jù)查詢語言。
Katz表示,他們堅信為了推廣NoSQL,需要一種通用的查詢語言,類似當年推廣關系型數(shù)據(jù)庫應運而生的SQL語言。Hipp稱,UnQL是建立在他們使用SQL的經(jīng)驗之上,增加了新語法和概念,切合后現(xiàn)代應用中的非結構化和自我描述數(shù)據(jù)格式。
在很多方面都很像SQL,也有SELECT, INSERT, UPDATE和DELETE等命令,但是與SQL主要用來處理關系數(shù)據(jù)庫中的表不同,UnQL處理的對象是文檔數(shù)據(jù)庫中的無序非結構化文檔的集合(稱為Collection)。在UnQL中,文檔就是可以用JSON描述的數(shù)據(jù)單位,但無需是JSON對象,也可以是整數(shù)、浮點數(shù)、字符串。與傳統(tǒng)關系型數(shù)據(jù)庫不同,Collection可以保護多個結構不同的文檔。UnQL中與CREATE TABLE和DROP TABLE命令對應的是CREATE COLLECTION和DROP COLLECTION。查詢的WHERE子句指向的是與所存對象的字段對應的文檔屬性。
歷史上,SQL語言的出現(xiàn)為關系型數(shù)據(jù)庫得到廣泛應用立下了汗馬功勞。Katz相信統(tǒng)一的NoSQL查詢語言也會產(chǎn)生類似的作用。而Hipp則表示,UnQL將基于他們豐富的SQL經(jīng)驗,在SQL之外補充適于后現(xiàn)代應用軟件中非結構化、自描述數(shù)據(jù)格式的語法和概念。
目前語言標準的草稿已經(jīng)可以在網(wǎng)站unqlspec.org上看到,但很不完整,只有語法樹和簡單的語法說明,實例和代碼都沒有。
【編輯推薦】