老流鼻血是什么原因| 青霉素过敏不能吃什么药| mc是什么| 八月二十是什么星座| 口角是什么意思| 过什么意思| gbs筛查是什么| 一九九八年属什么生肖| 长期胃胀是什么原因| 水落石出是什么生肖| 55岁属什么| 秋葵有什么好处| 头七是什么意思| 经常肚子痛什么原因| 咳嗽能吃什么水果最好| doms是什么意思| 手指头肿胀是什么原因| 手腕疼痛是什么原因| 凤仙花长什么样| 吃什么能排湿气| 大暑是什么时间| 利好是什么意思| 书房字画写什么内容好| parzin眼镜是什么牌子| creative是什么意思| 自求多福什么意思| 女人梦见老鼠什么征兆| 北方五行属什么| 7月11是什么星座| 江西什么最出名| 肠道功能紊乱吃什么药| 七月二号是什么日子| 亲亲抱抱举高高什么意思| 尿粘液丝高是什么原因| 6月12日是什么星座| 鼻窦炎有什么症状表现| cn什么意思| 靛青色是什么颜色| 雌堕什么意思| 坐车头疼是什么原因| 血糖仪什么牌子的好用又准确| 荔枝有什么作用| 摩羯和什么星座最配| 什么孕妇容易怀脑瘫儿| 食字五行属什么| 疳积是什么病| 甲状腺腺体回声欠均匀是什么意思| 湿气重吃什么中药好| 阳萎是什么| 去海边玩需要带什么| 典型是什么意思| 分分钟都妙不可言是什么歌| 一醉方休什么意思| 心脏在乳房的什么位置| 来姨妈喝什么汤好| 支原体培养及药敏是检查什么| 大口什么字| 通五行属什么| 上市公司是什么意思| 右下腹疼痛什么原因| 桓是什么意思| 什么叫服务贸易| 什么牌子的电动车好| 牙刷什么样的刷毛最好| 半边脸发麻是什么原因| 脚痒用什么药好| 腿麻木是什么原因引起的| 神经性头疼吃什么药效果好| 求欢是什么意思| 什么是忧郁症| aqi是什么| 什么是二氧化碳| 皮蛋为什么能治口腔溃疡| 粉瘤不切除有什么危害| 黄金变黑是什么原因| 脚凉吃什么药| 楚国是现在的什么地方| 为感是什么意思| 蓝色牛仔裤配什么颜色短袖| 属鸡的跟什么属相最配| 一个厂一个人念什么| r标是什么意思| 优甲乐过量有什么症状| 眉眼是什么意思| 梦见脱发是什么征兆| 白细胞和血小板高是什么原因| 什么是提肛运动| 10月20日什么星座| 辛五行属什么| 巧克力和什么不能一起吃| 95年属什么生肖婚配表| 禅修是什么意思| kiko是什么意思| 驴胶补血颗粒什么时候喝最好| 石女是什么意思| 梦到吵架是什么意思| 肝风内动是什么原因造成的| 什么叫刑事拘留| 2020是什么年| 一个火一个旦读什么字| 文理分科什么时候开始| 高烧拉肚子是什么原因| 什么样的轮子只转不走| 痛风可以喝什么饮料| ctc是什么意思| 双侧肋膈角锐利是什么意思| 属狗的本命佛是什么佛| 焦俊艳和焦恩俊是什么关系| 妇科检查清洁度二度是什么意思| 尿酸高是什么原因| 梅毒检查什么项目| 客厅挂钟放在什么位置好| 附耳是什么意思| 护肝养肝吃什么好| 威士忌兑什么好喝| 空调外机很响是什么原因| 三七粉做面膜有什么功效| 大姨妈吃什么水果最好| 北京是什么省| 相得益彰意思是什么| 升白细胞的针剂叫什么| 乳糖不耐受是什么原因导致的| 痛风吃什么药最有效| 狂犬病是什么| 吃什么对心脏好| 一个日一个安念什么字| 智齿拔了有什么影响| petct是什么| 蛇怕什么| 千人千面是什么意思| 煤气罐为什么会爆炸| 流沙是什么意思| 猝死是什么原因造成的| 松鼠吃什么| 观字五行属什么| 扦插是什么意思| 尿频尿急吃什么药效果最好| 居高临下是什么意思| 初级中学是什么意思| 什么叫情商高| polo是什么意思| 梦到一个人意味着什么| 血管夹层是什么病| 自言自语是什么病| 九价是什么| 龙配什么生肖最好| 海燕是什么鸟| 菊花有什么功效| 95年属什么| coupon什么意思| 阴部潮湿是什么原因| 梦见楼塌了是什么意思| 切片是什么| 骨质疏松是什么原因引起的| 白细胞高吃什么降得快| 毛很长的狗是什么品种| 罗汉果泡水有什么好处| 什么生肖不能养龟| 牙龈发炎用什么药| 鼻窦炎有什么症状| 为什么午觉睡醒后头疼| 美女如云什么意思| 小拇指旁边的手指叫什么| 槐花什么时候开花| 检查阳性是什么意思| 石斛有什么功效| 肌酐是什么病| 吃什么瘦肚子最快| 王晶老婆叫什么名字| 忌诸事不宜是什么意思| 嘻哈是什么意思| 牙根痛吃什么药| 利益最大化是什么意思| 什么狗聪明听话又好养| 经常放屁吃什么药| 永浴爱河是什么意思| rh因子阳性是什么意思| navy是什么颜色| 双字五行属什么| 玻璃酸钠是什么| 有小肚子是什么原因| 繁花似锦是什么意思| 办独生子女证需要什么材料| 一直打喷嚏是什么原因| 打点是什么意思| aj是什么牌子| 蛋蛋疼是什么原因| 屁股疼挂什么科室| 搁浅了是什么意思| 吃什么药去体内湿气| 绿豆和什么食物相克| 小孩做ct对身体有什么影响| 在减肥期间吃什么最好| 宫腔粘连有什么危害| 痔疮吃什么水果| 迄今为止什么意思| 做爱时间短吃什么药好| 什么叫意象| 咳嗽不能吃什么| 今年是什么属相| 受是什么意思| 下巴两边长痘痘是什么原因| 脸上不停的长痘痘是什么原因| 点完痣要注意什么| 艾滋病会有什么症状| 天葵是什么| 理想血压是什么意思| 雾化对小孩有什么影响或者副作用| 拘留所和看守所有什么区别| 醋泡黑豆有什么功效| 二月初十是什么星座| 慌张的反义词是什么| 红疮狼斑是什么引起的| 蛋白烫发是什么意思| 糖耐是什么| 热伤风吃什么| 浜是什么意思| 肺部有问题一般会出现什么症状| 美元长什么样子图片| 做梦梦见别人怀孕是什么意思| 佳偶天成是什么意思| 声色什么| 椴树是什么树| 什么是法定节假日| dollars是什么意思| 农历六月六是什么节日| 有里面没有两横是什么字| 尿管型偏高是什么原因| 除草剂中毒有什么症状| 5月6日是什么星座| 濒危是什么意思| 一感冒就咳嗽是什么原因| 膀胱在什么位置图片| 三陪是什么| 大腿后侧肌肉叫什么| 煎牛排用什么油好| 脾肾阴虚有什么症状| 看是什么意思| 红细胞数目偏高是什么意思| 柠檬什么季节成熟| 层峦叠翠的意思是什么| 年柱将星是什么意思| 儿童办理身份证需要什么材料| 血小板太高会导致什么| 榴莲为什么那么臭| 隐匿是什么意思| 给老人过生日送什么礼物好| pearl什么意思| 打羽毛球有什么好处| fredperry是什么牌子| 关元穴在什么位置| 神经痛吃什么药| 金匮是什么意思| 经常扁桃体发炎是什么原因| 大惊小怪是什么生肖| 学信网上的报告编号是什么| 心动过速吃什么药最好| 9.15是什么星座| 芙蓉花又叫什么花| 十三幺是什么意思| pass掉是什么意思| 腰部疼痛挂什么科| 发泡胶用什么能洗掉| 十月初三是什么星座| 百度
BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Interview: Richard Hipp on UnQL, a New Query Language for Document Databases

