我最近遇到了负责 SQLite 的开发人员 D. Richard Hipp 的http://www.fossil-scm.org/index.html/doc/tip/www/theory1.wiki 。
我在想,Fossil 是唯一使用 SQL 的 NoSQL 数据库吗?
其他人是否使用 SQL 作为“高级脚本语言”?
我最近遇到了负责 SQLite 的开发人员 D. Richard Hipp 的http://www.fossil-scm.org/index.html/doc/tip/www/theory1.wiki 。
我在想,Fossil 是唯一使用 SQL 的 NoSQL 数据库吗?
其他人是否使用 SQL 作为“高级脚本语言”?
从这篇文章中,听起来 Fossil 不是数据库,就像 git 不是数据库一样。是的,它是一个包含数据的东西,是的,它由数据库支持,但它似乎与数据库本身相去甚远。所以你问题的第一部分基本上依赖于一个错误的假设。有一个名为Friendly的数据库,它使用 MySQL 来存储无模式模型,但它似乎充其量只是一种笨拙的创可贴式解决方案。
我当然不熟悉所有的 NoSQL 选项,但是,据我所知,没有一个很好的选项使用 SQL 做任何事情。我最熟悉的两个 MongoDB 和 CouchDB 都使用 Javascript 作为其查询界面的一部分,尽管方式非常不同。MongoDB 的查询更像您对关系数据库的期望:您可以为匹配特定属性集的所有文档编写任意查询。然而,与关系数据库不同的是,没有联接之类的东西(您只会得到不同文档的列表,而不是复合文档),您可以编写任意 Javascript 代码来选择文档。另一方面,CouchDB 不允许任意查询。反而,
在这两种情况下,传输到服务器以执行查询的信息类型都不太适合 SQL 擅长解决的问题类型。SQL 如此高级(使用本文作者的逻辑)的权衡是它只适用于非常狭窄的问题集。