NoSql数据库和面向对象数据库有什么区别?

23

NoSql数据库和面向对象数据库有什么区别?

4个回答

14

NoSQL数据库通常是非规范化的(以对象数据的副本保存代替对象),而OODB是具有对象关系的规范化数据库。在OODB中,数据存储在一个地方的对象中,并与其他对象链接(关系)。

由于去规范化和规范化的不同,它们都有各自的优缺点。像Mongo这样的NoSQL数据库快速读取但写入/更新数据较差。由于NoSQL数据库的非规范化性质,很难维护数据完整性,而像Wakanda这样的OODB易于管理并具有数据完整性。您删除一个对象,所有相关联的对象都会自动删除。

我尝试了很多次找出一些好的JavaScript面向对象的DB,但是目前除了www.wakanda.org之外,我还没有找到其他任何DB。如果您知道任何信息,请分享详情。


非常抱歉更新很晚。我找到了一些很好的 Wakanda(OODB)替代品,它们是 OrientDB 和 ArangoDB。这两个都适用于 OLTP 应用程序,因为我们可以以规范化的方式管理数据库。 - Gaurav Dhiman

6

面向对象数据库,例如db4o,被认为是NoSQL提供的替代方案之一,NoSQL表示Not Only SQL。它是关系型数据库的一组替代方案:Voldemort、Hadoop、MongoDB、CouchDB、BigTable、Neo4J、db4o等。


3
我会将Neo4J描述为一个图数据库,而不是面向对象的数据库。另外,我不同意你所说的NoSQL是关于替代关系型数据库的选择。像Rel或Tutorial D这样的关系型数据库非常符合NoSQL的范围。此外:如果不是关系,那么图数据库存储的是什么? - Jörg W Mittag
3
谢谢指出NoSQL意味着“不仅仅是SQL”,而不是“没有SQL”,+1。 - davehauser
你是正确的,Jorg。我的错误。我在想db4o。我会更正它。 - duffymo
关系型数据库管理系统如Oracle、MySQL等传统上使用表格、列和连接的方式来处理关系。 - duffymo
面向对象数据库(OODB)被认为是NoSQL数据库吗? - User
你认为呢? - duffymo

2

NoSQL是一种运动,OODB是一种技术。换句话说:NoSQL是一群人,而OODB是一段代码。


2

"NoSQL"没有严格的定义,因此差异大多是语义上的区别。通常情况下,面向对象数据库被认为是NoSQL数据库的子集。然而,一般来说,面向对象数据库仍然会有类似ACID锁定的机制来保持一致性,而NoSQL通常会具有某种“最终一致性”或部分锁定的语义。NoSQL的模式可能基于对象或键值(或其他),使其成为更通用的术语。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接