百度 好在最后,球员还是减少了错误。

This item in japanese

 UnQL (Unstructured Query Language) is meant to be an open query language for document databases. It is open because its initiators, Richard Hipp, creator of SQLite, and Damien Katz, creator of CouchDB, want to avoid any vendor lock-in and UnQL development to be driven by community. Unlike relational databases consisting of fixed tables, an UnQL document database contains collections of documents expressed in JSON. But UnQL is built to be a functional superset of SQL, seeing tables as documents with a flat structure and fixed fields. Thus, UnQL can be used to query a RDBMS, but it cannot be used to create/delete tables or change its schema.

Following is an interview on UnQL with Richard Hipp who wanted to make sure we know UnQL is a team effort and he is not the sole decision maker. One of the interesting details coming out from the interview is that he intends to create UnQLite, a “small embeddable document-oriented database in the same spirit as SQLite.”

InfoQ: Why UnQL? What problem are you trying to solve?

RH: UnQL is a database query language, akin to SQL, but designed for modern document-oriented databases.

SQL assumes a rigidly defined data schema. Each table has a fixed number of columns and each column has a defined datatype.

UnQL assumes a more flexible approach to storing data. Instead of "tables", UnQL uses "collections". (The concept is the same, but the name is changed since "tables" are square whereas "collections" can be of varying shape.) Each collection consists of zero or more documents represented as JSON strings. A document in UnQL corresponds to a row in SQL. The big difference is that with UnQL, the documents (rows) do not have a fixed number of columns, the columns (now called "fields") do not have a fixed datatype, and the fields can be nested - the value of a field can be another document for example.

