首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CouchBase NOSQL宣布了加入支持。使用它们的缺点是什么?

问CouchBase NOSQL宣布了加入支持。使用它们的缺点是什么?
EN

Stack Overflow用户
提问于 2015-05-29 17:35:11
回答 2查看 681关注 0票数 2

我一直认为NoSQL (卡桑德拉,CouchDB,Couchbase,MongoDB等)是面向文档的(没有连接)。典型的句子是:“如果您需要连接,请使用SQL数据库(MySQL、PostgreSQL等)。”

但是现在,Couchbase宣布了N1QL (Developer 4)的加入支持:

http://blog.couchbase.com/introducing-developer-preview-for-couchbase-server-4.0

在网上试试:

http://query.pub.couchbase.com/tutorial/#42

所以我很困惑。Couchbase是第一个具有连接支持的NOSQL数据库?使用它有什么缺点吗?为什么其他NOSQL数据库(如mongodb、couchdb、cassandra等)没有实施吗?

EN

回答 2

Stack Overflow用户

发布于 2015-05-29 21:42:58

是的,有几个NoSQL数据库使用JSON文档模型(例如Couchbase,MongoDB)。然而,面向文档并不意味着“没有联接”。像PostgreSQL和MySQL这样的RDBMS期望您将对象分解成平面表进行写入,并使用JOIN来重新组装对象以进行读取。这就是所谓的阻抗失配。

JSON文档数据库可以直接存储完整的对象,因此不存在阻抗失配。但是,对象通常与其他对象有关系,您需要跨这些关系进行查询。例如,电影和演员是相关的对象,如果你想列出电影的细节以及它的演员赢得了多少奖项,你就需要加入。

总之,像PostgreSQL和MySQL这样的RDBMS存在阻抗不匹配,因此必须将联接用于对象组装和关系。没有联接的JSON文档数据库不允许跨关系进行查询,因此必须使用多个查询在应用程序中实现此逻辑。最后,也提供联接的JSON文档数据库提供了两个优点:(1)不存在阻抗不匹配,也不存在反汇编/组装,(2)可以跨对象之间的关系进行查询。这就是为什么Couchbase在N1QL中提供连接的原因。

在Couchbase中使用JOIN是没有理由的。连接在正确的原因(关系)使用时非常有用,Couchbase数据模型(JSON)允许您避免“坏”联接(用于阻抗不匹配和组装/拆卸)。

票数 6
EN

Stack Overflow用户

发布于 2021-10-17 12:16:56

很好地从阻抗失配的角度

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30535752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档