NoSql数据库和面向对象数据库有什么区别?
NoSQL数据库通常是非规范化的(以对象数据的副本保存代替对象),而OODB是具有对象关系的规范化数据库。在OODB中,数据存储在一个地方的对象中,并与其他对象链接(关系)。
由于去规范化和规范化的不同,它们都有各自的优缺点。像Mongo这样的NoSQL数据库快速读取但写入/更新数据较差。由于NoSQL数据库的非规范化性质,很难维护数据完整性,而像Wakanda这样的OODB易于管理并具有数据完整性。您删除一个对象,所有相关联的对象都会自动删除。
我尝试了很多次找出一些好的JavaScript面向对象的DB,但是目前除了www.wakanda.org之外,我还没有找到其他任何DB。如果您知道任何信息,请分享详情。
面向对象数据库,例如db4o,被认为是NoSQL提供的替代方案之一,NoSQL表示Not Only SQL。它是关系型数据库的一组替代方案:Voldemort、Hadoop、MongoDB、CouchDB、BigTable、Neo4J、db4o等。
NoSQL是一种运动,OODB是一种技术。换句话说:NoSQL是一群人,而OODB是一段代码。
"NoSQL"没有严格的定义,因此差异大多是语义上的区别。通常情况下,面向对象数据库被认为是NoSQL数据库的子集。然而,一般来说,面向对象数据库仍然会有类似ACID锁定的机制来保持一致性,而NoSQL通常会具有某种“最终一致性”或部分锁定的语义。NoSQL的模式可能基于对象或键值(或其他),使其成为更通用的术语。