There are several document-oriented databases available today and they are growing in popularity. But all existing document-oriented databases have their own proprietary and incompatible query methods, meaning that it is hard to move an application from one database engine to another. And the query methods that are available tend to be very low-level, meaning that a lot of the query logic that used to be handled automatically by the database engine must now be manually coded into the application by the programmer.

UnQL aims to remedy this situation by providing a common database query language that can be used to access document-oriented databases from multiple vendors. This helps developers write portable applications and avoid database-vendor lock-in. UnQL also strives to provide a very powerful and rich query language that transfers much of the complex algorithm-picking logic back to the database engine, saving lots of code in the application, and lots of developer time and frustration.

The data manipulation and query language of UnQL is a functional superset of SQL, so UnQL can, in theory, also be used to access legacy SQL database engines. From the point of view of UnQL, a legacy SQL database looks like a document-oriented database where every document has the exact same flat structure using exactly the same datatypes for each field. (Note that the Data Definition Language (DDL) of SQL is not replicated in UnQL and so UnQL is unable to do actions like CREATE TABLE or DROP INDEX on a legacy SQL database. UnQL can insert, delete, update, or query data in a legacy database, subject to the SQL formatting constraints, but it cannot change the schema of a legacy SQL database.)

InfoQ: Do you want to create a language fit for all NoSQL data stores, similar to what SQL is to RDBMSes?

RH: First off, I prefer the term "post-modern database" over "NoSQL". Post-modern databases are designed to work around the CAP theorem. Traditional relational databases cling to consistency (the C in CAP) and as a result have to sacrifice either Availability or tolerance of Partition. Post-modern databases are willing to give up consistency in order to have both Availability and Partition at the same time. But by giving up consistency, that means that there is an absence of objective truth with a post-modern database, and the absence of objective truth is the defining feature of post-modernism - hence the name. To think of it another way, when you ask a question of a post-modern database, you don't get back a fact, you get back an opinion.

