面向对象的数据库和文档数据库有什么不同?
我没有使用面向对象的数据库,但是当我使用文档数据库(RavenDb)时,我可以毫不费力地存储和读取常见的面向对象的类。
发布于 2012-03-27 21:28:06
我从面向对象数据库( db4o )转到了RavenDB (文档数据库)。我发现,最大的不同之处在于,对象数据库存储了完整的对象,当一个对象与另一个对象一起存储在其中时,该子对象是完整存储的,并且是该对象的最新版本。对于document DB,仍然存储对象,但它们的组织方式不同。聚合/根对象将存储子对象的部分,以便聚合/根对象是自包含的。当您检索根对象时,您并没有伸手去抓取与其相关的对象。
OODB会这样存储一个团队:
TeamName
City
List<Player> // The entire player objects would be stored here文档DB将以这种方式存储团队:
TeamName
City
List<string> PlayerNamesPlayerNames将存储在这里,因为这是team对象所需的全部内容。
RavenDB在这里很好地解释了文档数据库的理论:
http://ravendb.net/docs/theory/document-structure-design
https://stackoverflow.com/questions/9884407
复制相似问题