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