The previous paragraph is not a slur against post-modern databases. Post-modern databases are very powerful and definitely have there place. Many people believe (myself included) that post-modern databases will eventual come to dominate the database ecosystem. But at the same time, it is important to understand their limitations. Post-modern databases transfer the burden of maintaining a consistent view of the world from the database engine into the client application. This makes it much easier for the database engine to scale out, but it also makes more work for the application. Developers need to approach the use of post-modern databases will full and sober knowledge of the tradeoffs.

To answer your question: Yes, UnQL is intended to be for post-modern document-oriented databases what SQL is to relational databases. UnQL intends to be a pragmatic universal access language that all document-oriented database speak.

InfoQ: Have you used UnQL with CouchDB? If not, do you have plans to do so? (I've seen D. Katz involved in the project.)

RH: Damien Katz intends to provide an UnQL interface to CouchDB in the near future, yes. Other plans are in the works to provide UnQL interfaces to other database engines. I hope to provide an UnQL interface to legacy SQLite databases, for example. I also hope to make available "UnQLite" - a small embeddable document-oriented database in the same spirit as SQLite, but with a new file format.

InfoQ: I understand that UnQL is in early phases. What should we expect from it in the future? Where do you want to take it?

RH: Right now, we have only a rough prototype. We are continuing to refine the language based on input from perspective users and taking into account the lessons we are learning while implementing the prototype. We want to have one or more actual, usable database engines available and ready for development use during this calendar year, with deployment-ready implementations available next year.

At the end of our interview, Hipp expressed his desire to see the community involved in this project.

RH: We really, really want community input on this effort. Volunteers to help with the language design, suggest improvements, and help with the prototype implementation(s) will be greatly appreciated. Everything is open-source.

UnQL is not a power play by a few companies try to force their views on the world. UnQL is intended to be a pragmatic community-driven effort to provide cross-platform database functionality and make life easier for application developers. Our goal is to end the vendor lock-in problem that we believe is holding back development and acceptance of post-modern document-oriented databases.

Won't you please join us in helping to make UnQL a success?

UnQL is currently a prototype. Its website contains more information on the syntax and a link to a repository containing the source code and some examples.

Rate this Article

Adoption
Style

BT
胰腺是什么 过敏性鼻炎用什么药 袋鼠吃什么 nt什么时候做 黄加蓝色是什么颜色
sars是什么意思 250什么意思 梦见挖野菜是什么意思 中国的八大菜系是什么 吃什么降尿酸最快
kenwood是什么牌子 多喝白开水有什么好处 解脲支原体阳性是什么意思 三伏贴能治什么病 吃什么药能冲开宫腔粘连
腹泻吃什么水果 single是什么意思 o型血rh阳性是什么意思 五十年婚姻是什么婚 缸垫呲了什么症状
血糖高去医院挂什么科hcv7jop9ns5r.cn 骨折吃什么水果好hcv9jop0ns4r.cn 葛根粉有什么功效hcv7jop9ns9r.cn 筋膜刀是什么hcv9jop1ns7r.cn 为什么今年有两个6月hcv8jop0ns8r.cn
帕斯是什么意思hcv8jop2ns7r.cn 鞑靼是什么意思hcv7jop6ns3r.cn 榄仁叶是什么树的叶子hcv8jop7ns3r.cn 初级会计什么时候拿证hcv8jop4ns0r.cn 大便干是什么原因hcv8jop3ns6r.cn
挺拔的意思是什么hcv8jop0ns1r.cn 舅父是什么意思hcv9jop4ns5r.cn 口嗨是什么意思hcv8jop5ns6r.cn 吃什么可以补阳气hcv9jop3ns1r.cn 油价什么时候下调liaochangning.com
为什么低血压hcv8jop5ns0r.cn 心肺气虚吃什么中成药hcv9jop6ns2r.cn omega什么意思hcv8jop9ns8r.cn 月子里可以吃什么蔬菜0297y7.com 黑茶金花是什么菌bfb118.com
百度