题
我最近遇到 http://www.fossil-scm.org/index.html/doc/tip/www/theory1.wiki 由 D.Richard Hipp,负责 SQLite 的开发人员。
我在想,Fossil 是唯一使用 SQL 的 NoSQL 数据库吗?
其他人是否使用 SQL 作为“高级脚本语言”?
解决方案
从文章,这听起来像化石不是数据库任何超过GIT中是一个数据库。是的,它是一个包含数据,是的,它是由数据库支持的事情,但它从数据库本身似乎很远。所以你的问题的第一部分主要依赖于一个错误的假设。有一个名为友好数据库,使用MySQL存储方案较少的车型,但它似乎是一个尴尬的绷带之类的解决方案的最好的。
我当然不熟悉所有的NoSQL的选择那里,但是,据我所知,没有一个良好的,虽然-中的一些使用SQL什么。 MongoDB的和CouchDB的,这两个我最熟悉的,都使用JavaScript作为自己的查询界面的一部分,尽管非常不同的方式。 MongoDB的具有查询更多像你从一个关系数据库会发生什么:你可以写一个任意查询匹配某种属性集合中的所有文档。然而,与关系数据库中,有一个连接没有这样的东西(你永远只能得到不同文档的列表回来,不是复合文档),你可以写入任意Javascript代码来选择文件。 CouchDB的,而另一方面,不允许任意查询。相反,创建使用图/减少写入Javascript函数,然后从一个开始键和结束键查询那些视图的视图(其基本上简单的键 - 值存储)。
在这两种情况下,信息的类型被发送到服务器,以执行该查询不是非常适合的问题的类型SQL擅长解决。的折衷,以SQL如此高级别(使用的纸张的作者的逻辑)是,它是仅适合于非常窄的一系列问题。