作为 RDBMS 替代品的文档数据库

Document database as RDBMS replacement

我计划使用 NoSQL 作为我所有应用程序数据的主数据库,主要是因为要记住 "scalability"、"cloud"、"big data" 等术语。我不关心 "schema-less" 因为我在传统 RDBMS 中使用 ORM 框架。

几乎每个应用程序都使用关系,无论是社交网络、电子商务还是其他东西,总会有关系。

所以我查找了符合条件的不同类型的 NoSQL 数据库。

现在的问题是,像MongoDB这样的东西,Couchbase 可以用在有很多关系(几乎每个应用程序)的场景中,作为 RDBMS 的完全替代品吗?

在阅读了几天关于 NoSQL 和大型站点中的各种用例之后,我得出结论,这些数据库几乎从未用作 primary/main 数据库,并且最常用于连接与 RDBMS 一起做一些特定的事情。

考虑到该术语的歧义,比较 NoSQL 和 SQL 数据库是否有效?

SQL 个数据库没有歧义,而没有 SQL 个数据库有歧义!

我找到的好文章!:https://www.marklogic.com/blog/nosql-without-multi-document-multi-statement-transactions/

The promise of NoSQL is speed; but like a car without brakes, not very safe unless it allows multi-document transactions.

--

if you want to be taken seriously as a database, you need to support multiple statement transactions.

您可以使用 NoSQL 作为主数据库,但这取决于您希望对数据库执行的操作。例如,我们使用 MongoDB 作为主数据库,但这只是因为我们永远不必创建需要复杂隔离的复杂事务。

虽然您可以在大多数 SQL 数据库中执行诸如 multi-statement 单个事务之类的操作,但在 MongoDB 中以及可能在许多其他 NoSQL 中很难这样做。首先,MongoDB 根本不支持多语句单事务,如果您真的需要模拟它,则必须创建一个单独的集合来处理 'control' 事务。 (就像查看每个事务并修改其他集合中的目标一样,因为原子性和隔离性保留在单个文档级别中)。这是非常容易被忽视的事情,尤其是在小型项目中。

那么document数据库能否完全替代RDBMS?不,但它还有其他好处可以弥补 RDBMS 的缺点,例如非常灵活,尤其是无服务器就绪。

但它可以用作主数据库吗?在某些情况下是的,但是随着您的数据库逻辑变得越来越复杂,使用 RDBMS 会更好,因为您不必担心 ACID